特許第6266019号(P6266019)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ウェスタン デジタル テクノロジーズ インコーポレーテッドの特許一覧

特許6266019データストレージシステム向けの優先度に基づくガベージコレクション
<>
  • 特許6266019-データストレージシステム向けの優先度に基づくガベージコレクション 図000002
  • 特許6266019-データストレージシステム向けの優先度に基づくガベージコレクション 図000003
  • 特許6266019-データストレージシステム向けの優先度に基づくガベージコレクション 図000004
  • 特許6266019-データストレージシステム向けの優先度に基づくガベージコレクション 図000005
  • 特許6266019-データストレージシステム向けの優先度に基づくガベージコレクション 図000006
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6266019
(24)【登録日】2018年1月5日
(45)【発行日】2018年1月24日
(54)【発明の名称】データストレージシステム向けの優先度に基づくガベージコレクション
(51)【国際特許分類】
   G06F 12/02 20060101AFI20180115BHJP
【FI】
   G06F12/02 530E
【請求項の数】20
【全頁数】16
(21)【出願番号】特願2015-550378(P2015-550378)
(86)(22)【出願日】2013年9月24日
(65)【公表番号】特表2016-506579(P2016-506579A)
(43)【公表日】2016年3月3日
(86)【国際出願番号】US2013061473
(87)【国際公開番号】WO2014105229
(87)【国際公開日】20140703
【審査請求日】2016年9月20日
(31)【優先権主張番号】13/727,278
(32)【優先日】2012年12月26日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】504056130
【氏名又は名称】ウェスタン デジタル テクノロジーズ インコーポレーテッド
(74)【代理人】
【識別番号】110002572
【氏名又は名称】特許業務法人平木国際特許事務所
(72)【発明者】
【氏名】ホーン ロバート エル.
【審査官】 塚田 肇
(56)【参考文献】
【文献】 特開2012−033002(JP,A)
【文献】 特開2009−181314(JP,A)
【文献】 米国特許第08341339(US,B1)
【文献】 特表2009−503735(JP,A)
【文献】 特表2014−513850(JP,A)
【文献】 米国特許出願公開第2012/0059978(US,A1)
【文献】 特表2013−504142(JP,A)
【文献】 米国特許出願公開第2012/0198174(US,A1)
【文献】 米国特許出願公開第2012/0191936(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/02
(57)【特許請求の範囲】
【請求項1】
データストレージシステムであって、
複数のデータ単位を格納するように構成された複数のメモリ領域を有する不揮発性メモリアレイであって、前記複数のメモリ領域は、第1のメモリ領域、第2のメモリ領域、および第3のメモリ領域を含む、不揮発性メモリアレイと、
前記第1のメモリ領域に対してガベージコレクションを実施するように構成されたコントローラーと、
を備え、
前記コントローラーは少なくとも、
有効なデータを含む前記第1のメモリ領域内の有効データ単位を識別するステップ
前記第1のメモリ領域内の前記有効データ単位の第1セットが第1優先度を有していると判定すると、前記第2のメモリ領域にコピーするデータ単位として前記第1セットを指定するステップであって、前記第1優先度は、前記第1セットの前記有効データ単位が以後のガベージコレクションの間に前記不揮発性メモリアレイから消去される候補であることを示している、ステップ、
前記第1のメモリ領域内の前記有効データ単位の第2セットが前記第1優先度とは異なる第2優先度を有していると判定すると、前記第3のメモリ領域にコピーするデータ単位として前記第2セットを指定するステップ、
前記第1優先度を有する前記有効データ単位の前記第1セットを前記第1のメモリ領域から前記第2のメモリ領域にコピーするとともに、前記第2優先度を有する前記有効データ単位の前記第2セットを前記第1のメモリ領域から前記第3のメモリ領域にコピーするステップ
を実施することにより、前記第1のメモリ領域に対してガベージコレクションを実施するように構成されている
データストレージシステム。
【請求項2】
請求項1に記載のデータストレージシステムであって、前記コントローラーは、前記有効データ単位の第3セットが前記第1優先度および前記第2優先度とは異なる第3優先度を有していると判定すると、前記不揮発性メモリアレイのいずれのメモリ領域へもコピーしないものとして前記第3セットを指定するように更に構成される、データストレージシステム。
【請求項3】
請求項2に記載のデータストレージシステムであって、前記コントローラーは、前記第のメモリ領域内の少なくとも一部のデータ単位を、前記不揮発性メモリアレイ内のいかなるメモリ領域にもコピーしないデータ単位として指定するように更に構成される、データストレージシステム。
【請求項4】
請求項1に記載のデータストレージシステムであって、前記コントローラーは、前記第1セットに対応する優先度情報閾値と比較に基づき前記第1セットが前記第1優先度を有すると判定するように更に構成される、データストレージシステム。
【請求項5】
請求項1に記載のデータストレージシステムであって、前記コントローラーは、
前記メモリ領域内の前記複数のデータ単位優先度情報に少なくとも部分的に基づいて、前記メモリ領域のガベージコレクションランキングを決定し、
前記ガベージコレクションランキングに基づいて、前記第1のメモリ領域に対するガベージコレクションを含むガベージコレクションを実施する、前記複数のメモリ領域の1以上のメモリ領域を選択する、
ように更に構成される、データストレージシステム。
【請求項6】
請求項5に記載のデータストレージシステムであって、ガベージコレクション用に選択された前記1以上のメモリ領域は、前記第1のメモリ領域を含む、データストレージシステム。
【請求項7】
請求項5に記載のデータストレージシステムであって、別のストレージメディアを更に備え、前記コントローラーは、
前記別のストレージメディアとの同期用にデータを選択する際、(1)関連付けられた優先度に基づいた追い出し閾値を満し、かつ(2)ガベージコレクションの候補である1以上のメモリ領域内に存在する、データを優先し、
前記選択されたデータの少なくとも一部を同期し、
前記同期されたデータを、ガベージコレクション中に不揮発性メモリアレイ内のいかなるメモリ領域にもコピーしないよう指定する、
ように更に構成される、データストレージシステム。
【請求項8】
請求項1に記載のデータストレージシステムであって、
前記コントローラーは、ホストシステムによって提供された優先度情報、前記第1セットのアクセス頻度、前記第1セットへの最後のアクセスからの持続時間、及び前記第1セットの読み出し/書き込み率、のうち1以上に基づいて、前記第1優先度を判定するように構成されている、
データストレージシステム。
【請求項9】
複数のデータ単位を格納するように構成された複数のメモリ領域を有する不揮発性メモリアレイを含むデータストレージシステムにおいて実施する方法であって、前記複数のメモリ領域は、第1のメモリ領域、第2のメモリ領域、および第3のメモリ領域を含み、前記方法は少なくとも、
有効データを含む前記第1のメモリ領域内の有効データ単位を識別するステップと、
前記有効データ単位の第1セットが第1優先度を有していると判定すると、前記第2のメモリ領域にコピーするデータ単位として前記第1セットを指定するステップであって、前記第1優先度は、前記第1セットの前記有効データ単位が以後のガベージコレクションの間に前記不揮発性メモリアレイから消去される候補であることを示している、ステップ、
前記有効データ単位の第2セットが前記第1優先度とは異なる第2優先度を有していると判定すると、前記第3のメモリ領域にコピーするデータ単位として前記第2セットを指定するステップ、
前記第1優先度を有する前記有効データ単位の前記第1セットを前記第1のメモリ領域から前記第2のメモリ領域にコピーするとともに、前記第2優先度を有する前記有効データ単位の前記第2セットを前記第1のメモリ領域から前記第3のメモリ領域にコピーするステップ
によって、前記第1のメモリ領域に対してガベージコレクションを実施するステップを有する、方法。
【請求項10】
請求項に記載の方法であって、前記有効データ単位の第3セットが前記第1優先度および前記第2優先度とは異なる第3優先度を有していると判定すると、前記不揮発性メモリアレイのいずれのメモリ領域へもコピーしないものとして前記第3セットを指定するステップを更に含む、方法。
【請求項11】
請求項10に記載の方法であって、前記第のメモリ領域内の少なくとも一部の有効データ単位を、前記不揮発性メモリアレイ内のいかなるメモリ領域にもコピーしないデータ単位として指定するステップを更に含む、方法。
【請求項12】
請求項に記載の方法であって、前記第1セットに対応する優先度情報閾値と比較に基づき前記第1セットが前記第1優先度を有すると判定するステップをさらに有する、方法。
【請求項13】
請求項に記載の方法であって、
前記メモリ領域内の前記複数のデータ単位優先度情報に少なくとも部分的に基づいて、前記メモリ領域のガベージコレクションランキングを決定するステップと、
前記ガベージコレクションランキングに基づいて、前記第1のメモリ領域に対するガベージコレクションを含むガベージコレクションを実施する、前記複数のメモリ領域の1以上のメモリ領域を選択するステップと、
を更に含む、方法。
【請求項14】
請求項13に記載の方法であって、ガベージコレクション用に選択された前記1以上のメモリ領域は、前記第1のメモリ領域を含む、方法。
【請求項15】
請求項13に記載の方法であって、
前記別のデータストレージとの同期用にデータを選択する際、(1)関連付けられた優先度に基づいた追い出し閾値を満たし、かつ(2)ガベージコレクションの候補である1以上のメモリ領域内に存在する、データを優先し、
前記選択されたデータの少なくとも一部を同期し、
前記同期されたデータを、ガベージコレクション中に不揮発性メモリアレイ内のいかなるメモリ領域にもコピーしないよう指定する、
方法。
【請求項16】
請求項に記載の方法であってホストシステムによって提供された優先度情報、前記第1セットのアクセス頻度、前記第1セットへの最後のアクセスからの持続時間、及び前記データ単位の読み出し/書き込み率、のうち1以上に基づいて、前記第1優先度を判定するステップをさらに有する、方法。
【請求項17】
請求項に記載の方法であって、
前記有効データ単位の第3セットが前記第1優先度および前記第2優先度とは異なる第3優先度を有していると判定すると、磁気媒体に対して退去させるとともに前記不揮発性メモリアレイのいずれのメモリ領域にもコピーされないデータ単位として、前記第3セットを指定することにより、前記第1のメモリ領域に対してガベージコレクションを実施するステップ、
前記不揮発性メモリアレイを前記磁気媒体のキャッシュメモリとして用いるステップ、
をさらに有する方法。
【請求項18】
請求項に記載の方法であって、
前記有効データ単位の第3セットが前記第1優先度および前記第2優先度とは異なる第3優先度を有していると判定すると、リモートデータストレージに対して退去させるとともに前記不揮発性メモリアレイのいずれのメモリ領域にもコピーされないデータ単位として、前記第3セットを指定することにより、前記第1のメモリ領域に対してガベージコレクションを実施するステップ、
前記不揮発性メモリアレイを前記リモートデータストレージのキャッシュメモリとして用いるステップ、
をさらに有する方法。
【請求項19】
請求項に記載のデータストレージシステムであって、
前記コントローラーはさらに、前記有効データ単位の第3セットが前記第1優先度および前記第2優先度とは異なる第3優先度を有していると判定すると、磁気媒体に対して退去させるとともに前記不揮発性メモリアレイのいずれのメモリ領域にもコピーされないデータ単位として、前記第3セットを指定することにより、前記第1のメモリ領域に対してガベージコレクションを実施するように構成されており、
前記不揮発性メモリアレイは、前記磁気媒体のキャッシュメモリとして構成されている、
データストレージシステム。
【請求項20】
請求項に記載のデータストレージシステムであって、
前記コントローラーはさらに、前記有効データ単位の第3セットが前記第1優先度および前記第2優先度とは異なる第3優先度を有していると判定すると、リモートデータストレージに対して退去させるとともに前記不揮発性メモリアレイのいずれのメモリ領域にもコピーされないデータ単位として、前記第3セットを指定することにより、前記第1のメモリ領域に対してガベージコレクションを実施するように構成されており、
前記不揮発性メモリアレイは、前記リモートデータストレージのキャッシュメモリとして構成されている、
データストレージシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、コンピュータシステム向けのデータストレージシステムに関する。より具体的には、本開示は、データストレージシステム向けの優先度に基づくガベージコレクションに関する。
【背景技術】
【0002】
データストレージシステムは、通常の動作中に、多くのハウスキーピング動作を実行する。例えば、有効なデータと無効なデータの両方を含み得るメモリ領域においてガベージコレクションは頻繁に行われる。ある領域がガベージコレクション向けに選択されると、ガベージコレクション動作は、そのメモリ領域内の有効なデータを、メモリ内の新規の場所へコピーし、その後領域全体を消去又は解放することで、領域を、将来的なデータの格納のために利用可能にする。
【発明の概要】
【0003】
しかしながら、ガベージコレクションの実行は、データの格納にソリッドステートメモリが用いられている場合にはライトアンプリフィケーションの増加等の、相当のオーバーヘッドを伴う。したがって、より効率的なガベージコレクションのメカニズムを提供することが望ましい。
【図面の簡単な説明】
【0004】
本発明の多様な特徴を実施するシステム及び方法は、以下の図面を参照して説明される。
図1】本発明の一の実施形態に係る優先度に基づくガベージコレクションを実装する、ホストシステムとデータストレージシステムとの組み合わせを図示する図である。
図2】本発明の一の実施形態に係る優先度情報に基づくランキングを図示する図である。
図3】本発明の一の実施形態に係る優先度に基づくガベージコレクションの動作を図示する図である。
図4】本発明の別の実施形態に係る優先度に基づくガベージコレクションのフロー図である。
図5】本発明の一の実施形態に係るガベージコレクション向けの1以上の領域を選択することを図示する図である。
【発明を実施するための形態】
【0005】
特定の実施形態が説明されるが、これらの実施形態は例示のみを目的とするもので保護範囲を限定する意図はない。実際、本稿において説明される新規の方法及びシステムは他の様々な形態で実施され得る。更に、本稿において説明される方法及びシステムの形態には、多様な省略、置換、変更が、保護範囲を逸脱すること無く行われ得る。
【0006】
概要
フラッシュストレージデバイス等のデータストレージシステムは、性能と寿命の改善のために、ガベージコレクション、ウェアレベリング、不良ブロック管理等の内部システム動作を行う。ガベージコレクションは、あるメモリ領域に格納された有効なデータを別のメモリ領域にコピーし、更に前者のメモリ領域がいかなる有効なデータも格納していないと示すことを伴ってよい。ガベージコレクションは、ガベージコレクションされるメモリ領域内に残存する無効なデータの量を優先度付けに用いることができる。しかしながら、ガベージコレクション動作は、相当のオーバーヘッドを伴い、無効なデータの量のみに基づいたガベージコレクションの優先度付けは、望ましくない非効率性につながり得る。例えば、格納されたデータは様々なレベルの優先度に関連付けられ得て、ガベージコレクションを行う際にデータの優先度を考慮に入れることが有利になるだろう。
【0007】
本発明の実施形態は、ガベージコレクションを行う際に格納されたデータの優先度を考慮に入れる、ガベージコレクションに関する。一の実施形態において、不揮発性ソリッドステートメモリ(non−volatile solid−state memory(NVSM))は、NVSMと回転磁気メディアとが対にされたハイブリッドディスクドライブ内でキャッシュとして機能する。NVSM内のメモリ領域のガベージコレクション中、例えばデータを移動するか、データをキャッシュから追い出す(evict)か、データをキャッシュに併合(consolidate)するか、等を決定するために優先度情報が用いられてよい。例えば、ガベージコレクション中に収集された有効なデータを保持するために、優先度の高いデータは異なるメモリ領域に移動されてよく、その一方で、優先度の低いデータはキャッシュから追い出されてよい。追い出しの対象となるデータの優先度よりもわずかに高い特定の優先度範囲内にあるデータは、また別のメモリ領域に併合されてよい。というのは、このようなデータは後に追い出しの対象となり、ガベージコレクションの観点からは無効なデータになると考えられるからであり、ガベージコレクション中に、無効となりそうなデータにこのような併合を行うことは、オーバーヘッドを削減し、将来的なガベージコレクション動作に関連する効率を向上できる。更に、優先度情報は、キャッシュから磁気ディスク等の別の格納媒体へのデータのフラッシュについての決定を行うために用いることができる。例えば、キャッシュに格納された非冗長な優先度の低いデータは、別のデータストレージ媒体へと定期的にフラッシュされてよい。これにより、後にキャッシュからの追い出しの候補となり得るこのようなデータを確実に同期できる。
【0008】
一部の実施形態において、優先度情報は次のうち1以上の組み合わせであってよい:ホストシステムによって提供された優先度情報(例えば、データ書き込みコマンドの一部として)、データのアクセス頻度、データへの最後のアクセスからの持続時間、及びデータの読み出し/書き込み頻度(例えば、読み/書き率)、ある優先度レベル内でのデータの相対的重要度、データが他のストレージと同期されているか、等。例えば、頻繁にアクセスされるデータをキャッシュ内に保持することでデータストレージシステムの性能が改善する可能性があるため、頻繁にアクセスされるデータにはより高い優先度が割り当てられる。別の例として、他のデータよりも最近アクセスされたデータは将来的にまたアクセスされると考えられるため、最近アクセスされたデータにはより高い優先度が割り当てられ得る。更に別の例として、書き込みよりも読み出しが頻繁に行われるデータにはより高い優先度が割り当てられ得るが、これは、このような頻繁に読み出しされるデータをキャッシュ内に保持することで性能を改善し、かつNVSMの消耗を低減する可能性があるためである。一部の実施形態において、優先度は、上記の要素のうち1以上の、重み付き組み合わせに基づいて割り当てられ得る。
【0009】
単純化と説明を目的として、以下の説明は、不揮発性メモリアレイ150が磁気ストレージ160に対するキャッシュメモリとして機能する例示的な実施形態を中心に行う。しかしながら、本開示の範囲は、このような実施形態に限定されない。例えば、他の実施形態において、データストレージシステム120は磁気ストレージ160に代わって、第2の不揮発性メモリアレイ等、別の種類のデータストレージを含み得る。例えば、不揮発性メモリアレイ150は、第2の不揮発性メモリアレイで用いられているメモリの種類よりも高速な読み/書き性能を提供する種類のメモリを含み得る。一部の実施形態において、不揮発性メモリアレイ150は離れた場所にあるデータストレージに対するキャッシュとして機能し得て、1以上のネットワーク接続を介してデータの同期が行われ得る。
【0010】
システム概要
図1は、本発明の一の実施形態に係る優先度に基づくガベージコレクションを実装する、ホストシステムとデータストレージシステムとの組み合わせ100を図示する。図示のように、データストレージシステム120(例えばハイブリッドディスクドライブ)は、コントローラー130及び不揮発性メモリアレイ150、ならびに、磁気メディア164を有する磁気ストレージ160を含む。不揮発性メモリアレイ150は、フラッシュ集積回路、カルコゲナイドRAM(C−RAM)、相変化メモリ(PC−RAM又はPRAM)、プログラマブルメタライゼーションセルRAM(PMC−RAM又はPMCm)、Ovonic Unified Memory(OUM)、抵抗RAM(RRAM(登録商標))、NANDメモリ(例えばシングルレベルセル(SLC)メモリ、マルチレベルセル(MLC)メモリ、又はこれらの任意の組み合わせ)、NORメモリ、EEPROM、強誘電体メモリ(FeRAM)、磁気抵抗RAM(MRAM)、その他のディスクリートNVM(不揮発性メモリ)チップ、もしくはこれらの任意の組み合わせ、といった不揮発性メモリを含み得る。不揮発性メモリアレイ150は、ブロック、ページ等の1以上のメモリ領域を含んでよい。メモリ領域はメモリ単位を含んでよい。一の実施形態において、不揮発性メモリアレイ150は磁気ストレージ160に対するキャッシュとして機能してよい。データストレージシステム120は更に他の種類のストレージを含んでよい。
【0011】
コントローラー130は、ホストシステム110のストレージインターフェイスモジュール112(例えばデバイスドライバー)から、データ及び/又はストレージアクセスコマンドを受信するように構成されてよい。ストレージインターフェイス112によって通信されるストレージアクセスコマンドは、ホストシステム110によって発行されたデータ書き込み及びデータ読み出しコマンドを含んでよい。読み出し及び書き込みコマンドは、データストレージシステム120へのアクセスに用いる論理アドレス(例えば論理ブロックアドレス又はLBA)を指定できる。コントローラー130は、不揮発性メモリアレイ150で、受信したコマンドを実行できる。
【0012】
データストレージシステム120は、ホストシステム110によって通信されたデータを格納できる。換言すると、データストレージシステム120は、ホストシステム110のメモリストレージとして機能してよい。この機能を容易にするため、コントローラー130は論理インターフェイスを実装してよい。論理インターフェイスは、データストレージシステムのメモリを、ユーザーデータを格納可能な1組の論理アドレス(例えば連続アドレス)としてホストシステム110に提供できる。内部的に、コントローラー130は、論理アドレスを、不揮発性メモリアレイ150、磁気ストレージ160、及び/又はその他のストレージモジュール内の多様な物理位置又はアドレスにマッピングできる。物理位置は、データを格納するように構成されてよい。コントローラー130は、不揮発性メモリアレイ150のガベージコレクションを行うように構成されたガベージコレクションモジュール132と、不揮発性メモリアレイ150に格納(例えばキャッシュ)されたデータを磁気ストレージ160及び/又はその他のストレージモジュールと同期するように構成されたデータフラッシュモジュール134とを含む。一の実施形態において、ガベージコレクションモジュール132は、ガベージコレクションを行うメモリ単位(例えばブロック)を選択するタスクを含む、優先度に基づくガベージコレクションを行うように構成される。一の実施形態において、データフラッシュモジュール134は、優先度に基づくデータのフラッシュを行うように構成される。
【0013】
優先度に基づくガベージコレクション
図2は、本発明の一の実施形態に係るデータ単位の優先度情報に基づくデータ単位のランキング200を図示する。ランキング200は、リスト、キュー、テーブル、ハッシュテーブル、グラフ等、適切なデータ構造を用いて表すことができる。一の実施形態において、ランキング200は、優先度情報に従ってソートされたキューとして表されることができる。例えば、ランキング200は、格納されたデータに関連付けられた優先度情報に従ってソートされた、不揮発性メモリアレイ150に格納されたデータ単位の位置(例えば論理アドレス)を示すことができる。一の実施形態において、データ単位は、ホストから受信された示唆された優先度情報に従って一次的にソートされ、その後、最低使用頻度(LRU)基準等の観察されたデータアクセス基準に基づいて二次的にソートされ得る。
【0014】
図示のように、ランキング範囲202に対応するデータ単位は、併合閾値210及び追い出し閾値220を満たさない(例えば、より高い)優先度情報を有する。例えば、併合閾値が優先度スコア9に設定されており、追い出し閾値が6に設定されている場合、優先度スコア15のデータ単位(例えば、論理ブロックアドレス(logical block address(LBA)))はいずれの閾値も上回ることになり、ランキング範囲202内にあることになる。このようなデータ単位は、1以上の実施形態において、ハイブリッドドライブのキャッシュとして機能する不揮発性メモリアレイ150に保持しておくべき優先度の高いデータ(例えば、高頻度で読み出されるデータ)であり得る。そのため、ランキング範囲202内の優先度の高いデータ単位(例えばLBA)は、ガベージコレクション中、不揮発性メモリアレイ150の別のメモリ領域に移動又はコピーされてよい。このような別のメモリ領域は、ガベージコレクション中に保持するべき有効なデータを格納するために指定される空きメモリ領域であり得る。
【0015】
本発明の実施形態は、他のランキング範囲にあるデータ単位に対する従来のガベージコレクションを修正する。第1の修正例は、併合閾値210を満たす(例えば、より低い)が追い出し閾値220よりも高い優先度情報を有する、ランキング範囲204にあるデータ単位に関する。上述のように、優先度情報が示唆するとおり、このようなデータは近い将来不揮発性メモリアレイ150から追い出され得る。したがって、ランキング範囲204内のデータ単位は、ガベージコレクション中、不揮発性メモリアレイ150のまた別のメモリ領域に併合されてよい。このようなメモリ領域は、多様なメモリ領域からのデータ単位を併合するのに用いられ得る。これを描写するために以下の例を検討したい。従来のガベージコレクションプロセスであれば、特定のブロック1〜NからフリーブロックXへと全ての有効なデータ単位をコピーし得る。しかしながら、一の実施形態においては、ブロック1〜Nの有効なデータ単位には、その優先度ランキングに基づいて、異なる処理が行われる。例えば、ランキング範囲204内のこれらの有効なデータは、ブロックXにはコピーされず、このようなデータの併合用に予約されたブロックYにコピーされるだろう。一方、ランキング範囲202内の有効なデータは、ブロックXへとコピーされるだろう。ブロックYは、近く無効となると思われる、すなわち将来的なガベージコレクション動作の良い候補となり得る、このような優先度の低いデータで満たされる。
【0016】
第2の修正例は、併合閾値210及び追い出し閾値220を満たす(例えば、より低い)優先度情報を有する、ランキング範囲206内のデータ単位に関する。ランキング範囲206にあるデータ単位は、ガベージコレクション中に不揮発性メモリアレイ150から追い出される、又は追い出し用にマーキングされてよい。上述のように不揮発性メモリアレイ150はキャッシュとして機能しているため、特定のデータは、追い出されるべきであるというこのような低い優先度を有し得る。したがって、本発明の一部の実施形態は、従来のガベージコレクション方法では普通保持されるだろう特定の有効なデータが、一部の実施形態のガベージコレクション方法では保持されないように、この追い出しの検討をガベージコレクションのプロセスに統合する。つまり、このような有効なデータは、無効なデータであるかのように扱われる。例えば、ランキング範囲206にあるデータ単位は、削除向けにマーキングされることができ、不揮発性メモリアレイ150内のいかなるメモリ領域にも移動又はコピーされない。上記の例を続けると、ガベージコレクション中に遭遇する、ランキング範囲206にある有効なデータは、やはりいかなるブロックにもコピーされない(従来の方法ではブロックXにコピーされると考えられる)。
【0017】
一の実施形態において、追い出し閾値220及び/又は併合閾値210は、多様な要因に基づいて選択できる。例えば、追い出し閾値を高く設定する(例えば、より多くのデータが追い出されるようにする)ことは、新規データが不揮発性メモリアレイ150に格納されることを可能にするだろう。一方、既に格納されたデータは追い出され得る。これは、データストレージシステム120が、不揮発性メモリアレイ150に格納されたデータの少なくとも一部が古い、又は陳腐化していると判断した場合に有利となり得る。この判断は、ホストシステム110の動作に少なくとも部分的に基づき得る。一の実施形態において、追い出し閾値220及び/又は併合閾値210は、データストレージシステム120の動作中に動的に調整されてよい。当業者は、図2に示した優先度ランキングは例示に過ぎず、他の実施形態においては異なる方法を用いる(例えば、優先度ランキングの決定に関して、「最高」と「最低」の意味を逆転させる)ことが可能であることを理解するだろう。他の実施形態においては、優先度の追跡に、データフラグ、リンクされたリンク、ビットマップ、等のその他の方法が用いられ得る。上述のガベージコレクションシステム及び手順は、特定の優先度追跡メカニズムに依存しない。
【0018】
図3は、本発明の実施形態に係る優先度に基づくガベージコレクション300の動作を図示する。優先度に基づくガベージコレクション300は、コントローラー130及び/又はデータフラッシュモジュール134によって実行できる。図示のように、メモリ領域310及び320はガベージコレクションされている。優先度に基づくガベージコレクション300は、領域310のデータ単位312、314、316、318、319と、領域320のデータ単位322、324、326、328、329と関連付けられた優先度情報を決定する。一の実施形態において、優先度に基づくガベージコレクション300は、ランキング200を用いて優先度情報を決定する。例えば、優先度に基づくガベージコレクション300は、データ単位に関連付けられた優先度情報を検索できる。
【0019】
図3の例において、データ単位312、314、316、318は優先度に基づくガベージコレクションによって有効である(例えば、陳腐化していない、又は他の場所に格納されたデータのコピーによって無効化されていない)と決定されている。上述のとおり、有効なデータには、関連付けられた優先度情報によって、異なる処理が行われる。
【0020】
第1のケースでは、優先度に基づくガベージコレクション300は、データ単位312に関連付けられた優先度情報が、追い出しの対象であることを示すことを決定する。例えば、ガベージコレクション300は、優先度情報が追い出し閾値220を満たすことを決定する。更に、優先度に基づくガベージコレクション300は、データ単位312が、例えば磁気ストレージ160と同期されていないと決定する。例えば、データ単位312はホストシステム110によって格納されたデータの最新のコピーであってよい。つまり、メモリ単位312に格納されたデータは非冗長である。このため、データ単位312は、不揮発性メモリアレイ150から追い出し不可である。一の実施形態において、データ単位312は、異なるメモリ領域にコピー可能である。
【0021】
第2のケースでは、優先度に基づくガベージコレクション300は、データ単位314に関連付けられた優先度情報が、追い出しの対象であることを示すと決定する。データ単位312とは異なり、データ単位314は、例えば磁気ストレージ160と同期されている。したがって、データ単位314は、磁気ストレージ160にフラッシュせずに不揮発性メモリアレイ150から追い出し可能である。一の実施形態において、データ単位314を格納しているメモリ領域310内のメモリ位置は、後の削除又は上書きのためにマーキングされてよい。
【0022】
第3のケースでは、優先度に基づくガベージコレクション300は、データ単位316に関連付けられた優先度情報が、併合の対象であることを示す(例えば、優先度情報が併合閾値210を満たす)と決定する。このため、データ単位316は、併合向けに指定されたデータを格納するように構成されるメモリ領域340において併合可能である。一の実施形態において、1以上のメモリ領域内の優先度の低いデータを併合すると、このようなデータは将来的に追い出されると考えられることから、ガベージコレクションの効率を向上できる。例えば、不揮発性メモリアレイ150内のデータの移動又はコピーに関連するライトアンプリフィケーションが、1以上のメモリ領域内の優先度の低いデータを併合した結果として、低減できる。図示のように、データ単位316は、メモリ領域340にコピーされる。一の実施形態において、データ単位316を格納しているメモリ領域310内のメモリ位置は、後の削除又は上書きのためにマーキングされてよい。
【0023】
第4のケースでは、優先度に基づくガベージコレクション300は、データ単位318に関連付けられた優先度情報が、追い出し又は併合の対象ではないことを示す。例えば、ガベージコレクション300は、優先度情報が併合閾値210も追い出し閾値220も満たさないことを決定する。このため、データ単位318は、従来のガベージコレクションにおいてと同様に、別のメモリ領域330に移動又はコピー可能である。例えば、このようなデータは、不揮発性メモリアレイ150に保持すべき優先度の高いデータであり得る。図示のように、データ単位318はメモリ領域330にコピーされる。一の実施形態において、データ単位318を格納しているメモリ領域310内のメモリ位置は、後の削除又は上書きのためにマーキングされてよい。
【0024】
最後に、優先度に基づくガベージコレクション300によって発見された全ての無効なデータは、従来のガベージコレクションと同様に処理される。このため、無効である(例えば、陳腐化している、又は他の場所に格納されたデータのコピーによって無効化されている)データ単位319は、別のメモリ領域にはコピーされず、データ単位319を格納しているメモリ領域310内のメモリ位置は、後の削除又は上書きのためにマーキングされてよい。
【0025】
メモリ領域320について、メモリ領域310における上述の例と同様に、優先度に基づくガベージコレクション300は、データ単位322、324、326、328、329に同様の処理を行い、各々を、関連付けられた優先度情報に従って扱う。一の実施形態において、データ単位326は、データ単位316がコピーされた先とは異なるメモリ領域にコピーされてよい。例えば、メモリ領域340が満杯であれば、別の併合領域が用いられ得る。
【0026】
同様に、一の実施形態において、データ単位328は、データ単位318がコピーされた先とは異なるメモリ領域にコピーされてよい。例えば、メモリ領域330が満杯であれば、別のメモリ領域が用いられ得る。
【0027】
図4は、本発明の一の実施形態に係る優先度に基づくガベージコレクションのプロセス400を示すフロー図である。プロセス400は、コントローラー130及び/又はガベージコレクションモジュール132及び/又はデータフラッシュモジュール134によって実行できる。プロセス400は、ガベージコレクション用のメモリ領域を選択するブロック402から開始する。プロセス400は、有効なデータを格納する1以上のメモリ単位を識別するブロック404に遷移する。このようなメモリ単位の各々について、プロセス400は次の動作を行う。
【0028】
ブロック406において、プロセス400は、メモリ単位に格納されたデータ単位が追い出しの対象であるかどうかを決定する。一の実施形態において、プロセス400は、データ単位に関連付けられた優先度情報が追い出し閾値220を満たすかどうか、及び、データが冗長かどうかを決定する。プロセス400がこれらの条件がいずれも満たされると決定すると、データ単位は追い出し可能となり、プロセスは、データ単位を不揮発性メモリ150から追い出すブロック408に遷移する。一の実施形態において、プロセス400は、データ単位を、後の削除又は上書き用にマーキングしてよい。プロセス400はその後、処理するべき追加のメモリ単位が存在するかどうかを決定するブロック416に遷移する。プロセス400が、処理するべき1以上の追加のメモリ単位が存在すると決定すると、プロセス400は次のデータ単位を処理する406に遷移する。それ以外の場合には、プロセス400は終了する。
【0029】
ブロック406において、データ単位が追い出しの対象ではないとプロセス400が決定すると、プロセスは、そのデータ単位が併合の対象かどうかを決定するブロック410に遷移する。一の実施形態において、プロセス400は、そのデータ単位に関連付けられた優先度情報が併合閾値210を満たすかどうかを決定する。プロセス400が、そのデータ単位が併合の対象であると決定すると、プロセスは、併合メモリ領域として構成される第1のメモリ領域内のメモリ単位にデータ単位をコピーするブロック412に遷移する。プロセス400は、その後、処理するべき追加のメモリ単位が存在するかどうかを決定するブロック416に遷移する。プロセス400が、処理するべき1以上の追加のメモリ単位が存在すると決定すると、プロセス400は、次のデータ単位を処理する406に遷移する。それ以外の場合には、プロセス400は終了する。
【0030】
ブロック410において、データ単位が併合の対象ではないとプロセス400が決定すると、プロセスは、ブロック414に遷移する。例えばデータ単位は、図2のランキング範囲202からのデータ単位のような優先度の高いデータ、もしくは非冗長な優先度の低いデータである。ブロック414において、プロセス400は、このデータ単位を、標準メモリ領域として構成される第2のメモリ領域のメモリ単位に移動又はコピーする。プロセス400は、その後、処理するべき追加のメモリ単位が存在するかどうかを決定するブロック416に遷移する。プロセス400が、処理するべき1以上の追加のメモリが存在することを決定すると、プロセス400は、次のデータ単位を処理する406に遷移する。それ以外の場合には、プロセス400は終了する。
【0031】
図5は、本発明の一の実施形態に係るガベージコレクション向けの1以上の領域を選択することを図示する。ガベージコレクション向けの1以上の領域を選択することは、コントローラー130及び/又はガベージコレクションモジュール132によって実行可能である。一の実施形態において、この選択は、図4のブロック402において実行可能である。ガベージコレクション候補リスト500は、ブロック、502、504、506、520、530等のメモリ領域を含む。伝統的に、ガベージコレクション候補リストは、メモリ領域内の無効なデータ単位の数によってソートされてよい。一の実施形態において、ガベージコレクション候補リスト500は、データ単位に関連付けられた優先度情報によってもソートされる。例えば、領域内の無効なデータの数と、領域に格納されたデータ単位の優先度情報とを考慮に入れた、複合的な基準が算出されてよい。一の実施形態において、複合的な基準は、無効なデータ単位の数と追い出し可能なデータ単位の数との合計(例えば、優先度情報が追い出し閾値を満たす冗長なデータ単位)である。別の実施形態において、複合的な基準は、無効なデータ単位の数と、領域に格納されたデータ単位に関連付けられた優先度情報の加重平均である。リスト500内のエントリは、優先度の降順でソートされてよい。つまり、より高い複合的な基準を有する領域が、リスト500の先頭に位置してよい。より高い複合的な基準は、領域がよりガベージコレクションの候補になりやすいことを示してよい。例えば、領域502は、最も可能性の高いガベージコレクションの候補であってよい。別の実施形態において、リストのエントリは、優先度の昇順でソートされてよい。別の実施形態において、より高い複合的な基準は、領域がよりガベージコレクションの候補になりにくいことを示してよい。更に別の実施形態において、キュー、テーブル、ハッシュテーブル、グラフ等の任意の適切なデータ構造は、リスト500と共に、またはそれに代わって、用いられてよい。
【0032】
一の実施形態において、ガベージコレクション中、無効なデータを格納するデータ単位、及び優先度情報が追い出し閾値220を満たす、有効かつ冗長な(例えば、同期された)データを有するデータ単位が、別のいかなるメモリ領域にもコピー又は移動されないため、このようなデータ単位は、効率的にガベージコレクション可能である。優先度情報が追い出し閾値220を満たすが、データは非冗長である、有効なデータを有するデータ単位は、追い出し不可であり、ガベージコレクション中に別のメモリ領域へコピー又は移動する必要があり得る。例えば、磁気ディスクはガベージコレクション中に回転していない可能性があるため、非冗長データは同期できない。別の例として、磁気ディスクが回転していたとしても、非冗長データをディスクにコピーすることは、コピーに伴う遅延のために、望ましくない場合がある。したがって、ガベージコレクションの効率を向上させるために、有効で非冗長な優先度の低いデータ単位を、磁気ストレージ160にフラッシュすることは有利であり得る。このようなフラッシュは、データフラッシュモジュール134によって行われてよい。
【0033】
一の実施形態において、非冗長な優先度の低いデータ単位のフラッシュは、データ単位に関連付けられた優先度情報を考慮に入れる。フラッシュされたデータ単位の優先度情報が追い出し閾値220を満たしていると仮定すると、非冗長なデータ単位をフラッシュすることは、データ単位が格納された領域の複合的な基準を上昇させ得る。データフラッシュモジュール134は、優先度情報が追い出し閾値220を満たす、1以上の非冗長なデータ単位をフラッシュ向けに選択してよく、これにより、このような1以上の領域を、ガベージコレクションにより適した候補とする。このような非冗長なデータ単位は、一旦フラッシュされると、ガベージコレクション中に追い出し可能である。したがって、ガベージコレクションの効率が向上する。このアプローチを採用することで、ガベージコレクションの効率が向上するよう、優先度の低いデータのフラッシュが並べ替え、又は優先度付けされる。
【0034】
一の実施形態において、データ単位に追い出し閾値220を満たす優先度を与えることにより、磁気ストレージ160との同期向けに、データ単位が選択されて良く、ガベージコレクション候補である1以上のメモリ領域に格納される。このように選択された少なくともいくつかのデータ単位が同期又はフラッシュされる。これらのフラッシュされたデータ単位は、ガベージコレクション中に追い出されてよい。例えば、フラッシュされたデータ単位は、ガベージコレクション中いかなるメモリ領域にもコピーされないよう指定されてよい。
【0035】
例えば、領域506は、無効なデータ単位50%と、優先度情報が追い出し閾値220を満たす有効で冗長なデータ単位10%と、優先度情報が追い出し閾値220を満たす有効で非冗長なデータ単位15%と、を格納していると仮定する。非冗長な優先度の低いデータ単位がフラッシュされる前に、領域506の複合的な基準は60である。しかしながら、全ての非冗長な優先度の低いデータ単位がフラッシュ又は同期されると、領域の複合的な基準は75に上昇する。したがって、ガベージコレクション中に別のメモリ領域にコピー又は移動を必要とするのが、領域に格納されたデータ単位の25%のみであることから、領域506は、ガベージコレクションにより適した候補となる。
【0036】
結論
開示された優先度に基づくガベージコレクションは、ガベージコレクションと、格納システム全体の効率を向上するために、不揮発性メモリアレイに格納されたデータの属性を用いる。優先度の低い一連のデータは、不揮発性メモリアレイから選択的に追い出し可能である。これにより、例えばガベージコレクションに伴うライトアンプリフィケーションを低減できる。優先度の低い、他の一連のデータは、不揮発性メモリアレイ内の別の領域において再編成又は併合できる。更に、ガベージコレクションを強化又は最適化するために、データのフラッシュが行われて良い。これにより、性能及び耐久性が向上できる。
【0037】
その他の変形例
当業者は、一部の実施形態において、開示された技術が、格納システムによって実行される他のハウスキーピング動作に適用可能であることを理解するだろう。例えば、ウェアレベリングや不良ブロック管理等の際に、データの優先度が考慮に入れられてよい。また、格納されたデータの優先度を決定するために、追加の要素が用いられてよい。更に、格納されたデータの優先度は、要素の任意の適切な組み合わせを用いて、また、平均、加重平均、最小二乗決定、その他の線形関数及び/又は非線形関数といった任意の適切な関数をこの組み合わせに適用して、決定されてよい。図3及び4に図示するプロセスのような、開示されたプロセスにおいて行われる実際の工程は、図示されたものとは異なり得る。追加のシステムコンポーネントが用いられてよく、開示されたシステムコンポーネントは組み合わせ又は省略されてよい。実施形態によっては、上述した工程のうちいくつかは削除されてよく、他の工程が追加されてよい。したがって、本開示の範囲は、添付の請求の範囲への参照によってのみ定義されるよう意図される。
【0038】
特定の実施形態が記載されたが、これらの実施形態は例示のためにのみ提供されたものであり、保護の範囲を限定することを意図しない。実際に、本稿に記載の新規な方法及びシステムは他の多様な形態で実施され得る。更に、本稿に記載の方法及びシステムの形態の様々な省略、置換、及び変更が、保護の精神から逸脱することなく加えられ得る。添付の請求の範囲及びその等価物は、このような形態又は変形をも、本開示の精神及び範囲に含まれるものとして包含するよう意図されている。例えば、本稿に記載のシステム及び方法は、ハードディスクドライブ、ソリッドステートドライブ等に適用可能である。更に、その他の形態の格納媒体(例えばDRAM又はSRAM、バッテリーバックアップ揮発性DRAM又はSRAM装置、EPROM、EEPROMメモリ等)が、追加又は代替として用いられ得る。別の例として、図面に図示された様々な要素は、ソフトウェア及び/又はプロセッサ上のファームウェア、ASIC/FPGA、又は専用ハードウェアとして実装され得る。更に、上述した特定の実施形態の機能及び属性は、異なる方法で組み合わせられて追加の実施形態を成立し得て、その全てが、本開示の範囲に包含される。本開示は特定の好適な実施形態及び応用を提供しているが、本稿に記載の全ての機能及び利点を提供しない実施形態を含む、当業者にとって明白なその他の実施形態も、本開示の範囲に包含される。したがって、本開示の範囲は、添付の請求の範囲を参照することによってのみ定義されるよう意図される。
図1
図2
図3
図4
図5