(57)【要約】【課題】フラッシュメモリのデータリフレッシュを改善するシステム及び方法を提供する。【解決手段】一実施形態において、前記方法は、ストレージシステムの第１ガベージコレクションユニット（ＧＣＵ）を特定する工程と、第１ＧＣＵに関連するパリティ機能を計算する工程と、第１ＧＣＵ内のＮ個のブロックの内の第１ブロック内のデータ障害を特定する工程と、第１ブロック内のデータ障害を特定した後に第１ＧＣＵから第１ブロックを除去する工程と、第１ブロックがクローンされていなければパリティ機能を再計算する工程とを含む。【選択図】図８
2017204281.tif 000002
【特許請求の範囲】
【請求項１】
ストレージシステムであって、
複数のブロックに分割される複数のメモリセルと、
ストレージコントローラとを有し、該ストレージコントローラは、
ストレージシステムの、前記複数のブロックの内のＮ個のブロックを含む、第１ガベージコレクションユニット（ＧＣＵ）を特定し、
前記第１ＧＣＵに関連するパリティ機能を計算し、
前記第１ＧＣＵ内の前記Ｎ個のブロックの内の第１ブロックのデータ障害を特定し、
前記第１ブロックの前記データ障害を特定した後、前記第１ＧＣＵから前記第１ブロックを除去し、
前記第１ブロックがクローンされていない場合、前記パリティ機能を再計算する、ストレージシステム。
【請求項２】
前記ストレージコントローラは、
前記第１ブロックが無効データを含むか否かを判定する、請求項１に記載のストレージシステム。
【請求項３】
前記ストレージコントローラは、
前記第１ブロックが無効データを含まないと判定された場合、前記第１ブロックを第２ブロックにクローンする、請求項２に記載のストレージシステム。
【請求項４】
前記第２ブロックは前記複数のブロックの内の利用可能なブロックで、前記第１ＧＣＵ内の前記Ｎ個のブロックと異なっている、請求項３に記載のストレージシステム。
【請求項５】
前記ストレージコントローラは、
前記第２ブロックを前記第１ＧＣＵに追加する、請求項３に記載のストレージシステム。
【請求項６】
前記ストレージコントローラは、
前記第２ブロックを前記第１ＧＣＵブロックに追加した後、前記第２ブロックが前記第１ブロックのクローンであることに基づいて、ＸＯＲパリティを含む前記第１ＧＣＵのパリティを維持する、請求項５に記載のストレージシステム。
【請求項７】
前記ストレージコントローラは、
前記第１ブロックを消去し、
前記第１ブロックを別ＧＣＵに利用可能にする、請求項１に記載のストレージシステム。
【請求項８】
前記ストレージコントローラは、
前記第１ブロックが無効データを含むと判定すると、前記第１ブロックにおける有効データに対する無効データの比を判定する、請求項２に記載のストレージシステム。
【請求項９】
前記ストレージコントローラは、
前記第１ブロックにおける有効データに対する無効データの比に基づいて、前記第１ブロックをクローンせずに前記第１ＧＣＵから前記第１ブロックを除去し、
前記第１ブロック内の前記有効データを、前記複数のブロックの内のＭ個のブロックを有する第２ＧＣＵのブロックである第３ブロックにコピーする、請求項８に記載のストレージシステム。
【請求項１０】
前記ストレージコントローラは、
前記第１ブロックをクローンせずに前記第１ＧＣＵから除去したことで、前記第１ＧＣＵ内にＮ−１個のブロックが残ったことに基づき、前記第１ＧＣＵの前記パリティ機能を再計算する、請求項９に記載のストレージシステム。
【請求項１１】
装置であって、
データセンター又はデータクラウド環境内に組み込まれるよう構成されるストレージドライブと、
コントローラとを有し、コントローラは
前記ストレージシステムの、前記複数のブロックの内のＮ個のブロックを含む、第１ガベージコレクションユニット（ＧＣＵ）を特定し、
前記第１ＧＣＵに関連するパリティ機能を計算し、
前記第１ＧＣＵ内の前記Ｎ個のブロックの内の第１ブロックのデータ障害を特定し、
前記第１ブロックの前記データ障害を特定した後、前記第１ＧＣＵから前記第１ブロックを除去する、装置。
【請求項１２】
前記コントローラは、
前記第１ブロックが無効データを含むか否かを判定する、請求項１１に記載の装置。
【請求項１３】
前記コントローラは、
前記第１ブロックが無効データを含まないと判定すると、前記第１ブロックを第２ブロックにクローンする、請求項１２に記載の装置。
【請求項１４】
前記第２ブロックは前記複数のブロックの内の利用可能なブロックで、前記第１ＧＣＵ内の前記Ｎ個のブロックと異なっている、請求項１１に記載の装置。
【請求項１５】
前記コントローラは、
前記第２ブロックを前記第１ＧＣＵに追加する、請求項１３に記載の装置。
【請求項１６】
前記コントローラは、
前記第２ブロックを前記第１ＧＣＵブロックに追加した後、前記第２ブロックが前記第１ブロックのクローンであることに基づいて、ＸＯＲパリティを含む前記第１ＧＣＵのパリティを維持する、請求項１５に記載の装置。
【請求項１７】
前記コントローラは、
前記第１ブロックを消去し、
前記第１ブロックを別ＧＣＵに利用可能にする、請求項１１に記載の装置。
【請求項１８】
前記コントローラは、
前記第１ブロックが無効データを含むと判定すると、前記第１ブロックにおける有効データに対する無効データの比を判定する、請求項１２に記載の装置。
【請求項１９】
ストレージシステムの方法であって、
前記ストレージシステムの、前記複数のブロックの内のＮ個のブロックを含む、第１ガベージコレクションユニット（ＧＣＵ）を特定する工程と、
前記第１ＧＣＵに関連するパリティ機能を計算する工程と、
前記第１ＧＣＵ内の前記Ｎ個のブロックの内の第１ブロックのデータ障害を特定する工程と、
前記第１ブロックの前記データ障害を特定した後、前記第１ＧＣＵから前記第１ブロックを除去する工程と、を含む方法。
【請求項２０】
前記第１ブロックが無効データを含むか否かを判定する工程、
を更に含む、請求項１９に記載の方法。
【発明の詳細な説明】
【発明の概要】
【課題を解決するための手段】
【０００１】
フラッシュメモリのデータリフレッシュの改善
本開示は、フラッシュメモリのデータリフレッシュを改善する方法とシステムを対象とする。いくつかの実施形態において、本システム及び方法は、ガベージコレクションユニット（ＧＣＵ）におけるブロック内のデータを、サブＧＣＵ又はブロック単位の粒度でリフレッシュしてもよい。
【０００２】
フラッシュメモリのデータリフレッシュを改善する記憶デバイスを説明する。一実施形態において、記憶デバイスはストレージシステムの第１ガベージコレクションユニット（ＧＣＵ）を特定する工程と、第１ＧＣＵに関連するパリティ機能を計算する工程と、第１ＧＣＵ内のＮ個のブロックの内の第１ブロック内のデータ障害を特定する工程と、第１ブロック内のデータ障害を特定した後に第１ＧＣＵから第１ブロックを除去する工程と、第１ブロックがクローンされていなければパリティ機能を再計算する工程とを実行するストレージコントローラを有してもよい。場合によっては、第１ＧＣＵは複数のブロックの内のＮ個のブロックを含んでもよい。
【０００３】
いくつかの実施形態において、ストレージコントローラは、第１ブロックが無効データを含むか否かを判定し、第１ブロックが無効データを含まないと判定されると、第１ブロックを第２ブロックにクローンしてもよい。場合によっては、ストレージコントローラは、第１ブロックが無効データを含んでも、第１ブロックを第２ブロックにクローンしてもよい。場合によっては、第１ブロックにおける有効データに対する無効データの比に基づいて、第１ブロックを第２ブロックにクローンしてもよい。
【０００４】
場合によっては、第２ブロックはストレージドライブにおける複数のブロックのうち利用可能なブロックであってもよく、第１ＧＣＵ内のＮ個のブロックと異なっていてもよい。いくつかの実施形態において、ストレージコントローラは第２ブロックを第１ＧＣＵに追加してもよい。
【０００５】
第２ブロックを第１ＧＣＵブロックに追加した後、ストレージコントローラは第２ブロックが第１ブロックのクローンであることに基づいて、第１ＧＣＵのパリティを維持してもよい。例えば、第１ＧＣＵに対して計算したパリティは、第２ブロックを第１ＧＣＵブロックに追加した後でも、第２ブロックが第１ＧＣＵから除去された第１ブロックのクローンであるため、計算されたまま維持されてもよい。場合によっては、第１ＧＣＵのパリティはＸＯＲパリティに基づいてもよい。
【０００６】
いくつかの実施形態において、ストレージコントローラは第１ブロックを消去して、第１ブロックを別ＧＣＵにより利用可能としてもよい。場合によっては、第１ブロックが無効データを含むと判定されると、ストレージコントローラは第１ブロックにおける有効データに対する無効データの比を判定してもよい。第１ブロックにおける有効データに対する無効データの比に基づいて、ストレージコントローラは第１ブロックをクローンせずに第１ＧＣＵから第１ブロックを除去してもよい。場合によっては、ストレージコントローラは第１ブロック内の有効データを、複数のブロックの内のＭ個のブロックを有する第２ＧＣＵの内のブロックである第３ブロックにコピーしてもよい。
【０００７】
一実施形態において、ストレージコントローラは第１ブロックをクローンせずに第１ＧＣＵから除去したことで、第１ＧＣＵ内にＮ−１個のブロックが残ったことに基づき、第１ＧＣＵのパリティ機能を再計算してもよい。
【０００８】
フラッシュメモリのデータリフレッシュを改善する装置も説明する。一実施形態において、装置はプロセッサと、プロセッサと電子通信を行うメモリと、メモリに記憶された指示とを有し、プロセッサはメモリ内の指示を実行可能で、それによりストレージシステムの第１ガベージコレクションユニット（ＧＣＵ）を特定する工程と、第１ＧＣＵに関連するパリティ機能を計算する工程と、第１ＧＣＵ内のＮ個のブロックの内の第１ブロック内のデータ障害を特定する工程と、第１ブロック内のデータ障害を特定した後に第１ＧＣＵから第１ブロックを除去する工程と、第１ブロックがクローンされていなければパリティ機能を再計算する工程とを実行する。場合によっては、第１ＧＣＵは複数のブロックの内のＮ個のブロックを含んでもよい。
【０００９】
フラッシュメモリのデータリフレッシュを改善する方法も説明する。一実施形態において、方法は、ストレージシステムの第１ガベージコレクションユニット（ＧＣＵ）を特定する工程と、第１ＧＣＵに関連するパリティ機能を計算する工程と、第１ＧＣＵ内のＮ個のブロックの内の第１ブロック内のデータ障害を特定する工程と、第１ブロック内のデータ障害を特定した後に第１ＧＣＵから第１ブロックを除去する工程と、第１ブロックがクローンされていなければパリティ機能を再計算する工程とを含んでもよい場合によっては、第１ＧＣＵは複数のブロックの内のＮ個のブロックを含んでもよい。
【００１０】
上記内容では、以下の詳細な説明が理解しなくなるよう、本開示に関わる例の特徴や技術的効果を或る程度広めに定義した。以下に更なる特徴や効果を説明する。開示される概念や具体例は、本開示と同様の目的を実現するための変形やその他構造の設計を基本として容易に利用可能である。そのような同等な構造は、添付の請求能範囲から逸脱しないものである。本明細書記載の概念の特徴、更にその機構や動作方法、並びにその関連した効果は、図を参照に以下の説明でより良く理解されよう。各図は、図示、説明のみを目的としており、請求の範囲を限定するものではない。
【００１１】
本開示の特性や効果は、以下の図面を参照した説明でより良く理解されよう。添付の図面において、同様な構成要素又は特徴は、同じ参照符号が付される。更に、同種の様々な要素がある場合、第１符号にダッシュや第２符号を付して他と区別してある場合もある。但し、ダッシュや第２符号が付されたものを含む、様々な構成要素について説明される特徴は、その他同様の構成要素にも当てはまる。本明細書においては第１符号しか使用されていない場合、その説明は第２符号に関わらず、同じ第１符号を有する任意の同様の構成要素に当てはまる。
【図面の簡単な説明】
【００１２】
【図１】各種実施形態に係わるシステムの例を示すブロック図である。
【図２】本開示の様々な態様に係わる、デバイスのブロック図である。
【図３】本開示の様々な態様に係わる、１つ以上のモジュールのブロック図である。
【図４】本開示の様々な態様に係わる、環境の一実施形態を示す図である。
【図５】本開示の様々な態様に係わる、環境の別の実施形態を示す図である。
【図６】本開示の様々な態様に係わる、環境の別の実施形態を示す図である。
【図７】本開示の様々な態様に係わる、環境の別の実施形態を示す図である。
【図８】本開示の様々な態様に係わる、方法の例を示すフローチャートである。
【図９】本開示の様々な態様に係わる、方法の例を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下の説明は概して、フラッシュメモリにおけるデータリフレッシュの改善に関する。ソリッドステートドライブは、当該ドライブに記憶される媒体に対して多様なアクティビティで管理が行われるため、当該ドライブの寿命を通じて、性能の変動が生じ得る。データ再配置は、ガベージコレクション（ＧＣ）のようなデータリフレッシュ呼び出しによる読み出しディスターブを軽減するよう、所定のタイミング及び／又は状況で実行されるよう設定されてもよい。それでも、データ再配置により性能の変動が生じ得る。例えば、読み出しディスターブによる高誤り率のような、なんらかの障害が生じている場合、ガベージコレクションユニット（ＧＣＵ）内のブロックを個別にリフレッシュすることで、性能の変動が最小限に抑えられ得る。
【００１４】
現状、１つのブロックがリフレッシュ対象となっている場合でも、ＧＣＵ内の全ブロックがリフレッシュされる。したがって、効率が悪く、ドライブの性能変動が激しくなる。一実施形態において、障害の発生したブロックを別ブロックにクローンすることで、対象ブロックのみがリフレッシュされる。ＧＣＵ内の残りのブロックはそのまま維持されるため、当該ＧＣＵ内のコンテンツは変化しない。いくつかの実施形態では、障害が発生したブロックをＧＣＵから除去してもよい。外部コードのパリティ（複数可）を変更して、外部コードが除去されるブロックと無関係となるようにしてもよい。除去されるブロックにおける有効データは、別のＧＣＵにおける別ブロックにコピーしてもよく、当該ブロックにおけるあらゆる無効データは、当該別のＧＣＵにおける別ブロックにコピーされない。
【００１５】
図１は、本システム及び方法が実現され得る環境１００の一実施形態を示すブロック図である。環境は、装置１０５と記憶装置１１０とを有してもよい。記憶装置１１０は、ハードディスクドライブと、ソリッドステートドライブと、ハードディスク及びソリッドステートドライブの両方を含むハイブリッドドライブとの任意の組合せを含んでもよい。いくつかの実施形態において、本明細書記載のシステム及び方法は、単一の装置（例えば装置１０５）で実現されてもよい。場合によっては、本明細記載の方法は、複数の記憶装置又は記憶装置のネットワークにより実現されてもよい。装置１０５の例としては、ストレージサーバ、ストレージエンクロージャ、ストレージコントローラ、分散ストレージシステムにおけるストレージドライブ、クラウドストレージシステムにおけるストレージドライブ、パソナルコンピュータ装置上の記憶装置、サーバ上の記憶装置等が挙げられる。いくつかの構成では、装置１０５はガベージコレクションモジュール１３０を含んでもよい。一例として、装置１０５は記憶装置１１０に接続されてもよい。いくつかの実施形態において、装置１０５及び記憶装置１１０はフラッシュメモリ又はソリッドステートドライブの構成要素であってもよい。或いは、装置１０５は記憶装置１１０のホスト（例えば、オペレーティングシステム、ホストハードウェアシステム等）の構成要素であってもよい。
【００１６】
一実施形態において、装置１０５は１つ以上のプロセッサ、メモリ及び／又は１つ以上の記憶装置を有する計算装置であってもよい。場合によっては、装置１０５は無線記憶装置を含んでもよい。いくいくつかの実施形態において、装置１０５は家庭又はオフィス設定のクラウド装置を含んでもよい。一実施形態において、装置１０５はスイッチ、ルータ、アクセスポイント等のネットワーク装置を含んでもよい。一例として、装置１０５はデータストリームを受信したり、データを記憶及び／又は処理したり、更に／或いは１つ以上のローカル及び／又は遠隔計算装置に対してデータを受信、送信、又は互いに連動して送信するよう動作してもよい。
【００１７】
装置１０５はデータベースを含んでもよい。場合によっては、データベースは装置１０５に内蔵されてもよい。例えば、記憶装置１１０はデータベースを含んでもよい。更に、又は或いは、データベースは有線及び／又は無線データベースに対する接続を有してもよい。更に、本明細書で詳述するように、装置１０５のプロセッサ上で、ソフトウェア及び／又はファームウェア（例えばメモリに記憶されている）が実行されてもよい。プロセッサ上で実行される当該ソフトウェア及び／又はファームウェアは、本明細書記載の動作に関連した信号を、装置１０５に監視、処理、要約、提示、及び／又は送信させるように動作してもよい。
【００１８】
いくつかの実施形態において、記憶装置１１０は１つ以上のネットワークを介して装置１０５に接続されてもよい。ネットワークの例としては、クラウドネットワーク、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、バーチャルプライベートネットワーク（ＶＰＮ）、パーソナルエリアネットワーク、近距離無線通信（ＮＦＣ）、電気通信ネットワーク、無線ネットワーク（例えば、８０２．１１使用）、及び／又はセルラネットワーク（例えば、３Ｇ及び／又はＬＴＥ使用）等が挙げられる。構成によっては、ネットワークはインターネット及び／又はイントラネットを含んでもよい。装置１０５は、無線通信リンクを介して、ネットワーク上で信号を受信及び／又は送信してもよい。いくつかの実施形態において、ユーザはローカル計算装置、遠隔計算装置、及び／又はネットワーク装置を介して、装置１０５の機能にアクセスしてもよい。例えば、いくつかの実施形態において、装置１０５はユーザに対するインタフェースとなるアプリケ−ションを有してもよい。場合によっては、装置１０５はネットワーク装置、遠隔計算装置、及び／又はローカル計算装置の１つ以上の機能に対するインタフェースとなるアプリケ−ションを有してもよい。
【００１９】
一実施形態において、装置１１０は記憶装置１０５に内蔵されてもよい。一例として、装置１０５は、記憶装置１１０の記憶媒体に対するインタフェースとなるストレージコントローラを有してもよい。ガベージコレクションモジュール１３０は、ＧＣＵの単一のブロックに関連する読み出しディスターブ又は高誤り率のような障害を隔離するよう構成されてもよい。ガベージコレクションモジュール１３０は、当該ＧＣＵの単一のブロックのデータをリフレッシュし、ＧＣＵのその他ブロックにリフレッシュデータをバイパスしてもよい。
【００２０】
図２は、本開示の様々な態様に対応する、電子通信に使用される装置２０５のブロック図２００である。装置２０５は、図１を参照して説明したデバイス１０５の１つ以上の態様の一例であってもよい。装置２０５は、ドライブコントローラ２１０、ドライブバッファ２１５、ホストインタフェースロジック２２０、ドライブメディア２２５、ガベージコレクションモジュール１３０−ａを有してもよい。これら構成要素は、互いに及び／又はその他構成要素と直接的及び／又は間接的に通信してもよい。
【００２１】
装置２０５の構成要素の１つ以上は、個別に又はまとめて、ハードウェアにおける利用可能な機能の一部又は全部を実行するように構成される、１つ以上の特定用途向け集積回路（ＡＳＩＣ）により実現されてもよい。或いは、１つ以上の集積回路上の、その他１つ以上の処理ユニット（又はコア）により機能が実行されてもよい。別の例では、本技術分野で公知のプログラミングが施されてもよい、その他の種類の集積回路を利用してもよい（例えば、ストラクチャード／プラットフォームＡＳＩＣ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、及びその他セミカスタムＩＣ）。各モジュールの機能は、一部又は全部、１つ以上の汎用及び／又は特定用途向けプロセッサにより実行されるようにフォーマット化されたメモリ内の指示により、実現されてもよい。
【００２２】
一実施形態において、ドライブコントローラ２１０はプロセッサ２３０、バッファマネージャ２３５、メディアコントローラ２４０を有してもよい。ドライブコントローラ２１０は、プロセッサ２３０を介して、装置２０５と装置２０５のホスト（例えばオペレーティングシステム、ホストハードウェアシステム等）とのインタフェースであるホストインタフェースロジック２２０と連動して、リード、ライトリクエストを処理してもよい。ドライブバッファ２１５は、装置２０５の内部動作用のデータを一時的に保持してもよい。例えば、ホストは、ドライブメディア２２５にデータを記憶するリクエストと共に、データを装置２０５に送信してもよい。ドライバコントローラ２１０は、リクエストを処理して、受信したデータをドライブメディア２２５に保存してもよい。場合によっては、ドライブメディア２２５に記憶したデータの一部を、ドライブバッファ２１５にコピーし、プロセッサ２３０がこのデータのコピーを処理、変更したり、更に／或いはドライブバッファ２１５に一時的に保持されたこのデータのコピーに関連した動作を実行したりしてもよい。
【００２３】
ガベージコレクションモジュール１３０−ａはドライブコントローラ２１０外に図示されているが、いくつかの実施形態において、ドライブコントローラ２１０及び／又は装置２０５のその他構成要素の内のソフトウェア、ファームウェア及び／又はハードウェアを含んでもよい。例えば、ガベージコレクションモジュール１３０−ａは、プロセッサ２３０、バッファマネージャ２３５、及び／又はメディアコントローラ２４０の少なくとも一部を含んでもよい。一例として、ガベージコレクションモジュール１３０−ａは、プロセッサ２３０、バッファマネージャ２３５、及び／又はメディアコントローラ２４０により実行される１つ以上の指示を含んでもよい。
【００２４】
図示のとおり、ドライブメディア２２５は第１ＧＣＵ２５０、第２ＧＣＵ２６０のように２つ以上のＧＣＵを有してもよい。図示のとおり、第１ＧＣＵ２５０内の第１ブロック２５５−１から第Ｎブロック２５５−ｎや、第２ＧＣＵ２６０内の第１ブロック２６５−１から第Ｍブロック２６５−ｍのように、各ＧＣＵは複数のブロックを有してもよい。各ブロックは、それぞれ複数のメモリセルを含むいくつかのページを有してもよい。いくつかの実施形態において、ＧＣＵはストレージドライブの１つ以上のダイからのブロックの論理的集合であってもよい。したがって、同一のブロックからのみ連続的に選択されたダイを含んでもよいし、いくつかの実施形態において、ＧＣＵのブロックは、任意の順序のブロックを含んでもよい。例えば、６つのブロックを有するＧＣＵは、単一のダイからのブロック１、ブロック２０、ブロック３１、ブロック５５、ブロック７８を含んでもよい。場合によっては、ＧＣＵは、２つ以上のダイからのブロックを有しもよい。したがって、ＧＣＵは、第１ダイからのブロック３、第２ダイからのブロック２７等を有してもよい。
【００２５】
いくつかの実施形態において、ガベージコレクションモジュール１３０は、１つ以上の機能を、ストレージコントローラ及び／又はストレージドライブにおいて複数のブロックに分割された複数のメモリセルと連動して実行してもよい。例えば、ストレージドライブは、いくつかのメモリセルから分割された複数のページや、ページから分割された複数のブロックや、ブロックから分割されたいくつかのガベージコレクションユニット（ＧＣＵ）を含んでもよい。一例として、１ページにおよそ６５，５３６個のメモリセルを含んでもよく、１ブロックにおよそ２５６ページを含んで、ブロック毎に総計１６，７７７，２１６個のメモリセルとなってもよく、１ＧＣＵはおよそ６４個のブロックを含んでもよい。後述のように、ＧＣＵ内のブロックの数はＧＣＵ毎に異なっていてもよい。例えば、あるＧＣＵが初期設定として６４個のブロックを含むように構成された場合、あるＧＣＵが６４個のブロックを含み、別のＧＣＵが６３個のブロックを含み、更に別のＧＣＵが６０個のブロックを有し、更にまた別のＧＣＵが７０個のブロックを含む等の構成であってもよい。
【００２６】
一実施形態において、第１ＧＣＵ２５０のブロック及び／又は第２ＧＣＵ２６０のブロックに対して、パリティ（複数可）を計算してもよい。いくつかの実施形態において第１ＧＣＵ２５０及び／又は第２ＧＣＵ２６０の１つ以上のブロックは、パリティブロックとして構成されてもよい。場合によっては、ガベージコレクションモジュール１３０−ａは、第１ＧＣＵ２５０及び／又は第２ＧＣＵ２６０の単一のブロックをリフレッシュするように構成されてもよい。例えば、いくつかの実施形態において、ガベージコレクションモジュール１３０−ａは第１ブロック２５５−１に関連した障害を特定してもよい。したがって、ガベージコレクションモジュール１３０−ａは、第１ブロック２５５−１のコンテンツを、第１ＧＣＵ２５０外の別ブロックにコピーしてもよい。場合によっては、ガベージコレクションモジュール１３０−ａは、第１ブロック２５５−１のコンテンツを、別ブロックにクローンして、第１ブロック２５５−１の完全なコピーを別ブロックに作成してもよい。この場合、ガベージコレクションモジュール１３０−ａは第１ＧＣＵ２５０から第１ブロック２５５−１を除去し、第１ブロック２５５−１を第１ブロック２５５−１のコピーである別ブロックで置き換えてもよい。したがって、パリティが計算された場合と同様に第１ＧＣＵ２５０のデータ構造が維持されるため、ガベージコレクションモジュール１３０−ａは第１ＧＣＵ２５０のパリティを維持できる。
【００２７】
或いは、いくつかの実施形態において、ガベージコレクションモジュール１３０−ａは第１ブロック２５５−１の有効、無効データを特定し、有効データのみを第１ＧＣＵ２５０外の別ブロックにコピーしてもよい。この場合、ガベージコレクションモジュール１３０−ａは、第１ブロック２５５−１を除去し、第１ブロック２５５−１の有効データがコピーされた別ブロックは、別ＧＣＵにおいて第１ＧＣＵ２５０から切り離された状態に維持されてもよい。この場合、第１ブロック２５５−１がクローンと置き換えられていないため、ガベージコレクションモジュール１３０−ａは第１ＧＣＵ２５０のパリティを再計算してもよい。
【００２８】
図３は、ガベージコレクションモジュール１３０−ｂのブロック図３００を示す。ガベージコレクションモジュール１３０−ｂは１つ以上のプロセッサと、メモリと、及び／又は１つ以上の記憶デバイスとを有してもよい。ガベージコレクションモジュール１３０−ｂは制御モジュール３０５と、計算モジュール３１０と、データモジュール３１５とを有してもよい。ガベージコレクションモジュール１３０−ｂは、図１及び／又は２のガベージコレクションモジュール１３０の一例であってもよい。これら各構成要素は互いに通信してもよい。
【００２９】
一実施形態において、制御モジュール３０５はストレージシステムの第１ＧＣＵを特定するように構成されてもよい。場合によっては、第１ＧＣＵはストレージドライブの複数のブロックの内のＮ個のブロックを含んでもよい。いくつかの実施形態において、計算モジュール３１０は１つ以上のＧＣＵに関するパリティ機能を計算するように構成されてもよい。一例として、計算モジュール３１０は第１ＧＣＵのパリティ機能を計算してもよい。場合によっては、第１ＧＣＵにおけるブロックは、データブロックの１つ以上のストライプとして構成されてもよい。いくつかの実施形態において、計算モジュール３１０はＧＣＵに関する複数のパリティ機能を計算してもよい。場合によっては、計算モジュール３１０は、あるＧＣＵのストライプ毎に複数のパリティでパリティ機能を計算してもよい。したがって、計算モジュール３１０は第１ＧＣＵにおけるブロックに基づいて１つ以上のパリティブロックを計算してもよい。場合によっては、計算モジュール３１０は第１ＧＣＵの排他的論理和（ＸＯＲ）パリティ機能を計算してもよい。例えば、計算モジュール３１０は、ビット単位ＸＯＲ機能を利用してデータ列（即ち、第１ＧＣＵのブロックに含まれるデータ）からパリティ値を計算してもよい。いくつかの実施形態において、計算モジュール３１０はリード・ソロモンパリティ機能を計算してもよい。
【００３０】
いくつかの実施形態において、データモジュール３１５は第１ブロックのデータ障害を特定するように構成されてもよい。第１ブロックは、第１ＧＣＵにおけるＮ個のブロックの内の任意のものであってもよい。したがって、第１ブロックは文字どおりＧＣＵ内の最初のブロックであってもよいし、最後のブロックでもよいし、その間の任意のブロックであってもよい。場合によっては、障害はストレージドライブの監視性能に基づいて特定されてもよい。場合によっては、所定のスケジュールで監視を実施してもよい。いくつかの実施形態において、ＧＣＵにおけるブロック上の動作に関連した高誤り率（例えば、読み出しディスターブによる）の検出に基づいてもよい。
【００３１】
第１ブロックでデータ障害を特定した後、いくつかの実施形態において、制御モジュール３０５は第１ＧＣＵから第１ブロックを除去するように構成されてもよい。いくつかの実施形態において、計算モジュール３１０は、第１ブロックがクローンされていない場合に、パリティ機能を再計算するように構成されてもよい。例えば、計算モジュール３１０は、第１ＧＣＵにおけるＮ個のブロックに基づいて、第１ＧＣＵのパリティを計算してもよい。第１ブロックが第１ＧＣＵ外の別ブロックにクローンされた場合、第１ブロックが第１ＧＣＵから除去され、第１ブロックがクローンされた別ブロックが第１ＧＣＵに追加され、したがって元の計算されたパリティの第１ＧＣＵにおける機能的有効性が保たれる。第１ＧＣＵに追加された別ブロックが、第１ＧＣＵから除去された第１ブロックの完全なコピーであるため、第１ＧＣＵに含まれるデータのパターンは変わらない。いくつかの実施形態において、第１ＧＣＵから第１ブロックを除去する際、データモジュール３１５は第１ブロックからデータを消去するように構成されてもよい。場合によっては、制御モジュール３０５は、消去された第１ブロックを別ＧＣＵに利用可能としてもよい。
【００３２】
いくつかの実施形態において、データモジュール３１５は第１ブロックが無効データを含むか否か判定するように構成されてもよい。いくつかの実施形態において、第１ブロックが無効データを含まないと判定された場合、データモジュール３１５は第１ブロックを第２ブロックにクローンするように構成されてもよい。無効データは、ストレージドライブにおいて有効ではないとされるデータを含み得る。場合によっては、第２ブロックはストレージドライブの複数のブロックの内の利用可能ブロックであってもよい。いくつかの実施形態において、第２ブロックは第１ＧＣＵにおけるＮ個のブロックとは異なっていてもよい。いくつかの実施形態において、第２ブロックは第２ＧＣＵのブロックであってもよい。場合によっては、第１ＧＣＵ内のブロックは、第２ＧＣＵ内のブロックに対して相互排他的であってもよい。
【００３３】
いくつかの実施形態において、データモジュール３１５が第１ブロックを第２ブロックにクローンした後、制御モジュール３０５は第２ブロックを第１ＧＣＵに追加してもよい。いくつかの実施形態において、第２ブロックの論理アドレスは更新されてもよい。例えば、論理ブロックアドレス（ＬＢＡ）のマッピングが更新されてもよい。場合によっては、制御モジュール３０５は第２ブロックのＬＢＡを、第１ＧＣＵに関連付けられるように更新してもよい。例えば、第２ブロックのＬＢＡは、第２ＧＣＵに関連付けられてもよい。データモジュール３１５が第１ブロックを第２ブロックにクローンする際、制御モジュールは第２ブロックのＬＢＡを、第１ＧＣＵに関連付けられるように更新してもよい。第２ブロックを第１ＧＣＵを追加した後、いくつかの実施形態において、制御モジュール３０５は第１ＧＣＵのパリティを、第２ブロックが第１ブロックのクローンであることに基づいて、計算されたとおりに維持するように構成されてもよい。第２ブロックは第１ブロックのクローンであるため、ＸＯＲパリティの有効性が保たれる。
【００３４】
いくつかの実施形態において、第１ブロックが無効データを含むと判定されると、計算モジュール３１０は第１ブロックにおける有効データに対する無効データの比を判定するように構成されてもよい。第１ブロックにおける有効データに対する無効データの比に基づいて、いくつかの実施形態において、制御モジュール３０５は第１ブロックをクローンせずに第１ＧＣＵから第１ブロックを除去するように構成されてもよい。例えば、第１ブロック無効データの割合が、有効データの割合よりも高い場合、制御モジュールは第１ブロックを第１ＧＣＵから除去するように構成されてもよい。場合によっては、制御モジュールは有効データに対する状態データの比を含む１つ以上の要素に基づいて、第１ブロックを除去してもよい。例えば、制御モジュール３０５は、無効データと有効データとを別ブロックにコピーする時間と、有効データのみを別ブロックにコピーする時間との比較に基づいて、第１ブロックを除去するように構成されてもよい。制御モジュール３０５は、第１ブロックを第１ブロックのクローンで置き換えることなく、有効データのみをコピーし、ＧＣＵから第１ブロックを除去することに基づいて、パリティを再計算する時間と計算コストを判定してもよい。場合によっては、制御モジュール３０５はこれら時間と相対的計算コストを分析し、無効データを含む第１ブロックをクローンするか、第１ブロックの有効データのみをコピーして、クローンせずに第１ブロックを除去するかを判定してもよい。
【００３５】
いくつかの実施形態において、データモジュール３１５は第１ブロック内の有効データを第３ブロックにコピーするように構成されてもよい。場合によっては、第３ブロックは第３ＧＣＵの内のブロックであってもよい。第３ＧＣＵは、ストレージドライブ内の複数のブロックの内のＭ個のブロックを有する第１ＧＣＵとは異なっていてもよい。場合によっては、ブロックの数は、第１及び第３ＧＣＵ間で異なっていてもよい（例えばＮがＭと等しくなくてもよい）。或いは、場合によっては、ブロックの数は、第１及び第３ＧＣＵ間で等しくてもよい（例えばＮがＭと等しくなる）。したがって、場合によっては、第１ブロックの有効データのみを第３ブロックにコピーし、第１ブロック内の無効データのコピーはバイパスされる。
【００３６】
いくつかの実施形態において、第１ブロックをクローンで置き換えることなく第１ブロックを第１ＧＣＵから除去すると、第１ＧＣＵのブロック数はＮ−１となり得る。したがって、場合によっては、計算モジュール３１０は、第１ブロックをクローンで置き換えることなく第１ブロックを第１ＧＣＵから除去した結果、第１ＧＣＵのブロック数はＮ−１となったことに基づき、第１ＧＣＵのパリティ機能を再計算するように構成されてもよい。したがって、計算モジュール３１０はまず第１ＧＣＵ内のＮ個のブロックに基づいてパリティ機能を計算するように構成されてもよい。計算モジュール３１０は、クローンと置き換えずに第１ＧＣＵからブロックの１つを除去した後、第１ＧＣＵに残存するブロック数がＮ−１個であることに基づいてパリティ機能を再計算するように構成されてもよい。
【００３７】
図４は、様々な例に応じて、フラッシュメモリにおけるデータリフレッシュを改善する環境４００を示す。環境４００は、いずれも図２の第１ＧＣＵ２５０又は第２ＧＣＵ２６０の例であり得る第１ＧＣＵ４０５及び第２ＧＣＵ４１０を含んでもよい。環境４００の少なくとも一態様は、図１のデバイス１０５、図２の装置２０５、及び／又は図１、２及び／又は３に図示したガベージコレクションモジュール１３０と共に実現されてもよい。
【００３８】
図示のように、第１ＧＣＵ４０５はＮ個のブロックを含み、第２ＧＣＵ４１０はＭ個のブロックを含んでもよい。いくつかの実施形態において、ＮはＭに等しくてもよく、即ち第１ＧＣＵ４０５のブロックの数は第２ＧＣＵ４１０と等しくてもよい。或いは、第１ＧＣＵ４０５は、第２ＧＣＵ４１０よりもブロックの数が多くても少なくてもよい。一実施形態として、環境４００ではストレージドライブ上の複数のＧＣＵの内２つのＧＣＵが図示されている。場合によっては、第２ＧＣＵ４１０は、第１ＧＣＵ４０５のブロックと同じダイからのブロックを含んでもよい。或いは、第２ＧＣＵ４１０は、第１ＧＣＵ４０５のブロックと異なるダイからのブロックを含んでもよい。いくつかの実施形態において、第１ＧＣＵ４０５及び／又は第２ＧＣＵ４１０は、ストレージドライブの２つ以上のダイからのブロックを含んでもよい。上述のように、いくつかの実施形態において、パリティは第１ＧＣＵ４０５におけるＮ個のブロック及び／又は第２ＧＣＵ４１０におけるＭ個のブロックに基づいて計算されてもよい。したがって、第１ＧＣＵ４０５の１つ以上のブロックは、パリティブロックとして構成され、更に／或いは第２ＧＣＵ４１０の１つ以上のブロックはパリティブロックとして構成されてもよい。
【００３９】
図５は、様々な例に応じて、フラッシュメモリにおけるデータリフレッシュを改善する環境５００を示す。環境５００は、図４の環境４００の一例であってもよい。環境５００の少なくとも一態様は、図１のデバイス１０５、図２の装置２０５、及び／又は図１、２及び／又は３に図示したガベージコレクションモジュール１３０と共に実現されてもよい。
【００４０】
一実施形態において、障害は第１ＧＣＵ４０５の第２ブロック４２０に関連して特定されてもよい。したがって、第２ブロック４２０内のデータはレフレッシュされ、第１ＧＣＵ４０５から第２ブロック４２０が除去されてもよい。場合によっては、第２ブロック４２０からの全てのデータは第２ＧＣＵ４１０の第３ブロック４４５等の別ブロックにコピーされてもよい。したがって、第３ブロック４４５は第２ブロック４２０のクローンであってもよい。或いは、第２ブロック４２０の有効データのみを第２ＧＣＵ４１０の第１ブロック４３５のような別ブロックにコピーし、第１ＧＣＵ４０５から第２ブロック４２０を除去、消去して、当該ブロックを別ＧＣＵにより利用可能としてもよい。
【００４１】
図６は、様々な例に応じて、フラッシュメモリにおけるデータリフレッシュを改善する環境６００を示す。環境６００は、図４の環境４００及び／又は図５の環境５００の一例であってもよい。環境６００の少なくとも一態様は、図１のデバイス１０５、図２の装置２０５、及び／又は図１、２及び／又は３に図示したガベージコレクションモジュール１３０と共に実現されてもよい。
【００４２】
一実施形態において、第２ブロック４２０は図５を参照に上述したように、第３ブロック４４５にクローンされてもよい。いくつかの実施形態において、第２ブロック４２０のコンテンツを第３ブロック４４５にコピーすることにより、第３ブロック４４５は第２ブロック４２０の完全なるコピーとなってもよい。いくつかの実施形態において、第３ブロック４４５は第２ＧＣＵ４１０から第１ＧＣＵ４０５に追加されてもよい。したがって、いくつかの実施形態において、第３ブロック４４５は第２ブロック４２０のクローンであるため、第１ＧＣＵ４０５に対応付けられた、元の計算されたパリティ機能が保たれ得る。
【００４３】
場合によっては、第２ブロック４２０は消去され、別ＧＣＵにより利用可能となってもよい。例えば、一実施形態において、消去された第２ブロック４２０は第２ＧＣＵ４１０に含まれてもよい。或いは、消去された第２ブロック４２０は不図示の別ＧＣＵに含まれてもよい。第３ブロック４４５を第２ＧＣＵ４１０から除去する際、第２ＧＣＵ４１０に関連したパリティ機能を、パリティが前回計算された際に第２ＧＣＵ４１０に存在していたＭ個のブロックではなく、第３ブロック４４５が第２ＧＣＵ４１０から除去されて第２ＧＣＵ４１０にＭ−１個のブロックが残ったことに基づいて第２ＧＣＵ４１０に関連したパリティ機能が再計算されてもよい。
【００４４】
図７は、様々な例に応じて、フラッシュメモリにおけるデータリフレッシュを改善する環境７００を示す。環境７００は、図５の環境５００及び／又は図６の環境６００の一例であってもよい。環境７００の少なくとも一態様は、図１のデバイス１０５、図２の装置２０５、及び／又は図１、２及び／又は３に図示したガベージコレクションモジュール１３０と共に実現されてもよい。
【００４５】
場合によっては、第２ブロック４２０を分析して、第２ブロック４２０における有効データに対する無効データの比を判定してもよい。第２ブロック４２０内の無効データ量が所定の閾値を満たす場合、第２ブロック４２０内の有効データのみを別ＧＣＵの別ブロックにコピーしてもよい。例えば、第１ＧＣＵ４０５の第２ブロック４２０の有効データ７０５は、第２ブロック４２０から第２ＧＣＵ４１０の第１ブロック４３５へとコピーされてもよい。本実施形態では、第２ブロック４２０を第１ＧＣＵ４０５から除去して、第１ＧＣＵ４０５のブロック数をＮからＮ−１にしてもよい。第１ＧＣＵ４０５のパリティは、第１ＧＣＵ４０５が第２ブロック４２０を含むＮ個のブロックを有する時点で予め計算されてもよい。したがって、第１ＧＣＵ４０５内のブロック数が１つ減り、第１ＧＣＵ４０５のパリティは第１ＧＣＵ４０５内に残るＮ−１個のブロックに基づいて再計算されてもよい。いくつかの実施形態において、第２ブロック４２０の有効データ７０５が第２ＧＣＵ４１０の第１ブロック４３５にコピーされたことに基づいて、そして第２ブロック４２０の有効データ７０５が第２ＧＣＵ４１０の第１ブロック４３５にコピーされたことに応じて更新された第２ＧＣＵ４１０に基づき、第２ＧＣＵ４１０のパリティが再計算されてもよい。
【００４６】
図８は、本開示の様々な態様に対応する、フラッシュメモリにおけるデータリフレッシュを改善するための方法８００の例を示すフローチャートである。方法８００の少なくとも一態様は、図１のデバイス１０５、図２の装置２０５、及び／又は図１、２及び／又は３に図示したガベージコレクションモジュール１３０と共に実現されてもよい。いくつかの例において、バックエンドサーバ、計算装置、及び／又は記憶デバイスは、１つ以上のコード群を実行して、バックエンドサーバ、計算装置、及び／又は記憶デバイスの機能要素を下記の機能の１つ以上を実行するように制御してもよい。更に、又は或いはバックエンドサーバ、計算装置、及び／又は記憶デバイスは、専用ハードウェアにより下記の機能の内の１つ以上を実行してもよい。
【００４７】
方法８００は、ブロック８０５において、ストレージシステムの第１ガベージコレクションユニット（ＧＣＵ）を特定する工程を含んでもよい。場合によっては、第１ＧＣＵは複数のブロックの内のＮ個のブロックを含んでもよい。方法８００は、ブロック８１０において、第１ＧＣＵに関連するパリティ機能を計算する工程を含んでもよい。ブロック８１５において、方法８００は第１ブロックにおけるデータ障害を特定する工程を含んでもよい。場合によっては、第１ブロックは第１ＧＣＵ内のＮ個のブロックの内の任意のブロックであってもよい。方法８００は、ブロック８２０において、第１ブロック内のデータ障害を特定した後、第１ＧＣＵから第１ブロックを除去する工程を含んでもよい。方法８００は、ブロック８２５において、第１ブロックがクローンされない場合にパリティ機能を再計算する工程を含んでもよい。例えば、第１ＧＣＵから第１ブロックが除去されると、第１ブロックのコンテンツを第２ブロックにクローンして、第１ブロックの完全なコピーを第２ブロックに生成してもよい。第２ブロックは、第１ＧＣＵ内のＮ個のブロックと異なるブロックであってもよい。この第２ブロックは、第１ブロックを置き換えるものであってもよく、その場合ブロック８０１で計算されたパリティは第１ＧＣＵに有効である。一方、第１ブロックがクローンで置き換えられずに除去されると、第１ブロックの除去に基づきパリティを再計算してもよい。
【００４８】
図１から３を参照に説明したガベージコレクションモジュール１３０及び／又は別のモジュールを利用して、ブロック８０５から８２５の動作（単数又は複数）が実行されてもよい。したがって、方法８００はフラッシュメモリ内のデータリフレッシュの改善に関連するフラッシュメモリ内のデータリフレッシュの改善を実現できる。なお、方法８００は単に一形態であり、方法８００の動作は順序を変更したり、省略したり、更に／或いはその他変更されてもよく、これによりその他形態が実現可能、想到可能となる。
【００４９】
図９は、本開示の様々な態様に対応する、フラッシュメモリにおけるデータリフレッシュを改善するための方法９００の例を示すフローチャートである。方法９００の少なくとも一態様は、図１のデバイス１０５、図２の装置２０５、及び／又は図１、２及び／又は３に図示したガベージコレクションモジュール１３０と共に実現されてもよい。いくつかの例において、バックエンドサーバ、計算装置、及び／又は記憶デバイスは、１つ以上のコード群を実行して、バックエンドサーバ、計算装置、及び／又は記憶デバイスの機能要素を下記の機能の１つ以上を実行するように制御してもよい。更に、又は或いはバックエンドサーバ、計算装置、及び／又は記憶デバイスは、専用ハードウェアにより下記の機能の内の１つ以上を実行してもよい。
【００５０】
図８を参照して説明したように、第１ＧＣＵ内のＮ個のブロック群に対してパリティを計算してもよい（具体的には方法８００のブロック８１０）。同様に、いくつかの実施形態において、方法９００は第１ＧＣＵ内のＮ個のブロック群に対してパリティを計算する工程を含んでもよい。方法９００は、ブロック９０５において、第１ＧＣＵにおける第１ブロック内の有効データに対する無効データに比を判定する工程を含んでもよい。例えば、第１ブロックは、各有効データに対して無効データを１つ含んでもよい（例えば、５０％無効、５０％有効）。同様に、場合によっては、第１ブロックは無効データを含まなくてもよい（例えば、１００％有効データ）。場合によっては、第１ブロックは無効データが５０％超であったり（例えば、６０％無効、４０％有効）、無効データが５０％未満であったりしてもよい（例えば、２５％無効、７５％有効）。方法９００は、ブロック９１０において、第１ブロックにおける有効データに対する無効データ比が所定の閾値を満たすか否かを判断する工程を含んでもよい。いくつかの実施形態において、無効データが５０％超の場合に所定の閾値が満たされるものであってもよい。場合によっては、無効及び有効データのいずれも送る場合の時間と計算コストと、有効データのみを送る場合の時間と計算コストの分析により、有効データのみのコピーが短時間及び／又は低計算コストであることを示す場合に所定の閾値が満たされるものであってもよい。
【００５１】
方法９００は、無効データの比が所定の閾値を満たさない場合、ブロック９１５において、第１ブロックを第２ブロックにクローンする工程を含んでもよい。第２ブロックは、第１ＧＣＵ内のＮ個のブロックと異なるブロックであってもよい。方法９００は、ブロック９２０において、第２ブロックを第１ＧＣＵに追加する工程を含んでもよい。方法９００は、第２ブロックを第１ＧＣＵブロックに追加した後、ブロック９２５において、第２ブロックが第１ブロックのクローンであることに基づいて、第１ＧＣＵのパリティを前回計算したものに保つ工程を含んでもよい。
【００５２】
方法９００は、無効データの比が所定の閾値を満たさない場合、ブロック９３０において、第１ブロック内の有効データを第３ブロックにコピーする工程を含んでもよい。第３ブロックは、第１ＧＣＵ内のＮ個のブロックと異なるブロックであってもよい。方法９００は、ブロック９３５において、第２ブロックを第１ＧＣＵから除去する工程を含んでもよい。したがって、第１ブロックは別ブロックにクローンされず、有効データのみが第３ブロックにコピーされる。第１ブロックを第１ＧＣＵから除去すると、第１ＧＣＵ内にはＮ−１個のブロックが残る。方法９００は、ブロック９４０において、第１ブロックを第１ＧＣＵからクローンと置き換えずに除去したことで、第１ＧＣＵ内にＮ−１個のブロックが残ったことに基づき、第１ＧＣＵのパリティ機能を再計算する工程を含んでもよい。いくつかの実施形態において、方法９００の動作を１つ以上組合せてもよい。例えば、一実施形態において、方法９００は、データ（有効及び無効データ）の読み出し中に、パリティ機能を再計算する工程を含んでもよい。
【００５３】
図１から３を参照に説明したガベージコレクションモジュール１３０及び／又はその他モジュールを利用して、ブロック９０５から９４０の動作が実行されてもよい。したがって、方法９００はフラッシュメモリ内のデータリフレッシュの改善に関連するフラッシュメモリ内のデータリフレッシュの改善が実現できる。なお、方法９００は単に一形態であり、方法９００の動作は順序を変更したり、省略したり、更に／或いはその他変更されてもよく、これによりその他形態が実現可能、想到可能となる。
【００５４】
いくつかの例では、方法８００及び９００の２つ以上の態様を組合せたり、更に／或いは分割してもよい。なお、方法８００、９００は単に一形態であり、方法８００、９００の動作は順序を変更したり、更に／或いはその他変更されてもよく、これによりその他形態が実現可能となる。
【００５５】
添付の図面を参照にした上述の詳細な説明では、例が説明されており、実施可能又は請求の範囲内の唯一の状況を表すものではない。本明細書において使用される「例」、「例示的」という用語は、「例、事例、又は図示」を意味し、「その他例によりも好ましい又は有利である」ということではない。詳細な説明は、記載の技術を理解するために供される具体的詳細を含む。但し、これら技術は、これら具体的詳細抜きでも実現できる。状況によっては、記載の例の概念を不明瞭にしないよう、既知の構造や装置がブロック図の形態で示される。
【００５６】
情報や信号は、幅広い異なるテクノロジーや技術に属する、任意のもので表すことができる。例えば、上述の説明全体で使用されるデータ、指示、コマンド、情報、信号、ビット、シンボル、チップは、電圧、電流、電磁波、磁界又は磁性粒子、光学場又は光粒子、又はこの組合せで表すことができる。
【００５７】
本開示に合わせて説明される、様々な図示のブロック及び構成要素は、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、ＡＳＩＣ、ＦＰＧＡ又はそのプログラム可能論理デバイス、分散型ゲート又はトランジスタ論理、分散型ハードウェア構成要素、又は本明細書の機能を実行するように設計されたこれらの任意の組合せにより実現、実行されてもよい。汎用プロセッサは、マイクロプロセッサであってもよいし、或るいは従来のプロセッサ、コントローラ、マイクロコントローラ、及び／又はステートマシンであってもよい。プロセッサは計算装置の組合せで実現してもよく、例えば、ＤＳＰとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、ＤＳＰコアと連動した１つ以上のマイクロプロセッサ、及び／又は同様のその他構造であってもよい。
【００５８】
本明細書で説明された機能は、ハードウェア、プロセッサが実行するソフトウェア、ファームウェア、又はその任意の組合せで実現してもよい。プロセッサで実行されるソフトウェアで実現される場合、機能は１つ以上の指示又はコンピュータ読み取り可能媒体のコードとして記憶又は送信されてもよい。その他の例及び携帯は、本開示及び添付の請求項の範囲及び精神に含まれるものである。例えば、ソフトウェアの性質として、上述の機能がプロセッサで実行されるソフトウェア、ハードウェア、ファームウェア、ハード配線、又はこれらの任意の組合せを利用して実現できる。機能を実現する特徴は、物理的に様々な位置に配置してもよく、機能の分散的にそれぞれ異なる物理的位置で実現されてもよい。
【００５９】
本明細書、更に請求項において、「及び／又は」という用語は、列挙された２つ以上の対象に使用された場合、それぞれ列挙された要素が単独で、或いはその他列挙要素と組合せて利用できることを意味している。例えば、ある構造が要素Ａ、Ｂ、及び／又はＣを含むと説明されている場合、構造はＡのみ、Ｂのみ、Ｃのみ、ＡとＢの組合せ、ＡとＣの組合せ、ＢとＣの組合せ、又はＡとＢとＣとの組合せを含むものであってもよい。また、本明細書、更に請求項において、「又は」が列挙された要素（例えば、「少なくとも１つの」や「１つ以上の」という語が付された要素の列挙）が要素を列挙する際に使用されると、離接的な列挙を示し、例えば「Ａ、Ｂ、Ｃの少なくとも１つ」という列挙の場合は、Ａ又はＢ又はＣ又はＡＢ又はＡＣ又はＢＣ又はＡＢＣ（即ちＡとＢとＣ）となる。
【００６０】
更に、或る構成要素が、別の構成要素内にある、又は別の構成要素と分離しているとの開示は、あくまで例示的なものとして捉えられるべきである。これは、様々な構造で、同一の機能が実現され得るためである。様々な構造としては、１つ以上の一体的構造及び／又は分散した構造の一部として、要素を全て、大部分及び／又はある程度含むことが挙げられる。
【００６１】
コンピュータ読み取り可能媒体は、コンピュータ記憶媒体、通信媒体の両方を含み、これらはコンピュータプログラムの移動をしやすくする任意の媒体を含む。記憶媒体は、汎用又は専用コンピュータによりアクセス可能な、任意の入手可能な媒体であってもよい。コンピュータ読み取り可能媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、ＣＤ−ＲＯＭ、ＤＶＤ又はその他光学ディスクストレージ、磁気ディスクストレージ又はその他磁気記憶デバイス、又は汎用又は専用コンピュータ或いは汎用又は専用プロセッサによりアクセス可能で、指示又はデータ構造の形式の所望のプログラムコードの搬送に使用可能なその他任意の媒体であってもよいが、これはあくまで例示的であり、限定的に介されるべきではない。更に、任意の接続も、適切であればコンピュータ読み取り可能媒体と称される。例えば、ウェブサイト、サーバ、又はその他遠隔送信源から、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者線（ＤＳＬ）、を利用し送信される、或いは赤外線、無線、マイクロ波のような無線技術を経てソフトウェアが送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者線（ＤＳＬ）、そして赤外線、無線、マイクロ波のような無線技術も媒体の定義に含まれる。本明細書で使用されるディスク（ｄｉｓｋおよびｄｉｓｃ）は、コンパクトディスク（ＣＤ）、レーザーディスク（登録商標）、光学ディスク、デジタルバーサタイルディスク（ＤＶＤ）、フロッピー（登録商標）ディスク、ブルーレイディスクを含み、通常ｄｉｓｋという場合は磁気的にデータを再生するもので、ｄｉｓｃという場合はレーザーで光学的にデータを再生するものを指す。上述の組合せも、コンピュータ読み取り可能媒体の範囲に含まれる。
【００６２】
本開示の上述の説明は、当業者に本開示を利用可能にするものである。当業者にとっては、本開示の様々な変形例が容易に想到可能であり、本開示の包括的な概念は、本開示の範囲を逸脱しない限り、その他の変形例にも適用可能である。したがって、本開示は本明細書記載の例や設計に限定されるものではなく、開示の概念や革新的特徴に沿って可能な限り幅広く解されるべきである。
【００６３】
具体的には、本開示をセキュリティシステム用途に適用できる。具体的には、本開示をストレージシステム用途に適用できる。いくつかの実施形態において、概念、技術的記載、特徴、方法、アイデア、及び／又は説明は、具体的にはストレージ及び／又はデータセキュリティシステム用途に適用され得るものである。これら具体的用途についての当該システム特有の利点は、本開示から明らかである。
【００６４】
本開示で説明された及び／又は図示されたプロセスパラメータ、動作、工程は、あくまで例示的なもので、適宜変更可能である。例えば、図示された及び／又は説明された工程は、特定の順序で図示、説明されていても、当該工程は図示又は説明された順序で必ずしも実行されなくてもよい。本明細書で説明された及び／又は図示された様々な例示的方法は、本明細書で説明された又は図示された１つ以上を省いてもよく、開示のものに加えて、更なる工程が追加されてもよい。
【００６５】
更に、本明細書では、全機能を包含する計算システムについて各種実施形態が説明及び／又は図示されているが、これら例示的実施形態の１つ以上は、様々な形態のプログラム製品として分散されてもよい。実際に分散を担うコンピュータ読み取り可能媒体の特定の種類は問わない。本明細書に開示の実施形態は、特定のタスクを実行するソフトウェアモジュールを利用して実現されてもよい。これらソフトウェアモジュールは、スクリプト、バッチ又はコンピュータ読み取り可能媒体又は計算システムに記憶可能なその他実行可能ファイルを含んでもよい。いくつかの実施形態において、これらソフトウェアモジュールは、本明細書に開示された例示的実施形態の１つ以上を実行するよう、計算システムに指示及び／又は許可してもよい。
【００６６】
説明のためのこの記載は、特定の実施形態を参照に記載されている。但し、上述の例示的記載は、排他的であったり、又は本システム及び方法を記載の特定の形態に限定するような意図があったりはしない。上記教示について、多様な変形、変更が可能である。実施形態は、本システム及び方法、そしてその実際の用途の原理を説明するために選択、記載されており、これにより他当業者が本システム、装置、方法、各種実施形態とその変形例を想定される特定の用途に合わせて利用できるようにするものである。
【図１】
2017204281.tif 000003
【図２】
2017204281.tif 000004
【図３】
2017204281.tif 000005
【図４】
2017204281.tif 000006
【図５】
2017204281.tif 000007
【図６】
2017204281.tif 000008
【図７】
2017204281.tif 000009
【図８】
2017204281.tif 000010
【図９】
2017204281.tif 000011