JP5943096B2 - 複合不揮発性記憶装置のためのデータ移行 - Google Patents

複合不揮発性記憶装置のためのデータ移行 Download PDF

Info

Publication number
JP5943096B2
JP5943096B2 JP2014557710A JP2014557710A JP5943096B2 JP 5943096 B2 JP5943096 B2 JP 5943096B2 JP 2014557710 A JP2014557710 A JP 2014557710A JP 2014557710 A JP2014557710 A JP 2014557710A JP 5943096 B2 JP5943096 B2 JP 5943096B2
Authority
JP
Japan
Prior art keywords
unit
data storage
storage device
data structure
volatile
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
JP2014557710A
Other languages
English (en)
Other versions
JP2015512098A (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.)
Apple Inc
Original Assignee
Apple Inc
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 Apple Inc filed Critical Apple Inc
Publication of JP2015512098A publication Critical patent/JP2015512098A/ja
Application granted granted Critical
Publication of JP5943096B2 publication Critical patent/JP5943096B2/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
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • 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/0673Single storage device
    • G06F3/068Hybrid storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/217Hybrid disk, e.g. using both magnetic and solid state storage devices
    • 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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Description

本出願は、2012年2月16日に出願した仮出願第61/599,930号の優位性を主張するものであり、この仮出願は、参照により本明細書に組み込まれている。本出願はまた、2012年2月16日に出願した、同時係属出願である第61/599,927号にも関連しており、これも参照により本明細書に組み込まれている。
本発明は、低速メモリ装置と高速メモリ装置とを複合した、複合不揮発性メモリ内の、データの記憶の管理方法に関する。複合ディスクシステムでは、大容量だが、アクセススピードは遅く、低価格である磁気ハードドライブと、半導体ドライブのような小型で、アクセススピードは速いが、高価な記憶装置とを組合せて論理ボリュームを形成することができる。これにより、磁気ハードディスクドライブ(HDD)の大容量が提供される一方で、半導体ドライブ(SSD)の高速アクセスのメリットも提供することができる。そのような複合ディスクを管理する従来技術は、LRU(least recently used)アルゴリズム、CLOCKアルゴリズム、又はSong Jiangが記載しているClockProアルゴリズムのようなアルゴリズムを使用してきた。これらの従来の技術は、複合ディスクの高速部分と低速部分の間のデータの割り当てを向上させることができる。けれども、複合ディスクの2つの部分間でデータを割り当てるためのこれらの技術で使用されるデータ構造を実装するためには、大容量DRAMのような、大容量のメインメモリが必要になるという点で、スペース効率が悪化しやすい。それ故、複合ディスクの2つ以上の構成要素間で、データを割り当てる、又は移行させるのに使用するデータ構造を記憶するのに、あまり大きなメモリを必要としない、改良されたスペース効率の良い技術が必要となる。
一実施形態では、半導体装置のような、高速不揮発性記憶装置と、磁気ハードドライブのような、低速不揮発性記憶装置へのアクセスの管理方法は、SSD装置のような高速不揮発性記憶装置内のユニットのセット内の各ユニットにアクセスするリセンシーを示す、第1のデータ構造を維持するステップと、HDD装置のような低速記憶装置内のユニット、又はブロックが、最近参照されたかどうか(例えば、最近参照されたのが1回だけであるユニット、又はブロック)を示す、第2のデータ構造を維持するステップとを含むことができる。一実施形態では、第2のデータ構造は、メモリオーバヘッドが小さいブルームフィルタのキューであってもよい。ブルームフィルタのキューは、低速の記憶装置内のユニット、又はブロックが最近参照されたかどうかということに関しては、大体の場合は正しいが、正しい解を常に提供するかついては保証はない。
本発明の他の特徴は、添付の図面と、下記の発明の詳細な説明から明らかになるであろう。
上記概要には、本発明の全ての態様の網羅的なリストを挙げてはいない。本発明は、上記で概説した種々の態様、更には、以下の詳細な説明の中で開示されている態様の適切な全ての組み合わせから実施可能とする全てのシステム及び方法も含むことも想定される。
本発明は、添付図面の図の例により説明するが、それに限定されることはない。また同じ参照記号は同じ要素を示している。
データ処理システムの例であり、本発明の実施形態に用いられている。 本発明の一実施形態に係る複合不揮発性メモリの例である。 クロックアルゴリズムと呼んでもよいアルゴリズムのデータ構造の例である。 本発明の一実施形態に係る本明細書に記載された、1つ以上の方法と共に使用することができるゴーストテーブルのようなデータ構造の例である。 本発明の少なくとも一実施形態に係る方法を描いたフローチャートである。 本発明の少なくとも一実施形態に係る方法を描いたフローチャートである。 本発明の一実施形態に係る方法を描いたフローチャートである。 本発明の少なくとも一実施形態と共に使用することができるブルームフィルタデータ構造の例である。 本発明の一実施形態に係る方法を示すフローチャートである。 本発明の一実施形態に係る方法を示すフローチャートである。
複合不揮発性データ記憶装置の管理を向上する方法を説明する。本発明の様々な実施形態や態様は、下記で議論する詳細を参照して説明し、添付の図面は、様々な実施形態を図示する。以下の記述や図面は、本発明を説明するものであり、本発明を制限するものと解釈するものではない。本発明の種々の実施形態に関する十分な理解をもたらすために、多くの具体的な詳細について述べる。だが、場合によっては、本発明の実施形態に関する議論を簡潔化するために、公知、または、従来の詳細については、説明しない。
本明細書中における「一実施形態(one embodiment)」又は「一実施形態(an embodiment)」への言及は、その実施形態に関連して説明される特定の機能、構造又は特徴を、本発明の少なくとも1つの実施形態の中に含まれることを意味する。本明細書における様々な箇所での、語句「一実施形態では」の出現は、必ずしも全てが同じ実施形態を言及しているものではない。以下の図面に描かれているプロセスは、ハードウェア(例えば、回路、専用ロジック)、(永続的な機械可読記憶媒体上の命令のような)ソフトウェア、又はその両者の組合せからなる、処理ロジックにより実施される。以下でプロセスについて幾つかの逐次的な操作の観点で述べるが、説明する操作の一部は、異なる順序で実施できることを認識すべきである。更に、一部の操作は、逐次的ではなく並列的に実施可能である。
図1は、データ処理システムの形式で、本明細書に記載された1つ以上の実施形態と共に使用することができる、コンピューティングシステム10の例を示す。システム10は、デスクトップコンピュータシステム、ラップトップコンピュータシステム、スマートフォン、又は他の電子装置や消費者電子装置でもよい。システム10は、当技術分野では周知のように、一実施形態ではSRAMでもよい、オプションキャッシュ14に接続された、1つ以上のマイクロプロセッサ、又は他の論理ユニット12を含むことができる。1つ以上のマイクロプロセッサ12が、1つ以上のバス18を介して残りのシステムに接続される。このバスは、1つ以上のマイクロプロセッサ12を、揮発性RAM16でもよい、メインメモリに接続する。一実施形態では、揮発性RAMは、コンピュータシステムで使用される従来のDRAMでもよい。コンピュータシステムでは、DRAMはバスを介して、システム10内の残りの構成要素に接続される。システム10はまた、1つ以上の入出力装置22を1つ以上のバス18を介して残りのシステムに接続する、1つ以上の入出力コントローラ20を備えることができる。システム10はまた、ソリッドステートドライブ形式のフラッシュメモリドライブと、従来の磁気ハードドライブの組合せのような複合ディスクでもよい不揮発性メモリ19を含む。
図2は、一実施形態に係る複合ディスクの一例を示す。不揮発性メモリ19は、ソリッドステートドライブ51と磁気ハードドライブ52を備える。この2つは、ファイルシステムやオペレーティングシステムにより、単一論理ボリューム、又はブロック装置として扱うことが可能であり、ソリッドステートドライブコントローラを有するコントローラ54、ハードディスクコントローラを有するコントローラ53のような、1つ以上のコントローラにより制御される。この1つ以上のコントローラは、バス18を介して、図2に示す複合ドライブをシステム10の残りの構成要素に接続する。当然のことだが、フラッシュメモリは高速不揮発性記憶装置の1つの形態であり、他の高速記憶装置は、高速記憶装置よりも低速な、従来の磁気ハードドライブ、又は他の不揮発性記憶装置でもよい低速記憶装置と共に、代わりに使用することができる。当然のことだが、この説明ではSSD、又はHDDといえば、高速、又は低速不揮発性記憶装置を意味するものと解釈されるものであり、限定したり任意の記憶装置技術に特化するとは解釈されない。
図3は、第1のデータ構造の例を示し、本発明の一実施形態に係るクロックアルゴリズムと共に使用される。一実施形態のクロックアルゴリズムは、従来技術で使用されている従来のクロックアルゴリズムに類似している可能性がある。このクロックアルゴリズムは、データ構造301を使用することができるが、このデータ構造は、クロックポインタ304を持つ環状キューでもよい。このクロックポインタは、クロックアルゴリズムに基づき、キュー内の特定の場所を指す。環状キュー内の各場所は、高速不揮発性メモリ装置内の特定のユニット、例えば、フラッシュメモリシステムを介して実装されたソリッドステートドライブに対応している。ある意味では、第1のデータ構造は、どのブロックがフリーで、どのブロックがハードドライブ上に割り当てられている(フリーでない)か、を示すファイルシステムにより維持されている、ブロック割り当てビットマップに類似している。
例えば、場所302は、SSD上のユニットゼロに対応し、右側の次のユニットはSSD上のユニット1に対応し、場所303は、SSD上の別のユニットに対応する。各場所では、SSD内の対応する記憶ユニットの状態を示す値が記憶されている。一実施形態では、2ビット値が使用でき、ゼロという値は、SSD上の特定のユニット内の、1つ以上のブロック、又は他の構成要素はフリーだが、ある場所の1という値は、SSD上の特定のユニットは最近参照されていない、2という値はSSD内のそのユニットは最近参照されたということを示すことができる。3という値は、あるユニットがSSDに固定され、HDDへ移せないことを示すことができる。あるいは、一実施形態では、ユニットへの特定のアクセス回数を追跡することができる、3ビットの値を使用することができる。この実施形態では、ゼロ値はそのユニットが、フリーであることを示すこともできる。つまり、1という値は、そのユニットが最近参照されていないことを示すことができ、最大値である7は、そのユニットが動けないことを示すことができる。他の値は、あるユニットが最近参照された回数を示すことができる。例えば、6という値は、最近5回参照されたことを示す。
一実施形態では、第1のデータ構造301は、以下の様に管理することができる。即ち、SSDからHDDに移す候補をアルゴリズムを見つける必要がある時は、クロックポインタ304を使用する。一実施形態では、そのユニットが最近参照されないことを意味する、1という値を持つユニットが見つかるまで、クロックポインタ304は、時計方向に1つのユニットから次のユニットへ走査する。一実施形態では、クロックポインタ304は反時計回りに走査することができる。もしユニット内の値が最大値に設定されると、そのユニットはSSDに固定され、HDDに移せなくなる。もしこの数値が1よりも大きいが、最大値ではなければ、クロックポインタが次のユニットに移る前に1だけ減らされ、最小値である1まで減らされる。SSD内の特定のユニットがアクセスされると、SSD上でそのユニットに対応する場所のカウント値を増やすことができる。この方法を使用すると、SSD上の頻繁にアクセスされるユニットは、SSD上のそのユニットに対応するデータ構造のユニット内で、予め設定したカウント値の上限に達するまでカウント値が益々大きくなる。けれども、移動する候補が必要となる度に、クロックポインタ304がユニットからユニットへ掃引するので、順番に並んだユニット(例えば、302と303)各々は、クロックポインタ304がそのユニットを通過するたびに、カウント値が減らされ、そのユニットは最近アクセスされていないことを示す、1という最小値まで減らされる。第2のデータ構造に関するクロックアルゴリズムの使用に関するさらなる詳細は、次に説明するが、図5,6,7にと共に提示される。
図4は、第2のデータ構造の例を示す。ゴーストテーブルとも呼ぶことができ、1回以上の最近のアクセスを超えるアクセス、又は所定回数以上の最近のアクセスを超えるアクセスのために、HDDのような低速不揮発性メモリ上のユニットのアクセスを追跡するのに使用される。一実施形態では、第2のデータ構造は、データ構造内の場所の数に関して、SSD内のユニット数と同じであってもよいし、又はSSD内のユニット数の大きさに比例してもよい。一実施形態では、HDD内の特定のユニット数のためのシグニチャ値を、第2のデータ構造の各場所に記憶することができる。一実施形態では、ファイルシステムの観点からは、ユニットは磁気ハードドライブ上の論理ブロックでもよい。第2のデータ構造401は、他の場所と同様に3つの位置402,403,404を含み、これらの場所各々は、HDD内のユニット数のシグニチャを記憶することができる。場所404は、HDD上のユニット内のデータが、少なくとも1回、又は少なくとも所定の回数(読み出し、又は書き込みによって)最近アクセスされたことを示す、HDD内のユニットXのためのシグニチャ値の例を示す。
図5は、データ構造301のような第1のデータ構造と、データ構造401のような第2のデータ構造を利用して、SSDのような高速記憶装置と、HDDのような低速記憶装置間のデータの移行を制御するための、本発明の一実施形態による方法の例を示す。不揮発性メモリに対する読み出し、又は書き込みアクセス要求をシステムが受け取る、動作501にて、図5の方法が開始される。一実施形態では、ファイルシステムが複合ディスクの制御を行い、複合ディスクを単一論理ボリュームとして取り扱う。次いで、データ処理システム内のファイルシステム、又は別の構成要素は、図5に示す方法を使用して、複合ディスクの2つ以上の部分間でデータをどのように割り当てるかを決定する。読み出し、又は書き込みアクセス要求の受け取りに応じて、この方法は動作503に進み、要求されたデータが、高速記憶装置内にあるか否かを判定する。もしそのデータが高速記憶装置内にあれば、SSD内でヒットする。その場合は、処理は動作505に進み、SSD上で発見されたユニットのための、データ構造301のような環状キュー内のカウントが、1だけ増える。これは、クロックポインタ304を動かさずに行われる。このようにして、第1のデータ構造を介して、クロックアルゴリズムは、SSD内のユニットへのアクセス回数を追跡する。もし動作503で、SSD内でミスが起こると、システムは動作507へ進み、確率論のハッシュテーブルの形式である、図4に示すゴーストテーブル401のような、第2のデータ構造内に、データがあるか否かを判定する。第2のデータ構造内でのデータの探索を図7に示し、以下で説明する。
動作507が、ユニットが既に第2のデータ構造内にないと判定すると、動作509に進み、ゴーストテーブル401でもよい、第2のデータ構造に、ユニット番号又はユニット番号の表示が追加される。動作509に関する追加情報を、以下で説明する図6に関連して提供する。動作507にて、要求データを含むユニットが、既に第2のデータ構造内にあると判定されると、処理は動作507から動作511に進み、高速記憶装置が満杯になっているか否かが判定される。もし満杯でなければ、動作515に進む。様々な従来のアルゴリズムを使用して、SSDが満杯ではないか否かを判定することができるので、クロックアルゴリズム、又は第1のデータ構造301を使用することに依存する必要はない。
動作515では、アクセスされているHDDのユニット内のデータが、当分野で周知の技術を使用して、HDDからSSDに移行される。更に、移動済み、又はこれから移動するデータのユニットのユニット番号は、ゴーストテーブル401のような、第2のデータ構造から除去される。操作511にて、SSDが満杯であるとシステムが判定すると、操作515の前に操作513が行われる。当然のことながら、ファイルシステムは、操作515でのデータの移動に応じた、様々なデータの場所を示す従来のデータ構造を尚も維持している。操作513にて、一実施形態ではクロックアルゴリズムを使用して、システムはSSD上にスペースを作成する。この場合、クロックアルゴリズムは、クロックポインタ304を使用して、環状配列を順番に、クロックポインタの現在の位置から始めて、最近参照されていないSSD内のユニットを示す場所まで移動する。一実施形態では、環状配列内のある場所に記憶された1という値がこのことを示している。クロックポインタ304が、環状配列を環状に移動するにつれ、各場所の値は1つ減らされる。クロックポインタ304が、各位置での値を減らしながら列を移動するにつれて、最後にはユニットの1つが、利用可能なユニットであるということを示す値を受信する。クロックアルゴリズムが、SSD内で次に利用可能なユニットの場所を決定すると、SSDのそのユニット内のデータを、HDDにフラッシュすることができるし、操作513の後で行うことができる操作515にて、HDD上でアクセスされたデータは、HDDからSSD内の場所、又はユニットに移動させることができる。第2のデータ構造からユニット番号を除去することについて、図7と共に更に説明する。
図6は、第2のデータ構造にデータを追加する方法の例を示す。Xは、ハードドライブ上の1つ以上の論理ブロックのような、HDD内のユニット番号を表すことができる。当然のことながら、図6,図7の方法は、図4に示すデータ構造401でもよい、確率論的なハッシュテーブルの生成を考慮している。ハッシュ及びシグナチャーは第2のデータ構造に記憶される値を生成するために使用され、データ構造内の場所を特定するのに使用されるという事実のために、確率論的なハッシュテーブルは、HDD上のユニットのアクセス数については、常には正しくないかもしれない。ハッシュが使用されると、ハッシュ関数への1つ以上の入力が、同じハッシュ値を返すことができる。これは、異なるユニットと同じシグナチャーを共有するユニットは、適切なユニットではなく、SSDに移してもよいことを意味する。けれども、それが発生する可能性は小さい。従って、HDD上の1つのユニットが受け取ったアクセス数に関しては、ハッシュテーブルは常に正しいということはないかもしれないが、データ構造は殆ど常に正しく、消費されたメモリの量に対して大容量の情報を記憶することができるという点で、スペース効率がよい。
図6に示す方法は、図5の動作509で実行することができる。動作601では、システムは、リード要求、又はライト要求によりアクセスされているHDD内のユニット番号に対するハッシュ値のセットを計算する。ハッシュ値のセットは、異なるハッシュ関数のセットから得られる。例えば一実施形態では、3つの異なるハッシュ関数h1、h2、h3が使用できるが、1以上の任意の数のハッシュ関数が、使用できる。更に、動作601ではXのシグナチャーが計算される。それはS(X)と表され、SはXの値のシグナチャーを表す。シグナチャーは暗号アルゴリズム、又は他のアルゴリズムから得ることができるが、そのアルゴリズムは、ある入力に対して、相対的に唯一の値を生成しようとするが、Xの可能性がある値各々の唯一の値を生成することは保証されない。このように全体的な唯一性がないことは、ハッシュテーブルの確率論的な性質に寄与している。動作601にてこの値を計算してから、システムは動作603へ進み、ハッシュ値により指定された場所のどれかが、第2データ構造内で空か否かを判定する。換言すれば、ハッシュ値により指定されたこれらの場所は各々、ゴーストテーブル内で調べられ、一実施形態では空であるか否かが判定される。もし、どれか1つが空であれば、動作605が行われ、HDDのユニット番号のS(X)のようなシグナチャーが、ハッシュ値の1つにより指定された空の場所の1つに記憶される。一方、動作603がこれらの場所がどれも空でないと判定すると、動作607が行われ、第2のデータ構造内のランダムな場所が動作607でランダムに選択され、動作609でシグナチャーが選択されたランダムな場所に記憶される。ランダムな場所を使用するので、その場所に記憶されている前のシグナチャーが上書きされてしまうことがある。
図7は、データ構造からデータを見つける、又は除去する方法の例を示す。データを見つけるために、図7の方法が使用された場合は、動作707は行わない。データを見つけるための図7に示された方法は、図5の動作507により行うことができる。図7に示された方法がデータをゴーストテーブルから除去するために使用された時は、動作707が行われ、この方法は図5に示す動作515の一部として使用される。図7の方法は、動作701より開始され、ハッシュ値のセットがXに対して計算される。このハッシュ値のセットは、以前動作601で使用されたのと同じハッシュ関数のセット及び同じハッシュ値のセットに対応する必要がある。同様に、Xの値に対してシグナチャーが計算されるが、それは動作601で計算したシグナチャーと類似したものである。次いで動作703では、システムはゴーストテーブルの場所内でシグナチャーの値を探すが、それは動作701で計算されたハッシュ値のセットにより指定されたものである。動作705でシグナチャーが見つかれば、ユニット番号のシグナチャーが図7に示すように動作707で第2のデータ構造から除去される。一実施形態では、データ構造の寸法は、データ構造の性能と、利用可能なメモリの容量とに基づき倍にしたり、又は半分にしたりすることができる。
本発明の別の実施形態では、ゴーストテーブルとして実装することができる、確率論的なハッシュテーブルよりはむしろ、ブルームフィルタを使用することができる。ブルームフィルタの例を図8に示す。ブルームフィルタは、第2の記憶装置上のユニットが、最近アクセスされたか否かの確実性を判定するテストで使用することができる、確率論的なデータ構造である。ブルームフィルタが確率論的であるのは、誤った肯定的な結果が返される、つまり実際にはそうではないのに、ユニットがデータ構造内にあると判定されてしまうからである。けれども、誤った否定的な結果は返されないので、第2のデータ構造のクエリは、そのユニットは恐らく最近アクセスされた、又はそのユニットは決して最近アクセスされていない、という結果を返されることになる。ブルームフィルタは、SSDの各ユニットに対応する、又はSSDのユニット数に比例した多数の場所を持つことができる。各場所は、1又はゼロを記憶しており、一実施形態ではHDD上の特定のユニットのアクセス数の状態を示す。HDDのユニット番号のハッシュ値は、ブルームフィルタ内の特定の場所にアクセスするためのアドレスとして使用される。図8に示すように、ブルームフィルタ801は、場所802,803,804を有する。場所803は、この場所を指定する、Xのハッシュ関数h1により指定される。1という値は、場所803に設定され、更にXのアドレスh2とXのアドレスh3により指定された、他の2つの場所内にも設定される。図8に示すブルームフィルタは、動作507でゴーストテーブルをブルームフィルタで置き換え、動作509でゴーストテーブルをブルームフィルタで置き換えることにより、図5の方法で使用され得る。けれども、ブルームフィルタからユニットを除去して、ブルームフィルタは誤った否定的な結果を生成しないということを保証するのは不可能なので、ブルームフィルタをゴーストテーブルの代わりに使用する場合は、動作515ではブルームフィルタからユニット番号は除去されない。従って一実施形態では第2のデータ構造内のブルームフィルタが満杯になると、環状キュー内にブルームフィルタを追加してもよい。
図9は、HDD内のユニットを、ブルームフィルタに追加する方法の例を示す。図9に示す操作は、ブルームフィルタがゴーストテーブルの代わりに使用される場合に、動作509で行われる。一実施形態では、図9から明らかなように、一番新しいブルームフィルタが値を記憶するのに使用され、より古いブルームフィルタが環状キューを循環する、環状キュー内に、複数のブルームフィルタが保持されるように、ブルームフィルタの環状キューを使用することができる。動作509が開始されると、図5を実装したブルームフィルタの場合、操作901は、一番新しいブルームフィルタが満杯か否かを判定する。満杯でなければ、操作905が続き、ハッシュ値のセット内で指定された各々の場所を、例えば1のような所定値に設定することにより、HDD上の現在アクセス中のユニットを表すデータが、一番新しいブルームフィルタに追加される。一実施形態では、操作1001のようにハッシュ値のセットが計算され、それらのハッシュ値各々は、ブルームフィルタ内の特定の場所、又はアドレスを指定し、1という値がハッシュ値のセット内で指定されたそれらのアドレス、又は場所各々に書き込まれる。
図10は、HDD内の特定のユニット番号が第2のデータ構造、この場合はブルームフィルタ、内にあるか否かを見つける方法を示す。図5の方法がゴーストテーブルではなく、ブルームフィルタを使用する場合は、図10は、動作507の一部として行うことができる。操作1001では、システムはHDD内のユニット番号のハッシュ値のセットを計算する。一実施形態では、3つの異なるハッシュ関数を使用して、3つのハッシュ値を計算することができる。次に操作1003では、キュー内のブルームフィルタの少なくとも1つで、ハッシュ値のセットにより指定された各場所で、1つのビットが、1のような所定値に設定されているか否かをシステムがチェックする。操作1005では、ハッシュ値のセット内のハッシュ値により指定された各場所内で、全てのビットが1に設定されているか否かをシステムが判定する。配列内の各ブルームフィルタ内の場所の少なくとも1つが設定されていないと、システムはユニットが見つからないと結論付け、操作1007に進み、図5の動作509に続けさせる。一方、システムが、全てのビットがハッシュ値のセットにより決定された適切な場所内に設定されていると判定すれば、処理は操作1009に進み、図5の動作511に続けさせる。図4内のゴーストテーブルについては、本発明の実施形態のいくつかは、第2のデータ構造の寸法を、必要に応じて、増やしたり減らしたりすることができる。環状キュー内のブルームフィルタが満杯になるにつれて、環状キューにブルームフィルタを追加してもよい。ブルームフィルタの環状キューの寸法が規定値を超えると、一番古いブルームフィルタをリストから除去することができる。
上述の明細書において、本発明はその特定の実施形態に関して記載されている。しかし、本発明のより広い趣旨及び範囲から逸脱することなく種々の修正及び変更がそれになされ得ることは明らかであろう。したがって、明細書及び図面は、限定的でなく、例示的な意味で考慮されるべきである。

