(57)【特許請求の範囲】
【請求項１】
ストライプマッピングのための方法であって、
第一のストライプマップに従って、複数のメモリデバイスの保存ボリュームにわたるいくつかのストライプにデータを書き込むことであって、前記いくつかのストライプの各々はいくつかの要素を含み、前記第一のストライプマップは、前記いくつかのストライプを識別するためのいくつかのストライプインデックスおよび前記いくつかのストライプの各々に含まれた要素を識別するためのいくつかの要素識別子を含む、ことと、
前記第一のストライプマップの逆のストライプマップである第二のストライプマップを保存することと、
前記第二のストライプマップを用いて、１つまたはそれより多くの不良な要素を含む１つまたはそれより多くのストライプを識別するためのＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  Ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ）読み出しエラー回復動作を実施することと、
前記第一のストライプマップにおける前記１つまたはそれより多くの不良な要素を含む前記１つまたはそれより多くのストライプを更新することと、
を含む方法。
【請求項２】
前記いくつかのストライプインデックスの各々を前記複数のメモリデバイスにおける前記要素の一部と関連付けることによって前記第一のストライプマップを作成することを含む、請求項１に記載の方法。
【請求項３】
前記いくつかのストライプの各々をパリティ要素識別子と関連付けることによって前記第一のストライプマップを作成することを含む、請求項１に記載の方法。
【請求項４】
前記いくつかのストライプに含めるための前記要素を、前記要素と関連付けられたビットエラーレートに基づいて選択することによって、前記第一のストライプマップを作成することを含む、請求項１に記載の方法。
【請求項５】
前記いくつかのストライプに含めるためのいくつかのページを、前記複数のメモリデバイス内の前記いくつかのページの場所に基づいて選択することによって、前記第一のストライプマップを作成することを含む、請求項１に記載の方法。
【請求項６】
前記いくつかのストライプにデータを書き込むことは、前記データを前記いくつかの要素に分割することおよび前記いくつかの要素を前記複数のメモリデバイスに書き込むことを含む、請求項１に記載の方法。
【請求項７】
前記いくつかの要素を前記複数のメモリデバイスに書き込むことは、少なくとも１つの要素を前記複数のメモリデバイスの各々に書き込むことを含む、請求項６に記載の方法。
【請求項８】
前記いくつかの要素を前記複数のメモリデバイスに書き込むことは、少なくとも１つの要素を前記複数のメモリデバイスのサブセットの各々に書き込むことを含む、請求項６に記載の方法。
【請求項９】
少なくとも１つの要素を前記複数のメモリデバイスのサブセットの各々に書き込むことは、前記書き込みデータの各ページを前記複数のメモリデバイスのサブセットの各々に書き込むことを含む、請求項８に記載の方法。
【請求項１０】
装置であって、
いくつかのメモリデバイスと、
前記いくつかのメモリデバイスに結合されたコントローラであって、
特定のストライプの特定の要素を定義する第一のストライプマップであって、前記いくつかのメモリデバイスにおけるいくつかのストライプの各要素のための要素識別子を含む第一のストライプマップを保存し、
前記第一のストライプマップによって定義される前記いくつかのストライプの要素に書き込まれるデータを前記いくつかのメモリデバイスに書き込み、
１つまたはそれより多くの不良な要素を含む１つまたはそれより多くのストライプを識別するための読み出しエラー回復動作を実施するために使用される第二のストライプマップであって、前記第一のストライプマップの逆のストライプマップを含む第二のストライプマップを保存し、
前記第一のストライプマップにおける前記１つまたはそれより多くの不良な要素を含む前記１つまたはそれより多くのストライプを更新する
ように構成されるコントローラと、
を含む装置。
【請求項１１】
各要素のための前記要素識別子は、チャネル情報、デバイス情報、ブロック情報、およびページ情報を含む、請求項１０に記載の装置。
【請求項１２】
特定のストライプの前記特定の要素は様々なビットエラーレートを含む、請求項１０に記載の装置。
【請求項１３】
特定のストライプの前記特定の要素は前記いくつかのメモリデバイス内における物理的な場所に基づいて選択される、請求項１０に記載の装置。
【請求項１４】
前記物理的な場所は、前記物理的な場所と関連付けられたビットエラーレートに基づいて選択される、請求項１３に記載の装置。
【請求項１５】
いくつかの要素のうちの任意の要素は特定のストライプに含められることが可能である、請求項１０に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、半導体メモリデバイス、方法、およびシステムに関し、より具体的には、メモリにおけるストライプマッピングに関する。
【背景技術】
【０００２】
メモリデバイスは、コンピュータまたは他の電子デバイスにおける、内部の、半導体の、集積回路として典型的に備えられる。揮発性及び不揮発性メモリを含む多くの異なるタイプのメモリがある。揮発性メモリは、そのデータを維持するために電力を必要とする場合があり、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）および同期型ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）、その他を含む。不揮発性メモリは、電力が与えられないとき、保存された情報を保持することで持続性のあるデータを提供することが可能であり、ＮＡＮＤフラッシュメモリ、ＮＯＲフラッシュメモリ、リードオンリーメモリ（ＲＯＭ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）およびＰＣＲＡＭ（Ｐｈａｓｅ  Ｃｈａｎｇｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、その他を含む場合がある。
【０００３】
メモリデバイスは、組み合わされてソリッドステートドライブを形成することが可能である。ソリッドステートドライブは、例えばＮＡＮＤフラッシュメモリおよびＮＯＲフラッシュメモリといった不揮発性メモリおよび／または例えばＤＲＡＭおよびＳＲＡＭといった揮発性メモリを、不揮発性および揮発性メモリの他の多様なタイプの他に、含み得る。窒化物層に電荷捕獲の情報を保存するＳＯＮＯＳ（Ｓｅｍｉｃｏｎｄｕｃｔｏｒ−Ｏｘｉｄｅ−Ｎｉｔｒｉｄｅ−Ｏｘｉｄｅ−Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）およびＭＯＮＯＳ（Ｍｅｔａｌ−Ｏｘｉｄｅ−Ｎｉｔｒｉｄｅ−Ｏｘｉｄｅ−Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）キャパシタ構造を使用するフローティングゲートフラッシュデバイスおよび電荷捕獲フラッシュ（ＣＴＦ）デバイスを含むフラッシュメモリデバイスは、電子用途の広い範囲で不揮発性メモリとして利用され得る。フラッシュメモリデバイスは、高メモリ密度、高信頼性および低電力消費を可能とする１トランジスタメモリセルを典型的に使用する。
【０００４】
ソリッドステートドライブは、性能、サイズ、重量、耐久性、動作温度範囲および電力消費の観点でハードドライブに対する利点を持ち得るため、ＳＳＤはコンピュータのための主記憶デバイスとしてのハードディスクの代わりとして使用されることが可能である。例えば、ＳＳＤは可動部品がなくそれによってシーク時間、待ち時間、および磁気ディスクドライブに関連する他の電気機械的な遅延を防ぎ得るために、磁気ディスクドライブと比べたとき、より優れた性能を持つことが可能である。内部バッテリ供給を使用しない場合があり、したがってドライブをより汎用的かつコンパクトにすることが可能なフラッシュＳＳＤを作るために、ＳＳＤ製造者は非揮発性フラッシュメモリを使用することが可能である。
【０００５】
ＳＳＤは、例えばいくつかのメモリチップといったいくつかの（本明細書で使用される場合、「いくつかの」あるものは、１つまたはそれより多くのそのようなものをさすことが可能であり、例えばいくつかのメモリデバイスは１つまたはそれより多くのメモリデバイスをさすことが可能である。）メモリデバイスを含むことが可能である。当業者が理解するであろうように、メモリチップはいくつかのダイおよび／または論理ユニット（ＬＵＮ）を含むことが可能である。各ダイはいくつかのメモリアレイおよび周辺回路をその上に含むことが可能である。メモリアレイはいくつかの物理ページに整理されるいくつかのメモリセルを含むことが可能であり、物理ページはいくつかのブロックに整理されることが可能である。
【０００６】
ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  Ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ）は複数のメモリデバイスの間でデータを分割および／または複製するコンピュータデータ保存方式のための包括的用語である。ＲＡＩＤアレイにおける複数のメモリデバイスはコンピュータのユーザおよびオペレーティングシステムには、単一の、例えばディスクといった、メモリデバイス、として見え得る。歴史的に、ＲＡＩＤは複数のハードディスクドライブ（ＨＤＤ）と共に動作してきた。
【図面の簡単な説明】
【０００７】
【図１】本開示のいくつかの実施形態に従う、少なくとも１つのメモリシステムを含むコンピューティングシステムの形態の装置の機能ブロック図である。
【図２】本開示のいくつかの実施形態に従う、メモリデバイスの部分の図を示す。
【図３】ストライプ基準で動作される保存ボリュームのブロック図を示す。
【図４】本開示のいくつかの実施形態に従う、ストライプマップを示す。
【図５】本開示のいくつかの実施形態に従う、ストライプマップを示す。
【発明を実施するための形態】
【０００８】
本開示は、メモリにおけるＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  Ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ）ストライプマッピングのための方法および装置を含む。１つの方法の実施形態はストライプマップに従って複数のメモリデバイスの保存ボリュームにわたっていくつかのストライプにデータを書き込むことを含み、いくつかのストライプの各々はいくつかの要素を含み、ストライプマップはいくつかのストライプを識別するためのいくつかのストライプインデックスおよびいくつかのストライプの各々に含められる要素を識別するためのいくつかの要素識別子を含む。
【０００９】
いくつかの実施形態において、ストライプによってインデックス付けされるストライプマップが作成されることが可能である。ストライプマップはいくつかのメモリデバイスにデータを書き込むときに使用されることになる各ストライプのためのストライプページインデックスを含むことが可能である。ストライプマップは例えばページといった各要素を、ストライプに含められることになるいくつかのメモリデバイス上で、識別することも可能である。例えば、ストライピングマップは第一のストライプのストライプインデックスを用いて第一のストライプを識別することが可能であり、また、第一のストライプに含められることになる、例えばページといったいくつかの要素を識別することも可能である。ストライプはいくつかのページを含むことが可能であり、ストライプのいくつかのページの各々はメモリシステムの異なるチャネルに結合されることが可能である。
【００１０】
いくつかの実施形態において、ストライプマップは各ストライプが様々なビットエラーレートを持つ要素を持つようにメモリシステムにおけるストライプを定義するために使用されることが可能である。様々なビットエラーレートを持つ要素を持つメモリシステムはストライプを読み出すときにエラーを返す複数の要素を特定のストライプが持つことになる可能性を低減することが可能である。
【００１１】
本開示の以下の詳細な記載において、本明細書の一部を成し、開示の１つまたはそれより多くの実施形態がどのように実施され得るのかが例示として示される添付図面に対して参照が行われる。これらの実施形態は当業者が本開示の実施形態を実施することが可能であるために充分に詳細に記載されており、また、他の実施形態が利用され得ることおよび処理の、電気的なおよび／または構造上の変更が本開示の範囲から逸脱することなくなされ得ることが理解されるべきである。本明細書で使用される場合、指定「Ｎ」、「Ｍ」、「Ｐ」、「Ｒ」、「Ｓ」、「Ｗ」および「Ｖ」は、特に図面において参照番号に関連する場合は、そのように指定されるいくつかの特定の特徴は本開示の１つまたはそれより多くの実施形態において含められることが可能であることを示す。
【００１２】
本明細書での数字は、最初の１つまたは複数の数字は図面番号に対応し残りの数字は図面での要素またはコンポーネントを識別するナンバリング上の慣例に従う。異なる図の間における同様の要素またはコンポーネントは同様の数字の使用によって識別され得る。例えば、１０８は図１での「０８」を参照する場合があり、同様の要素は図２では２０８として参照される場合がある。理解されるであろうように、本明細書での様々な実施形態において示される要素は本開示のいくつかの追加の実施形態を提供するために、追加、交換および／または除去されることが可能である。加えて、理解されるであろうように、図面で提供される要素の比率および相対的な大きさは本発明の実施形態を説明することが意図されており、限定の意味で取られるべきでない。
【００１３】
図１は、本開示のいくつかの実施形態に従う、少なくとも１つのメモリシステムを含むコンピューティングシステムの形態の装置の機能ブロック図である。本明細書で使用される場合、ホスト１０２、メモリデバイス１２０、メモリアレイ、コントローラおよび／または検出回路は「装置」として独立的にも扱われ得る。図１に示される実施形態において、例えばソリッドステートドライブ（ＳＳＤ）といったメモリシステム１０４は例えば制御回路といったハードウエアとして、ファームウエアとしておよび／またはソフトウエアとして実装されることが可能なホストインタフェース１０６およびメモリコントローラ１０８、および、例えば不揮発性マルチレベルメモリセルを含むソリッドステートメモリデバイスといったいくつかのメモリデバイス１１０−１、．．．、１１０−Ｎを含むことが可能である。メモリデバイス１１０−１、．．．、１１０−Ｎは、例えばメモリデバイスにフォーマットされたフィルシステムと共に、メモリシステムのために保存ボリュームを提供することが可能である。いくつかの実施形態において、メモリコントローラ１０８は物理ホストインタフェース１０６およびメモリデバイス１１０−１、．．．、１１０−Ｎを含むプリント基板に結合される特定用途向け集積回路（ＡＳＩＣ）であることが可能である。
【００１４】
図１に示されるように、メモリコントローラ１０８は複数のチャネルによってホストインタフェース１０６およびメモリデバイス１１０−１、．．．、１１０−Ｎに結合されることが可能である。メモリコントローラ１０８は、当業者に理解されるであろうように、他のメモリ動作に加えて、本明細書に記載される動作を実施するように構成されることが可能である。ホストインタフェース１０６はメモリシステム１０４とホスト１０２といった他のデバイスとの間で情報を伝達するために使用されることが可能である。ホスト１０２は、例えばプロセッサといったメモリアクセスデバイスを含むことが可能である。当業者は、「プロセッサ」は並列処理システムといったいくつかのプロセッサ、いくつかのコプロセッサ、その他といったいくつかのプロセッサを意図することが可能であるということを理解するだろう。ホストの例はラップトップコンピュータ、パーソナルコンピュータ、デジタルカメラ、デジタルレコーディング装置、デジタル再生装置、携帯電話、ＰＤＡ、メモリカードリーダ、インタフェースハブ、その他を含む。いくつかの実施形態にとって、ホストインタフェー１０６は標準化されたインタフェースの形態であることが可能である。例えば、メモリシステム１０４がコンピューティングシステム１００で情報保存のために使用される場合、物理ホストインタフェース１０６は、その他のコネクタおよびインタフェースの中でも、ＳＡＴＡ（Ｓｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ）、ＰＣＩｅ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  ｅｘｐｒｅｓｓ）、またはユニバーサルシリアルバス（ＵＳＢ）とすることが可能である。しかし、一般に、ホストインタフェース１０６は、制御、アドレス、情報、その他の信号を、ホストインタフェース１０６と互換性のある受信機能を持つメモリシステム１０４とホストシステム１０２との間で、受け渡すためのインタフェースを提供することが可能である。
【００１５】
メモリコントローラ１０８はホストインタフェース１０６に結合されおよび／またはこれと一体化されることが可能であるホストインタフェース回路を含むことが可能である。ホストインタフェース回路は、例えば物理層、リンク層および／またはトランスポート層といったいくつかの層を介してホストシステム１０２とインタフェースすることが可能である。当業者は、特定のホストインタフェースのための層の数は、ＳＡＴＡ（Ｓｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ）、ＰＣＩｅ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  ｅｘｐｒｅｓｓ）、ユニバーサルシリアルバス（ＵＳＢ）、その他といったインタフェース規格によって定義されることが可能であることを理解するだろう。本明細書で使用される場合、トランスポート層は、少なくとも、ＳＡＴＡ規格の一部としてのトランスポート層および／またはＰＣＩｅ規格の一部としてのトランザクション層を指す場合がある。当業者は、ＳＡＴＡ規格に従うトランスポート層はＰＣＩｅ規格に従うトランザクション層に類似する場合があることを理解するだろう。実施形態は特定の規格に限定されない。
【００１６】
一般に、ホストインタフェース回路は、例えばＰＣＩｅバスから受信したといったような、ホストシステムから受信したコマンドパケットを、ホスト―メモリ翻訳反応（ｈｏｓｔ−ｍｅｍｏｒｙ  ｔｒａｎｓｌａｔｉｏｎ  ｒｅｓｐｏｎｓｅｓ）を、要求しているホストへの送信のためのホストシステムコマンドに変換するための、コマンド命令に変換することが可能である。例えば、ホストインタフェース回路はＰＣＩｅ準拠のトランザクション層のパケットからのＳＡＴＡコマンドパケットを生成することが可能である。ホストインタフェース回路は複数のアドレスに関連付けられる情報をホストシステム１０２から受信するように構成されることが可能である。
【００１７】
メモリコントローラ１０８は例えば読み出しおよび／または書き込みコマンドといった受信コマンドと関連付けられるアドレスといったメモリアドレスにホストアドレスを翻訳するように構成されるホスト―メモリ翻訳回路（ｈｏｓｔ−ｍｅｍｏｒｙ  ｔｒａｎｓｌａｔｉｏｎ  ｃｉｒｃｕｉｔｒｙ）を含むことが可能である。ホスト―メモリ翻訳回路は、例えば、ホストセクタ読み出しおよび書き込み動作を、メモリデバイス１１０−１、．．．、１１０−Ｎの特定の部分に向けられるコマンドに変換する場合がある。各ホスト動作は単一セクタのまたは複数セクタのメモリデバイス１１０−１、．．．、１１０−Ｎ動作に翻訳されることが可能である。例えば、ホスト読み出しコマンドおよびホスト書き込みコマンドはメモリデバイス１１０−１、．．．、１１０−Ｎ読み出しコマンドおよびメモリデバイス１１０−１、．．．、１１０−Ｎ書き込みコマンドに翻訳されることが可能である。
【００１８】
本開示のいくつかの実施形態によれば、書き込み情報は、複数のチャネルにわたって、例えばＲＡＩＤ動作に関連していくつかのソリッドステートメモリデバイスに、ストライピングされることが可能である。当業者が理解するであろうように、ストライピングすることは、例えば１より多いデバイス上でといったような、複数のチャネルにわたって保存されるように、情報を分割することを含む。分割された情報を保存する１つより多くのデバイスの部分はストライプと総称される。対照的に、ミラーリングは１つより多くのデバイス上に情報の重複したコピーを保存することを含む場合がある。
【００１９】
メモリコントローラ１０８は（図示されない）ＬＢＡテーブルおよび／またはブロックテーブルを維持することが可能である。ＬＢＡテーブルは、いくつかのメモリデバイス１１０−１、．．．、１１０−Ｎに、ページの物理ページアドレスを保存することが可能であり、対応する論理アドレスを含むことが可能である。ＬＢＡテーブルは例えば関連付けられるＳＡＴＡコマンドといった関連付けられるコマンドに保持されるＬＢＡによってインデックス付けされることが可能である。ＬＢＡテーブルは対応する情報が保存可能な論理ブロックアドレスに対応する検索物理ページに使用されることが可能である。ブロックテーブルはいくつかのメモリデバイス１１０−１、．．．、１１０−Ｎに消去可能なブロックのための情報を保存することが可能である。ブロックテーブルに保存される情報は有効なページ情報、消去回数および他の状態情報を含むことが可能である。ブロックテーブルからアクセスされる情報は物理ブロックアドレスによってインデックス付けされることが可能である。
【００２０】
メモリコントローラ１０８は情報を、他の動作の他、読み出し、書き込み、および消去するために、メモリデバイス１１０−１、．．．、１１０−Ｎと通信することが可能である。メモリデバイス１１０−１、．．．、１１０−Ｎは、総体的なメモリコントローラ１０８に結合されているように図示されるが、本開示のいくつかの実施形態は各メモリチャネルのための別個の不揮発性メモリコントローラを含むことが可能である。メモリデバイス１１０−１、．．．、１１０−Ｎは例えば不揮発性メモリセルといったメモリセルのいくつかのアレイを含むことが可能である。アレイは例えば、ＮＡＮＤ構造を持つフラッシュアレイであることが可能である。ＮＡＮＤ構造において、「行」のメモリセルの制御ゲートは例えばワード線といったアクセスに結合されることが可能であり、メモリセルは選択ゲートソーストランジスタおよび選択ゲートドレイントランジスタの間の「ストリング」におけるドレインに直列ソースで（ｉｎ  ｓｅｒｉｅｓ  ｓｏｕｒｃｅ）に結合されることが可能である。ストリングは例えばビット線といったデータ線に、選択ゲートドレイントランジスタによって接続されることが可能である。「行」および「ストリング」という語の使用はメモリセルの線形の配置も直交する配置も暗示しない。当業者によって理解されるであろうように、メモリセルのビット線およびソース線への接続の方法は、アレイがＮＡＮＤ構造なのか、ＮＯＲ構造なのかまたはいくつかの他のメモリアレイ構造なのかに依存する。
【００２１】
メモリデバイス１１０−１、．．．、１１０−Ｎは集団にまとめられることが可能ないくつかのメモリセルを含むことが可能である。本明細書で使用される場合、集団はメモリセルの、ページ、ブロック、プレーン、ダイ、アレイ全体または他の集団といった、いくつかのメモリセルを含むことが可能である。例えば、いくつかのメモリアレイはメモリセルのブロックを作るメモリセルのいくつかのページを含むことが可能である。いくつかのブロックがメモリセルのプレーンに含められることが可能である。いくつかのメモリセルのプレーンがダイに含められることが可能である。例として、１２８ＧＢのメモリデバイスは、例えば４０９６バイトの書き込み情報に加えて２１８バイトのオーバーヘッド情報といったページ当たり４３１４バイトの情報、ブロック当たり１２８ページ、プレーン当たり２０４８ブロックおよびデバイス当たり１６プレーンを含むことが可能である。
【００２２】
いくつかの実施形態において、メモリコントローラ１０８は第一のストライプマップ１２０および第二のストライプマップ１２２を含むことが可能である。いくつかの実施形態において、第一のストライプマップ１２０の少なくとも一部および／または第二のストライプマップ１２２の少なくとも一部はメモリデバイス１１０−１、．．．、１１０−Ｎ、ホストシステム１０２および／または別個の（不図示の）保存場所にも保存されることが可能である。第二のストライプマップ１２２は第一のストライプマップ１０２の逆であることが可能であり、その場合は、第一のストライプマップ１２０および第二のストライプマップ１２２は同じ情報を含み、しかし第一のストライプマップ１２０はストライプインデックスによってインデックス付けされ、第二のストライプマップ１２２はページ識別子によってインデックス付けされる。従って、第一のストライプマップ１２０はいくつかのページを特定のストライプに関連付けるために使用されることが可能であり、第二のストライプマップ１２２はいくつかのストライプを特定のページに関連付けるために使用されることが可能である。第一のストライプマップ１２０はメモリデバイス１１０−１、．．．、１１０−Ｎの特定のページを特定のストライプに関連付けるデータ構造であることが可能である。第一のストライプマップ１２０は、その各々がメモリデバイス１１０−１、．．．、１１０−Ｎでのストライプを識別するいくつかのストライプインデックスを含むことが可能である。第一のストライプマップ１２０は、メモリデバイス１１０−１、．．．、１１０−Ｎの特定のページを第一のストライプマップ１２０のストライプインデックスによって識別されるストライプと関連付けることが可能である。
【００２３】
いくつかの実施形態において、メモリコントローラ１０８は特定のページのビットエラーレートおよび／またはメモリデバイス１１０−１、．．．、１１０−Ｎ内の特定のページの物理的位置に基づいてストライプマップにおける特定のストライプと関連付けるための特定のページを選択することが可能である。例えば、メモリコントローラ１０８は、より低いビットエラーレートを持ついくつかのページとより高いビットエラーレートを持ついくつかのページを、ストライプの各々が様々なビットエラーレートを持つページを含むことになるように、ストライプに含ませるために、選択することが可能である。様々なビットエラーレートを持つページを含むストライプは訂正不可能なＥＣＣエラーをより持ちにくくあり、従ってＥＣＣ動作はストライプを読み出すときにエラーを訂正するために使用されることが可能である。
【００２４】
また、メモリコントローラ１０８はメモリデバイス１１０−１、．．．、１１０−Ｎ上でのページの物理的場所に基づいてページを選択することが可能である。例えば、メモリコントローラ１０８は、例えば「端のページ」といったアレイの端の近くに置かれるいくつかのページ、および、アレイの中心に向かって置かれるいくつかのページを、ストライプの各々がメモリデバイス１１０−１、．．．、１１０−Ｎ上での様々な物理的場所を持つページを含むことになるように、選択することが可能である。メモリコントローラ１０８は様々な数のページを持つストライプマップにおいてストライプを含むことが可能である。例えば、あるストライプは６ページ含むことが可能であり、他のストライプは５ページ含むことが可能である。また、特定のページはメモリデバイス１１０−１、．．．、１１０−Ｎ上の１つより多くのストライプに含められることが可能である。
【００２５】
ページ識別子は、メモリデバイス１１０−１、．．．、１１０−Ｎにおける特定のページの場所を識別するために、チャネル情報、デバイス情報、ブロック情報および／またはページ情報を含むことが可能である。ページ識別子はページの物理アドレスを含むことが可能である。ページ識別子は読み出しおよび／または書き込み動作を実行するときページの場所を特定するためにメモリコントローラ１０８によって使用されることが可能である。
【００２６】
ホスト―メモリ翻訳回路は第一のおよび／または第二のレベルエラー検出回路（図１に図示されず）を含むことが可能である。エラー検出回路として参照されるが、エラー検出回路はエラー訂正を行うことも可能である。第一のレベルエラー検出回路は、当業者によって理解されるであろうように、メモリデバイス１１０−１、．．．、１１０−Ｎに保存される情報と関連付けられるエラーを検出するおよび／または訂正するために、ＢＣＨエラー訂正といったエラー訂正を適用するように構成されることが可能である。例えば、第一のレベルエラー検出回路は１０８０ビットの符号語ににわたるエラー訂正の２９ビットを提供することが可能である。第二のレベルエラー検出回路は、例えば訂正不可能なエラー訂正符号（ＵＥＣＣ）エラーといった、第一のレベルエラー検出によっては訂正可能ではないエラーを、例えば訂正可能なエラーの閾値の量を超えて存在するということを特定することにより、検出することが可能である。第二のレベルエラー検出回路はＲＡＩＤ排他的ＯＲ（ＸＯＲ）回路を含むことが可能である。ＲＡＩＤ  ＸＯＲ回路はホストインタフェース回路から受信する情報に基づいてパリティ情報を計算することが可能である。いくつかのメモリデバイス１１０−１、．．．、１１０−Ｎに書き込まれる各ビットに関して、パリティビットはＲＡＩＤ  ＸＯＲ回路によって計算されることが可能であり、メモリデバイス１１０−１、．．．、１１０−Ｎの特定の１つに書き込まれることが可能である。
【００２７】
第二のストライプマップ１２２はメモリデバイス１１０−１、．．．、１１０−Ｎでの特定のストライプをメモリデバイス１１０−１、．．．、１１０−Ｎでの特定のページに関連付けるデータ構造であることが可能である。第二のストライプマップ１２２はページによってインデックス付けされることが可能であり、その各々がメモリデバイス１１０−１、．．．、１１０−Ｎでのページを識別するいくつかのページ識別子を含むことが可能である。第二のストライプマップ１２２は第二のストライプマップ１２２でインデックス付けされるページにどのストライプが関連付けられるかを示すことが可能である。ページによってインデックス付けされる第二のストライプマップ１２２はストライプによってインデックス付けされる第一のストライプマップ１２０の逆であることが可能である。
【００２８】
いくつかの実施形態において、第二のストライプマップ１２２はＲＡＩＤ読み出しエラー回復動作を実施するために第二のレベルエラー検出回路によって使用されることが可能である。ＲＡＩＤ読み出しエラー回復動作はＵＥＣＣエラーが起きるときに実行されることが可能であり、メモリデバイス１１０−１、．．．、１１０−Ｎにおける１つまたはそれより多くのストライプの一部である不良なページからのデータは異なるページに移動されることが可能である。不良なページは、読み出し動作を行うときにＵＥＣＣエラーが起こるページである場合がある。ＲＡＩＤ読み出しエラー回復動作は、不良なページのページ識別子を第二のストライプマップ１２２に置くことによって第二のストライプマップ１２２を使用することが可能であり、不良なページを含んだメモリデバイス１１０−１、．．．、１１０−Ｎにおけるストライプを特定することが可能である。不良なページを含むと第二のストライプマップ１２２によって識別されるストライプは、不良なページからのデータがパリティデータを使って回復され、データがメモリデバイス１１０−１、．．．、１１０−Ｎでの異なるページに移動されるように、更新されることが可能である。第一のストライプマップ１２０はメモリデバイス１１０−１、．．．、１１０−Ｎでの更新されたストライプに異なるページのページ識別子を関連付けるようにその後更新されることが可能である。
【００２９】
図１の実施形態は、本開示の実施形態を不明瞭にしないために、図示されない追加の回路を、含むことが可能である。例えば、メモリシステム１０４は、Ｉ／Ｏ回路を介したＩ／Ｏ接続にわたって提供されるアドレス信号をラッチするためにアドレス回路を含むことが可能である。アドレス信号は行デコーダおよび列デコーダによって、メモリデバイス１１０−１、．．．、１１０−Ｎにアクセスするために、受信されデコードされることが可能である。アドレス入力接続の数はメモリデバイス１１０−１、．．．、１１０−Ｎの密度および構造に依存するということが当業者によって理解されるだろう。
【００３０】
図２は、本開示のいくつかの実施形態に従う、メモリデバイス２１０の部分の図を示す。メモリデバイス２１０は、図１に示されるメモリデバイス１１０−１〜１１０―Ｎといったデバイスであることが可能である。
【００３１】
図２に示されるように、メモリデバイス２１０は、メモリセルのいくつかの物理ブロック２６０−０（ブロック０）、２６０−１（ブロック１）、．．．、２６０−Ｍ（ブロックＭ）を含むことが可能である。図２に示される例において、符号「Ｍ」は、メモリデバイス２１０はいくつかの物理ブロックを含むことが可能であることを示すために使用される。例として、メモリデバイス２１０での物理ブロックの数は、１２８ブロック、４０９６ブロックまたは３２７６８ブロックであり得、しかし、実施形態は、メモリデバイスでの物理ブロックの特定の数にも複数（ｍｕｌｔｉｐｌｅ）にも限定されない。図２に示される実施形態において、メモリデバイス２１０は、例えば各物理ブロック２６０−０、２６０−１、．．．、２６０−Ｍが、例えば各物理ブロックにおけるセルが実質的に同時の方法で消去されることが可能であるといったように単位（ｕｎｉｔ）として共に消去されることが可能であるように、例えばＮＡＮＤフラッシュメモリデバイス２１０であることが可能である。例えば、各物理ブロックにおけるセルが１つの消去動作で共に消去されることが可能である。
【００３２】
符号「Ｒ」は、例えば２６０−０、２６０−１、．．．、２６０−Ｍといったような物理ブロックはいくつかの行を含むことが可能であることを示すために使用される。いくつかの例において、各物理ブロックにおける、例えばワード線といった行の数は３２であり得、しかし、実施形態は、物理ブロック当たりの、行２７０−０、２７０−１、．．．、２７０−Ｒの特定の数に限定されない。当業者が理解するであろうように、各行２７０−０、２７０−１、．．．、２７０−Ｒは、例えば偶数のページおよび奇数のページといった１つまたはそれより多くの物理ページを含むことが可能である。物理ページは、例えば共に書き込みおよび／または読み出しされるいくつかのセルといった書き込みおよび／または読み出しの単位、または、メモリセルの機能の集団、を指す。従って、偶数のページおよび奇数のページは、別個の書き込みおよび／または読み出し動作で書き込まれおよび／または読み出されることが可能である。
【００３３】
図２に示されるように、本開示のいくつかの実施形態において、ページは、いくつかのセクタ２８０−０、２８０−１、．．．、２８０−Ｓに情報を保存することが可能である。符号「Ｓ」はページがいくつかのセクタを含むことが可能であることを示すために使用される。情報はシステムおよび／またはユーザデータを含むことが可能である。各セクタ２８０−０、２８０−１、．．．、２８０−Ｓは、システムおよび／またはユーザデータを保存することが可能であり、エラー訂正符号（ＥＣＣ）情報といったオーバーヘッド情報、および論理ブロックアドレス（ＬＢＡ）情報を含むことが可能である。当業者が理解するであろうように、論理ブロックアドレス付けは、例えば各セクタが一意のＬＢＡに対応するような、情報のセクタを識別するためにホストによって使用されることが可能である方式である。いくつかの実施形態において、セクタは保存ボリュームの最小のアドレス付け可能な部分である。例として、情報のセクタは、例えば２５６バイト、５１２バイトまたは１０２４バイトといったあるバイト数の情報であり得る。例えば、ＳＳＤはページに、４、８または１６個のセクタを持ち得、その場合、セクタは５１２バイトであり得、また、ＳＳＤは物理ブロック当たりで１２８、２５６または５１２個のページを持ち得、従って物理ブロックサイズは１３１０７２バイト、２６２１４４バイトおよび５２４２８８バイト、である。実施形態はこれらの例に限定されない。
【００３４】
物理ブロック２６０−０、２６０−１、．．．、２６０−Ｍ、行２７０−０、２７０−１、．．．、２７０−Ｒ、セクタ２８０−０、２８０−１、．．．、２８０−Ｓおよびページのための他の構成が可能であることが注意されたい。例えば、物理ブロック２６０−０、２６０−１、．．．、２６０−Ｍの行２７０−０、２７０−１、．．．、２７０−Ｒは、例えば５１２バイトより多いまたは少ない情報を含むことが可能である単一のセクタに対応する情報を各々保存することが可能である。
【００３５】
図３は、ストライプ基準で動作される保存ボリューム３４０のブロック図を示す。保存ボリューム３４０は、例えば図１の、メモリシステム（例えば図１のメモリシステム１０４）での、ソリッドステートメモリデバイス１１０−１、．．．、１１０−Ｎといったいくつかのソリッドステートメモリデバイスにフォーマットされるファイルシステムによって提供されることが可能である。本明細書で記載されるように、各ソリッドステートメモリデバイスは、メモリチャネル３４２−１、．．．、３４２−（Ｎ−１）、３４２−Ｎと関連付けられることが可能である。しかし、いくつかの実施形態はデバイス当たりに複数のチャネルを含み得るように、例えばメモリチップといったメモリデバイス当たりの１つのチャネルに実施形態は限定されない。１つのメモリチップは、例えばメモリチップがメモリセルの物理プレーンを１つより多く含む場合のように、１つより多くのチャネルによってメモリコントローラに結合されることが可能である。情報は、いくつかのソリッドステートメモリデバイスによって提供される保存ボリューム３４０にわたっていくつかのストライプ３４４−１、３４４−２、．．．、３４４−Ｐに書き込まれることが可能である。
【００３６】
メモリシステムは、例えば図１に示されるホスト１０２といったホストシステムから書き込み情報を受信することが可能である。例えば図１のメモリコントローラ１０８に関連付けられるＲＡＩＤ  ＸＯＲ回路といったメモリシステムは、書き込み情報のためのパリティ情報を計算することが可能である。いくつかの実施形態において、書き込み情報およびパリティ情報は、書き込み情報が例えばチャネル３４２−１、．．．、３４２−（Ｎ−１）といったいくつかの利用可能なチャネルのサブセットにわたって書き込まれることが可能であるように、かつ、パリティ情報が、例えばチャネル３４２−Ｎといったいくつかの利用可能なチャネルの第二のサブセットにわたって書き込まれることが可能であるように、保存ボリューム３４０にわたるストライプであることが可能である。例えば、メモリシステムは、７つのチャネルが書き込み情報を書き込むために使用され１つのチャネルがパリティ情報を書き込むために使用される８つのチャネルを含むことが可能である。本明細書に記載されるように、パリティ情報は異なるストライプのための異なるチャネルにわたって書き込まれることが可能である。実施形態は、書き込み情報のためのＮチャネルのＮ−１およびパリティ情報のための１つのチャネルを使用することに限定されない。本開示のいくつかの実施形態によれば、ＲＡＩＤ構造および／またはストライプサイズはプログラム可能な選択肢であることが可能である。
【００３７】
ＲＡＩＤ構造は、複数のメモリデバイスにわたって情報を分割および／または複製するために考案されるＲＡＩＤ保存方式の実装を表す。例えば、情報は、２つまたはそれより多くのデバイスにわたってストライピングされおよび／またはミラーリングされることが可能である。ストライピングは、書き込み情報を要素に分割すること、および、いくつかのメモリデバイスの各々に少なくとも１つの要素を保存することを含むことが可能である。ミラーリングは、書き込み情報のコピーを少なくとも２つのメモリデバイスに冗長に保存することが可能である。ストライピングおよびミラーリングは両方、エラー検出の使用を含むことが可能である。パリティ情報は、書き込み情報として同じメモリデバイスに、および／または書き込み情報を保存するデバイスとは別のデバイスに、保存されることが可能である。本開示のいくつかの実施形態によれば、メモリシステムによって実装される特定のＲＡＩＤ構造はプログラム可能な選択肢であることが可能である。
【００３８】
本明細書で使用される場合、ストライプサイズは、それにわたって情報がストライピングされるいくつかのチャネルを指すことが可能である。本開示のいくつかの実施形態によれば、メモリシステムのストライプサイズは、メモリシステムにとって利用可能な任意の数のチャネルがストライプのために使用されることが可能であるように、プログラム可能な選択肢であることが可能である。例えば、３２個のチャネルと、対応するいくつかのメモリデバイスは、２から３２個のチャンネルの任意のストライプサイズを持つことが可能である。いくつかの実施形態は、不揮発性メモリに関連付けられるいくつかのチャネルのサブセットを各々が含む少なくとも２つの部分に不揮発性メモリを論理的に分離することを含むことが可能である。そのような実施形態は、少なくとも２つの部分の各々のために独立的に、ストライプ基準で不揮発性メモリを動作させることを含むことが可能である。例えば、書き込み情報およびパリティ情報のいくつかのページは、各ストライプに書き込まれることが可能であり、その場合、第一のストライプは、メモリシステムのいくつかのチャネルのあるサブセットのみにわたって書き込まれ、また、第二のストライプは、メモリシステムのいくつかのチャネルの別のサブセットのみにわたって書き込まれる。更に、ストライプサイズは、メモリシステムの動作の間に変化し得る。ブロックテーブルは、メモリシステムのどの部分がどのストライプに対応するのかを継続的に把握するために使用されることが可能である。
【００３９】
図１でのメモリコントローラ１０８に関連付けられるＥＣＣ回路は、書き込み情報の要素のための第一のレベルエラー訂正情報、および／または、メモリデバイスに保存される、例えばパリティ情報といった、第二のレベル訂正情報、を計算することが可能である。図３は、チャネル３４２−１、．．．、３４２−（Ｎ−１）に関連して保存されている書き込み情報３４６と第一のレベルエラー訂正情報３４８、および、チャネル３４２−Ｎと関連して保存されているパリティ情報３５０および第一のレベルエラー訂正情報３４８の図示を含む。ストライプが書き込まれるとき、書き込み情報およびエラー訂正情報の両方が共に書き込まれる。もしエラーが、書き込み情報であるかパリティ情報であるかを問わず情報において検出されると、第一のレベルエラー訂正情報は、例えば上記のパリティ情報と関連付けられる訂正といったエラー訂正の第二のレベルの前におよび／またはそれを実施することなく、エラーを訂正することを意図して、第一のレベルエラー訂正情報が使用されることが可能である。メモリシステムは、閾値の数の誤りのビットが訂正されることを可能とするのに十分な第一のレベルエラー訂正情報を保存し得る。第一のレベルエラー訂正情報で訂正可能なものより多くのビットエラーを含む、例えばＵＥＣＣエラーといったエラーが書き込み動作の間にもし検出されると、例えば上記の第二のストライプマップおよびパリティ情報を使用するような、エラー訂正の第二のレベルが、例えばエラーに関連付けられる情報がパリティ情報および書き込み情報の残りを用いて再作成され得るといったように、実装され得る。
【００４０】
図４は本開示のいくつかの実施形態に従うストライプマップ４２０を示す。この例では「ページ」が参照されるが、ストライプはページではない要素を含むことが可能である。
【００４１】
図４に示される例では、ストライプマップ４２０はストライプインデックス列４３０およびいくつかのページ識別子列４３４を含むテーブルである。図４において、いくつかのストライプはストライプインデックス４３２−１、４３２−２、４３２−３、．．．４３２−Ｖによって指定される。ストライプインデックス４３２−１、４３２−２、４３２−３、．．．、４３２−Ｖの各々はいくつかのページと関連付けられる。例えば、ストライプインデックス４３２−１はページ識別子４３６−１、４３６−２、４３６−３および４３６−４と関連付けられ；ストライプインデックス４３２−２はページ識別子４３６−５、４３６−３、４３６−６および４３６−４と関連付けられ；ストライプインデックス４３２−３はページ識別子４３６−２、４３６−７、４３６−４および４３６−１と関連付けられ；ストライプインデックス４３２−Ｖはページ識別子４３６−８、４３６−７、４３６−４および４３６−Ｗと関連付けられる。２つまたはそれより多くのストライプは共通のページを含むことが可能である。例えば、ストライプインデックス４３２−１、４３２−２および４３２−３は全てページ識別子４３６−４と関連付けられる。また、ストライプは異なる数のページと関連付けられることが可能である。例えば、ストライプインデックス４３２−１は４つのページと関連付けられ、ストライプインデックス４３２−Ｖは３つのページと関連付けられる。
【００４２】
データがストライプインデックスによって識別されるストライプに書き込まれるときにストライプマップで指定されるように関連付けられるページにデータが書き込まれるように、データはストライプマップに従ってメモリデバイスに書き込まれることが可能である。例えば、ストライプインデックス４３２−１によって指定されるストライプを書き込むとき、データはページ識別子４３６−１、４３６−２、４３６−３および４３６−４によって識別されるページに書き込まれることになる。ページ識別子は、チャネル情報、デバイス情報、ブロック情報および／またはページ情報を含むことが可能である。また、各ストライプはパリティページを含むことが可能であり、各ストライプのパリティページはストライプマップの列の１つにおけるページ識別子によって指定されることが可能である。例えば、各ストライプのパリティページはストライプマップの第二の列におけるページ識別子によって識別されることが可能である。
【００４３】
図５は本開示のいくつかの実施形態に従う、ストライプマップ５２２を示す。この例では「ページ」が参照されるが、ストライプはページではない要素を含むことが可能である。ストライプマップ５２２は図４との関連で上記されたストライプマップ４２０の逆であることが可能である。図５に示される例において、ストライプマップ５２２はいくつかのストライプインデックス列５３０およびページ識別子列５３４を含むテーブルである。図５において、いくつかのページはページ識別子５３６−１、５３６−２、５３６−３、５３６−４、５３６−５、５３６−６、５３６−７、５３６−８、．．．、５３２−Ｖによって指定される。ページ識別子５３６−１、５３６−２、５３６−３、５３６−４、５３６−５、５３６−６、５３６−７、５３６−８、．．．、５３２−Ｖの各々はストライプインデックス５３２−１、５３２−２、５３２−３、．．．、５３２−Ｖによって指定されるいくつかのストライプと関連付けられる。例えば、ページ識別子５３６―３はストライプインデックス５３２−１および５３２−２によって参照されるストライプと関連付けられる。従って、ＵＥＣＣエラーに応じて、ストライプマップテーブル５２２はＲＡＩＤ読み出しエラー回復動作を実行するために使用されることが可能である。ＲＡＩＤ読み出しエラー回復動作は１つまたはそれより多くのストライプの一部である不良なページからのデータを異なるページに移動することを含むことが可能である。ＲＡＩＤ読み出しエラー回復動作はストライプマップ５２２での不良なページのページ識別子の場所を特定し、不良なページを含んだストライプを特定するために、ストライプマップ５２２を使用することが可能である。ストライプマップ５２２によって不良なページを含むと識別されるストライプは不良なページからのデータがパリティデータを使用して回復され、データが異なるページに移動されるように、更新されることが可能である。図４のストライプマップ４２０はその後、異なるページのページ識別子を更新されたストライプと関連付けるために更新されることが可能である。
【００４４】
本開示はメモリにおけるＲＡＩＤストライプマッピングのための方法およびデバイスを含む。１つの方法の実施形態はストライプマップに従って複数のメモリデバイスの保存ボリュームにわたっていくつかのストライプにデータ書き込むことを含み、その場合、いくつかのストライプの各々はいくつかの要素を含み、；およびストライプマップはいくつかのストライプを識別するためのいくつかのストライプインデックスおよびいくつかのストライプの各々に含められる要素を特定するためのいくつかの要素識別子を含む。
【００４５】
本明細書において特定の実施形態が図示され記載されてきたが、同様の結果を達成するように推定される仕組み（ａｒｒａｎｇｅｍｅｎｔ）は示された特定の実施形態の代用となることが可能であるということを当業者は理解するだろう。この開示は本開示のいくつかの実施形態の適合または変形を網羅することが意図されている。上記記載は説明の方法でなされ、限定の方法でなされたものではないということが理解されるべきである。上記実施形態の組み合わせおよび本明細書に具体的には記載されない他の実施形態が、上記記載を検討することで当業者に明らかになるだろう。本開示のいくつかの実施形態の範囲は上記の構造および方法が使用される他の用途を含む。従って、本開示のいくつかの実施形態の範囲は添付の特許請求の範囲およびそれら特許請求の範囲が権利を与えられる均等物の最大限の範囲を参照して決定されるべきである。
【００４６】
前述の詳細な説明において、開示を効率的にする目的で、いくつかの特徴が単一の実施形態にまとめられている。開示のこの方法は本開示の開示される実施形態が各請求項で明確に記載されているものより多くの特徴を使用しなければならないという意図を反映するものとして解釈されるべきでない。むしろ、以下の特許請求の範囲が反映するように、発明の主題は単一の開示の実施形態の全ての特徴より少ないものにある。従って、以下の特許請求の範囲は、各請求項が別個の実施形態としてそれ自身存在する状態で、詳細な説明にここで組みこまれる。
【図１】
0006422600.tif 000002
【図２】
0006422600.tif 000003
【図３】
0006422600.tif 000004
【図４】
0006422600.tif 000005
【図５】
0006422600.tif 000006