JP6228374B2 - 動的に適応されるキャッシュ格納のためのシステム - Google Patents

動的に適応されるキャッシュ格納のためのシステム Download PDF

Info

Publication number
JP6228374B2
JP6228374B2 JP2013054867A JP2013054867A JP6228374B2 JP 6228374 B2 JP6228374 B2 JP 6228374B2 JP 2013054867 A JP2013054867 A JP 2013054867A JP 2013054867 A JP2013054867 A JP 2013054867A JP 6228374 B2 JP6228374 B2 JP 6228374B2
Authority
JP
Japan
Prior art keywords
data
space
storage device
host
amount
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013054867A
Other languages
English (en)
Other versions
JP2013200868A (ja
JP2013200868A5 (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.)
LSI Corp
Original Assignee
LSI Logic 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
Priority claimed from US13/566,204 external-priority patent/US9158695B2/en
Application filed by LSI Logic Corp filed Critical LSI Logic Corp
Publication of JP2013200868A publication Critical patent/JP2013200868A/ja
Publication of JP2013200868A5 publication Critical patent/JP2013200868A5/ja
Application granted granted Critical
Publication of JP6228374B2 publication Critical patent/JP6228374B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/502Control mechanisms for virtual memory, cache or TLB using adaptive policy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

[0001]本開示は、全般的にはキャッシュ格納(cashing)の分野に関し、より具体的には、動的に適応されるキャッシュ格納のためのシステムおよび動的に適応されるキャッシュを管理する方法に関するものである。
従来技術
[0002]キャッシュ格納は、データをトランスペアレントに格納することにより記憶システムの性能の増強を支援するものとして知られており、その結果、そのデータについての将来の要求をより高速に満たすことができる。使用可能なキャッシュのキャパシティを大きくなればするほど、キャッシュがシステム全体にデリバすることができる性能はより良好になる。記憶キャッシュは、2つの部分を備える。すなわち、サーバのようなホストによって読み書きされるデータを格納するデータ部分、そして、キャッシュに格納された、ホストによりアクセス可能なより大きなデータ量のサブセットを識別および/または位置特定するために用いられるタグ部分である。
一般的に、データ部が大きくなればなるほど、キャッシュ内で「ヒット」するホスト・アクセスの割合がより向上し、また、記憶システムの性能もより向上する。
[0003]データ圧縮を用いることができ、その結果、全体の記憶スペースまたはデータの所与のサイズを要求する伝送時間を短縮する。しかしながら、データ圧縮性は可変的であり、データ・エントロピーのレベルに依存するものである。データの圧縮性におけるこの可変性の結果、サイズ変更についてのデータ記憶スペースが必要になる。
[0004]記憶システムのキャッシュ格納では、固定のおよび永続的なキャッシュ・サイズをシステムの上位レイヤに提示することがしばしば必要となる。従って、記憶デバイスにおけるデータの圧縮によって得ることができるスペースは、データおよびそれに対応するサイズの圧縮性という可変的な性質に因り、キャッシュは利用することができない。
[0005]それ故、データがデータ圧縮によってサイズ面で変化できるときに、記憶システムのキャッシュ格納(cashing)についての方法および装置を改良する必要性が存在する。
[0006]動的に適応されるキャッシュを管理する方法を提供する。データをホストから受け取るステップ、および受け取ったデータを圧縮データ・サイズに圧縮するステップを含む。次いで、圧縮データは格納され、利用可能なスペースの残りの量が決定される。本方法のさらなるステップは、利用可能なスペース量が設定閾値よりも大きいときに、受け取ったデータのサイズと圧縮したデータのサイズとの差の少なくとも一部に基づいた量によって、ホストに提示される論理キャパシティを増量するステップを含む。
[0007]本開示はまた、動的適応キャッシュ格納のためのシステムにも向けられる。本システムは、ホストから受け取るデータを格納するための物理キャパシティを有する記憶デバイスを含む。本システムはまた、通信により記憶デバイスに結合され、ホストからデータを受け取るように構成した制御モジュールを含むこともできる。制御モジュールは、ホストから受け取ったデータを圧縮データ・サイズに圧縮するように構成される。代替の実施形態では、データは、記憶デバイスにおいて圧縮することができる。制御モジュールはまた、記憶デバイスの利用可能スペースの量を決定するために構成することもできる。制御モジュールはまた、ホストから受け取ったデータのサイズおよび圧縮データのサイズとの差に基づいて再利用される(reclaim)スペースを決定するように構成することもできる。本システムはまた、論理キャパシティをホストに提示するように構成されるインタフェース・モジュールを含むこともできる。論理キャパシティは可変サイズを有しており、任意におよび/または選択的に、再利用されるスペースの部分を少なくとも含む。
[0008]本開示はまた、キャッシュを管理する方法にも向けられる。方法はまた、ホストからデータを受け取るステップ、およびデータを圧縮データ・サイズに圧縮するステップを含む。次いで、圧縮データは格納され、利用可能なスペースの量が決定される。次に、受け取ったデータのサイズと圧縮したデータのサイズとの差の少なくとも一部は、利用可能なスペースの量が設定閾値よりも大きいといったときに、任意におよび/または選択的にホストに提示される。
[0009]本開示は、記憶デバイスが記憶インタフェースを介して複数のデータ部分を受け取るステップを含む方法にも向けられる。本方法の次のステップは、縮小される各データ部分を形成するためにデータ部分のそれぞれを縮小するステップを必要とし、データ部分のうち少なくともいくつかが各縮小データ部分よりも大きいサイズを有する。本方法はまた、データ部分を記憶デバイスのデータ・メモリ内の縮小データ部分として格納するステップを含む。データ・メモリは、不揮発性データ・メモリでもよい。本方法の最後のステップは、データ・メモリの利用に従ってデータ・メモリの論理キャパシティを決定するステップである。本方法では、データ・メモリの論理キャパシティは、データ部分の縮小に従って変化する。
[0010]先に述べた一般的な説明および以下の詳細な説明の双方は、例示的および説明的なものに過ぎず、本開示において必ずしも限定的なものではないことが理解されるべきである。添付の図面は、組み込まれて本明細書の一部を構成し、本開示の主題について示している。これと共に、本説明および本図面は、本開示の本質(principle)を説明するのに役立つものである。
[0011]この開示の多くの利点は、添付の図を参照することで当業者によって、より良く理解することができる。
図1Aは、本開示による動的適応キャッシュを管理する方法についてのフロー図である。 図1Bは、本開示によるキャッシュを管理する方法についてのフロー図である。 図2Aは、本開示によるいくつかの異なる時間間隔における動的適応キャッシュについて示している。 図2Bは、本開示によるいくつかの異なる時間間隔における動的適応キャッシュについて示している。 図2Cは、本開示によるいくつかの異なる時間間隔における動的適応キャッシュについて示している。 図2Dは、本開示によるいくつかの異なる時間間隔における動的適応キャッシュについて示している。 図2Eは、本開示によるいくつかの異なる時間間隔における動的適応キャッシュについて示している。 図2Fは、本開示によるいくつかの異なる時間間隔における動的適応キャッシュについて示している。 図3は、本開示による動的適応キャッシュについて示している。 図4Aは、本開示による動的適応キャッシュ格納を提供するための各システムについて示している。 図4Bは、本開示による動的適応キャッシュ格納を提供するための各システムについて示している。 図5は、本開示による追加な方法についてのフロー図である。
[0012]これより、添付の図に示される開示の主題について詳細な参照を行う。
[0013]いくつかの実施形態では、動的に適応される記憶システム・キャッシュが、図3の記憶デバイス302のような記憶デバイスに格納される。記憶デバイスは、規定した最大論理キャパシティを有する論理アドレス・スペースを、規定した物理サイズを有する、NANDフラッシュ・チップのような物理記憶デバイスにマップする。最大論理キャパシティの一部分は、記憶システム・キャッシュを管理しているより高位のレイヤのような、より高位レイヤに提示され、および/または利用可能となる。そしてこの一部分は、物理記憶デバイスの利用率(utilization)に少なくとも部分的に基づいて変化する。
物理記憶デバイスの利用態様は、次に、当該物理記憶デバイス内に格納されたデータについて、圧縮を経るというような縮小に少なくとも部分的に基づいて変化する。動的適応記憶システム・キャッシュに格納することが可能なデータの量は、次に、記憶システム・キャッシュを管理しているより高位レイヤに提示され、および/または利用可能となる最大論理キャパシティの部分に少なくとも部分的に従って変化する。このように、より縮小可能な(例えば、より圧縮可能な)データを格納するときに、この動的適応記憶システム・キャッシュは、有利に、最大論理キャパシティについてより大きな部分を提示および/または利用可能となり、つまり、より高性能でより多くのデータを格納およびデリバすることができる。様々な実施形態によれば、より高位のレイヤは、記憶デバイス、図3の制御モジュール304のような制御モジュール、および図3のホスト306のようなホストの内の1つ以上を備える。例えば、実施形態によっては、制御モジュールは、動的適応記憶システム・キャッシュについてのタグ(つまり、そのデータ・コンテンツ)を管理することもある。その一方で、他の実施形態では、ホストが動的適応記憶システム・キャッシュのタグを管理する。
[0014]全般的に図1Aを参照して、動的適応キャッシュを管理する方法100を示す。動的適応キャッシュは、可変なキャッシュ・キャパシティをホストに提示し、任意におよび/または選択的に動的適応キャッシュと共に含まれる記憶デバイスの物理サイズよりも大きい論理サイズをホストに提示すること可能にする。本方法100は、動的適応キャッシュに対しホストからデータを受け取るステップ102、およびホストから受け取ったデータを圧縮データへと圧縮する(または大きさを縮小する)ステップ104を含む。圧縮したデータは、記憶デバイス106に格納される。次に、本方法100は、記憶デバイスにおいて利用可能なスペースの量を決定するステップ108を含む。本方法100の更なるステップには、記憶デバイスにおいて利用可能なスペースの量が構成閾値よりも大きいときに、ホストから受け取ったデータのサイズと圧縮の後のデータのサイズの差の少なくとも一部に従って、量をホストに提示した動的適応キャッシュが有する論理キャパシティを増量するステップ110を必要とする。様々な実施形態によれば、ホストに提示される論理キャパシティは、差の一部と等しい量によって増量され、差の一部に比例した量によって増量され、少なくとも差の一部である量によって増量され、その差の関数および他の要員(factor)を通じて計算され、そして、利用可能なスペース、物理サイズおよび他の要因における量の関数を通じて計算されたものの内1つ以上である。本方法は、データをホストから受け取る毎に、または定期的に実行され、その結果、動的適応キャッシュはデータの圧縮性に依存してサイズを変更する。例えば、方法100は、規則的な間隔、書き込みコマンドのような特定タイプのホスト・コマンド毎に、および/または利用可能なスペースの量が特定の量に変更されるときに実行することができる。
[0015]ホストから受け取ったデータを圧縮データに圧縮するステップ104は、圧縮(またはサイズを減らす他の技術)を実行するための適切なモジュールまたはハードウェアを用いて、記憶デバイスにおいて生じさせることができる。また、ホストから受け取ったデータを圧縮データに圧縮するステップ104は、圧縮データを記憶デバイスに格納する前に制御モジュールにおいて完結させることもできる。
[0016]図1Aに示される本方法100における記憶デバイスにおいて利用可能なスペースの量を決定するステップ108は、さまざまな方法で実行することができる。データを圧縮するステップ104が制御モジュールにおいて実行される例では、記憶デバイスの利用可能スペースの量を決定するステップ108は単純化することができる。何故ならば、制御モジュールは受け取ったデータのサイズおよび圧縮後のデータのサイズを自動的に決定することができ、また、この情報に基づいて記憶デバイスに残された利用可能スペースの量を簡単に決定することができるからである。
[0017]圧縮データをホストから受け取ったデータを圧縮するステップ104が記憶デバイスにおいて生じる場合には、記憶デバイスの利用可能スペース量を決定するステップ108は、同期モデルを用いて実行することができる。同期モデルの下では、記憶デバイスにおける利用可能なスペースの量が構成閾値を超過するときに、記憶デバイスは、一時中止(interrupt)のような信号を動的適応キャッシュの制御モジュールに送信する。制御モジュールは、次いで、リード・バッファまたは他のコマンドのような規定のコマンドを通じて利用可能なスペースの量を読み取るために、記憶デバイスに問い合わせすることになる。代替の実施形態において、この利用可能なスペースは、非同期モデルを用いて決定される。非同期モデルの下では、制御モジュールは、所与の時間に利用可能なスペースを決定するために記憶デバイスに動的に問い合わせをし、そして、定期的に記憶デバイスへの問い合わせを継続して、利用可能スペースが設定閾値を超過したかどうかを判断する。
[0018]方法100はまた、利用可能なスペースの量が予約量より少ないときに、記憶デバイスのスペースを開放するステップを含むこともできる。これは、クリーン・エントリのようなキャッシュのエントリのいくつかを廃棄する(decommission)こと、記憶デバイスにTRIM要求を発行すること、キャッシュのタグ・メモリの1つ以上のエントリを無効にすること、その他手段のうちの1つ以上によって達成することができる。このステップの目的は、動的適応キャッシュが、記憶デバイスのスペースの量を予約することにより、ホストに対し特定の最小固定サイズを保証できることを確実にすることである。データの圧縮性を可変的なものとすることができるため、スペースの予約量はストレージ・デバイスにおいて維持(preserve)される。その結果、動的適応キャッシュが最大キャパシティに近いときに、この動的適応キャッシュはデータをなおも格納することができ、および/または特定レベルの性能をなおも供給することができる。ホストに対する特定の最小固定サイズ、およびデータ圧縮の可変的性質を保証する要件のために、保守的に予約量を設定し、記憶デバイスが満杯になるリスクを回避し、および/または特定のレベル以下に性能が低下するのを回避することが望ましい。保守的に予約量を設定することも重要である。何故ならば、動的適応キャッシュは、システムの制約に依り記憶デバイスのスペースを開放するステップを、即座に実施することが常にはできないこともあるからである(例えば、何故ならば、TRIM命令は記憶デバイスによる読み出し/書き込み命令と並行して、または記憶デバイスが本来の命令キュー(native command queuing)を用いるか否かに依存しては実行することができないからである。)。
[0019]動的適応キャッシュを管理する方法100の更なるステップは、記憶デバイスにおいて利用可能なスペースの量が予約量に接近している、および/または予約量より少ないときに、信号を記憶デバイスから制御モジュールに送信するステップを含む。このステップの目的は、記憶デバイスにおいて利用可能スペースが不足しているときに、制御モジュールが(例えば、記憶デバイスのスペースを開放することにより)適時に応答できることを確実にすることである。
[0020]図1Bを全般的に参照する。動的適応キャッシュを管理する方法114が示される。方法114は、ホストからデータを受け取るステップ116、および、受け取ったデータを圧縮データに圧縮する(その他サイズを減らす)ステップ118を含む。本方法のその次のステップは、圧縮データを格納するステップ120である。本方法の更なるステップは、利用可能な量を決定するステップ122である。本方法は、次いで、受け取ったデータのサイズと圧縮データのサイズの間の差の少なくとも一部をホストに提示するステップを含む。様々な実施形態によれば、ホストに提示するステップ124は、利用可能なスペースの量が構成閾値より大きいときに、定期的に、ホストから受け取った多くの命令において周期的に、およびホストからの要求時に、のうちの1つ以上のときに実行される。
[0021]図1Bに示される方法はまた、利用可能なスペースの量が予約量より少ないときに、記憶デバイスにおけるスペースを開放するステップも含むこともできる。本方法はまた、利用可能なスペースの量が予約量に接近し、および/または予約量より少ないときに、信号を送るステップ、ならびに、利用可能なスペースの量を決定するために恐らくは問合わせを送るステップを含むこともできる。本方法114は、データをホストから受け取るごとに実行することができる。
[0022]図2A〜2Fを全般的に参照する。動的適応キャッシュ200の実施例が示される。図2Aは、初期時間間隔(t)における、論理スペース202および物理記憶スペース204を含む動的適応キャッシュ200を示す。論理スペース202は、ホストに提示される記憶スペースであり、論理スペース202のサイズは時間とともに変化する。図2Aに示すように、初期時間間隔(t)において、ホストから受け取ったデータはなく、動的適応キャッシュ200の論理スペース202および物理記憶スペース204は空である。論理スペース202が図2A〜2Fの物理記憶スペース204に隣接して示されるが、論理スペース202および物理記憶スペース204の相対的なサイズの関係性については何ら関連がない。様々な実施形態によれば、論理的スペース202は、物理記憶スペース204より少ないデータを格納することできる、物理記憶スペース204と同一の非圧縮性データの量を格納することができる、データが非圧縮であれば物理記憶スペース204が格納することができるであろう量より多くのデータを格納できる、特定の最大サイズよりも常に少ない、および、特定の最小限のサイズよりも常に大きい、の内の1つ以上である。
[0023]図2Bは、データを動的適用キャッシュ200からホストに受け取った後の第1の時間間隔(t)における動的適応キャッシュ200を示している。データは、圧縮されておらず、論理的スペース202の非圧縮のデータ・スペース206を必要とする。データは、圧縮データ・スペース208に圧縮され、物理記憶スペース204に格納される。圧縮(圧縮データ・スペース208)の後のデータのサイズは、圧縮される前のデータのサイズ(非圧縮のデータスペース206)よりも通常は小さい。但し、このことはデータの圧縮性に依存する。
[0024]図2Cは、tにおける動的適応キャッシュ200を示す。時間tにおいて、ホストに提示される、動的適用キャッシュ論理スペース202は、時間tにおけるデータの圧縮の結果として再利用されるスペースの少なくとも一部に従う量を増量することになる。圧縮を通じて取得されるスペースは、再利用スペース210であり、非圧縮のデータ・スペース206のサイズと圧縮データ・スペース208のサイズとの間の差に等しい。図2Cは、論理スペース202に付加された再利用スペース210を示す。再利用スペース210は、ホストに提示される論理スペース202に付加される。このようにして、動的適応キャッシュ200がより大きい論理的スペース202をホストに提示することを可能にする。一実施形態において、再利用スペース210の全サイズがホストに提示されているが、再利用スペース210の一部のみをホストに提示し、また、物理記憶スペース204における再利用スペース210の一部を予約することも可能である。
[0025]図2Dは、付加データが論理的スペース202からホストに受け取られた後の時間tにおける動的適応キャッシュ200を示す。データは、圧縮されておらず、論理的スペース202における第2の非圧縮のデータ・スペース212を占有する。データは圧縮され、第2の圧縮データ・スペース214として物理記憶スペース204に格納される。第2の圧縮データ・スペース214のサイズは、データが少なくとも部分的に圧縮可能であるときに、第2の非圧縮のデータ・スペース212のサイズより少ない。圧縮によって取得されるスペースは、第2の再利用スペース216と称され、これは、第2の非圧縮データ・スペース212と第2の圧縮データ・スペース214の差に等しい。論理スペース202の有効サイズは、図2Dに示すように、第2の再利用スペース216のサイズに従う量によって増量される。第2の再利用スペース216は、論理スペース202に付加され、それによって、より大きな動的適応キャッシュ200のホストへの提示を容易にする。
[0026]図2Eは、時間tにおいて、動的適応キャッシュ200tを示す。時間tにおいて、付加データが、動的適応キャッシュ200に受け取られる。データは、非圧縮であり論理スペース202において第3の非圧縮データ・スペース220を占有し、圧縮されて、物理記憶スペース204における第3の圧縮スペース222に格納される。この時に、物理記憶スペース204は、ほぼ満杯(full)であり、その最大キャパシティにほとんど達している。スペースの量が物理記憶スペース204に予約されており、その結果、物理記憶スペース204が満杯になるのを防止する。物理記憶スペース204が予約スペースの閾値に達するのに十分になり始めた場合には、スペースは動的適応キャッシュ200によって開放されなければならない。
[0027]図2Fは、時間tにおける動的適応キャッシュ200を示す。時間tにおいて、スペースは物理記憶スペース204に開放されており、その結果、物理記憶スペース204はもはや完全に満杯になるという危険はない。開放されたスペース224は、物理記憶スペース204に戻されたので、もはや最大キャパシティに接近しない。開放されたスペース224は、1つ以上の圧縮データ・スペース208、第2の圧縮データ・スペース214、および第3の圧縮スペース222の内の1つ以上から、例えばトリミングによって、データを開放できている。データはまた、更なる圧縮を受けることもあり、その結果、より小さい第3の圧縮スペース222となる。
[0028]図2Fはまた、ホストに提示される、論理スペース202の増加の総量を示し、動的適応キャッシュ200が、論理スペース202を提示することを反映する。論理スペース202は、変更することができ、また、いくつかの実施形態では、物理記憶スペース204よりも大きい場合もある。図2A〜2Fに示されるプロセスは、ホストからデータが受け取られる毎に実行することができ、その結果、サイズを動的に変更し、動的に適応されるキャッシュとなる。
[0029]ホストに提示される論理スペースのサイズは、ホストから受け取ったデータおよび利用可能なスペースの量についての、圧縮性のような縮小に応じて変動する。データは、無損失の圧縮アルゴリズムまたは動的適応キャッシュに適した他のデータ・リダクションの方法によって縮小することができる。データ・エントロピーが100%となるときは、データは圧縮可能(すなわち縮小可能)ではなく、動的適応キャッシュは、いかなるスペースも再利用することができず、論理スペースのサイズを増やすことによりそれをホストに提示することができない。データ・エントロピーが100%未満であるときは、データは圧縮可能であり、また、動的適応キャッシュは圧縮によって保存されるスペースを再利用することができ、また、この量の少なくとも一部によって論理スペースを拡張することができる。ホストから受け取ったデータの圧縮性が、非圧縮データから高圧縮可能データにわたって変化させることができるので、動的適応キャッシュのサイズは受け取られたデータに従って動的に変更する。
[0030]図3を全般的に参照して、本開示による動的適応キャッシュ格納のための例示的なシステム300を示す。システム300は、コンピュータ・システムまたはコンピュータ・デバイスとすることができる。システム300は、記憶デバイス302、制御モジュール304およびインタフェース・モジュール306を含む。システム300は、ホスト308からのデータを送信および受信するために用いられる。制御モジュール304は、ホスト308からデータを受け取るように構成され、データを圧縮するために用いることができる。代替的に、データ圧縮は、記憶デバイス302において生じる場合がある。いずれの場合でも、圧縮データは、記憶デバイス302に格納される。様々な実施形態によれば、記憶デバイス302は、受け取ったデータを格納するための記憶メモリを備えており、静的ランダム・アクセス・メモリ、動的ランダム・アクセス・メモリ、組込メモリ、NANDフラッシュ・メモリのような不揮発性メモリ、半導体メモリ、および任意のその他のタイプのメモリ・デバイスの内の1つ以上である。
[0031]制御モジュール304はまた、圧縮によって得たスペースの量を決定するために用いることもでき、そのスペースは再利用スペースと称することができる。再利用スペースは、圧縮の前にホスト308から受け取ったデータのサイズと圧縮データのサイズの差に等しく、ホストから受け取ったデータ、および記憶デバイスに現在格納されているデータに合計される。再利用スペースの少なくとも一部は、インタフェース・モジュール306を用いて、ホスト308に提示し、および/または利用可能とすることができる。いくつかの実施形態では、インタフェース・モジュール306は、ホスト308に論理キャパシティを提示するように設定されることもある。ホストに提示される論理キャパシティのサイズは、変化することができるが、所与の時間での記憶デバイス302の利用可能な論理キャパシティと同様、再利用スペースの少なくとも一部を含むことができる。
[0032]図3に示されるシステム300の制御モジュール304はまた、記憶デバイス302において利用可能な論理的スペースを決定するように構成することもできる。制御モジュール304は、通信により記憶デバイス302に結合され、記憶デバイス302から信号を受信することができる。制御モジュール304はまた、記憶デバイスからの信号の受信に基づくか、あるいは、所与の時間間隔、もしくは、数多くの命令および/または記憶デバイスから受け取った応答における周期、のいずれかにおいて記憶デバイス302に問い合わせるようにも構成される。
[0033]図3に示されるシステム300の記憶デバイス302は、例えばNANDフラッシュ・ベース・ストレージのような不揮発性半導体メモリを有するソリッド・ステート・ディスクでもよい。記憶デバイス302は、利用可能なスペースの量が構成閾値に接近しおよび/または構成閾値に達したときに、制御モジュール304に信号を送るように構成することができる。記憶デバイス302はまた、記憶デバイス302がホスト308からのデータを格納でき、いつでも特定の最低限の性能レベルを提供できることを確実にするために、スペースの予約量を維持するように構成することもできる。例えば、いくつかの実施形態では、ライト・アンプリフィケーション(write amplification)が特定のレベル未満であることを確実にするために、スペースの予約量が維持されることもある。
[0034]様々な実施形態によれば、図3に示されるシステム300の制御モジュール304は、I/Oコントローラ、Raid―On―Chip(ROC)コントローラ、ホスト・バス・アダプタ、記憶デバイスをホストにインタフェースするための任意のチップ、ならびに、キャッシュ管理および/またはキャッシュ制御について先に述べた任意の組み込みのうちの1つ以上である。
[0035]本開示の図4Aを参照する。動的適応キャッシュ格納のためのシステム300を提供する。システム300は、インタフェース・モジュール306、制御モジュール304、および記憶デバイス302を含む。制御モジュール304は、キャッシュを管理しており、キャッシュ・タグ402は制御モジュール304内に位置する。システム300の記憶デバイス302はまた、キャッシュ・データ414も含む。システム300は、通信により、インタフェース410を介してホスト308に結合される。ホスト308は、プロセッサ406およびメモリ412を含む。
[0036]本開示の図4Bにおいて、動的適応キャッシュ格納についてのシステム300が提供され、ホスト308がキャッシュを管理するときの構成を示している。図4Bにおいて、システム300は、キャッシュ・データ414をシステム300が有する記憶デバイス302内に含む。ホスト308は、キャッシュ・タグ402をホスト308のメモリ412に含む。
[0037]ホスト308のメモリ412は、データを格納することができる任意のシステムおよび/またはデバイスとすることができる。一実施形態において、メモリ412は、プロセッサ406によって実施される際に、プロセッサ406に、動的適応キャッシュを管理するための方法を実行させるコンピュータ・コードを格納する。
[0038]図4Aおよび4Bに示されるシステム300は、任意的におよび/または選択的に構成され(例えば、メモリ412に、および/または記憶デバイス302に、および/または例示されない他のメモリに、格納されるソフトウェアおよび/またはファームウェアを実行し、ならびに特定用途向けの回路などを使用する等)、ホスト308から送られ、受け取ったデータについての動的適応キャッシュ格納を提供する。システム300は、物理キャッシュ・サイズを超過するホスト308に、論理キャッシュ・サイズまたは有効キャッシュ・サイズを提示することができる。
[0039]本開示はまた、図5に示すように方法500にも向けられる。方法500は、記憶インタフェースを介した記憶デバイスによって、複数のデータ部分を受け取るステップ502を含む。記憶インタフェースは、SATAインタフェース、SASインタフェース、PCIeインタフェース、または他の適切な記憶インタフェースを含むことができる。本方法の次のステップは、データ部分のそれぞれを縮小して、縮小データ部分を形成すステップ504を必要とし、データ部分の内少なくともいくつかが、縮小データ部分のそれぞれよりも大きいサイズを有する。様々な実施形態によれば、細分化や圧縮のような1つ以上のデータ・リダクション技術が用いられる。本方法はまた、このデータ部分を、記憶デバイスのデータ・メモリ内に縮小されたデータ部分として格納するステップ506を含む。データ・メモリはまた、不揮発性データ・メモリとすることができる。本方法の最後のステップは、データ・メモリの利用に従って、データ・メモリの論理キャパシティを決定するステップ508である。
[0040]本方法500において、データ・メモリの論理キャパシティは、例えば、利用率に比例することにより、すなわち、利用率についての関数(function)によって、データ・メモリの利用に従って変化する。次いで、データ・メモリの利用は、いくつのデータ部分がデータ・メモリに格納されているかに従って、および格納したデータ部分の縮小に従って変化する。第1の実施例では、より多くのデータ部分が、データ・メモリの未使用の論理ブロックに以前に格納されているために、データ・メモリの利用率は増加する。第2の実施例では、以前に格納されたデータ部分が、データ部分で上書きされ、より大きな程度縮小されるために、データ・メモリの利用率は減少する。第3の実施例では、格納されたデータ部分が例えばトリミングにより削除されるために、データ・メモリの利用率は減少する。
[0041]本方法500のいくつかの実施例において、論理キャパシティが、供給された論理キャパシティのような決定された最大値を有することもある。様々な実施形態によれば、提供された論理キャパシティは、データ部分がこれ以上縮小できないと想定して、データ・メモリの物理サイズよりも小さい、同じ、または大きい量を格納することができる。更なる実施形態において、供給された論理キャパシティは、データ部分がこれ以上縮小できないと想定して、オーバー・プロビジョン(over-provisioning)した量の物理サイズを提供するために、データ・メモリの物理サイズよりも小さいデータ部分の量を格納することができる。オーバー・プロビジョンは、例えばライト・アンプリフィケーションによって、記憶デバイスの性能を改善する場合もある。
[0042]供給された論理キャパシティ以下の使用可能な論理キャパシティは、データ・メモリの利用に少なくとも部分的に基づいて決定される。様々な実施形態によれば、使用可能な論理キャパシティは、利用率の減少により増加した、利用率の増加により減量した、利用率の一次関数、利用率の非線形関数、周期的に変更した、記憶デバイスによって受信した数多くの命令において周期的に変更した、そして、利用率が決定量より多くのもので変更されるときに変更した、の内の1つ以上である。使用可能な論理キャパシティを変化させることにより、記憶デバイスにデータを格納している動的適応キャッシュが、使用可能な論理キャパシティに従って有利な量のデータを格納することを可能にし、これにより、ここに格納したデータの減量に従って性能を増大させるのを可能にする。
[0043]図5に示される方法500はまた、特定の閾値の超過に応じてデータ・メモリから縮小したデータ部分のうち1つ以上を削除するステップを含むこともできる。このステップでは、特定の閾値は、特定の値より小さい記憶デバイスのライト・アンプリフィケーションを維持することができる。一実施形態において、データ・メモリから縮小データ部分のうち1つ以上を削除するステップは、少なくとも部分的に、記憶デバイスのタグ・メモリの1つ以上のエントリを無効にすることによって達成することができる。
[0044]図5に示される方法500はまた、追加のステップを含むこともできる。記憶デバイスがデータ部分の特定の一つを要求する場合、本方法は、データ・メモリからそれぞれ縮小データ部分を読み取るステップ、特定のピン部を回復するためにそれぞれの縮小データ部分を回復する(reverse)ステップ、および要求に応じて特定のデータ部分を戻すステップを含むことができる。
[0045]本開示において、開示した方法は、命令セットまたはデバイスによって読み取り可能なソフトウェアとして実施することができる。さらに、開示した方法のステップについて特定の順序または階層が、例示の手法における実施例であるものと理解される。設計の優先度に基づいて、本方法のステップについての特定の順序または階層を、開示した主題の範囲内に維持しながら再配置することができる。付随的な方法では、サンプルの順序で様々な本構成要件を特許請求し、必ずしも提示された特定の方法や階層に限定することを意味するものではない。
[0046]本開示および多数のその効果は、先に述べた説明によって理解されることになり、また、様々な変更を、本開示の主題から逸脱することなく、または、その実質的な優位性の全てを犠牲にすることなく、コンポーネントの形式、構成および配置において行うことができるのは明らかである。記載した形式は、単に説明のためにすぎず、このような変更を包含するために添付の特許請求の範囲を意図するものである。
[0047]先に説明した発明の詳細な説明は、ブロック図、フローチャートおよび/または実施例を用いることによって、デバイスおよび/またはプロセスについての様々な実施形態の記載を含むことができる。その限りにおいて、ブロック図、フローチャートおよび/または実施例が一つ以上の機能および/または動作を含むように、その技術分野に属する当業者にとって、このようなブロック図、フローチャートまたは実施例における各機能または動作が、別個におよび/または集合的に、広範囲にわたるハードウェア、ソフトウェア、ファームウェアまたは仮想的な任意のこれらの組み合わせによって実施することができることが理解されよう。一実施形態において、本願明細書に記載される主題のいくつかの部分が、用途特定集積回路(ASIC;Application Specific Integrated Circuits)、フィールド・プログラム可能ゲート・アレイ(FPGAs;Field Programmable Gate Arrays)、デジタル信号プロセッサ(DSP;digital signal processors)その他、統合フォーマットで実施することができる。しかしながら、当業者にとって、本願明細書に開示される実施例のいくつかの態様が、全体的にまたは部分的に、1つ以上のコンピュータで起動する1つ以上のコンピュータ・プログラム)として(例えば、1つ以上のコンピュータ・システムで起動する1つ以上のプログラムとして)、1つ以上のプロセッサで起動する1つ以上のプログラムとして(例えば、1つ以上のマイクロ・プロセッサで起動する1つ以上のプログラムとして)、ファームウェアとして、または仮想的なこれらの任意の組み合わせとして、集積回路で等しく実施することができ、そして、回路の設計および/またはソフトウェアやファームウェアのコードの記述がこの開示から上手く当業者のスキルの範囲内となることが認められよう。
[0048]加えて、当業者にとって、本願明細書において記載している主題の機構が、様々な形態のプログラム製品として配布されることができ、また、本願明細書において記載している主題の例示の実施形態が、実際に配布を行うために用いる媒体を支持している(bear)特定のタイプの信号に関係なく、適用することが認められよう。信号が支持している媒体の例としては、例えばフロッピー(登録商標)・ディスク、ハード・ディスク・デバイス、ソリッド・ステート・ディスク、コンパクト・ディスク(CD)、ディジタル・ビデオ・ディスク(DVD)およびデジタル・テープ、コンピュータ・メモリ等のような記録可能タイプ媒体、ならびに、例えばデジタルおよび/またはアナログの通信媒体(例えば、光ファイバ・ケーブル、導波管、有線通信リンク、無線通信リンク(例えば、送信器、受信器、送信ロジック、受信ロジックなど)など))のような伝送タイプ媒体を含むが、これに限定されない。
[0049]当業者にとって、最高水準の技術が、システムについてのハードウェア、ソフトウェアおよび/またはファームウェアでの実施態様の間に残される相違点はほとんどないという点への進歩を含むことができ、また、ハードウェア、ソフトウェアおよび/またはファームウェアの使用は、(特定のコンテキストではハードウェアおよびソフトウェアの選択が重要になる点では常にではないが、)通常は、デザイン選択表示コストと効率性との間のトレードオフとなることができることが認められるであろう。当業者にとって、本願明細書において記載されるプロセス、システムおよび/または他の技術を遂行することができる様々な媒体(vehicle)がある(例えば、ハードウェア、ソフトウェアおよび/またはファームウェア)こともあり、また、好適な媒体は、プロセス、システムおよび/または他の技術を展開することができるコンテキストで変更することができるものと認める。例えば、実装者が速度および精度が卓越したものと断定する場合、実装者は、主にハードウェアおよび/またはファームウェア媒体を選択することができる。代替的に、フレキシビリティが卓越したものである場合、実装者は、主にソフトウェア実装について選択することができる。または、再度代替的に、実装者は、ハードウェア、ソフトウェアおよび/またはファームウェアのいくらかの組合せを選択することができる。したがって、本願明細書において記載されるプロセス、デバイスおよび/または他の技術を遂行することができるいくつかの使用可能な媒体とすることができる。そして、これらのいずれについても、利用されることになる媒体が、媒体が配置されることになるコンテキストに依存した選択となり、また、実装者が有する特定の懸念(例えば、速度、フレキシビリティ性または予測性)があり得、いずれもが変化できるという点で、他よりも本質的に優れたものとはならない。当業者にとって、実施の光学態様として、典型的には光学的に順応されたハードウェア、ソフトウェア、またはファームウェアを採用することになることが認められるであろう。