Claims (17)

  1. マルチデバイス複合データ記憶システムへのアクセスを管理する方法であって、
    第1の不揮発性データ記憶装置上の第1のユニットセット内の各ユニットに関する状態及び最近アクセスを示す第1のデータ構造を管理するステップであって、前記マルチデバイス複合データ記憶システム上の第1のブロックへのアクセス要求を受け取ること、前記第1の不揮発性データ記憶装置上の第1のユニットセット内の第1ユニットからの前記第1のブロックにアクセスすること、前記第1ユニットに対する最近アクセス数を更新すること、を含む前記管理するステップと、
    第2の不揮発性データ記憶装置上の第2ユニットが、最近参照されたか否かを、確率論的に示す第2のデータ構造を管理するステップと、を含み、
    前記第2のデータ構造は、1つ以上のブルームフィルタのキューである、方法。
  2. 前記第2のデータ構造を管理するステップは、
    前記マルチデバイス複合データ記憶システム第2のブロックへのアクセス要求を受け取るステップと、
    前記第2のデータ構造に対して、前記第2の不揮発性データ記憶装置上の第2ユニット識別子を表すデータを追加するステップであって、前記第2ユニットは前記マルチデバイス複合データ記憶システムの前記第2のブロックを含む当該ステップと、
    前記第2ユニットを前記第1の不揮発性データ記憶装置に移行するステップと、を含む請求項1に記載の方法。
  3. 前記第2の不揮発性データ記憶装置上の前記第2ユニットの前記識別子を表すデータを、前記第2のデータ構造に追加するステップは、
    前記第2ユニットの前記識別子のハッシュを計算するステップと、
    前記第2ユニットの前記識別子の前記ハッシュにより定義されたインデックスに、前記第2ユニットが参照されたことを示す値を設定するステップと、を含む請求項に記載の方法。
  4. 前記第2ユニット識別子の複数のハッシュ値を計算するために、複数のハッシュ関数が使用される、請求項に記載の方法。
  5. 前記第2の不揮発性データ記憶装置から前記第2ユニットを前記第1の不揮発性データ記憶装置に移行するステップは、
    前記第2ユニットが参照されたことを示す前記値を求めて、各ハッシュにより定義されたインデックスで、前記第2のデータ構造を検索するステップと、
    検索したインデックス各々が、前記第2ユニットが参照されたことを示す前記値を含む場合、前記第2の不揮発性データ記憶装置から前記第1のデータ記憶装置へ、前記第2ユニットを移動させるステップと、を含む請求項に記載の方法。
  6. 前記第2の不揮発性データ記憶装置から前記第1の不揮発性データ記憶装置へ、前記第2ユニットを移動させるステップは、多数のデータブロックを単一のユニットとして移動させるステップを含む、請求項に記載の方法。
  7. マルチデバイス複合データ記憶装置へのアクセスを管理するためのシステムであって、
    第1のユニットセット内にデータを記憶する第1の不揮発データ記憶装置と、
    前記第1の不揮発データ記憶装置上の前記第1のユニットセット内の各ユニットへのアクセスのリセンシーを示す第1のデータ構造であって、第1のデータ構造は、クロックアルゴリズムを使用して保守される環状キューであり、前記環状キューは、前記第1の不揮発データ記憶装置上の第1のユニットセット内のユニットに関する状態及び最近アクセス数を示す、当該第1のデータ構造と、
    第2のユニットセット内にデータを記憶するため、前記第1の不揮発性データ記憶装置に結合された第2の不揮発性データ記憶装置と、
    前記第2の不揮発性データ記憶装置上のユニットが最近参照されたか否かを確率論的に示す第2のデータ構造と、を備え、
    前記第2のデータ構造が、前記第1の不揮発性データ記憶装置に移行する前記第2のユニットセット内のユニットを示すブルームフィルタのキューであり、前記第1及び第2のユニットセット内の各ユニットが、1以上の論理ブロックを含む、システム。
  8. 前記第1の不揮発性データ記憶装置が半導体ドライブであり、前記第2の不揮発性データ記憶装置が磁気ハードディスクドライブであ
    前記第1の不揮発性データ記憶装置及び前記第2の不揮発性データ記憶装置は、ファイルシステムによって単一論理ボリュームとしてアドレスされる、請求項に記載のシステム。
  9. 前記第2のデータ構造のサイズが、
    前記第1の不揮発性データ記憶装置上のユニットの数と、
    前記キュー内で許可された前記ブルームフィルタの数と、
    前記ブルームフィルタ内に記憶されるユニットの最大数と、
    前記ブルームフィルタ各々のサイズと、を含むパラメータにより前記第2のデータ構造が定義された、請求項に記載のシステム。
  10. 各ユニットがマルチ論理ブロックを含み、前記第1のデータ構造は、前記第1の不揮発性データ記憶装置上の各ユニットに対し1つの要素を含み、前記第1のデータ構造の要素が、前記第1の不揮発性データ記憶装置上のユニットがフリーであることを示す、請求項に記載のシステム。
  11. マシーンにマルチデバイス複合データ記憶システムへのアクセスを管理するための動作を行わせる命令を記憶した不揮発性のマシーン読み取り可能な記憶媒体であって、前記動作は、
    第1の不揮発性データ記憶装置上の第1のユニットセット内のユニットに関する状態及び最近アクセスを示し、且つクロックアルゴリズムを介して管理される、第1のデータ構造を初期化するステップと、
    第2の不揮発データ記憶装置上のユニットが、最近参照されたことを確率論的に示し、ブルームフィルタのキューである、第2のデータ構造を初期化するステップと、
    前記マルチデバイス複合データ記憶システムの論理ブロックへのアクセス要求を受け取るステップと、
    前記論理ブロックが前記第1の不揮発性データ記憶装置上に含まれている場合、要求された前記論理ブロックを前記第1の不揮発性データ記憶装置上のユニットからアクセスするステップ、及び前記ユニットが前記第1の不揮発性データ記憶装置に固定されていない限り、前記マルチデバイス複合データ記憶システムの要求された前記論理ブロックが、前記第1の不揮発性データ記憶装置上のユニットから最近アクセスされたことを示すように、前記第1のデータ構造を更新するステップと、
    要求された前記論理ブロックが前記第1の不揮発性データ記憶装置上のユニットで見つからない場合、要求された前記論理ブロックを求めて前記第2のデータ構造を検索するステップと、
    要求された前記論理ブロックが前記第2のデータ構造内で見つからない場合、要求された前記論理ブロックを含む前記ユニットの識別子を前記第2のデータ構造に追加するステップと、
    要求された前記論理ブロックを含むユニットが前記第2のデータ構造内で見つかった場合、要求された前記論理ブロックを含む前記ユニットを、前記第2の不揮発性データ記憶装置から前記第1の不揮発性データ記憶装置へ移行させるステップと、を含む、記憶媒体。
  12. 要求された前記論理ブロックを含む前記ユニットの識別子を追加するステップは、
    前記ユニットの前記識別子に対して、ハッシュ値のセットを計算するステップと、ハッシュ値の前記セット内のハッシュにより定義されたインデックス各々に、前記ユニットが参照されたことを示す値を設定するステップと、を更に備える請求項11に記載のマシーン可読記憶媒体。
  13. ハッシュ値の前記セットの計算は複数のハッシュ関数を使用する、請求項12に記載のマシーン読み取り可能な記憶媒体。
  14. 前記第2のデータ構造内のブルームフィルタをリセットするステップを更に備える、請求項13に記載のマシーン読み取り可能な記憶媒体。
  15. 前記第2のデータ構造に、追加のブルームフィルタを追加するステップを更に備える、請求項13に記載のマシーン読み取り可能な記憶媒体。
  16. 前記第2のデータ構造からブルームフィルタを除去するステップを更に備える、請求項15に記載のマシーン読み取り可能な記憶媒体。
  17. データ処理システムに、請求項1又は請求項に記載のどれか1つの方法を行わせる命令を有する、マシーン読み取り可能な記憶媒体。
