JP5443384B2 - ホスト書き込み動作とキャッシュフラッシングとのバランスをとるための方法およびシステム - Google Patents
ホスト書き込み動作とキャッシュフラッシングとのバランスをとるための方法およびシステム Download PDFInfo
- Publication number
- JP5443384B2 JP5443384B2 JP2010540753A JP2010540753A JP5443384B2 JP 5443384 B2 JP5443384 B2 JP 5443384B2 JP 2010540753 A JP2010540753 A JP 2010540753A JP 2010540753 A JP2010540753 A JP 2010540753A JP 5443384 B2 JP5443384 B2 JP 5443384B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- host
- storage
- storage device
- data
- 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
Links
- 238000000034 method Methods 0.000 title claims description 45
- 238000011010 flushing procedure Methods 0.000 title description 34
- 230000015654 memory Effects 0.000 claims description 91
- 238000012546 transfer Methods 0.000 claims description 8
- 230000001960 triggered effect Effects 0.000 claims description 7
- 238000007726 management method Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000007423 decrease Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000012464 large buffer Substances 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
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
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- 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/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- 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/31—Providing disk cache in a specific location of a storage system
- G06F2212/313—In storage device
-
- 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/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- 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/7208—Multiple device management, e.g. distributing data over multiple flash devices
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)
- Memory System Of A Hierarchy Structure (AREA)
Description
本発明の第1の態様によれば、書き込みコマンドで外部ホストから受信される受信データが、最初にキャッシュ記憶に記憶された後で主記憶に移動される、記憶装置におけるキャッシュ記憶から主記憶へのデータの移動を管理する方法が開示される。この方法は、記憶装置でホストから書き込みコマンドを受信するステップと、書き込みコマンドとともに受信されるデータをキャッシュ記憶に記憶するステップと、書き込みコマンドを受信した後に記憶装置でビシー状態を生成するステップと、を含む。この方法は、キャッシュ記憶にデータを記憶するステップに続いて、ビジー状態を維持しながらデータの少なくとも一部をキャッシュ記憶から主記憶にコピーするステップであって、コピーするステップが開始されるときに次の書き込みコマンドでホストからデータを受信するキャッシュに充分な使用可能な容量が存在するようにしたステップと、をさらに含む。
Claims (29)
- 書き込みコマンドで外部ホストから受信される受信データが、最初にキャッシュ記憶に記憶された後で主記憶に移動される、記憶装置における前記キャッシュ記憶から前記主記憶へのデータの移動を管理する方法であって、
前記記憶装置で前記ホストから書き込みコマンドを受信するステップと、
前記書き込みコマンドとともに受信されるデータを前記キャッシュ記憶に記憶するステップと、
前記書き込みコマンドを受信した後に前記記憶装置でビシー状態を生成するステップと、
前記データを前記キャッシュ記憶に記憶するステップに続いて、前記ビジー状態を維持しながらデータの少なくとも一部を前記キャッシュ記憶から前記主記憶にコピーするステップであって、前記コピーするステップが開始されるときに次の書き込みコマンドで前記ホストからデータを受信する前記キャッシュに充分な使用可能な容量が存在するようにしたコピーするステップと、
を含む方法。 - 請求項1記載の方法において、
前記データの少なくとも一部を前記キャッシュ記憶から前記主記憶にコピーするステップが、前記キャッシュ記憶の使用可能な容量が所望のしきい値よりも小さい場合に前記キャッシュ記憶からデータの少なくとも一部をコピーするステップを含む方法。 - 請求項2記載の方法において、
前記所望のしきい値は、前記キャッシュ記憶の50%使用可能な容量である方法。 - 請求項1記載の方法において、
前記データの少なくとも一部を前記キャッシュ記憶から前記主記憶にコピーするステップが、選択可能な数のキャッシュクリアリングステップを実行するステップを含み、各キャッシュクリアリングステップが、前記キャッシュ記憶の少なくとも1つのページから前記主記憶へデータをコピーする方法。 - 請求項4記載の方法において、
少なくとも前記キャッシュ記憶の使用可能な容量に部分的に基づいて、前記選択可能な数を決定するステップをさらに含む方法。 - 外部ホストからの受信データが、最初にキャッシュ記憶に記憶された後で主記憶に移動される、記憶装置における前記キャッシュ記憶から前記主記憶へのデータの移動を管理する方法であって、
キャッシュ記憶の使用可能な容量を検出するステップと、
前記検出された使用可能な容量に基づいてホストコマンドに対するキャッシュクリアリングステップの比率を決定するステップと、
前記決定されたホストコマンドに対するキャッシュクリアリングステップの比率を達成するために、キャッシュクリアリングステップの実行をホストコマンドの実行とインタリーブするステップであって、前記キャッシュクリアリングステップの実行が、ホストコマンドを実行するのに充分な時間より長い期間、前記記憶装置で生成され前記ホストコマンドによってトリガされるビジー状態を維持するステップと、前記期間に前記キャッシュ記憶から前記主記憶にデータの少なくとも一部をコピーするステップとを含むようにしたインタリーブするステップと、
を含む方法。 - 請求項6記載の方法において、
前記比率が、非整数の比率を含む方法。 - 請求項6記載の方法において、
前記ホストコマンドが、ホスト書き込みコマンドを含む方法。 - 請求項6記載の方法において、
前記ホストコマンドが、ホスト読み出しコマンドを含む方法。 - 請求項6記載の方法において、
前記ホストコマンドが、ホスト消去コマンドを含む方法。 - 請求項6記載の方法において、
前記ホストコマンドに対するキャッシュクリアリングステップの比率を決定するステップが、前記検出された使用可能な容量に加えて、少なくとも1つの追加のパラメータに基づく方法。 - 請求項11記載の方法において、
前記少なくとも1つの追加のパラメータが、記憶装置負荷パラメータを含む方法。 - 請求項12記載の方法において、
前記記憶装置負荷パラメータが、割り当てられるヒープメモリの現在の量を含む方法。 - 請求項6記載の方法において、
前記ホストコマンドに対するキャッシュクリアリングステップの比率を決定するステップと、前記検出された使用可能な容量が所望のしきい値容量よりも小さい場合に、キャッシュクリアリングステップの実行をホストコマンドの実行とインタリーブするステップと、のみをさらに含む方法。 - 請求項6記載の方法において、
前記ホストコマンドに対するキャッシュクリアリングステップの比率を決定するステップと、前記検出された使用可能な容量がホストからデータを受信する最小容量よりも大きく所望のしきい値容量よりも小さい場合に、キャッシュクリアリングステップの実行をホストコマンドの実行とインタリーブするステップと、のみをさらに含む方法。 - 記憶装置であって、
ホスト書き込みコマンドに関連するデータを受信するように構成されるキャッシュ記憶と、
前記キャッシュ記憶と通信し前記キャッシュ記憶から転送されるデータを受信するように構成される主記憶と、
前記キャッシュ記憶から前記主記憶へのデータの転送を管理するように配置されるコントローラであって、
ホスト書き込みコマンドを受信した後にビジー状態を生成し、前記ホスト書き込みコマンドとともに受信される前記データを前記キャッシュ記憶に書き込んだ後で、前記ビジー状態を維持しながら前記キャッシュ記憶から前記主記憶へデータの少なくとも一部をコピーし、コピーが開始されるときに次の書き込みコマンドで前記ホストからデータを受信する前記キャッシュ記憶に充分な使用可能な容量が存在するように構成されるコントローラと、
を備える記憶装置。 - 請求項16記載の記憶装置において、
前記コントローラが、前記キャッシュ記憶の使用可能な容量が所望のしきい値より小さい場合に、前記ホスト書き込みコマンドとともに受信される前記データを書き込んだ後に前記ビジー状態を維持するように構成される記憶装置。 - 請求項17記載の記憶装置において、
前記所望のしきい値は、前記キャッシュ記憶の50%使用可能な容量である記憶装置。 - 請求項16記載の記憶装置において、
前記キャッシュ記憶はシングルレベルセル不揮発性メモリであり、前記主記憶はマルチレベルセル不揮発性メモリである記憶装置。 - 記憶装置であって、
データをホストから受信するように構成されるキャッシュ記憶と、
前記キャッシュ記憶と通信し前記キャッシュ記憶から転送されるデータを受信するように構成される主記憶と、
前記キャッシュ記憶から前記主記憶へのデータの転送を管理するように配置されるコントローラであって、
前記キャッシュ記憶の使用可能な容量を検出し、
前記キャッシュ記憶の前記検出された使用可能な容量に基づいてホストコマンドに対するキャッシュクリアリングステップの比率を決定し、
前記決定されたホストコマンドに対するキャッシュクリアリングステップの比率を達成するために、キャッシュクリアリングステップの実行をホストコマンドの実行とインタリーブし、前記キャッシュクリアリングステップの実行は、ホストコマンドを実行するのに充分な時間より長い期間、前記記憶装置で生成され前記ホストコマンドによってトリガされるビジー状態を維持することと、前記期間に前記キャッシュ記憶から前記主記憶にデータをコピーすることとを含むように構成されるコントローラと、
を備える記憶装置。 - 請求項20記載の記憶装置において、
前記コントローラが、前記検出された使用可能な容量に加えて、少なくとも1つの追加のパラメータに基づいて前記ホストコマンドに対するキャッシュクリアリングステップの比率を決定するように構成される記憶装置。 - 請求項21記載の記憶装置において、
前記少なくとも1つの追加のパラメータが、記憶装置負荷パラメータを含む記憶装置。 - 請求項22記載の記憶装置において、
前記記憶装置負荷パラメータが、割り当てられるヒープメモリの現在の量を含む記憶装置。 - 請求項20記載の記憶装置において、
前記ホストコマンドが、ホスト書き込みコマンドを含み、前記ホスト書き込みコマンドのうちの1つを実行するのに充分な時間が、前記ホスト書き込みコマンドに関連するデータを前記キャッシュ記憶に書き込む期間を含む記憶装置。 - 請求項20記載の記憶装置において、
前記コントローラが、選択可能な数のキャッシュクリアリングステップを実行するように構成され、各キャッシュクリアリングステップが、前記キャッシュ記憶の少なくとも1つのページから前記主記憶へデータをコピーすることを含む記憶装置。 - 請求項25記載の記憶装置において、
前記コントローラが、少なくとも前記キャッシュ記憶の使用可能容量に部分的に基づいて、前記選択可能な数を決定するようにさらに構成される記憶装置。 - 請求項20記載の記憶装置において、
前記コントローラが、前記ホストコマンドに対するキャッシュクリアリングステップの比率を決定し、前記検出された使用可能な容量が所望のしきい値容量よりも小さい場合に、キャッシュクリアリングステップの実行をホストコマンドの実行とインタリーブするようにのみさらに構成される記憶装置。 - 請求項20記載の記憶装置において、
前記コントローラが、前記ホストコマンドに対するキャッシュクリアリングステップの比率を決定し、前記検出された使用可能な容量が前記ホストからデータを受信する最小容量よりも大きく所望のしきい値容量よりも小さい場合に、キャッシュクリアリングステップの実行をホストコマンドの実行とインタリーブするようにのみさらに構成される記憶装置。 - 回路であって、
記憶装置においてキャッシュ記憶から主記憶へのデータの転送を管理するように配置されるコントローラであって、
ホスト書き込みコマンドを受信した後にビジー状態を生成し、
前記ホスト書き込みコマンドとともに受信される前記データを前記キャッシュ記憶に書き込んだ後で、前記ビジー状態を維持しながら前記キャッシュ記憶から前記主記憶へデータの少なくとも一部をコピーし、コピーが開始されるときに次の書き込みコマンドでホストからデータを受信する前記キャッシュ記憶に充分な使用可能な容量が存在するように構成されるコントローラを備える回路。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/967,369 US7865658B2 (en) | 2007-12-31 | 2007-12-31 | Method and system for balancing host write operations and cache flushing |
US11/967,369 | 2007-12-31 | ||
PCT/US2008/086247 WO2009088626A2 (en) | 2007-12-31 | 2008-12-10 | Method and system for balancing host write operations and cache flushing |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011508347A JP2011508347A (ja) | 2011-03-10 |
JP5443384B2 true JP5443384B2 (ja) | 2014-03-19 |
Family
ID=40800012
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010540753A Active JP5443384B2 (ja) | 2007-12-31 | 2008-12-10 | ホスト書き込み動作とキャッシュフラッシングとのバランスをとるための方法およびシステム |
Country Status (6)
Country | Link |
---|---|
US (1) | US7865658B2 (ja) |
EP (1) | EP2227740B1 (ja) |
JP (1) | JP5443384B2 (ja) |
KR (1) | KR101563875B1 (ja) |
TW (1) | TWI421877B (ja) |
WO (1) | WO2009088626A2 (ja) |
Families Citing this family (64)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8200904B2 (en) * | 2007-12-12 | 2012-06-12 | Sandisk Il Ltd. | System and method for clearing data from a cache |
JP5221332B2 (ja) * | 2008-12-27 | 2013-06-26 | 株式会社東芝 | メモリシステム |
US8261009B2 (en) * | 2008-12-30 | 2012-09-04 | Sandisk Il Ltd. | Method and apparatus for retroactive adaptation of data location |
US20100169540A1 (en) * | 2008-12-30 | 2010-07-01 | Sinclair Alan W | Method and apparatus for relocating selected data between flash partitions in a memory device |
US8838903B2 (en) * | 2010-02-04 | 2014-09-16 | Dataram, Inc. | Priority ordered multi-medium solid-state storage system and methods for use |
US8239617B1 (en) * | 2010-02-12 | 2012-08-07 | Emc Corporation | Enterprise data storage system using multi-level cell flash memory |
US8402226B1 (en) * | 2010-06-18 | 2013-03-19 | Emc Corporation | Rate proportional cache write-back in a storage server |
JP2012141946A (ja) * | 2010-12-16 | 2012-07-26 | Toshiba Corp | 半導体記憶装置 |
KR20120088454A (ko) * | 2011-01-31 | 2012-08-08 | 에스케이하이닉스 주식회사 | 비휘발성 메모리 시스템 및 비휘발성 메모리 장치와, 이를 위한 프로그램 방법 |
US20130067168A1 (en) * | 2011-09-09 | 2013-03-14 | Microsoft Corporation | Caching for a file system |
US8856443B2 (en) * | 2012-03-12 | 2014-10-07 | Infinidat Ltd. | Avoiding duplication of data units in a cache memory of a storage system |
US9606730B2 (en) | 2012-05-04 | 2017-03-28 | Samsung Electronics Co., Ltd. | System and method including three dimensional nonvolatile memory device and random access memory |
CN103514111A (zh) * | 2012-06-21 | 2014-01-15 | 华为技术有限公司 | 一种Cache的替换方法及装置 |
KR102024850B1 (ko) | 2012-08-08 | 2019-11-05 | 삼성전자주식회사 | 3차원 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 프로그램 방법 |
US9112922B2 (en) | 2012-08-28 | 2015-08-18 | Vantrix Corporation | Method and system for self-tuning cache management |
US9740485B2 (en) | 2012-10-26 | 2017-08-22 | Micron Technology, Inc. | Apparatuses and methods for memory operations having variable latencies |
US9754648B2 (en) * | 2012-10-26 | 2017-09-05 | Micron Technology, Inc. | Apparatuses and methods for memory operations having variable latencies |
US9280482B2 (en) * | 2012-12-13 | 2016-03-08 | Western Digital Technologies, Inc. | Methods and systems for provisioning a bootable image on to an external drive |
US9141531B1 (en) | 2012-12-14 | 2015-09-22 | Western Digital Technologies, Inc. | Data flush from cache to disk based on track limit |
US9223693B2 (en) | 2012-12-31 | 2015-12-29 | Sandisk Technologies Inc. | Memory system having an unequal number of memory die on different control channels |
US9348746B2 (en) | 2012-12-31 | 2016-05-24 | Sandisk Technologies | Method and system for managing block reclaim operations in a multi-layer memory |
US9336133B2 (en) | 2012-12-31 | 2016-05-10 | Sandisk Technologies Inc. | Method and system for managing program cycles including maintenance programming operations in a multi-layer memory |
US8873284B2 (en) | 2012-12-31 | 2014-10-28 | Sandisk Technologies Inc. | Method and system for program scheduling in a multi-layer memory |
US9734050B2 (en) | 2012-12-31 | 2017-08-15 | Sandisk Technologies Llc | Method and system for managing background operations in a multi-layer memory |
US9734911B2 (en) | 2012-12-31 | 2017-08-15 | Sandisk Technologies Llc | Method and system for asynchronous die operations in a non-volatile memory |
US9465731B2 (en) | 2012-12-31 | 2016-10-11 | Sandisk Technologies Llc | Multi-layer non-volatile memory system having multiple partitions in a layer |
US10445229B1 (en) * | 2013-01-28 | 2019-10-15 | Radian Memory Systems, Inc. | Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies |
US9652376B2 (en) | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
US9542306B2 (en) * | 2013-03-13 | 2017-01-10 | Seagate Technology Llc | Dynamic storage device provisioning |
US9727453B2 (en) | 2013-03-14 | 2017-08-08 | Sandisk Technologies Llc | Multi-level table deltas |
US9734097B2 (en) | 2013-03-15 | 2017-08-15 | Micron Technology, Inc. | Apparatuses and methods for variable latency memory operations |
WO2014209276A1 (en) * | 2013-06-25 | 2014-12-31 | Hewlett-Packard Development Company, L.P. | Flushing dirty data from cache memory |
US9026693B2 (en) * | 2013-08-05 | 2015-05-05 | Samsung Electronics Co., Ltd. | Method for filtering cached input/output data based on data generation/consumption |
US9563565B2 (en) | 2013-08-14 | 2017-02-07 | Micron Technology, Inc. | Apparatuses and methods for providing data from a buffer |
US9727493B2 (en) | 2013-08-14 | 2017-08-08 | Micron Technology, Inc. | Apparatuses and methods for providing data to a configurable storage area |
US9170943B2 (en) * | 2013-08-29 | 2015-10-27 | Globalfoundries U.S. 2 Llc | Selectively enabling write caching in a storage system based on performance metrics |
US9824004B2 (en) | 2013-10-04 | 2017-11-21 | Micron Technology, Inc. | Methods and apparatuses for requesting ready status information from a memory |
US10108372B2 (en) | 2014-01-27 | 2018-10-23 | Micron Technology, Inc. | Methods and apparatuses for executing a plurality of queued tasks in a memory |
US10365835B2 (en) | 2014-05-28 | 2019-07-30 | Micron Technology, Inc. | Apparatuses and methods for performing write count threshold wear leveling operations |
US9720837B2 (en) * | 2014-06-27 | 2017-08-01 | International Business Machines Corporation | Allowing non-cacheable loads within a transaction |
BR112017001991B1 (pt) * | 2014-08-15 | 2022-11-16 | Microsoft Technology Licensing, Llc | Método e dispositivo eletrônico compreendendo memória e armazenamento, e meio de armazenamento em computador |
US10127157B2 (en) * | 2014-10-06 | 2018-11-13 | SK Hynix Inc. | Sizing a cache while taking into account a total bytes written requirement |
US9940259B2 (en) * | 2015-01-16 | 2018-04-10 | International Business Machines Corporation | Virtual disk alignment access |
US10133490B2 (en) | 2015-10-30 | 2018-11-20 | Sandisk Technologies Llc | System and method for managing extended maintenance scheduling in a non-volatile memory |
US10120613B2 (en) | 2015-10-30 | 2018-11-06 | Sandisk Technologies Llc | System and method for rescheduling host and maintenance operations in a non-volatile memory |
US9778855B2 (en) | 2015-10-30 | 2017-10-03 | Sandisk Technologies Llc | System and method for precision interleaving of data writes in a non-volatile memory |
US10042553B2 (en) | 2015-10-30 | 2018-08-07 | Sandisk Technologies Llc | Method and system for programming a multi-layer non-volatile memory having a single fold data path |
TWI598733B (zh) * | 2016-01-12 | 2017-09-11 | 瑞昱半導體股份有限公司 | 權重式資料搬遷控制裝置與方法 |
US20170212711A1 (en) * | 2016-01-21 | 2017-07-27 | Kabushiki Kaisha Toshiba | Disk apparatus and control method |
US20180239532A1 (en) | 2017-02-23 | 2018-08-23 | Western Digital Technologies, Inc. | Techniques for performing a non-blocking control sync operation |
US10372351B2 (en) | 2017-02-23 | 2019-08-06 | Western Digital Technologies, Inc. | Techniques for non-blocking control information and data synchronization by a data storage device |
US10359955B2 (en) | 2017-02-23 | 2019-07-23 | Western Digital Technologies, Inc. | Data storage device configured to perform a non-blocking control update operation |
TWI645286B (zh) * | 2017-08-31 | 2018-12-21 | 慧榮科技股份有限公司 | 記憶體控制裝置和方法 |
US10877686B2 (en) * | 2018-04-13 | 2020-12-29 | Intel Corporation | Mass storage device with host initiated buffer flushing |
US11188474B2 (en) * | 2018-06-19 | 2021-11-30 | Western Digital Technologies, Inc. | Balanced caching between a cache and a non-volatile memory based on rates corresponding to the cache and the non-volatile memory |
US11409436B2 (en) | 2018-08-08 | 2022-08-09 | Micron Technology, Inc. | Buffer management in memory systems for read and write requests |
US10782916B2 (en) | 2018-08-08 | 2020-09-22 | Micron Technology, Inc. | Proactive return of write credits in a memory system |
KR102243923B1 (ko) | 2018-12-31 | 2021-04-22 | 강원대학교산학협력단 | 캐쉬를 동반한 효율적인 페이지 컬렉션 매핑을 이용하는 비휘발성 메모리 장치 및 그 동작 방법 |
US11023150B2 (en) | 2019-07-01 | 2021-06-01 | International Business Machines Corporation | Block mode toggling using hybrid controllers |
US11182089B2 (en) | 2019-07-01 | 2021-11-23 | International Business Machines.Corporation | Adapting memory block pool sizes using hybrid controllers |
CN112181938B (zh) * | 2019-07-05 | 2024-06-14 | 杭州海康威视数字技术股份有限公司 | 数据库清理方法、装置和计算机可读存储介质 |
KR102650809B1 (ko) * | 2019-08-02 | 2024-03-26 | 삼성전자주식회사 | 스토리지 장치 및 그것의 동작 방법 |
US11816349B2 (en) | 2021-11-03 | 2023-11-14 | Western Digital Technologies, Inc. | Reduce command latency using block pre-erase |
US11994983B2 (en) * | 2022-08-24 | 2024-05-28 | Micron Technology, Inc. | Multimedia card command timeout measurement |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5636355A (en) | 1993-06-30 | 1997-06-03 | Digital Equipment Corporation | Disk cache management techniques using non-volatile storage |
US6412045B1 (en) | 1995-05-23 | 2002-06-25 | Lsi Logic Corporation | Method for transferring data from a host computer to a storage media using selectable caching strategies |
JP3484874B2 (ja) * | 1996-05-01 | 2004-01-06 | 日本電気株式会社 | 記憶システム |
US5895488A (en) | 1997-02-24 | 1999-04-20 | Eccs, Inc. | Cache flushing methods and apparatus |
US5883904A (en) * | 1997-04-14 | 1999-03-16 | International Business Machines Corporation | Method for recoverability via redundant cache arrays |
US5930167A (en) | 1997-07-30 | 1999-07-27 | Sandisk Corporation | Multi-state non-volatile flash memory capable of being its own two state write cache |
US5937425A (en) | 1997-10-16 | 1999-08-10 | M-Systems Flash Disk Pioneers Ltd. | Flash file system optimized for page-mode flash technologies |
ATE323305T1 (de) * | 1998-07-24 | 2006-04-15 | Sun Microsystems Inc | Verfahren und vorrichtung zur durchführung einer deterministischen speicherzuordnungsantwort in einem computer-system |
JPH11288387A (ja) * | 1998-12-11 | 1999-10-19 | Fujitsu Ltd | ディスクキャッシュ装置 |
JP2001135017A (ja) * | 1999-11-02 | 2001-05-18 | Nec Corp | データ記憶装置及びデータ記憶装置用インタフェース装置 |
US6658532B1 (en) * | 1999-12-15 | 2003-12-02 | Intel Corporation | Cache flushing |
US6678785B2 (en) | 2001-09-28 | 2004-01-13 | M-Systems Flash Disk Pioneers Ltd. | Flash management system using only sequential write |
US6976128B1 (en) | 2002-09-26 | 2005-12-13 | Unisys Corporation | Cache flush system and method |
US7076605B1 (en) | 2003-04-25 | 2006-07-11 | Network Appliance, Inc. | Method and apparatus for writing data to a storage device |
US7085895B2 (en) | 2003-09-05 | 2006-08-01 | International Business Machines Corporation | Apparatus, system, and method flushing data from a cache to secondary storage |
US7356651B2 (en) | 2004-01-30 | 2008-04-08 | Piurata Technologies, Llc | Data-aware cache state machine |
JP4402997B2 (ja) | 2004-03-26 | 2010-01-20 | 株式会社日立製作所 | ストレージ装置 |
US7752382B2 (en) * | 2005-09-09 | 2010-07-06 | Sandisk Il Ltd | Flash memory storage system and method |
US7444478B2 (en) | 2005-11-18 | 2008-10-28 | International Business Machines Corporation | Priority scheme for transmitting blocks of data |
US7395377B2 (en) | 2006-04-20 | 2008-07-01 | International Business Machines Corporation | Method and system for adaptive back-off and advance for non-volatile storage (NVS) occupancy level management |
US7711890B2 (en) | 2006-06-06 | 2010-05-04 | Sandisk Il Ltd | Cache control in a non-volatile memory device |
US8200904B2 (en) | 2007-12-12 | 2012-06-12 | Sandisk Il Ltd. | System and method for clearing data from a cache |
-
2007
- 2007-12-31 US US11/967,369 patent/US7865658B2/en active Active
-
2008
- 2008-12-10 KR KR1020107014261A patent/KR101563875B1/ko not_active IP Right Cessation
- 2008-12-10 EP EP08869781.8A patent/EP2227740B1/en active Active
- 2008-12-10 JP JP2010540753A patent/JP5443384B2/ja active Active
- 2008-12-10 WO PCT/US2008/086247 patent/WO2009088626A2/en active Application Filing
- 2008-12-24 TW TW097150465A patent/TWI421877B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
WO2009088626A3 (en) | 2009-10-01 |
JP2011508347A (ja) | 2011-03-10 |
EP2227740A2 (en) | 2010-09-15 |
KR101563875B1 (ko) | 2015-10-28 |
KR20100107456A (ko) | 2010-10-05 |
US7865658B2 (en) | 2011-01-04 |
US20090172286A1 (en) | 2009-07-02 |
EP2227740B1 (en) | 2018-01-24 |
EP2227740A4 (en) | 2011-11-16 |
TWI421877B (zh) | 2014-01-01 |
TW200937424A (en) | 2009-09-01 |
WO2009088626A2 (en) | 2009-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5443384B2 (ja) | ホスト書き込み動作とキャッシュフラッシングとのバランスをとるための方法およびシステム | |
JP7366795B2 (ja) | メモリシステムおよび制御方法 | |
JP5192228B2 (ja) | フラッシュコントローラのキャッシュ構造 | |
US8200904B2 (en) | System and method for clearing data from a cache | |
US10949355B2 (en) | Methods and apparatus for workload based dynamic cache control in SSD | |
JP4759057B2 (ja) | フロントメモリストレージシステムおよび方法 | |
JP5418808B2 (ja) | 適応ハイブリッド密度メモリ記憶装置の制御方法、及び適応ハイブリッド密度メモリ記憶装置 | |
US8595445B2 (en) | Non-volatile memory and method with host controlled caching | |
KR101624007B1 (ko) | 비휘발성 메모리를 갖는 시스템에 대한 효율적인 버퍼링 | |
US8171239B2 (en) | Storage management method and system using the same | |
US20080294814A1 (en) | Flash Memory System with Management of Housekeeping Operations | |
US20140122783A1 (en) | Solid state memory (ssm), computer system including an ssm, and method of operating an ssm | |
US20080294813A1 (en) | Managing Housekeeping Operations in Flash Memory | |
JP6697410B2 (ja) | メモリシステムおよび制御方法 | |
US20110093659A1 (en) | Data storage device and data storing method thereof | |
JP2014116031A (ja) | メモリデバイスを備えた電子システム | |
WO2008102347A1 (en) | Interruptible cache flushing in flash memory systems | |
JP2020035128A (ja) | メモリシステム | |
KR20090102192A (ko) | 메모리 시스템 및 그것의 데이터 저장 방법 | |
KR20120055707A (ko) | 메모리 시스템 | |
KR20230142795A (ko) | Zns 디바이스들에서의 상이한 기입 우선순위화 | |
US11537303B1 (en) | Dissimilar write prioritization in ZNS devices | |
JP2010152778A (ja) | 半導体記憶装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20111129 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130711 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130723 |
|
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: 20131126 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131219 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5443384 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |