(57)【要約】      （修正有）【課題】データ記憶装置内でデータを管理するための方法及び装置を提供する。【解決手段】不揮発性キャッシュメモリは、ホスト装置からのページシーケンスを記憶する。不揮発性メインメモリは、関連する転送回路を使用して、プログラミング及び読み取り操作中にそれぞれ同時にアクセス可能である、ｍ個の独立した集積回路ダイ上に配置された複数のｎレベルのセルを有する（ｍ及びｎは複数である）。制御回路は、選択された集積回路ダイ上の共通ワード線に接続されている、選択されたｎレベルのセルのセットにページシーケンスからの第１ページ及び第２ページを書き込む。第２ページは、ページシーケンスに複数の介在ページを含む論理オフセットによって、ページシーケンス内の第１ページから分離されている。論理オフセットは、ｍ個の集積回路ダイ及び転送回路に関連する遅延時間に応答するように選択される。【選択図】なし【特許請求の範囲】
【請求項１】
データ記憶装置であって、
ホスト装置からのページシーケンスを記憶するように構成されている不揮発性キャッシュメモリと、
関連する転送回路を使用して、プログラミング及び読み取り操作中にそれぞれ同時にアクセス可能である、ｍ個の独立した集積回路ダイ上に配置された複数のｎレベルのセルを備える不揮発性メインメモリであって、ｍ及びｎは複数である、不揮発性メインメモリと、
前記ページシーケンスからの第１ページ及び第２ページの書き込みを、選択された集積回路ダイ上の共通ワード線に接続されている、選択されたｎレベルのセルのセットにダイレクトするように構成されている制御回路であって、前記第２ページが、前記ページシーケンスに複数の介在ページを含む論理オフセットによって前記ページシーケンス内の前記第１ページから分離されており、
前記論理オフセットが、ｍ個の集積回路ダイ及び前記転送回路に関連する遅延時間に応答するように選択される、制御回路と、を備える、データ記憶装置。
【請求項２】
前記制御回路が、前記ページシーケンス内の前記第１ページの直後の第３ページ及び前記ページシーケンス内の前記第２ページの直後の第４ページを、第２集積回路ダイ上の共通ワード線に接続されている、第２セットのｎレベルのセルに書き込むように更に構成されている、請求項１に記載のデータ記憶装置。
【請求項３】
前記制御回路が、前記ページシーケンスを対応する間隔ブロックシーケンスに配置するように更に構成されており、各間隔ブロックが前記ページシーケンスからの前記ページの異なるサブセットを含み、各間隔ブロック内の前記ページのそれぞれがページアドレスを有し、前記第１ページが第１間隔ブロック内の第１ページに位置し、前記第２ページが別の第２間隔ブロック内の前記第１ページアドレスに位置する、請求項１に記載のデータ記憶装置。
【請求項４】
各間隔ブロック内の前記ページのそれぞれが、前記不揮発性メインメモリ内の前記集積回路ダイのうちの異なる１つに書き込まれる、請求項３に記載のデータ記憶装置。
【請求項５】
前記不揮発性キャッシュメモリが、前記ページシーケンスが書き込まれる複数のシングルレベルセル（ＳＬＣ）を備えるＮＡＮＤ型フラッシュメモリである、請求項１に記載のデータ記憶装置。
【請求項６】
前記不揮発性メインメモリがｎレベルのＮＡＮＤ型フラッシュメモリであり、前記ｎレベルのセルが、マルチレベルセル（ＭＬＣ）、トリプルレベルセル（ＴＬＣ）、又は４Ｘレベルセル（ＸＬＣ）のうちの少なくとも選択された１つを備える、請求項５に記載のデータ記憶装置。
【請求項７】
第１ビット総数のユーザデータブロックを記憶するように構成されている揮発性バッファを更に備え、前記制御回路が、前記ユーザデータブロックのうちの複数を前記ページシーケンス内の前記ページのそれぞれにまとめ、したがって前記ページシーケンス内の前記ページのそれぞれが、前記第１ビット総数よりも大きい第２ビット総数を有する、請求項１に記載のデータ記憶装置。
【請求項８】
前記制御回路が、プログラマブルプロセッサと、記憶場所に記憶された関連するプログラミングと、を備える、ソリッドステートドライブ（ＳＳＤ）コントローラ回路である、請求項１に記載のデータ記憶装置。
【請求項９】
前記ページシーケンス内の前記第１ページと前記第２ページとの間の前記論理オフセットが、前記不揮発性メインメモリに関連するメモリデータ転送レートに応答するように更に選択される、請求項１に記載のデータ記憶装置。
【請求項１０】
前記ホスト装置に接続されているホストインターフェイス（Ｉ／Ｆ）回路を更に備え、前記ページシーケンス内の前記第１ページと前記第２ページとの間の前記論理オフセットが、前記ホストＩ／Ｆに関連するホストデータ転送レートに応答するように更に選択される、請求項１に記載のデータ記憶装置。
【請求項１１】
方法であって、
ホスト装置から順次受信したデータブロックを選択された順序でページシーケンスとして不揮発性キャッシュメモリに記憶することであって、前記ページシーケンス内の各後続ページが、異なる複数の、前記順次受信したデータを含む、ことと、
前記不揮発性キャッシュメモリから不揮発性メインメモリに前記ページシーケンスを転送することであって、前記ページシーケンスからの第１ページ及び第２ページを、前記不揮発性メインメモリの選択された集積回路ダイ上の共通ワード線に接続されている、前記不揮発性メインメモリの選択されたｎレベルのセルのセットに書き込むことを含み、前記第２ページが、前記ページシーケンスに複数の介在ページを含む論理オフセットによって前記第１ページから分離されており、前記論理オフセットが、前記不揮発性メインメモリ内の複数の合計ｍ個の集積回路ダイ及び前記選択された集積回路ダイに関連する転送回路に関連する遅延時間に応答するように選択される、ことと、を含む、方法。
【請求項１２】
前記転送する工程が、前記ページシーケンス内の前記第１ページの直後の第３ページ及び前記ページシーケンス内の前記第２ページの直後の第４ページを、前記ｍ個の集積回路ダイのうちの第２集積回路ダイ上の共通ワード線に接続されている、第２セットの前記ｎレベルのセルに書き込むことを更に含む、請求項１１に記載の方法。
【請求項１３】
前記ページシーケンスを対応する間隔ブロックシーケンスに配置することを更に含み、各間隔ブロックが前記ページシーケンスからの前記ページの異なるサブセットを含み、各間隔ブロック内の前記ページのそれぞれがページアドレスを有し、前記第１ページが第１間隔ブロック内の第１ページアドレスに位置し、前記第２ページが別の第２間隔ブロック内の前記第１ページアドレスに位置する、請求項１１に記載の方法。
【請求項１４】
各間隔ブロック内の前記ページのそれぞれが、前記不揮発性メインメモリ内の前記集積回路ダイのうちの別の１つに書き込まれる、請求項１３に記載の方法。
【請求項１５】
前記不揮発性キャッシュメモリが、前記ページシーケンスが書き込まれる複数のシングルレベルセル（ＳＬＣ）を備えるＮＡＮＤ型フラッシュメモリである、請求項１１に記載の方法。
【請求項１６】
前記不揮発性メインメモリがｎレベルのＮＡＮＤ型フラッシュメモリであり、前記ｎレベルのセルが、マルチレベルセル（ＭＬＣ）、トリプルレベルセル（ＴＬＣ）、又は４Ｘレベルセル（ＸＬＣ）のうちの少なくとも選択された１つを備える、請求項１５に記載の方法。
【請求項１７】
前記データブロックを前記不揮発性キャッシュメモリに前記ページシーケンスとして転送する前に、前記ホスト装置からの前記データブロックを揮発性メモリバッファに記憶することを更に含み、前記データブロックのそれぞれが第１総サイズを有し、前記ページシーケンス内の前記ページのそれぞれが前記第１総サイズの倍数として第２総サイズを有する、請求項１１に記載の方法。
【請求項１８】
前記第２総サイズが３２ＫＢである、請求項１７に記載の方法。
【請求項１９】
前記ページシーケンス内の前記第１ページと前記第２ページとの間の前記論理オフセットが、前記不揮発性メインメモリに関連するメモリデータ転送レート及び前記ホスト装置に関連するホストデータ転送レートに応答するように更に選択される、請求項１１に記載の方法。
【請求項２０】
前記第１ページと前記第２ページとの間の前記論理オフセットを保持しつつ、ガベージコレクション操作中に前記不揮発性メインメモリ内の前記ページシーケンスを新しい場所に続いて移動することを更に含む、請求項１１に記載の方法。
【発明の詳細な説明】
【発明の概要】
【発明が解決しようとする課題】
【０００１】
本明細書では、ｎレベルのＮＡＮＤ型フラッシュメモリセルを使用するソリッドステートドライブ（ＳＳＤ）などデータ記憶装置内でのデータの管理を概ね対象とする様々な実施形態を開示する。
【０００２】
いくつかの実施形態によると、不揮発性キャッシュメモリは、ホスト装置からのページシーケンスを記憶する。不揮発性メインメモリは、関連する転送回路を使用して、プログラミング及び読み取り操作中にそれぞれ同時にアクセス可能である、ｍ個の独立した集積回路ダイ上に配置された複数のｎレベルのセルを有する（ｍ及びｎは複数である）。制御回路は、選択された集積回路ダイ上の共通ワード線に接続されている、選択されたｎレベルのセルのセットにページシーケンスからの第１ページ及び第２ページを書き込む。第２ページは、ページシーケンスに複数の介在ページ（intervening page）を含む論理オフセットよって、ページシーケンス内の第１ページから分離されている。論理オフセットは、ｍ個の集積回路ダイ及び転送回路に関連する遅延時間に応答するように選択される。
【０００３】
様々な実施形態を特徴付けることがある上記の特徴及び利点とその他の特徴及び利点とは、以下の詳細な説明及び添付図面を考慮して理解することができる。
【図面の簡単な説明】
【０００４】
【図１】いくつかの実施形態による、例示のデータ記憶装置の機能ブロック表現を提供する。
【図２】図１の装置のＮＡＮＤ型フラッシュメモリアレイの一部の概略図である。
【図３】いくつかの実施形態による、異なるプログラミング規則を使用した図２のフラッシュメモリセル上での蓄積電荷の分布を示す。
【図４】いくつかの実施形態に従って実行したデータ転送の問題事例及び理想的事例を示す。
【図５】いくつかの実施形態による、データ記憶装置の機能ブロック表現である。
【図６】図５のｎレベルのフラッシュアレイの態様を示す。
【図７】いくつかの実施形態における、入力書き込みデータが、ホストブロックアドレス（ＨＰＡ）及びサブＲブロックに配置される例示の方法を示すブロックシーケンスである。
【図８】いくつかの実施形態における、キャッシュメモリ内のサブＲブロックから図４のｎレベルのフラッシュアレイへの蓄積データの転送の機能表現である。
【図９Ａ】キャッシュメモリ内の例示の蓄積データを示す。
【図９Ｂ】図８のデータを格納するためにｎレベルのフラッシュアレイで使用可能な記憶場所を示す。
【図１０Ａ】いくつかの実施形態における、キャッシュメモリからサブＲブロック境界に沿ったｎレベルのフラッシュアレイへのデータ転送を連続的に示す。
【図１０Ｂ】いくつかの実施形態における、キャッシュメモリからサブＲブロック境界に沿ったｎレベルのフラッシュアレイへのデータ転送を連続的に示す。
【図１０Ｃ】いくつかの実施形態における、キャッシュメモリからサブＲブロック境界に沿ったｎレベルのフラッシュアレイへのデータ転送を連続的に示す。
【図１１】ｎレベルのフラッシュアレイ内でデータを再配置するためのガベージコレクション操作を示す。
【図１２】いくつかの実施形態に従って実行された工程を示す、ＳＳＤデータ管理ルーチンのフロー図である。
【発明を実施するための形態】
【０００５】
本開示は、多重ビットのフラッシュメモリセル（例えば、ｎレベルのフラッシュメモリセル（ｎは１より大きい））を備えたＮＡＮＤ型フラッシュアレイを有するソリッドステートドライブ（ＳＳＤ）データ記憶装置におけるデータ管理に概ね関する。
【０００６】
データ記憶装置には、電子化データを記憶する及び／又は取得するために１つ以上のメモリ装置が備わっている。フラッシュメモリなど一部のソリッドステート半導体ベースのメモリ装置は、電荷転送を用いて、個々のメモリセルでのプログラミング状態を確立する。
【０００７】
フラッシュメモリは、フラッシュメモリセルのフローティングゲート上で蓄積電荷の形式でデータを記憶する。メモリセルは、各トランジスタのメイン制御ゲートから電気的に隔離されたフローティングゲート構造を有するｎＭＯＳＦＥＴ（ｎチャネル金属酸化膜半導体電界効果トランジスタ）と特徴付けられてよい。メモリセルは、消去状態ではフローティングゲート上で蓄積電荷を実質的に記憶しない。プログラムされると、蓄積電荷の増加量を記憶する。プログラミング操作により、メインチャネルからフローティングゲートへと電荷が移動し、消去操作により、電荷がフローティングゲートから移動して、セルを基底（消去）状態にリセットする。
【０００８】
当該業界では、ＮＡＮＤ型フラッシュ装置など半導体メモリの記憶容量を増加させる取り組みが続けられている。シングルレベルセル（ＳＬＣ）として構成されているメモリセルは、セル当たり１ビットをそれぞれ記憶し、より高速のデータ転送レート及びより長期の作動寿命の両方をもたらす傾向にある。データ記憶密度は、１ビット超を記憶するようにセルをプログラミングすることにより増加させることができる。例えば、マルチレベルセル（ＭＬＣ）は２ビットを記憶し、トリブルレベルセル（ＴＬＣ）は３ビットを記憶し、４Ｘレベルセル（ＸＬＣ）は４ビットを記憶するなどである。概ね、セルは、２Ｎの異なる電荷レベルを使用して合計Ｎビットにプログラミングされ得る（例えば、２ビットの記憶には４レベルを要し、３ビットの記憶には８レベルを要するなど）。セル当たり複数ビットを記憶することは、データ転送レートを低下させ、セルの摩耗を増加させて、作動寿命の短縮をもたらす傾向にある。
【０００９】
フラッシュメモリに書き込まれる入力ユーザデータは、通常、ページと呼ばれるデータグループに配置される。各データページは、メモリの物理的構造など多数の要因に応じて選択された総ビット数を有する。ページ長の例は、４ＫＢ（４０９６バイト）、８ＫＢ、１６ＫＢ、３２ＫＢなどであり得る。共通ゲート制御線（ワード線）に接続されている多数のフラッシュメモリセルを使用してＮＡＮＤ型フラッシュメモリを配置することが一般的である。データの各ページは、同一ワード線に接続されているメモリセルに記憶され、１ビットのページは、ワード線に沿って異なるセルに記憶される。複数ビットを記憶するメモリセルは、最初にデータの第１ページをＳＬＣとして記憶するように配置されることが多い。同一セルへのデータの第２ページの書き込みは、セルをＭＬＣに移行させ、同一セルへの第３ページの書き込みは、セルをＴＬＣに移行させるなどのように行われる。
【００１０】
所定装置のデータ記憶容量を増加させるように作動しつつ、複数ビットのフラッシュメモリセル群（例えば、ｎレベルセル（ｎは１よりも大きい））をプログラミングすることは、多数の課題をもたらす。ホストからの順次データセクタ（例えば、論理ブロックアドレス、つまりＬＢＡ）を使用してｎレベルのフラッシュセルのワード線を直接プログラミングすることは、後続の読み取り操作中のメモリの順次読み取り性能を劣化させる傾向にある。これは、所定の論理範囲内の隣接データのすべてが同一の半導体ダイに記憶され、データの復元に同一のリードバック回路（レーン又はチャネル）を使用するためである。例えば、３２ＫＢのページがＴＬＣセットに記憶され、下ページ、中間ページ、及び上ページが順次ＬＡＢを記憶する場合、９６ＫＢ又はそれ以上のデータが同一ワード線上の単一メモリセルセットに記憶される。このことは、メモリからストリーミングＬＢＡを復元できるレートを最終的に制限し得る。
【００１１】
したがって、本開示の様々な実施形態は、ＮＡＮＤ型フラッシュメモリが挙げられるが、これに限定されないｎレベルのメモリセルを有するメモリ内でのデータの記憶を管理するための方法及び装置を対象とする。以下に記載するように、いくつかの実施形態では、ＳＬＣフラッシュキャッシュなど不揮発性キャッシュメモリは、ホスト装置から順次受信した複数のデータページを記憶するように構成されている。
【００１２】
不揮発性メインメモリは、キャッシュメモリからのキャッシュページの転送を受信するように構成されている。この不揮発性メインメモリは、関連する転送回路を使用して、プログラミング及び読み取り操作中にそれぞれ同時にアクセス可能である、ｍ個の独立した集積回路ダイ上に配置された複数のｎレベルのセルを含むように構成されている（ｍ及びｎは複数）。
【００１３】
ＳＳＤコントローラなど制御回路は、選択された非隣接ページ群の同時書き込みを、キャッシュから共通ワード線に接続されているｎレベルのセルにダイレクトするように構成されている。ワード線に書き込まれた第１ページと第２ページとの間の論理オフセットは、ｍ個のダイ及び転送回路に関連する遅延時間に応答するように選択される。このようにして、読み取り操作中に最大平均データ転送レートで、メインメモリに記憶された、実質的にすべてのページセットを復元できる。
【００１４】
以下の説明では、ＴＬＣレコーディングを用いるＮＡＮＤ型フラッシュメモリアレイを例示する。ＭＬＣ、ＸＬＣなど；２次元（２Ｄ）フラッシュアレイ；３次元（３Ｄ）フラッシュアレイ；ＲＲＡＭ（登録商標）、ＭＲＡＭ、ＳＴＲＡＭ、ＰＬＣなど他の形式のソリッドステート半導体不揮発性メモリ；複数の積層された記録層を用いる３次元磁気記録（３ＤＭＲ）ディスクなど「セル」当たり複数ビットを記憶するように構成されている非ソリッドステートメモリが挙げられるが、これらに限定されない任意の数の配置を使用できるため、これは説明を目的とするものにすぎず、限定的なものではない。
【００１５】
様々な実施形態のこれらの特徴及び態様、並びに他の特徴及び態様は、例示のデータ記憶装置１００を概略的に図示する図１を再検討することから始めて理解されるであろう。装置１００は、コントローラ１０２とメモリモジュール１０４とを含む。コントローラ１０２は、装置１００のための最上位の制御を行い、ローカルメモリ内の関連したプログラミングと一体になってプログラマブルプロセッサとして構成されることがある。付加的又は代替的に、コントローラは、所要のコントローラ機能を実行するために論理ゲート又は他の素子と一体となったハードウェアベースの制御回路の形をとることもある。
【００１６】
メモリモジュール１０４は、回転可能な記録ディスク及びソリッドステートメモリアレイなどの１つ以上の不揮発性メモリ素子として配置され得る。別個の制御部１０２が図１には示されているが、別の実施形態が、任意の必須の制御機能をメモリモジュールに直接組み込むことができる場合、このようものは不要である。限定するものではないが、この説明のために、データ記憶装置１００は、メモリモジュールのメモリ容量の少なくとも一部を構成してホスト装置（図示なし）にメインデータストアを提供する、３次元（３Ｄ）ＮＡＮＤ型フラッシュメモリアレイを用いるソリッドステートドライブ（ＳＳＤ）であると企図する。他の形式のメモリを使用することができる。
【００１７】
図２は、いくつかの実施形態による、図１のメモリモジュール１０４のフラッシュメモリアレイ１１０の一部の概略図を提供する。他の構成を使用することができるので、図２は例示にすぎず、限定的なものではない。図２の配置は、従来の２次元（２Ｄ）ＮＡＮＤ型構成に類似した２Ｄレイアウトである。図２の各列は、３Ｄアレイ内で要素が縦積みにされていることを示しているが、そうである必要はないと企図される。
【００１８】
フラッシュメモリセル１１２は、ビット線（ＢＬ０〜ＢＬ３）１１４、ソース線（ＳＬ０〜ＳＬ３）１１６、及びワード線（ＷＬ０〜ＷＬ２）１１８によってアクセスされる。各列の上部及び下部に位置する選択トランジスタなど他の選択回路及び制御線が企図されるが、明確にするために図示しない。プログラミング操作、読み取り操作、及び消去操作は、対応のビット線１１４、ソース線１１６、及びワード線１１８に適した電圧をアサートとすることにより実行される。１つ以上のデータページが各セル列、例えば、所定のワード線１１２に接続されているセル１１２に記憶される。本例のために、各ページは３２ＫＢであると企図される。ただし、他のサイズを使用することができる。
【００１９】
図３は、図２のフラッシュメモリセル１１２のための異なるプログラミング形式のグラフィック表現である。シングルレベルセル（ＳＬＣ）プログラミングは１２０にて示されており、２つの一般化された母集団曲線（population curve）１２２及び１２４によって示されるように２つの対応の母集団を含む。曲線の形状及び程度は、実質的にガウス分布の傾向にある。ただし、様々な要因に基づいて、他の形状が生じ得る。曲線１２２は、消去状態又は実質的に消去状態にあるフラッシュメモリセルを示す。したがって、これらのセルのフローティングゲート構造には、電荷はほとんど蓄積されないか、全く蓄積されない。これは、論理１の論理状態、つまり論理値（プログラムされた値）に相当する。曲線１２４は、フラッシュメモリセルが、論理０のプログラム状態を示すのに十分な、選択された量の蓄積電荷を蓄積したことを示す。他の規則を使用することができる。
【００２０】
フラッシュメモリセルのフローティングゲート上での電荷の蓄積は、セルを順（ソース／ドレイン）導通状態にするために（ワード線に取り付けられている）制御ゲートに加える必要のある電圧量を上げる傾向にある。好適な中間ゲート電圧Ｖ１の印加により、装置１００のリードバック回路がセルのプログラム状態を識別できるようになる。このことからわかるように、電圧Ｖ１の印加は、母集団１２２内のセルを導通状態するが、電圧Ｖ１は、母集団１２４内のセルを導通状態にするには十分ではない。
【００２１】
図３は、１３０において、２ビットの論理値１１、１０、００、及び０１をそれぞれ含むものとしてマルチレベルセル（ＭＬＣ）プログラミングを更に示す（母集団は１３２、１３４、１３６、及び１３８）。当該業界において一般的であるように、ＳＬＣ１２０は、必要に応じて続いて追加の蓄積電圧を用いてプログラミングされて、２つのＳＬＣ分布を４つのＭＬＣ分布に分ける。ＳＬＣがデータの第１ページを使用してプログラミングされる場合、次にデータの第２ページは、図示するように第１ページの上部でプログラミングされ、各セルの最上位のビット（ＭＳＢ）は第１ページの対応するビットを示し、各セルの最下位のビット（ＬＳＢ）は第２ページの対応するビットを示す。以前のように、電圧Ｖ２及びＶ３など（ただし、これらに限定されない）好適な中間電圧が連続的に印加されて、所定のセルの最終プログラム状態を識別できる。
【００２２】
３レベルセルプログラミングと呼ばれることもあるトリプルレベルセル（ＴＬＣ）プログラミングは、１４０にて示す。これは、対応する母集団１４２、１４４、１４６、１４８、１５０、１５２、１５４、及び１５６によって提供されたものとして８つの３ビット状態１１１、１１０、１０１、１００、０００、００１、０１１、及び０１０を含む。電圧Ｖ４及びＶ５など（ただし、これらに限定されない）様々な中間電圧が連続的に印加されて、様々なセルの最終プログラム状態を識別し得る。
【００２３】
ＴＬＣは、データの第３ページをＭＬＣセットにプログラミングすることにより形成され得る。ＴＬＣの場合、ＭＳＢは第１ページを示し、中間ビット（ＩＳＢ）は第２ページを示し、ＬＳＢは第３ページを示す。本実施形態に従って、４Ｘレベルセル（ＸＬＣ）、また４レベルセル（ＦＬＣ）など他の形式を使用することができる。これにより、概して２Ｎの異なる蓄積電荷状態を使用して所定のセルに合計Ｎビットを記憶できるといえる。
【００２４】
ソリッドステートドライブ（ＳＳＤ）の主な利点は、複数の装置に対するコマンドをキューに入れて、すべての単一フラッシュ装置の全帯域幅を著しく増加できることである。これは、ホストインターフェイスの非常に広い帯域幅が、多数の個々の、比較的低速のフラッシュデータの読み取りを、当初のレイテンシペナルティのみを使用して単一のモノリシック転送に集め得る、高速の順次読み取りにおいて特に当てはまる。マルチレベルフラッシュ装置の「ワンショット」プログラミングの出現で、コントローラは、ＳＳＤ内のダイアレイにプログラミングされたデータページが、任意の順次読み取り要求が自然に複数のフラッシュレーン及びダイを呼び出して、転送を完了させる形式であるように保証する責任を有する。図３の例は、コントローラがワンショットフラッシュ装置内の所定のワード線に順次データを単純に書き込む場合に生じるであろう性能損失を示す。
【００２５】
図３は、異なるデータページ１６２のｎレベルフラッシュアレイ１６４への書き込みのトップレベル制御を提供するＳＳＤコントローラ１６０（図１のコントローラ１０２に対応）を示す。第１の事例（「問題事例」）では、ページ０〜２は、同一のワード線などが挙げられるが、これに限定されない、フラッシュアレイ１６４内の同一のダイＭに書き込まれる。
【００２６】
問題事例では、データは、ホスト装置から受信すると、単一フラッシュバス上で単一フラッシュ装置に順次書き込まれる。ホスト装置がこの同一データを読み取ろうとすると、転送は遅くなるであろう。これは、各ページにアクセスする必要があり、データがホストに連続して転送されたためである。例えば、各ページ１６２の長さは３２ＫＢであり、転送レートＴｒは５０μｓであり（例えば、読み取りコマンドを処理するまでの指定されたフラッシュアレイ読み取り遅延時間）、フラッシュバスは４００ＭＴ／ｓの転送レート（アレイ１６４からデータを読み取ることができる最高速度）を有し、ホストインターフェイス転送レートが１ＧＢ／ｓである場合、問題事例のデータ（ページ０〜２）を読み取るための最悪の場合の帯域幅ＢＷ（スループットレート）は、以下の式で求めることができる。
【００２７】
ＢＷ＝３＊３２ＫＢ／（（３＊（５０＋３２ＫＢ／５００ＭＴ／ｓ）＋３２ＫＢ／１０００ＭＢ／ｓ）＝２２５ＭＢ／ｓ      （１）
図３は、第２の事例（「理想的事例」）を更に示す。この事例では、３ページ（Ｘ、Ｙ、及びＺ）がアレイ１６４の異なるダイに書き込まれ、したがって、異なる読み取り／書き込み回路が、離れたダイの場所にアクセスできる。以前のように、データはホスト装置から受信すると順次書き込まれ得るが、今回は、複数のレーンにわたって複数のダイに書き込まれる。
【００２８】
後続の読み取り操作中、リードバック性能は向上するであろう。以前のように、各ページは３２ＫＢであり、Ｔｒは５０μｓであり、フラッシュバスの転送レートは４００ＭＴ／ｓであり、ホストインターフェイスの転送レートは１ＧＢ／ｓである場合、理想的事例のデータ（ページＸ〜Ｚ）を読み取るための最悪の場合の帯域幅ＢＷは、以下の式で求めることができる。
【００２９】
ＢＷ＝３＊３２ＫＢ／（（５０＋３２ＫＢ／５００ＭＴ／ｓ）＋３＊（３２ＫＢ／１０００ＭＢ／ｓ）＝３８５ＭＢ／ｓ      （２）
これは、問題事例の転送レートよりも約７０％増加したことを示す。
【００３０】
本開示は、ｎレベルのアレイに記憶された順次データの理想的なデータリードバック転送レートに近いレートを実現するように入力キャッシュデータを分散させるように機能する。以下に記載するように、これは、入力キャッシュデータを、サブＲブロックと呼ばれるデータセットに分割することによって実行する。サブＲブロックは、複数のサブＲブロックからの対応するデータページが、ｎレベルアレイ内の同一ワード線に書き込まれるように選択されたページ境界を有する。同一ワード線に書き込まれた異なるページ間の論理距離は、書き込まれたデータの任意の選択されたサブセットについて実質的に均一のリードバックレートを得るために十分である。
【００３１】
図５は、図１の装置１００に概ね対応するＳＳＤデータ記憶装置２００の機能ブロック図である。装置２００は、装置２００のトップレベル制御を提供するＳＳＤコントローラ２０２を含む。コントローラ１００と同様に、ＳＳＤコントローラ２０２は、ローカルメモリ２０３で対応する実行可能命令を用いるプログラマブルプロセッサ（ファームウェア、ＦＷ）を含む、多回路構成で実現されてよい。あるいは、ＳＳＤコントローラは、ハードウェア回路などとして実現されてよい。ローカルメモリに記憶されているマップ構造２０４はＳＳＤコントローラによって使用されて、システム内のデータを追跡する。
【００３２】
ホストインターフェイス（Ｉ／Ｆ）２０６は、外部ホスト装置との通信経路を提供する。ローカル揮発性バッファメモリ２０８は、ホスト転送操作中にデータを一時的にバッファリングするために任意追加的に提供されてよい。ローカルメモリ２０８は、ＤＲＡＭ、ＳＲＡＭなど１つ以上のメモリ装置から形成されてよい。
【００３３】
ＳＬＣキャッシュメモリ２１０は、ホストから受信したデータを最初に記憶する。ＳＬＣキャッシュメモリ２１０は、上記のようにＳＬＣとして構成され、機能する不揮発性フラッシュメモリセルセットから形成されると企図される。他の構成を用いることができる。
【００３４】
キャッシュメモリ２１０に蓄積されたデータは、続いてＳＳＤコントローラ２０２の指示を受けてｎレベルのフラッシュアレイ２１２に転送される。本例のために、ｎレベルのフラッシュアレイのＮＡＮＤ型フラッシュメモリセルは、上記のようにＴＬＣとして構成されると企図される。ただし、そのように限定されるものではない。
【００３５】
以下に記載するように、データは、所定の境界において、サブＲブロックのシーケンスとしてＳＬＣキャッシュメモリ２１０に蓄積され、タイル化される。キャッシュメモリが一杯の場合、スピルオーバー操作が実行され、ＳＳＤコントローラ２０２はサブＲブロックをステージングし、期待される順次読み取り性能を保証するために必要な分離を行う。
【００３６】
データが書き込まれると、ｎレベルのフラッシュアレイ２１２に常駐するデータは、ガベージコレクション技術を使用して新しい位置に再配置され得る。ガベージコレクション技術は、ＳＬＣキャッシュメモリ２１０に同様に適用され、ホストから新たに受信したデータで新しいサブＲブロックが形成される。
【００３７】
図６は、いくつかの実施形態による、図５のｎレベルのフラッシュメモリアレイ２１２の態様を示す。アレイ２１２は、複数のｍ個のダイ２１４を含み、各ダイは、アレイ２１２を構成する半導体集積回路の物理的に分離された部分を構成する。合計４個のダイ２１４を示す（ダイ０〜３）。ただし、所定のアレイでは任意の複数のダイを用いることができる。
【００３８】
各ダイ２１４は、別個のデータアクセス又は転送回路２１６（読み取り／書き込み／消去回路、つまりＲ／Ｗ／Ｅ回路とも呼ばれる）によってアクセスされる。別個のダイ２１４及び回路２１６により、データ転送操作（例えば、プログラミング及び読み取り）を共通アドレスで同時に実行することができる。
【００３９】
各ダイ２１４は、多数の消去ブロック２１８を組み込むことを更に示す。各ダイは、合計１２個のかかるブロック２１８のみを含むように示されているが、各ダイは、著しくより多くの消去ブロックを保持することを理解されたい。各消去ブロック２１８は、一度に消去できる、最小量のメモリセル（例えば、図２の１１２）を示す。データページは、各ブロック２１８内の異なるワード線（メモリセルの行）にわたって記憶される。
【００４０】
最終的に、Ｒブロック２２０は、対応のダイ２１４にわたって消去ブロック２１８から選択された消去ブロック群として図６に示される。概して、Ｒブロックは、ＲＡＩＳＥブロック（ｒｅｄｕｎｄａｎｔ  ａｒｒａｙ  ｏｆ  ｉｎｄｅｐｅｎｄｅｎｔ  ｓｉｌｉｃｏｎ  ｅｌｅｍｅｎｔｓ）、又は別々に割り当てられ、ユニットとして消去されるガベージコレクションユニット（ＧＣＵ）とみなされ得る。各Ｒブロック２２０は、特定のＲブロックアドレスにおいて、ダイアレイ全体にわたってブロック２１８をすべて有する。Ｒブロックアドレスは、以下の式の結果の整数である。
【００４１】
Ｒブロックアドレス＝Ｉｎｔ（フラッシュブロックアドレス／フラッシュ平面サイズ）      （３）
サブＲブロック２２２は、図７に示す。本明細書において間隔ブロックとも呼ばれる、各サブＲブロックは、関連するＲブロック２２０内の整数個の消去ブロック２１８である。換言すると、所定のＲブロック２２０は、複数のサブＲブロック２２２に分割される。所定のＲブロック２２０内のすべてのサブＲブロック２２２は、同一サイズである（例えば、同数の消去ブロック２１８を構成する）と企図されるが、必ずしもそうである必要はない。
【００４２】
図７の２２４において示すように、ホストデータは、装置２００の記憶媒体とは無関係である、ホストレベルのアドレス指定方式を使用して、選択された形式で受信される。ある一般的な例は、固定サイズの論理ブロックアドレス（ＬＢＡ）であり、例えばセクタである。仮想アドレス、キーブロックアドレスなど他の形式を用いることができる。場合によっては、ホストデータＬＢＡは、５１２バイト、４０９６バイトなど選択された均一サイズを有する。
【００４３】
ホストデータは、図７の２２６において、いわゆるホストブロックアドレス、つまりＨＰＡにまとめられる。各ＨＰＡは、図５の対応のＳＬＣキャッシュメモリ２１０及びｎレベルのフラッシュアレイ２１２による記憶に好適なデータページを構成する。上記のように、本例では、各ＨＰＡの長さが３２ＫＢになると企図する。この方式では、多数ではなくとも、いくつかのホストＬＢＡが各ＨＰＡにまとめられることがわかる。ＳＳＤコントローラ２０２（図５）によって用いられるマップ構造２０４は、フラッシュ遷移層のデータ構造を保持して、所定のホストＬＢＡの現在の位置及びステータスを識別できるようにする。
【００４４】
図７で示すように、２２６からのＨＰＡは、今度は、ＨＰＡ０〜ＨＰＡ  Ｎ−１に各サブＲブロック２２２を追加するために使用される。必要に応じて、埋め草ビット２２８を各サブＲブロック２２２の末尾に追加して所望のサイズを達成し得る。これは、ホストデータが圧縮されているときなどに使用できる。ヘッダ及び／又はフッタ制御データ、ＥＣＣデータなど他のデータも、各サブＲブロックに組み込まれ得るが、説明を明確にするために省略している。
【００４５】
定義により、各Ｒブロックの先頭（例えば、図７のＨＰＡ０）にＨＰＡ境界が存在し、各Ｒブロックの先頭はサブＲブロックの先頭でもある。同様に、定義により、各Ｒブロックの末尾（例えば、図７のＨＰＡ  Ｎ−１）にＨＰＡ境界が存在し、各Ｒブロックの末尾はサブＲブロックの末尾でもある。
【００４６】
キャッシュメモリ２１０にホストデータをタイル化するには、新たなＨＰＡ及びサブＲブロック境界がＲブロックの先頭で開始し、任意の数のＨＰＡが、事前に定義されたサブＲブロック境界に達するまで、モジュラス「０」のページにタイル化される。サブＲブロック境界に近づくと、ＳＳＤコントローラは、サブＲブロック内の最後のフルＨＰＡを決定し、次いで、最後のＨＰＡの末尾からフラッシュ平面（ダイ）の末尾までデータを詰める。
【００４７】
キャッシュメモリ２１０からｎレベルフラッシュアレイ２１４に蓄積データを転送（タイル化）するには、新たなＨＰＡ及びサブＲブロック境界が、ワード線の各ページのＲブロックの先頭で開始する。千鳥配置されたサブＲブロックからの有効な予圧縮ＨＰＡはキャッシュメモリから読み取られ、ｎレベルのフラッシュセルに転送される。ワード線の各ページは、再利用されたサブＲブロックの一意のスレッドを有して、ワード線内のページ間でのＨＰＡの分離状態を保持する。共通ワード線のサブＲブロック境界に近づくと、ＳＳＤコントローラは、以前のようにサブＲブロック内の各ページの最後のフルＨＰＡを決定し、フラッシュ平面（ダイ）の終点までデータを詰める。
【００４８】
ＲＡＩＳＥ／パリティ（ＲＡＩＳＥ−Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｓｉｌｉｃｏｎ  Ｅｌｅｍｅｎｔｓ）コードがフラッシュアレイに記憶されているとき、コードの場所が追跡され、当該ブロックを含むすべてのサブＲブロックから削除される。ファームウェアがパリティブロックに遭遇すると、当該ブロックを飛ばし、次のブロックに進んで再利用を続行する必要がある。定義により、ＲＡＩＳＥ／パリティは、揃えられ、ユーザデータを含まないブロックである。したがって、再利用不能な場合を除いて、サブＲブロックの構造に影響することはない。
【００４９】
これらの操作を、概ね図８に示す。キャッシュメモリ２２０内のデータの選択されたＲブロック２２０は、サブＲブロック０〜２など多数のサブＲブロック２２２を含む。サブＲブロック２２２のそれぞれは、今度は、ＨＰＡ  ０〜２という番号が付けられたＨＰＡ  ２２６を含む。
【００５０】
図８で示すように、ｎレベルのフラッシュアレイ２１２のワード線１１８（図２を参照）は、ＷＬ０〜ＷＬ２として示されている。各サブＲブロック（ＨＰＡ０）の第１ＨＰＡ２２６は、第１ワード線（ＷＬ０）に書き込まれる。つまり、ＷＬ０に接続されているメモリセルは、データの第１ページ、第２ページ及び第３ページを受信するようにＴＬＣとして構成されている。データの第１ページはサブＲブロック０からのＨＰＡ０ページであり、データの第２ページはサブＲブロック１からのＨＰＡ０ページであり、データの第３ページはサブＲブロック２からのＨＰＡ０ページである。ｎレベルのアレイ２１２内の各ワード線は、３つの異なるサブＲブロックから３つの離間したＨＰＡを同様に受信する。
【００５１】
このことより、アレイ２１４内の所定のｎレベルセルに書き込まれるデータの第１ページと第２ページとの論理距離は、各サブＲブロック（間隔ブロック）２２２のサイズ（つまり、ＨＰＡの数）によって決定されることがわかる。
【００５２】
概して、Ｒブロック内のサブＲブロックの最適数は、ホストＩ／Ｆのフル順次読み取り性能をサポートするために必要なダイ及びチャネルスレッドの数である。したがってサブＲブロックのサイズは、必要なダイ及びチャネルスレッドの数で除したダイの総数である。
【００５３】
各サブＲブロックの好適なサイズを決定するための基本方程式は、以下のように書くことができる。
【００５４】
ダイ／チャネルスレッドの数＝ホストの読み取り帯域幅／フラッシュチャネルの帯域幅
フラッシュチャネルの帯域幅＝フラッシュ平面サイズ／（Ｔｒ＋Ｔｘｆｅｒ）；
Ｔｒ＝データシート仕様当たりのフラッシュアレイの読み取り遅延
Ｔｘｆｅｒ＝転送遅延＝フラッシュ平面サイズ／フラッシュチャネルレート
Ｒページ当たりのサブＲブロックの数＝ダイの総数／ダイ／チャネルスレッドの数    （４）
これより、論理距離（例えば、あるサブＲブロック内の第１ＨＰＡから次のサブＲブロック内の第１ＨＰＡまでのホストセクタ／ＬＢＡの数）は、概してダイ／チャネルの数及びｎチャネルアレイの読み取り遅延応答に関して決定されることがわかる。式（４）に示すように、他の要素も用いられ得る。
【００５５】
図９Ａ及び９Ｂは、先の説明の簡略な例を提供するために示されている。図９Ａは、図５のＳＬＣキャッシュメモリ２１０に記憶されているＨＰＡの内容を示す。この簡略な例では、ＨＰＡは１０ごとに分類されている（例えば、第１ブロックのＨＰＡ  ０は、ＨＰＡ  ０〜ＨＰＡ  ９までの最初の１０個のＨＰＡの記憶を示すなど）。データは、任意の好適な方法でＳＬＣキャッシュに記憶される。処理を簡略化するために、キャッシュメモリ２１０及びメインメモリ２１２の両方が共通ページサイズ（例えば、３２ＫＢ）を共有すると企図する。ただし、必ずしもそうでなくてもよい。
【００５６】
図９Ｂは、ｎレベルのフラッシュアレイ２１２の対応する態様を示す。より具体的には、合計１６個のダイ（ダイ０〜Ｆ）について第１及び第２ワード線１１２（ＷＬ０及びＷＬ１）を示す。記号「Ｅ」は、各ワード線に接続されているセルの特定のビット位置が消去状態であり、データを格納する準備が整っていることを示す。図９Ａ内の全データは、図９Ｂの全１６個のダイにわたって２つのワード線に記憶される。
【００５７】
図１０Ａは、ｎレベルのフラッシュアレイ２１４内の対応のワード線に対する、キャッシュ２１２からのデータの第１ページの書き込みを示す。ＨＰＡの各濃色ブロックは、異なるサブＲブロックに対応する。各サブＲブロックは、４０ＨＰＡ境界に名目的に配置されるという結果になる（例えば、最初に書き込まれたサブＲブロックがＨＰＡ  ０〜ＨＰＡ  ３９にわたって存在する）。図１０Ａでのデータプログラミング操作の最後には、対応のワード線に沿った各メモリセルはＳＬＣとしてプログラミングされる。
【００５８】
図１０Ｂは、アレイ２１４内の対応のワード線に対する、キャッシュ２１２からのデータの第２ページの書き込みを示す。以前のように、データは、指定されたＨＰＡ境界にて書き込まれる。図１０Ｂでのデータプログラミング操作の最後には、アレイ２１４内のメモリセルがＭＬＣとしてプログラミングされるようになる。
【００５９】
図１０Ｃは、アレイ２１４内の対応のワード線に対する、キャッシュ２１２からのデータの第３ページの書き込みを示す。これは、セルをＴＬＣとしてプログラミングし、データスピルオーバー／転送プロセスの結果として機能する。この時点において、転送されたデータを記憶するキャッシュメモリ２１０の当該部分はガベージコレクションされ、新しいユーザデータのために再割り当てされ得る。
【００６０】
図１１は、図１０Ｃから得られた、ＴＬＣデータを再配置するための例示のガベージコレクションプロセスを示す。図示するように、データ間隔は保持され得るが、所望に応じてバレルシフト方法を用いることができる。例えば、ＷＬ１上のＩＳＢ及びＬＳＢページは、整数個のダイ分シフトされていることに留意されたい（ＩＳＢ列は、１２個のダイ分下にシフトされ、ＬＳＢ列は８個のダイ分下にシフトされた）。これによって、ウェアレベリング及び他の効果を強化できる。
【００６１】
図１２は、先の説明を要約するためのＳＳＤデータ管理ルーチン３００のフロー図を提供する。このルーチンは、ＳＬＣフラッシュキャッシュメモリ２１０及びＴＬＣベースのＮＡＮＤ型フラッシュメモリアレイ２１２で構成されている、図５のＳＳＤ  ２００によって実行されると企図する。他の構成を用いることができるので、これは例示的なものにすぎず、限定的なものではない。
【００６２】
キャッシュ及びｎレベルのメインＳＳＤメモリは、工程３０２にて構成し、続いて、ＨＰＡサイズ、Ｒブロックサイズ、及びサブＲブロックサイズ（境界）など様々な操作パラメータを定義する。上記のように、サブＲブロックのサイズは、あるサブＲブロックから次のサブＲブロックまでの第１ページ（ＨＡＰ）からの論理的分離を決定し、今度は、選択されたワード線に取り付けられている、選択されたダイ上の選択されたメモリセルセットに書き込まれる、第１ページと第２ページとの論理的分離を確立する。この間隔は、少なくとも名目的に、最高到達データ転送レートでの順次データ要求を実現可能にするのに十分でなくてはいけない。
【００６３】
その後データは、工程３０６にてキャッシュメモリ内に蓄積される。入力ホストデータ（例えば、ＬＢＡ）は、上記のようにＨＰＡに順次分類されると企図する。ＨＰＡ内のデータは、論理的順序に並べ替えられても、並べ替えられなくてもよい。ただし、このような並べ替えは必要に応じて実行され得る。例えば、ＬＢＡ  ０〜１０００が、ある対応するＨＰＡセット０〜Ｘに並べ替えられるように、何らかの並べ替えを実行できる。ただし、このような並べ替えを必ずしも実行する必要はない。他の実施形態では、ＨＰＡは、ＬＢＡ値とは無関係に、ＬＢＡの受信順に基づいて順次並べられる。
【００６４】
この時点において、書き込み頻度の高い環境では、ＬＢＡは頻繁に更新され、旧バージョンはキャッシュにおいて陳腐化と印付けられ得ることに留意されたい。バージョン追跡は、既存のリビジョンマッピング技術を使用して必要に応じて実行され得る。場合によっては、新たな代わりのＨＰＡが書き込まれ、旧バージョンは陳腐化と印付けられて、更新された書き込みの読み取り／修正に対応することがある。それにもかかわらず、ＳＳＤコントローラで用いられる管理システムは十分に堅牢であって、常にキャッシュ内のデータの最新バージョンを識別し、更新された書き込みなどを考慮しつつ、キャッシュからアレイ内のＴＬＣメモリセルへのデータの組織的な転送を実行できる。
【００６５】
決定工程３０８は、十分な数のデータのサブＲブロックがキャッシュメモリに蓄積されたかどうかを決定する。場合によっては、転送を進める前にデータに相当するフルＲブロックが蓄積される。他の場合では、十分な数のデータのサブＲブロックが蓄積されて、使用可能なダイの場所全体にわたるデータ分布を促進する。
【００６６】
キャッシュが一杯であるとみなされると、データは、図９Ａ〜１０Ｃで上述したように、工程３１０にて、キャッシュからメインメモリに転送される。当然のことながら、キャッシュが「一杯」であるという説明は、更なるデータをキャッシュに記憶できないことを必ずしも意味するのではなく、むしろ、ＴＬＣへの転送を開始するために必要なデータの量に達したことを意味する。
【００６７】
その後、通常のデータ読み取り及び書き出し操作が引き続き実行される。データ読み取り要求は、最初にＳＬＣキャッシュ（又は更にはＤＲＡＭ／ＳＲＡＭなどの揮発性メモリの場所）によって評価されて、キャッシュヒットを達成する。さもなければ、読み取り操作は、メインメモリを使用して実行され、満たされる。データの正常転送に含まれたキャッシュの当該部分は再利用され、ホスト装置からの新しい書き込みデータを記憶するために準備される。
【００６８】
決定工程３１２は、メインメモリでガベージコレクション操作を実行するべきかどうかを決定する。実行するべき場合、ＴＬＣデータは、新しい場所に書き込まれ得、バレルシフト及び他の好適なデータ再配置技術が実行されて、最適なリードバック性能を保持するために対応のデータの論理的距離を減じることなく、ウェアレベリングを強化し得る。
【００６９】
本開示の様々な実施形態の多数の特徴及び利点が、これらの構成及び機能の詳細と一体となって、前述の説明に記載されているとしても、この詳細な説明は一例にすぎず、変更が詳細に行われ、特に、本開示の原理の範囲内の部品の構成及び配置という点で特許請求の範囲に記載された用語の広い一般的な意味によって示唆された最大限の範囲まで行われることがある、と理解されるべきである。
【図１】
2018190483.tif 000002
【図２】
2018190483.tif 000003
【図３】
2018190483.tif 000004
【図４】
2018190483.tif 000005
【図５】
2018190483.tif 000006
【図６】
2018190483.tif 000007
【図７】
2018190483.tif 000008
【図８】
2018190483.tif 000009
【図９Ａ】
2018190483.tif 000010
【図９Ｂ】
2018190483.tif 000011
【図１０Ａ】
2018190483.tif 000012
【図１０Ｂ】
2018190483.tif 000013
【図１０Ｃ】
2018190483.tif 000014
【図１１】
2018190483.tif 000015
【図１２】
2018190483.tif 000016
【外国語明細書】
2018190483000001.pdf