JP2014557710A 2012-02-16 2013-02-11 複合不揮発性記憶装置のためのデータ移行 Active JP5943096B2 (ja)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201261599930P 2012-02-16 2012-02-16
US201261599927P 2012-02-16 2012-02-16
US61/599,930 2012-02-16
US61/599,927 2012-02-16
US13/605,921 US9710397B2 (en) 2012-02-16 2012-09-06 Data migration for composite non-volatile storage device
US13/605,921 2012-09-06
PCT/US2013/025597 WO2013122881A1 (en) 2012-02-16 2013-02-11 Data migration for composite non-volatile storage device

Publications (2)

Publication Number Publication Date
JP2015512098A JP2015512098A (ja) 2015-04-23
JP5943096B2 true JP5943096B2 (ja) 2016-06-29

Family

ID=48983237

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2014557696A Active JP5943095B2 (ja) 2012-02-16 2013-02-07 複合不揮発性記憶装置のためのデータ移行
JP2014557710A Active JP5943096B2 (ja) 2012-02-16 2013-02-11 複合不揮発性記憶装置のためのデータ移行

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2014557696A Active JP5943095B2 (ja) 2012-02-16 2013-02-07 複合不揮発性記憶装置のためのデータ移行

Country Status (8)

Country Link
US (2) US9710397B2 (ja)
EP (2) EP2798501B1 (ja)
JP (2) JP5943095B2 (ja)
KR (2) KR101599177B1 (ja)
CN (2) CN104115134B (ja)
AU (2) AU2013221868B2 (ja)
TW (2) TW201346932A (ja)
WO (2) WO2013122818A1 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8700578B1 (en) * 2012-09-27 2014-04-15 Emc Corporation System and method for determining physical storage space of a deduplicated storage system
US10073851B2 (en) 2013-01-08 2018-09-11 Apple Inc. Fast new file creation cache
US9819637B2 (en) * 2013-02-27 2017-11-14 Marvell World Trade Ltd. Efficient longest prefix matching techniques for network devices
CA2930424C (en) 2013-11-12 2021-08-24 Andrew Michael Wesie Improved control flow integrity system and method
CN105701018B (zh) * 2014-11-24 2019-01-11 阿里巴巴集团控股有限公司 一种用于流计算的数据处理方法与设备
JP2016207033A (ja) * 2015-04-24 2016-12-08 株式会社東芝 情報記憶システムおよび情報記憶装置
CN108027826B (zh) * 2015-09-09 2022-05-17 亚马逊科技有限公司 元素从概率数据结构的删除
US10262160B2 (en) 2015-09-09 2019-04-16 Amazon Technologies, Inc. Verification of data set components using digitally signed probabilistic data structures
US10263784B2 (en) 2015-09-09 2019-04-16 Amazon Technologies, Inc. Signature verification for data set components using probabilistic data structures
KR101675694B1 (ko) * 2015-09-11 2016-11-23 성균관대학교산학협력단 블록 인기도에 기반한 ssd의 블록 교체방법
KR101704936B1 (ko) * 2015-12-07 2017-02-09 성균관대학교산학협력단 블록의 우선성에 기반한 ssd의 블록 교체방법 및 이를 적용하는 하이브리드 저장 시스템
US10942844B2 (en) 2016-06-10 2021-03-09 Apple Inc. Reserved memory in memory management system
US10019456B2 (en) * 2016-06-29 2018-07-10 Microsoft Technology Licensing, Llc Recovering free space in nonvolatile storage with a computer storage system supporting shared objects
US10275541B2 (en) 2016-08-05 2019-04-30 Micron Technology, Inc. Proactive corrective actions in memory based on a probabilistic data structure
US10228860B2 (en) * 2016-11-14 2019-03-12 Open Drives LLC Storage optimization based I/O pattern modeling
US11010300B2 (en) * 2017-05-04 2021-05-18 Hewlett Packard Enterprise Development Lp Optimized record lookups
US10811096B2 (en) * 2017-05-19 2020-10-20 Aspiring Sky Co. Limited Multi-block non-volatile memories with single unified interface
CN107678892B (zh) * 2017-11-07 2021-05-04 黄淮学院 基于跳跃恢复链的连续数据保护方法
US11093140B2 (en) * 2018-01-19 2021-08-17 Micron Technology, Inc. Performance allocation among users for accessing non-volatile memory devices
US11243703B2 (en) 2018-04-27 2022-02-08 Hewlett Packard Enterprise Development Lp Expandable index with pages to store object records
US10628063B2 (en) 2018-08-24 2020-04-21 Advanced Micro Devices, Inc. Implementing scalable memory allocation using identifiers that return a succinct pointer representation

