(57)【特許請求の範囲】
【請求項１】
方法であって、
割り当て解除コマンドを要求元から受信する工程と、
前記割り当て解除コマンドに応え、論理ブロックアドレスに関連付けられたメモリの少なくとも一部からユーザデータ、保護データ、もしくはユーザデータおよび保護データの両方を、選択的に割り当て解除する工程と、
要求元からのクエリに応え、論理ブロックアドレスに関連付けられたメモリの少なくとも一部の割り当て解除ステータスを決定する工程と、
前記決定に基づいて割り当て解除ステータス情報を生成する工程と、
前記割り当て解除ステータス情報を要求元に送信する工程と
を有する方法。
【請求項２】
請求項１記載の方法において、前記割り当て解除ステータス情報は、前記論理ブロックアドレスに関連付けられた前記メモリの少なくとも一部が割り当て解除されているかどうかを示す指標を含むものである方法。
【請求項３】
請求項２記載の方法において、前記指標は、前記論理ブロックアドレスに関連付けられた前記メモリの少なくとも一部が割り当てられている場合、マップ済みステータスを示すものである方法。
【請求項４】
請求項２記載の方法において、前記指標は、前記論理ブロックアドレスに関連付けられた前記メモリの少なくとも一部が割り当て解除されている場合、アンマップ済みステータスを示すものである方法。
【請求項５】
請求項１記載の方法において、さらに、
自動的に追加の割り当て解除ステータス情報を送信するものである方法。
【請求項６】
請求項５記載の方法において、前記自動的に追加の割り当て解除ステータス情報を送信する方法は、一定の時間間隔で追加の割り当て解除ステータス情報を送信するものである方法。
【請求項７】
請求項５記載の方法において、前記自動的に追加の割り当て解除ステータス情報を送信する方法は、割り当て解除時に追加の割り当て解除ステータス情報を送信する方法。
【請求項８】
請求項１記載の方法において、さらに、
前記論理ブロックアドレスに関連付けられた前記メモリの少なくとも一部から割り当て解除されるデータを指定する工程を有するものである方法。
【請求項９】
請求項８記載の方法において、コマンドまたはモードページのうちの１つを利用して、前記割り当て解除されるデータ、または割り当て解除されるデータについて戻されるデータのフォーマットのうちの１つが指定されるものである方法。
【請求項１０】
請求項８記載の方法において、前記割り当て解除されるデータは、ユーザーデータまたは保護データのうちの少なくとも１つの少なくとも一部を含むものである方法。
【請求項１１】
請求項１記載の方法において、前記論理ブロックアドレスに関連付けられた前記メモリの少なくとも一部は、複数の論理ブロックアドレスセクター、１つの論理ブロックアドレスセクター、または論理ブロックアドレスセクターの一部のうちの１つを含むものである方法。
【請求項１２】
請求項１記載の方法において、前記割り当て解除ステータス情報を前記要求元に送信する工程は、アンマップされたメモリブロックが読み取られた場合に不良ステータスを送信する工程を含むものである方法。
【請求項１３】
請求項１記載の方法において、さらに、
一定パターンのデータを書き込むコマンドを検出する工程を有するものである方法。
【請求項１４】
請求項１３記載の方法において、前記一定パターンのデータを書き込むコマンドは、ＷＲＩＴＥ  ＳＡＭＥコマンドまたはＦＯＲＭＡＴコマンドのうちの１つを含むものである。
【請求項１５】
請求項１３記載の方法において、ユーザーデータまたは保護データのうちの少なくとも１つは、前記一定パターンのデータを書き込むコマンドに基づいて割り当て解除されるものである方法。
【請求項１６】
請求項１記載の方法において、さらに、
前記論理ブロックアドレスに関連付けられた前記メモリの少なくとも一部に、保護データとは独立してユーザーデータを格納する工程を有するものである方法。
【請求項１７】
請求項1記載の方法において、前記要求元は、第１のプロトコルに関連付けられた第１のフォーマット形式の論理ブロックアドレス割り当て解除情報を、第２のプロトコルに関連付けられた第２のフォーマット形式の論理ブロックアドレス割り当て解除情報に変換でき、論理ブロックアドレス割り当て解除コマンドは、第２のフォーマット形式の論理ブロックアドレス割り当て解除情報を有するものである
請求項1記載の方法。
【請求項１８】
請求項１記載の方法において、前記要求元は、プロトコルチップまたはプロトコルベースのバッファのうちの少なくとも１つを含むものである方法。
【請求項１９】
コンピュータ可読媒体に格納されたコンピュータソフトウエアプログラムであって、
コンピュータシステムに要求元から割り当て解除コマンドを受信させるためのコンピュータコードと、
前記解除コマンドに応え、コンピュータシステムにユーザデータ、保護データ、もしくはユーザデータおよび保護データの両方を、論理ブロックアドレスに関連付けられたメモリの少なくとも一部から選択的に割り当て解除させるためのコンピュータコードと、
前記要求元からのクエリに応え、コンピュータシステムに論理ブロックアドレスに関連付けられたメモリの少なくとも一部の割り当て解除ステータスを決定させるコンピュータコードと、
前記決定に基づいて、コンピュータシステムに割り当て解除ステータス情報を生成させるコンピュータコードと、
コンピュータシステムに前記割り当て解除ステータス情報を前記要求元に送信させるコンピュータコードと
を有するコンピュータソフトウエアプログラム。
【請求項２０】
装置であって、
要求元から割り当て解除コマンドを受信し、前記割り当て解除コマンドに応えて、ユーザデータ、保護データ、もしくはユーザデータおよび保護データの両方を、論理ブロックアドレスに関連付けられたメモリの少なくとも一部から選択的に割り当て解除するためのコンピュータコードと、
要求元からのクエリに応え、論理ブロックアドレスに関連付けられたメモリの少なくとも一部の割り当て解除ステータスを決定し、前記決定に基づいて割り当て解除ステータス情報を生成し、且つ前記割り当て解除ステータス情報を要求元に送信するメモリコントローラ
を有する装置。
【発明の詳細な説明】
【技術分野】
【０００１】
記憶装置（ストレージ）システムの使用においては、その性能、効率、および実用性を改善する進歩が必要とされている。
【背景技術】
【０００２】
本明細書で説明する技術および概念は、公知または周知であるとの明示的な断りがない限り、その文脈、定義、または比較に関するものを含め、これまでに公知であり、または先行技術の一部であったと解釈すべきものではない。この明細書で文献を引用する場合、特許、特許出願、および出版物を含むそれら全ての引用文献は、全ての目的について具体的に組み込まれているかどうかにかかわらず、参照によりその全体が本明細書に組み込まれるものとする。
この出願の発明に関連する先行技術文献情報としては、以下のものがある（国際出願日以降国際段階で引用された文献及び他国に国内移行した際に引用された文献を含む）。
（先行技術文献）
（特許文献）
【特許文献１】米国特許第５３８６５５２号明細書
【特許文献２】米国特許第５４８５５９５号明細書
【特許文献３】米国特許第５５１９８３１号明細書
【特許文献４】米国特許第５５４４３５６号明細書
【特許文献５】米国特許第５５６８４２３号明細書
【特許文献６】米国特許第５５６８６２６号明細書
【特許文献７】米国特許第５６２１６８７号明細書
【特許文献８】米国特許第５６７５８１６号明細書
【特許文献９】米国特許第５８１９３０７号明細書
【特許文献１０】米国特許第５８３５９３５号明細書
【特許文献１１】米国特許第５８８１２２９号明細書
【特許文献１２】米国特許第５９３７４３４号明細書
【特許文献１３】米国特許第５９５６４７３号明細書
【特許文献１４】米国特許第５９６３９７０号明細書
【特許文献１５】米国特許第６０００００６号明細書
【特許文献１６】米国特許第６１５４８０８号明細書
【特許文献１７】米国特許第６１７３３６０号明細書
【特許文献１８】米国特許第６２３０２３３号明細書
【特許文献１９】米国特許第６４０５２９５号明細書
【特許文献２０】米国特許第６４４６１８３号明細書
【特許文献２１】米国特許第６５３９４５３号明細書
【特許文献２２】米国特許第６６９４４０２号明細書
【特許文献２３】米国特許第６７３２２２１号明細書
【特許文献２４】米国特許第６８３１８６５号明細書
【特許文献２５】米国特許第６９１４８５３号明細書
【特許文献２６】米国特許第６９２５５２３号明細書
【特許文献２７】米国特許第６９４８０２６号明細書
【特許文献２８】米国特許第６９７３５３１号明細書
【特許文献２９】米国特許第６９８５９９２号明細書
【特許文献３０】米国特許第７００００６３号明細書
【特許文献３１】米国特許第７０３２０８７号明細書
【特許文献３２】米国特許第７０３５９６７号明細書
【特許文献３３】米国特許第７０７６６０５号明細書
【特許文献３４】米国特許第７０９６３１３号明細書
【特許文献３５】米国特許第７１０３７３２号明細書
【特許文献３６】米国特許第７１２０７２９号明細書
【特許文献３７】米国特許第７３９５３８４号明細書
【特許文献３８】米国特許第７５５２３０６号明細書
【特許文献３９】米国特許第７６８１００８号明細書
【特許文献４０】米国特許第７６８９７６２号明細書
【特許文献４１】米国特許第７７１１８９７号明細書
【特許文献４２】米国特許第７７５２４１２号明細書
【特許文献４３】米国特許出願公開第２００４／００８１１７９号明細書
【特許文献４４】米国特許出願公開第２００５／０１０２３２３号明細書
【特許文献４５】米国特許出願公開第２００６／０００４９３５号明細書
【特許文献４６】米国特許出願公開第２００６／００２０７４４号明細書
【特許文献４７】米国特許出願公開第２００６／００２０７４５号明細書
【特許文献４８】米国特許出願公開第２００７／０００５８１５号明細書
【特許文献４９】米国特許出願公開第２００７／００３０７３４号明細書
【特許文献５０】米国特許出願公開第２００７／０２３４１１７号明細書
【特許文献５１】米国特許出願公開第２００８／００８２７４１号明細書
【特許文献５２】米国特許出願公開第２００８／００８２７７３号明細書
【特許文献５３】米国特許出願公開第２００８／００８２７７４号明細書
【特許文献５４】米国特許出願公開第２００８／００９１８９８号明細書
【特許文献５５】米国特許出願公開第２００８／０１５５１４５号明細書
【特許文献５６】米国特許出願公開第２００８／０１５５１６２号明細書
【特許文献５７】米国特許出願公開第２００８／０１５５１６３号明細書
【特許文献５８】米国特許出願公開第２００８／０１５５５６２号明細書
【特許文献５９】米国特許出願公開第２００８／０２１５９２６号明細書
【特許文献６０】米国特許出願公開第２００８／０２２９０４５号明細書
【特許文献６１】米国特許出願公開第２００８／０３０７１５５号明細書
【特許文献６２】米国特許出願公開第２００９／００７７３１５号明細書
【特許文献６３】米国特許出願公開第２００９／０３１３４１１号明細書
【特許文献６４】米国特許出願公開第２００９／０３１３４４３号明細書
【特許文献６５】米国特許出願公開第２００９／０３１３５２７号明細書
【特許文献６６】米国特許出願公開第２０１０／００５８０２１号明細書
【特許文献６７】米国特許出願公開第２０１０／０２５０８２９号明細書
【特許文献６８】米国特許出願公開第２０１０／０２５０８３０号明細書
【特許文献６９】米国特許出願公開第２０１１／０００４７１０号明細書
【特許文献７０】米国特許出願公開第２０１１／０００４７１８号明細書
【特許文献７１】国際公開第２０１０／１１１６９４号
【特許文献７２】国際公開第２０１１／００３０５０号
【発明の概要】
【課題を解決するための手段】
【０００３】
本発明は、多数の方法で実施でき、工程、製造品、機器、システム、組成物、その他コンピュータ可読記憶媒体などのコンピュータ可読媒体（例えば、ディスクなどの光および／または磁気による大容量記憶装置における媒体、あるいはフラッシュ記憶装置などの不揮発性記憶装置を有する集積回路）、あるいは光通信リンクまたは電子通信リンク経由でプログラム命令が送信されるコンピュータネットワークなどとして実施可能である。本明細書では、これらの実施態様、または本発明が取りうる他のいかなる形態も、技術と呼ぶことができる。以降の詳細な説明では、上記で特定した分野において性能、効率、および実用性の改善を可能にする本発明の１若しくはそれ以上の実施形態について解説している。本発明の詳細な説明の項には、この項の他の部分に関する理解を促すため、序論を含めている。この序論には、本明細書で説明する概念に基づいた１若しくはそれ以上のシステム、方法、製造品、およびコンピュータ可読媒体の実施形態例が含まれる。以下、結論の項で詳述するように、本発明は、請求項の範囲内で考えられるすべての変更形態および変形形態を包含する。
【図面の簡単な説明】
【０００４】
【図１】図１は、記憶装置システム論理ブロックアドレス割り当て解除管理およびデータハードニングを提供するシステムの一実施形態の詳細を一部選んで例示した図である。
【図２】図２は、記憶装置システム論理ブロックアドレス割り当て解除管理およびデータハードニングを提供する別のシステムの一実施形態について詳細を一部選んで例示した図である。
【図３Ａ】図３Ａは、第１のフォーマット形式による論理ブロックアドレス（ＬＢＡ）割り当て解除情報を、第２のフォーマット形式に変換する実施形態の詳細を一部選んで例示した図である。
【図３Ｂ】図３Ｂは、スモール・コンピュータ・システム・インターフェース（ＳＣＳＩ）フォーマット形式によるＬＢＡ割り当て解除情報を、アドバンスド・テクノロジー・アタッチメント（ＡＴＡ）フォーマット形式に変換する実施形態の詳細を一部選んで例示した図である。
【図４Ａ】図４Ａは、ＬＢＡ割り当て解除ステータス情報を送信する実施形態の詳細を一部選んで例示した図である。
【図４Ｂ】図４Ｂは、ＬＢＡ割り当て解除ステータス情報を送信する別の実施形態の詳細を一部選んで例示した図である。
【図５Ａ】図５Ａは、ソリッドステートディスク（ＳＳＤ）に格納されたデータをハードニングする実施形態の詳細を一部選んで例示した図である。
【図５Ｂ】図５Ｂは、ＳＳＤに格納されたデータをハードニングする別の実施形態の詳細を一部選んで例示した図である。
【図５Ｃ】図５Ｃは、ＳＳＤのスーパーキャパシタまたは電池をテストする実施形態の詳細を一部選んで例示した図である。
【図６】図６は、ユーザーデータおよび保護データを格納するＬＢＡセクターの全部または任意部分の実施形態の詳細を一部選んで例示した図である。
【図７】図７は、別の実施形態に基づいてＬＢＡ割り当て解除ステータス情報を送信する実施形態の詳細を一部選んで例示したものである。
【図８Ａ】図８Ａは、マッピングを使って不揮発性メモリにアクセスしこれを制御するＳＳＤコントローラを含んだＳＳＤの実施形態の詳細を一部選んで例示した図である。
【図８Ｂ】図８Ｂは、図８ＡのＳＳＤを含むシステムの一実施形態の詳細を一部選んで例示した図である。
【図８Ｃ】図８Ｃは、図８ＡのＳＳＤを含むシステムの一実施形態の詳細を一部選んで例示した図である。
【図９】図９は例示的なシステムを例示した図で、このシステムには、上記の各種実施形態の各種アーキテクチャおよび／または機能性が実装されている。
【発明を実施するための形態】
【０００５】
以下では、本発明の１若しくはそれ以上の実施形態について、本発明の詳細を一部選んで例示した添付の図面とともに詳細に説明している。本発明については、実施形態に関連付けて説明する。それらの実施形態は本明細書において単に例示的なものと理解され、本発明は、本明細書の実施形態のいずれか若しくはすべてに明示的に限定されず、多くの代替形態、変更形態、および均等物を包含するものである。説明が単調になるのを避けるため、種々の表現ラベル（ｗｏｒｄ  ｌａｂｅｌ）（第１の、最後の、特定の（ｃｅｒｔａｉｎ）、種々の、さらに別の、他の、特定の（ｐａｒｔｉｃｕｌａｒ）、選択された、一部の、および特筆すべき、を含み、かつこれらに限定されない）を別個の実施形態セットに適用する場合がある。本明細書において、このようなラベルは、明示的に、特質、または嗜好若しくは偏見の何らかの形態を伝えることを目的としたものではなく、単に別個のセットを便宜的に区別するためのものである。開示した工程の操作・動作のいくつかは、本発明の範囲内で順序を変えることができる。工程、方法、および／またはプログラム命令の特徴の変形形態を複数の実施形態で説明している場合は、所定の、または動的に決定される基準に基づいて、それぞれ複数の実施形態に対応した複数の操作・動作モードから静的および／または動的に選択される１つを実施する他の実施形態も考えられる。以下の説明では、本発明が完全に理解されるよう具体的な詳細事項を多数記載する。これらの詳細事項は例示目的で提供するものであり、本発明は、これら具体的な詳細事項の一部または全部がなくとも、添付の請求項に従って実施可能である。明瞭性のため、本発明を不要に曖昧にしないよう、本発明に関する技術分野で公知の技術的事項は詳述していない。
【０００６】
序論
本序論は、以降の詳細な説明をより短時間で理解できるよう含めたものである。いかなる序論も必然的に当該主題全体を概説するものであり、完全または限定的な説明を意図したものではないため、本発明は本序論に示す概念（明示的な例がある場合はそれを含む）に限定されるものではない。例えば、以下では、本明細書の紙面および構成の制限上、特定の実施形態だけに関する概要を提供している。本明細書の残りの部分では、最終的に請求項と整合するものも含め、他の実施形態を多数説明している。
【０００７】
頭字語
本明細書の他の部分では、特定の要素を指す種々の略称または頭字語が使用されている。これら頭字語の少なくとも一部を以下に説明する。
【０００８】
【表１】
0005638686.tif 000002
【０００９】
一部のＳＳＤは、一部のＨＤＤと異なる態様でデータを格納する。例えば、一部のＨＤＤでは各ＬＢＡスペースに物理的セクターが割り当てられ、その（割り当てられた）物理的セクターとＬＢＡとの間のマッピングは固定されたままとなる。概念的に、ＨＤＤにおけるＬＢＡの物理的位置は移動しない。ただし、一部のＳＳＤでは、各ＬＢＡ用に物理的スペースが（事前に）割り当てられない。また、一部のＳＳＤでは、データ損失を避けるため、格納されたデータを１つの位置から別の位置へ定期的に移動させる操作が行われる。このデータ移動の結果、性能が低下し、ＳＳＤに付加的な損耗が生じる場合もある。この問題を軽減および／または回避するため、オペレーティングシステムは、これらのＬＢＡに含まれるデータがもはや有効ではなくなったときに、ＳＳＤ上のＬＢＡを「解放」することが望ましい。さらに、一部のＳＳＤはスーパーキャパシタまたは電池を有しており、電力が予期せず失われた場合のデータ損失を防ぐため、ＳＳＤ内の全揮発性データを不揮発性フラッシュメモリに吐き出せる電力を提供している。一部のスーパーキャパシタおよび電池は比較的コスト高で、比較的障害が生じやすい。
【００１０】
記憶装置システムのＬＢＡ割り当て解除管理およびデータハードニングを行うと、当該システムの使用に関する性能、効率、および実用性が改善される。選択的に、（例えば、第１のプロトコルに関連付けられた）第１のフォーマット形式のＬＢＡ割り当て解除情報は、（例えば、第２のプロトコルに関連付けられた）第２のフォーマット形式に変換される。前記第１のプロトコルの一例はＳＣＳＩプロトコルであり、前記第２のプロトコルの一例はＡＴＡプロトコルである。選択的にＬＢＡ割り当て解除ステータス情報はＳＳＤなどの記憶装置により決定され、イニシエータ、エクスパンダ、またはブリッジなど別の装置に通信される。選択的にＳＳＤに格納されたデータは、例えばＳＳＤの電源がオフになるという決定に応答してハードニングされる。このハードニングは、スーパーキャパシタまたは電池などのエネルギー貯蔵要素から供給される電力により行われる。
【００１１】
一部のＳＳＤタイプでは、フラッシュメモリを使って不揮発性記憶装置を提供する（例えば、フラッシュメモリが電力なしで情報を保持する）。一部のＳＳＤは、ＨＤＤ、ＣＤドライブ、およびＤＶＤ駆動など磁気および／または光による不揮発性記憶装置に使用されるフォームファクタ、電気的インターフェース、および／またはプロトコルと互換性がある。一部のＳＳＤは、内蔵ＳＳＤコントローラのホストインターフェースにより、コンピューティングホストへの連結に対応している。一部のＳＳＤコントローラは、１若しくはそれ以上の内蔵フラッシュメモリインターフェースにより、フラッシュメモリへの連結に対応している。
【００１２】
種々の実施形態によれば、前記ホストインターフェースは、ＵＳＢインターフェース規格、ＣＦインターフェース規格、ＭＭＣインターフェース規格、ＳＤインターフェース規格、メモリースティック・インターフェース規格、ｘＤピクチャーカードインターフェース規格、ＩＤＥインターフェース規格、ＳＡＴＡインターフェース規格、ＳＣＳＩインターフェース規格、ＳＡＳインターフェース規格、およびＰＣＩｅインターフェース規格のうち１若しくはそれ以上と互換性がある。種々の実施形態によれば、前記コンピューティングホストは、コンピュータ、ワークステーション・コンピュータ、サーバー・コンピュータ、ストレージ・サーバー、ＰＣ、ラップトップ・コンピュータ、ノートブック・コンピュータ、ネットブック・コンピュータ、ＰＤＡ、メディアプレーヤー、メディアレコーダー、デジタルカメラ、携帯電話ハンドセット、コードレスホン・ハンドセット、および電子ゲームの全部または任意部分である。一部の実施形態では、インターフェースを実装したホスト（例えば、ＳＡＳ／ＳＡＴＡブリッジまたはＳＣＳＩエクスパンダ）がコンピューティングホストとして動作する。
【００１３】
実施形態の例
詳細な説明の序論の結びとして、以下では、少なくとも「ＥＣ」（Ｅｘａｍｐｌｅ  Ｃｏｍｂｉｎａｔｉｏｎ。組み合わせ例）として明示的に列挙されたいくつかを含む実施形態例集を示し、本明細書で説明する概念に係る種々の実施形態タイプについてさらに説明する。これらの例は、相互に排他的、完全、または限定的であることを意図したものではなく、本発明は、これらの実施形態例に限定されず、特許請求の範囲内で考えられる変更（修正）形態および変形形態をすべて包含するものである。
【００１４】
ＥＣ１）システムであって、
第１のストレージプロトコルコマンドを受信する第１のＩ／Ｏインターフェースと、
第２のストレージプロトコルコマンドを出力する第２のＩ／Ｏインターフェースと、
前記受信された第１のストレージプロトコルコマンドの少なくとも一部を前記第２のストレージプロトコルコマンドに変換する変換ユニットと
を有し、
前記第１のストレージプロトコルコマンドの第１のストレージプロトコル割り当て解除コマンドは、前記第１のインターフェースにより第１のフォーマット形式で受信され、且つ変換されて、前記第２のストレージプロトコルコマンドの第２のストレージプロトコル割り当て解除コマンドとして、前記第２のフォーマット形式で出力されるものである
システム。
【００１５】
ＥＣ２）ＥＣ１記載のシステムにおいて、前記割り当て解除コマンドは、少なくとも１つの論理ブロックアドレスを有する論理ブロック割り当て解除コマンドであるシステム。
【００１６】
ＥＣ３）ＥＣ１記載のシステムにおいて、さらに、
前記第２のストレージプロトコルコマンドに応答する大容量記憶装置を有するものであるシステム。
【００１７】
ＥＣ４）ＥＣ３記載のシステムにおいて、前記割り当て解除コマンドは、ユーザーデータおよび保護データのうちの１つから選択された少なくとも１つの論理ブロックアドレスについて割り当て解除を要求し、前記大容量記憶装置は、前記ユーザーデータおよび前記保護データを独立的に割り当て解除できる場合、前記要求を条件付きで実行するものであるシステム。
【００１８】
ＥＣ５）ＥＣ３記載のシステムにおいて、さらに、
前記第１のストレージプロトコルコマンドのイニシエータを有するものであるシステム。
【００１９】
ＥＣ６）ＥＣ５記載のシステムにおいて、さらに、
エクスパンダを有するものであるシステム。
【００２０】
ＥＣ７）ＥＣ１記載のシステムにおいて、前記第１のＩ／Ｏインターフェース、前記第２のＩ／Ｏインターフェース、および前記変換ユニットは、一体化されたアセンブリとして実装されるものであるシステム。
【００２１】
ＥＣ８）ＥＣ７記載のシステムにおいて、前記一体化されたアセンブリは、前記第１のストレージプロトコルコマンドを生成するイニシエータユニットに連結されるブリッジユニットであり、当該ブリッジユニットは、さらに、前記第２のストレージプロトコルコマンドに応答する大容量記憶装置ユニットに連結されるものであるシステム。
【００２２】
ＥＣ９）ＥＣ８記載のシステムにおいて、前記ブリッジユニットの前記第１のＩ／Ｏインターフェースで受信された電力に関する情報の少なくとも１つのインスタンスに応答して、前記ブリッジユニットの前記第２のＩ／Ｏインターフェースは電力に関するコマンドを出力し、当該電力に関するコマンドに対する前記大容量記憶装置ユニットの応答は、データのハードニングを有するものであるシステム。
【００２３】
ＥＣ１０）ＥＣ９記載のシステムにおいて、前記大容量記憶装置ユニットは、フラッシュメモリを使って実装されるものであるシステム。
【００２４】
ＥＣ１１）ＥＣ９記載のシステムにおいて、前記大容量記憶装置ユニットは、ソリッドステートドライブであるシステム。
【００２５】
ＥＣ１２）ＥＣ１記載のシステムにおいて、前記第１のストレージプロトコルはＳＣＳＩプロトコルと互換性があり、前記第２のストレージプロトコルはＡＴＡプロトコルと互換性があるものであるシステム。
【００２６】
ＥＣ１３）ＥＣ１２記載のシステムにおいて、前記第１のストレージプロトコル割り当て解除コマンドはＳＣＳＩ  ＵＮＭＡＰコマンドであり、前記第２のストレージプロトコル割り当て解除コマンドはＡＴＡ  Ｄａｔａ  Ｓｅｔ  Ｍａｎａｇｅｍｅｎｔコマンドであるシステム。
【００２７】
ＥＣ１４）ＥＣ１２記載のシステムにおいて、前記第１のストレージプロトコル割り当て解除コマンドは、一定パターンのデータを書き込むコマンドであるシステム。
【００２８】
ＥＣ１５）ＥＣ１４記載のシステムにおいて、前記一定パターンのデータを書き込むコマンドは、ＷＲＩＴＥ  ＳＡＭＥコマンドおよびＦＯＲＭＡＴコマンドから選択される１つであるシステム。
【００２９】
ＥＣ１６）ＥＣ１４記載のシステムにおいて、前記一定パターンのデータは、所定の基準に基づくものであるシステム。
【００３０】
ＥＣ１７）ＥＣ１記載のシステムにおいて、前記第１のストレージプロトコルはＳＡＳプロトコルと互換性があり、前記第２のストレージプロトコルはＳＡＴＡプロトコルと互換性があるものであるシステム。
【００３１】
ＥＣ１８）ＥＣ３記載のシステムにおいて、前記大容量記憶装置は、フラッシュメモリを使って実装されるものであるシステム。
【００３２】
ＥＣ１９）ＥＣ３記載のシステムにおいて、前記大容量記憶装置は、ソリッドステートドライブであるシステム。
【００３３】
ＥＣ２０）ＥＣ３記載のシステムにおいて、前記第１のＩ／Ｏインターフェース、前記第２のＩ／Ｏインターフェース、前記変換ユニット、および前記大容量記憶装置は、一体化されたアセンブリとして実装されるものであるシステム。
【００３４】
ＥＣ２１）ＥＣ２０記載のシステムにおいて、前記一体化されたアセンブリは、前記第１のストレージプロトコルコマンドを生成するイニシエータユニットに連結されるドライブユニットであるシステム。
【００３５】
ＥＣ２２）ＥＣ２１記載のシステムにおいて、前記大容量記憶装置は、フラッシュメモリを使って実装されるものであるシステム。
【００３６】
ＥＣ２３）ＥＣ１記載のシステムにおいて、前記変換ユニットは、少なくとも部分的に専用論理を伴って実装されるものであるシステム。
【００３７】
ＥＣ２４）ＥＣ１記載のシステムにおいて、前記変換ユニットは、少なくとも１つの専用メモリバッファを有するものであるシステム。
【００３８】
ＥＣ２５）ＥＣ１記載のシステムにおいて、前記変換ユニットは、ハードウェア状態機械を有するものであるシステム。
【００３９】
ＥＣ２６）ＥＣ１記載のシステムにおいて、前記変換ユニットは、マイクロコード化された状態機械を有するものであるシステム。
【００４０】
ＥＣ２７）ＥＣ１記載のシステムにおいて、前記変換ユニットは、埋め込みプロセッサで動作するソフトウェアエージェントを有するものであるシステム。
【００４１】
ＥＣ２８）方法であって、
第１のＩ／Ｏインターフェースを介して第１のストレージプロトコルコマンドを受信する工程と、
第２のＩ／Ｏインターフェースを介して第２のストレージプロトコルコマンドを出力する工程と、
前記受信された第１のストレージプロトコルコマンドの少なくとも一部を、変換ユニットを介して前記第２のストレージプロトコルコマンドに変換する工程と
を有し、
前記第１のストレージプロトコルコマンドの第１のストレージプロトコル割り当て解除コマンドは、前記第１のインターフェースにより第１のフォーマット形式で受信され、且つ変換されて、前記第２のストレージプロトコルコマンドの第２のストレージプロトコル割り当て解除コマンドとして、前記第２のフォーマット形式で出力される
方法。
【００４２】
ＥＣ２９）ＥＣ２８記載の方法において、前記割り当て解除コマンドは、少なくとも１つの論理ブロックアドレスを有する論理ブロック割り当て解除コマンドである方法。
【００４３】
ＥＣ３０）ＥＣ２８記載の方法において、さらに、
大容量記憶装置が、前記第２のストレージプロトコルコマンドを受信し、当該コマンドに応答する工程を有するものである方法。
【００４４】
ＥＣ３１）ＥＣ３０記載の方法において、さらに、
イニシエータが、前記第１のストレージプロトコルコマンドを生成する工程を有するものである方法。
【００４５】
ＥＣ３２）ＥＣ３１記載の方法において、さらに、
エクスパンダが、前記第１のストレージプロトコルコマンドを受信し、前記第１のストレージプロトコルコマンドを前記第１のＩ／Ｏインターフェースに転送する工程を有するものである方法。
【００４６】
ＥＣ３３）ＥＣ２８記載の方法において、前記第１のＩ／Ｏインターフェース、前記第２のＩ／Ｏインターフェース、および前記変換ユニットは、一体化されたアセンブリとして実装されるものである方法。
【００４７】
ＥＣ３４）ＥＣ３３記載の方法において、前記一体化されたアセンブリはブリッジユニットであり、
当該方法は、さらに、
イニシエータユニットにおいて、前記第１のストレージプロトコルコマンドを生成する工程と、
大容量記憶装置ユニットが、前記第２のストレージプロトコルコマンドを受信し、当該コマンドに応答する工程を有するものである方法。
【００４８】
ＥＣ３５）ＥＣ２８記載の方法において、前記第１のストレージプロトコルはＳＣＳＩプロトコルと互換性があり、前記第２のストレージプロトコルはＡＴＡプロトコルと互換性があるものである方法。
【００４９】
ＥＣ３６）ＥＣ３５記載の方法において、前記第１のストレージプロトコル割り当て解除コマンドはＳＣＳＩ  ＵＮＭＡＰコマンドであり、前記第２のストレージプロトコル割り当て解除コマンドはＡＴＡ  Ｄａｔａ  Ｓｅｔ  Ｍａｎａｇｅｍｅｎｔコマンドである方法。
【００５０】
ＥＣ３７）ＥＣ３５記載の方法において、前記第１のストレージプロトコル割り当て解除コマンドは、一定パターンのデータを書き込むコマンドである方法。
【００５１】
ＥＣ３８）ＥＣ３７記載の方法において、前記一定パターンのデータを書き込むコマンドは、ＷＲＩＴＥ  ＳＡＭＥコマンドおよびＦＯＲＭＡＴコマンドのうちの１つから選択されるものである方法。
【００５２】
ＥＣ３９）ＥＣ３７記載の方法において、前記一定パターンのデータは、所定の基準に基づくものである方法。
【００５３】
ＥＣ４０）ＥＣ２８記載の方法において、前記第１のストレージプロトコルはＳＡＳプロトコルと互換性があり、前記第２のストレージプロトコルはＳＡＴＡプロトコルと互換性があるものである方法。
【００５４】
ＥＣ４１）ＥＣ３０記載の方法において、前記大容量記憶装置は、フラッシュメモリを使って実装されるものである方法。
【００５５】
ＥＣ４２）ＥＣ３０記載の方法において、前記大容量記憶装置は、ソリッドステートドライブである方法。
【００５６】
ＥＣ４３）ＥＣ３０記載の方法において、前記第１のＩ／Ｏインターフェース、前記第２のＩ／Ｏインターフェース、前記変換ユニット、および前記大容量記憶装置は、一体化されたアセンブリとして実装されるものである方法。
【００５７】
ＥＣ４４）ＥＣ４３記載の方法において、前記一体化されたアセンブリはドライブユニットであり、
当該方法は、さらに、イニシエータユニットが、前記第１のストレージプロトコルコマンドを生成する工程を有するものである方法。
【００５８】
ＥＣ４５）ＥＣ４４記載の方法において、前記大容量記憶装置は、フラッシュメモリを使って実装されるものである方法。
【００５９】
ＥＣ４６）ＥＣ２８記載の方法において、前記変換する工程は、少なくとも部分的に専用論理により実施されるものである方法。
【００６０】
ＥＣ４７）ＥＣ２８記載の方法において、前記変換する工程は、少なくとも１つの専用メモリバッファを介して実施されるものである方法。
【００６１】
ＥＣ４８）ＥＣ２８記載の方法において、前記変換する工程は、ハードウェア状態機械により定義された状態遷移を実行する工程を有するものである方法。
【００６２】
ＥＣ４９）ＥＣ２８記載の方法において、前記変換する工程は、マイクロコードにより定義された状態遷移を実行する工程を有するものである方法。
【００６３】
ＥＣ５０）ＥＣ２８記載の方法において、前記変換する工程は、埋め込みプロセッサでソフトウェアエージェントを実行する工程を有するものである方法。
【００６４】
ＥＣ５１）装置であって、
第１のストレージプロトコルコマンドを受信する第１のＩ／Ｏインターフェース手段と、
第２のストレージプロトコルコマンドを出力する第２のＩ／Ｏインターフェース手段と、
前記受信された第１のストレージプロトコルコマンドの少なくとも一部を前記第２のストレージプロトコルコマンドに変換する変換手段と
を有し、
前記変換する工程は、前記第１のストレージプロトコルコマンドの、第１のフォーマット形式による第１のストレージプロトコル割り当て解除コマンドを、前記第２のストレージプロトコルコマンドの、第２のフォーマット形式による第２のストレージプロトコル割り当て解除コマンドに変換する工程を有する
装置。
【００６５】
ＥＣ５２）ＥＣ５１記載の装置において、前記割り当て解除コマンドは、少なくとも１つの論理ブロックアドレスを有する論理ブロック割り当て解除コマンドである装置。
【００６６】
ＥＣ５３）ＥＣ５１記載の装置において、さらに、
前記第２のストレージプロトコルコマンドを受信し、当該コマンドに応答する大容量記憶手段を有するものである装置。
【００６７】
ＥＣ５４）ＥＣ５３記載の装置において、さらに、
前記第１のストレージプロトコルコマンドを生成するイニシエータ手段を有するものである装置。
【００６８】
ＥＣ５５）ＥＣ５４記載の装置において、さらに、
前記第１のストレージプロトコルコマンドを受信し、当該第１のストレージプロトコルコマンドを前記第１のＩ／Ｏインターフェース手段に転送するエクスパンダ手段を有するものである装置。
【００６９】
ＥＣ５６）ＥＣ５１記載の装置において、前記第１のＩ／Ｏインターフェース手段、前記第２のＩ／Ｏインターフェース手段、および前記変換手段は、一体化されたアセンブリとして実装されるものである装置。
【００７０】
ＥＣ５７）ＥＣ５６記載の装置において、前記一体化されたアセンブリはブリッジユニットであり、
当該装置は、さらに、
前記第１のストレージプロトコルコマンドを生成するイニシエータ手段と、
前記第２のストレージプロトコルコマンドを受信し、当該コマンドに応答する大容量記憶手段を有するものである装置。
【００７１】
ＥＣ５８）ＥＣ５１記載の装置において、前記第１のストレージプロトコルはＳＣＳＩプロトコルと互換性があり、前記第２のストレージプロトコルはＡＴＡプロトコルと互換性があるものである装置。
【００７２】
ＥＣ５９）ＥＣ５８記載の装置において、前記第１のストレージプロトコル割り当て解除コマンドはＳＣＳＩ  ＵＮＭＡＰコマンドであり、前記第２のストレージプロトコル割り当て解除コマンドはＡＴＡ  Ｄａｔａ  Ｓｅｔ  Ｍａｎａｇｅｍｅｎｔコマンドである装置。
【００７３】
ＥＣ６０）ＥＣ５８記載の装置において、前記第１のストレージプロトコル割り当て解除コマンドは、一定パターンのデータを書き込むコマンドである装置。
【００７４】
ＥＣ６１）ＥＣ６０記載の装置において、前記一定パターンのデータを書き込むコマンドは、ＷＲＩＴＥ  ＳＡＭＥコマンドおよびＦＯＲＭＡＴコマンドのうちの１つから選択されるものである装置。
【００７５】
ＥＣ６２）ＥＣ６０記載の装置において、前記一定パターンのデータは、所定の基準に基づくものである装置。
【００７６】
ＥＣ６３）ＥＣ５１記載の装置において、前記第１のストレージプロトコルはＳＡＳプロトコルと互換性があり、前記第２のストレージプロトコルはＳＡＴＡプロトコルと互換性があるものである装置。
【００７７】
ＥＣ６４）ＥＣ５３記載の装置において、前記大容量記憶装置は、フラッシュメモリを使って実装されるものである装置。
【００７８】
ＥＣ６５）ＥＣ５３記載の装置において、前記大容量記憶装置は、ソリッドステートドライブである装置。
【００７９】
ＥＣ６６）ＥＣ５３記載の装置において、前記第１のＩ／Ｏインターフェース手段、前記第２のＩ／Ｏインターフェース手段、前記変換手段、および前記大容量記憶手段は、一体化されたアセンブリとして実装されるものである装置。
【００８０】
ＥＣ６７）ＥＣ６６記載の装置において、前記一体化されたアセンブリはドライブユニットであり、
当該装置は、さらに、前記第１のストレージプロトコルコマンドを生成するイニシエータ手段を有するものである装置。
【００８１】
ＥＣ６８）ＥＣ６７記載の装置において、前記大容量記憶装置は、フラッシュメモリを使って実装されるものである装置。
【００８２】
ＥＣ６９）ＥＣ５１記載の装置において、前記変換手段は、専用論理を有するものである装置。
【００８３】
ＥＣ７０）ＥＣ５１記載の装置において、前記変換手段は、少なくとも１つの専用メモリバッファを有するものである装置。
【００８４】
ＥＣ７１）ＥＣ５１記載の装置において、前記変換手段は、ハードウェア状態機械を有するものである装置。
【００８５】
ＥＣ７２）ＥＣ５１記載の装置において、前記変換手段は、マイクロコード化された状態機械を有するものである装置。
【００８６】
ＥＣ７３）ＥＣ５１記載の装置において、前記変換手段は、埋め込みプロセッサで動作するソフトウェアエージェントを有するものである装置。
【００８７】
ＥＣ７４）方法であって、
第１のプロトコルに関連付けられた第１のフォーマット形式で論理ブロックアドレス割り当て解除情報を受信する工程と、
前記第１のフォーマット形式の前記論理ブロックアドレス割り当て解除情報を、第２のプロトコルに関連付けられた第２のフォーマット形式に変換する工程と
を有する方法。
【００８８】
ＥＣ７５）ＥＣ７４記載の方法において、前記第１のプロトコルはスモール・コンピュータ・システム・インターフェース（ＳＣＳＩ）プロトコルを含み、前記第２のプロトコルはＡＴアタッチメント（ＡＴＡ）プロトコルを含むものである方法。
【００８９】
ＥＣ７６）ＥＣ７４記載の方法において、前記第１のプロトコルはＡＴＡプロトコルを含み、前記第２のプロトコルはＳＣＳＩプロトコルを含むものである方法。
【００９０】
ＥＣ７７）ＥＣ７４記載の方法において、前記論理ブロックアドレス割り当て解除情報は、割り当て解除コマンドを含むものである方法。
【００９１】
ＥＣ７８）ＥＣ７７記載の方法において、前記割り当て解除コマンドは、ユーザーデータおよび保護情報のうちの少なくとも１つを含むものである方法。
【００９２】
ＥＣ７９）ＥＣ７４記載の方法において、前記論理ブロックアドレス割り当て解除情報は、割り当て解除ステータスを含むものである方法。
【００９３】
ＥＣ８０）ＥＣ７４記載の方法において、前記第１のフォーマット形式の前記論理ブロックアドレス割り当て解除情報を前記第２のフォーマット形式に変換する工程は、ＳＣＳＩ  ＵＮＭＡＰコマンドをＡＴＡ  Ｄａｔａ  Ｓｅｔ  Ｍａｎａｇｅｍｅｎｔコマンドに変換する工程を含むものである方法。
【００９４】
ＥＣ８１）ＥＣ７４記載の方法において、さらに、
前記論理ブロックアドレス割り当て解除情報に関連付けられたユーザーデータまたは保護データのうちの１つを独立して割り当て解除できるかどうか決定する工程を有するものである方法。
【００９５】
ＥＣ８２）ＥＣ８１記載の方法において、さらに、
前記論理ブロックアドレス割り当て解除情報に関連付けられた前記ユーザーデータまたは前記保護データのうちの１つを独立して割り当て解除できることが決定された場合、前記ユーザーデータまたは前記保護データのうちの１つの割り当てを独立して解除する工程を有するものである方法。
【００９６】
ＥＣ８３）ＥＣ７４記載の方法において、さらに、
前記第１のプロトコルに関連付けられた前記第１のフォーマット形式で電源喪失情報を受信する工程を有するものである方法。
【００９７】
ＥＣ８４）ＥＣ８３記載の方法において、この方法は、さらに、
前記第１のフォーマット形式による前記電源喪失情報を、前記第２のプロトコルに関連付けられた前記第２のフォーマット形式に変換する工程を有するものである方法。
【００９８】
ＥＣ８５）ＥＣ８４記載の方法において、前記第１のフォーマット形式による前記電源喪失情報を前記第２のフォーマット形式に変換する工程は、電源喪失プリミティブまたは電源喪失コマンドのうちの１つを、データをハードニングするプリミティブまたはコマンドのうちの１つに変換する工程を含むものである方法。
【００９９】
ＥＣ８６）ＥＣ８４記載の方法において、前記第１のフォーマット形式の前記電源喪失情報を前記第２のフォーマット形式に変換する工程は、ＳＣＳＩ電源喪失プリミティブをＡＴＡ  Ｆｌｕｓｈ  Ｃａｃｈｅコマンドに変換する工程を含むものである方法。
【０１００】
ＥＣ８７）ＥＣ７４記載の方法において、さらに、
前記第１のプロトコルに関連付けられた前記第１のフォーマット形式で一定パターンのデータを書き込むコマンドを受信する工程をさらに有するものである方法。
【０１０１】
ＥＣ８８）ＥＣ８７記載の方法において、さらに、
前記第１のフォーマット形式で一定パターンのデータを書き込むコマンドを、前記第２のプロトコルに関連付けられた前記第２のフォーマット形式で当該データを書き込むコマンドに変換する工程をさらに有するものである方法。
【０１０２】
ＥＣ８９）ＥＣ８８記載の方法において、前記一定パターンのデータを書き込むコマンドは、ＷＲＩＴＥ  ＳＡＭＥコマンドまたはＦＯＲＭＡＴコマンドのうちの１つを含むものである方法。
【０１０３】
ＥＣ９０）ＥＣ８９記載の方法において、ユーザーデータまたは保護データの少なくとも１つは、前記変換されたコマンドに基づいて割り当て解除されるものである方法。
【０１０４】
ＥＣ９１）ＥＣ７４記載の方法において、前記第１のフォーマット形式の前記論理ブロックアドレス割り当て解除情報を前記第２のフォーマット形式に変換する工程は、ＳＡＴＡ論理ブロックアドレス・ブロックアライメントをＳＣＳＩ論理ブロックアドレス・ブロックアライメントに変換する工程を含むものである方法。
【０１０５】
ＥＣ９２）コンピュータ可読媒体上で実行されるコンピュータプログラム製品であって、
第１のプロトコルに関連付けられた第１のフォーマット形式で論理ブロックアドレス割り当て解除情報を受信するコンピュータコードと、
前記第１のフォーマット形式の前記論理ブロックアドレス割り当て解除情報を第２のプロトコルに関連付けられた第２のフォーマット形式に変換するコンピュータコードと
を有するコンピュータプログラム製品。
【０１０６】
ＥＣ９３）装置であって、
第１のプロトコルに関連付けられた第１のフォーマット形式で論理ブロックアドレス割り当て解除情報を受信し、且つ前記第１のフォーマット形式の前記論理ブロックアドレス割り当て解除情報を第２のプロトコルに関連付けられた第２のフォーマット形式に変換するブリッジ
を有する装置。
【０１０７】
ＥＣ９４）方法であって、
第１のプロトコルに関連付けられた第１のフォーマット形式で電源喪失情報を受信する工程と、
前記第１のフォーマット形式の前記電源喪失情報を第２のプロトコルに関連付けられた第２のフォーマット形式に変換する工程と
を有し、
前記第１のフォーマット形式の電源喪失情報を前記第２のフォーマット形式に変換する工程は、電源喪失プリミティブまたは電源喪失コマンドのうちの１つを、データをハードニングするプリミティブまたはコマンドのうちの１つに変換する工程を含むものである
方法。
【０１０８】
ＥＣ９５）コンピュータ可読媒体上で実行されるコンピュータプログラム製品であって、
第１のプロトコルに関連付けられた第１のフォーマット形式で電源喪失情報を受信するコンピュータコードと、
前記第１のフォーマット形式の前記電源喪失情報を第２のプロトコルに関連付けられた第２のフォーマット形式に変換するコンピュータコードと
を有し、
前記第１のフォーマット形式の前記電源喪失情報を前記第２のフォーマット形式に変換する工程は、電源喪失プリミティブまたは電源喪失コマンドのうちの１つを、データをハードニングするプリミティブまたはコマンドのうちの１つに変換する工程を含む
コンピュータプログラム製品。
【０１０９】
ＥＣ９６）装置であって、
第１のプロトコルに関連付けられた第１のフォーマット形式で電源喪失情報を受信し、且つ前記第１のフォーマット形式の前記電源喪失情報を第２のプロトコルに関連付けられた第２のフォーマット形式に変換するブリッジ
を有し、
前記第１のフォーマット形式の前記電源喪失情報を前記第２のフォーマット形式に変換する工程は、前記ブリッジが、電源喪失プリミティブまたは電源喪失コマンドのうちの１つをデータをハードニングするプリミティブまたはコマンドのうちの１つに変換する工程を含む
装置。
【０１１０】
ＥＣ９７）方法であって、
論理ブロックアドレスに関連付けられたメモリの少なくとも一部の割り当て解除ステータスを決定する工程と、
前記決定に基づいて割り当て解除ステータス情報を生成する工程と、
前記割り当て解除ステータス情報を装置に送信する工程と
を有する方法。
【０１１１】
ＥＣ９８）ＥＣ９７記載の方法において、前記割り当て解除ステータス情報は、前記論理ブロックアドレスに関連付けられた前記メモリの少なくとも一部が割り当て解除されるかどうかを示す指標を含むものである方法。
【０１１２】
ＥＣ９９）ＥＣ９８記載の方法において、前記指標は、前記論理ブロックアドレスに関連付けられた前記メモリの少なくとも一部が割り当てられている場合、マップ済みステータスを示すものである方法。
【０１１３】
ＥＣ１００）ＥＣ９８記載の方法において、前記指標は、前記論理ブロックアドレスに関連付けられた前記メモリの少なくとも一部が割り当て解除されている場合、アンマップ済みステータスを示すものである方法。
【０１１４】
ＥＣ１０１）ＥＣ９７記載の方法において、さらに、
前記論理ブロックアドレスに関連付けられた前記メモリの少なくとも一部の前記割り当て解除ステータスについてクエリーを実行する工程を有するものである方法。
【０１１５】
ＥＣ１０２）ＥＣ１０１記載の方法において、前記割り当て解除ステータスを決定する工程は、前記クエリーを実行する工程により開始されるものである方法。
【０１１６】
ＥＣ１０３）ＥＣ１０２記載の方法において、前記クエリーを実行する工程は、割り当て解除ステータスクエリーコマンドおよび割り当て解除コマンドのうちの少なくとも１つを送信する工程を含むものである方法。
【０１１７】
ＥＣ１０４）ＥＣ９７記載の方法において、さらに、
前記論理ブロックアドレスに関連付けられた前記メモリの少なくとも一部から割り当て解除されるデータを指定する工程を有するものである方法。
【０１１８】
ＥＣ１０５）ＥＣ１０４記載の方法において、コマンドまたはモードページのうちの１つを利用して、前記割り当て解除されるデータ、または割り当て解除されるデータについて戻されるデータのフォーマットのうちの１つが指定されるものである方法。
【０１１９】
ＥＣ１０６）ＥＣ１０４記載の方法において、前記割り当て解除されるデータは、ユーザーデータまたは保護データのうちの少なくとも１つの少なくとも一部を含むものである方法。
【０１２０】
ＥＣ１０７）ＥＣ９７記載の方法において、前記論理ブロックアドレスに関連付けられた前記メモリの少なくとも一部は、複数の論理ブロックアドレスセクター、１つの論理ブロックアドレスセクター、または論理ブロックアドレスセクターの一部のうちの１つを含むものである方法。
【０１２１】
ＥＣ１０８）ＥＣ９７記載の方法において、前記割り当て解除ステータス情報を前記装置に送信する工程は、アンマップされたメモリブロックが読み取られた場合に不良ステータスを送信する工程を含むものである方法。
【０１２２】
ＥＣ１０９）ＥＣ９７記載の方法において、さらに、
一定パターンのデータを書き込むコマンドを検出する工程を有するものである方法。
【０１２３】
ＥＣ１１０）ＥＣ１０９記載の方法において、前記一定パターンのデータを書き込むコマンドは、ＷＲＩＴＥ  ＳＡＭＥコマンドまたはＦＯＲＭＡＴコマンドのうちの１つを含むものである。
【０１２４】
ＥＣ１１１）ＥＣ１０９記載の方法において、ユーザーデータまたは保護データのうちの少なくとも１つは、前記一定パターンのデータを書き込むコマンドに基づいて割り当て解除されるものである方法。
【０１２５】
ＥＣ１１２）ＥＣ９７記載の方法において、さらに、
前記論理ブロックアドレスに関連付けられた前記メモリの少なくとも一部に、保護データとは独立してユーザーデータを格納する工程を有するものである方法。
【０１２６】
ＥＣ１１３）ＥＣ９７記載の方法において、フラッシュコントローラは、前記割り当て解除ステータス情報を前記装置に送信するものである方法。
【０１２７】
ＥＣ１１４）ＥＣ９７記載の方法において、前記装置は、プロトコルチップまたはプロトコルベースのバッファのうちの少なくとも１つを含むものである。
【０１２８】
ＥＣ１１５）コンピュータ可読媒体上で実行されるコンピュータプログラム製品であって、
論理ブロックアドレスに関連付けられたメモリの少なくとも一部の割り当て解除ステータスを決定するコンピュータコードと、
前記決定に基づいて、割り当て解除ステータス情報を生成するコンピュータコードと、
前記割り当て解除ステータス情報を装置に送信するコンピュータコードと
を有するコンピュータプログラム製品。
【０１２９】
ＥＣ１１６）装置であって、
論理ブロックアドレスに関連付けられたメモリの少なくとも一部の割り当て解除ステータスを決定し、前記決定に基づいて割り当て解除ステータス情報を生成し、且つ前記割り当て解除ステータス情報を装置に送信するメモリコントローラ
を有する装置。
【０１３０】
ＥＣ１１７）方法であって、
ソリッドステートディスクの電源がオフにされるかどうかを決定する工程と、
前記ソリッドステートディスクの電源がオフにされることが決定された場合、当該ソリッドステートディスクに格納されたデータをハードニングする工程と
を有する方法。
【０１３１】
ＥＣ１１８）ＥＣ１１７記載の方法において、前記ソリッドステートディスクに格納された前記データをハードニングする工程は、前記データをハードニングするコマンドを発行する工程を含むものである方法。
【０１３２】
ＥＣ１１９）ＥＣ１１８記載の方法において、前記データをハードニングするコマンドは、Ｆｌｕｓｈ  Ｃａｃｈｅコマンドを含むものである方法。
【０１３３】
ＥＣ１２０）ＥＣ１１８記載の方法において、前記データをハードニングするコマンドは、
ＳＡＴＡ  Ｓｌｅｅｐコマンドと、
ＳＡＴＡ  Ｓｔａｎｄｂｙコマンドと、
ＳＡＴＡ  Ｓｔａｎｄｂｙ  Ｉｍｍｅｄｉａｔｅコマンドと、
ＳＡＴＡ  Ｆｌｕｓｈ  Ｃａｃｈｅコマンドと、
ＳＡＴＡ  Ｆｌｕｓｈ  Ｃａｃｈｅ  Ｅｘｔコマンドと、
ＳＡＴＡ  Ｉｄｌｅコマンドと、
ＳＡＴＡ  Ｉｄｌｅ  Ｉｍｍｅｄｉａｔｅコマンドと
のうち１若しくはそれ以上を含むものである方法。
【０１３４】
ＥＣ１２１）ＥＣ１１８記載の方法において、前記データをハードニングするコマンドは、Ｆｌｕｓｈ  Ｃａｃｈｅ  Ｅｘｔコマンドを含むものである方法。
【０１３５】
ＥＣ１２２）ＥＣ１１８記載の方法において、前記データをハードニングするコマンドは、Ｓｌｅｅｐコマンドを含むものである方法。
【０１３６】
ＥＣ１２３）ＥＣ１１８記載の方法において、前記データをハードニングするコマンドは、Ｓｔａｎｄｂｙコマンドを含むものである方法。
【０１３７】
ＥＣ１２４）ＥＣ１１８記載の方法において、前記データをハードニングするコマンドは、Ｓｔａｎｄｂｙ  Ｉｍｍｅｄｉａｔｅコマンドを含むものである方法。
【０１３８】
ＥＣ１２５）ＥＣ１１８記載の方法において、前記データをハードニングするコマンドは、Ｉｄｌｅコマンドを含むものである方法。
【０１３９】
ＥＣ１２６）ＥＣ１１８記載の方法において、前記データをハードニングするコマンドは、Ｉｄｌｅ  Ｉｍｍｅｄｉａｔｅコマンドを含むものである方法。
【０１４０】
ＥＣ１２７）ＥＣ１１８記載の方法において、前記ソリッドステートディスクの電源がオフにされる旨は、パワーサイクリング（電源を一度切り再投入する操作）の一環として決定されるものである方法。
【０１４１】
ＥＣ１２８）ＥＣ１２７記載の方法において、前記パワーサイクリングは、エラー回復の結果である方法。
【０１４２】
ＥＣ１２９）ＥＣ１１８記載の方法において、前記ブリッジは、前記データをハードニングするコマンドを発行するものである方法。
【０１４３】
ＥＣ１３０）ＥＣ１２９記載の方法において、さらに、
前記データをハードニングするコマンドを前記ブリッジが発行した後、前記パワーサイクリングを実行する工程を有するものである方法。
【０１４４】
ＥＣ１３１）ＥＣ１１７記載の方法において、さらに、
前記ソリッドステートディスクに関連付けられたスーパーキャパシタまたは電池のうちの１つをテストするコマンドを前記ソリッドステートディスクに送信する工程を有するものである方法。
【０１４５】
ＥＣ１３２）ＥＣ１３１記載の方法において、前記ソリッドステートディスクに関連付けられた前記スーパーキャパシタまたは電池のうちの１つをテストする前記コマンドは、イニシエータにより送信されるものである方法。
【０１４６】
ＥＣ１３３）ＥＣ１３２記載の方法において、前記ソリッドステートディスクに関連付けられた前記スーパーキャパシタまたは電池のうちの１つをテストする前記コマンドは、ブリッジにより送信されるものである方法。
【０１４７】
ＥＣ１３４）ＥＣ１１７記載の方法において、さらに、
前記ソリッドステートディスクから情報を受信する工程を有するものである方法。
【０１４８】
ＥＣ１３５）ＥＣ１３４記載の方法において、前記情報は、前記ソリッドステートディスクに関連付けられたスーパーキャパシタまたは電池のうちの１つが最後にテストされた日時を示すステータスを含むものである方法。
【０１４９】
ＥＣ１３６）ＥＣ１３５記載の方法において、前記ソリッドステートディスクは、当該ソリッドステートディスクに関連付けられた前記スーパーキャパシタまたは電池のうちの１つが最後にテストされた日時を示すステータスを送信するものである方法。
【０１５０】
ＥＣ１３７）ＥＣ１３４記載の方法において、前記情報は、前記ソリッドステートディスクに関連付けられたスーパーキャパシタまたは電池のうちの１つに関するテストの結果を含むものである方法。
【０１５１】
ＥＣ１３８）ＥＣ１３５記載の方法において、前記結果は、前記スーパーキャパシタの前記テストの成否を示すものである方法。
【０１５２】
ＥＣ１３９）コンピュータ可読媒体上で実行されるコンピュータプログラム製品であって、
ソリッドステートディスクの電源がオフにされるかどうかを決定するコンピュータコードと、
前記ソリッドステートディスクの電源がオフにされることが決定された場合、当該ソリッドステートディスクに格納されたデータをハードニングするコンピュータコードと
を有するコンピュータプログラム製品。
【０１５３】
ＥＣ１４０）装置であって、
ソリッドステートディスクの電源がオフにされるかどうかを決定し、当該ソリッドステートディスクの電源がオフにされることが決定された場合、当該ソリッドステートディスクに格納されたデータをハードニングする装置
を有する装置。
【０１５４】
ＥＣ１４１）ＥＣ１４０記載の装置において、前記装置はブリッジを含むものである装置。
【０１５５】
システム
図１は、記憶装置システム論理ブロックアドレス割り当て解除管理およびデータハードニングを提供するシステムの一実施形態の詳細を一部選んで例示したものである。一部の実施形態において、システム１００は、第１のフォーマット形式による論理ブロックアドレス割り当て解除情報を第２のフォーマット形式に変換する。一部の実施形態において、システム１００は、論理ブロックアドレス割り当て解除ステータス情報を送信する。一部の実施形態において、システム１００は、ＳＳＤに格納されたデータをハードニングする。
【０１５６】
図示したように、前記システム１００には、１若しくはそれ以上のイニシエータ１０２を含めることができる。これらのイニシエータ１０２は、１若しくはそれ以上のエクスパンダ１０４に連結でき、それらと通信可能である。この場合、それらのエクスパンダ１０４は、任意の適切なスイッチを表すものであってよい。また、１若しくはそれ以上のブリッジ１０６を配置して、前記イニシエータ１０２および／または前記エクスパンダ１０４から送信される情報が、１若しくはそれ以上のメモリ装置１０８へ通信される前に、前記１若しくはそれ以上のブリッジ１０６で受信されるようにすることもできる。
【０１５７】
種々の実施形態では、前記１若しくはそれ以上のブリッジ１０６に、１若しくはそれ以上のシリアル・アタッチドＳＣＳＩ（ＳＡＳ）ブリッジを含めることができる。また種々の実施形態では、前記１若しくはそれ以上のメモリ装置１０８に、１若しくはそれ以上のシリアルＡＴＡ（ＳＡＴＡ）ドライブを含めることができる。この場合、前記システム１００は、シリアルＳＣＳＩプロトコル（ＳＳＰ）情報またはシリアル管理プロトコル（ＳＭＰ）情報を、ＳＡＴＡ情報およびＡＴＡ情報に変換するＳＡＳブリッジを伴ったＳＡＳシステムとして動作する。
【０１５８】
さらに図示したように、前記メモリ装置１０８には、１若しくはそれ以上のスーパーキャパシタ１１０を含めることができる。なお、前記メモリ装置１０８については、前記スーパーキャパシタ１１０を含む文脈で説明しているが、これらのスーパーキャパシタ１１０は、１若しくはそれ以上の電池と同等なものとして表せることに注意すべきである。また別の実施形態では、前記スーパーキャパシタ１１０が前記メモリ装置１０８とともに含まれない場合があることに注意すべきである。例えば、一実施形態では、前記スーパーキャパシタ１１０または電池なしでも前記メモリ装置１０８は機能できる。
【０１５９】
特筆すべき点として、前記ブリッジ１０６は、前記イニシエータ１０２および前記メモリ装置１０８との間で種々の情報を受信および／または送信することができる。動作時、前記ブリッジ１０６のうち１若しくはそれ以上は、論理ブロックアドレス割り当て解除情報、例えば前記１若しくはそれ以上のメモリ装置１０８の少なくとも一部の割り当てを解除するコマンドを受信できる。本説明の文脈において、割り当て解除情報とは、メモリの割り当て解除に関連付けられた任意の情報をいう。例えば種々の実施形態において、前記割り当て解除情報としては、割り当て解除コマンド（メモリの１若しくはそれ以上の部分を割り当て解除するコマンドなど）、割り当てまたは割り当て解除ステータス、および／または割り当て解除に関連付けられた他の任意の情報などがある。この割り当て解除コマンドは、第１のプロトコルに関連付けられた第１のフォーマット形式、例えばＳＳＰフォーマット形式またはＳＭＰフォーマット形式のものであってよい。
【０１６０】
前記ブリッジ１０６のうち１若しくはそれ以上は、次いで前記ＳＳＰフォーマット形式またはＳＭＰフォーマット形式による前記割り当て解除コマンドを、第２のプロトコルに関連付けられた第２のフォーマット形式、例えば前記１若しくはそれ以上のメモリ装置１０８（例えば、ＳＡＴＡドライブ）に関連付けられたＡＴＡフォーマット形式に変換することができる。一実施形態において、前記第１のフォーマット形式による前記論理ブロックアドレス割り当て解除情報を前記第２のフォーマット形式に変換する工程は、ＳＣＳＩ  ＵＮＭＡＰコマンドをＡＴＡ  Ｄａｔａ  Ｓｅｔ  Ｍａｎａｇｅｍｅｎｔコマンド（例えば、ＴＲＩＭ設定および／またはビットなどを使用する）に変換する工程を含んでよい。これにより前記メモリ装置（例えば、ドライブ）１０８は、変換された前記割り当て解除コマンドに応答してデータの割り当てを解除できる。
【０１６１】
一部の実施形態では、前記ブリッジのうち１若しくはそれ以上に、前記第１のプロトコルでコマンドを受信できる第１のＩ／Ｏインターフェースと、前記第１のプロトコルのコマンドを前記第２のプロトコルに変換できる変換ユニットと、前記変換されたコマンドを第２のプロトコルで出力できる第２のＩ／Ｏインターフェースユニットとが含まれる。種々の実施形態では、前記変換ユニットに、専用ハードウェア論理と、専用メモリバッファと、ハードウェア状態機械と、マイクロコード化された状態機械と、埋め込みプロセッサで動作するソフトウェアエージェントとのうち１若しくはそれ以上が含まれる。
【０１６２】
なお、前記割り当て解除コマンドとしては、前記メモリ装置１０８に格納されたユーザーデータ、保護データまたは情報、ならびにユーザーデータおよび保護データの双方を割り当て解除するコマンドを含めてよいことに注意すべきである。さらに、前記割り当て解除コマンドとしては、ＬＢＡ配列、ＬＢＡセクター、および／またはＬＢＡセクターの一部を割り当て解除するコマンドを含めることができる。
【０１６３】
本説明の文脈において、保護データとは、メモリに格納された任意のデータのうち、ユーザーデータの正確さおよび／または有効性を確実に実現するため使用されるものをいう。この場合、ユーザーデータとは、前記メモリに格納された任意のデータのうち、保護データでないものをいう。
【０１６４】
また、前記割り当て解除情報の変換は、割り当て解除コマンドに限定されないことにも注意すべきである。例えば一実施形態では、前記ブリッジ１０６により、任意のＳＣＳＩコマンドをＡＴＡコマンドに変換できる。これらのコマンドとしては、データクエリー、電源通知（例えば、ＮＯＴＩＦＹプリミティブなどの電源喪失プリミティブ）、および他の種々の情報を含めることができる。
【０１６５】
また、前記ブリッジ１０６は、必ずしも１方向の変換だけに限定されない。前記ブリッジ１０６は、前記メモリ装置１０８から通信中の情報も変換できる。例えば、一実施形態では、前記メモリ装置１０８から割り当て解除ステータスを送信することができる。この場合は、前記論理ブロックアドレス割り当て解除情報に、前記割り当て解除ステータスを含めることができる。種々の実施形態において、このステータスは、前記メモリ装置１０８に送信されたクエリーその他のコマンドに対応したものであってよい。
【０１６６】
別の実施形態では、前記ブリッジ１０６を使って、ＳＡＴＡ論理ブロックアドレス・ブロックアライメント情報をＳＣＳＩ論理ブロックアドレス・ブロックアライメント情報に変換できる。この場合、前記第１のフォーマット形式による前記論理ブロックアドレス割り当て解除情報を前記第２のフォーマット形式に変換する工程には、ＳＡＴＡ論理ブロックアドレス・ブロックアライメントを、ＳＣＳＩ論理ブロックアドレス・ブロックアライメントに変換する工程を含めることができる。前記ブロックアライメントは、奇数または偶数ベースであっても、他の何らかのアライメントを有してもよい。
【０１６７】
一実施形態では、前記ブリッジ１０６のうち１若しくはそれ以上および／またはそれに関連付けられた論理が、第１のプロトコルに関連付けられた第１のフォーマット形式で論理ブロックアドレス・ブロックアライメント情報を受信できる。次に前記ブリッジ１０６および／またはそれに関連付けられた論理は、前記第１のフォーマット形式の前記論理ブロックアドレス・ブロックアライメント情報を、第２のプロトコルに関連付けられた第２のフォーマット形式に変換することができる。この場合、前記第１のフォーマット形式の前記論理ブロックアドレス・ブロックアライメント情報を前記第２のフォーマット形式に変換する工程には、ＳＡＴＡ論理ブロックアドレス・ブロックアライメントを、ＳＣＳＩ論理ブロックアドレス・ブロックアライメントに変換する工程を含めることができる。
【０１６８】
場合により、前記メモリ装置１０８に格納されたユーザーデータおよび保護データは、独立に割り当て解除できる。一実施形態では、前記論理ブロックアドレス割り当て解除情報に関連付けられたユーザーデータまたは保護データのうちの１つを独立して割り当て解除できるかどうか決定することができる。選択肢の１つとして、前記ブリッジ１０６のうち１若しくはそれ以上がこの決定を行える。
【０１６９】
前記論理ブロックアドレス割り当て解除情報に関連付けられた前記ユーザーデータまたは前記保護データのうちの１つを独立して割り当て解除できることが決定された場合は、前記ユーザーデータまたは前記保護データのうちの１つを独立して割り当て解除できる。一実施形態では、前記ユーザーデータまたは前記保護データのパターンに基づいてこの決定を行える。
【０１７０】
例えば、前記ユーザーデータおよび／または前記保護データがメモリ中で一定のパターンを描くようにして、その完全なパターン１つ分以外の全データが割り当て解除されるようにできる。この場合、前記割り当て解除は、ＬＢＡ配列内、ＬＢＡセクター内、および／またはＬＢＡセクターの一部内で行われる。
【０１７１】
動作時は、論理ブロックアドレスに関連付けられた前記メモリ装置１０８の少なくとも一部の割り当て解除ステータスが決定可能である。一実施形態では、１若しくはそれ以上の前記メモリ装置１０８の１若しくはそれ以上の構成要素により、前記割り当て解除ステータスを決定できる。例えば、前記割り当て解除ステータスは、前記メモリ装置１０８のコントローラにより決定できる。別の実施形態では、前記メモリ装置１０８に関連付けられたチップおよび／または論理により、前記割り当て解除ステータスを決定できる。
【０１７２】
前記割り当て解除ステータスが決定されたら、割り当て解除ステータス情報を生成することができる。この場合、前記割り当て解除ステータス情報は、前記メモリ装置１０８に関連付けられた任意の構成要素または論理により生成できる。一実施形態では、これらの構成要素から１若しくはそれ以上の装置へ割り当て解除ステータス情報を送信することもできる。
【０１７３】
その場合、前記装置は、前記割り当て解除ステータス情報についてクエリーを実行した装置（例えば、メモリコントローラ）を含むものであってよい。一実施形態において、前記割り当て解除ステータス情報は、前記論理ブロックアドレスに関連付けられた前記メモリの少なくとも一部が割り当て解除されるかどうかを示す指標を含むことができる。選択肢の１つとして、前記指標は、前記論理ブロックアドレスに関連付けられた前記メモリの少なくとも一部が割り当てられている場合、マップ済みステータスを示すことができる。
【０１７４】
別の選択肢として、前記指標は、前記論理ブロックアドレスに関連付けられた前記メモリの少なくとも一部が割り当て解除されている場合、アンマップ済みステータスを示すことができる。別の実施形態において、前記割り当て解除ステータス情報を前記装置に送信する工程は、アンマップされたメモリブロックが読み取られた場合に不良ステータスを送信する工程を含んでよい。例えば、割り当て解除されたメモリまたはメモリの一部の読み取りが試行された場合は、不良ステータスを利用して、そのメモリ部分の割り当て解除ステータスを示すことができる。
【０１７５】
前記割り当て解除ステータスに関する決定は、種々の方法で開始できる。例えば、一実施形態では、割り当て解除ステータスに関するクエリーを実行できる。この場合、前記割り当て解除ステータス決定は、前記クエリーにより開始される。そのクエリーは種々の形態であってよい。例えば、そのクエリーには、割り当て解除ステータスクエリーコマンドおよび／または割り当て解除コマンドの送信などがある。
【０１７６】
メモリ装置１０８の少なくとも一部から割り当て解除されたデータは、当該割り当て解除されたデータをロギングまたは指定するコマンド、モードページ、または他の任意の技術を利用して指定可能である。また、コマンドまたはモードページを利用すると、割り当て解除されたデータについて返すべきデータのフォーマット形式を指定できる。この場合、そのフォーマット形式には、データ、フラグ、またはデータとフラグとの組み合わせを含めることができる。
【０１７７】
なお、前記割り当て解除されたデータは、ユーザーデータ、保護データ、またはユーザーデータおよび保護データの双方を含んでよい。また、割り当て解除され若しくは割り当て解除ステータス情報が提供された前記論理ブロックアドレスに関連付けられた前記メモリの一部は、複数の論理ブロックアドレスセクターのうちの１つ、１つの論理ブロックアドレスセクター、または論理ブロックアドレスセクターの一部を含んでよい。
【０１７８】
一実施形態では、一定パターンのデータに基づき、メモリまたはメモリの一部を割り当て解除することができる。例えば、格納されたデータ（例えば、ユーザーデータ、保護データ、またはユーザーデータおよび保護データの双方）があるパターンを呈する場合、当該データの少なくとも反復部分を割り当て解除することができる。選択肢の１つとして、割り当て解除すべきこのデータは、コマンド、モードページ、または他の技術で指定できる。
【０１７９】
一実施形態では、一定パターンのデータを書き込むコマンドを検出できる。例えば、前記一定パターンのデータを書き込むコマンドは、ＷＲＩＴＥ  ＳＡＭＥコマンド、ＦＯＲＭＡＴコマンド、または一定パターンの書き込みを実行できる他の任意のコマンドのうちの１つを含んでよい。その場合、前記一定パターンのデータを書き込むコマンドに基づき、ユーザーデータまたは保護データのうちの少なくとも１つを割り当て解除できる。なお、ユーザーデータは、前記メモリ内で保護データと別個に格納できることに注意すべきである。
【０１８０】
動作時は、前記メモリ装置１０８のうち少なくとも１つの電源がオフにされるかどうかが決定される。例えば一実施形態では、前記メモリ装置１０８の電源がオフにされるかを、前記イニシエータ１０２の１つが判断できる。別の実施形態では、前記メモリ装置１０８の電源がオフにされるかを、前記メモリ装置１０８に関連付けられたメモリコントローラまたはプロトコルチップが決定できる。さらに別の実施形態では、前記メモリ装置１０８のうち少なくとも１つの電源がオフにされるかを、前記ブリッジ１０６のうち１若しくはそれ以上が決定できる。種々の実施形態において、前記メモリ装置１０８の電源がオフにされるかどうかは、電源オフコマンド、Ｓｌｅｅｐコマンド、およびＳｔａｎｄｂｙ  Ｉｍｍｅｄｉａｔｅコマンドのうち１若しくはそれ以上の（例えば前記ブリッジ１０６による）受信および／または発行に基づいて決定できる。
【０１８１】
さらに別の実施形態において、電源喪失情報は、前記第１のプロトコルに関連付けられた前記第１のフォーマット形式で（例えば、前記ブリッジ１０６、前記メモリ装置のコントローラにより）受信可能である。その場合、前記第１のフォーマット形式の前記電源喪失情報は、前記第２のプロトコルに関連付けられた前記第２のフォーマット形式に変換することができる。例えば、前記電源喪失情報には、ＳＣＳＩ電源喪失プリミティブ（例えば、ＮＯＴＩＦＹプリミティブ）を含めることができる。そのため、前記第１のフォーマット形式の前記電源喪失情報を前記第２のフォーマット形式に変換する工程には、ＳＣＳＩ電源喪失プリミティブをＡＴＡ  Ｆｌｕｓｈ  Ｃａｃｈｅコマンドに変換する工程を含めることができる。一実施形態では、前記変換工程に、前記電源喪失プリミティブをＳｌｅｅｐコマンドまたはＳｔａｎｄｂｙ  Ｉｍｍｅｄｉａｔｅコマンドに変換する工程を含めることもできる。
【０１８２】
また、前記第１のフォーマット形式の前記電源喪失情報を前記第２のフォーマット形式に変換する工程には、電源喪失プリミティブまたは電源喪失コマンドを、データをハードニングするプリミティブまたはコマンドに変換する工程を含めることができる。本説明の文脈において、データのハードニングとは、揮発性メモリ（例えば、キャッシュ）内のデータを不揮発性メモリ（例えば、フラッシュメモリ）に書き込み、あるいはキャッシュ内のデータをフラッシュメモリなどのメモリに書き込む任意の技術をいう。そのため、電源喪失プリミティブまたは電源喪失コマンドは、前記ブリッジ１０６で受信でき、格納されているデータをハードニングする任意のコマンドまたはプリミティブに変換できる。
【０１８３】
前記メモリ装置１０８の電源がオフにされることが決定された場合、当該メモリ装置１０８に格納されたいかなるデータもハードニングされる。前記メモリ装置１０８に格納されたいかなるデータも、または全データがハードニングされることに注意すべきである。例えば、ハードニングされるデータは、ユーザーデータ、保護データ、またはユーザーデータおよび保護データの双方を含む可能性がある。
【０１８４】
種々の実施形態において、前記メモリ装置１０８は、任意の前記ブリッジ１０６または任意の前記イニシエータ１０２のうち、いずれか１つ若しくはそれ以上に情報を送信できる。その情報には、例えば前記スーパーキャパシタ１１０が最後にテストされた日時を示すステータスを含めることができる。また、その情報には、前記スーパーキャパシタ１１０のテスト結果を含めることもできる。その場合、前記結果は、前記スーパーキャパシタ１１０のテストの成否を示すものであってよい。
【０１８５】
前記ブリッジ１０６は、必ずしも情報の受信に限定されるものではない。一実施形態において、前記ブリッジ１０６は、前記メモリ装置１０８から通信中の情報を変換することもできる。例えば一実施形態において、割り当て解除ステータスは、前記メモリ装置１０８から送信されることもある。種々の実施形態において、このステータスは、前記メモリ装置１０８に送信されたクエリーまたは別のコマンドに対応したものであってよい。
【０１８６】
図２は、記憶装置システム論理ブロックアドレス割り当て解除管理およびデータハードニングを提供する別のシステムの一実施形態について詳細を一部選んで例示したものである。システム２００は（図１の）システム１００と同様なものであるが、概念的に、個々のＳＡＳドライブがＳＡＳブリッジとＳＡＴＡドライブとの各組み合わせの代わりに使用されている。より具体的にいうと、図示したように、このシステム２００には、１若しくはそれ以上のイニシエータ２０２を含めることができる。これらのイニシエータ２０２は、１若しくはそれ以上のエクスパンダ２０４に連結でき、それらと通信可能である。また、これらのイニシエータ２０２およびエクスパンダ２０４は、１若しくはそれ以上のメモリ装置２０８に連結でき、それらと通信可能である。
【０１８７】
種々の実施形態では、前記１若しくはそれ以上のメモリ装置２０８に、１若しくはそれ以上のシリアル・アタッチドＳＣＳＩ（ＳＡＳ）ドライブを含めることができる。その場合、当該システム２００は、ＳＡＳドライブを伴ったシリアル・アタッチドＳＣＳＩ（ＳＡＳ）システムとして動作可能である。他の種々の実施形態では、前記１若しくはそれ以上のメモリ装置２０８に、任意タイプのソリッドステートディスクを含めることができる。
【０１８８】
さらに図示したように、前記メモリ装置２０８には、１若しくはそれ以上のスーパーキャパシタ２１０を含めることができる。なお、前記メモリ装置２０８については、前記スーパーキャパシタ２１０を含む文脈で説明しているが、これらのスーパーキャパシタ２１０は、１若しくはそれ以上の電池と同等なものとして表せることに注意すべきである。また別の実施形態では、前記スーパーキャパシタ２１０が前記メモリ装置２０８とともに含まれない場合があることにも注意すべきである。例えば、一実施形態では、前記スーパーキャパシタ２１０または電池なしでも前記メモリ装置２０８は機能できる。
【０１８９】
構造および動作について、システム２００は（図１の）システム１００と同様なものである。より具体的にいうと、図２の前記イニシエータ、前記エクスパンダ、および前記スーパーキャパシタは図１の各要素と同様なものであり、（図２の）前記１若しくはそれ以上のメモリ装置２０８は、（図１の）前記１若しくはそれ以上のメモリ装置１０８に連結された前記１若しくはそれ以上のブリッジ１０６の組み合わせと同様なものである。そのため、このような要素および各々の動作について図１に関連付けて行った上記の説明は、図２にも同等に適用可能であり、その場合、図１の前記ブリッジに関連付けられた機能はそれに代えて図２の前記メモリ装置２０６（例えば、ＳＡＳドライブ）に関連付けられるものと理解される（また、図１の前記エクスパンダに関連付けられた機能は、図２の前記エクスパンダに関連付けられる）。
【０１９０】
他の実施形態としては図１の変形形態などがあり、その場合、前記イニシエータはＳＡＳブリッジとより直接的に、例えばエクスパンダの介在なしで連結される。関連した実施形態としては図２の変形形態などがあり、その場合、前記イニシエータは１若しくはそれ以上のメモリ（例えば、ＳＡＳドライブ）とより直接的に、例えばエクスパンダの介在なしで連結される。他の実施形態としては図１の変形形態などがあり、その場合、前記イニシエータは１若しくはそれ以上のメモリ装置（例えば、ＳＡＴＡドライブ）とより直接的に、例えばエクスパンダおよびＳＡＳブリッジの介在なしで連結される。他の実施形態としては図１の変形形態などがあり、その場合、１若しくはそれ以上の前記ＳＡＳブリッジが、それぞれ複数の前記メモリ装置（例えば、一対のＳＡＴＡドライブにそれぞれ連結された２つのＳＡＳブリッジ）に連結される。図１および図２に関する上記の説明は、前述の変形形態に適用可能である。
【０１９１】
動作
図３Ａは、第１のフォーマット形式の論理ブロックアドレス（ＬＢＡ）割り当て解除情報を、第２のフォーマット形式に変換する実施形態３００Ａの詳細を一部選んで例示したものである。図示したように、論理ブロックアドレス割り当て解除情報は、第１のプロトコルに関連付けられた第１のフォーマット形式で受信される。動作３０１を参照。
【０１９２】
本説明の文脈において、論理ブロックアドレスとは、メモリ装置に格納されたデータブロックの位置を示す任意のアイテムをいう。例えば、一実施形態では、論理ブロックアドレスに、メモリ中のデータブロックのアドレスを含めることができる。別の実施形態では、論理ブロックアドレスに、メモリの一部のアドレス（例えば、１つのＬＢＡセクター、１つのＬＢＡセクターの一部）を含めることができる。
【０１９３】
前記メモリには、任意タイプのメモリを含めてよい。例えば、前記メモリには、１若しくはそれ以上のソリッドステートディスク（ＳＳＤ）を含めることができる。この場合、前記ＳＳＤはＲＡＭ（例えば、ＳＲＡＭ、ＤＲＡＭ）を含んでよい。
【０１９４】
別の実施形態では、前記ＳＳＤに、フラッシュメモリを含めることができる。この場合、前記フラッシュメモリには、不揮発性フラッシュメモリを含めることができる。種々の実施形態において、前記フラッシュメモリには、シングルレベルセル（ＳＬＣ）フラッシュメモリおよび／またはマルチレベルセル（ＭＬＣ）マルチレベルセルを含めてよい。
【０１９５】
さらに、本説明の文脈において、割り当て解除情報とは、メモリの割り当て解除に関連付けられた任意の情報をいう。例えば種々の実施形態において、前記割り当て解除情報としては、割り当て解除コマンド（メモリの１若しくはそれ以上の部分を割り当て解除するコマンドなど）、割り当てステータスまたは割り当て解除ステータス、および／または割り当て解除に関連付けられた他の任意の情報などがある。その場合、割り当て解除とは、メモリ中の論理ブロックアドレス、またはその部分を解放できる任意の技術をいう。
【０１９６】
前記論理ブロックアドレス割り当て解除情報は、第１のプロトコルに関連付けられた第１のフォーマット形式で受信されるほか、第２のプロトコルに関連付けられた第２のフォーマット形式に変換される。動作３０３を参照。前記第１および第２のプロトコルには、装置（例えば、コンピュータ装置、周辺機器）間を物理的に接続し、および／または当該装置間でデータを転送する任意のプロトコルまたは規格セットを含めることができる。
【０１９７】
一実施形態では、前記第１および第２のプロトコルには、スモール・コンピュータ・システム・インターフェース（ＳＣＳＩ）プロトコルおよびＡＴアタッチメント（ＡＴＡ）プロトコルのうちの１つを含めることができる。例えば、前記第１のプロトコルはＳＣＳＩプロトコルを含んでよく、前記第２のプロトコルはＡＴＡプロトコルを含んでよい。別の例として、前記第１のプロトコルはＡＴＡプロトコルを含んでよく、前記第２のプロトコルはＳＣＳＩプロトコルを含んでよい。
【０１９８】
これらの場合、前記プロトコルに関連付けられたフォーマット形式には、そのプロトコルの任意の標準的フォーマット形式を含めることができる。例えば、ＳＣＳＩプロトコルに関連付けられたフォーマット形式としては、電源または割り当て解除に関する情報を含む割り当て解除コマンド、タスク、またはプリミティブ用の、および情報を通信する他の任意技術用の標準的なＳＣＳＩフォーマット形式を含めることができる。同様に、ＡＴＡプロトコルに関連付けられたフォーマット形式としては、割り当て解除コマンド、電源関連コマンド、プリミティブ、および他の任意情報用の標準的なＡＴＡフォーマット形式を含めることができる。
【０１９９】
そのため、一実施形態では、ＳＣＳＩフォーマット形式による論理ブロックアドレス割り当て解除情報を、ＡＴＡプロトコルに関連付けられたＡＴＡフォーマット形式に変換することができる。別の実施形態では、ＡＴＡフォーマット形式による論理ブロックアドレス割り当て解除情報を、ＳＣＳＩプロトコルに関連付けられたＳＣＳＩフォーマット形式に変換できる。言うまでもなく、これらのフォーマット形式は単なる例であり、一定のプロトコルに関連付けられたいかなるフォーマット形式の割り当て解除情報も、別のプロトコルに関連付けられた他の任意のフォーマット形式に変換可能である。
【０２００】
図３Ｂは、ＳＣＳＩフォーマット形式によるＬＢＡ割り当て解除情報を、ＡＴＡフォーマット形式に変換する実施形態３００Ｂの詳細を一部選んで例示したものである。
【０２０１】
図示したように、まずブリッジ（例えば、ＳＡＳブリッジ）において情報が受信されたか決定される。動作３０２を参照。一実施形態では、この決定が前記ブリッジで行われる。この場合、前記ブリッジには、前記決定その他任意の決定、および／または他の機能を実行する論理および／またはハードウェアを含めることができる。
【０２０２】
前記ブリッジで情報が受信されると、その情報にＳＣＳＩ割り当て解除コマンドが含まれるかどうかが決定される。動作３０４を参照。前記情報にＳＣＳＩ割り当て解除コマンドが含まれる場合、そのＳＣＳＩ割り当て解除コマンドは、ＡＴＡ割り当て解除コマンドに変換される。動作３０６を参照。
【０２０３】
一実施形態では、この変換に、ＳＣＳＩ  ＵＮＭＡＰコマンドをＡＴＡ  Ｄａｔａ  Ｓｅｔ  Ｍａｎａｇｅｍｅｎｔコマンドに変換する工程を含めることができる。前記ＳＣＳＩ割り当て解除コマンドがＡＴＡ割り当て解除コマンドに変換されると、そのコマンドが送信されて当該データの割り当てが解除される。動作３０８を参照。前記割り当て解除には、ユーザーデータ、保護データ、またはその双方の割り当て解除を含めることができる。
【０２０４】
本説明の文脈において、保護データとは、メモリに格納された任意のデータのうち、ユーザーデータの正確さおよび／または有効性を確実に実現するため利用されるものをいう。この場合、ユーザーデータとは、前記メモリに格納された任意のデータのうち、保護データでないものをいう。
【０２０５】
さらに図示するように、前記情報に、ＳＣＳＩ割り当て解除ステータスクエリーが含まれるかどうかが決定される。動作３１０を参照。なお、一実施形態では、割り当て解除ステータス情報を受信するために割り当て解除クエリーを送信する必要はない。例えば、メモリ装置は、割り当て解除ステータス情報を自動的に送信できる（例えば、割り当て解除時、一定の時間間隔で）。
【０２０６】
前記情報にＳＣＳＩ割り当て解除ステータスクエリーが含まれる場合、そのＳＣＳＩ割り当て解除ステータスクエリーは、ＡＴＡ割り当て解除ステータスクエリーに変換される。動作３１２を参照。前記ＳＣＳＩ割り当て解除ステータスクエリーがＡＴＡ割り当て解除ステータスクエリー変換されると、その割り当て解除ステータスクエリーがメモリ装置（例えば、ＳＡＴＡドライブ）に送信される。動作３１４を参照。
【０２０７】
次いでＡＴＡステータス応答が受信されたかどうか決定される。動作３１６を参照。この場合、ＡＴＡステータス応答とは、ＡＴＡフォーマット形式で割り当て解除ステータスを示す任意の応答をいう。このステータスとしては、ユーザーデータ割り当て解除ステータスおよび／または保護データ割り当て解除ステータスなどがある。
【０２０８】
ＡＴＡステータス応答が受信された場合、そのＡＴＡステータス応答は、ＳＣＳＩプロトコルに関連付けられたフォーマット形式に変換される。動作３１８を参照。続けて前記割り当て解除ステータス応答が、前記クエリーを開始した装置（例えば、メモリコントローラ）に送信される。動作３２０を参照。
【０２０９】
前記ブリッジで受信された情報に割り当て解除ステータス情報が含まれるかどうかが決定されるほか、前記受信された情報にＷＲＩＴＥ  ＳＡＭＥコマンド、または他のパターン開始コマンド（例えば、ＦＯＲＭＡＴコマンド）が含まれるかどうかも決定される。動作３２２を参照。前記受信された情報にＷＲＩＴＥ  ＳＡＭＥコマンド、または他のパターン開始コマンドが含まれる場合は、そのコマンドに基づき、前記メモリ装置に格納されたデータが割り当て解除される。動作３２４を参照。
【０２１０】
この場合、ＷＲＩＴＥ  ＳＡＭＥコマンド、ＦＯＲＭＡＴコマンド、およびパターン書き込みを含む他のコマンドを使うと、複製データ（例えば、初期データに続く任意パターンのデータ）を格納するメモリ位置、または複製データを格納するよう指示されたメモリ位置が割り当て解除可能か決定することができる。このデータとしては、ユーザーデータおよび／または保護データが含まれる。さらに、一実施形態では前記ブリッジを利用してこの検出を行えるが、他の実施形態では、種々の装置（例えば、メモリコントローラ、プロトコルチップ）を利用してこの検出を行えることに注意すべきである。そのため、当該技術はブリッジなしでもシステムに導入可能である。
【０２１１】
このように、ユーザーデータおよび／または保護データが独立に割り当て解除可能かどうかは、ＷＲＩＴＥ  ＳＡＭＥまたは他の類似書き込みコマンドを使って、ＡＴＡおよびＳＣＳＩで自動的に決定できる。例えば、第１のプロトコルに関連付けられた第１のフォーマット形式で一定パターンのデータを書き込むコマンド（例えば、ＷＲＩＴＥ  ＳＡＭＥコマンド、ＦＯＲＭＡＴコマンド）が受信された場合、当該第１のフォーマット形式で一定パターンのデータを書き込むコマンドは、第２のプロトコルに関連付けられた第２のフォーマット形式に変換可能である。ユーザーデータおよび／または保護データは、一定パターンを書き込む前記変換済みコマンドに基づいて割り当て解除される。
【０２１２】
前記ブリッジで前記受信された情報に電源喪失通知が含まれるかも決定される。動作３２６を参照。電源喪失通知が検出された場合は、前記メモリに格納されたデータがハードニングされる。動作３２８を参照。
【０２１３】
例えば、前記ブリッジは、ＮＯＴＩＦＹ（ＰＯＷＥＲ  ＬＯＳＳ）プリミティブを受信すると、この情報をＳＳＤに渡して、当該ＳＳＤがデータをハードニングできるようにする。種々の実施形態において、これはアウトオブバンド（ＯＯＢ）コマンドを介し、または別のコマンドを送信して、通信リンクを停止させることにより変換される。一実施形態では、前記ブリッジがＮＯＴＩＦＹ（ＰＯＷＥＲ  ＬＯＳＳ）プリミティブを受信した場合に、Ｆｌｕｓｈ  Ｃａｃｈｅ  ＡＴＡコマンドを送信できる。別の実施形態では、前記電源喪失プリミティブをＳｌｅｅｐコマンドまたはＳｔａｎｄｂｙ  Ｉｍｍｅｄｉａｔｅコマンドに変換することもできる。
【０２１４】
このように、イニシエータからブリッジへ、そしてそのブリッジからＳＳＤへと通信された割り当て解除情報を使用すると、ＬＢＡの割り当てを解除することができる。一実施形態では、Ｍａｘｉｍｕｍ  ＵＮＭＡＰ  ＬＢＡ  ＣｏｕｎｔおよびＭａｘｉｍｕｍ  Ｂｌｏｃｋ  Ｄｅｓｃｒｉｐｔｏｒ  Ｃｏｕｎｔをサポートするようブリッジを構成できる。これらは、前記ブリッジに関連付けられたファームウェアに基づく可能性がある。
【０２１５】
なお、ＡＴＡプロトコルもＳＣＳＩプロトコルもメモリブロックを割り当て解除するコマンドを有する。例えば、ＡＴＡプロトコルでは、Ｄａｔａ  Ｓｅｔ  Ｍａｎａｇｅｍｅｎｔコマンドを利用して、ブロックの割り当てを解除する。このコマンドのフォーマット形式は、表１のとおりである。
【０２１６】
【表２】
0005638686.tif 000003
【０２１７】
次に、ホストが「ＰＩＮデータ」としてデータを前記装置に送信する。このデータのフォーマット形式は、表２のとおりである。
【０２１８】
【表３】
0005638686.tif 000004
【０２１９】
前記カウントフィールドでは、何個の５１２バイトデータ構造を送信するか決定できる。前記ＰＩＮデータのエントリは、表３のとおりである。
【０２２０】
【表４】
0005638686.tif 000005
【０２２１】
なお、前記範囲に値「０」を設定すると、そのエントリは無効になる。また、データはＬＢＡの昇順でソートされ、重複は許されない。
【０２２２】
さらに、ＩＤＥＮＴＩＦＹデータには、前記ホストが前記装置に関する情報を決定できるようにする情報が含まれる。このデータを表４に示す。ただし、サポートを変更するコマンドはＤＥＶＩＣＥ  ＣＯＮＦＩＧＵＲＡＴＩＯＮ  ＩＤＥＮＴＩＦＹコマンドである。
【０２２３】
【表５】
0005638686.tif 000006
【０２２４】
ＳＣＳＩプロトコルでも、ブロックの割り当て解除を行える（例えば、ＬＢＡ）。例えば、ＳＢＣ−３にはシンプロビジョニングが可能なコマンドとその関連フィールドがいくつかある（例えば、ストレージスペースなどの資源を、必要十分なだけ遅滞なく柔軟にサーバーに割り当てられるようにする）。ＢＬＯＣＫ  ＬＩＭＩＴＳ  ＶＰＤ  ＰＡＧＥには、関連するフィールドがいくつかある。例えば、Ｍａｘｉｍｕｍ  ＵＮＭＡＰ  ＬＢＡ  Ｃｏｕｎｔフィールドは、単一のコマンドでアンマップできる最大のＬＢＡ数である。このアンマップ可能な最大ＬＢＡ数は、ＵＮＭＡＰパラメータリストに含まれるデータ量だけに制約され、このフィールドはＦＦＦＦ＿ＦＦＦＦｈに設定できる。値０は、このフィールドがサポートされないことを示す。
【０２２５】
Ｍａｘｉｍｕｍ  ＵＮＭＡＰ  Ｂｌｏｃｋ  Ｄｅｓｃｒｉｐｔｏｒ  Ｃｏｕｎｔは、ＵＮＭＡＰコマンドのパラメータデータに含めることのできるＵＮＭＡＰブロック記述子の最大数である。制限がない場合、このフィールドはＦＦＦＦ＿ＦＦＦＦｈに設定される。このフィールドがサポートされない場合、このフィールドは０に設定される。
【０２２６】
ＦＯＲＭＡＴ  ＵＮＩＴも関連性が高い。シンプロビジョニングされた装置をフォーマットする際、保護が有効にされている場合、Ｐｒｏｔｅｃｔｉｏｎフィールドは６４'ｈＦＦＦＦ＿ＦＦＦＦ＿ＦＦＦＦ＿ＦＦＦＦになっているはずである。保護が有効にされていない場合、当該装置は、初期化パターン記述子（Ｉｎｉｔｉａｌｉｚａｔｉｏｎ  ｐａｔｔｅｒｎ  ｄｅｓｃｒｉｐｔｏｒ）に基づく初期化パターンでフォーマットされる。なお、Ｉｎｉｔｉａｌｉｚａｔｉｏｎ  Ｐａｔｔｅｒｎ  Ｔｙｐｅフィールドは「００」に設定でき（例えば、装置がデフォルトパターンを使用する）、初期化パターン長（ｉｎｉｔｉａｌｉｚａｔｉｏｎ  ｐａｔｔｅｒｎ  ｌｅｎｇｔｈ）は「０」に設定できる。Ｉｎｉｔｉａｌｉｚａｔｉｏｎ  Ｐａｔｔｅｒｎ  Ｔｙｐｅに他の値を設定すると、前記装置に送信されたデータに基づいてパターンが生成される。これにより、前記装置は、データの格納態様に基づき、パターン「Ｘ、Ｙ、Ｚ」、すべてＦＦの保護バイト、または全ＬＢＡのアンマップでフォーマットを行い、あるいはＬＢＡをアンマップしないよう指示される。
【０２２７】
Ｒｅａｄ  Ｃａｐａｃｉｔｙコマンドも、シンプロビジョニングに関連するパラメータフィールドをいくつか有する。それらのフィールドは表５のとおりである。
【０２２８】
【表６】
0005638686.tif 000007
【０２２９】
表６には、Ｐｒｏｔｅｃｔｉｏｎ  Ｄｅｃｏｄｅフィールドを示している。この場合、保護が有効にされ、かつＰ＿Ｉ＿ＥＸＰＯＮＥＮＴフィールドが非ゼロであると、ＬＢＡあたり１より多くの保護フィールドがある。
【０２３０】
【表７】
0005638686.tif 000008
【０２３１】
Ｖｅｒｉｆｙコマンドは、アンマップされたブロックに発行された場合、特殊な取り扱いを伴う場合がある。ＢＹＴＥＣＨＫが「０」の場合、当該装置は、アンマップされるブロックについてＬＢＡが確認済みであると推定できる。ＢＹＴＥＣＨＫが「１」の場合、当該装置は、Ｃｈｅｃｋ  Ｃｏｎｄｉｔｉｏｎステータスでこのコマンドを終了する。
【０２３２】
ＵＮＭＡＰコマンドを使用すると、シンプロビジョニングされた装置でＬＢＡの割り当てを解除することができる。ＵＮＭＡＰ関数が実行されると、アンマップされたＬＢＡのデータを他の任意のＬＢＡから読み取ることはできなくなる。また、アンマップされたＬＢＡのデータは、不確定（ｉｎｄｅｔｅｒｍｉｎａｔｅ）となる場合もならない場合もある。さらに、ＵＮＭＡＰ操作でアンマップされたＬＢＡのデータは、変化しないはずである（例えば、アンマップされたＬＢＡを複数回読み取ると、常に同じデータが返されなければならない）。また、保護が有効にされている場合、保護データはアンマップされても６４'ｈＦＦＦＦ＿ＦＦＦＦ＿ＦＦＦＦ＿ＦＦＦＦに設定されない。
【０２３３】
ＵＮＭＡＰコマンドにおける関連フィールドを表７に示す。
【０２３４】
【表８】
0005638686.tif 000009
【０２３５】
前記パラメータリストにより、構築予定の構造が、ＵＮＭＡＰブロック記述子のリストを渡す。この記述子における関連フィールドを表８に示す。
【０２３６】
【表９】
0005638686.tif 000010
【０２３７】
なお、複数の記述子が渡される場合、ＬＢＡはいかなる順序でも、また重複してもよいことに注意すべきである。ＬＢＡにブロック数を加算すると当該装置の容量を超えてしまう場合、Ｃｈｅｃｋ  Ｃｏｎｄｉｔｉｏｎステータスが返される。また論理ブロック数が０でも、通常、誤り状態ではない。ＵＮＭＡＰブロック記述子中の論理ブロック数がＶＰＤで許可された設定を超える場合、またはＵＮＭＡＰブロック記述子の数がＶＰＤ設定を超える場合、Ｃｈｅｃｋ  Ｃｏｎｄｉｔｉｏｎステータスが返される。
【０２３８】
ＷＲＩＴＥ  ＳＡＭＥコマンドを使用すると、多数のＬＢＡに同じデータを書き込むことができる。ただし、ＬＢＤＡＴＡビットおよびＰＢＤＡＴＡビットに応じて、情報が異なる場合がある。ＵＮＭＡＰビットが設定されている場合、当該ブロックはアンマップされるべきであり、可能なら書き込みがなされるべきではない。ＵＮＭＡＰ中、ユーザーデータは０、保護データは６４'ｈＦＦＦＦ＿ＦＦＦＦ＿ＦＦＦＦ＿ＦＦＦＦであってよい。ＷＲＩＴＥ  ＳＡＭＥ設定でこの条件が満たされない場合は、ＵＮＭＡＰビットが設定されていても書き込みが行われる場合がある。
【０２３９】
なお、ＵＮＭＡＰビットが設定され若しくは設定されずに発行されたＷＲＩＴＥ  ＳＡＭＥコマンドは、データが読み取られた場合に厳密に同じ結果を生じることが期待される。考えられるデータパターンの順列は、表９のとおりである。
【０２４０】
【表１０】
0005638686.tif 000011
【０２４１】
資源不足のため書き込みが完了不能な場合は、Ｃｈｅｃｋ  Ｃｏｎｄｉｔｉｏｎが返され、前記書き込みは失敗したが、資源を解放中であり、当該書き込みを再試行すべきである旨を前記イニシエータに知らせることができる。このコマンド用のスペースがないと予測される場合は、その状態のステータスが前記イニシエータに返される。
【０２４２】
なお、現在ＦＯＲＭＡＴ変換はＳＡＴで記述されている。ただし、最適化によりドライブの寿命を改善することができる。ＬＢＡのユーザーフィールドにすべて０が書き込まれ、保護が行われない場合、またはユーザーフィールドにすべて０が書き込まれ、保護フィールドに６４'ｈＦＦＦＦ＿ＦＦＦＦ＿ＦＦＦＦ＿ＦＦＦＦが書き込まれた場合には、ＤＡＴＡ  ＳＥＴ  ＭＡＮＡＧＥＭＥＮＴコマンドまたはＴＲＩＭコマンドを使用できる。これは、ＦＯＲＭＡＴコマンドのＩＰビットに基づく。
【０２４３】
一部の実施形態において、ＳＣＳＩ  ＵＮＭＡＰコマンドをＡＴＡ  ＤＡＴＡ  ＳＥＴ  ＭＡＮＡＧＥＭＥＮＴコマンドに変換する工程は、少なくとも一部次のように行われる。ＵＮＭＡＰコマンドは、８バイトのＬＢＡを１つ含むＵＮＭＡＰブロック記述子をいくつか有し、またそれらのＬＢＡから何個のブロックを解放するか指定する４バイトの論理ブロックをいくつか有する。前記記述子に特に決まった順序はない（例えば、より小さい数が採番されたＬＢＡを有する記述子は、より大きい数が採番されたＬＢＡを有する記述子の後になっても、その逆でもよい）。さらに、前記記述子で指定される論理ブロックは、重複してもよい。前記記述子は、いかなる順序でも割り当て解除を指定できる。
【０２４４】
Ｄａｔａ  Ｓｅｔ  ＭａｎａｇｅｍｅｎｔコマンドまたはＴＲＩＭ操作は、Ｆｅａｔｕｒｅレジスタのビット０（ＴＲＩＭビットと呼ばれる場合もある）を１に設定することで指定される。このコマンドにより提供されるデータは、記述子のリストで、その各々が６バイトＬＢＡ値および２バイトの長さを有する。このリストは、ＬＢＡ値に基づいて昇順でソートされる。
【０２４５】
ＵＮＭＡＰからＴＲＩＭへの変換には、各前記記述子からＬＢＡおよび論理ブロック数に関する情報を抽出する工程が含まれる。最も重要な前記２バイトのどちらかに非ゼロビットを有するＬＢＡがあると、誤りが生じる。前記論理ブロック数のいずれかが、上位２バイトのうちの１つに何らかの非ゼロビットを有する場合、当該記述子は、元の記述子と同じＬＢＡをカバーする記述子集合として扱われ、その各記述子が前記論理ブロック数の値で前記上位２バイトのどちらにも非ゼロビットを伴わないものとして扱われる。結果的に前記記述子のすべてから得られるＬＢＡは昇順にソートされ記述子としてソートされた順に（下位６バイトにトランケートされて）ＴＲＩＭコマンドに供給される（下位２バイトにトランケートされた長さの、対応する論理ブロック数値とともに）。
【０２４６】
ＳＣＳＩ  ＵＮＭＡＰから、ＴＲＩＭビットセットを伴うＳＡＴＡ  ＩＯ  ＳＥＮＤ  ＦＰＤＭＡコマンドへの変換も同様で、下層にある伝送のみ異なるため、同じ記述子変換が行われる。
【０２４７】
なお、本明細書で説明するＡＴＡプロトコルおよびＳＣＳＩプロトコルのコマンドとそれに伴う記述は、上記の技術および機能を使って異なるフォーマット形式との間で変換できるコマンドおよびフィールドの例である。他の実施形態では、第１のプロトコルフォーマットによるいかなるコマンドまたは情報も、第２のプロトコルフォーマットに変換可能である。
【０２４８】
図４Ａは、ＬＢＡ割り当て解除ステータス情報を送信する実施形態４００Ａの詳細を一部選んで例示したものである。図示したように、まず論理ブロックアドレスに関連付けられたメモリの少なくとも一部の割り当て解除ステータスが決定される。動作４０１を参照。
【０２４９】
前記メモリには、任意タイプのメモリを含めてよい。例えば、前記メモリには、ソリッドステートディスク（ＳＳＤ）を含めることができる。この場合、前記ＳＳＤはＲＡＭ（例えば、ＳＲＡＭ、ＤＲＡＭ）を含んでよい。
【０２５０】
別の実施形態では、前記ＳＳＤに、フラッシュメモリを含めることができる。この場合、前記フラッシュメモリには、不揮発性フラッシュメモリを含めることができる。種々の実施形態において、前記フラッシュメモリには、シングルレベルセル（ＳＬＣ）フラッシュメモリおよび／またはマルチレベルセル（ＭＬＣ）マルチレベルセルを含めてよい。
【０２５１】
さらに、本説明の文脈において、割り当て解除ステータス情報とは、メモリの割り当て解除に関連付けられた任意の情報をいう。例えば、種々の実施形態において、前記割り当て解除ステータス情報は、前記論理ブロックアドレスに関連付けられたメモリの一部が割り当てられているか、または割り当て解除されているかを示す指標、前記論理ブロックアドレスに関連付けられたメモリ全体が割り当てられているか、または割り当て解除されているかを示す指標、および／または割り当て解除ステータスに関連付けられた他の任意の情報を含むことができる。その場合、割り当て解除とは、メモリ中の論理ブロックアドレス、またはその一部を解放できる任意の技術をいう。
【０２５２】
論理ブロックアドレスに関連付けられたメモリの少なくとも一部の割り当て解除ステータスが決定されると、その決定に基づいて割り当て解除ステータス情報が生成される。動作４０３を参照。このように決定されたメモリステータスに基づき、前記割り当て解除ステータス情報が生成される。
【０２５３】
次に、前記割り当て解除ステータス情報が装置に送信される。動作４０５を参照。前記装置には、割り当て解除ステータス情報を受信できる任意の装置を含めることができる。例えば、前記装置には、プロトコルチップ、プロトコルベースのバッファ、ブリッジ、メモリコントローラ、および／または割り当て解除ステータス情報を受信できる他の任意の装置のうち少なくとも１つを含めることができる。一実施形態において、前記プロトコルチップおよび／またはプロトコルベースのバッファは、スモール・コンピュータ・システム・インターフェース（ＳＣＳＩ）プロトコルおよびＡＴアタッチメント（ＡＴＡ）プロトコルのうちの１つに関連付けることができる。
【０２５４】
同様に、前記割り当て解除ステータスの決定および生成は、種々の装置を使って行うことができる。例えば一実施形態では、メモリコントローラ（例えば、フラッシュコントローラ）により、前記割り当て解除ステータス情報を生成および／または送信できる。別の実施形態では、ブリッジにより前記割り当て解除ステータス情報を生成し、前記装置へ送信できる。さらに別の実施形態では、プロトコルチップにより前記割り当て解除ステータス情報を生成し、前記装置へ送信できる。
【０２５５】
図４Ｂは、ＬＢＡ割り当て解除ステータス情報を送信する別の実施形態４００Ｂの詳細を一部選んで例示したものである。図示したように、情報が受信されたかがまず決定される。選択肢４０２を参照。一実施形態において、この決定は、１若しくはそれ以上のフラッシュコントローラ、またはメモリ装置の他のコントローラで行われる。この場合、前記フラッシュコントローラには、前記決定その他任意の決定、および／または他の機能を実行する論理および／またはハードウェアを含めることができる。
【０２５６】
情報が受信されると、前記受信された情報にＷＲＩＴＥ  ＳＡＭＥコマンドまたはパターンを開始する他のコマンド（例えば、ＦＯＲＭＡＴコマンド）が含まれるかどうかが決定される。動作４０４を参照。前記受信された情報にＷＲＩＴＥ  ＳＡＭＥコマンド、または他のパターン開始コマンドが含まれる場合は、そのコマンドに基づき、前記メモリ装置に格納されたデータが割り当て解除される。動作４０６を参照。
【０２５７】
この場合、ＷＲＩＴＥ  ＳＡＭＥコマンド、ＦＯＲＭＡＴコマンド、およびパターン書き込みを含む他のコマンドを使うと、複製データ（例えば、初期データに続く任意パターンのデータ）を格納するメモリ位置、または複製データを格納するよう指示されたメモリ位置が割り当て解除可能か決定することができる。このデータとしては、ユーザーデータおよび／または保護データが含まれる。さらに、一実施形態ではフラッシュコントローラを利用してこの検出を行えるが、他の実施形態では、種々の装置（例えば、ブリッジ、プロトコルチップ）を利用してこの検出を行えることに注意すべきである。そのため、当該技術はブリッジを実装したシステムにも導入可能である。
【０２５８】
前記受信された情報にＷＲＩＴＥ  ＳＡＭＥコマンドまたはパターンを開始する他のコマンドが含まれるかどうかが決定されるほか、前記情報に割り当て解除コマンドが含まれるかどうかも決定される。動作４０８を参照。前記情報に割り当て解除コマンド（例えば、ＳＣＳＩ割り当て解除コマンド、ＡＴＡ割り当て解除コマンド）が含まれる場合は、そのコマンドに基づいて、前記メモリ装置に格納されたデータを割り当て解除できる。一実施形態では、この工程に、ＳＣＳＩ  ＵＮＭＡＰコマンドをＡＴＡ  ＤＡＴＡ  ＳＥＴ  ＭＡＮＡＧＥＭＥＮＴコマンドに変換する工程を含めることができる。前記割り当て解除には、ユーザーデータ、保護データ、またはその双方の割り当て解除を含めることができる。
【０２５９】
さらに図示するように、前記受信された情報に、割り当て解除ステータスクエリーが含まれるかどうかが決定される。動作４１０を参照。なお、一実施形態では、割り当て解除ステータス情報を受信するために割り当て解除クエリーを送信する必要はない。例えば、メモリ装置は、割り当て解除ステータス情報を自動的に送信できる（例えば、割り当て解除時、一定の時間間隔で）。
【０２６０】
前記情報に割り当て解除ステータスクエリーが含まれる場合は、割り当て解除ステータス情報が生成される。動作４１２を参照。次に、前記割り当て解除ステータス情報は、当該割り当て解除ステータス情報を受信できる装置に送信される。動作４１４を参照。
【０２６１】
図５Ａは、ＳＳＤに格納されたデータをハードニングする実施形態５００Ａの詳細を一部選んで例示したものである。動作時は、ソリッドステートディスクの電源がオフにされるかどうかがまず決定される。動作５０１を参照。前記ソリッドステートディスクの電源がオフにされるかどうかの決定は、種々の基準に基づいて行える。
【０２６２】
例えば、一実施形態では、前記ソリッドステートディスクの電源がオフにされるかどうかの決定を、電源オフコマンドに基づいて行うことができる。別の実施形態では、前記ソリッドステートディスクの電源がオフにされるかどうかの決定を、パワーサイクルコマンドに基づいて行うことができる。さらに別の実施形態では、前記ソリッドステートディスクの電源がオフにされるかどうかの決定を、エラー信号に基づいて行うことができる。
【０２６３】
前記ソリッドステートディスクの電源がオフにされることが決定された場合、当該ソリッドステートディスクに格納されたデータはハードニングされる。動作５０３を参照。本説明の文脈において、データのハードニングとは、キャッシュまたは揮発性メモリ内のデータを、フラッシュメモリなどの不揮発性メモリに書き込む任意の技術をいう。
【０２６４】
一実施形態において、前記ソリッドステートディスクに格納された前記データをハードニングする工程には、前記データをハードニングするコマンドを発行する工程を含めることができる。この場合、前記データをハードニングする前記コマンドは、前記ソリッドステートディスクまたはそれに関連付けられたメモリコントローラへと発行できる。前記データをハードニングするこのコマンドには、前記データをハードニングする任意のコマンドを含めることができる。
【０２６５】
例えば、別の実施形態において、前記データをハードニングする前記コマンドは、Ｆｌｕｓｈ  Ｃａｃｈｅコマンドを含んでよい。別の実施形態において、前記データをハードニングする前記コマンドは、Ｓｌｅｅｐコマンドを含んでよい。さらに別の実施形態において、前記データをハードニングする前記コマンドは、Ｓｔａｎｄｂｙ  Ｉｍｍｅｄｉａｔｅコマンドを含んでよい。
【０２６６】
一実施形態では、前記ソリッドステートディスクの電源がオフにされるかどうかの決定を、パワーサイクリングの一環として行うことができる。その場合、前記パワーサイクリングはエラー回復の結果であってよい。このように、データをハードニングするコマンドは、装置（例えば、ブリッジ、メモリコントローラ）から発行できる。一実施形態では、前記データをハードニングする前記コマンドを前記装置が発行した後で、前記データがハードニングされ、前記ソリッドステートディスクがパワーサイクルされる。
【０２６７】
図５Ｂは、ＳＳＤに格納されたデータをハードニングする別の実施形態５００Ｂの詳細を一部選んで例示したものである。図示したように、ソリッドステートディスクの電源をオフにするコマンドが受信されたかどうかがまず決定される。動作５０２を参照。一実施形態では、前記ソリッドステートディスクの電源がオフにされるかどうかの決定を、パワーサイクリングの一環として行うことができる。例えば、前記パワーサイクリングはエラー回復の結果であってよい。
【０２６８】
ソリッドステートディスクの電源をオフにするコマンドが受信された場合、Ｆｌｕｓｈ  Ｃａｃｈｅコマンドを発行するかどうかが決定される。動作５０４を参照。Ｆｌｕｓｈ  Ｃａｃｈｅコマンドを発行することが決定されると、Ｆｌｕｓｈ  Ｃａｃｈｅコマンドが発行される。動作５０６を参照。一実施形態では、ブリッジがＦｌｕｓｈ  Ｃａｃｈｅコマンドを発行できる。
【０２６９】
さらに、Ｓｌｅｅｐコマンドを発行するかどうかが決定される。動作５０８を参照。Ｓｌｅｅｐコマンドを発行することが決定されると、Ｓｌｅｅｐコマンドが発行される。動作５１０を参照。一実施形態では、ブリッジがＳｌｅｅｐコマンドを発行できる。
【０２７０】
また、Ｓｔａｎｄｂｙ  Ｉｍｍｅｄｉａｔｅコマンドを発行するかどうかが決定される。動作５１２を参照。Ｓｔａｎｄｂｙ  Ｉｍｍｅｄｉａｔｅコマンドを発行することが決定されると、Ｓｔａｎｄｂｙ  Ｉｍｍｅｄｉａｔｅコマンドが発行される。動作５１４を参照。ここでも、一実施形態では、ブリッジがＳｔａｎｄｂｙ  Ｉｍｍｅｄｉａｔｅコマンドを発行できる。
【０２７１】
Ｆｌｕｓｈ  Ｃａｃｈｅコマンド、Ｓｌｅｅｐコマンド、およびＳｔａｎｄｂｙ  Ｉｍｍｅｄｉａｔｅコマンドが発行されないと決定された場合は、前記ソリッドステートディスクの電源をオフにする前に、別のデータハードニングコマンドが発行される。動作５１６を参照。前記データハードニングコマンドが発行されたら、電源オフコマンドまたはパワーサイクルコマンドが送信される。動作５１８を参照。
【０２７２】
なお、前記データをハードニングするコマンド（例えば、Ｆｌｕｓｈ  Ｃａｃｈｅコマンド、Ｓｌｅｅｐコマンド、Ｓｔａｎｄｂｙ  Ｉｍｍｅｄｉａｔｅコマンド、または他のいくつかのコマンド）を電源オフ前に発行することにより、前記ソリッドステートディスクは、スーパーキャパシタまたは電池なしで実装可能になる。この実装により、前記ソリッドステートディスクの信頼性を高めることができる。
【０２７３】
ただし、一実施形態では、前記ソリッドステートディスクにスーパーキャパシタまたは電池を含めてもよい。例えば、スーパーキャパシタまたは電池を有するソリッドステートディスクは、電力が失われたときデータを失うことなくデータをすべてフラッシュメモリに吐き出すことができる。その場合、イニシエータまたはブリッジは、前記スーパーキャパシタまたは電池をテストするコマンドをソリッドステートディスクに送信できる。また、ソリッドステートディスクは、前記スーパーキャパシタまたは電池が最後にテストされた日時に関するステータスを返すことができる。
【０２７４】
このようにして、前記ソリッドステートディスクについて電源オフコマンドが受信されたかどうかを決定するほか、一実施形態では、前記ソリッドステートディスクに関連付けられたスーパーキャパシタまたは電池のうちの１つをテストするコマンドを送信すべきかどうかを決定することもできる。動作５２０を参照。スーパーキャパシタまたは電池をテストするコマンドを送信することが決定されると、前記ソリッドステートディスクに関連付けられたスーパーキャパシタまたは電池をテストするコマンドが送信される。動作５２２を参照。
【０２７５】
一実施形態において、前記ソリッドステートディスクに関連付けられたスーパーキャパシタまたは電池をテストするコマンドは、イニシエータから送信できる。別の実施形態において、前記ソリッドステートディスクに関連付けられたスーパーキャパシタまたは電池をテストするコマンドは、ブリッジから送信できる。
【０２７６】
また、何らかの情報が前記ソリッドステートディスクから受信されたかどうかも決定できる。その情報には、任意タイプの情報が含まれてよい。例えば一実施形態において、割り当て解除ステータスは、前記ソリッドステート装置から受信できる。
【０２７７】
また、前記ソリッドステートディスクに関連付けられた前記スーパーキャパシタまたは電池が最後にテストされた日時を示すステータスを含んだ情報が受信されたかも決定できる。動作５２４を参照。この場合、前記ソリッドステートディスクは、当該ソリッドステートディスクに関連付けられた前記スーパーキャパシタまたは電池が最後にテストされた前記日時を示すステータスを送信することができる。
【０２７８】
この情報を使うと、前記スーパーキャパシタまたは電池が最後にテストされた日時を識別できる。動作５２６を参照。さらに、この識別結果に基づき、前記スーパーキャパシタまたは電池のテストを開始すべきか決定することができる。
【０２７９】
前記スーパーキャパシタまたは電池のステータスが受信されたかを決定するほか、スーパーキャパシタまたは電池のテストの結果が受信されたかも決定できる。動作５２８を参照。前記テストの結果が受信された場合は、前記結果が識別される。動作５３０を参照。
【０２８０】
その場合、前記テストの結果は、前記スーパーキャパシタまたは電池のテストの成否を示すものであってよい。その結果に基づき、前記スーパーキャパシタまたは電池に関する別のテストを開始すべきかが決定可能になる。このように、スーパーキャパシタまたは電池のステータスを決定することができ、当該スーパーキャパシタまたは電池をテストすべきかどうかも決定できる。
【０２８１】
図５Ｃは、ＳＳＤのスーパーキャパシタまたは電池をテストする実施形態５００Ｃの詳細を一部選んで例示したものである。動作時、ＳＳＤは、当該ＳＳＤの電源がオフにされる旨の事前通知を選択的に受け取る。動作５１１を参照。次いで前記ＳＳＤの電源がオフにされる。動作５１３を参照。次に、前記ＳＳＤの電源がオンにされる。動作５１５を参照。続けて前記ＳＳＤは、データが正しくハードニングされたかどうかについてクエリーを受ける。動作５１７を参照。前記データが正しくハードニングされた場合は、前記ＳＳＤのスーパーキャパシタまたは電池が動作可能である旨のレポートが選択的に作成される。動作５１９を参照。
【０２８２】
種々の実施形態において、前記図の動作のうち１若しくはそれ以上は、ブリッジ（例えば、図１のブリッジ１０６のいずれか）、エクスパンダ（例えば、図１のエクスパンダ１０４または図２のエクスパンダ２０４のいずれか）、および／またはイニシエータ（例えば、図１のイニシエータ１０２または図２のイニシエータ２０２のいずれか）により、またはその制御の下で、実行される。種々の実施形態において、前記ＳＳＤとは、前記図でＳＡＴＡドライブまたはＳＡＳドライブに対応し、ＥＳＤ（例えば、スーパーキャパシタ）が内蔵または連結されたものをいう。例えば、前記ＳＳＤは、図１の１若しくはそれ以上のメモリ装置１０８に含まれ、前記スーパーキャパシタは、１若しくはそれ以上のスーパーキャパシタ１１０に含まれる。別の例では、前記ＳＳＤは、図２の１若しくはそれ以上のメモリ装置２０８に含まれ、前記スーパーキャパシタは、１若しくはそれ以上のスーパーキャパシタ２１０に含まれる。
【０２８３】
種々の実施形態において、図３Ａ、図３Ｂ、図４Ａ、図４Ｂ、図５Ａ、および／または図５Ｂを参照して説明した動作の全部または任意部分は、図１、図２、および／またはそれらについて説明した変形形態の要素の全部または任意部分のうち任意の１若しくはそれ以上により実施される。例えば、図３Ａの動作３０１および３０３は、図１のブリッジ１０６により実施され、あるいは図２の１若しくはそれ以上のメモリ装置２０８により実施される。別の例として、図３Ｂの動作３１２は、図１のブリッジ１０６により実施され、あるいは図２の１若しくはそれ以上のメモリ装置２０８により実施される。さらに別の例では、図４Ａの動作４０１および４０３は、図１の１若しくはそれ以上のメモリ装置１０８により実施され、あるいは図２の１若しくはそれ以上のメモリ装置２０８により実施される。さらに別の例では、図４Ｂの動作４１２および４１４は、図１の１若しくはそれ以上のメモリ装置１０８により実施され、あるいは図２の１若しくはそれ以上のメモリ装置２０８により実施される。さらに別の例では、図５Ａの動作５０１および図５Ｂの動作５２２は、図１のブリッジ１０６により実施され、あるいは図２の１若しくはそれ以上のメモリ装置２０８により実施される。
【０２８４】
図６は、ユーザーデータおよび保護データを格納するＬＢＡセクターの全部または任意部分の実施形態６００の詳細を一部選んで例示したものである。図示したように、このＬＢＡセクターは、ユーザーデータ６０２および保護データ６０４を別個に格納することができる。これは、前記ユーザーデータ６０２または前記保護データ６０４を別個に操作できるようにするとともに、その操作に含まれないデータに障害を及ぼさないよう実装される。一実施形態では、当該ＬＢＡセクターに、複数のユーザーデータおよび／または保護フィールドを含めることができる。
【０２８５】
図７は、別の実施形態７００に基づいてＬＢＡ割り当て解除ステータス情報を送信する実施形態の詳細を一部選んで例示したものである。図示したように、このシステム７００には、１若しくはそれ以上のブロックまたはチップ７０２〜７０４が含まれる。ブロックが２つまたはチップが２つあり、その一方がチップ上のプロトコルエンジンまたはプロトコルバッファで、他方がフラッシュコントローラである構成の場合、前記割り当て解除工程およびデータ読み取りは、制御された態様で実施される。これは、種々の方法で達成される。
【０２８６】
例えば一実施形態では、前記フラッシュコントローラ７０２が、前記プロトコルチップ７０４に関連付けられたプロトコルバッファに、ＵＮＭＡＰされたＬＢＡに関するデータを送信できる。ただし、その場合、前記ＬＢＡがトリム済みであるという知識を前記プロトコルバッファが有さないことがあるため、当該バッファは一定の特徴をシミュレートしなければならない可能性がある。またこの場合、ＢＹＴＥ  ＣＨＫ＝１のＶＥＲＩＦＹコマンドは適切に実施されないおそれがある。選択肢の１つとして、前記フラッシュコントローラ７０２内の定数フィールドが利用できる。
【０２８７】
別の実施形態において、前記フラッシュコントローラ７０２は、前記ＬＢＡが割り当て解除済みであることを、前記プロトコルチップ７０２またはプロトコルバッファに報告できる。すると、前記プロトコルバッファは、読み取り時、前記データを生成しなければならない可能性がある。これにより、前記プロトコルバッファがこの情報を生成するフックを増やせるため、保護フィールドに関する柔軟性を高めることができる。また、これによりデータ完全性フィールド（ｄａｔａ  ｉｎｔｅｇｒｉｔｙ  ｆｉｅｌｄ：ＤＩＦ）保護以外の保護技術がより柔軟になる。保護フィールドにランダムデータがある場合は、ＢＹＴＥ  ＣＨＫ＝１のＶＥＲＩＦＹコマンドでＣｈｅｃｋ  Ｃｏｎｄｉｔｉｏｎが生成可能になるため、他の技術を実施できる。
【０２８８】
さらに別の実施形態において、前記フラッシュコントローラ７０２は、１ブロック中に２つの独立したデータ、例えばユーザーデータおよび保護データを有することができる。前記ユーザーデータおよび保護データが、独立に読み取られ、書き込まれ、および／または割り当て解除される場合は、何らかの保護スキームがサポートされる。また、ＦＯＲＭＡＴコマンドおよびＷＲＩＴＥ  ＳＡＭＥコマンド技術の大半もサポートされる。表１０は、一実施形態に基づきサポート可能な選択肢を示したものである。
【０２８９】
【表１１】
0005638686.tif 000012
【０２９０】
このように、前記システム７００を使うと、前記フラッシュコントローラ７０２は、前記プロトコルチップ７０４、ブロック、またはプロトコルベースのバッファに、ブロックまたはブロックの部分がアンマップ済みであるという情報を返すことができる。また、前記フラッシュコントローラ７０２は、前記プロトコルチップ７０４、ブロック、またはプロトコルベースのバッファに、ブロックまたはブロックの部分がアンマップ済みであるという情報をデータの代わりに返すことができる。さらに、前記フラッシュコントローラ７０２は、前記プロトコルチップ７０４、ブロック、またはプロトコルベースのバッファに、ブロックのアンマップされた部分と、マップされた部分のデータとを返すことができる。
【０２９１】
上記のように、一実施形態において、前記フラッシュコントローラは、ブロックのステータスについてクエリーを行い当該ブロックがマップされているか決定するコマンドまたは他のデータを受信できる。このコマンドまたは他のクエリーは、選択的にパラメータを含むことができ、ブロックに含まれるデータがクエリー実行装置に提供されることを要求しない場合もある。これは、当該ブロックに関するデータを提供するよう前記イニシエータに要求するＢＹＴＥ  ＣＨＫ＝１の読み取り確認とは異なる。さらに、ユーザーデータおよび保護データを別個に格納することにより、保護を使用しない読み取りコマンドが、保護データに障害を及ぼすことなく動作可能になる。
【０２９２】
ＳＳＤコントローラ
図８Ａは、マッピングを使って不揮発性メモリにアクセスしこれを制御するＳＳＤコントローラを含んだＳＳＤの実施形態の詳細を一部選んで例示した図である。ＳＳＤコントローラ８００は、１若しくはそれ以上の外部インターフェース８１０を介して、ホスト（図示せず）に通信可能に連結されている。種々の実施形態によれば、外部インターフェース８１０は、ＳＡＴＡインターフェース、ＳＡＳインターフェース、ＰＣＩｅインターフェース、ファイバーチャネルインターフェース、イーサネット（登録商標）インターフェース（例えば、１０ギガビットイーサネット（登録商標））、任意の先行インターフェースの非標準バージョン、カスタムインターフェース、または記憶装置および／または通信装置および／またはコンピュータ装置を相互接続するため使用される他の任意タイプインターフェースのうち１若しくはそれ以上である。例えば、一部の実施形態では、ＳＳＤコントローラ８００にＳＡＴＡインターフェースおよびＰＣＩｅインターフェースが含まれる。
【０２９３】
さらに、ＳＳＤコントローラ８００は、１若しくはそれ以上の装置インターフェース８９０を介して、１若しくはそれ以上の記憶装置、例えばフラッシュ装置８９２を含む不揮発性メモリ８９９と通信可能に連結されている。種々の実施形態によれば、外部インターフェース８９０は、非同期インターフェース、同期インターフェース、ＤＤＲ同期インターフェース、ＯＮＦＩ  ２．２互換インターフェースなどのＯＮＦＩ互換インターフェース、トグルモード互換フラッシュインターフェース、任意の先行インターフェースの非標準バージョン、カスタムインターフェース、または記憶装置に接続するため使用される他の任意タイプインターフェースのうち１若しくはそれ以上である。
【０２９４】
フラッシュ装置８９２は、一部の実施形態において、１若しくはそれ以上の個々のフラッシュダイ８９４を有する。フラッシュ装置８９２の特定の１タイプによれば、特定のフラッシュ装置８９２内の複数のフラッシュダイ８９４は、選択的に、および／または選択的に、並列アクセス可能である。フラッシュ装置８９２は、ＳＳＤコントローラ８００に通信可能に連結できる記憶装置の単なる１タイプを表したものである。種々の実施形態では、任意タイプの記憶装置、例えばＳＬＣ  ＮＡＮＤ型フラッシュメモリ、ＭＬＣ  ＮＡＮＤ型フラッシュメモリ、ＮＯＲ型フラッシュメモリ、読み出し専用メモリ、静的ランダムアクセスメモリ、動的ランダムアクセスメモリ、強磁性メモリ、相変化メモリ、レーストラックメモリ、あるいは他の任意タイプのメモリ装置または記憶媒体を使用できる。
【０２９５】
種々の実施形態によれば、装置インターフェース８９０は、バスごとに１若しくはそれ以上のフラッシュ装置８９２を伴った１若しくはそれ以上のバス、バスごとに１若しくはそれ以上のフラッシュ装置８９２を伴った１若しくはそれ以上のバスグループのうち１グループ内のバスが全般的に並列アクセスされるもの、または装置インターフェース８９０上の他の任意のフラッシュ装置８９２構成として構成される。
【０２９６】
引き続き図８Ａにおいて、ＳＳＤコントローラ８００は、１若しくはそれ以上のモジュール、例えばホストインターフェース８１１、データ処理８２１、バッファ８３１、マップ８４１、リサイクラ８５１、ＥＣＣ  ８６１、装置インターフェース論理８９１、およびＣＰＵ  ８７１を有する。図８Ａに例示したこれらの具体的なモジュールおよび相互接続は、単なる一実施形態を表したものであり、これらモジュールのほか図示していない追加モジュールの一部または全部の多数の構成および相互接続も考えられる。第１の例では、一部の実施形態において、２若しくはそれ以上のホストインターフェース８１１がデュアルポーティングを提供する。第２の例では、一部の実施形態において、データ処理８２１および／またはＥＣＣ  ８６１がバッファ８３１と組み合わされる。第３の例では、一部の実施形態において、ホストインターフェース８１１がバッファ８３１に直結され、データ処理８２１が選択的に、および／または選択的に、バッファ８３１に格納されたデータを操作する。第４の例では、一部の実施形態において、装置インターフェース論理８９１がバッファ８３１に直結され、ＥＣＣ  ８６１が選択的に、および／または選択的に、バッファ８３１に格納されたデータを操作する。
【０２９７】
ホストインターフェース８１１は、外部インターフェース８１０経由でコマンドおよび／またはデータを送受信し、一部の実施形態では、タグ追跡８１３により個々のコマンドの進捗状況を追跡例えば、前記コマンドとしては、読み取るべきアドレス（例えば、ＬＢＡ）およびデータ量（例えば、セクター数などのＬＢＡ数）を指定する読み取りコマンドなどがあり、それに応答してＳＳＤが読み取りステータスおよび／または読み取りデータを提供する。別の例では、前記コマンドとして、書き込むべきアドレス（例えば、ＬＢＡ）およびデータ量（例えば、セクター数などのＬＢＡ数）を指定する書き込みコマンドなどがあり、それに応答してＳＳＤが書き込みステータスを提供し、および／または書き込みデータを要求したのち選択的に書き込みステータスを提供する。さらに別の例では、前記コマンドとして、もはや割り当てが不要なアドレス（例えば、ＬＢＡ）を指定する割り当て解除コマンドなどがあり、それに応答してＳＳＤが適宜マップを修正し、選択的に割り当て解除ステータスを提供する。さらに別の例では、前記コマンドとして、スーパーキャパシタテストコマンドまたはデータハードニング成功クエリーなどがあり、それに応答してＳＳＤが適切なステータスを提供する。一部の実施形態において、ホストインターフェース８１１はＳＡＴＡプロトコルと互換性があり、ＮＣＱコマンドを使って最高３２まで保留中コマンドを有することができ、その各々が０〜３１の数で表される一意のタグを伴う。一部の実施形態では、タグ追跡８１３が、外部インターフェース８１０経由で受信されたコマンドに外部タグを関連付けることができ、その関連付けは、ＳＳＤコントローラ８００による処理中、前記コマンドの追跡に使用される内部タグにより行う。
【０２９８】
種々の実施形態によれば、データ処理８２１は、選択的に、および／または選択的に、バッファ８３１および外部インターフェース８１０間で送信されるデータの一部または全部を処理し、かつ、データ処理８２１は、選択的に、および／または選択的に、バッファ８３１に格納されたデータを処理し、あるいは、データ処理８２１は、これらデータ処理のいずれか一方を行う。一部の実施形態において、データ処理８２１は、１若しくはそれ以上のエンジン８２３を使って、フォーマット、リフォーマット、トランスコード、および他の任意のデータ処理および／または操作タスクのうち１若しくはそれ以上を実行する。
【０２９９】
バッファ８３１は、外部インターフェース８１０と装置インターフェース８９０との間で送信されるデータを格納する。また、一部の実施形態において、バッファ８３１は、フラッシュ装置８９２の管理用にＳＳＤコントローラ８００が使用するシステムデータ、例えばマップテーブルの一部または全部も格納する。種々の実施形態において、バッファ８３１は、データの一時記憶に使用されるメモリ８３７、バッファ８３１に出入りするデータの移動を制御するため使用されるＤＭＡ  ８３３、および他のデータ移動および／または操作機能のうち、１若しくはそれ以上を有する。
【０３００】
種々の実施形態によれば、ＥＣＣ  ８６１は、選択的に、および／または選択的に、バッファ８３１および装置インターフェース８９０間で送信されるデータの一部または全部を処理し、かつ、ＥＣＣ  ８６１は、選択的に、および／または選択的に、バッファ８３１に格納されたデータを処理し、あるいは、ＥＣＣ  ８６１は、これらデータ処理のいずれか一方を行う。
【０３０１】
装置インターフェース論理８９１は、装置インターフェース８９０を介してフラッシュ装置８９２を制御する。装置インターフェース論理８９１は、フラッシュ装置８９２のプロトコルに基づき、フラッシュ装置８９２とデータを送受信できる。装置インターフェース論理８９１には、装置インターフェース８９０を介してフラッシュ装置８９２の制御を選択的に順序付けするスケジューリング８９３が含まれる。例えば一部の実施形態において、スケジューリング８９３は、フラッシュ装置８９２の操作をキューでき、利用可能な個々のフラッシュ装置８９２（またはフラッシュダイ８９４）の操作を選択的に送信することができる。
【０３０２】
マップ８４１は、テーブル８４３を使って、外部インターフェース８１０で使用されるデータアドレス指定と装置インターフェース８９０で使用されるデータアドレス指定との間の変換を行い、外部データアドレスを不揮発性メモリ８９９内の位置へとマップする。例えば、一部の実施形態において、マップ８４１は、テーブル８４３が提供するマッピングにより、外部インターフェース８１０で使用されるＬＢＡを、１若しくはそれ以上のフラッシュダイ８９４のブロックおよび／またはページのアドレスに変換する。このマップは、ドライブの製造または割り当て解除以来まったく書き込まれたことのないＬＢＡが読み取られた場合、デフォルト値を返す。例えば、割り当て解除コマンドを処理する際、このマップは、前記割り当て解除されたＬＢＡに対応するエントリが前記デフォルト値の１つを指すよう修正される。種々の実施形態では、複数のデフォルト値があり、その各々がそれに対応したポインタを有する。前記複数のデフォルト値を使うと、いくつかの割り当て解除済みＬＢＡ（例えば、第１の範囲）の読み取り値が１つのデフォルト値になる一方、他の割り当て解除済みＬＢＡ（例えば、第２の範囲）の読み取り値が別のデフォルト値になるようにできる。それらのデフォルト値は、種々の実施形態において、フラッシュメモリ、ハードウェア、ファームウェア、コマンドまたはプリミティブ引数またはパラメータ、プログラム可能なレジスタ、あるいはこれらの種々の組み合わせにより定義される。
【０３０３】
一部の実施形態では、リサイクラ８５１がガベージコレクションを行う。例えば、一部の実施形態では、再び書き込み可能にするため消去しなければならないブロックがフラッシュ装置８９２に含まれる。リサイクラ８５１は、フラッシュ装置８９２のどの部分が活発に使用されている（例えば、割り当て解除されているのではなく、割り当てられている）かを、例えばマップ８４１の維持するマップをスキャンして決定し、フラッシュ装置８９２の未使用（例えば、割り当て解除済み）部分を消去して書き込み可能にすることができる。さらに別の実施形態において、リサイクラ８５１は、フラッシュ装置８９２内に格納されたデータを移動させ、書き込みのできるより大きな連続部分をフラッシュ装置８９２に生み出すことができる。
【０３０４】
ＣＰＵ  ８７１は、ＳＳＤコントローラ８００の種々の部分を制御する。ＣＰＵ  ８７１には、ＣＰＵコア８８１が含まれる。ＣＰＵコア８８１は、種々の実施形態によれば、１若しくはそれ以上のシングルコアまたはマルチコアのプロセッサである。ＣＰＵコア８８１内の個々のプロセッサコアは、一部の実施形態において、マルチスレッド式である。ＣＰＵコア８８１には、命令および／またはデータキャッシュおよび／またはメモリが含まれる。例えば、前記命令メモリには、ＣＰＵコア８８１がソフトウェア（場合により、ファームウェアと呼ばれる）を実行してＳＳＤコントローラ８００を制御できるようにする命令が含まれる。一部の実施形態では、ＣＰＵコア８８１により実行されるファームウェアの一部または全部が、フラッシュ装置８９２に格納される。
【０３０５】
種々の実施形態において、ＣＰＵコア８７１は、さらに、外部インターフェース８１０経由で受信されたコマンドを当該コマンドの進行中に追跡および制御するコマンド管理８７３と、緩衝液８３１の割り当ておよび使用を制御するバッファ管理８７５と、マップ８４１を制御する変換管理８７７と、データアドレス指定の一貫性を制御し外部データアクセスおよびリサイクルデータアクセス間などの競合を回避するコヒーレンシ管理８７９と、装置インターフェース論理８９１を制御する装置管理８８１と、選択的に他の管理ユニットとを含む。種々の実施形態によれば、ＣＰＵ  ８７１により実行される前記管理機能は、その一部または全部が、ハードウェア、ソフトウェア（例えばＣＰＵコア８８１で、または外部インターフェース８１０経由で接続されたホストで実行されるソフトウェア）、またはハードウェアとソフトウェアの任意の組み合わせにより制御および／または管理されるか、あるいは、ＣＰＵ  ８７１により実行される前記管理機能でこれらに制御および／または管理されるものは、まったくない。
【０３０６】
一部の実施形態において、ＣＰＵ  コア８７１は、他の管理タスク、例えば性能統計量を収集および／または報告する工程と、ＳＭＡＲＴを実施する工程と、電源シーケンスを制御する工程と、電力消費量を制御および／または監視および／または調整する工程と、電源障害に対処する工程と、クロックレートを制御および／または監視および／または調整する工程と、他の管理タスクとのうち１若しくはそれ以上を実行することができる。
【０３０７】
種々の実施形態は、ＳＳＤコントローラ８００と同様なコンピューティングホスト・フラッシュメモリ・コントローラを含み、そのコントローラは、ホストインターフェース８１１および／または外部インターフェース８１０の適合などにより種々のコンピューティングホストと動作互換性がある。前記種々のコンピューティングホストとしては、コンピュータ、ワークステーション・コンピュータ、サーバー・コンピュータ、ストレージ・サーバー、ＰＣ、ラップトップ・コンピュータ、ノートブック・コンピュータ、ネットブック・コンピュータ、ＰＤＡ、メディアプレーヤー、メディアレコーダー、デジタルカメラ、携帯電話ハンドセット、コードレスホン・ハンドセット、および電子ゲームの１つ、または任意の組み合わせなどがある。
【０３０８】
一部の実施形態において、図７のシステム７００は、ＳＳＤコントローラ８００の全部または任意部分の実施態様に対応する。一部の実施形態において、図７のフラッシュコントローラ７０２および／またはプロトコルチップ７０４の全部または任意部分は、ＳＳＤコントローラ８００と同様な要素により実装される。
【０３０９】
種々の実施形態において、ＳＳＤコントローラ（またはコンピューティングホスト・フラッシュメモリ・コントローラ）の全部または任意部分は、単一のＩＣ上、複数ダイＩＣのうちの単一のダイ上、複数ダイＩＣのうちの複数のダイ上、または複数のＩＣ上に実装される。例えば、バッファ８３１は、ＳＳＤコントローラ８００の他の要素と同じダイ上に実装される。別の例では、バッファ８３１は、ＳＳＤコントローラ８００の他の要素と異なるダイ上に実装される。
【０３１０】
図８Ｂは、図８ＡのＳＳＤを含むシステムの一実施形態の詳細を一部選んで例示したものである。ＳＳＤ  ８０１には、装置インターフェース８９０を介して不揮発性メモリ８９９に連結されたＳＳＤコントローラ８００が含まれる。このＳＳＤは、外部インターフェース８１０を介してホスト８０２に連結されている。一部の実施形態において、ＳＳＤ  ８０１（またはその変形形態）は、ホスト８０２として動作するイニシエータに連結されたＳＡＳドライブまたはＳＡＴＡドライブに対応する。
【０３１１】
図８Ｃは、図８ＡのＳＳＤを含むシステムの一実施形態の詳細を一部選んで例示したものである。図８Ｂのように、ＳＳＤ  ８０１には、装置インターフェース８９０を介して不揮発性メモリ８９９に連結されたＳＳＤコントローラ８００が含まれる。当該ＳＳＤは、外部インターフェース８１０経由でホスト８０２に連結されているが、この双方の間に中間コントローラ８０３が介在する。種々の実施形態において、ＳＳＤコントローラ８００は、他のコントローラの１若しくはそれ以上の中間レベル、例えばＲＡＩＤコントローラを介して前記ホストに連結される。一部の実施形態において、ＳＳＤ  ８０１（またはその変形形態）は、ＳＡＳドライブまたはＳＡＴＡドライブに対応し、中間コントローラ８０３は、イニシエータに連結されたエクスパンダに対応し、あるいは、中間コントローラ８０３は、エクスパンダを通じてイニシエータに間接的に連結されたブリッジに対応する。
【０３１２】
種々の実施形態では、ＳＳＤコントローラおよび／またはコンピューティングホストコントローラを１若しくはそれ以上の不揮発性メモリと組み合わせたものが、不揮発性記憶構成要素、例えばＵＳＢ記憶構成要素、ＣＦ記憶構成要素、ＭＭＣ記憶構成要素、ＳＤ記憶構成要素、メモリースティック記憶構成要素、およびｘＤピクチャーカード記憶構成要素として実装される。
【０３１３】
その他の情報
種々の実施形態では、電源喪失検出回路、電源喪失ステータス検出器、パワーダウンコマンドの受信機またはデコーダ、またはこれらの任意の組み合わせがＳＳＤコントローラの任意の便宜的要素に含まれて、データをハードニングする要求を提供する。例えば、パワーダウンコマンドの受信機またはデコーダは、図８Ａの１若しくはそれ以上の外部インターフェース８１０に含まれ、当該外部インターフェースに連結されたコンピューティングホストおよび／またはインターフェース接続ホストからパワーダウンコマンドを受信しデコードすることができる。
【０３１４】
図９は例示的なシステム８００を例示したもので、このシステムには、上記の各種実施形態の各種アーキテクチャおよび／または機能性が実装されている。図示したように、システム８００は、通信バス８０２に接続された少なくとも１つのホストプロセッサ８０１を含んで提供される。このシステム８００には、メインメモリ８０４も含まれる。ランダムアクセスメモリ（ＲＡＭ）の形態をとるこのメインメモリ８０４には、制御論理（ソフトウェア）およびデータが格納される。
【０３１５】
当該システム８００には、グラフィックプロセッサ８０６およびディスプレイ８０８、すなわちコンピュータモニターも含まれる。一実施形態では、前記グラフィックプロセッサ８０６に、複数のシェーダーモジュール、ラスタライゼーションモジュールを含めることができる。前記モジュールは、それぞれ場合により単一の半導体プラットフォーム上に位置してグラフィック処理ユニット（ＧＰＵ）を形成してもよい。
【０３１６】
本説明において、単一の半導体プラットフォームとは、単独半導体ベースの集積回路またはチップをいう。用語「単一の半導体プラットフォーム」は、接続性を高めたマルチチップモジュールのうち、オンチップ動作をシミュレートして従来の中央処理装置（ＣＰＵ）およびバス実施態様の利用を著しく改善するものも指す場合があるので注意すべきである。前記種々のモジュールは、利用者の必要に応じて、別個に位置してもよく、または半導体プラットフォームを種々に組み合わせて構成してもよいことは言うまでもない。
【０３１７】
このシステム８００には、二次記憶装置８１０を含めることもできる。この二次記憶装置８１０としては、例えばハードディスクドライブ、および／またはフロッピー（登録商標）ディスクドライブ、磁気テープドライブ、コンパクトディスクドライブなどに代表される取り外し可能な記憶装置ドライブがある。前記取り外し可能な記憶装置ドライブは、取り外し可能な記憶装置ユニットに対し、公知の態様で読み取りおよび／または書き込みを行う。
【０３１８】
前記メインメモリ８０４および／または前記二次記憶装置８１０には、コンピュータプログラムまたはコンピュータ制御論理アルゴリズムを格納することができる。そのようなコンピュータプログラムを実行することにより、前記システム８００は種々の機能を実行できる。メモリ８０４、記憶装置８１０、および／または他の任意の記憶装置は、コンピュータ可読媒体として可能な例である。
【０３１９】
一実施形態において、前記種々の図のアーキテクチャおよび／または機能性は、前記ホストプロセッサ８０１、前記グラフィックプロセッサ８０６、これらホストプロセッサ８０１およびグラフィックプロセッサ８０６の双方の能力の少なくとも一部が可能な集積回路（図示せず）、チップセット（すなわち、関連し合う機能を実行する動作するよう設計されユニットとして販売される集積回路のグループ）、および／またはこれらに関する他の任意の集積回路の文脈で実装することができる。
【０３２０】
さらに、前記種々の図のアーキテクチャおよび／または機能性は、一般的なコンピュータシステム、回路基板システム、娯楽目的専用のゲームコンソールシステム、アプリケーション固有のシステム、および／または他の任意の所望のシステムの文脈で実装することができる。例えば、前記システム８００は、デスクトップコンピュータ、ラップトップコンピュータ、および／または他の任意タイプの論理の形態をとることができる。また、前記システム８００は、携帯情報端末（ＰＤＡ）装置、携帯電話装置、テレビジョン受信機を含み、かつこれらに限定されない他の種々の装置の形態をとることができる。
【０３２１】
さらに、図示していないが、前記システム８００は、ネットワーク［例えば、遠隔通信ネットワーク、ローカルエリアネットワーク（ＬＡＮ）、無線ネットワーク、インターネットなどの広域ネットワーク（ＷＡＮ）、ピアツーピアネットワーク、ケーブルネットワーク］に通信目的で連結できる。
【０３２２】
実施技術例
一部の実施形態において、コンピューティングホスト・フラッシュメモリ・コントローラまたはＳＳＤコントローラ（例えば、図８ＡのＳＳＤコントローラ８００）と、プロセッサ、マイクロプロセッサ、システムオンアチップ、アプリケーション固有の集積回路、ハードウェアアクセラレータ、または上記動作の全部または一部を提供する他の回路の部分とにより実行される動作の全部または一部の種々の組み合わせは、コンピュータシステムによる処理と互換性のある仕様で指定される。その仕様は、種々の記述、例えばハードウェア記述言語、回路記述、ネットリスト記述、マスク記述、レイアウト記述による。記述例としては、Ｖｅｒｉｌｏｇ、ＶＨＤＬ、ＳＰＩＣＥ、ＳＰＩＣＥ変形形態（例えば、ＩＢＩＳ、ＬＥＦ、ＤＥＦ、ＧＤＳ−ＩＩ、ＯＡＳＩＳ）、または他の記述がある。種々の実施形態では、前記処理として、１若しくはそれ以上の集積回路に含める上で適した論理および／または回路を生成、検証、または指定するための解釈、コンパイル、シミュレーション、および合成の任意の組み合わせが含まれる。各集積回路は、種々の実施形態によれば、種々の技術に基づいて設計可能および／または製造可能である。それらの技術としては、プログラマブル技術（例えば、フィールドプログラマブルまたはマスクプログラマブル・ゲートアレイ集積回路）、セミカスタム技術（例えば、全体的または部分的にセルベースの集積回路）、フルカスタム技術（例えば、実質的に特定用途向けの集積回路）、これらの任意の組み合わせ、または集積回路の設計および／または製造と互換性のある他の任意技術などがある。
【０３２３】
一部の実施形態において、命令セットを内部に格納したコンピュータ可読媒体による上記動作の全部または一部の各種組み合わせは、１若しくはそれ以上のプログラム命令の実行および／または解釈により、１若しくはそれ以上のソースおよび／またはスクリプト言語ステートメントの解釈および／またはコンパイルにより、あるいはプログラミングおよび／またはスクリプト言語ステートメントで表現された情報をコンパイル、変換、および／または解釈して生成されたバイナリ命令の実行により、実施される。前記ステートメントは、いかなる標準プログラミング言語またはスクリプト言語とも互換性がある（例えば、Ｃ、Ｃ＋＋、Ｆｏｒｔｒａｎ、Ｐａｓｃａｌ、Ａｄａ、Ｊａｖａ（登録商標）、ＶＢｓｃｒｉｐｔ、およびＳｈｅｌｌ）。前記プログラム命令、前記言語ステートメント、またはバイナリ命令のうち１若しくはそれ以上は、選択的に、１若しくはそれ以上のコンピュータ可読記憶媒体要素に格納される。種々の実施形態において、前記プログラム命令の一部、全部、または種々の部分は、１若しくはそれ以上の関数、ルーチン、サブルーチン、インラインルーチン、プロシージャ、マクロ、またはその部分として実現される。
【０３２４】
結論
上記説明では一定の選択を行っているが、これは単に文章と図面を作成する便宜上のもので、別段の断りがない限り、これらの選択自体が、上記実施形態の構造または動作に関する追加情報を包含すると解釈すべきではない。前記選択の例は、図の参照番号について使用される指定の具体的な構成または割り当て、ならびに前記実施形態の特徴および要素を識別および参照するため使用した前記要素識別子の具体的な構成または割り当て（各要素の囲み線または参照番号）などである。
【０３２５】
表現「を含む」または「が含まれる」は、特に非限定的な範囲の論理セットを記述する抽象表現として解釈されるよう意図したものであり、明示的に「内に」という表現を伴わない限り、物理的収納を意味することを意図したものではない。
【０３２６】
以上の実施形態については、説明および理解の明瞭化を目的として一部詳しく説明したが、本発明は上記で提供した詳細事項に限定されるものではない。本発明には多くの実施形態がある。開示した実施形態は、例示的なものであって限定的なものではない。
【０３２７】
構造、構成、および使用については、前記説明と一貫し、また当該交付済み特許の請求範囲内で多数の変形形態が可能であることが理解されるであろう。例えば、相互接続および機能単位のビット幅、クロック速度、および使用する技術のタイプは、各構成要素ブロックにおける種々の実施形態に応じて異なる。相互接続および論理に与えた名称は単に例示的なものであり、説明された概念を限定するものと解釈されるべきではない。フローチャートの工程、アクション、および機能要素の順序および構成は、種々の実施形態に応じて異なる。また、具体的に別段の断りがない限り、指定した値範囲、使用した最大値および最小値、または他の特定の仕様（例えば、フラッシュメモリ技術のタイプ、ならびにレジスタおよびバッファのエントリまたはステージの数など）は、単に説明した実施形態のものであり、実施態様の技術は改善および変更されることが期待され、本発明を限定するものと解釈すべきではない。
【０３２８】
種々の構成要素、サブシステム、動作・操作、機能、ルーチン、サブルーチン、インラインルーチン、プロシージャ、マクロ、またはその部分を実施するため説明した技術については、これらに代えて、当該技術分野で知られた機能的に等価の技術が使用できる。また言うまでもなく、実施形態の多くの機能的態様は、ハードウェア（一般に専用回路）またはソフトウェア（プログラムされたコントローラまたはプロセッサの何らかの態様による）で、実施形態に応じた設計上の制約と、処理高速化（それまでハードウェアに含まれていた機能のソフトウェアへの移行を促す）および集積密度の向上（それまでソフトウェアに含まれていた機能のハードウェアへの移行を促す）という技術トレンドとの関数として、選択的に実現できる。種々の実施形態における具体的な変形形態としては、パーティショニングの違い、フォームファクタおよびコンフィギュレーションの違い、使用するオペレーティングシステムおよび他のシステムソフトウェアの違い、使用するインターフェース規格、ネットワークプロトコル、または通信リンクの違いによる変形形態、ならびに本明細書で説明した概念の実施時、特定用途に関する独自の工学および業務上の制約に基づいて期待される他の変形形態などがあるが、これらに限定されるものではない。
【０３２９】
以上の実施形態は、説明した実施形態の多くの態様について必要最低限の実施態様よりはるかに多くの詳細事項および環境的文脈を加えて説明したものである。当業者であれば、一部の実施形態では、本明細書に開示した構成要素または特徴を省略しても、残りの要素間の基本的な協動態様は変わらないことが理解できるであろう。したがって、開示した詳細事項の大部分については、説明した実施形態の種々の態様を実施（実装）しなくともよいことは言うまでもない。前記残りの要素が先行技術と区別可能である限り、省略された構成要素および特徴により本明細書で説明する概念が限定されることはない。
【０３３０】
設計におけるそのようないかなる変形形態も、説明した実施形態で開示した内容に対する実質的な変更とはならない。また言うまでもなく、本明細書で説明した実施形態は他のコンピューティング用途およびネットワーキング用途に広い応用性を有し、説明した実施形態の特定の応用または産業に限定されない。このように、本発明は、当該交付済み特許の請求範囲内で、考えられるすべての変更（修正）形態および変形形態を含むものと解釈されるべきである。
【図１】
0005638686.tif 000013
【図２】
0005638686.tif 000014
【図３Ａ】
0005638686.tif 000015
【図３Ｂ】
0005638686.tif 000016
【図４Ａ】
0005638686.tif 000017
【図４Ｂ】
0005638686.tif 000018
【図５Ａ】
0005638686.tif 000019
【図５Ｂ】
0005638686.tif 000020
【図５Ｃ】
0005638686.tif 000021
【図６】
0005638686.tif 000022
【図７】
0005638686.tif 000023
【図８Ａ】
0005638686.tif 000024
【図８Ｂ】
0005638686.tif 000025
【図８Ｃ】
0005638686.tif 000026
【図９】
0005638686.tif 000027