(57)【要約】本開示は、論理アドレスオフセットのための、方法、装置、およびシステムを含む。一方法の実施形態は、記憶装置のフォーマット操作の検出を含む。その後、フォーマット操作の検出に応じて、その方法は、記憶装置上のフォーマット情報の検査、論理アドレスオフセットの計算、およびそのオフセットのホスト論理アドレスへの適用を含む。【選択図】図４
2012515954.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置を操作するための方法であって、
記憶装置のフォーマット操作を検出するステップと、
前記フォーマット操作の検出に応じて、
前記記憶装置上でフォーマット情報を検査し、
論理アドレスオフセットを計算して、
前記オフセットをホスト論理アドレスに適用するステップと
を含む方法。
【請求項２】
前記方法が、前記フォーマット情報に従って、前記記憶装置のユーザーデータ領域の開始論理アドレスの決定を含む、請求項１に記載の方法。
【請求項３】
前記方法が、前記オフセットの、前記ユーザーデータ領域の前記開始アドレスに等しいかそれよりも大きいホストアドレスへの適用を含む、請求項２に記載の方法。
【請求項４】
前記オフセットの前記ホスト論理アドレスへの適用が、前記オフセットの前記論理アドレスへの加算を含む、請求項３に記載の方法。
【請求項５】
前記方法が、次の記憶装置のフォーマット操作が検出されるまで、同一オフセットの使用を含む、請求項３に記載の方法。
【請求項６】
前記方法が、前記オフセットの、前記ユーザーデータ領域の前記開始アドレスに等しいかそれよりも大きい全てのホスト論理アドレスへの適用を含む、請求項２に記載の方法。
【請求項７】
前記オフセットの前記ホスト論理アドレスへの適用が、前記オフセットのユーザーデータ領域の開始論理アドレスへの適用を含む方法であって、かつ、
前記オフセットの開始論理アドレスが、メモリセルの物理ページの先頭、またはメモリセルの物理ブロックの先頭に一致する、請求項１に記載の方法。
【請求項８】
前記方法が、フォーマット情報の検査、ならびにユーザーデータが記憶装置のユーザーデータ領域に書き込まれる前の前記オフセットの計算および適用を含む、請求項１に記載の方法。
【請求項９】
前記方法が、前記記憶装置のコントローラによって実行される、請求項１に記載の方法。
【請求項１０】
前記方法が、前記コントローラの不揮発性メモリへの前記オフセットの格納を含む、請求項９に記載の方法。
【請求項１１】
記憶装置を操作するための方法であって、
記憶装置のフォーマット操作を検出するステップと、
前記フォーマット操作の検出に応じて、
前記記憶装置上のフォーマット情報を検査するステップと、
前記フォーマット情報に従って、前記記憶装置のユーザーデータ領域の開始論理アドレスを決定するステップと、
論理アドレスオフセットを計算するステップであって、前記オフセットが、前記システムデータ領域の終了とメモリセルの次の物理ページの先頭またはメモリセルの次の物理ブロックの先頭との間の論理アドレスの差に等しいステップと、
前記オフセットを前記ユーザーデータ領域内のホスト論理アドレスに適用するステップとを含む方法。
【請求項１２】
前記方法が、前記オフセットの前記ユーザーデータ領域の前記開始論理アドレスへの適用と、
前記ユーザーデータ領域の前記オフセットの開始論理アドレスの、前記ファイルシステムの割り当て単位境界への位置合わせを含む、請求項１１に記載の方法。
【請求項１３】
前記ファイルシステムの前記割り当て単位境界がクラスタ境界を含む、請求項１２に記載の方法。
【請求項１４】
前記方法が、
前記フォーマット情報に従って、前記記憶装置のシステムデータ領域の開始アドレスを決定するステップと、
前記システムデータ領域内にあるホスト論理アドレスに適用される第２オフセットを計算するステップであって、
前記第２オフセットが、前記システムデータ領域の前記開始アドレスに適用される際に、メモリセルの物理ページの先頭またはメモリセルの物理ブロックの先頭に一致するステップとを含む、請求項１１に記載の方法。
【請求項１５】
システムデータ領域が、ファイルアロケーションテーブルおよびルートディレクトリを含むシステムデータ領域群から選択される、請求項１４に記載の方法。
【請求項１６】
前記方法が、前記ユーザーデータ領域へのホストによるアクセスの検出を含む、請求項１１に記載の方法。
【請求項１７】
前記ユーザーデータ領域へのアクセスの検出が、前記ユーザーデータ領域用の論理アドレス範囲と、１つまたは複数のホスト論理アドレスとの比較を含む、請求項１６に記載の方法。
【請求項１８】
前記方法が、前記記憶装置のフォーマット操作検出の前に、デフォルトの論理アドレスオフセットでの記憶装置の操作を含む、請求項１１に記載の方法。
【請求項１９】
前記デフォルトの論理アドレスオフセットが０である、請求項１８に記載の方法。
【請求項２０】
ホストインタフェースと、
記憶装置インタフェースとを備え、さらに、
記憶装置のフォーマット操作を検出し、
前記フォーマット操作の検出に応じて、
前記記憶装置上のフォーマット情報を検査し、
論理アドレスオフセットを計算して、
前記オフセットをホスト論理アドレスに適用するように構成された制御回路と
を備えるメモリコントローラ。
【請求項２１】
前記制御回路が、前記フォーマット情報に従って、前記記憶装置のユーザーデータ領域の開始論理アドレスを決定するように構成された、請求項２０に記載のメモリコントローラ。
【請求項２２】
前記オフセットが、前記記憶装置のユーザーデータ領域の開始論理アドレスに適用される際に、メモリセルの物理ページの先頭またはメモリセルの物理ブロックの先頭に一致する、請求項２０に記載のメモリコントローラ。
【請求項２３】
ホスト論理アドレスと、前記記憶装置のユーザーデータ領域に対応する論理アドレスの範囲とを比較して、前記ホスト論理アドレスが前記ユーザーデータ領域内にあるかどうかを判定するように構成された、多数の論理アドレス範囲比較器を含む、請求項２０に記載のメモリコントローラ。
【請求項２４】
前記オフセットを格納するように構成された不揮発性メモリを含む、請求項２０に記載のメモリコントローラ。
【請求項２５】
前記不揮発性メモリおよび前記記憶装置インタフェースに結合された加算器を含むメモリコントローラであって、前記加算器が、前記ホスト論理アドレスが前記記憶装置インタフェースを通して送信される前に、前記オフセットが前記ホスト論理アドレスに加算されるように構成された、請求項２４に記載のメモリコントローラ。
【請求項２６】
ホストインタフェースと、
記憶装置インタフェースと、
制御回路とを備えるメモリコントローラであって、
前記制御回路が、
記憶装置のフォーマット操作を検出し、その後、
前記フォーマット操作の検出に応じて、
前記記憶装置上のフォーマット情報を検査し、
前記フォーマット情報に従い、前記記憶装置のユーザーデータ領域の開始論理アドレスを決定し、
論理アドレスオフセットを計算するように構成され、
前記オフセットが、前記システムデータ領域の終了とメモリセルの次の物理ページの先頭またはメモリセルの次の物理ブロックの先頭との間の論理アドレスの差に等しく、さらに、
前記オフセットを前記ユーザーデータ領域内のホスト論理アドレスに適用するように構成された、メモリコントローラ。
【請求項２７】
前記コントローラがメモリを含み、前記制御回路が、前記オフセットを前記コントローラメモリに格納するように構成された、請求項２６に記載のメモリコントローラ。
【請求項２８】
前記制御回路が次のフォーマット操作を検出するまで、前記制御回路が前記オフセットを格納するように構成された、請求項２７に記載のメモリコントローラ。
【請求項２９】
前記ユーザーデータ領域が物理ブロック境界から始まるように、前記制御回路が、前記オフセットを、前記ユーザーデータ領域の開始に一致するホスト論理アドレスに適用するように構成された、請求項２６に記載のメモリコントローラ。
【請求項３０】
ホストインタフェースコネクタと、
記憶装置と、
前記ホストインタフェースコネクタおよび前記記憶装置に結合されたメモリコントローラとを備えたメモリシステムであって、
前記メモリコントローラが、
記憶装置のフォーマット操作を検出し、その後、
前記フォーマット操作の検出に応じて、
前記記憶装置上のフォーマット情報を検査し、
論理アドレスオフセットを計算して、
前記オフセットをホスト論理アドレスに適用するように構成された、メモリシステム。
【請求項３１】
前記メモリコントローラが、前記フォーマット情報に従って、前記記憶装置のユーザーデータ領域の開始論理アドレスを決定するように構成され、
前記オフセットが、前記記憶装置のユーザーデータ領域の開始論理アドレスに適用される際に、メモリセルの物理ページの先頭またはメモリセルの物理ブロックの先頭に一致する、請求項３０に記載のメモリシステム。
【請求項３２】
前記メモリコントローラが、前記記憶装置のシステムデータ領域からの前記フォーマット情報を検査するように構成された、請求項３０に記載のメモリシステム。
【請求項３３】
前記記憶装置が、多数のフラッシュメモリアレイを備え、
前記ホストインタフェースコネクタ、前記記憶装置、および前記メモリコントローラがディスクリートモジュールの部分である、請求項３０に記載のメモリシステム。
【請求項３４】
前記メモリシステムがソリッドステートドライブを備える、請求項３０に記載のメモリシステム。
【請求項３５】
前記メモリコントローラが記憶装置フォーマット操作を検出する前に、前記メモリコントローラがデフォルトの論理アドレスオフセットを使用して前記記憶装置を操作するように構成された、請求項３０に記載のメモリシステム。
【請求項３６】
ホストインタフェースコネクタと、
記憶装置と、
前記ホストインタフェースコネクタおよび前記記憶装置に結合されたメモリコントローラとを備えたメモリシステムであって、
前記メモリコントローラが、
記憶装置のフォーマット操作を検出し、その後、
前記フォーマット操作の検出に応じて、
前記記憶装置上のフォーマット情報を検査し、
前記フォーマット情報に従い、前記記憶装置のユーザーデータ領域の開始論理アドレスを決定し、
論理アドレスオフセットを計算するように構成され、
前記オフセットが、前記システムデータ領域の終了とメモリセルの次の物理ページの先頭またはメモリセルの次の物理ブロックの先頭との間の論理アドレスの差に等しく、さらに、
前記オフセットを前記ユーザーデータ領域内のホスト論理アドレスに適用するように構成された、メモリシステム。
【請求項３７】
前記メモリコントローラが、前記記憶装置のシステムデータ領域のパーティションブートレコードからの前記フォーマット情報を検査するように構成された、請求項３６に記載のメモリシステム。
【請求項３８】
前記ユーザーデータ領域が物理ブロック境界から始まるように、前記コントローラが、前記オフセットを、前記ユーザーデータ領域の開始に一致するホスト論理アドレスに適用するように構成された、請求項３６に記載のメモリシステム。
【請求項３９】
前記ユーザーデータ領域の前記開始が、前記ファイルシステムの割り当て単位境界に位置合わせされる、請求項３８に記載のメモリシステム。
【請求項４０】
前記ファイルシステムの前記割り当て単位がクラスタ境界を含む、請求項３９に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、半導体メモリ装置、方法、およびシステムに関し、より詳細には、論理アドレスオフセットに関する。
【背景技術】
【０００２】
メモリ装置は、通常は、コンピュータまたは他の電子機器内に、内部、半導体、集積回路として提供される。揮発性および不揮発性メモリを含め、多数の異なる種類のメモリがある。揮発性メモリは、そのデータを保持するために電力を必要とする場合があり、とりわけ、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、およびシンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）を含む。不揮発性メモリは、電力が供給されていない時に、格納された情報を保持することにより、永続的なデータを提供することができ、とりわけ、ＮＡＮＤフラッシュメモリ、ＮＯＲフラッシュメモリ、読み出し専用メモリ（ＲＯＭ）、電気的消去可能ＲＯＭ（ＥＥＰＲＯＭ）、消去可能ＲＯＭ（ＥＰＲＯＭ）、および相変化ランダムアクセスメモリ（ＰＣＲＡＭ）を含むことできる。
【０００３】
メモリ装置は、結合して、ソリッドステートドライブ（ＳＤＤ）を形成できる。ソリッドステートドライブは、各種の不揮発性メモリおよび揮発性メモリの中で、例えば、ＮＡＮＤフラッシュメモリおよびＮＯＲフラッシュメモリなどの不揮発性メモリを含むことができ、かつ／または、例えば、ＤＲＡＭおよびＳＲＡＭなどの不揮発性メモリを含むことができる。
【０００４】
ソリッドステートドライブは、性能、サイズ、重さ、耐久性、動作温度範囲、および消費電力の観点から、ハードドライブに対して優位性を持ち得るため、ＳＤＤは、コンピュータ用の主記憶装置として、ハードディスクドライブの代わりに使用できる。例えば、ＳＳＤは、可動部品がないために、磁気ディスクドライブに比較して優れた性能を持つことができ、これにより、シーク時間、待ち時間、および磁気ディスクドライブに関連する他の電気機械的遅延が回避され得る。ＳＳＤ製造業者は、不揮発性フラッシュメモリを用いて、内部バッテリ電源を使用しなくてよいフラッシュＳＳＤを作成することができるため、そのドライブをより汎用的かつコンパクトにすることが可能になる。
【０００５】
ＳＳＤは、例えば、多数のメモリチップ（「多数の」何かは、本明細書では、１つまたは複数のかかる何かを参照する可能性があり、例えば、多数のメモリ装置は、１つまたは複数のメモリ装置を参照する可能性がある）など、いくつかのメモリ装置を含むことができる。ＳＳＤ上のメモリ装置の集合体は、記憶装置と呼ばれることがある。当業者には理解されるであろうように、メモリチップは、いくつかのダイを含むことができる。各ダイは、その上に多数のメモリアレイおよび周辺回路を含むことができる。メモリアレイは、多数の物理ブロックに構成された多数のメモリセルを含むことができ、そして、物理ブロックは、多数のページに構成され得る。
【０００６】
いくつかのフォーマットユーティリティは、ＳＳＤを構成するメモリアレイの物理的特性を知らない可能性がある。従って、ＳＳＤが、かかるユーティリティで、特定のファイルシステム用にフォーマットされる場合、その記憶装置は、いくつかの領域に分割されて、各領域が、メモリセルのページまたはブロックなどの物理境界に一致しているか、または一致していない可能性のある開始論理アドレスを有する。例えば、ファイルシステムのユーザーデータ領域は、メモリセルのページまたはブロックの中ほどにマッピングする可能性のある開始論理ブロックアドレスを持つ可能性がある。
【図面の簡単な説明】
【０００７】
【図１】本開示の１つまたは複数の実施形態に従って動作可能な電子メモリシステムの機能ブロック図である。
【図２】本開示の１つまたは複数の実施形態に従った、メモリコントローラの機能ブロック図である。
【図３】本開示の１つまたは複数の実施形態に従った、メモリ装置の一部を示す概略図である。
【図４】本開示の１つまたは複数の実施形態に従ったファイルシステムでフォーマットされた記憶装置のブロック図である。
【発明を実施するための形態】
【０００８】
本開示は、論理アドレスオフセットのための方法、装置、およびシステムを含む。一方法の実施形態は、記憶装置のフォーマット操作の検出を含む。続いてフォーマット操作の検出に応じて、その方法は、記憶装置上でのフォーマット情報の検査、論理アドレスオフセットの計算、およびそのオフセットのホスト論理アドレスへの適用を含む。
【０００９】
本開示の以下の詳述では、本明細書の一部を形成する添付の図に対する参照が行われ、それらの図では、本開示の１つまたは複数の実施形態がどのように実施できるかが実例として示されている。これらの実施形態は、当業者が、本開示の実施形態を実施し得るよう十分詳細に記述され、また、他の実施形態が利用可能であり、本開示の範囲から逸脱することなく、プロセス、電気的、および／または構造的変更をなし得ることが理解されるであろう。本明細書では、指示子「Ｎ」、「Ｍ」、「Ｒ」、および「Ｓ」は、個々に図の参照数字に関して、そのように指定されたいくつかの特定の機能が、本開示の１つまたは複数の実施形態に含まれることを示す。
【００１０】
本明細書の図は、第１の数字が図の番号に対応し、残りの数字がその図の要素またはコンポーネントを識別するという番号付けの方法に従う。異なる図の同様の要素またはコンポーネントは、同様の数字を使用して識別され得る。例えば、１０１は、図１の要素「０１」を参照し、同様の要素は、図２では「２０１」として参照され得る。理解されるであろうように、本明細書の様々な実施形態で示される各要素は、本開示の多数の追加の実施形態となるよう、追加、交換、および／または除去できる。さらに、理解されるであろうように、図で提供されている要素の比率および相対的な大きさは、本発明の実施形態の例示を目的としており、限定の意味で取られるべきではない。
【００１１】
図１は、本開示の１つまたは複数の実施形態に従った、メモリシステム１２０を含むコンピューティングシステム１００の機能ブロック図である。図１に例示する実施形態では、メモリシステム１２０（例えば、ソリッドステートドライブ（ＳＤＤ））は、メモリコントローラ１０１、ホストインタフェースコネクタ１０３、および１つまたは複数のソリッドステートメモリ装置１３０−１、．．．、１３０−Ｎを含むことができる。ソリッドステートメモリ装置１３０−１、．．．、１３０−Ｎは、本明細書では、総称して記憶装置１３２と呼ぶ。記憶装置１３２がデータ保存用に記憶ボリュームを提供できるように、記憶装置１３２にファイルシステムがフォーマット可能である。１つまたは複数の実施形態では、ホストインタフェースコネクタ１０３、記憶装置１３２、およびメモリコントローラ１０１を含め、メモリシステム１２０は、ディスクリートメモリモジュール（例えば、プリント基板）の一部にできる。
【００１２】
図１に示すように、メモリコントローラ１０１は、ホストインタフェースコネクタ１０３、およびソリッドステートメモリ装置１３０−１、．．．、１３０−Ｎに結合できる。ホストインタフェースコネクタ１０３は、メモリシステム１２０と、ホストシステム１０２など別の装置との間での情報の交換に使用できる。ホストシステム１０２は、メモリアクセス装置（例えば、プロセッサ）を含むことができる。当業者には、「プロセッサ」は、並列処理システム、多数のコプロセッサなど、１つまたは複数のプロセッサを意味し得ることが理解されるであろう。ホストシステムの例には、ラップトップコンピュータ、パーソナルコンピュータ、デジタルカメラ、デジタル録音再生装置、携帯電話、ＰＤＡ、メモリカード読み取り装置、インタフェースハブ、および同様のものがある。１つまたは複数の実施形態について、ホストインタフェースコネクタ１０３は、標準インタフェースの形式をとり得る。例えば、メモリシステム１２０が、コンピューティングシステム１００でデータ保存用に使用される場合、ホストインタフェースコネクタ１０３は、数あるコネクタおよびインタフェースの中で、シリアルアドバンストテクノロジーアタッチメント（ＳＡＴＡ）、周辺コンポーネント相互接続エクスプレス（ＰＣＩｅ）、またはユニバーサルシリアルバス（ＵＳＢ）であり得る。しかし、通常、ホストインタフェースコネクタ１０３は、メモリシステム１２０と、そのホストインタフェースコネクタ１０３に対して互換性のあるレセプタを備えたホストシステム１０２との間の、通過制御（ｐａｓｓｉｎｇ  ｃｏｎｔｒｏｌ）、アドレス、データ、および他の信号のためのインタフェースを提供できる。
【００１３】
メモリコントローラ１０１は、数ある操作の中で、データの読み取り、書き込み、および消去のために、ソリッドステートメモリ装置１３０−１、．．．、１３０−Ｎと通信できる。メモリコントローラ１０１は、１つまたは複数の集積回路および／またはディスクリートコンポーネントであり得る回路を備えることができる。１つまたは複数の実施形態について、メモリコントローラ１０１内の回路は、ソリッドステートメモリ装置１３０−１、．．．、１３０−Ｎ全体に渡るアクセスを制御するための制御回路、およびホストシステム１０２とメモリシステム１２０との間の変換層を提供するための回路を含むことができる。このため、メモリコントローラは、適切な時に適切な入出力接続で適切な信号を受信するために、ソリッドステートメモリ装置１３０−１、．．．、１３０−Ｎの入出力接続（図１に図示せず）を選択的に結合できる。同様に、ホストシステム１０２とメモリシステム１２０との間の通信プロトコルは、ソリッドステートメモリ装置１３０−１、．．．、１３０−Ｎのアクセスに必要なプロトコルとは異なる可能性がある。メモリコントローラ１０１は、その後、ホストから受信したコマンドを、ソリッドステートメモリ装置１３０−１、．．．、１３０−Ｎへの所望のアクセスを実現するための適切なコマンドに変換できる。
【００１４】
ソリッドステートメモリ装置１３０−１、．．．、１３０−Ｎは、１つまたは複数のメモリセルのアレイ（例えば、不揮発性メモリセル）を含むことができる。そのアレイは、例えば、ＮＡＮＤ構造を持つフラッシュアレイでもよい。ＮＡＮＤ構造では、「行」のメモリセルの制御ゲートは、ワード線に結合することができ、他方、メモリセルは、選択ゲートソーストランジスタと選択ゲートドレイントランジスタとの間の「ストリング」内のドレインへのソースに順番に結合され得る。ストリングは、選択ゲートドレイントランジスタによって、ビット線に接続され得る。「行」および「ストリング」という用語の使用は、メモリセルの線状配列または直交配列のいずれも意味しない。当業者には理解されるであろうように、メモリセルのビット線およびソース線への接続方法は、そのアレイがＮＡＮＤ構造、ＮＯＲ構造、または他のメモリアレイ構造のいずれであるかによって決まる。
【００１５】
図１の実施形態は、本開示の実施形態を分かり難くしないために例示していない追加の回路を含むことができる。例えば、メモリシステム１２０は、入出力回路を経て、入出力接続経由で提供されるアドレス信号をラッチするためのアドレス回路を含むことができる。アドレス信号は、ソリッドステートメモリ装置１３０−１、．．．、１３０−Ｎにアクセスするため、行デコーダおよび列デコーダによって受信および復号される。当業者には、アドレス入力接続数は、ソリッドステートメモリ装置１３０−１、．．．、１３０−Ｎの密度および構造によって決まることが理解されるであろう。
【００１６】
図２は、本開示の１つまたは複数の実施形態に従ったメモリコントローラ２０１の機能ブロック図である。メモリコントローラ２０１は、図１に示すメモリコントローラ１０１に類似し得る。メモリコントローラ２０１は、ホストシステムとインタフェースを取ることができる（例えば、図１に示すホストインタフェースコネクタ１０３を経由して）ホストインタフェース（Ｉ／Ｆ）２０４を含む。ホストＩ／Ｆは、メモリコントローラ２０１の制御回路２０８およびコントローラメモリ２１０と結合している。制御回路２０８は、コントローラメモリ２１０および比較器２１４と結合できる。コントローラメモリ２１０は、加算器２１２と結合できる。比較器２１４および加算器２１２は、連結でき、さらに、記憶装置インタフェース（Ｉ／Ｆ）２０６にと連結できる。メモリコントローラは、記憶装置Ｉ／Ｆ  ２０６を経由して、記憶装置（例えば、図１に示す記憶装置１３２）と結合できる。
【００１７】
メモリコントローラ２０１は、本開示の実施形態を分かり難くしないために、本明細書では示していない追加のコンポーネントを含むことができる。さらに、メモリコントローラ２０１は、本開示の範囲から逸脱することなく、例示したコンポーネントの異なる構成を持ち得る。メモリコントローラ２０１は、集積回路の形式を取ることができ（この場合、図２に示す各コンポーネントは、その集積回路の機能性を表す）、または、メモリコントローラ２０１は、ディスクリートコンポーネントを組み合わせたものでもよい。
【００１８】
ホストＩ／Ｆ  ２０４は、ホストシステム（例えば、図１のホストシステム１０２）との間で、信号の送受信を行うことができる。記憶装置Ｉ／Ｆ  ２０６は、記憶装置（例えば、図１の記憶装置１３２）との間で、信号の送受信を行うことができる。制御回路２０８は、ホストＩ／Ｆ  ２０４を経由してホストシステムから提供された信号を復号することができる。これらの信号は、記憶装置に対する様々な、読み取り、書き込み、消去、または他の操作信号を含むことができる。コントローラメモリ２１０は、コントローラ２０１にローカルなメモリであり、ＤＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュなどの揮発性または不揮発性いずれのメモリでもよい。コントローラメモリ２１０は、本明細書に記載のとおり、１つまたは複数の論理アドレスオフセットを格納するように構成され得る。当業者には、追加の回路および制御信号が提供可能であり、また、図を簡単にするために図２の装置の詳細が略されていることが理解されるであろう。
【００１９】
比較器２１４は、ホスト論理アドレスを、記憶装置上のフォーマット済みファイルシステムの多数の領域に対応する論理アドレス範囲と比較するように構成された１つまたは複数の論理アドレス範囲比較器を含むことができる。例えば、比較器２１４は、本明細書で詳述するとおり、ホスト論理アドレスが、ユーザーデータ領域に対応する論理アドレスの範囲内にあるかどうかを判定するために使用できる。理解されるであろうように、ホスト論理アドレスは、ホスト論理ブロックアドレス（ＬＢＡ）であってもよく、これについては、本明細書で詳述する。参照しやすいように、本明細書では「ホストＬＢＡ」という用語が使用されるが、本開示の１つまたは複数の実施形態での他の種類のホスト論理アドレスの使用を除外しない。
【００２０】
加算器２１２は、オフセット（例えば、コントローラメモリ２１０に格納されているオフセット）を、ホストＩ／Ｆ  ２０４を経由して受信された論理アドレスに加算するよう構成され得る。１つまたは複数の実施形態では、加算器２１２は、ホストＬＢＡが記憶装置Ｉ／Ｆ  ２０６を経由して送信される前に、オフセットをホストＬＢＡに加算できる。
【００２１】
コントローラ２０１は、制御回路２０８が論理アドレスオフセットを計算して、そのオフセットをコントローラメモリ２１０に格納できるように、構成され得る。例えば、１つまたは複数の論理アドレスオフセットは、制御回路２０８がフォーマット操作を検出するまで、メモリ内に格納され得る。コントローラ２０１は、ホストＩ／Ｆ  ２０４からホストＬＢＡを受信できる（例えば、ホストシステムが、そのホストＬＢＡに関連する記憶装置の一部へアクセスしようとするのに応じて）。比較器２１４が、特定の範囲内のアドレス（例えば、ファイルシステムのユーザーデータ領域に対応する範囲）でホストＬＢＡを検出すると、加算器２１２は、そのオフセットをホストＬＢＡに加算し、そのオフセットされたホストＬＢＡを記憶装置Ｉ／Ｆ  ２０６を経由して渡すことができる。コントローラ２０１によって実行されるかかる操作は、ホストシステムに対して透過的な可能性があり、本明細書で詳述する。
【００２２】
１つまたは複数の実施形態では、記憶装置に関連する様々な物理的なパラメータ（例えば、検査されたフォーマット情報に従って）は、コントローラメモリ２１０に格納することができ、そして、制御回路２０８に伝達され得る。物理的パラメータの例には、数あるパラメータの中で、記憶装置のサイズ、ページサイズ、ブロックサイズ、ファイルシステムのタイプ、媒体のタイプ、およびメモリセルのタイプが含まれる。
【００２３】
図３は、本開示の１つまたは複数の実施形態に従った、メモリ装置３３０の一部の概略図である。図３には示していないが、当業者には、メモリ装置３３０は、その操作に関連する様々な周辺回路とともに、半導体ダイ上に配置され得ることが理解されるであろう。メモリ装置３３０は、１つまたは複数のメモリセルのアレイを含むことができる。
【００２４】
図３に示すとおり、メモリ装置３３０は、メモリセルの多数の物理ブロック３４０−０（ブロック０）、３４０−１（ブロック１）、．．．、３４０−Ｍ（ブロックＭ）を含むことができる。図３に示す例では、指示子「Ｍ」は、メモリ装置３３０が多数の物理ブロックを含み得ることを示すために使用される。一例として、メモリ装置３３０の物理ブロック数は、１２８ブロック、４，０９６ブロック、または３２，７６８ブロックのことがあるが、実施形態は、メモリ装置内の特定数または複数の物理ブロックに限定されない。また、実施形態は、アレイで使用されるメモリのタイプ（例えば、不揮発性、揮発性など）に限定されない。図３に示す実施形態では、メモリ装置３３０は、例えば、各物理ブロック３４０−０、３４０−１、．．．、３４０−Ｍ内のメモリセルが一つの単位として消去できるような（例えば、各物理ブロック内のセルが実質的に同時に消去できるような）、ＮＡＮＤフラッシュメモリ装置３３０にできる。例えば、各物理ブロック内のセルは、単一の消去操作で同時に消去することができる。
【００２５】
指示子「Ｒ」は、物理ブロック（例えば、３４０−０、３４０−１、．．．、３４０−Ｍ）が、多数の行を含み得ることを示すために使用される。いくつかの実施形態では、各物理ブロック内の行数（例えば、ワード線）が３２のことがあるが、実施形態は、物理ブロック当たりの行３５０−０、３５０−１、．．．、３５０−Ｒが特定数に限定されない。当業者には、各行３５０−０、３５０−１、．．．、３５０−Ｒが、１つまたは複数のページ（例えば、偶数ページおよび奇数ページ）を含み得ることが理解されるであろう。物理ページは、書き込みおよび／または読み取りの単位（例えば、一緒に、またはメモリセルの機能グループとして、書き込みおよび／読み取りが行われる多数のセル）を指す。従って、偶数ページおよび奇数ページは、別個の書き込みおよび／または読み取り操作で書き込みおよび／または読み取りを行うことができる。マルチレベルセル（ＭＬＣ）を含む実施形態について、物理ページは、データの上位ページおよび下位ページに論理的に分割され得る。例えば、１つのメモリセルは、１つまたは複数のビットをデータの上位ページに提供し、１つまたは複数のビットをデータの下位ページに提供することができる。従って、論理上位ページおよび論理下位ページはどちらも同じ物理ページの一部であるため、データの上位ページおよび下位ページは、１つの書き込みおよび／または読み取り操作の一部として、書き込みおよび／または読み取りを行うことができる。図を簡略化するため、図３の各行３５０−０、３５０−１、．．．、３５０−Ｒは、１つの物理および論理ページのみを含むが、実施形態はそのように限定されない。
【００２６】
本開示の１つまたは複数の実施形態において、かつ、図３に示すとおり、ページは、多数のセクター３５２−０、３５２−１、．．．、３５２−Ｓにデータを格納することができる。指示子「Ｓ」は、ページが多数のセクターを含み得ることを示すために使用される。各セクター３５２−０、３５２−１、．．．、３５２−Ｓは、システムおよび／またはユーザーデータを格納することができ、さらに、エラー訂正符号（ＥＣＣ）情報、および論理ブロックアドレス（ＬＢＡ）情報などの、オーバーヘッド情報を含むことができる。当業者には理解されるであろうように、論理ブロックアドレス指定は、ホストによって情報のセクターを識別するために使用され得る方式（例えば、各セクターが一意のＬＢＡに対応できる）である。１つまたは複数の実施形態では、セクターは、記憶ボリュームの最小アドレス可能部分である。一例として、データのセクターは、例えば、２５６バイト、５１２バイト、１，０２４バイトなど、多数のバイトのデータであり得る。例えば、ＳＳＤが１ページに４、８、または１６セクターを持つことができ（ここで、１セクターは５１２バイト）、そして、ＳＤＤが物理ブロック当たり１２８、２５６、または５１２ページを持ち得る場合、従って、物理ブロックサイズは、１３１０７２バイト、２６２１４４バイト、および５２４２８８バイトである。実施形態は、これらの例に限定されない。
【００２７】
物理ブロック３４０−０、３４０−１、．．．、３４０−Ｍ、行３５０−０、３５０−１、．．．、３５０−Ｒ、セクター３５２−０、３５２−１、．．．、３５２−Ｓ、およびページに関する他の構成が可能であることに留意されたい。例えば、物理ブロック３４０−０、３４０−１、．．．、３４０−Ｍの行３５０−０、３５０−１、．．．、３５０−Ｒの各々は、例えば、５１２バイトほどのデータを含める単一セクターに対応するデータを格納できる。
【００２８】
図４は、本開示の１つまたは複数の実施形態に従い、ファイルシステム４６０でフォーマットされた記憶装置のブロック図を示す。本明細書で説明するとおり、フォーマットされた記憶装置は、記憶ボリュームを提供できる。図４に示す実施形態は、ファイルアロケーションテーブル（ＦＡＴ）ファイルシステムを含むが、本開示の実施形態は、特定のタイプのファイルシステムに限定されない。例えば、本開示の１つまたは複数の実施形態は、ニューテクノロジーファイルシステム（ＮＴＦＳ）、ＵＮＩＸファイルシステム（ＵＦＳ）、ユニバーサルディスクフォーマット（ＵＤＦ）など、他のファイルシステムとともに使用できる。１つまたは複数の実施形態では、ファイルシステム４６０でフォーマットされた記憶装置は、システムデータ領域４６１およびユーザーデータ領域４６２を含むことができる。システムデータ領域４６１は、ファイルシステム４６０の構成および操作に関連するフォーマット情報（例えば、「メタデータ」４６５）を含むことができる。図４に示す実施形態では、システムデータ領域４６１は、パーティションブートレコード４６４、予約領域４６６、第１ファイルアロケーションテーブル４６８、第２ファイルアロケーションテーブル４７０、およびルートディレクトリ４７２など、多数のセクションを含む。
【００２９】
パーティションブートレコード（ＰＢＲ）４６４は、ファイルシステム４６０の第１領域として図示されている。ＰＢＲ  ４６４は、マスターブートレコードおよびボリュームブートレコードの一方または両方を含むことができる。例えば、ＰＢＲ  ４６４は、オペレーティングシステム、または記憶ボリュームの他の領域に格納されている他のプログラムをブートするためのコードを含むことができる。ＰＢＲ  ４６４は、フォーマット情報（例えば、ファイルシステムメタデータ４６５）を含むことができる。フォーマット情報（例えば、ファイルシステムメタデータ４６５）は、数あるパラメータの中で、メモリサイズ、ページサイズ、ブロックサイズ、ファイルシステムのタイプ、媒体の種類、メモリセルのタイプ、およびファイルシステムの多数のセクションのサイズおよび／または開始アドレスなど、物理パラメータを含むことができる。メタデータ４６５は、ＰＢＲ  ４６４の内部にあるものとして図示されているが、実施形態はそのように限定されない。例えば、メタデータ４６５は、システムデータ領域４６１の１つまたは複数の他のセクションに配置することができる。ファイルシステムメタデータ４６５は、そのメタデータを含むファイルシステムのタイプを識別できるようにする情報を含んでもよい。
【００３０】
予約領域４６６は、通常、空のままである。予約領域４６６を使用する可能性のあるいくつかのアプリケーションには、マルチブートローダー、セキュリティアプリケーションなどがある。
【００３１】
ファイルアロケーションテーブル４６８および４７０は、ユーザーデータ領域４６２のアドレス指定された各部分にマップするエントリのリストを含むことができる。かかるアドレス指定された部分は、割り当て単位（例えば、クラスタ）として参照可能である。コンピューティング装置用のいくつかのオペレーティングシステムは、ハードディスクドライブ上の記憶ボリュームで動作するように設計されている可能性があるので、かかるオペレーティングシステムは、クラスタを割り当て単位として使用する可能性があり、このとき、クラスタは、そのディスク上の多数の連続するトラックセクターである。しかし、クラスタをソリッドステートメモリ装置の割り当て単位として使用する場合、クラスタの各部分（例えば、多数のセクター）が連続している必要はない。ファイルアロケーションテーブル４６８および４７０は、ユーザーデータ領域４６２のどの部分がデータを格納しているか、空いているか、おそらく使用不能であるか、および記憶装置内のどこにデータが格納されているかに関する情報を含むことができる。様々な実施形態では、２つのファイルアロケーションテーブルは、一方が、他のファイルアロケーションテーブルの障害の可能性に備えてバックアップとして機能できるように、重複情報を格納することができる（例えば、ファイルアロケーションテーブル２をファイルアロケーションテーブル１の重複コピーにできる）。
【００３２】
ルートディレクトリ４７２は、名前、タイプ、作成情報、サイズ、ファイルおよび／またはディレクトリの第１部分のアドレス、ならびに他の情報など、ファイルおよび／またはディレクトリ情報を含むことができる。図４に示すように、専用のルートディレクトリ４７２は、通常、ＦＡＴ１２およびＦＡＴ１６ファイルシステムで使用される可能性がある。例えばＦＡＴ３２など、他のファイルシステムは、ルートディレクトリ４７２に関連する情報を、ユーザーデータ領域４６２に格納できる。
【００３３】
図４に示す実施形態で、ユーザーデータは、図１に示すホストシステム１０２などの、ホストシステムから受信したデータの可能性がある。ユーザーデータは、ユーザーデータ領域４６２に対して、書き込み、読み取り、および消去を何度も行うことができる。１つまたは複数の実施形態では、システムデータ領域４６１の終了４７６および／またはユーザーデータ領域４６２の開始４７６は、論理アドレスによって相互に隣接できる。例えば、システムデータ領域４６１の終了論理アドレスが００２０の場合、ユーザーデータ領域４６２の開始論理アドレスは００２１である。従って、オフセット４７４は、図４に示すように、ユーザーデータ領域４６２の内部であり得る。オフセット４７４については、本明細書で詳述する。
【００３４】
データ格納用に使用する前に、記憶装置は、その記憶装置の編成、およびホストに対する抽象層の提供の両方を行うデータ構造がインストールされるようにフォーマットされ得る。フォーマットによって提供される抽象層は、種々の容量の装置、種々の媒体のタイプ、および種々のインタフェースのタイプが、ホストに対して、記憶装置にアクセスする共通の方法を提供できるようにする。記憶装置のフォーマットには、ファイルシステムメタデータ４６５を含めて、ＰＢＲデータの書き込みを含むことができ、この場合、ＰＢＲ  ４６４は、システムデータおよびユーザーデータ用に記憶装置内にスペースを割り当てることができる。
【００３５】
メモリコントローラ（例えば、図１のメモリコントローラ１０１）は、記憶装置のフォーマット操作を検出して、その記憶装置がフォーマットされたファイルシステム４６０に関連するメタデータ４６５を検査できる。その後、フォーマット操作の検出に応じて、メモリコントローラは、ファイルシステムメタデータ４６５に従い、記憶装置のユーザーデータ領域４６２の開始論理アドレス４７６を決定できる。コントローラは、論理アドレスオフセット４７４を計算でき、これは、ユーザーデータ領域４６２の開始論理アドレスに適用される場合、メモリセルの１つまたは複数の物理ページ（例えば、物理ページ境界）、およびメモリセルの物理ブロック（例えば、物理ブロック境界）の先頭に一致する。
１つまたは複数の実施形態では、論理アドレスオフセット４７４は、システムデータ領域４６１の終了４７６と、それに続くメモリセルの１つまたは複数の物理ページおよびメモリセルの物理ブロックの始めとの間の論理アドレスの差に等しい。例えば、システムデータ領域４６１に関連付けられている最後の論理アドレスが００３０であって、次のブロックの開始に関連付けられている論理アドレスが００３２である場合、論理アドレスオフセット４７４は０００２である。計算された論理アドレスオフセット４７４は、後で使うために、コントローラのメモリ（例えば、不揮発性メモリ）に格納することができる。
【００３６】
コントローラは、論理アドレスオフセット４７４を、ユーザーデータ領域４６２の開始アドレスに等しいか、またはそれより大きいホストＬＢＡに適用できる。１つまたは複数の実施形態では、コントローラは、論理アドレスオフセット４７４を、ユーザーデータ領域４６２の開始アドレスに等しいか、またはそれより大きい全てのホストＬＢＡに適用できる。そのため、ホストが、ユーザーデータ領域４６２内でアクセス（例えば、書き込み、読み取り、または消去）を試みるアドレスは、オフセットをそれに適用させ得る。ホストは、適用されているオフセットを知らない可能性があり、それに応じて動作する可能性がある。しかし、コントローラは、ユーザーデータ領域４６２の実効開始が、メモリセルの１つまたは複数の物理ページおよびメモリセルの物理ブロックの開始（例えば、ページおよび／またはブロック境界）にオフセットされるよう、そのオフセットをユーザーデータ論理アドレスに適用できる。論理アドレスオフセット４７４のホストＬＢＡへの適用には、ユーザーデータ領域４６２内でホストによりアクセスされる論理アドレスへのオフセット４７４の加算を含み得る。
【００３７】
１つまたは複数の実施形態で、コントローラは、オフセット４７４を計算するために、ページサイズ、ブロックサイズ、および／またはファイルシステムメタデータ４６５を使用できる。コントローラは、オフセット４７４を計算するために、記憶装置の編成に関する知識、特に、書き込みまたは消去サイズ、ページ内のセクター数、ブロック内のページ数、メタデータ４６５、ファイルシステム４６０のセクションの位置、およびファイルシステム４６０のタイプを利用できる。オフセット４７４を使用すると、ユーザーデータ４６２セクションの開始を、ページおよび／またはブロック境界に位置合わせすることができる。１つまたは複数の実施形態では、本明細書で説明するとおり、オフセットは、ファイルシステム４６０の他のセクション（例えば、ＰＢＲ  ４６４、予約セクション４６６、ＦＡＴ１  ４６８、ＦＡＴ２  ４７０、ルートディレクトリ４７２など）用に計算することができる。このため、ファイルシステム４６０の１つまたは複数のセクションの開始は、ページおよび／またはブロック境界に位置合わせすることができる。
【００３８】
ユーザーデータ領域４６２は、「割り当て単位」に定量化することができ、ここでは、多数の論理ブロックが、割り当て単位と呼ばれる、単一の割り当てエントリによって、表されるか、または割り当てられる。割り当て単位は、単一ファイルを格納するために割り当て可能な最小量のスペースである。割り当て単位は、１つまたは複数のセクターを含むことができる。例えば、ＦＡＴタイプのファイルシステムは、割り当て単位を、小規模容量装置向けの論理ブロックマッピングに対する１：１割り当て単位から始まって、割り当て単位当たり６４セクター以上まで、２の増加する累乗で５１２バイトセクターのグループに編成する。各セクターは一意のＬＢＡを有するため、割り当て単位用のアドレス指定は、係数を採用できる。例えば、割り当て単位当たり６４セクターの場合、ホストによるアクセスは、６４の係数を持つアドレスで生じる。本開示の１つまたは複数の実施形態によれば、論理アドレスオフセット４７４は、ユーザーデータの開始アドレス（例えば、ユーザーデータ４７８の開始）を、ファイルシステム４６０の割り当て単位境界に位置合わせするために使用され得る。１つまたは複数の実施形態では、割り当て単位境界は、クラスタ境界のことがある。
【００３９】
メモリシステムの物理セクターは、論理セクターに一致することができ、ユーザーデータに加えて、エラー訂正符号（ＥＣＣ）情報、および論理ブロックアドレス（ＬＢＡ）情報などの、オーバーヘッド情報を含むことができる。当業者には理解されるであろうように、論理ブロックアドレス指定は、情報の論理セクターを識別するためにホストによって良く使用される方式である。一例として、各物理セクターは、数あるバイト数の中で、例えば、２５６バイト、５１２バイト、または１，０２４バイトなど、多数のバイトのデータを表す情報を格納できる。しかし、本開示の実施形態は、物理セクターに格納されるか、または論理セクターに関連付けられる特定バイト数のデータに限定されない。
【００４０】
本開示の１つまたは複数の実施形態に従って、論理アドレスオフセットをユーザーデータ領域内のホストＬＢＡに適用すると、ある状況において、データの書き込みおよび／または消去に関連する操作のオーバーヘッドの量を低減できる。書き込みに関して、オーバーヘッドとは、書き込みコマンドによってアドレス指定されるメモリセルに書き込まれるデータに加えて、コピーまたは移動される多数の追加のメモリセルに関連するデータのことをいう。消去に関して、オーバーヘッドとは、消去する意図のないデータを保持するために、コピーまたは移動される多数のメモリセルに関連するデータのことをいう。例えば、前述したいくつかの事例のように、システムデータ領域４６１の終了４７６が、ユーザーデータの開始４７８と一致する場合（例えば、論理アドレスオフセットが使用されない場合）、システムデータおよびユーザーデータは、同一のページおよび／またはブロックに書き込まれる可能性がある。かかるブロックでは、ブロック内のシステムデータまたはユーザーデータのいずれかに対する消去操作は、システムおよびユーザーデータの両方の消去を含むことがある。かかるページでは、システムまたはユーザーデータのいずれかに対する書込み操作は、書き込まれていないシステムまたはユーザーデータの移動またはコピーを含むことがある。本開示の１つまたは複数の実施形態に従ったオーバーヘッドの削減は、境界近くのシステムデータまたはユーザーデータ上で実行される書き込みおよび／または消去操作が、対象とするシステムまたはユーザーデータのみに影響するように、システムデータとユーザーデータとの間へのページおよび／またはブロック境界分離の提供に、少なくとも一部は基づく。
【００４１】
１つまたは複数の実施形態では、ユーザーデータ領域４６２をアクセスするホストＬＢＡに論理アドレスオフセットを適用すると、記憶装置（たとえば、図１の記憶装置１３２）の摩耗率を制御するように実施され得るウェアレベリングを補完できる。様々な実施形態では、ウェアレベリングは、ブロックを再使用するために移動される有効なブロックの量を最小限にするダイナミックウェアレベリングを含むことができる。ダイナミックウェアレベリングは、多数の無効なページを持つブロック（すなわち、異なるページに書き戻されているか、かつ／または無効なページ上にもう必要のないデータのあるページ）が、ブロックを消去することにより再使用される、ガーベジコレクションと呼ばれる技術を含むことができる。スタティックウェアレベリングは、ブロックの寿命を延長するために高い消去カウントを有するブロックへの静的データの書き込みを含む。当業者には理解されるであろうように、ソリッドステートメモリは、多数の書き込みおよび／または消去サイクルの後に障害を経験する可能性があるため、ウェアレベリングは、ソリッドステートメモリの寿命を延ばすことができる。本明細書で説明するとおり、ユーザーデータ領域４６２をアクセスするホストＬＢＡへの論理アドレスオフセットの適用は、オーバーヘッドの削減に役立ち、それによって、システムデータ領域４６１の終了４７６およびユーザーデータの開始４７８近辺での書き込みおよび／または消去操作の総数を削減する。
【００４２】
１つまたは複数の実施形態で、コントローラは、フォーマット操作中および／またはフォーマット操作に応じて、かつ、任意のユーザーデータがユーザーデータ領域４６２に書き込まれる前に、メタデータ４６５の検査、ユーザーデータ領域４６２の開始論理アドレスの決定、および論理アドレスオフセット４７４の計算を行うことができる。かかる実施形態は、論理アドレスオフセット４７４が計算された前にユーザーデータがユーザーデータ領域４６２に書き込まれたような場合に、論理アドレスオフセット４７４が、ホストＬＢＡに適用されるのを防止するのに役立ち得る。かかる状況では、論理アドレスオフセット４７４を計算して、それをホストＬＢＡに適用すると、オフセットの計算前に書き込まれたユーザーデータの回復は、不可能になり得る。つまり、以前に書き込まれたユーザーデータにアクセスしようとしているホストＬＢＡは、それにオフセットを適用させ、以前に書き込まれたユーザーデータの開始論理アドレスとは異なる開始論理アドレスを生じている可能性がある。例えば、以前に書き込まれたユーザーデータが論理アドレス００５０から始まっていて、その後、００８０の論理アドレスオフセットが計算された場合、将来、ホストシステムで、以前に００５０に書き込まれたユーザーデータにアクセスしようとすると、オフセットの適用により、論理アドレス００５８にアクセスすることになるであろう。
【００４３】
かかる状況が生じる可能性のある事態の一例は、フォーマット操作がモニターされていないか、または検出されず、かつ、論理アドレスオフセットが電源投入時に計算される記憶装置での例である。かかる一例では、その装置は、新しいフォーマットが適用されているのに、電源投入時に計算された論理アドレスオフセットを使用するであろう。フォーマット操作を動的にモニタリングおよび検出することなく、次の電源投入サイクルで、その装置は新しい論理アドレスオフセットを計算し、そして、その新しく計算されたオフセットが、フォーマット操作中に有効であった論理アドレスオフセットと異なると、ファイルシステムは破損することになる。
【００４４】
本開示の１つまたは複数の実施形態に従って、かかる状況を防止するため、論理アドレスオフセットは、フォーマット操作の検出後に、計算されて適用される。同様に、本開示の１つまたは複数の実施形態に従って、記憶装置は、フォーマット操作の検出前に論理アドレスオフセット４７４を使用することなく、動作可能である。かかる実施形態は、論理アドレスオフセットを使用することなく以前にフォーマットされて制御されている記憶装置を、本開示に従ってコントローラが操作するような状況で、特に役立つ可能性がある。
【００４５】
１つまたは複数の実施形態で、メモリコントローラは、記憶装置と結合されると、ユーザーデータが記憶装置のユーザーデータ領域４６２に書き込まれているかどうかを検出するよう構成され得る。かかる実施形態では、コントローラは、ユーザーデータが以前ユーザーデータ領域４６２に書き込まれていたことを検出すると、デフォルトの論理アドレスオフセットおよび／または既存の保存されている論理アドレスオフセット４７４を使用して、記憶装置を操作するように構成され得る。例えば、デフォルトの論理アドレスオフセットは、ホストＬＢＡに適用されたように、デフォルトの論理アドレスオフセットが、ホストＬＢＡを変更しないように、０でもよい。かかる実施形態は、数ある恩恵の中で、前述のように、データアクセスエラーの防止に有益となり得る。
【００４６】
論理アドレスオフセット４７４は、コントローラのメモリ（例えば、不揮発性メモリ）に、例えば、図２のコントローラ２０１のメモリ２１０に格納することができる。従って、同一の論理アドレスオフセット４７４は、次のフォーマット操作が検出されるまで、ユーザーデータ領域４６２内でホストによりアクセスされる論理アドレスに適用できる。本明細書に記載のとおり、かかる実施形態は、データが正しくアクセスされることを確実にするのに役立ち得る。例えば、論理アドレスオフセット４７４が、ユーザーデータ領域４６２内でホストＬＢＡ用に使用される場合、同一のオフセットが、その記憶装置の操作全体にわたり、ファイルシステム４６０に対して使用できる。記憶装置の記憶ボリュームを再フォーマットすることなく、異なるオフセットが使用された場合、ホストシステムはそのオフセットを知らない可能性があるため、データアクセスエラーが生じる可能性があるだろう。
【００４７】
１つまたは複数の実施形態では、システムデータ領域４６１の多数のセクション（例えば、ＰＢＲ  ４６４、予約領域４６６、ＦＴＡ１  ４６８、ＦＴＡ２  ４７０、および／またはルートディレクトリ４７２など）は、物理ページおよび／または物理ブロック境界に位置合わせすることができる。そのため、図４には示していないが、システムデータ領域４６１の多数のセクションに対する多数の追加の論理アドレスオフセットは、ファイルシステム４６０のメタデータ４６５を利用して、フォーマット操作を検出した後、コントローラによって計算できる。本明細書では、「追加の」論理アドレスオフセットは、ユーザーデータ領域４６２用の論理アドレスオフセット４７４以外の論理アドレスオフセットのことである。コントローラによって計算される追加の論理アドレスオフセットは、ユーザーデータ領域４６２用の論理アドレスオフセット４７４と同様に、コントローラのメモリ（例えば、不揮発性メモリ）に格納できる。すなわち、１つまたは複数の実施形態で、コントローラメモリは、２つ以上の論理アドレスオフセットを格納できる。コントローラは、システムデータ領域４６１の多数のセクションの開始アドレスを決定できる。システムデータ領域４６１の特定のセクションに対する追加の論理アドレスオフセットは、その特定のセクションに関連するデータが、物理ページおよび／または物理ブロック境界で開始されるよう、その特定のセクションにアクセスしているホストＬＢＡに適用され得る。例えば、ＦＡＴ１  ４６８用の論理アドレスオフセットは、コントローラによって、ＦＡＴ１  ４６８内のホストＬＢＡに適用され得る。
【００４８】
１つまたは複数の実施形態で、コントローラ内の制御回路（コントローラ１０１など）は、例えば、データが特定の方法で記憶装置に書き込まれるよう、記憶装置にコマンドを伝達できる。コントローラ内の制御回路からのコマンドは、ホストＬＢＡへのオフセットの適用を計算することにより、特定のコマンドに関連するデータに対して、ページの先頭にデータを書き込むように構成され得る。また、１つまたは複数の実施形態で、コントローラ内の制御回路からのコマンドは、ホストＬＢＡへのオフセットの適用を計算することにより、データを消去済みブロックに書き込む際に、データを物理ブロックの最初のページ（例えば、物理ブロック境界）に書き込むように構成され得る。１つまたは複数の実施形態で、コントローラからのコマンドは、ホストＬＢＡへのオフセットの適用を計算することにより、データをメモリアレイのページの第１メモリセル（例えば、ページ境界）に書き込むことができ、かつ／またはデータを空の（例えば、消去済みの）ページの先頭に書き込むことができる。かかる実施形態は、ホストＬＢＡが、物理ページおよび／または物理ブロックの先頭から開始するためにオフセットされ、これは、以前のいくつかの事例で生じる可能性があるように、先行する物理ページおよび／または物理ブロックで、セクターの移動またはコピーを必要としないため、消去および書き戻しをするデータのインスタンスを削減できる。
【００４９】
１つまたは複数の実施形態で、多数のブロックは、メモリアレイ内でのデータの書き込みに関連する書き込み増幅（ｗｒｉｔｅ  ａｍｐｌｉｆｉｃａｔｉｏｎ）の量を削減するために、予備のブロックとして指定され得る。予備のブロックは、ホスト論理アドレスにマップされない可能性があり、それ故、ホストシステムによってアクセス可能でないことがある。コントローラは、データ（例えば、異なるブロックから更新されたデータ）を、その異なるブロックを消去する前に、予備のブロックに書き込むことができる。異なるブロックが消去されると、それは新しい予備のブロックになることができる。例えば、装置が１００，０００のＬＢＡを有する場合、装置は、１００，０００未満のＬＢＡをホストに報告して、その差を内部使用（例えば、コントローラによる内部使用）のために利用する可能性がある。書き込み増幅は、ソリッドステートメモリアレイにデータを書き込む際に発生するプロセスである。メモリアレイに無作為にデータを書き込む際に、メモリアレイは、そのアレイ内の空き領域を走査する。メモリアレイ内の空き領域は、プログラムされていないメモリセルの個々のセル、ページ、および／またはブロックの可能性がある。データを書き込むための十分な空き領域がある場合、そのデータは、メモリアレイの空き領域に書き込まれる。１つの位置に十分な空き領域がない場合、メモリアレイ内のデータは、そのメモリアレイに既に存在しているデータの消去、移動、および書き戻しにより、新しい位置に再配置され、そのメモリアレイに書き込む予定の新しいデータのために空き領域が残される。メモリアレイ内にある古いデータの再配置は、新しいデータを書き込むためにメモリアレイが書き込まなければならない量が、メモリアレイ内の空き領域の量、およびそのメモリアレイに書き込まれる新しいデータのサイズに基づいて増幅されるため、書き込み増幅と呼ばれ得る。書き込み増幅は、空き領域として指定されているメモリアレイ上の空き容量（すなわち、静的データが書き込まれない領域）を増加することによって削減することができ、すると、再配置が必要なデータが減って、書き込みが必要なデータ量の増幅を減少できる。
【００５０】
１つまたは複数の実施形態では、オフセットの計算およびホストＬＢＡへの適用は、書き込み増幅を削減するために使用でき、書き込み増幅を制御する必要のある指定された空き領域の量も所望のレベルまで削減できる。オフセットをホストＬＢＡに適用すると、物理ブロックおよびページの境界から開始する効率的な方法で、メモリアレイにデータが一杯にできるため、フォーマットされたメモリアレイ内のデータ列は、物理ブロックおよび／またはページの途中で始まることがなく、それ故、新しいデータ用にメモリアレイ内の領域を空けるために、データ列を別の位置に書き戻す必要が生じる可能性が減少する。
【００５１】
１つまたは複数の実施形態では、記憶装置に書き込まれるシステムデータおよびユーザーデータは、その記憶装置の物理構成で位置合わせすることができる。すなわち、消去済みブロックに書き込む際に、データは物理ブロックの先頭に書き込まれ、かつ、消去済みページに書き込む際には、データは物理ページの先頭に書き込まれる。また、ある実施形態では、データは、一部書き込まれたページに書き込まれることはなく、そのデータは、次の利用可能な消去済みページに書き込まれる。
【００５２】
（結論）
本開示は、論理アドレスオフセットのための、方法、装置、およびシステムを含む。一方法の実施形態は、記憶装置のフォーマット操作の検出を含む。その後、フォーマット操作の検出に応じて、その方法は、記憶装置上のフォーマット情報の検査、論理アドレスオフセットの計算、およびそのオフセットのホスト論理アドレスへの適用を含む。
【００５３】
一つの要素が、別の要素「の上にある」、「に接続されている」または「に結合されている」として言及される場合、それは、直接、他の要素の上にあるか、他の要素に接続されているか、もしくは結合されている、または、介在する要素が存在することが理解されよう。それとは対照的に、一つの要素が、別の要素「の直接上にある」、「に直接接続されている」または「に直接結合されている」として言及される場合、介在する要素または層は存在しない。本明細書では、「および／または」という用語は、１つまたは複数の関連するリスト項目のうちの、任意または全ての組み合わせを含む。本明細書では、「または」という用語は、論理的に包含的なＯＲを意味する。すなわち、「ＡまたはＢ」は、（Ａのみ）、（Ｂのみ）、または（ＡとＢの両方）を含み得る。言い換えれば、「ＡまたはＢ」は、「Ａおよび／またはＢ」または「ＡとＢの一方または両方」を意味し得る。
【００５４】
第１、第２、などという用語は、本明細書では、様々な要素を記述するために使用されることがあるが、これらの要素は、これらの用語によって限定されないことが理解されよう。これらの用語は、１つの要素を別の要素と区別するためにだけ使用される。従って、第１要素は、本開示の教示から逸脱することなく、第２の要素と呼ばれることがある。
【００５５】
本明細書では、特定の実施形態が例示され、説明されているが、当業者には、同一の結果を得るために計算された構成は、本明細書に示す特定の実施形態を置換できることが理解されるであろう。本開示は、本開示の１つまたは複数の実施形態の適用または変形形態を含むことを意図する。上述の説明は、例示的な方法で行われており、制限的なものでないことが理解されるであろう。上述の実施形態の組み合わせ、および本明細書では具体的に記述されていない他の実施形態は、上述の説明を精査すると、当業者には明白であろう。本開示の１つまたは複数の実施形態の範囲は、上述の構成および方法が使用される他の応用を含む。従って、本開示の１つまたは複数の実施形態の範囲は、添付の請求の範囲に加えて、かかる請求の範囲が受ける権利を有する同等のもの全てに関連して、決定されるべきである。
【００５６】
前述の「発明を実施するための形態」では、本開示の簡素化のために、いくつかの特徴が単一の実施形態にまとめられている。本開示のこの方法は、本開示の開示された実施形態が、各請求項で明確に列挙されているよりも多くの特徴を使用する必要があるという意図の反映と解釈されたいのではない。むしろ、以下の請求の範囲が反映するとおり、発明に関する主題は、単一の開示された実施形態の全ての特徴にあるのではない。従って、以下の請求の範囲は、本明細書により「発明を実施するための形態」に組み込まれ、各請求項は、別個の実施形態として自立している。
【図１】
2012515954.tif 000003
【図２】
2012515954.tif 000004
【図３】
2012515954.tif 000005
【図４】
2012515954.tif 000006
【手続補正書】
【提出日】平成23年8月8日(2011.8.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ホストインタフェースと、
記憶装置インタフェースとを備え、さらに、
記憶装置のフォーマット操作を検出し、
前記フォーマット操作の検出に応じて、
前記記憶装置上のフォーマット情報を検査し、
論理アドレスオフセットを計算して、
前記オフセットをホスト論理アドレスに適用するように構成された制御回路と
を備えるメモリコントローラ。
【請求項２】
前記制御回路が、前記フォーマット情報に従って、前記記憶装置のユーザーデータ領域の開始論理アドレスを決定するように構成された、請求項１に記載のメモリコントローラ。
【請求項３】
前記コントローラが、前記オフセットを前記ユーザーデータ領域の開始に一致するホスト論理アドレスに適用するように構成され、前記ユーザーデータ領域の前記開始がファイルシステムの割り当て単位境界に位置合わせされる、請求項２に記載のメモリコントローラ。
【請求項４】
前記ファイルシステムの前記割り当て単位境界がクラスタ境界を含む、請求項３に記載のメモリコントローラ。
【請求項５】
前記オフセットが、前記記憶装置のユーザーデータ領域の開始論理アドレスに適用される際に、メモリセルの物理ページの先頭またはメモリセルの物理ブロックの先頭に一致する、請求項１に記載のメモリコントローラ。
【請求項６】
ホスト論理アドレスと、前記記憶装置のユーザーデータ領域に対応する論理アドレスの範囲とを比較して、前記ホスト論理アドレスが前記ユーザーデータ領域内にあるかどうかを判定するように構成された、いくつかの論理アドレス範囲比較器を含む、請求項１に記載のメモリコントローラ。
【請求項７】
前記オフセットを格納するように構成された不揮発性メモリを含む、請求項１に記載のメモリコントローラ。
【請求項８】
前記不揮発性メモリおよび前記記憶装置インタフェースに結合された加算器を含むメモリコントローラであって、前記加算器が、前記ホスト論理アドレスが前記記憶装置インタフェースを通して送信される前に、前記オフセットを前記ホスト論理アドレスに加算するように構成された、請求項７に記載のメモリコントローラ。
【請求項９】
前記メモリコントローラが、前記記憶装置のシステムデータ領域からの前記フォーマット情報を検査するように構成された、請求項１に記載のメモリコントローラ。
【請求項１０】
前記制御回路が、
前記フォーマット情報に従って、前記記憶装置のユーザーデータ領域の開始論理アドレスを決定し、
前記論理アドレスオフセットを計算するように構成されたメモリコントローラであって、
前記オフセットが、システムデータ領域の終了と、メモリセルの次の物理ページの先頭またはメモリセルの次の物理ブロックの先頭との間の論理アドレスの差に等しい、
請求項１〜９のいずれか１つに記載のメモリコントローラ。
【請求項１１】
記憶装置を操作するための方法であって、
記憶装置のフォーマット操作を検出するステップと、
前記フォーマット操作の検出に応じて、
前記記憶装置上でフォーマット情報を検査し、
論理アドレスオフセットを計算して、
前記オフセットをホスト論理アドレスに適用するステップと
を含む方法。
【請求項１２】
前記方法が、
前記フォーマット情報に従って、前記記憶装置のユーザーデータ領域の開始論理アドレスを決定するステップと、
前記論理アドレスオフセットを計算するステップとを含み、
前記オフセットが、システムデータ領域の終了と、メモリセルの次の物理ページの先頭またはメモリセルの次の物理ブロックの先頭との間の論理アドレスの差に等しい、
請求項１１に記載の方法。
【請求項１３】
前記方法が、前記オフセットの、前記ユーザーデータ領域の前記開始アドレスに等しいかそれよりも大きいホスト論理アドレスへの適用を含む、請求項１２に記載の方法。
【請求項１４】
前記オフセットの前記ホスト論理アドレスへの適用が、前記オフセットのユーザーデータ領域の開始論理アドレスへの適用を含み、
前記オフセットされた開始論理アドレスが、メモリセルの物理ページの先頭またはメモリセルの物理ブロックの先頭に一致する、請求項１１に記載の方法。
【請求項１５】
前記方法が、
前記フォーマット情報に従って、前記記憶装置のシステムデータ領域の開始アドレスを決定するステップと、
前記システムデータ領域内にあるホスト論理アドレスに適用される第２オフセットを計算するステップとを含み、
前記第２オフセットが、前記システムデータ領域の前記開始アドレスに適用される際に、メモリセルの物理ページの先頭またはメモリセルの物理ブロックの先頭に一致する、
請求項１１〜１４のいずれか１つに記載の方法。
【国際調査報告】
2012515954.tif 000007
2012515954.tif 000008
2012515954.tif 000009