Claims (20)

  1. 記憶デバイスを含む動的に適用されるキャッシュを管理する方法であって、
    データをホストから受け取
    前記受け取ったデータを圧縮データに圧縮
    前記圧縮データを格納
    前記記憶デバイス上の利用可能なスペース量を決定
    前記記憶デバイス上の前記利用可能スペース量が設定閾値よりも大きいときに、前記受け取ったデータのサイズと前記圧縮データのサイズとの差の少なくとも一部に従う量によって、前記ホストに提示される論理キャパシティを増量する
    ことを含む、方法。
  2. 前記利用可能スペース量が予約量よりも少ないときにスペースを開放することを更に含む、請求項1に記載の方法。
  3. 前記利用可能スペース量が前記予約量よりも少ないときに前記記憶デバイスのための制御モジュールへ信号を送信することを更に含む、請求項2に記載の方法。
  4. 前記利用可能スペース量を決定することが、
    前記利用可能スペース量が前記設定閾値よりも大きいときに前記記憶デバイスのための制御モジュールへ信号を送信し
    前記利用可能スペース量を決定するために前記記憶デバイスに問い合わせを行
    ことを含む、請求項1に記載の方法。
  5. 該方法が、データが前記ホストから受け取られる毎に実行される、請求項1に記載の方法。
  6. 前記受け取ったデータを圧縮データに圧縮することが、無損失のアルゴリズムを用いて前記データを圧縮することを含む、請求項1に記載の方法。
  7. 動的に適用されるキャッシュ格納のためのシステムであって、
    ホストから受け取ったデータを格納するための物理キャパシティを有する記憶デバイスと、
    前記ホストから受け取った前記データを圧縮データ・サイズに圧縮するための圧縮モジュールと、
    制御モジュールであって、前記ホストからデータを受け取るように構成され、前記記憶デバイス上の利用可能スペース量を決定するように構成され、及び前記ホストから受け取った前記データのサイズと前記圧縮データのサイズとの差に基づき再利用されるスペースを決定するように構成される、制御モジュールと、
    前記再利用されるスペースの少なくとも一部を含み、及び可変サイズを有する、論理キャパシティを、前記ホストに提示するように構成される、インタフェース・モジュールと
    を備える、システム。
  8. 前記制御モジュールが、前記記憶デバイス上の前記利用可能スペース量が予約量よりも少ないときに、前記記憶デバイス上のスペースを開放するように更に構成される、請求項7に記載のシステム。
  9. 前記記憶デバイスが半導体ドライブである、請求項7に記載のシステム。
  10. 固定の最小論理キャパシティが前記ホストに提示される、請求項7に記載のシステム。
  11. 方法であって、
    記憶デバイスが記憶インタフェースを介して複数のデータ部分を受け取
    前記データ部分のそれぞれを縮小して各縮小データ部分を形成、前記データ部分のうちの少なくとも幾つかが前記各縮小データ部分よりも大きいサイズを有
    前記データ部分を前記記憶デバイスのデータ・メモリ内に前記縮小データ部分として格納
    前記データ・メモリの利用率(utilization)に従って前記データ・メモリの論理キャパシティを決定、前記データ・メモリの前記論理キャパシティが前記縮小に従って変化することからなり、
    前記論理キャパシティが、前記データ部分の総サイズと前記縮小データ部分の総サイズとの差が増すにつれて増量される、
    方法。
  12. 前記論理キャパシティが、前記データ・メモリが格納することができる前記データ部分の数に対応する、請求項11に記載の方法。
  13. 前記利用率が特定の閾値を超過したことに応じて、前記データ・メモリから前記縮小データ部分のうちの1またはそれ以上を削除することを更に含む、請求項11に記載の方法。
  14. 前記削除することが、前記記憶デバイスのタグ・メモリにおける1またはそれ以上のエントリを無効にすることを含む、請求項13に記載の方法。
  15. 前記特定の閾値が、前記記憶デバイスのライト・アンプリフィケーションを特定の値未満に維持するものである、請求項13に記載の方法。
  16. 前記論理キャパシティが、前記データ部分の総サイズと前記縮小データ部分の総サイズとの差が減るにつれて減量される、請求項11に記載の方法。
  17. 前記記憶インタフェースが、SATAインタフェース、SASインタフェース、およびPCIeインタフェースのうちの1つである、請求項11に記載の方法。
  18. 前記データ・メモリが不揮発性データ・メモリである、請求項11に記載の方法。
  19. 前記縮小することが圧縮することを含む、請求項11に記載の方法。
  20. 前記データ部分のうちの特定の1つについての前記記憶デバイスへの要求に応じて、前記データ・メモリから前記各縮小データ部分を読み取、前記各縮小データ部分の縮小を回復させて(reverse)前記特定のデータ部分を回復さ、前記特定のデータ部分をホストに戻すことを更に含む、請求項11に記載の方法。
