(57)【要約】  ストレージ・メディア（ＮＡＮＤフラッシュもしくはストレージクラスのメモリストレージ）システムを様々なストレージシステムコンポーネントに亘ってトランスレーション・レイヤーを分配する方法およびシステムがここに記載される。これに限定されないストレージシステムコンポーネントの例としては、永続性記録装置（ＰＳＤ）、ストレージ・アグリゲーション・コントローラー（ＳＡＣ）、およびストレージ・マネージメント・ライター（ＳＭＷ）が含まれる。前記ＳＭＷは、ＳＡＣを通してＰＳＤに書き込まれる各ページの論理アドレステーブルを維持するよう構成されてもよい。前記ＳＡＣは、前記ＳＭＷが前記ＳＡＣに対しページのいずれかが有効でなくなったことを通知することにより書き込まれたページの有効状態を維持するものである。前記ＰＳＤは装置に特有の問題を処理するものであり、それにはエラーの訂正およびブロックレベルでのフェイルおよび内部消耗レベルの管理に用いられるブロックレベルでのマッピングのを処理が含まれる。前記ＳＡＣは管理している前記ＰＳＤ内において物理ページの不要データの収集を前記ＳＭＷが実際のページレベルのテーブルの維持処理を実行するのに並行して行うものである。  【選択図】      図１
2015529368.tif 000002
【特許請求の範囲】
【請求項１】
ストレージ・トランスレーション・レイヤーを実行するよう構成されたデータ・ストレージ・システムであって、当該データ・ストレージ・システムは、
複数の永続性記憶装置であって、当該複数の永続性記憶装置の各々は複数のデータ・アクセス・ユニットおよびメタデータを格納するよう構成されたストレージメディアと、前記ストレージメディアの複数のストレージ・ブロックをストレージ・ブロックレベルで管理するよう構成されたストレージ・ディバイス・コントローラとを含む複数の永続性記憶装置と、
前記複数の永続性記憶装置と通信可能な複数のストレージ・アグリゲーション・コントローラーであって、前記複数のストレージ・アグリゲーション・コントローラーは前記複数のデータ・アクセス・ユニットの有効性を維持するよう構成されるものである複数のストレージ・アグリゲーショ・コントローラーと、
前記複数のストレージ・アグリゲーション・コントローラーと通信可能なストレージ・マネージメント・ライター・コントローラーであって：
前記複数のデータ・アクセス・ユニットの論理アドレスおよび前記複数の永続性記憶装置に格納されたデータにアクセスし、
前記論理アドレスと前記複数のストレージ・アグリゲーション・コントローラーに格納されたデータとのマップを維持するよう構成された
ストレージ・マネージメント・ライター・コントローラーと、
を有するデータ・ストレージ・システム。
【請求項２】
請求項１に記載のシステムにおいて、前記複数のストレージ・アグリゲーション・コントローラーは、前記ストレージ・マネージメント・ライター・コントローラーから受け取るメッセージに基づいて前記複数のデータ・アクセス・ユニットの有効性の経過を追うものであるシステム。
【請求項３】
請求項１に記載のシステムにおいて、前記複数のストレージ・アグリゲーション・コントローラーは、前記複数のストレージブロックから少なくとも１つを不要データの収集のために選択するよう構成されたシステム。
【請求項４】
請求項３に記載のシステムにおいて、少なくとも１つの前記複数のストレージ・アグリゲーション・コントローラーは不要データの収集を実行するものであるシステム。
【請求項５】
請求項４に記載のシステムにおいて、不要データの収集には、不要データとして収集されるブロックの論理アドレスおよび物理アドレスを前記少なくとも１つの複数のストレージ・アグリゲーション・コントローラに送信するものであるシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本願は、２０１２年９日６日出願の米国特許仮出願第６１／６９７、７１１号および２０１３年３日１５日出願の米国特許仮出願第６１／７９９、４８７号に対して利益を主張するものであり、その内容は参照により本明細書に組み込まれる。
【背景技術】
【０００２】
ＮＡＮＤ（ｎｏｔ−ａｎｄ）フラッシュやストレージ・クラス・メモリのようなストレージ媒体の一つの特徴は、ストレージ媒体が一般的にプログラム前消去アーキテクチャを有していることにある。さらに、従来のストレージ媒体は、消去ユニットサイズより著しく小さいユニットサイズ（セクタ、ページもしくはそのようなもの）で読み込みとプログラム（もしくは「書き込み」）を実行する。例えば、一般的な読み込みおよびプログラムのユニットサイズは４キロバイト、８キロバイト、１６キロバイト、３２キロバイト、および６４キロバイトであるのに対し、一般的に消去のユニットサイズ（もしくはブロック）は一般的に前記読み込み／プログラムユニットサイズのほぼ２００から１０００倍である。フラッシュ・トランスレーション・レイヤー（ＦＴＬ）ソフトウエアシステムはこれまでストレージ媒体の前記プログラム前消去アーキテクチャや読み込み／プログラムユニットサイズに対する消去ユニットサイズの不均衡を処理できるよう開発されてきた。しかしながら、前記従来の方法によるＦＴＬの管理は、一般的にストレージシステムのコストの増加や複雑化につながっている。従って、前記ＦＴＬとそれに関連した機能の効率的かつ効果的な使用方法は、データストレージ産業に利益をもたらす可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
システム、装置および方法は多様であり得るので、本開示はここに記載される特定のシステム、装置および方法に限定されるものではない。この説明において用いられる用語は、特定の仕様や実施形態のみを言い表すためのみに用いられるものであり、従って、スコープを限定するものではない。
【０００４】
本明細書において使用される場合、「ａ」、「ａｎ」、および「ｔｈｅ」といった単数形は、文脈がそうでないと明確に規定しない限り、複数形への言及を含む。そうでないと定義されない限り、本明細書において使用されるすべての技術用語および科学用語は、当業者によって一般に理解されるものと同一の意味を有する。本開示におけるいかなるものも、本開示において説明される実施形態が従前の発明のおかげでそのような開示に先行する権利を有しないことを認めるものとして解釈されるべきではない。本明細書において使用される場合、「有する」という用語は、「〜を含むが、〜に限定されない」ことを意味する。
【課題を解決するための手段】
【０００５】
実施形態において、ストレージ・トランスレーション・レイヤーを実装するよう構成されたデータ・ストレージ・システムは、複数の永続性記憶装置であって、当該複数の永続性記憶装置の各々は、ストレージ媒体を備え、当該ストレージ媒体は複数のデータ・アクセス・ユニットおよびメタデータを格納するよう構成さるものである永続性記憶装置と、ストレージ・デバイス・コントローラーであって、ストレージ・ブロック・レベルのストレージ媒体における複数のストレージブロックを管理するよう構成されたストレージ・デバイス・コントローラーと、複数のストレージ・アグリゲーション・コントローラーであって、前記複数の永続性記憶装置と通信操作可能であり、前記複数のデータ・アクセス・ユニットの有効性を維持するよう構成されるものであるストレージ・アグリゲーション・コントローラーと、ストレージ管理書き込みコントローラーであって、前記複数のストレージ・アグリゲーション・コントローラーと通信操作可能であり、前記複数のデータ・アクセス・ユニットのロジカルアドレスおよび前記複数の永続性記憶装置に格納されたデータにアクセスし、前記ロジカルアドレスと前記複数のストレージ・アグリゲーション・コントローラーに格納された前記データとの間のマップを維持するよう構成されたものであるストレージ管理書き込みコントローラーと、を備えるものである。
【図面の簡単な説明】
【０００６】
【図１】図１は、メディア消去ブロックおよびその構成要素であるＮページおよびＭロジカルブロックアドレスを単一のページ内に示したものである。
【図２】図２は、ある実施形態に従ったアドレスマッピングを図示するものである。
【図３】図３は、前記ＰＳＤ内の有効なページを前記ＳＡＣによってトラックするメカニズムをある実施例に従って図示するものである。
【図４】図４は、一般的な書き込み（"プログラム"とも呼ばれる）プロセスを図示するものである。
【図５】図５は、前記ストレージ・トランスレーション・レイヤーをＳＭＷからＳＡＣを経由して前記ＰＳＤへとマッピングしたものを図示するものである。
【発明を実施するための形態】
【０００７】
ＦＴＬは様々な機能を果たすためのものである。例えば、論理−物理（ＦＴＰ）アドレスへのマッピングを実行するものであり、これには一般的に論理的なシステムレベルアドレスから物理的なメモリアドレスへのマッピングを伴うものである。別の機能例としては、パワー・オフ・リカバリー機能があげられるが、これは電力喪失が起きた際に、電力喪失後の保存データへのアクセス／回復を行う機能である。さらなる例としては、消耗平準化があげられ、この機能は、大半のプログラムユニットがそれぞれの耐用期間の満了に達するよう、統計的に予想可能な分配に基づいて利用可能なプログラムユニットを均等に消耗させるようプログラムイベントを配置するものである。さらに、不要データを収集する機能も含まれるものであり、これは消去ユニット内で良いデータ（例えば一時的な有効性を持つデータ）を古くなったデータ（例えば、一時的な利用性がなくなったたデータ）からの分離させ、回復し、前記良いデータを再分配して利用可能なプログラムユニットに戻すものである。ＦＴＬ機能は典型的に同一の機能ユニット内にストレージ・ディバイス・ユニットやソリッド・ステート・ドライブ（ＳＳＤ）というようなストレージ媒体として「含まれ」る。
【０００８】
ＦＴＬのパフォーマンスには様々な特徴が関係するものであるが、これには読み込み／プログラムパフォーマンス、システムオペレーションの遅延、時間でみたオペレーション（読み込み、プログラム、消去）ごとの平均電力、消耗平準化の有効性、オーバープロビジョニング（例えば、ユーザデータとして使用可能なメモリに対してローメモリとして物理的にシステムにあるメモリの量）、ＬＴＰマッピング情報を含むメタデータを記憶するのに必要となる量のメモリ（「状態情報」もしくは「状態」）、空き容量情報、および／もしくは消耗平準化用情報、不要データの収集、というような特徴が関与してくる。
【０００９】
一般的にこれまでフラッシュ・トランスレーション・レイヤの実装に関連付られたストレージ・ディバイス・ユニットのコストは、「ホット」メタデータ（典型的にランダムアクセスメモリ「ＲＡＭ」）および使われていないメタデータ（一般的にメディアに格納される）を保存するのに必要となるメモリの量に直接的に比例する。
【００１０】
ストレージ・ディバイス・ユニットのコストを削減するために、コストに敏感な消費者クラスや企業クラスの初心者向けディバイスの多くはメディア（Ｔｈｅ  Ｍｅｄｉａ）を消去ユニットレベルのみで管理するが、これは状態を保つために必要となるメタデータのサイズを最小限に抑えることを意味し、より少量のＲＡＭへとつながる。一方で、パフォーマンスに敏感な企業クラスのディバイスにおいては、読み込み／プログラムのユニットのサイズで一般的に管理される。そのようなアプリケーションにおいて、メタデータアイテムはメディアを実装したストレージディバイスは管理されたサイズの各構成要素において必要とされる。
【００１１】
相対的に消費者クラスのディバイスに対して、企業クラスのストレージ・ディバイスに典型的にある特性としては、メディアを制御するためのサーケットの複雑さとコストがあげられ、当該サーケットで消費される電力はより大きいことから、生産とオペレーション両方において数値的に著しい違いを生じさせる。
【００１２】
さらに、企業クラスのストレージディバイスが消費者クラスのストレージディバイスと比べてより安定して信頼性のあるオペレーションを提供するための必須条件を装備させると、エラーの検知とメタデータ情報への訂正情報を追加するコストがかかりさらに生産とオペレーション両方のコストと複雑さを増加させる。
【００１３】
説明される技術は一般的にＮＡＮＤフラッシュもしくは多岐にわたるストレージ・システム要素のストレージ・クラス・メモリ（メディア）のトランスレーション・レイヤを分配する方法に関するものである。これに限定されないストレージ・システム要素の例として、永続性記憶装置（ＰＳＤ）、ストレージ・アグリゲーション・コントローラー（ＳＡＣ）、およびストレージ・マネジメント・ライター（ＳＭＷ）が含まれる。ＳＭＷはＳＡＣを介してＰＳＤに書き込まれる各ページの論理アドレステーブルを維持するよう構成されるものであり、各ブロックへの前記ページの書き込みは、前記ＰＳＤ内のブロックがそれ以上の書き込みを受容できないまで続いて起こるものである。前記ＳＡＣは過去に書き込まれたページを前記ＳＭＷが前記ＳＡＣにページが有効でなくなった場合に通知することでその有効性のステータスを維持するものである。前記ＳＡＣはＰＳＤのブロックにあるデータが「不要データの収集」を必要としていることを決定し、その時点で前記ＳＡＣはそれまでにアクセスしたＰＳＤ内もしくはＰＳＤにを超えてデータを移動させ、前記ＳＭＷに前記ページが物理的に保存されるロジカルアドレスの記録をアップデートするよう通知するものである。前記ＰＳＤはデバイスに特化した問題を扱うものであり、エラーの訂正およびブロックレベルでの不具合および内部消耗平準化の管理をブロックレベルでマッピングするするものである。前記ＳＭＷが実際のページレベルでのテーブルを維持する間に、前記ＳＡＣは当該ＳＡＣが管理するＰＳＤ内における物理的ページの不要データの収集を扱うものである。
【００１４】
このように、ＰＳＤおよび前記ＳＡＣはメモリが最小限のフットプリントを保有するよう構成され、これにより低レベルコントローラにおいてページレベルのマッピングを行う技術を用いる解決策に比べ、より効率的なコストおよび消費電力の解決策を可能にする。
【００１５】
ここに説明される複数の実施例は、従来ストレージ・ディバイス・ユニット内に一体的に含まれてきた複数の分散型のユニットを定義するものである：前記永続性記憶装置（ＰＳＤ）は、消去ユニット（であって読み込み／プログラムユニットでないもの）を格納および管理し、さらに前記メディアを含むものであり、前記ストレージ・アグリゲーション・コントローラー（ＳＡＣ）は、一時的に有効な物理的なページをコーディネートし、読み込み／プログラムユニットの不要データの収集を複数のＰＳＤの集合内で管理するものであり、前記ストレージ・マネジメント・ライター（ＳＭＷ）は、各読み込み／プログラムユニットの論理アドレスのメタデータを維持し、前記ＳＡＣを介して前記ＰＳＤに書き込むことを実行し、データユニット用の論理アドレスが書き込まれるのと同時進行で割り当てをし、前記ＳＡＣに論理ユニットが有効でなくなったことを通知するものであり、不要データの収集が前記ＳＡＣによって実行された時に、前記論理アドレスの変更をアップデートするものである。
【００１６】
ここに説明される前記システム、方法および装置は、ストレージ・トランスレーション・レイヤー（ＳＴＬ）を提供するものであり、当該ＳＴＬは１もしくはそれ以上のＳＭＷに亘ってユニット管理されたシステムの読み込み／プログラムを実行するよう構成され、前記ＳＡＣもしくは前記ＰＳＤのどちらにおいてもページレベルのメタデータを必要としないものであり、結果としてＰＳＤにより少量のＲＡＭとより少ないメディアを備えさせることを達成するものである。これにより、量的に効率的な生産とコストアドバンテージのあるオペレーションを提供するものである。
【００１７】
図１はメディア消去ブロックと、その構成要素であるＮページおよび前記Ｍ論理ブロックアドレスを単一のページ内に表したものである。読み込み／書き込みユニットは典型的に1つもしくはそれ以上のメディアページの論理ブロックアドレスである。ＳＳＤが典型的にフラッシュ・トランスレーション・レイヤーの内部処理に決められたサイズの論理ユニットを用いて実行するように、データ・アクセス・ユニット（ＤＡＵ）は一般的に５１２キロバイト、１キロバイト、４キロバイト等のいずれであっても一般的にロスがないユニットであるものである。
【００１８】
前記ストレージ・トランスレーション・レイヤーはＤＡＵが保存される前記物理アドレスのマッピングを維持する「ホット」メタデータが前記ＰＳＤでなく、変わりに前記ＳＭＷにおいて維持されることを可能にし、これによりパフォーマンスが失われることなくＰＳＤおよびＳＡＣにおける構成要素のコスト低減を実現する。各ＰＳＤは独立して各々の消去ユニットレベルでのマッピング（状態もしくはメタデータ情報とも呼ばれる）を管理するものである。前記ＰＳＤは１もしくは複数の物理的ダイ（メディアの物理的ユニット）に物理的に位置するメディア内のブロックを管理するものである。
【００１９】
前記ＰＳＤが前記ユニットのシングルダイにおいてブロックのマッピングを維持し、前記ＳＡＣがダイレベルをＰＳＤオペレーションで明白に維持できる場合、前記ＳＡＣは各ダイへのアクセスをＳＡＣレベルにおけるオペレーションの列（キュー）を維持することで管理することができ、前記システムレベルの属性は各ＰＳＤ単独と比べてよりよく理解される。
【００２０】
前記ＰＳＤは、サブ消去ユニットレベルのマッピング構成を維持する必要がない。完全性のために、状態を維持することでブロック中部への書き込みを検知し、内部的に全ての従前のページを従前の消去ユニットから新たな消去ユニットへのコピーを実行し、これにより新たな書き込みが置かれてもよい。前記ストレージ・トランスレーション・レイヤーは様々な機能を実行し基本的なオペレーションには書き込み、読み込み、および不要データの収集が含まれる。
【００２１】
書き込み  
ＳＭＷによって制御されるＰＳＤにデータを書き込むために、前記ＳＭＷは先ず「ストレージ・ブロック（データストレージのユニットであって、メディアにプログラムされるものである）」をＳＡＣから要求する。不確実性を防ぐために、１もしくはそれ以上の「ストレージ・ブロック」が前記ＳＡＣより提供され、いずれかのＰＳＤおよび１もしくはそれ以上のＰＳＤはＳＡＣから特定されたＳＭＷへの「ストレージ・ブロック」の提供を受ける。
【００２２】
前記ＳＡＣはその時点で使われていない有効なデータストレージブロックを前記ＳＭＷに提供する。前記ＳＡＣは不要データの収集（後により詳細に説明）を実行することに責任を負うものであり、これにより有効なデータを有しないストレージ・ブロックを取得して新たな書き込みに利用可能とする。
【００２３】
いくつかの実施形態において、前記ＰＳＤは前記ＳＡＣから前記ＳＭＷに提供された「ストレージ・ブロック」のアドレスでエンコードされてもよい。前記ＳＡＣはデータ・アクセス・ユニット（ＤＡＵ）の最大値を前記ＳＭＷに提供する際に各ストレージ・ブロックに通知する。ＤＡＵは固定された数のロジカル・ブロック・アドレスを含んでもよい。前記ＤＡＵの「ストレージ・ブロック」毎の最大の数値はＰＳＤ毎に固定されてもよいが、いくつくかの実施例においては異なるものである。
【００２４】
前記ＳＭＷがブロック識別子（「Ｂｌｋ＿ＩＤ」）をＳＡＣ−ブロックから前記ＳＡＣを要求する際に与えられ、前記ＳＭＷがこの番号を以降のアクセスの際に参照する場合、ルックアップおよびエラー処理の様々な問題が双方において簡素化される。例えば、双方が通信に同意し、ＢＬＫ＿ＩＤもしくは前記ＳＡＣ−ブロックが進行中の書き込みの状態を維持するために用いられる。もしＢｌｋ−ＩＤが前記ＳＡＣ−ブロックと不一致である場合、エラー状態が即時に特定されるＳＭＷによってＳＡＣに並行して書き込まれる「ストレージ・ブロック」の数は、ＳＡＣ上の全てのＰＳＤ内における「ストレージ・ブロック」の合計と比べほんのわずかであるため、並行して書き込まれるストレージ・ブロック数用のテーブルのサイズは、ＳＡＣ内の全てのストレージブロック用の数に比べ１サイズ物質的に小さいものとなる。
【００２５】
前記「Ｂｌｋ＿ＩＤ」がハンドシェイクから除外される場合、ＳＡＣに書き込まれる全てのストレージ・ブロックの状態を前記ＳＭＷが維持するものであり、前記ＳＡＣが維持するものであり、前記ＳＡＣはＳＭＷから書き込まれる全ての「ストレージ・ブロック」の状態を維持するものである。
【００２６】
ＰＳＤ−Ｂｌｋ＿ＩＤは前記ＳＡＣと前記ＰＳＤ間において書き込み中のＰＳＤ−ブロックを特定するために用いられることもでき、これはＢｌｋ＿ＩＤが前記ＳＭＷと前記ＳＡＣ間でＳＡＣブロックの特定を手助けするのと同様のアプローチで用いる事ができる。
【００２７】
いずれの場合においても（Ｂｌｋ＿ＩＤ／ＰＳＤ−Ｂｌｋ＿ＩＤが用いられる場合とそうでない場合）前記「ストレージ・ブロック」は前記ＳＭＷから前記ＳＡＣおよび前記ＳＡＣから前記ＰＳＤへのデータ・アクセス・ユニット（ＤＡＵ）の数字の順番に従って書き込まれるものである。
【００２８】
前記ＳＡＣはＰＳＤに対し「ストレージ・ブロック」を要求する際には必要とされない。ＰＳＤ内にある前記「ストレージ・ブロック」はＳＡＣによってＰＳＤ内の利用可能な「ストレージ・ブロック」の量として検知され管理されることが可能である。消費者クラスのストレージディバイスは外部に対して示される固定された量のストレージを付加的なストレージブロックであって、ブロックに亘った消耗の内部的な管理と以前に機能しなかったことが知られているポテンシャルのあるブロックを特定するものである。
【００２９】
ＳＭＷがＳＡＣからの「ストレージ・ブロック」を所有する場合、前記ＤＡＵをシーケンスに沿って書き込むことができる。当該ストレージ・ブロックに従属する書き込みが提供される前に前記データが永続的に記憶された時に各書き込みに対する受信の確認（ＡＣＫ）と共にＳＡＣは典型的に順々に書き込みを行うものである。
【００３０】
ＤＡＵに書き込む際、前記ＤＡＵの論理アドレスはメディア当該ＤＡＵが記録されたストレージ・ブロックに関連付けられたメディアに記録されるものである。（例として図３を参照）。ＳＭＷが書き込みを実行した時には、タイムスタンプの記録がメディアに付けられる。そのオプショナルな利用が不要データの取得を手助けするものであることから、このタイムスタンプは秒単位もしくは数十分単位で付けられてもよい。
【００３１】
セル毎に３ビットのフラッシュメモリディバイスを含むメディアのいくつかの実施例においては、書き込まれるデータの特定のセットが必要とされ、それより前のデータは復唱されないものである。これをサポートするために、書き込みのセットが同時に単一のＰＳＤにおくられ収容される順に受領確認がされてもよい（データが正しく読まれる限り）。
【００３２】
「ストレージ・ブロック」が完全に書き込まれると、前記ＳＭＷはあらたな「ストレージ・ブロック」を要求することができ、それには同一の「Ｂｌｋ＿ＩＤ」が用いられる。ストレージ・ブロックが完全に書き込まれると、前記ストレージ・ブロックは不要データ収集プロセスの対象候補となる（後により詳細に説明する通りである）。
【００３３】
実施例のいくつかにおいては、ＳＭＷによってＳＡＣに書き込まれたデータは前記「ストレージ・ブロック」を上位のアドレスビットとし、前記ＤＡＵオフセットを下位アドレスビットとして前記ＳＡＣに書き込まれたデータ維持のための「論理―物理テーブル」において使うことができる。
【００３４】
複数のＳＭＷがＳＡＣに同時に接続されるとき、１つのＳＭＷに提供される「ストレージ・ブロック」はそのＳＭＷのみによって書き込まれるために提供されることもできる。これは、他のＳＭＷの書き込みの動作を考慮することなく「ストレージ・ブロック」を提供したＳＭＷのいずれかがＳＭＷブロックを書き込むことを可能にする。
【００３５】
いくつかの実施例によれば、ＳＭＷの一つにストレージブロックを提供し、別のＳＭＷが危機的状態のバックアップコピーを維持するいずれのメカニズムにおいても、ストレージブロックに書き込みを行うＳＭＷはどの時点においても１つのみ存在するものである。
【００３６】
ＳＡＣによるフリーブロックの選定  
ＳＭＷが前記ＳＡＣにストレージ・ブロックを要求する際に、前記ＳＡＣはその時点でＳＭＷ要求者に対し提供する有効なデータを有しないブロックから選定をおこなうものである。前記ＳＡＣが要求者の要求を受けた時点で利用可能なストレージ・ブロックを有しない場合、当該要求受領確認をしつつ、要求にその時点で応えることができないことを確認するものである。いくつかの実施例においては、ＳＭＷがＳＡＣからストレージ・ブロックを取得する試みを定期的に実行させるか、前記ＳＡＣに対しＳＭＷへ書き込みに用いられるストレージ・ブロックがあるときにはそれを通知させるものである。
【００３７】
ＳＡＣは不要データの収集を実行するために利用可能なストレージ・ブロックが必要であるため、ＳＭＷに対してストレージ・ブロックを提供できないとする利用可能ストレージ・ブロックの閾値があってもよい。実施例のいくつかによれば、ストレージ・ブロックがＳＡＣによってＳＭＷからの要求への応答としてストレージ・ブロックの提供される時まで、前記ＳＭＷはＤＡＵをＳＡＣに書き込むことを阻止されるものである。
【００３８】
読み込み  
ＳＭＷは、以前に書き込まれたことのあるＳＡＣのアドレスに書き込まれたＤＡＵを読み出すことができる。ＤＡＵの読み込み要求は、前記ＳＭＷから前記ＳＡＣへと送られる。前記ＳＡＣはそれに応答して実際に実行されるストレージ・ブロックを決定し、前記ＰＳＤから読み出されるべきデータの要求を待ち行列に入れるものである。
【００３９】
オーバーライトにおける不使用スペースの解放  
ＳＭＷが、例えば、システムの外部から書き込みもしくは無効化のメッセージ（実施例のいくつかにおいて、これはＳＣＳＩ  ＵＮＭＡＰコマンド、ＳＡＴＡ  ＴＲＩＭコマンドもしくはその他業界において一般的に許容されている同様のコマンド）を通して、もしくは多くのＤＡＵを含むボリュームの消去によりＤＡＵの新たなコピーを受け取った時、前記ＳＭＷはＳＡＣ上のデータを無効化するメッセージを送ることができる。
【００４０】
図３に示すように、無効化のメッセージがＳＡＣによって受け取られた場合、ＤＡＵは有効でなくなったことを示するようＤＡＵの有効な記録がアップデートされる。当該ＤＡＵ有効記録は前記ＳＡＣにおいていずれのＰＳＤもがボトルネックにならないよう維持されることで、前記ＰＳＤにおいて必要とされるメモリを減少させることができる。実施例のいくつかにおいては、前記ＤＡＵの有効状態は前記ＰＳＤにおいて維持され、これには当該状態をアップデートするためのメッセージが前記ＳＡＣと前記ＰＳＤ間で送信される。
【００４１】
ＳＭＷは、前記ＳＡＣと同じもしくは違うＳＡＣの永続性ストレージに、アップデートされたコピーを受け取った後であればどのポイントにおいてもＤＡＵの新たなコピーを書き込むことがっできる。新たなＤＡＵがＳＭＷのキャッシュに受け取られた場合、前記ＤＡＵは実際にＳＭＷのキャッシュに存在し前記データが前記ＳＭＷからＳＡＣに書き込まれる前にオーバーライトされるものである。実施例のいくつかによれば、ＳＭＷは接続されたＳＡＣのいずれにでもＤＡＵを書き込むことができる。
【００４２】
不要データの収集  
不要データの収集は、有効に使用できるＤＡＵを有するストレージ・ブロックから有効に使用できなくなったＤＡＵを圧縮する工程を含む。メディアの書き込み前消去の特性を考慮すると、無効なＤＡＵによって放置されたスペースを空けるため、有効なＤＡＵは新たなロケーションに移動されてもよい。
不要なデータの収集を実行するため、前記ＳＡＣは自らの不要データの収集プロセスに用いられる１もしくはそれ以上の利用可能なストレージブロックを利用することができるが、これは「ストレージブロックの圧縮」と呼ばれてもよい。
【００４３】
不要データの収集を実行するために、前記ＳＡＣは（ＳＭＷもしくは前記ＳＡＣのどちらかによって以前に実行された不要データ収集処理の一工程として）完全に書き込みがされたストレージ・ブロックから選択をする。ＳＡＣによって管理されるＤＡＵの全てをＰＳＤに対する有効状態がＳＡＣにおいて維持される場合、ストレージ・ブロックを直接選択することができる。前記ＤＡＵの有効状態がＳＡＣでなくＰＳＤにおいて保持される場合、前記ＳＡＣはＰＳＤの各々に不要データの収集候補を提供するよう要求することができる。不要データ収集として（ＳＡＣもしくはＰＳＤのいずれかによって）挙げられた候補は、ＤＡＵの総合有効割合を含めてもよく、さらにオプションとしてＤＡＵの各ブロックに書き込まれたデータの相対的な古さを含めてもよい（メディアのＤＡＵにタイムスタンプが書き込まれている場合）。不要データの収集に選ばれた前記ストレージ・ブロックは本記載において「起源・ストレージ・ブロック」と呼ばれる。
【００４４】
前記ＳＡＣにより期限・ストレージ・ブロックが不要データの収集用に選択されると、各有効なＤＡＵの論理アドレスが読み込まれ、前記ＤＡＵを当初書き込んだ前記ＳＭＷに提供される。前記ＳＭＷは（ａ）前記ＤＡＵが有効でないことを示し、（ｂ）前記ＤＡＵが収集された不要データに代わって読み込まれることを要求し、（ｃ）ＤＡＵが有効であることを確認し前記ＳＡＣによって不要データとして収集する、ことが可能である。オプション（ｂ）は書き込みおよび無効化プロセス、もしくは組み合わされたプロセスによって処理されてもよい。
【００４５】
前記ＳＡＣが前記不要データ収集処理を実行した場合、前記ＳＡＣは前記ＤＡＵを前記ＰＳＤの起源・ストレージ・ブロックから読み込み前記ＤＡＵを圧縮ストレージブロック（例えば、ＰＳＤと同一もしくは相違する）の新たなロケーションに書き込む。前記ＤＡＵが圧縮ストレージ・ブロックに書き込まれると、前記ＳＡＣは前記ＳＭＷに対し前記ＤＡＵが前記ＳＭＷによって当初書き込まれた前記論理アドレスに書き込まれたことを通知し、起源・ストレージ・ブロックにあったものが圧縮ストレージブロック内の新たなロケーションに格納されたことを通知する。
【００４６】
当初ストレージブロックから圧縮ストレージブロックへの移動の受領確認を前記ＳＡＣが受け取るまで、前記ＳＭＷは読み込みもしくは無効化のメッセージを当初のストレージブロックの前記ＤＡＵに対し送信するものである。無効化メッセージは旧新両方のロケーションに対して適用されるべきものである。読み込みは実際に前記当初のロケーションにおいて当初のストレージ・ブロックが消去されるまで知らされることができる。前記ＳＡＣが当初ストレージ・ブロックから圧縮ストレージブロックへの移動の確認を受け取った時には、前記ＳＡＣは前記ＤＡＵのロケーションを無効とマークできる。
【００４７】
起源・ストレージ・ブロックの全てのＤＡＵが（ＳＭＷが無効化するか前記ＳＡＣによる不要データの収集動作により）無効となった場合、前記ストレージブロックはいつでも消去されてよい。前記ストレージブロックの消去に伴い、前記ＳＡＣは前記ストレージブロック前記ＳＡＣによってＳＭＷ（もしくは前記ＳＡＣ自身での不要データの収集を目的として）のいずれかに提供されるべく利用可能であることを記録するものである。
【００４８】
全てのＤＡＵがＳＭＷによって無効化される場合がある。これは、前記ストレージブロックが能動的に「不要データの収集」を実行しあたかも前記ＳＡＣによって不要データの収集がおこなわれたかのようにいつでも消去されるものである。
【００４９】
前記ＳＡＣの圧縮・ストレージ・ブロックへの書き込みに伴い、当初ＳＭＷ（もしくは前記ＳＡＣによって処理されたそれより以前の不要データの収集）のいずれかによって書き込まれた起源・ストレージ・ブロックは一般的な圧縮ストレージブロックに圧縮されることが可能である。
【００５０】
以上の記載において、ＳＭＷ読み込み、書き込み、および無効化メッセージをコーディネートし、自らの目的もしくはノードセットの目的で集合してデータをキャッシュ構造において保持し、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｅｐｅｎｓｉｖｅ  Ｄｅｖｉｃｅｓ）構成を介して保護される可能性があるノードである場合、前記ストレージ・トランスレーション・レイヤーは有効な状態にとどまるものである。
【図１】
2015529368.tif 000003
【図２】
2015529368.tif 000004
【図３】
2015529368.tif 000005
【図４】
2015529368.tif 000006
【図５】
2015529368.tif 000007
【国際調査報告】
2015529368.tif 000008