Family Cites Families (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4132989A (en) 1977-10-18 1979-01-02 Nasa Azimuth correlator for real-time synthetic aperture radar image processing
US4292634A (en) 1978-12-15 1981-09-29 Nasa Real-time multiple-look synthetic aperture radar processor for spacecraft applications
US5059318A (en) 1990-05-14 1991-10-22 Benesi Steve C Fluid seal for a traveling sheet filter press
US5680640A (en) 1995-09-01 1997-10-21 Emc Corporation System for migrating data by selecting a first or second transfer means based on the status of a data element map initialized to a predetermined state
GB2318478B (en) 1996-10-21 2001-01-17 Northern Telecom Ltd Network model for alarm correlation
GB2318479B (en) 1996-10-21 2001-04-04 Northern Telecom Ltd Problem model for alarm correlation
US6266771B1 (en) * 1997-02-10 2001-07-24 The Regents Of The University Of California Probabilistic signature scheme
CA2312444A1 (en) * 2000-06-20 2001-12-20 Ibm Canada Limited-Ibm Canada Limitee Memory management of data buffers incorporating hierarchical victim selection
US6631017B2 (en) 2000-10-12 2003-10-07 Jed Khoury Matched amplification and switch joint transform correlator
US6804763B1 (en) 2000-10-17 2004-10-12 Igt High performance battery backed ram interface
US6920533B2 (en) * 2001-06-27 2005-07-19 Intel Corporation System boot time reduction method
US20030056058A1 (en) 2001-09-17 2003-03-20 Alistair Veitch Logical volume data migration
US6978259B1 (en) 2001-10-23 2005-12-20 Hewlett-Packard Development Company, L.P. Automated system adaptation technique particularly for data storage systems
US7093004B2 (en) 2002-02-04 2006-08-15 Datasynapse, Inc. Using execution statistics to select tasks for redundant assignment in a distributed computing platform
US6918020B2 (en) 2002-08-30 2005-07-12 Intel Corporation Cache management
JP2004102374A (ja) 2002-09-05 2004-04-02 Hitachi Ltd データ移行装置を有する情報処理システム
EP1505506A1 (en) * 2003-08-05 2005-02-09 Sap Ag A method of data caching
US7103740B1 (en) 2003-12-31 2006-09-05 Veritas Operating Corporation Backup mechanism for a multi-class file system
US20110179219A1 (en) 2004-04-05 2011-07-21 Super Talent Electronics, Inc. Hybrid storage device
US20110145489A1 (en) * 2004-04-05 2011-06-16 Super Talent Electronics, Inc. Hybrid storage device
US20060069876A1 (en) * 2004-09-30 2006-03-30 Sorav Bansal Method and system of clock with adaptive cache replacement and temporal filtering
US20060248391A1 (en) 2005-05-02 2006-11-02 Glover Jeffrey C State machine-based command line debugger
US7548908B2 (en) * 2005-06-24 2009-06-16 Yahoo! Inc. Dynamic bloom filter for caching query results
US7548928B1 (en) * 2005-08-05 2009-06-16 Google Inc. Data compression of large scale data stored in sparse tables
JP2007072813A (ja) 2005-09-07 2007-03-22 Hitachi Ltd ストレージシステム、ファイル移動方法、及びコンピュータプログラム
US8099556B2 (en) 2005-09-13 2012-01-17 Arm Limited Cache miss detection in a data processing apparatus
US7730058B2 (en) * 2005-10-05 2010-06-01 Microsoft Corporation Searching for information utilizing a probabilistic detector
US7386673B2 (en) 2005-11-30 2008-06-10 Red Hat, Inc. Method for tracking of non-resident pages
US20070168398A1 (en) 2005-12-16 2007-07-19 Powerfile, Inc. Permanent Storage Appliance
KR100772863B1 (ko) * 2006-01-13 2007-11-02 삼성전자주식회사 요구 페이징 기법을 적용한 시스템에서 페이지 교체 수행시간을 단축시키는 방법 및 장치
US7500050B2 (en) * 2006-03-20 2009-03-03 International Business Machines Corporation Wise ordering for writes—combining spatial and temporal locality in write caches for multi-rank storage
US7908236B2 (en) 2006-07-20 2011-03-15 International Business Machines Corporation Using multiple data structures to manage data in cache
US7555575B2 (en) 2006-07-27 2009-06-30 Hitachi, Ltd. Method and apparatus for migrating data between storage volumes of different data pattern
US7937428B2 (en) * 2006-12-21 2011-05-03 International Business Machines Corporation System and method for generating and using a dynamic bloom filter
US8032529B2 (en) * 2007-04-12 2011-10-04 Cisco Technology, Inc. Enhanced bloom filters
US8745523B2 (en) 2007-06-08 2014-06-03 Apple Inc. Deletion in electronic backups
US7930547B2 (en) * 2007-06-15 2011-04-19 Alcatel-Lucent Usa Inc. High accuracy bloom filter using partitioned hashing
KR101347285B1 (ko) * 2007-09-28 2014-01-07 삼성전자주식회사 하드디스크 드라이브의 선반입 방법, 이에 적합한 기록매체 그리고 이에 적합한 장치
US7788220B1 (en) 2007-12-31 2010-08-31 Emc Corporation Storage of data with composite hashes in backup systems
US8407398B2 (en) * 2008-10-01 2013-03-26 Lenovo (Singapore) Pte. Ltd. Cache mapping for solid state drives
US8301650B1 (en) * 2008-12-19 2012-10-30 Google, Inc. Bloom filter compaction
KR101517767B1 (ko) * 2009-01-07 2015-05-06 시게이트 테크놀로지 엘엘씨 하이브리드 저장 장치 및 그의 자원 공유 방법
JP5025670B2 (ja) * 2009-01-28 2012-09-12 株式会社東芝 情報処理装置およびデータ記憶装置
US8719486B2 (en) 2009-06-24 2014-05-06 Micron Technology, Inc. Pinning content in nonvolatile memory
US8612666B2 (en) * 2009-06-30 2013-12-17 Intel Corporation Method and system for managing a NAND flash memory by paging segments of a logical to physical address map to a non-volatile memory
US8140537B2 (en) 2009-07-21 2012-03-20 International Business Machines Corporation Block level tagging with file level information
US9291712B2 (en) 2009-09-10 2016-03-22 Nextnav, Llc Cell organization and transmission schemes in a wide area positioning system (WAPS)
US9003159B2 (en) 2009-10-05 2015-04-07 Marvell World Trade Ltd. Data caching in non-volatile memory
WO2011068699A1 (en) * 2009-12-04 2011-06-09 Marvell World Trade Ltd. Virtualization of storage devices
US8438334B2 (en) * 2009-12-22 2013-05-07 International Business Machines Corporation Hybrid storage subsystem with mixed placement of file contents
US20110191522A1 (en) * 2010-02-02 2011-08-04 Condict Michael N Managing Metadata and Page Replacement in a Persistent Cache in Flash Memory
US20110320754A1 (en) 2010-02-23 2011-12-29 Hitachi, Ltd Management system for storage system and method for managing storage system
US8732133B2 (en) 2010-03-16 2014-05-20 Commvault Systems, Inc. Extensible data deduplication system and method
US8868487B2 (en) 2010-04-12 2014-10-21 Sandisk Enterprise Ip Llc Event processing in a flash memory-based object store
US8935487B2 (en) 2010-05-05 2015-01-13 Microsoft Corporation Fast and low-RAM-footprint indexing for data deduplication
US20110276744A1 (en) * 2010-05-05 2011-11-10 Microsoft Corporation Flash memory cache including for use with persistent key-value store
US8380949B2 (en) 2010-05-20 2013-02-19 International Business Machines Corporation Managing write operations to an extent of tracks migrated between storage devices
US9401967B2 (en) 2010-06-09 2016-07-26 Brocade Communications Systems, Inc. Inline wire speed deduplication system
US8954669B2 (en) 2010-07-07 2015-02-10 Nexenta System, Inc Method and system for heterogeneous data volume
US8478934B2 (en) * 2010-07-19 2013-07-02 Lsi Corporation Managing extended RAID caches using counting bloom filters
TWI467581B (zh) * 2010-09-07 2015-01-01 Phison Electronics Corp 複合式儲存裝置及其複合式儲存媒體控制器與定址方法
US8677004B2 (en) 2010-09-10 2014-03-18 International Business Machines Corporation Migration of logical partitions between two devices
US9244779B2 (en) 2010-09-30 2016-01-26 Commvault Systems, Inc. Data recovery operations, such as recovery from modified network data management protocol data
US8583611B2 (en) 2010-10-22 2013-11-12 Hitachi, Ltd. File server for migration of file and method for migrating file
US9032146B2 (en) 2010-11-30 2015-05-12 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Dynamic use of raid levels responsive to workload requirements
US8862845B2 (en) 2010-12-06 2014-10-14 Xiotech Corporation Application profiling in a data storage array
US8583966B2 (en) 2011-04-29 2013-11-12 Lsi Corporation Methods and structure for debugging DDR memory of a storage controller
US9417794B2 (en) * 2011-07-26 2016-08-16 Apple Inc. Including performance-related hints in requests to composite memory
US8788788B2 (en) 2011-08-11 2014-07-22 Pure Storage, Inc. Logical sector mapping in a flash storage array
US8914381B2 (en) 2012-02-16 2014-12-16 Apple Inc. Correlation filter
US9081503B2 (en) 2012-02-16 2015-07-14 Apple Inc. Methods and systems for maintaining a storage volume with holes and filling holes

Also Published As

Publication number Publication date
AU2013221868B2 (en) 2016-03-31
TWI524348B (zh) 2016-03-01
AU2013221868A1 (en) 2014-08-21
JP2015508924A (ja) 2015-03-23
US20130219116A1 (en) 2013-08-22
KR20140111346A (ko) 2014-09-18
EP2798501A1 (en) 2014-11-05
EP2798502A1 (en) 2014-11-05
EP2798501B1 (en) 2020-12-30
EP2798502B1 (en) 2020-04-08
US9710397B2 (en) 2017-07-18
CN104115133A (zh) 2014-10-22
KR101599177B1 (ko) 2016-03-02
CN104115133B (zh) 2017-08-08
AU2013221855A1 (en) 2014-08-21
WO2013122818A1 (en) 2013-08-22
KR101620773B1 (ko) 2016-05-12
CN104115134A (zh) 2014-10-22
CN104115134B (zh) 2018-02-13
TW201335937A (zh) 2013-09-01
KR20140116933A (ko) 2014-10-06
JP2015512098A (ja) 2015-04-23
US20130219117A1 (en) 2013-08-22
AU2013221855B2 (en) 2016-03-17
TW201346932A (zh) 2013-11-16
JP5943095B2 (ja) 2016-06-29
WO2013122881A1 (en) 2013-08-22

Similar Documents

Publication Publication Date Title
JP5943096B2 (ja) 複合不揮発性記憶装置のためのデータ移行
US8996799B2 (en) Content storage system with modified cache write policies
US20180107601A1 (en) Cache architecture and algorithms for hybrid object storage devices
WO2013090646A2 (en) Working set swapping using a sequentially ordered swap file
US10013174B2 (en) Mapping system selection for data storage device
US8898423B1 (en) High performance caching architecture for data storage systems
EP2381354A2 (en) Data recording device
US9710514B1 (en) Systems and methods for efficient storage access using metadata
US10915262B2 (en) Hybrid storage device partitions with storage tiers
US9703485B2 (en) Storage management in hybrid drives
US20210263648A1 (en) Method for managing performance of logical disk and storage array
JP2010170268A (ja) ストレージシステムの制御方法、ストレージ制御装置及びプログラム
JP2017162166A (ja) ストレージシステムおよびストレージシステムの制御方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150812

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150831

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20151130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160217

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160509

R150 Certificate of patent or registration of utility model

Ref document number: 5943096

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250