(57)【特許請求の範囲】
【請求項１】
複数のアドレスに関連するオリジナルデータを複数のチャネルに渡る第１ストライプに書き込み、かつ、
前記複数のアドレスの少なくとも１つに関連する更新データを、前記第１ストライプ内のオリジナルデータの読み取りまたはコピーを行うことなく、前記複数のチャネルに渡る第２ストライプに書き込み、
前記更新データを前記第２ストライプに書き込むと同時に、無関係データを前記第２ストライプに書き込むことを含み、前記無関係データが、前記第１ストライプの前記オリジナルデータおよび前記第２ストライプの前記更新データと無関係であり、
前記第2のストライプの一部に関連したエラーを検出するように構成された、不揮発性メモリ制御回路と、
前記不揮発性メモリ制御回路が前記エラーを検出したことに応答して、前記第2のストライプの前記一部を前記第2のストライプから取り除くメモリ管理回路とを備え、
前記不揮発性メモリ制御回路は、更に、前記第2のストライプの前記取り除かれた一部なしで、前記第2のストライプを駆動する、
ことを特徴とするメモリシステム制御回路。
【請求項２】
前記不揮発性メモリ制御回路に結合されたスイッチと、
前記スイッチに結合され、
前記オリジナルデータを受信し、かつ
前記更新データを受信するように構成された、
ホストインタフェース回路とをさらに備える、
請求項１に記載のメモリシステム制御回路。
【請求項３】
前記ホストインタフェース回路がホストメモリ変換回路を越えて前記スイッチと結合され、
前記ホストメモリ変換回路が、前記複数のアドレスをホストアドレスからメモリアドレスに変換するように構成されている、
請求項２に記載のメモリシステム制御回路。
【請求項４】
前記オリジナルデータに関連付けられた論理メモリアドレスが前記更新データに関連付けられた論理メモリアドレスと同一である、請求項３に記載のメモリシステム制御回路。
【請求項５】
前記不揮発性メモリ制御回路が、前記複数のチャネルの各々に対して個別のチャネルメモリ制御回路を含み、
前記不揮発性メモリ制御回路が、前記複数のチャネルに関連する複数の不揮発性メモリ装置を、ストライプ化されたレイド（ＲＡＩＤ）として操作するように構成されている、請求項１〜４のいずれか１つに記載のメモリシステム制御回路。
【請求項６】
前記ストライプに含まれるいくつかの不揮発性メモリ装置がプログラム可能になるように、前記不揮発性メモリ制御回路が、前記ストライプ化されたＲＡＩＤをプログラム可能なストライプサイズで操作するように構成されている、請求項５に記載のメモリシステム制御回路。
【請求項７】
実施する特定のＲＡＩＤ記憶方式がプログラム可能になるように、前記不揮発性メモリ制御回路が、前記ストライプ化されたＲＡＩＤをプログラム可能なＲＡＩＤ構造で操作するように構成されている、請求項５に記載のメモリシステム制御回路。
【請求項８】
前記不揮発性メモリ制御回路が、前記複数のチャネルの１つをパリティチャネルとして操作するように構成されている、請求項７に記載のメモリシステム制御回路。
【請求項９】
前記オリジナルデータに基づき、パリティデータを計算するように構成されている排他的論理和（ＸＯＲ）回路をさらに含む、請求項８に記載のメモリシステム制御回路。
【請求項１０】
ストライプベースのメモリ操作のための方法であって、
複数のメモリ装置の記憶ボリュームに渡る第１ストライプにオリジナルデータを書き込むことと、
書き込まれた前記オリジナルデータの少なくとも１つの断片を更新することとを含み、
前記更新が、前記オリジナルデータを読み取りまたはコピーすることなく、更新データを第２ストライプに書き込み、
前記更新データを前記第２ストライプに書き込むと同時に、無関係データを前記第２ストライプに書き込むことを含み、前記無関係データが、前記第１ストライプの前記オリジナルデータおよび前記第２ストライプの前記更新データと無関係であり、
前記第2のストライプの一部に関連したエラーを検出し、
前記不揮発性メモリ制御回路が前記エラーを検出したことに応答して、前記第2のストライプの前記一部を前記第2のストライプから取り除き、
前記不揮発性メモリ制御回路は、更に、前記第2のストライプの前記取り除かれた一部なしで、前記第2のストライプを駆動する、
ことを特徴とすることを含む方法。
【請求項１１】
前記方法が、前記オリジナルデータの各断片に基づき、それぞれ第１レベルのエラー訂正データを計算することと、
前記オリジナルデータに基づき、第２レベルのエラー訂正データを計算することとをさらに含み、
前記オリジナルデータの書き込みが、前記オリジナルデータおよび前記第１レベルのエラー訂正データを、前記複数のメモリ装置の第１サブセットに書き込むことと、前記第２レベルのエラー訂正データを、前記複数のメモリ装置の第２サブセットに書き込むこととを含む、請求項１０に記載の方法。
【請求項１２】
前記方法が、前記第１ストライプ内の前記オリジナルデータの断片内でエラーを検出することと、前記エラーを前記第１レベルのエラー訂正データで訂正することとを含む、請求項１１に記載の方法。
【請求項１３】
前記方法が、
前記第１ストライプ内のオリジナルデータの断片内で、前記第１レベルのエラー訂正データで訂正不可能なエラーを検出することと、
前記エラーを訂正することとを含み、
前記エラーの訂正が、
少なくとも前記オリジナルデータの残り、および前記第１ストライプ内の前記第２レベルのエラー訂正データに基づき、オリジナルデータの前記断片に対する置換データを作成することと、
前記オリジナルデータの前記残りを第３ストライプに書き込むことなく、置換データを前記３ストライプに書き込むこととを含む、
請求項１１に記載の方法。
【請求項１４】
前記方法が、前記置換データを前記第３ストライプに書き込むと同時に、無関係データを前記第３ストライプに書き込むことを含み、前記無関係データが、前記第１ストライプの前記オリジナルデータまたは前記第３ストライプの前記置換データと無関係である、請求項１３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、半導体メモリ装置、方法、およびシステムに関し、より詳細には、ストライプベースのメモリ動作に関する。
【背景技術】
【０００２】
メモリ装置は、通常、コンピューターまたは他の電子機器の内部にある、半導体集積回路として提供される。揮発性および不揮発性メモリを含め、様々な種類のメモリがある。揮発性メモリは、そのデータを保持するために電力を必要とし得、とりわけ、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、およびシンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＭ）を含む。不揮発性メモリは、電力が供給されていない場合に、格納された情報を保持することにより、永続的データを提供することができ、とりわけ、ＮＡＮＤフラッシュメモリ、ＮＯＲフラッシュメモリ、読み取り専用メモリ（ＲＯＭ）、電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ）、消去可能プログラマブルＲＯＭ（ＥＰＲＯＭ）、および相変化ランダムアクセスメモリ（ＰＣＲＡＭ）を含むことができる。
【０００３】
メモリ装置は、ソリッドステートドライブ（ＳＳＤ）を形成するために結合できる。様々な他の種類の不揮発性および揮発性メモリとして、ソリッドステートドライブは、例えば、ＮＡＮＤフラッシュメモリおよびＮＯＲフラッシュメモリなどの不揮発性メモリを含むことができ、かつ／または、例えば、ＤＲＡＭおよびＳＲＡＭなどの揮発性メモリを含むことができる。フラッシュメモリ装置は、窒化物層の電荷捕獲に情報を格納する半導体−酸化物−窒化物−酸化物−半導体および金属−酸化物−窒化物−酸化物−半導体のコンデンサ構造を使用するフローティングゲート型フラッシュデバイスおよびチャージトラップ型フラッシュ（ＣＴＦ）デバイスを含め、広範に渡る電子応用で不揮発性メモリとして利用され得る。フラッシュメモリ装置は、通常、高メモリ密度、高信頼性および低消費電力を可能にする１トランジスタメモリセルを使用する。
【０００４】
ソリッドステートドライブは、性能、サイズ、重さ、耐久性、動作温度範囲、および消費電力に関してハードドライブより有利であるため、ＳＳＤは、コンピューター用の主記憶装置としてハードディスク装置を置き換えるために使用できる。例えば、ＳＳＤは、可動部品がなく、シーク時間、待ち時間、および磁気ディスクドライブに関連する他の電気機械的遅延を回避し得るため、磁気ディスクに比較して優れた性能を有することができる。ＳＤＤ製造業者は、不揮発性フラッシュメモリを使用して、内蔵バッテリー電源を使用しなくてもよいフラッシュＳＤＤを作成し、そのドライブをより多目的かつ小型にすることができる。
【０００５】
ＳＳＤは、例えば、いくつかのメモリチップ（本明細書では、「いくつかの（ａ  ｎｕｍｂｅｒ  ｏｆ）」何かは、１つまたは複数のかかる何かを指すことができ、例えば、いくつかのメモリ装置は、１つまたは複数のメモリ装置を指すことができる）など、いくつかのメモリ装置を含むことができる。当業者には分かるように、メモリチップは、いくつかのダイおよび／または論理ユニット（ＬＵＮ）を含むことができる。各ダイは、いくつかのメモリアレイおよびその上の周辺回路を含むことができる。メモリアレイは、いくつかの物理ページに編成されたいくつかのメモリセルを含むことができ、物理ページはいくつかのブロックに編成することができる。
【０００６】
レイド（ＲＡＩＤ：ｒｅｄｕｎｄａｎｔ  ａｒｒａｙ  ｏｆ  ｉｎｄｅｐｅｎｄｅｎｔ  ｄｉｓｋ）は、データを複数のメモリ装置に分割および／または複製するコンピューターのデータ記憶方式のための包括的用語である。ＲＡＩＤアレイ内の複数のメモリ装置は、ユーザーおよびコンピューターのオペレーティングシステムには、単一のメモリ装置（例えば、ディスクなど）として見え得る。歴史的に、ＲＡＩＤは、複数のハードディスクドライブ（ＨＤＤ）で動作された。
【図面の簡単な説明】
【０００７】
【図１】本開示の１つまたは複数の実施形態に従った、少なくとも１つのメモリシステムを含むコンピューティングシステムの機能ブロック図である。
【図２】本開示の１つまたは複数の実施形態に従った、メモリシステムの機能ブロック図である。
【図３】本開示の１つまたは複数の実施形態に従った、不揮発性メモリ制御回路の機能ブロック図である。
【図４】本開示の１つまたは複数の実施形態に従った、ストライプベースで動作される記憶ボリュームの機能ブロック図である。
【図５】本開示の１つまたは複数の実施形態に従った、メモリ装置の一部の概略図を示す。
【発明を実施するための形態】
【０００８】
本開示は、ストライプベースのメモリ動作のための方法および装置を含む。一方法実施形態は、複数のメモリ装置の記憶ボリュームに渡る第１ストライプにデータを書き込むことを含む。第１ストライプの一部は、複数のメモリ装置の記憶ボリュームに渡る第２ストライプの一部に更新データを書き込むことによって更新される。第１ストライプのその一部は無効にされる。第１ストライプの無効な部分および第１ストライプの残りは、第１ストライプがリクレイムされるまで保持される。
【０００９】
本開示の以降の詳細な説明では、本明細書の一部を形成する添付の図が参照され、それらの図では、実例として、本開示の１つまたは複数の実施形態がどのように実施され得るかが示されている。これらの実施形態では、当業者が本開示の実施形態を実施できるようにするだけの十分な詳細が説明されており、また、他の実施形態が利用され得、本開示の範囲から逸脱することなく、プロセス、電気的、および／または構造的変更がなされ得ることを理解されたい。本明細書では、指示子「Ｎ」、「Ｍ」、「Ｐ」、「Ｒ」、および「Ｓ」は、特に図中の参照数字に関して、そのように指示されたいくつかの特定の機能が、本開示の１つまたは複数の実施形態に含めることができることを示す。
【００１０】
本明細書の図は、上桁の数字が図の番号に対応し、残りの数字がその図の要素または構成要素を特定する番号付け方式に従う。異なる図の同様の要素または構成要素は、同様の数字を使用することによって特定され得る。例えば、１０８は、図１の要素「０８」を指し得、同様の要素は、図２では２０８として参照され得る。理解されるように、本明細書の様々な実施形態で示される要素は、本開示のいくつか追加の実施形態を提供するために、追加、交換、および／または除去できる。さらに、理解されるように、図で提供されている要素の比率および相対的サイズは、本発明の実施形態を説明することを目的としており、限定する趣旨で理解されるべきではない。
【００１１】
図１は、本開示の１つまたは複数の実施形態に従った、少なくとも１つのメモリシステム１０４を含むコンピューティングシステム１００の機能ブロック図である。図１に示す実施形態では、メモリシステム１０４（例えば、ソリッドステートドライブ（ＳＤＤ））は、物理ホストインタフェース１０６、メモリシステム制御回路１０８（例えば、ＳＳＤコントローラ）、および１つまたは複数のソリッドステートメモリ装置１１０−１、．．．、１１０−Ｎを含むことができる。ソリッドステートメモリ装置１１０−１、．．．、１１０−Ｎは、メモリシステムに対して、例えば、そのメモリ装置に対してフォーマットされたファイルシステムで、記憶ボリュームを提供できる。１つまたは複数の実施形態では、メモリシステム制御回路１０８は、物理インタフェース１０６およびソリッドステートメモリ装置１１０−１、．．．、１１０−Ｎを含む、プリント基板に結合された特定用途向け集積回路（ＡＳＩＣ）にできる。
【００１２】
図１に示すように、メモリシステム制御回路１０８は、物理ホストインタフェース１０６およびソリッドステートメモリ装置１１０−１、．．．、１１０−Ｎに結合できる。物理ホストインタフェース１０６は、メモリシステム１０４とホストシステム１０２などの別の装置との間で情報を伝達するために使用できる。ホストシステム１０２は、メモリアクセス装置（例えば、プロセッサ）を含むことができる。当業者には、「プロセッサ」は、並列処理システム、いくつかのコプロセッサなど、１つまたは複数のプロセッサを表すことができることが分かるであろう。ホストシステムの例は、ラップトップコンピューター、パーソナルコンピューター、デジタルカメラ、デジタル録音再生装置、携帯電話、ＰＤＡ、メモリカードリーダー、インタフェースハブ、および同類のものを含む。１つまたは複数の実施形態について、物理ホストインタフェース１０６は、標準化されたインタフェースの形にできる。例えば、メモリシステム１０４がコンピューティングシステム１００でデータ記憶用に使用される場合、物理ホストインタフェース１０６は、他のコネクタおよびインタフェースとして、シリアルＡＴＡ（ＳＡＴＡ：ｓｅｒｉａｌ  ａｄｖａｎｃｅｄ  ｔｅｃｈｎｏｌｏｇｙ  ａｔｔａｃｈｍｅｎｔ）、ＰＣＩ  Ｅｘｐｒｅｓｓ（ＰＣＩｅ：ｐｅｒｉｐｈｅｒａｌ  ｃｏｍｐｏｎｅｎｔ  ｉｎｔｅｒｃｏｎｎｅｃｔ  ｅｘｐｒｅｓｓ）、またはユニバーサルシリアルバス（ＵＳＢ）にすることができる。しかし、一般に、物理ホストインタフェース１０６は、メモリシステム１０４と、物理ホストインタフェース１０６に対して互換性のあるレセプターを有するホストシステム１０２との間で、制御、アドレス、データ、および他の信号を渡すためのインタフェースを提供できる。
【００１３】
メモリシステム制御回路１０８は、いくつかの動作の中で特に、データの読み取り、書き込み、および消去を行うために、ソリッドステートメモリ装置１１０−１、．．．、１１０−Ｎと通信することができる。メモリシステム制御回路１０８は、１つまたは複数の集積回路および／または個別部品であり得る回路を有することができる。１つまたは複数の実施形態について、メモリシステム制御回路１０８内の回路は、ソリッドステートメモリ装置１１０−１、．．．、１１０−Ｎに渡るアクセスを制御するための制御回路およびホストシステム１０２とメモリシステム１０４との間に変換層を提供するための回路を含み得る。従って、メモリコントローラは、適切な時期に適切な入出力接続で、適切な信号を受信するために、ソリッドステートメモリ装置１１０−１、．．．、１１０−Ｎの入出力接続（図１に示さず）を選択的に結合できる。同様に、ホストシステム１０２とメモリシステム１０４との間の通信プロトコルは、ソリッドステートメモリ装置１１０−１、．．．、１１０−Ｎのアクセスで必要なプロトコルとは異なり得る。メモリシステム制御回路１０８は、その後、ソリッドステートメモリ装置１１０−１、．．．、１１０−Ｎに対する所望のアクセスを達成するために、ホストから受信したコマンドを適切なコマンドに変換できる。
【００１４】
ソリッドステートメモリ装置１１０−１、．．．、１１０−Ｎは、１つまたは複数のメモリセル（例えば、不揮発性メモリセルなど）のアレイを含むことができる。アレイは、例えば、ＮＡＮＤ構造のフラッシュアレイにできる。ＮＡＮＤ構造では、メモリセルの「行（ｒｏｗ）」の制御ゲートは、アクセス（例えば、ワード線）と結合することができ、他方、メモリセルは、選択ゲートソーストランジスタと選択ゲートドレイントランジスタとの間の「ストリング」内でソースからドレインへと順番に結合できる。このストリングは、選択ゲートドレイントランジスタにより、データ（例えば、ビット線）に結合できる。「行」および「ストリング」という用語の使用は、メモリセルの線状配列または直交配列のどちらも意味しない。当業者には分かるように、メモリセルのビット線およびソース線への接続方法は、アレイがＮＡＮＤ構造、ＮＯＲ構造、または他のメモリアレイ構造のいずれであるかによって決まる。
【００１５】
ソリッドステートメモリ装置１１０−１、．．．、１１０−Ｎは、グループ化できるいくつかのメモリセルを含むことができる。本明細書では、グループは、ページ、ブロック、プレーン（ｐｌａｎｅ）、ダイ、アレイ全体、またはメモリセルの他のグループなど、１つまたは複数のメモリセルを含むことができる。例えば、いくつかのメモリアレイは、メモリセルのブロックを構成するいくつかのページのメモリセルを含むことができる。いくつかのブロックは、メモリセルのプレーンに含まれる。いくつかのプレーンのメモリセルは、１つのダイに含まれる。一例として、１２８ＧＢのメモリ装置は１ページ当たり４３１４バイトのデータ、１ブロック当たり１２８ページ、１プレーン当たり２０４８ブロック、１装置当たり１６プレーンを含むことができる。
【００１６】
メモリシステム１０４は、ソリッドステートメモリ装置１１０−１、．．．、１１０−Ｎ上の摩耗率を制御するためにウェアレベリング（ｗｅａｒ  ｌｅｖｅｌｉｎｇ）を実装できる。ソリッドステートメモリアレイは、いくつかのプログラムおよび／または消去サイクルの後、エラー（例えば、障害）を経験する可能性がある。ウェアレベリングは、特定のグループ上で実行されるプログラムおよび／または消去サイクルの数を減少させることができる。ウェアレベリングは、ブロックをリクレイム（ｒｅｃｌａｉｍ）するために移動される有効なブロックの量を最小限にするために動的ウェアレベリングを含むことができる。動的ウェアレベリングは、ガーベジコレクションと呼ばれる技術を含むことができる。ガーベジコレクションは、例えば、「欲張りアルゴリズム（ｇｒｅｅｄｙ  ａｌｇｏｒｉｔｈｍ）」に従って、最も多い無効なページを有するブロックをリクレイムすること（例えば、消去および書き込み用に利用可能にすること）を含むことができる。代替として、ガーベジコレクションは、閾値より多い無効なページを持つブロックをリクレイムすることを含むことができる。書き込み動作のために十分な空きブロックが存在する場合、ガーベジコレクション動作は生じ得ない。例えば、無効なページは、異なるページに更新されているデータのページにできる。静的ウェアレベリングは、ブロックの寿命を延ばすために、消去カウントの高いブロックに静的データを書き込むことを含む。本開示の１つまたは複数の実施形態は、ウェアレベリング（例えば、ガーベジコレクションおよび／またはリクラメーション（ｒｅｃｌａｍａｔｉｏｎ））を、ブロックベースではなくストライプベースで実行することができる。本開示の１つまたは複数の実施形態によれば、リクラメーションプロセスは、閾値より少ない使用可能な空きブロック数に応じて、開始することができる。
【００１７】
書き込み増幅（ｗｒｉｔｅ  ａｍｐｌｉｆｉｃａｔｉｏｎ）は、ソリッドステートメモリ装置１１０−１、．．．、１１０−Ｎにデータを書き込む際に生じ得るプロセスである。データをメモリアレイにランダムに書き込む場合、制御回路はアレイ内で空き領域を探して走査する。メモリアレイ内の空き領域は、データを格納しておらず、かつ／または消去されている、個々のセル、ページ、および／またはメモリセルのブロックであり得る。データを選択した記憶位置に書き込むために十分な空き領域がある場合、データはメモリアレイの選択した記憶位置に書き込まれる。選択した記憶位置に十分な空き領域がない場合、メモリアレイ内のデータは、選択した記憶位置に既に存在するデータを読み取り、コピー、移動、またはそうでない場合は、再書き込みおよび消去により新しい記憶位置に再配置して、その選択した記憶位置に書き込まれる新しいデータのために空き領域を残す。メモリアレイ内の古いデータの再配置は、メモリ装置によって実行される書き込み量が、選択した記憶位置に十分な空き領域があった場合に生じる書き込み量を超えて増幅されるため、書き込み増幅と呼ばれる。本開示の１つまたは複数のストライプベースのメモリ動作実施形態が、本明細書で説明するように、書き込み増幅を削減するために使用できる。
【００１８】
図１の実施形態は、本開示の実施形態を曖昧にしないために図示されていない追加の回路を含むことができる。例えば、メモリシステム１０４は、入出力回路を経て入出力接続で提供されるアドレス信号をラッチするためにアドレス回路を含むことができる。アドレス信号は、ソリッドステートメモリ装置１１０−１、．．．、１１０−Ｎにアクセスするために行デコーダおよび列デコーダによって受信および復号できる。当業者には、アドレス入力接続数がソリッドステートメモリ装置１１０−１、．．．、１１０−Ｎの密度および構造によって決まることが理解されるであろう。
【００１９】
図２は、本開示の１つまたは複数の実施形態によるメモリシステム２０４の機能ブロック図である。メモリシステム２０４は、メモリシステム制御回路２０８を含むことができる。メモリシステム制御回路２０８は、１つまたは複数のソリッドステートメモリ装置（例えば、不揮発性メモリ２１０および／または揮発性メモリ２１２）と結合することができる。メモリシステム２０４およびメモリシステム制御回路２０８は、それぞれ、図１に示すメモリシステム１０４およびメモリシステム制御回路１０８に類似することができる。
【００２０】
メモリシステム制御回路２０８は、ホストインタフェース回路２１４、ホストメモリ変換回路２１６、メモリ管理回路２１８、スイッチ２２０、不揮発性メモリ制御回路２２２、および／または揮発性メモリ制御回路２２４を含むことができる。本明細書で説明する通り、メモリシステム制御回路２０８は、ＡＳＩＣの形で提供できるが、実施形態はそのように限定されない。
【００２１】
ホストインタフェース回路２１４は、ホストメモリ変換回路２１６に結合できる。ホストインタフェース回路２１４は、図１に示す物理インタフェース１０６などの、ホストシステムへの物理インタフェースに結合および／またはそれを組み込むことができる。ホストインタフェース回路２１４は、物理層、リンク層、および／またはトランスポート層を含む、いくつかの層を介して、ホストシステム（例えば、図１のホストシステム１０２）とインタフェースを取ることができる。当業者には、特定のホストインタフェースに対する層の数は、シリアルＡＴＡ（ＳＡＴＡ）、ＰＣＩ  Ｅｘｐｒｅｓｓ（ＰＣＩｅ）、ユニバーサルシリアルバス（ＵＳＢ）などの、インタフェース規格によって定義できることが理解されるであろう。本明細書では、トランスポート層は、少なくとも、ＳＡＴＡ規格の一部としてのトランスポート層および／またはＰＣＩｅ規格の一部としてのトランザクション層を示すことができる。当業者には、ＳＡＴＡ規格によるトランスポート層は、ＰＣＩｅ規格によるトランザクション層に類似できることが理解されるであろう。ホストインタフェース回路２１４は、拡張ホストコントローラインタフェース（ＡＨＣＩ）準拠のホストバスアダプタ（ＨＢＡ）を含むことができる。
【００２２】
一般に、ホストインタフェース回路２１４は、ホストシステムから（例えば、ＰＣＩｅバスから）受信したコマンドパケットのホストメモリ変換回路２１６に対するコマンド命令への変換、および要求ホストへの送信のために、ホストメモリ変換応答のホストシステムコマンドへの変換に関与する。例えば、ホストインタフェース回路２１４は、ＰＣＩｅベースのトランザクション層パケットからＳＡＴＡコマンドパケットを構築できる。ホストインタフェース回路２１４は、ホストシステムから複数のアドレスに関連するデータを受信するように構成できる。ホストインタフェース回路２１４は、複数のアドレスの１つまたは複数に関連する更新データを受信できる。
【００２３】
ホストメモリ変換回路２１６は、ホストインタフェース回路２１４、メモリ管理回路２１８、および／またはスイッチ２２０に結合できる。ホストメモリ変換回路２１６は、ホストアドレスをメモリアドレス（例えば、読み取りおよび／または書き込みコマンドなどの受信したコマンドに関連するアドレス）に変換するように構成できる。ホストメモリ変換回路２１６は、例えば、ホストセクター読み取りおよび書き込み動作を、不揮発性メモリ２１０の特定の部分に向けられたコマンドに変換し得る。各ホスト動作は、単一または複数セクターの不揮発性メモリ２１０動作に変換できる。例えば、ホスト読み取りおよび書き込みコマンドは、不揮発性メモリ２１０の読み取りおよび書き込みコマンドに変換できる。ホストメモリ変換回路２１６は、ＲＡＩＤ排他的論理和（ＸＯＲ）回路２２６などの、第２レベルのエラー検出／訂正回路を含むことができる。ＲＡＩＤ  ＸＯＲ回路２２６は、ホストインタフェース回路２１４から受信したデータに基づきパリティデータを計算できる。
【００２４】
本開示の１つまたは複数の実施形態によると、書き込みデータは、ＲＡＩＤ動作において、複数のソリッドステートメモリ装置に渡ってストライプ化できる。当業者には分かるように、ストライピングは、複数の装置上に格納できるようにデータを分割することを含む。分割データを格納する複数の装置の一部は、集合的にストライプと呼ばれる。対照的に、ミラーリングは、データの重複するコピーを複数の装置に格納することを含み得る。ストライピングについては、図４に関連してより詳細に説明する。一例として、書き込みデータが、８つのメモリ装置の７つに渡ってストライプ化でき、そこで、パリティデータが８番目のメモリ装置に格納できる。例えば、メモリシステム２０４は複数の不揮発性メモリ装置２１０を含むことができ、各々、別個のチャネルでメモリシステム制御回路２０８と結合されている。例えば、８つのメモリ装置の７つに書き込まれた各ビットに対して、パリティビットがＲＡＩＤ  ＸＯＲ回路２２６によって計算されて、８番目のメモリ装置に書き込むことができ、例えば、７つのメモリ装置の各々からのビット０が、パリティ（８番目）メモリ装置でビット０を生成するために使用できる。
【００２５】
メモリ管理回路２１８は、ホストメモリ変換回路２１６およびスイッチ２２０に結合できる。メモリ管理回路２１８は、初期化、ウェアレベリングを含め、これらに限定されず、例えば、ガーベジコレクションおよび／もしくはブロックリクラメーション、ならびに／またはエラー検出／訂正など、いくつかのプロセスを、例えば、プロセッサ２２８の動作によって制御できる。メモリ管理回路２１８は、ウェアレベリングの候補（例えば、ガーベジコレクション）を決定するために、ブロックテーブル（例えば、ブロックテーブル２３６）にアクセスできる。メモリ管理回路２１８は、ストライプの一部（例えば、１つまたは複数のブロック）が有効か無効かについて、ブロックテーブル（例えば、ブロックテーブル２３６）に指示を提供するように構成できる。メモリ管理回路２１８は、論理アドレスに関連するデータが更新された場合に、ＬＢＡテーブル（例えば、ＬＢＡテーブル２３４）を論理アドレスに対応する新しい物理アドレスで更新できる。ストライプベースの動作に関して、メモリ管理回路２１８は、特定ストライプの一部に関連する検出されたエラーに応じて、特定ストライプから特定ストライプの一部が有効に除去されるように構成できる。
【００２６】
メモリ管理回路２１８は、例えば、ウェアレベリング動作の一部として、ブロックテーブル（例えば、ブロックテーブル２３６）内で消去カウントの高いブロックを検索できる。メモリ管理回路は、特定ブロックの消去カウントを閾値と比較できる。例えば、消去カウントの最も低いブロックの消去カウントが特定ブロックから減算される。差異が閾値より大きい場合、特定ブロックはブロックリクラメーションの候補として示すことができる。
【００２７】
メモリ管理回路２１８は、例えば、動的ウェアレベリング動作の一部として、その中に閾値量の無効な（例えば、未使用の）部分（例えば、ページ）のガーベジコレクションを有するブロックを検索できる。ブロックテーブル（例えば、ブロックテーブル２３６）の検索後、メモリ管理回路２１８は、最も多くの無効なページを有するストライプをストライプベースのリクラメーションプロセスの候補として示すことができる。メモリ管理回路２１８は、リクラメーション回路２３０を含むことができる。リクラメーションは、ウェアレベリングの一部として、メモリ管理回路２１８によって起動できるプロセスである。リクラメーションは、ブロックが消去される前に、全ての無効なページを消去されるブロックから新しい記憶位置に移動させることを伴う。
【００２８】
スイッチ２２０は、ホストメモリ変換回路２１６、メモリ管理回路２１８、不揮発性制御回路２２２、および／または揮発性メモリ制御回路２２４に結合できる。スイッチ２２０は、クロスバースイッチにすることができ、１つまたは複数のバッファ（例えば、スタティックランダムアクセスメモリ（ＳＲＡＭ）バッファ）を含むか、および／またはそれに結合することができる。スイッチ２２０は、メモリシステム制御回路２０８の様々な構成要素間のインタフェースを提供できる。スイッチ２２０は、構成要素間に一貫したアクセスおよび実装を提供するために、メモリシステム制御回路２０８の異なる構成要素に関連し得る定義された信号プロトコルの変動を説明できる。１つまたは複数の実施形態では、スイッチ２２０は、直接メモリアクセス（ＤＭＡ）モジュールにできる。
【００２９】
不揮発性メモリ制御回路２２２（例えば、コントローラ）は、スイッチ２２０および１つまたは複数の不揮発性メモリ装置２１０に結合できる。その他の情報としては、１つまたは複数の不揮発性メモリ装置２１０は、本明細書で説明する通り、論理ブロックアドレス（ＬＢＡ）テーブル２３４−Ｃおよび／またはブロックテーブル２３６−Ｃのコピーを格納できる。いくつかの実施形態では、メモリシステム制御回路２０８は、全メモリチャネルに対して、１つの不揮発性メモリコントローラを含むことができる。１つまたは複数の他の実施形態では、各メモリチャネルは、個別の不揮発性メモリコントローラに結合される。
【００３０】
各チャネルに対する個別の不揮発性メモリコントローラを含む１つまたは複数の実施形態は、各コントローラに結合された個別の第１レベルのエラー検出／訂正回路２３２および／または複数のチャネルで使用できる１つまたは複数の第１レベルのエラー検出／訂正回路２３２を含むことができる。第１レベルのエラー検出／訂正回路２３２は、当業者には分かるように、不揮発性メモリ２１０に格納されているデータに関連するエラーを検出および／または訂正するために、ＢＣＨエラー訂正などのエラー訂正に適用するように構成できる。例えば、第１レベルのエラー検出／訂正回路は、１０８０ビットの符号語について２９ビットのエラー訂正を提供できる。第１レベルのエラー検出／訂正回路２３２は、シングルおよび／またはマルチレベルセル（ＳＬＣ／ＭＬＣ）動作に対して、異なるエラー訂正方式を提供するように構成できる。第１レベルのエラー検出／訂正回路２３２は、第１レベルのエラー検出／訂正によって訂正不可能なエラー（例えば、ＵＥＣＣエラー）を、訂正可能エラーの閾値よりも多いエラーがあることを判定することなどにより、検出できる。図４に関してより詳細に説明するように、本開示の１つまたは複数の実施形態は、ＵＥＣＣエラーの訂正を提供する。例えば、ＵＥＣＣエラーまたは他のエラーのあるストライプの一部は、ストライプから有効に除去することができ、不揮発性メモリ制御回路２２２は、除去された部分なしでストライプを動作するように構成できる。
【００３１】
不揮発性メモリ制御回路２２２は、本明細書で説明するように、いくつかのメモリチャネルに渡る第１ストライプ内にデータを書き込むように構成できる。不揮発性メモリ制御回路２２２は、第１ストライプ内のデータを読み取りまたはコピーすることなく、メモリチャネル数に渡る第２ストライプに更新データを書き込むように構成できる。１つまたは複数の実施形態では、不揮発性メモリ制御回路２２２は、ストライプの残りを読み取ることなく、ページベースでストライプの部分を読み取るように構成できる。不揮発性メモリ制御回路２２２は、メモリチャネル数に関連するいくつかの不揮発性メモリ装置をＲＡＩＤとして動作するように構成できる。メモリチャネル数の少なくとも１つがパリティチャネルとして動作でき、従って、メモリチャネル数の少なくとも１つに関連する１つまたは複数のメモリ装置がパリティメモリ装置として動作できる。ストライプベースのメモリ動作に関するさらなる詳細については、以下で本開示全体を通して、図４の説明に関連して提供される。
【００３２】
揮発性メモリ制御回路２２４は、スイッチ２２０および１つまたは複数の揮発性メモリ装置２１２に結合できる。他の情報としては、１つまたは複数の揮発性メモリ装置は、ＬＢＡテーブル２３４および／またはブロックテーブル２３６に格納できる。ＬＢＡテーブル２３４は、ページの物理ページアドレスを１つまたは複数の不揮発性メモリ装置２１０に格納して、対応する論理アドレスを含むことができる。ＬＢＡテーブル２３４は、関連するＳＡＴＡコマンドに含まれているＬＢＡによってインデックス付けできる。ＬＢＡテーブル２３４は、対応する情報が格納できる論理ブロックアドレスに対応する物理ページアドレスを検索するために使用できる。ブロックテーブル２３６は、消去可能ブロックに関する情報を１つまたは複数の不揮発性メモリ装置２１０内に格納できる。ブロックテーブル２３６に格納されている情報は、有効なページ情報、消去カウント、および他の状態情報を含むことができる。ブロックテーブル２３６からアクセスされる情報は、物理ブロックアドレスによってインデックス付けできる。
【００３３】
図３は、本開示の１つまたは複数の実施形態に従った、不揮発性メモリ制御回路３２２の機能ブロック図である。不揮発性メモリ制御回路３２２は、図２に示す不揮発性メモリ制御回路２２２に類似することができる。不揮発性メモリ制御回路３２２は、１つまたは複数のソリッドステートメモリ装置３１０−１、．．．、３１０−Ｎに結合できる。１つまたは複数の実施形態では、各ソリッドステートメモリ装置３１０−１、．．．、３１０−Ｎは、別個のチャネルによって不揮発性メモリ制御回路３２２に結合できる。各チャネルは、別個のチャネルメモリ制御回路３３８−１、．．．、３３８−Ｎと関連付けできる。しかし、１つまたは複数の実施形態では、より少ない（例えば、１つの）不揮発性メモリ制御回路３２２が複数のチャネルに対する制御を提供できるので、実施形態は、そのように限定されない。不揮発性メモリ制御回路は、ページ読み取り、ストライプ書き込み、およびストライプ消去を含め、１つまたは複数のソリッドステートメモリ装置３１０−１、．．．、３１０−Ｎ上でいくつかの動作を実行できる。
【００３４】
ページ読み取り動作は、メモリのページへのアクセスを可能にできる。ページ読み取りコマンドは、特定のチャネルメモリコントローラ３３８−１、．．．、３３８−Ｎに送信（例えば、キュー登録）されて、１つまたは複数のソリッドステートメモリ装置３１０−１、．．．、３１０−Ｎ上で実行できる。例えば、ページ読み取り動作は、ページサイズに応じて、４キロバイト（ＫＢ）、８ＫＢ、または別の量のデータ、加えてメタデータをサポートできる。ページ読み取り動作からのデータは、例えば、ＤＭＡ動作で、チャネルメモリコントローラ３３８−１、．．．、３３８−Ｎにより、ソリッドステートメモリ装置３１０−１、．．．、３１０−Ｎ内のページから読み取りバッファへ転送できる。装置状態は、メモリチャネル上での動作が完了すると提供できる。
【００３５】
ストライプ書き込み動作は、複数のページ書き込み動作（例えば、不揮発性メモリ制御回路３２２に関連する各チャネル毎に１ページ書き込み動作）を含むことができる。１つまたは複数の実施形態では、ストライプ書き込み動作における複数のページ書き込み動作は、複数のチャネルに渡って実質的に同時に実行できる。ページ書き込み動作は、メモリのページへのアクセスを可能にできる。ページ書き込みコマンドは、所望のチャネルメモリコントローラ３３８−１、．．．、３３８−Ｎに送信（例えば、キュー登録）されて、１つまたは複数のソリッドステートメモリ装置３１０−１、．．．、３１０−Ｎ上で実行できる。例えば、ページ書き込み動作は、ソリッドステートメモリ装置３１０−１、．．．、３１０−Ｎのページサイズに応じて、４キロバイト（ＫＢ）、８ＫＢ、または別の量のデータ、加えてメタデータをサポートできる。ページ書き込み動作からのデータは、書き込みバッファからソリッドステートメモリ装置３１０−１、．．．、３１０−Ｎ内のページへ、チャネルメモリコントローラ３３８−１、．．．、３３８−Ｎによって転送できる。ストライプ書き込み動作のための書き込みデータは、例えば、図１に示すホストシステム１０２のような、ホストシステムから受信できる。
【００３６】
書き込みデータは、複数のソリッドステートメモリ装置３１０−１、．．．、３１０−Ｎの記憶ボリュームに渡ってストライプ化できる。例えば、ホストから受信された書き込みデータの第１ページは第１メモリ装置に、第２ページは第２メモリ装置に、などと、書き込むことができる。別の実施形態例では、ホストから受信した書き込みデータの第１ページの第１断片（例えば、セクター）は、第１メモリ装置に、第１ページの第２断片は第２装置に、などと、書き込むことができる。データはストライプベースの動作で書き込み得るが、データはまだページベース動作で読み取られ得る。
【００３７】
ストライプリクラメーション動作は、複数のブロック消去動作（例えば、不揮発性メモリ制御回路３２２に関連する各チャネル毎に１ブロック消去）を含むことができる。１つまたは複数の実施形態では、ストライプリクラメーション動作における複数のブロック消去動作は、複数のチャネルに渡って実質的に同時に実行できる。ブロック消去コマンドは１つまたは複数のソリッドステートメモリ装置３１０−１、．．．、３１０−Ｎ上で実行できる。ストライプベースの動作に関するさらなる詳細について、本明細書で説明する。
【００３８】
図４は、本開示の１つまたは複数の実施形態に従った、ストライプベースで動作される記憶ボリューム４４０のブロック図を示す。記憶ボリューム４４０は、メモリシステム（例えば、図１のメモリシステム１０４）内のいくつかのソリッドステートメモリ装置（例えば、図１のソリッドステートメモリ装置１１０−１、．．．、１１０−Ｎ）に対してフォーマットされたファイルシステムによって提供できる。本明細書で説明する通り、各ソリッドステートメモリ装置は、メモリチャネル４４２−１、．．．、４４２−（Ｎ−１），４４２−Ｎに関連付けることができる。データは、ソリッドステートメモリ装置数によって提供される記憶ボリュームに渡るいくつかのストライプ４４４−１，４４４−２、．．．、４４４−Ｐに書き込むことができる。
【００３９】
メモリシステムは、ホストシステムから書き込みデータを受信できる。メモリシステム（例えば、図２のホストメモリ変換回路２１６に関連するＲＡＩＤ  ＸＯＲ回路２２６）は、書き込みデータに対するパリティデータを計算できる。１つまたは複数の実施形態では、書き込みデータおよびパリティデータは、書き込みデータが利用可能なチャネル数のサブセット（例えば、チャネル４４２−１、．．．、４４２−（Ｎ−１））に渡って書き込まれ、パリティデータが利用可能なチャネル数の第２サブセット（チャネル４４２−Ｎ）に渡って書き込むことができるように、記憶ボリューム４４０に渡ってストライプ化できる。例えば、メモリシステムは、書き込みデータの書き込みに７つのチャネルが使用され、１つのチャネルがパリティデータの書き込みに使用される場合に、８つのチャネルを含むことができるが、実施形態は、そのように限定されない。しかし、実施形態は、書き込みデータに対してＮ個のチャネルのうちのＮ−１個を使用し、パリティデータに対して単一チャネルを使用するように限定されない。本開示の１つまたは複数の実施形態によれば、ＲＡＩＤ構造および／またはストライプサイズは、プログラム可能な選択肢である。
【００４０】
ＲＡＩＤ構造は、複数のメモリ装置に渡ってデータを分割および／または複製するために、考案されたＲＡＩＤ記憶方式の実装を表すことができる。例えば、データは、２つ以上の装置に渡ってストライプ化および／またはミラー化できる。さらに、ストライピングは、書き込みデータの断片への分割、および少なくとも１つの断片のいくつかのメモリ装置の各々への格納を含むことができる。ミラーリングは、書き込みデータのコピーの少なくとも２つのメモリ装置への重複格納を含むことができる。ストライピングおよびミラーリングは両方とも、第１レベルおよび／または第２レベルのエラー検出／訂正の使用を含むことができる。パリティデータは書き込みデータと同じメモリ装置に格納することも、および／または書き込みデータを格納する装置とは別個の装置に格納することもできる。本開示の１つまたは複数の実施形態によれば、メモリシステムによって実装される特定のＲＡＩＤ構造は、プログラム可能な選択肢にすることができる。
【００４１】
本明細書では、ストライプサイズは、データがその数のメモリ装置に渡ってストライプ化されるメモリ装置の数を参照できる。本開示の１つまたは複数の実施形態によれば、メモリシステムに対するストライプサイズは、メモリシステムに対して任意の数の利用可能なメモリ装置がストライプのために使用できるように、プログラム可能な選択肢にすることができる。例えば、３２のチャネルおよび３２の対応するメモリ装置を含むメモリシステムは、２〜３２のメモリ装置のいずれのストライプサイズも有することができる。さらに、ストライプサイズは、本明細書で説明するように、例えば、メモリストライプの有効に除去された部分に応じて、メモリシステムの動作中に変更できる。本明細書で説明するように、ブロックテーブルは、ストライプ化するメモリシステム構成の部分を追跡記録するために使用できる。
【００４２】
パリティデータの格納は、メモリストライプの有効に除去された部分（例えば、ＵＥＣＣエラーを経験する部分）に関連するデータが再作成されるのを可能にできる。メモリチャネル、メモリ装置、メモリのブロック、メモリのページ、またはメモリ装置の別の部分が訂正不可能なエラーまたは他のエラーを経験することがある。例えば、書き込みデータは、チャネル４４２−１、．．．、４４２−（Ｎ−１）に渡る第１ストライプ４４４−１に書き込むことができる。パリティデータは、チャネル４４２−Ｎに渡る第１ストライプ４４４−１に書き込むことができる。第１チャネル４４２−１が訂正不可能なエラーまたは他のエラーを経験すると、４４２−（Ｎ−１）までのチャネルに関連する書き込みデータおよびチャネル４４２−Ｎに関連するパリティデータは、第１チャネル４４２−１に渡って書き込まれたデータを再作成するために使用できる。パリティデータを作成する場合と同様に、メモリシステム（例えば、図２のＲＡＩＤ  ＸＯＲ回路２２６）は、訂正不可能なエラーまたは他のエラーを経験するメモリシステムの一部に関連するデータに対する置換データを計算するために、書き込みデータと共にパリティデータを使用できる。
【００４３】
図２の不揮発性メモリ制御回路２２２に関連するＥＣＣ回路２３２は、書き込みデータ４４６の断片用のエラー訂正データ４４８および／またはメモリ装置に格納されるパリティデータ４５０を計算できる。図４は、チャネル４４２−１、．．．、４４２−（Ｎ−１）に関連して格納されている書き込みデータ４４６およびエラー訂正データ４４８ならびにチャネル４４２−Ｎに関連して格納されているパリティデータ４５０およびエラー訂正データ４４８の図を含む。ストライプが書き込まれる際に、書き込みデータおよびエラー訂正データの両方を一緒に書き込むことができる。書き込みデータまたはパリティデータのいずれかのデータ内でエラーが検出されると、第２レベルのエラー訂正（例えば、前述したパリティデータに関連する訂正）の実施前におよび／または実施することなく、第１レベルのエラー訂正で、エラー訂正データがエラーを訂正しようとする試みで使用できる。メモリシステムは、閾値数の誤りビットを訂正可能にする十分なエラー訂正データを格納し得る。エラー訂正データで訂正可能な数よりも多いビットエラーを含むエラーが検出されると（例えば、読み取り動作中のＵＥＣＣエラー）、第２レベルのエラー訂正（例えば、前述したパリティデータの使用）が実施され得、例えば、エラーに関連するデータがパリティデータおよび書き込みデータの残りを使用して再作成され得る。
【００４４】
データは第１ストライプ４４４−１に書き込むことができる。ストライプへのデータ書き込みは、書き込みデータのいくつかの断片（例えば、ページ、セクターなど）への分割、および各チャネル４４２−１、．．．、４４２−（Ｎ−１），４４２−Ｎに関連するメモリ装置への断片の書き込みを含むことができる。１つまたは複数の実施形態は、複数のメモリ装置の各々への（例えば、各チャネル４４２−１、．．．、４４２−（Ｎ−１），４４２−Ｎへの）少なくとも１つの断片の書き込みを含むことができる。書き込みデータと共にパリティデータの書き込みを含むいくつかの実施形態では、書き込みデータの少なくとも１つの断片がチャネルの第１サブセット（例えば、チャネル４４２−１、．．．、４４２−（Ｎ−１））に関連する１つまたは複数のメモリ装置に書き込まれ、パリティデータがチャネルの第２サブセット（例えば、４４２−Ｎ）に関連する１つまたは複数のメモリ装置に書き込まれる。
【００４５】
メモリシステムは、書き込みコマンド、書き込みデータ、および書き込みデータに関連するいくつかのＬＢＡを受信できる。ＬＢＡ数に関連する書き込みデータは、第１ストライプ４４４−１に書き込むことができる。その後、メモリシステムは、書き込みコマンドを受信して、第１ストライプ４４４−１に書き込まれたデータに関連する特定の１つまたは複数のＬＢＡ（例えば、第１ストライプ４４４−１に書き込まれたデータに関連する少なくとも１つのＬＢＡと同じＬＢＡ）に関連する書き込みデータを更新できる。場合によっては、後続の書き込みコマンドは、更新データに加えて、無関係なデータ（例えば、関連するデータが第１ストライプ４４４−１に書き込まれなかったＬＢＡに関連するデータ）を伴い得る。場合によっては、更新データを含む後続の書き込みコマンドは、無関係なデータを含む別の後続の書き込みコマンドと結合され得る。
【００４６】
１つまたは複数の実施形態では、第１ストライプ４４４−１の一部は、記憶ボリューム４４０に渡って書き込まれる第２ストライプ４４４−２の一部に更新データを書き込むことによって更新できる。メモリシステムは、更新データを書き込み、同時に、別の無関係なデータを第２ストライプ４４４−２に書き込むことができる。更新データおよび無関係なデータの第２ストライプ４４４−２への書き込みは、更新データだけを第２ストライプ４４４−２に書き込むことに比べて、第２ストライプ４４４−２の記憶ボリュームの利用を増加させる。「無関係なデータ」は、関連データが第１ストライプに書き込まれたＬＢＡに関連しないデータを意味する。第２ストライプ４４４−２の書き込みに関連して、メモリシステムはＬＢＡテーブル（例えば、図２のＬＢＡテーブル２３４）を、特定のＬＢＡに関して更新されたデータ位置で更新できる。メモリシステムは、更新データに関連する第１ストライプ４４４−１の一部が現在は無効であることを示すために、ブロックテーブル（例えば、図２のブロックテーブル２３６）を更新できる。
【００４７】
第１ストライプに格納されているデータの断片を更新するためのいくつかの従来の手法によれば、データのストライプ全体が読み取られ、断片が更新されて（例えば、変更されて）、そのストライプ（更新データおよび第１ストライプからのデータの残り）が同じ第１ストライプまたは第２ストライプのいずれかに書き込まれていた。しかし、本開示の１つまたは複数の実施形態によれば、第１ストライプのデータの断片は、第１ストライプを読み取ることもコピーすることもなく、更新できる。かかる実施形態は、読み取りまたはコピー動作を含まない更新書き込み動作を可能にすることにより、いくつかの従来の手法に対してデバイス性能を向上させることができる（例えば、小規模なランダム書き込み性能が向上できる）。
【００４８】
第１ストライプ４４４−１の無効な一部および第１ストライプ４４４−１の残りは、第１ストライプ４４４−１がリクレイムされるまで保持され得る。第１ストライプ４４４−１の無効な部分の保持は、第１ストライプ４４４−１の無効な部分が第１ストライプ４４４−１の残りと異なる消去ブロックにある場合でさえ、第１ストライプ４４４−１の無効な部分の消去の防止を含むことができる。第１ストライプの残りの保持は、少なくとも第１ストライプ４４４−１の残りの部分の読み取りを含むことができる。いくつかの実施形態では、非更新データの一部は、非更新データの残りを読み取ることなく読み取ることができる。第１ストライプ４４４−１の残りの保持は、第１ストライプ４４４−１の残りの消去の防止を含むことができる。つまり、第１ストライプ４４４−１の残りは、第１ストライプの無効な部分が更新されていないかのように、動作し続けることができる。
【００４９】
第１ストライプ４４４−１は、前述の通り、パリティデータの使用を含め、エラー訂正を容易にするために、本明細書で説明するように、保持できる。すなわち、第１ストライプ４４４−１の一部を無効にした後、第１ストライプ４４４−１の有効な部分でＵＥＣＣエラーが生じ得る。第１ストライプに格納されているパリティデータは、第１ストライプ４４４−１内の非更新書き込みデータ（本明細書では「オリジナル（ｏｒｉｇｉｎａｌ）」と呼ぶ）に基づいて計算されたため、非更新書き込みデータは、ＵＥＣＣエラーのある第１ストライプ４４４−１の有効な部分に対する置換データを計算するために使用されたであろう。ＵＥＣＣエラーに応じて計算された置換データは、第１ストライプ４４４−１からのデータの残りを書き込むことなく、第３ストライプ（例えば、４４４−Ｐ）に書き込むことができる。いくつかの実施形態では、置換データは、第１ストライプ４４４−１および／または第２ストライプ４４４−２内のデータに無関係なデータと同時に第３ストライプに書き込むことができる。本開示の１つまたは複数の実施形態によれば、無効なデータが異なるストライプの有効なデータで更新された後、無効なデータはストライプ内で保持できる。かかる実施形態は、ストライプの一部を更新する際に、ストライプ全体の読み取りおよびコピーを含むいくつかの従来の手法に関する動作上のオーバーヘッドの量を削減できる。
【００５０】
第１ストライプ４４４−１は、リクレイムされ得る、例えば、消去されて将来の書き込み動作で利用可能にされ得る。第１ストライプ４４４−１のリクレイミング（ｒｅｃｌａｉｍｉｎｇ）は、例えば、本明細書で説明の通り、ウェアレベリング動作に応じて、第１ストライプ４４４−１の残り（例えば、有効な部分）の第３ストライプ（例えば、ストライプ４４４−Ｐ）へのコピーを含むことができる。例えば、第１ストライプ４４４−１は、第１ストライプ４４４−１の全ての部分が無効な（例えば、他のストライプに更新されている）場合に、リクレイムされ得る。第１ストライプ４４４−１の有効な部分の第３ストライプへのコピーは、有効な部分からのデータおよび他の無関係なデータの第３ストライプへの同時書き込みを含むことができる。第１ストライプをリクレイムすることは、第１ストライプに関連するソリッドステートメモリ装置を消去することを含むことができる。本開示の１つまたは複数の実施形態は、いくつかの従来の手法に従って生じ得るようなブロックベースよりはむしろ、ストライプベースでのメモリシステムの部分をリクレイムすることを含むことができる。ストライプベースのリクラメーションは、パリティデータ、有効データ、および無効データを用いた後のＵＥＣＣ訂正での潜在的使用のために、無効データをストライプ内に保持する能力をさらに提供できる。
【００５１】
本開示の１つまたは複数の実施形態は、第１ストライプ４４４−１の一部に関連したエラーの検出、第１ストライプ４４４−１からの第１ストライプ４４４−１の一部の有効な除去（例えば、無効化）、および除去された部分なしでの第１ストライプ４４４−１の動作を含むことができる。例えば、ＵＥＣＣエラーは、特定チャネル、例えば、チャネル４４２−（Ｎ−１）に関連し得る。チャネル４４２−（Ｎ−１）に渡って書き込まれたデータは、第１ストライプ４４４−１に関連したチャネルの残りからの書き込みデータおよびパリティデータ（および適用できる場合にはエラー訂正データ）を用いて置換データを計算することにより再作成できる。置換データは、例えば、第１ストライプ４４４−１からのデータの残りを書き込むことなく、第２ストライプ４４４−２に書き込むことができる。その後、第１ストライプ４４４−１は、除去されたチャネル４４２−（Ｎ−１）を使用することなく、動作可能である。例えば、第１ストライプ４４４−１への後続の書き込み動作は、除去されたチャネル４４２−（Ｎ−１）以外のチャネルに関連するデータ（例えば、パリティビットにつき１つ少ないビット）に基づくパリティデータの計算を含むことができる。
【００５２】
ブロックテーブル（例えば、図２のブロックテーブル２３６）には、第１ストライプ４４４−１の除去された部分（例えば、チャネル４４２−（Ｎ−１））が有効に除去されているという指示が提供できる。除去されたチャネル４４２−（Ｎ−１）なしでの第１ストライプ４４４−１の動作は、第１ストライプ４４４−１がリクレイムされた後、データおよび／またはパリティデータを除去されたチャネル４４２−（Ｎ−１）に書き込むことなく、いくつかのメモリ装置によって提供された記憶ボリューム４４０に渡る第１ストライプ４４４−１へのデータおよび／またはパリティデータの書き込みを含むことができる。除去された部分は、チャネルである必要はない。除去された部分は、メモリ装置、ダイ、ブロック、ページ、またはメモリシステムの何らかの他の部分にできる。
【００５３】
図５は、本開示の１つまたは複数の実施形態に従った、メモリ装置５１０の一部の概略図を示す。図５には示されていないが、当業者には、メモリ装置５１０は、その動作に関連する種々の周辺回路と共に半導体ダイ上に配置できることが理解されるであろう。メモリ装置５１０は、メモリセルの１つまたは複数のアレイを含むことができる。
【００５４】
図５に示すように、メモリ装置５１０は、メモリセルのいくつかの物理ブロック５６０−１（ブロック１）、５６０−２（ブロック２）、．．．、５６０−Ｍ（ブロックＭ）を含むことができる。図５に示す例では、標識「Ｍ」は、メモリ装置５１０がいくつかの物理ブロックを含むことができることを示すために使用される。一例として、メモリ装置５１０内の物理ブロック数は、１２８ブロック、４，０９６ブロック、または３２，７６８ブロックであり得るが、実施形態は、メモリ装置内の物理ブロックを特定数または複数に限定しない。さらに、実施形態は、アレイで使用されるメモリの種類（例えば、不揮発性、揮発性、など）を限定しない。図５に示す実施形態では、メモリ装置５１０は、例えば、各物理ブロック５６０−１、５６０−２、．．．、５６０−Ｍ内のメモリセルが単位として一緒に消去できる（例えば、各物理ブロック内のセルが実質上、同時的に消去できる）ように、例えば、ＮＡＮＤフラッシュメモリ装置５１０にできる。例えば、各物理ブロックのセルは、単一の消去動作で一緒に消去できる。
【００５５】
図５にはそのようなものとして明確に指定されていないが、いくつかのブロックは、ソリッドステートメモリ装置（例えば、図１のソリッドステートメモリ装置１１０−１、．．．、１１０−Ｎ）内へのデータ書き込みに関連する書き込み増幅量を削減するために、予備のブロックとして指定できる。予備のブロックは、データが書き込めないブロックとして指定できるメモリアレイ内のブロックにできる。書き込み増幅は、空きスペースとして指定されている（すなわち、静的データが書き込まれない場所）メモリアレイ上の空き容量を増やすことにより削減でき、従って、再配置する必要のあるデータが少ないため、書き込む必要のあるデータ量の増幅の削減が可能になる。さらに、予備のブロックは、メモリシステムの動作中に訂正不可能なエラーまたは他のエラーを経験するブロックに対する置換ブロックとして使用できる。例えば、メモリシステムは、チャネル毎に特定数のブロックが予備として予約されるように、構成できる。ストライプの一部として動作されているチャネル内の特定ブロックが訂正不可能なエラーまたは他のエラーを経験すると、そのチャネルからの予備ブロックの１つが、ストライプが同じサイズを維持できる（例えば、同じ数のチャネルおよび／またはメモリ装置を含む）ように、特定ブロックの置換に使用できる。ストライプが同じサイズで動作を継続できるようにするために、特定ブロックに関連するアドレスが、置換ブロックのアドレスで更新されるようにブロックテーブルが更新できる。
【００５６】
標識「Ｒ」は、物理ブロック（例えば、５６０−１、５６０−２、．．．，５６０−Ｍ）がいくつかの行を含むことができることを示すために使用される。いくつかの実施形態では、各物理ブロック内の行数（例えば、ワード線）を３２にすることができるが、実施形態は、物理ブロック毎に特定の行数５７０−１、５７０−２、．．．，５７０−Ｒに限定されない。当業者には分かるように、各行５７０−１、５７０−２、．．．，５７０−Ｒは、１つまたは複数の物理ページ（例えば、偶数ページおよび奇数ページ）を含むことができる。物理ページは、書き込みおよび／または読み取りの単位、例えば、一緒に、もしくはメモリセルの機能グループとして書き込みおよび／または読み取りが行われるセル数を参照する。従って、偶数ページおよび奇数ページは、別個の書き込みおよび／または読み取り動作で、書き込みおよび／または読み取りを行うことができる。マルチレベルセル（ＭＬＣ）を含む実施形態について、物理ページは、論理的に、データの上位ページ（ｕｐｐｅｒ  ｐａｇｅ）および下位ページ（ｌｏｗｅｒ  ｐａｇｅ）に分けることができる。例えば、１つのメモリセルは、１つまたは複数のビットをデータの上位ページに、１つまたは複数のビットをデータの下位ページに提供することができる。従って、論理上位ページおよび論理下位ページが両方とも同じ物理ページの一部であるため、データの上位ページおよび下位ページは、１つ書き込みおよび／または読み取り動作の一部として、書き込みおよび／または読み取りを行うことができる。図を簡単にするため、図５の各行５７０−１、５７０−２、．．．，５７０−Ｒは、１つの物理および論理ページのみを含んでいるが、実施形態はそのように限定されない。
【００５７】
本開示の１つまたは複数の実施形態では、図５に示すように、１ページは、いくつかのセクター５８０−１、５８０−２、．．．、５８０−Ｓ内にデータを格納することができる。標識「Ｓ」は、１ページがいくつかのセクターを含むことができることを示すために使用される。各セクター５８０−１、５８０−２、．．．、５８０−Ｓは、システムおよび／またはユーザーデータを格納することができ、誤り訂正符号（ＥＣＣ）情報、および論理ブロックアドレス（ＬＢＡ）情報などのオーバーヘッド情報を含むことができる。当業者には分かるように、論理ブロックアドレス方式は、ホストによってセクターの情報を識別するために使用できる（例えば、各セクターが一意のＬＢＡに対応できる）方式である。１つまたは複数の実施形態では、セクターは、記憶ボリュームの最小アドレス可能部分である。一例として、１セクターのデータは、いくつかのバイトのデータ（例えば、２５６バイト、５１２バイト、または１，０２４バイト）にすることができる。例えば、ＳＳＤは、１ページに４、８、または１６セクターを有することができ、そこで、１セクターは５１２バイトにでき、そして、ＳＤＤは、物理ブロック当たり１２８、２５６、または５１２ページを有することができ、従って、物理ブロックサイズは１３１０７２バイト、２６２１４４バイト、および５２４２８８バイトである。実施形態は、これらの例に限定されない。
【００５８】
物理ブロック５６０−１、５６０−２、．．．、５６０−Ｍ、行５７０−１、５７０−２、．．．、５７０−Ｒ、セクター５８０−１、５８０−２、．．．、５８０−Ｓ、およびページに対して他の構成が可能であることに留意されたい。例えば、物理ブロック５６０−１、５６０−２、．．．、５６０−Ｍの行５７０−１、５７０−２、．．．、５７０−Ｒは各々、例えば、５１２バイトより多いかまたは少ないデータを含むことができる単一セクターに対応するデータを格納できる。
【００５９】
〔結論〕
本開示は、ストライプベースのメモリ動作のための方法および装置を含む。一方法実施形態は、複数のメモリ装置の記憶ボリュームに渡る第１ストライプへのデータ書き込みを含む。第１ストライプの一部は、複数のメモリ装置の記憶ボリュームに渡る第２ストライプの一部に更新データを書き込むことによって更新される。第１ストライプの一部は無効にされる。第１ストライプの無効な部分および第１ストライプの残りは、第１ストライプがリクレイムされるまで保持される。
【００６０】
ある要素が別の要素「の上にある」、「に接続されている」、または「と結合されている」として参照されている場合、それは、直接他の要素の上にある、他の要素に接続されているか、または結合されている、もしくは介在要素が存在し得ることを理解されるであろう。対照的に、ある要素が別の要素「の直接上にある」、「に直接接続されている」、または「と直接結合されている」として参照されている場合には、介在要素または層は存在しない。本明細書では、用語「および／または」は、１つまたは複数の関連する記載項目の任意および全ての組み合わせを含む。
【００６１】
本明細書では、用語「および／または」は、１つまたは複数の関連する記載項目の任意および全ての組み合わせを含む。本明細書では、用語「または」は、特に断りのない限り、論理的に包括的ＯＲを意味する。すなわち、「ＡまたはＢ」は、（Ａのみ）、（Ｂのみ）、または（ＡとＢの両方）を含むことができる。言い換えれば、「ＡまたはＢ」は、「Ａおよび／またはＢ」もしくは「ＡおよびＢの１つまたは複数」を意味することができる。
【００６２】
第１、第２、第３などという用語は、本明細書では、様々な要素を記述するために使用され得るが、これらの要素は、これらの用語によって限定されるべきでないことが理解されるであろう。これらの用語は、１つの要素を別の要素と区別するためにのみ使用される。従って、第１要素は、本開示の教示内容から逸脱することなく、第２要素と称することができる。
【００６３】
本明細書では、特定の実施形態が図示および説明されているが、当業者には、同一結果を達成するために算出された配置が、例示した特定の実施形態の代わりに使用できることが分かるであろう。本開示は、本開示の１つまたは複数の実施形態の適用または変形例に及ぶよう意図されている。前述の説明は、制限的な方法ではなく、例示的な方法でなされていることを理解されたい。前述の実施形態、および本明細書では具体的に説明されていない他の実施形態の組み合わせが、当業者には、前述の説明を検討すると、明らかであろう。本開示の１つまたは複数の実施形態の範囲は、前述の構造および方法が使用される他の適用を含む。それ故、本開示の１つまたは複数の実施形態の範囲は、添付の特許請求の範囲に関連し、かかる特許請求の範囲が権利を与えられる相当物の全範囲と共に決定されるべきである。
【００６４】
前述の「発明を実施するための形態」では、本開示をすっきりさせる目的で、いくつかの特徴が単一の実施形態にまとめられている。開示のこの方法は、本開示の開示された実施形態は、各請求項に明示的に列挙されているよりも多くの特徴を使用する必要があるという意図の反映として解釈されるものではない。むしろ、以下の特許請求の範囲が反映するように、発明の主題は、単一の開示された実施形態の全特徴より少ない。従って、以下の特許請求の範囲は、各請求項が別個の実施形態として独立し、本明細書により、「発明を実施するための形態」に組み込まれる。
【図１】
0005841056.tif 000002
【図２】
0005841056.tif 000003
【図３】
0005841056.tif 000004
【図４】
0005841056.tif 000005
【図５】
0005841056.tif 000006