JP2013054867A 2012-03-23 2013-03-18 動的に適応されるキャッシュ格納のためのシステム Active JP6228374B2 (ja)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201261614545P 2012-03-23 2012-03-23
US201261614548P 2012-03-23 2012-03-23
US61/614,548 2012-03-23
US61/614,545 2012-03-23
US13/566,204 US9158695B2 (en) 2011-08-09 2012-08-03 System for dynamically adaptive caching
US13/566,204 2012-08-03

Publications (3)

Publication Number Publication Date
JP2013200868A JP2013200868A (ja) 2013-10-03
JP2013200868A5 JP2013200868A5 (ja) 2016-04-28
JP6228374B2 true JP6228374B2 (ja) 2017-11-08

Family

ID=47845763

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013054867A Active JP6228374B2 (ja) 2012-03-23 2013-03-18 動的に適応されるキャッシュ格納のためのシステム

Country Status (5)

Country Link
EP (1) EP2642397A1 (ja)
JP (1) JP6228374B2 (ja)
KR (1) KR102022721B1 (ja)
CN (1) CN103324586B (ja)
TW (1) TWI584120B (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104699219B (zh) * 2013-12-10 2020-06-23 联想(北京)有限公司 一种电子设备及信息处理方法
CN104852812B (zh) * 2015-04-03 2018-08-07 上海航天电子通讯设备研究所 1553b总线远置单元自适应收发数据方法
CN106484310B (zh) * 2015-08-31 2020-01-10 华为数字技术(成都)有限公司 一种存储阵列操作方法和装置
CN105335100B (zh) 2015-09-29 2018-09-21 华为技术有限公司 一种数据处理方法、装置及闪存设备
EP3755212A4 (en) * 2018-02-21 2022-04-06 Patchd, Inc. PERSONAL MONITORING SYSTEMS AND PROCEDURES
US10963332B2 (en) * 2018-12-17 2021-03-30 Western Digital Technologies, Inc. Data storage systems and methods for autonomously adapting data storage system performance, capacity and/or operational requirements
CN113722241A (zh) * 2021-08-30 2021-11-30 锐掣(杭州)科技有限公司 数据处理方法、装置、设备、可读存储介质及程序产品

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4942552A (en) * 1986-11-20 1990-07-17 Allen-Bradley Company, Inc. Method and apparatus for saving and performing industrial control commands
US6877081B2 (en) * 2001-02-13 2005-04-05 International Business Machines Corporation System and method for managing memory compression transparent to an operating system
EP1421501B1 (en) * 2001-08-24 2006-08-02 Intel Corporation A general intput/output architecture, protocol and related methods to implement flow control
US6968424B1 (en) * 2002-08-07 2005-11-22 Nvidia Corporation Method and system for transparent compressed memory paging in a computer system
US20050132161A1 (en) * 2003-12-15 2005-06-16 Nokia Corporation Creation of virtual memory space in a memory
US7644239B2 (en) * 2004-05-03 2010-01-05 Microsoft Corporation Non-volatile memory cache performance improvement
US7243191B2 (en) * 2004-08-31 2007-07-10 Intel Corporation Compressing data in a cache memory
WO2007135602A1 (en) * 2006-05-24 2007-11-29 Koninklijke Philips Electronics N.V. Electronic device and method for storing and retrieving data
US7779056B2 (en) * 2006-09-15 2010-08-17 Sandisk Corporation Managing a pool of update memory blocks based on each block's activity and data order
KR100823171B1 (ko) * 2007-02-01 2008-04-18 삼성전자주식회사 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법
JP2009026296A (ja) * 2007-06-21 2009-02-05 Toshiba Corp 電子デバイス、メモリデバイス、ホスト装置
US8078787B2 (en) * 2007-06-22 2011-12-13 Apple Inc. Communication between a host device and an accessory via an intermediate device
WO2012039002A1 (en) * 2010-09-21 2012-03-29 Hitachi, Ltd. Semiconductor storage device and data control method thereof

Also Published As

Publication number Publication date
CN103324586B (zh) 2018-01-12
CN103324586A (zh) 2013-09-25
JP2013200868A (ja) 2013-10-03
EP2642397A1 (en) 2013-09-25
TW201342063A (zh) 2013-10-16
TWI584120B (zh) 2017-05-21
KR102022721B1 (ko) 2019-09-18
KR20130108117A (ko) 2013-10-02

Similar Documents

Publication Publication Date Title
JP6228374B2 (ja) 動的に適応されるキャッシュ格納のためのシステム
US9158695B2 (en) System for dynamically adaptive caching
US11797191B2 (en) Systems and methods for storing data in SSD
US8239648B2 (en) Reclamation of thin provisioned disk storage
US10019352B2 (en) Systems and methods for adaptive reserve storage
CN109725840B (zh) 利用异步冲刷对写入进行节流
US8793466B2 (en) Efficient data object storage and retrieval
US8250335B2 (en) Method, system and computer program product for managing the storage of data
US7584229B2 (en) Method and system for priority-based allocation in a storage pool
US7792882B2 (en) Method and system for block allocation for hybrid drives
US8539191B2 (en) Estimating space in a compressed volume
US20150278274A1 (en) Retrieving data in a storage system using thin provisioning
US9330105B1 (en) Systems, methods, and computer readable media for lazy compression of data incoming to a data storage entity
CN104272272A (zh) 混合储存集合去除重复
US20120117328A1 (en) Managing a Storage Cache Utilizing Externally Assigned Cache Priority Tags
US9311002B1 (en) Systems, methods, and computer readable media for compressing data at a virtually provisioned storage entity
US9182912B2 (en) Method to allow storage cache acceleration when the slow tier is on independent controller
US20090300315A1 (en) Reserve Pool Management in Virtualized Storage Systems
US20150363134A1 (en) Storage apparatus and data management
CN108139972B (zh) 用于管理硬件辅助数据压缩中的存储器碎片的方法和设备
US8862819B2 (en) Log structure array
US9983826B2 (en) Data storage device deferred secure delete
US20170228370A1 (en) Performing nearline storage of a file
US9600197B2 (en) Low power storage array with metadata access
WO2016032955A2 (en) Nvram enabled storage systems

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20140801

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20140804

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160309

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160309

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170414

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171013

R150 Certificate of patent or registration of utility model

Ref document number: 6228374

Country of ref document: JP

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