(57)【要約】      （修正有）【課題】高密度であるが低速なセルを有するメモリチップから構成されるストレージデバイスの性能を高速化するための装置を提供する。【解決手段】ストレージデバイスであるソリッドステートドライブ（ＳＳＤ）は、コントローラと複数のフラッシュメモリチップを有する。複数のフラッシュメモリチップは、マルチビットストレージセルの３次元スタックを含み、マルチビットストレージセルは、複数の記憶密度モードを有する。コントローラは、少なくとも２５％というストレージデバイスの記憶容量閾値までマルチビットストレージセルを低密度記憶モードにプログラミングし、ひとたび記憶容量閾値に到達すると、マルチビットストレージセルを高密度記憶モードにプログラミングする。【選択図】図４
2019121350.tif 000002
【特許請求の範囲】
【請求項１】
ストレージデバイスを備え、
前記ストレージデバイスは、コントローラと、複数のフラッシュメモリチップとを有し、
前記複数のフラッシュメモリチップは、マルチビットストレージセルの３次元スタックを含み、
前記マルチビットストレージセルは、複数の記憶密度モードを有し、
前記コントローラは、少なくとも２５％という前記ストレージデバイスの記憶容量閾値まで前記セルを低密度記憶モードにプログラミングし、ひとたび前記容量閾値に到達すると、前記セルを高密度モードにプログラミングする、
装置。
【請求項２】
前記低密度記憶モードはマルチレベルセル（ＭＬＣ）である、
請求項１に記載の装置。
【請求項３】
前記高密度記憶モードはクワッドレベルセル（ＱＬＣ）である、
請求項２に記載の装置。
【請求項４】
前記記憶容量閾値は５０％である、
請求項３に記載の装置。
【請求項５】
前記記憶容量閾値は２５％以上７５％以下の範囲内である、
請求項１に記載の装置。
【請求項６】
前記高密度記憶モードはＱＬＣである、
請求項１に記載の装置。
【請求項７】
前記ストレージデバイスはソリッドステートドライブである、
請求項１に記載の装置。
【請求項８】
複数のフラッシュメモリチップのプログラミングレベルを決定するコントローラを備え、
前記複数のフラッシュメモリチップは、マルチビットストレージセルの３次元スタックを含み、
前記マルチビットストレージセルは、複数の記憶密度モードを有し、
前記コントローラは、少なくとも２５％という前記フラッシュメモリチップの記憶容量閾値まで前記セルを低密度記憶モードにプログラミングし、ひとたび前記容量閾値に到達すると、前記セルを高密度記憶モードにプログラミングする、
装置。
【請求項９】
前記低密度記憶モードはマルチレベルセル（ＭＬＣ）である、
請求項８に記載の装置。
【請求項１０】
前記高密度記憶モードはクワッドレベルセル（ＱＬＣ）である、
請求項９に記載の装置。
【請求項１１】
前記記憶容量閾値は５０％である、
請求項１０に記載の装置。
【請求項１２】
前記記憶容量閾値は２５％以上７５％以下の範囲内である、
請求項８に記載の装置。
【請求項１３】
前記高密度記憶モードはＱＬＣである、
請求項８に記載の装置。
【請求項１４】
前記ストレージデバイスはソリッドステートドライブである、
請求項８に記載の装置。
【請求項１５】
複数の処理コアと、
メインメモリと、
前記複数の処理コアと前記メインメモリとの間に結合されたメモリコントローラと、
周辺ハブコントローラと、
前記周辺ハブコントローラに結合されたソリッドステートドライブと
を備え、
前記ソリッドステートドライブは、コントローラと、複数のフラッシュメモリチップとを有し、
前記複数のフラッシュメモリチップは、マルチビットストレージセルの３次元スタックを含み、
前記マルチビットストレージセルは、複数の記憶密度モードを有し、
前記コントローラは、少なくとも２５％という前記ストレージデバイスの記憶容量閾値まで前記セルを低密度記憶モードにプログラミングし、ひとたび前記容量閾値に到達すると、前記セルを高密度記憶モードにプログラミングする、
コンピューティングシステム。
【請求項１６】
前記低密度記憶モードはマルチレベルセル（ＭＬＣ）である、
請求項１５に記載のコンピューティングシステム。
【請求項１７】
前記高密度記憶モードはクワッドレベルセル（ＱＬＣ）である、
請求項１６に記載のコンピューティングシステム。
【請求項１８】
前記記憶容量閾値は５０％である、
請求項１７に記載のコンピューティングシステム。
【請求項１９】
前記記憶容量閾値は２５％以上７５％以下の範囲内である、
請求項１５に記載のコンピューティングシステム。
【請求項２０】
複数のフラッシュメモリチップを有するストレージデバイスのコントローラにより処理された場合、
前記複数のフラッシュメモリチップのマルチビットストレージセルを低密度記憶モードにプログラミングする手順と、
前記複数のフラッシュメモリチップの前記記憶容量の少なくとも２５％がプログラミングされた後に、前記複数のフラッシュメモリチップの前記マルチビットストレージセルを高密度記憶モードにプログラミングする手順と
を含む方法を前記ストレージデバイスに実行させる記憶されたプログラムコード
を備える製造品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は概して、ストレージデバイスの容量利用率の関数であるプログラミング済みセル記憶密度モードを有するストレージデバイスに関する。
【背景技術】
【０００２】
コンピューティングシステムがますます強力になり、それらの記憶装置は成長し続ける必要がある。この動向に応じて、大容量ストレージ半導体チップの製造業者が、ストレージセル１個に１ビット超を記憶するための手法を開発中である。残念ながら、そのようなセルは、それらのバイナリストレージセルの先行品と比較してより低速なプログラミング時間を示し得る。それ故、大容量ストレージデバイスの製造業者は、より高密度であるが低速なセルを有するメモリチップから構成されるストレージデバイスの性能を高速化するための新しい技術を開発している。
【図面の簡単な説明】
【０００３】
以下の図面と併せた以下の詳細な説明から、本発明のより良い理解が得られ得る。
【０００４】
【図１ａ】マルチビットフラッシュストレージセルをプログラミングするためのパターンをＳＳＤ記憶容量利用率の関数として示す。
【図１ｂ】マルチビットフラッシュストレージセルをプログラミングするためのパターンをＳＳＤ記憶容量利用率の関数として示す。
【図１ｃ】マルチビットフラッシュストレージセルをプログラミングするためのパターンをＳＳＤ記憶容量利用率の関数として示す。
【図１ｄ】マルチビットフラッシュストレージセルをプログラミングするためのパターンをＳＳＤ記憶容量利用率の関数として示す。
【図１ｅ】マルチビットフラッシュストレージセルをプログラミングするためのパターンをＳＳＤ記憶容量利用率の関数として示す。
【図１ｆ】マルチビットフラッシュストレージセルをプログラミングするためのパターンをＳＳＤ記憶容量利用率の関数として示す。
【図１ｇ】マルチビットフラッシュストレージセルをプログラミングするためのパターンをＳＳＤ記憶容量利用率の関数として示す。
【０００５】
【図２】ＭＬＣモードからＱＬＣモードへの電荷転送を示す。
【０００６】
【図３】図１ａから図１ｇの書き込みパターンを実装できるＳＳＤを示す。
【０００７】
【図４】図３のＳＳＤにより実行される方法を示す。
【０００８】
【図５】コンピューティングシステムを示す。
【発明を実施するための形態】
【０００９】
フラッシュメモリデバイスの構造は、半導体基板の上で鉛直に延在する、互いに積み重ねられた多数の別個のストレージセルを各々が含む列のアレイから構成されるストレージセルの３次元配置と理解され得る。記憶ブロックが多数のそのような列に対応する。記憶セルブロック内のストレージセルの特定のいくつかにアクセスすべく、ワードラインワイヤ構造（「ワードライン」）が、記憶セルブロックの異なる列内の同じ鉛直方向に位置するストレージセルに結合される。
【００１０】
例えば、記憶ブロックの列の各々が８つのストレージセルの鉛直型積層体から構成されている場合、８つの異なるワードラインが、８つの異なる記憶レベルの記憶ブロックの列におけるそれぞれのセルにアクセスするために用いられ得る（例えば、第１ワードラインがその列の各々における最も低いセルに結合され得、２番目のワードラインがその列の各々における２番目に最も低いセルに結合され得る等である）。ストレージセルの各々が１ビット超記憶し得るフラッシュメモリの場合、単一のワードラインを通じて、情報の複数のページにアクセスし得る。ここで、大容量ストレージデバイスは従来、各々が複数のページから構成されるデータのブロックにおいてアクセス（読み出し／書き込み）がなされてきた。ストレージセル１個当たり１ビット超を記憶し得るフラッシュメモリデバイスは典型的には、ページが記憶されている記憶ブロック内の単一のワードラインをアクティブ化することにより、異なるページにアクセスできる。
【００１１】
記憶ブロックは概して、ストレージセルが消去され得る（同じブロックのセルが共に消去される）最小単位であり、ページは概して、セルが書き込まれ得るか、または「プログラミング」され得る最小単位である。従って、例えば、多数のページを書き込むようホストがＳＳＤにコマンドした場合、単一のワードラインをアクティブ化することにより、それらのページの複数が、同じ記憶ブロック内でプログラミングされ得る。書き込みコマンドを完全に実行すべくアクティブ化されるワードラインの数は、何ページがその書き込みに関連しているか、およびワードライン１本当たり何ページがアクセス可能であるかに依存する。単一のフラッシュメモリチップも典型的には、複数の面から構成される。各面は、チップ内の固有の記憶ブロックセットを含む。
【００１２】
上述のように、異なるフラッシュメモリ技術は概して、ストレージセル１個当たり何ビットが記憶され得るかにより特徴付けられる。具体的には、単一レベルセル（ＳＬＣ）はセル１個当たり１ビットを記憶し、複数レベルセル（ＭＬＣ）はセル１個当たり２ビットを記憶し、三進レベルセル（ＴＬＣ）はセル１個当たり３ビットを記憶し、クワッドレベルセル（ＱＬＣ）はセル１個当たり４ビットを記憶する。ＳＬＣセルのみがセル１個当たり２つの論理状態（「１」または「０」）を記憶できるのに対し、異なるタイプの「マルチビット」ストレージセルとして特徴付けられ得るＭＬＣセルタイプ、ＴＬＣセルタイプおよびＱＬＣセルタイプの各々は、フラッシュデバイスの記憶容量を大幅に拡張する。なぜなら、単一のセルに２つより多くのデジタル状態が記憶され得るからである（例えば、ＭＬＣセル１個に４つのデジタル状態が記憶され得、ＴＬＣセル１個に８つのデジタル状態が記憶され得、ＱＬＣセル１個に１６の論理状態が記憶され得る）。
【００１３】
しかしながら、セル１個当たりの記憶密度およびセル１個当たりのアクセス時間に関して、トレードオフが存在する。すなわち、概して、ストレージセルがより多くのビットを記憶するほど、情報をセルに書き込むために必要な時間の量は長くなる。ここで、より多くのビットを記憶するストレージセルは、より少ないビットを記憶するストレージセルより厳しい電荷記憶許容値を有するものと理解され得る。すなわち、より多くのビットを記憶するセルは、記憶し得る異なる論理状態間の差を示すより少量の電荷を有するのに対し、より少ないビットを記憶するセルは、そのセルが記憶し得る論理状態間差を示すより大量の電荷を有する。
【００１４】
フラッシュセルは、電荷でポンピングすることによりプログラミングまたは消去される。呼び出し１回当たりでより少ないビットを記憶するセルは、それらの記憶された電荷状態間でセル１個当たりより多くのビットを記憶するセルよりも大きい差を有し、より「粗粒度の」ポンピング処理を用いる。このポンピング処理は、セル１個当たりより多くのビットを記憶する、より「細粒度の」ポンピング処理を用いるセルよりも少ないポンピングサイクルでより大きい電荷増加を適用する。このポンピング処理は、より多くのポンピングサイクルでより少ない電荷増加（少なくとも最大ポンピング電荷量）を適用する。より少ないビットを記憶するセルに関連するポンピングサイクルがより少ないと、そのようなセルは、より多いビットを記憶するセルと比較して平均でより少ないプログラムアクセス時間を示すことになる。
【００１５】
従って、次世代フラッシュの製造技術はセル１個当たりの記憶容量に関する性能の向上をもたらすが、同時に、性能がセル１個当たりの平均プログラム時間に関して減少する。
【００１６】
このトレードオフに対処すべく、ソリッドステートドライブ（ＳＳＤ）などのフラッシュベースのストレージデバイスは、それらの基礎となる製造技術が記憶できるものより１個当たり少ないビットを記憶するセルから構成される記憶バッファを実装している。例えば、ＱＬＣフラッシュメモリチップから構成されるＳＳＤは、ＳＬＣモードまたはＭＬＣモードで動作するのにＱＬＣセルの何割かを用いる。低密度モードで動作するセルは、新たに入力されたデータが書き込まれるキャッシュのようなバッファとして、ＳＳＤにより用いられる。密度はより低いがより高速なセルから構成されるバッファに新しい入力データを書き込むことにより、ＳＳＤの未処理のプログラムアクセス時間は、より高速であることが認められる。
【００１７】
しかしながら、そのようなバッファの実装に関する問題が存在する。１番目の問題は、バックグラウンド処理としてコンテンツを高密度セルにライトバックすることにより、バッファのコンテンツが絶えず「クリアされて」いなければならないことである。ここで、概して、ＳＳＤバッファは、ＳＳＤの全記憶容量の１パーセントまたは２パーセント超のみを占める。バッファのコンテンツが高密度セルに規則的にライトバックされない場合、バッファは、一杯になり、ＳＳＤへの次の書き込み用に利用可能ではなくなる。残念ながら、バックグラウンド処理自体が、新しい書き込みコマンドのバッファをブロックし得る（新しい書き込みコマンドが到着した時にバッファがクリアされている場合、その書き込みコマンドは、バッファがクリアされるか、またはバックグラウンド処理が中断され得るまで待機しなければならない）。加えて、バックグラウンド処理によりＳＳＤの動作の全体的な複雑さが増し、例えば、電力消費、コストおよび／または故障メカニズムが増すことになる。
【００１８】
図１ａから図１ｆは、デバイスの高密度ストレージセルのはるかに大きい割合を用いる改善されたＳＳＤ設計の低密度モードでの動作を示す。加えて、これらのセルは、デバイスの標準的なストレージセルより動作が多く、上述のデバイスのバッファより動作が少ない。結果として、高度の管理を要するバックグラウンド処理の継続的な実行に関して直前に説明された課題は減少するはずである。
【００１９】
図１ａに示されるように、ＳＳＤは、各々がＮ個の記憶ブロックから構成される複数のフラッシュメモリチップから構成されるものとして見え得る。簡単にするために、図１ａの例示的なアーキテクチャは、ＳＳＤ内に２つのフラッシュメモリチップ（ダイ＿０およびダイ＿１）のみが存在すると仮定している。しかしながら、当業者であれば、本明細書において説明される例示的なデバイスの教示を、２つより多くのフラッシュメモリチップを含む他のデバイスに容易に適用できよう。これらのメモリデバイスは両方とも、４つの面（面＿０から面＿３）から構成される。各面は、Ｎ個の記憶ブロックを含む（従って、メモリデバイス１個当たりに４×Ｎ個の記憶ブロックが存在する）。各記憶ブロックはＭ本のワードラインを含み、各ワードラインは、その最高密度ＱＬＣモードで動作する場合、４つの異なるページ（下（Ｌ）、上（Ｕ）、予備（Ｘ）およびトップ（Ｔ））へのアクセスをサポートする。図１ａは、例えば、デバイスが初めて用いられ、いかなるランダム顧客データもまだ記憶されていない時の初期状態を示す。
【００２０】
図１ｂは、最初のページ数１０１がデバイスにプログラミングされた後のＳＳＤの状態を示す。ここで、ＳＳＤは、論理アドレスを物理アドレスにマッピングするマッピングテーブル（アドレス変換テーブルとも称される）を管理するコントローラを含む。ＳＳＤに書き込まれるデータのブロックをホストが送信する場合、ホストは、このデータにブロックアドレスも付加する。このブロックアドレスは、論理ブロックアドレス（ＬＢＵ）と称される。次に、ＳＤＤは、このデータブロックをＳＳＤに書き込み、マッピングテーブル内で、このデータのＬＢＵを、このブロックのデータのページが記憶されているＳＳＤ内の物理位置に関連付ける。これらの特定の物理位置は、ページが記憶されているＳＳＤ内の１または複数のダイ、面、ブロック、ワードラインおよびページリソースを一意に特定する物理ブロックアドレス（ＰＢＡ）で指定される。
【００２１】
図１ｂから分かるように、例示的なＳＳＤは、異なる面および異なるメモリチップにわたる同じ記憶ブロックおよびワードライン（ＷＬ）位置に入力ページを順次プログラミングし、これにより、消費された記憶量が、図１ｂにおける同じブロック位置およびワードライン位置にわたって左から右へと横に拡張していることが認められる。異なるＳＳＤ実装は異なる書き込みパターンを使用し得る。例えば、別のアプローチにおいて、ＳＳＤは、異なるブロックおよびワードラインにわたる同じダイおよび面リソースにわたって、入力ページを順次書き込み得る（この場合、消費された記憶容量は、同じダイ内で同じ面に沿って上から下へと鉛直に拡張することが認められるであろう）。
【００２２】
図１ｂから分かるように、これら最初の数ページのプログラミングは、基礎となる製造技術が最高密度としてサポートするもの（ＱＬＣ）よりも少ないセル１つ当たり記憶容量（ＭＬＣ）で動作しているセルへの書き込みを含む。低密度のＭＬＣモードで動作するセルにページを書き込むことにより、最高密度のＱＬＣモードで動作するセルのみにページが書き込まれるアプローチと比較して、ＳＳＤのプログラムアクセス時間性能が向上する。すなわち、上述のように、低記憶容量のセルは、書き込みアクセス時間が高密度セルより少ない。
【００２３】
加えて、記憶密度 がより低いことが原因で、ワードライン１本当たりのページ容量の半分のみが消費される。すなわち、例えば、セル１個当たり２ビットのみが記憶されるＭＬＣモードで動作するセルを用いると、ワードライン１本当たり２ページのみが記憶され得る。以下でさらにより詳細に説明されるように、ページの記憶容量の未使用の半分は、ＳＳＤのストレージセルの全容量の閾値量が消費された場合に消費され得、その結果として、これらのセルを低密度ＭＬＣモードから高密度ＱＬＣモードに切り替える正当な理由となり得る。
【００２４】
ワードライン１本の潜在的なページ記憶の半分のみへの書き込みのパターンが、ブロックアドレス０（ＢＡ＝０）およびワードラインアドレス０（ＷＬ＝０）の２ページ（ＬおよびＵ）のみが複数の面およびダイにわたって書き込まれているという点で、図１ｂから直接的に見てとれる。ここで、ＳＳＤへのページの初期プログラミング１０１中に記憶ブロックの潜在的な容量の５０％が未使用なので、４ページの情報を書き込むためには（たとえ、４ページの情報がＱＬＣモードで単一のブロックの単一のワードラインに記憶され得るとしても）２つのブロックが必要である。すなわち、セルが低密度モード（セルモード当たり２ビット）で動作しているので、各ブロックは、ワードライン１本当たり２ページのみを記憶できる。それ故、２番目のブロックおよびワードラインの組み合わせは、３番目のページおよび４番目のページを記憶する必要がある。これに対し、セルが高密度モード（セルモード当たり４ビット）で動作していた場合には、ブロックおよびワードラインの組み合わせ１つ当たり４ページがプログラミングされ得る。
【００２５】
再びであるが、同じ面およびダイの異なるブロックおよびワードラインにわたってデータが順次書き込まれる書き込みパターンを用いる代替的な実装では、ページＬおよびＵがダイ１の面０のＢＡ＝０およびＷＬ＝０に書き込まれた後、ＳＳＤは、例えば、ダイ１の面０のＢＡ＝０およびＷＬ＝１にページＬおよびＵを書き込み得る。この特定の実施形態では、再びであるが、特定のワードラインに沿った記憶潜在的な記憶容量の半分のみがプログラミングされる。従って、無数の異なる記憶ブロックおよびワードラインの組み合わせのシーケンスが存在し、これらは、特定のプログラミングパターンを、ＳＳＤに書き込まれている新しいページとして定義するために用いられ得る。議論を容易にするために、本説明の残りでは主に、ページ書き込みパターンが図１ｂから図１ｆに示される実施形態のみに言及する。
【００２６】
図１ｃは、追加の新しいページが低密度モードでＳＳＤにプログラミングされた後のＳＳＤのさらなる状態を示す。ここで、図１ｃから理解され得るように、ＢＡ＝０およびＷＬ＝０でのＬページ位置およびＵページ位置の全てが、ＳＳＤ内の両方のダイの全ての面にわたって、より低いセル当たり記憶密度で書き込まれている。従って、ＳＳＤにわたる位置ＢＡ＝０およびＷＬ＝０における全てのセルが低密度モードで書き込まれているので、そのようなセルは、それらの現在のモードの最大容量（ワードライン１本当たり２ページ）となっているが、それらの潜在的な最大容量（ワードライン１本当たり４ページ）とはなっていない。すなわち、図１ｃから分かるように、ページ位置ＸおよびＴには、これらの同じ記憶ブロック、面およびダイにわたって何も書き込まれておらず、このことが、これらのブロックの潜在的な最大記憶容量の利用率の５０％の低下をもたらしている。しかしながら、ストレージセルがより低い密度の記憶モードで動作したことが原因で、これらのページのプログラミングをより少ない時間で行うことができている。
【００２７】
図１ｄは、組み合わされたデータの量がＳＳＤの最大容量のうちの５０％の容量に対応する追加のページ数が前述の書き込みパターンに従ってＳＳＤにプログラミングされた後のＳＳＤの別のさらなる状態を示す。ここで、再びであるが、書き込まれたセルは、ＳＳＤの書き込みアクセス時間がＳＳＤの記憶容量の利用率５０％まで改善された低密度モードで動作している。伝統的なＳＳＤバッファが典型的にはＳＳＤのストレージセルの１％または２％を用いるに過ぎないという本説明の出だしでの議論を振り返り、本明細書において説明される改善されたアプローチは、ＳＳＤが、ＳＳＤのストレージセルの５０％を消費したバッファから構成されている「かのように」ＳＳＤ性能を示すはずであることに留意されたい。
【００２８】
重要なことには、そのような大きい有効バッファを用いると、バッファのサイズが小さいことに起因して、利用可能な領域を生成するためにバッファから情報を絶えず読み出している、コストが高く高度の管理を要するバックグラウンド処理を実装する必要はほとんど／全くない。むしろ、改善されたアプローチの有効バッファは、ＳＳＤの記憶容量の５０％である初期容量を有する。そのような大きい有効バッファを用いると、少なくとも初めのうちは、データを有効バッファから連続して読み出す必要はなく、むしろ、プログラミングされたデータは、標準的なセル記憶使用量モデルに従って単に所定の位置に留まり得る。
【００２９】
図１ｅから図１ｆは、ＳＳＤがさらに多くのページをＳＳＤにプログラミングした後の図１ｄの状態から先へと継続する書き込みパターンを示す。ここで、ＳＳＤの記憶容量の５０％が消費されたがストレージセルの１００％がそれらの最大記憶容量の５０％で使用されている図１ｄの状態の後、セルは、より多くのページの記憶を受け入れるべく、ＭＬＣモードからそれらの完全なＱＬＣモードに切り替えられる必要がある。
【００３０】
それ故、図１ｅにおいて認められるように、書き込みパターンは、２番目のパスについて、しかし、ＭＬＣ密度モードではなくＱＬＣ密度モードで反復する。それ故、さらに２ページ分の記憶容量が、ＳＳＤの異なる面およびダイにわたる全てのＢＡ＝０およびＷＬ＝０の位置に沿って利用可能である。具体的には、図１ｅは、ＳＳＤの異なる面およびダイにわたるＢＡ＝０およびＷＬ＝０の位置のページ位置ＸおよびＴにおけるデータで消費されているこれらの位置のそれまでに未使用の容量を示す。最大セル密度モードでのページの書き込みにより、ＱＬＣモードに関連する書き込み時間が長くなることが原因で、ＳＳＤの性能が、最初のセル利用率５０％と比較して低速化し得る。上記の別の手法では、ＳＳＤは、ＭＬＣのようなＳＳＤの容量利用率の最初の５０％への高速化を示す。（図１ｄから図１ｅに）ＳＳＤの記憶容量の最初の５０％が利用された後、ＳＳＤの性能は、低速のＱＬＣプログラミング処理を導入したことに起因する何らかの低下を経験する。
【００３１】
１つのアプローチによれば、ＭＬＣデータをＱＬＣデータと共に記憶するセルをプログラミングすべく、元のＭＬＣモードでの電荷分布は、図２において提供される電荷分布転送図に従って、ＱＬＣモードに変換される。ここで、分かるように、セル１個当たりに記憶された２ビットは、４ビットＱＬＣモードで２つの最下位ビットに変換される。図２を図１ａから図１ｆと比較すると、ＬページおよびＵページが新しいＱＬＣモードで記憶された４つのビットの最下位ビットを占有しているのに対し、新たに書き込まれたページのうちのＸページおよびＴページは、ＱＬＣモードで記憶された４ビットのうちの２つの最高位ビットを占有している。一実施形態において、セル１個当たり４つの記憶されたビットが、それらがＴ、Ｘ、Ｕ、Ｌとして最高位ビットから最下位ビットまで表すページに関して編成される。
【００３２】
様々な実施形態において、書き込みパターンの２番目のパスをＱＬＣ密度で書き込む場合にＭＬＣからＱＬＣへの電荷の再分配を適切に実行すべく、当初は１番目のパスがＭＬＣモードである間中あるセルに記憶されていたビットのペアが、そのセルから読み出され、次に、そのセルに書き込まれるべき新しいデータと組み合わされる。次に、組み合わされた４ビット（元の２ビットおよび新しい２ビット）は、そのセルにプログラミングされる。
【００３３】
図１ｆおよび図１ｇは、追加の記憶されたページ数に関して図１ｃおよび図１ｄとそれぞれ同等である以下の状態を示す。図１ｆおよび図１ｇから分かるように、ＳＳＤにおけるセルは、２番目のパスがセル当たり最大記憶密度モードである間中、継続的に上書きされ、これにより、各セルの記憶容量が、２つの追加のページＸおよびＴの各々から追加の２ビットだけ拡張される。従って、図１ｇのＳＳＤの状態の時点で、ＳＳＤの全記憶容量に到達している。
【００３４】
様々な実施形態において、ＳＳＤのウェアレベリング機能により維持される情報は、高密度かつ低速なセルへの切り替えの結果としてのＳＳＤに対する認められた性能ヒットを最小化するために用いられ得る。ここで、当該技術分野において公知であるように、スより高い頻度で書き込まれるストレージセルは、より低い頻度で書き込まれるセルよりも速く消耗する。
【００３５】
故に、ＳＳＤのコントローラは、ウェアレベリングを実行して、情報のうち頻繁にアクセスされる「ホット」ブロックを、まれにアクセスされたに過ぎない「よりコールドな」ブロックに再マッピングする。ここで、コントローラは、ＳＳＤの物理アドレスのアクセスレート（および／または総アクセス数）をモニタリングし、これらの物理アドレスをホストにより提供される元のＬＢＵにマッピングした内部マップを維持する。モニタリングされたレートおよび／またはカウントに基づいて、コントローラは、いつ特定のブロックが「ホット」とみなされてそれらの関連データのスワッピングが必要になったかを決定するとともに、いつ特定のブロックが「コールド」とみなされてデータのホットブロックを受け取り得るかを決定する。伝統的なウェアレベリングアプローチにおいて、よりコールドなブロックの情報も、ホットブロックにスワッピングされ得る。
【００３６】
ひとたび高密度セル記憶モードの利用が始まると認められる、プログラミング性能の低下の影響を減らすべく、ウェアレベリング機能により維持されるホットブロックデータおよびコールドブロックデータも、ＭＬＣモードで動作しているセルにおけるホットページを維持するために、また、ＱＬＣモードで動作しているストレージセルにおけるコールドページを維持するために用いられ得る。ここで、例えば、図１ｅはＳＳＤを示す。ＳＳＤのストレージセルのうちのかなりの割合がＭＬＣモードで動作しており、ＳＳＤのストレージセルのうちのかなりの割合がＷＬＣモードで動作している。従って、低速ＱＬＣセル内に十分な数のホットブロックが存在し得、高速ＭＬＣセル内に十分な数のコールドブロックが存在し得る。コントローラにより維持されるウェアレベリングデータは、ホットブロックが高速ＭＬＣセルへと動かされ、コールドブロックが低速ＱＬＣセルへと動かされるようにこれらのページの位置をインテリジェントにスワップするために用いられ得る。
【００３７】
容量利用率が５０％またはそれより低く落ち込むと、ＳＳＤは完全にＭＬＣモードで動作する状態に戻り得ることに留意されたい。
【００３８】
図３は、上記で提供される教示と一致して動作し得るＳＳＤ３０１の実施形態を示す。図３において認められるように、ＳＳＤは、１ビットより多くを記憶できる多くのストレージセル３０２を含む。加えて、ＳＳＤのストレージセルのほとんどまたは全ては、ＭＬＣモードおよびＱＬＣモードの両方で動作可能である。これらのセルの特定の１つがこれらのモードのうちのどの１つで動作するかは、ＳＳＤの記憶容量利用率に依存する（例えば、全容量利用率の５０％またはそれ未満では、全てのセルがＭＬＣモードで動作し、容量利用率５０％から１００％の間では、いくつかのセルがＭＬＣモードで動作し、一方、他のセルがＱＬＣモードで動作し、容量利用率１００％では、全てのセルがＱＬＣモードで動作する）。
【００３９】
ＳＳＤは、コントローラ３０６を含む。コントローラ３０６は、どのセルがＭＬＣモードで動作するか、およびどのセルがＱＬＣモードで動作するかの決定を担う。詳細に上述される一実施形態によれば、最初のプログラミングパスが、ＭＬＣモードで動作する全てのセルに適用され、次に、２番目のパスが、ＱＬＣモードで動作する全てのセルに適用される。容量利用率情報および／またはどのセルがどのモード３１１で動作しているかを特定する情報は、例えば、コントローラ３０６内で結合および／または統合されたメモリ領域および／またはレジスタ領域３１０において維持される。一実施形態において、そのような情報は、セルのセットがそれらの動作のＭＬＣモード／ＱＬＣモードに関して共通のグループとして同一に扱われる各物理アドレスまたは何らかの粒度（例えば、ブロックＩＤ）について、ＭＬＣビット／ＱＬＣビットまたは類似のデジタル記録で表される。
【００４０】
従って、そのような粒度がブロックレベルである場合、各ブロックは、情報３１１において特定され、これらのブロックの各々が初めてプログラミングされる時点をＭＬＣについてさらに指定する。上５０％超の容量利用率では、ＳＳＤがＭＬＣセルからＱＬＣセルへの変換を始めた場合、情報３１１は、ＱＬＣモードをＱＬＣモードで新たに上書きされた各ＭＬＣブロックと共に示すように変更される。容量利用率１００％に到達する時までに、全てのブロックの情報３１１がＱＬＣモードを示すはずである。情報３１１は、どのブロックが実際に書き込まれるかも指定し得る。これにより、コントローラ３０６は、容量利用率の割合を決定し得る。その上、上述のように、情報３１１は、コントローラ３０６により実行されるウェアレベリングアルゴリズムを強化するために用いられ得る。具体的には、コントローラ３０６により実行されるウェアレベリングアルゴリズムは、ホットブロックをＱＬＣブロックからＭＬＣブロックへとスワップし得、コールドブロックをＭＬＣブロックからＱＬＣブロックへとスワップし得る。
【００４１】
コントローラ３０６は、電荷ポンピング回路３０７にも結合される。電荷ポンピング回路３０７は、ＱＬＣモードおよびＭＬＣモードについて異なる電荷ポンピング信号シーケンスを生成するように設計されている。ここで、コントローラ３０６は、書き込まれているセルにはどの動作モードが適切であるかについてのＳＳＤの容量利用率に基づくコントローラの決定に従って任意の特定のプログラミングシーケンスにどの信号（ＭＬＣまたはＱＬＣ）を適用すべきかを電荷ポンピング回路３０７に通知する。
【００４２】
コントローラは、専用ハードワイヤード論理回路（例えば、ハードワイヤード特定用途向け集積回路（ＡＳＩＣ）ステートマシンおよびサポート回路）、プログラマブル論理回路（例えば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ））、プログラマブル論理デバイス（ＰＬＤ）、プログラムコードを実行するように設計された論理回路（例えば、エンベデッドプロセッサ、エンベデッドコントローラ等）またはこれらの任意の組み合わせとして実装され得る。コントローラ３０６の少なくともいくつかの部分がプログラムコードを実行するように設計される実施形態において、プログラムコードは、ローカルメモリ（例えば、情報３１１が維持される同じメモリ）に記憶され、そこからコントローラにより実行される。Ｉ／Ｏインターフェース３１２が、コントローラ３０６に結合され、業界標準の周辺インターフェースまたはストレージインターフェース（例えば、周辺コンポーネントインターコネクト（ＰＣＩｅ）、ＡＴＡ／ＩＤＥ（Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ／Ｉｎｔｅｇｒａｔｅｄ  Ｄｒｉｖｅ  Ｅｌｅｃｔｒｏｎｉｃｓ）、ユニバーサルシリアルバス（ＵＳＢ）、ＩＥＥＥ１３９４（「ファイヤワイヤ」）等）との互換性を有し得る。
【００４３】
これは、他の実施形態が、本明細書において提供される教示を、たとえそれらが上述の特定の実施形態からいく分逸脱していたとしても利用し得る旨を認識することに関連する。特に、他の実施形態は、ＳＳＤの動作により新しいプログラミングがＭＬＣモードからＱＬＣモードに変わるＳＳＤ容量利用率の割合を変更し得る。例えば、一実施形態において、容量が５０％（または２５％から５０％の間の任意の容量）ではなく２５％に到達した時に、セルの書き込みがＱＬＣモードで始まる。この場合、例えば、図１ｄの状態に到達する前に、ＱＬＣモードでのプログラミングが開始される。また、様々な実施形態は、ユーザ／ホストに、どの容量利用率でＱＬＣモードへの切り替えが始まるかを設定するようにさせ得る。例えば、ＳＳＤは、２５％、３０％、３３％、４０％および５０％、または２５％以上５０％以下の間の任意の容量利用率という設定可能なオプションをサポートし得る。おそらく、２５％未満の容量利用率も、ＱＬＣモードへの切り替えをトリガするために用いられ得る。
【００４４】
これは、ＭＬＣの低密度モードおよびＱＬＣの高密度モードが例示的なものに過ぎず、他の実施形態が異なる低密度モードおよび／または異なる高密度モードを有し得る旨を認識することにも関する。例えば、一実施形態において、低密度がＴＬＣであり、高密度がＱＬＣである。この実施形態において、高密度モードへの切り替えは、容量利用率が例えば７５％（全てのセルがセル１個当たり３ビットでプログラミングされた時）またはそれ未満に到達した時に生じ得ることに留意されたい。別の実施形態において、低密度がＳＬＣであり、高密度がＱＬＣである。この実施形態において、高密度モードへの切り替えは、容量利用率が２５％に到達した時（全てのセルがセル１個当たり１ビットでプログラミングされた時）に生じ得ることに留意されたい。以前のＴＬＣ／ＱＬＣ  ＳＳＤは、より少ないが高速の有効バッファを有するＳＬＣ／ＱＬＣ  ＳＳＤよりも多いが低速の有効バッファを有していた。従って、高密度モードへの切り替えが生じる場合の正確な割合は、利用される特定の低密度モードおよび高密度モードの機能でもあり得る。
【００４５】
本明細書における教示は、図３に関連して上述された特定のＳＳＤ以外のシステムにも適用され得る。例えば、上述のコントローラ３０６の機能は、部分的に、または全体的にホストシステムに統合され得る。
【００４６】
図４は上述の方法を示す。方法は、複数のフラッシュメモリチップのマルチビットストレージセルを低密度記憶モードにプログラミングする段階（４０１）を含む。方法は、複数のフラッシュメモリチップの記憶容量の少なくとも２５％がプログラミングされた後に、複数のフラッシュメモリチップのマルチビットストレージセルを高密度記憶モードにプログラミングする段階（４０２）も含む。
【００４７】
図５は、コンピューティングシステム５００（例えば、スマートフォン、タブレット型コンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、サーバコンピュータ等）の例示的な図を提供する。図５において認められるように、ベーシックコンピューティングシステム５００は、（例えば、複数の汎用処理コア５１５_１から５１５_Ｘを含み得る）中央処理装置５０１と、マルチコアプロセッサまたはアプリケーションプロセッサ上に配置されたメインメモリコントローラ５１７と、システムメモリ５０２と、ディスプレイ５０３（例えば、タッチスクリーン、フラットパネル）と、ローカル有線ポイントツーポイントリンク（例えば、ＵＳＢインターフェース５０４）と、様々なネットワークＩ／Ｏ機能５０５（Ｅｔｈｅｒｎｅｔ（登録商標）インターフェースおよび／またはセルラーモデムサブシステムなど）と、無線ローカルエリアネットワーク（例えば、ＷｉＦｉ）インターフェース５０６と、無線ポイントツーポイントリンク（例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標））インターフェース５０７と、全地球測位システムインターフェース５０８と、様々なセンサ５０９_１から５０９_Ｙと、１または複数のカメラ５１０と、バッテリ５１１と、電力管理制御ユニット５１２と、スピーカおよびマイク５１３とオーディオコーダ／デコーダ５１４とを含み得る。
【００４８】
アプリケーションプロセッサまたはマルチコアプロセッサ５５０は、そのＣＰＵ５０１内の１または複数の汎用処理コア５１５と、１または複数のグラフィック処理ユニット５１６と、メモリ管理機能５１７（例えば、メモリコントローラ）と、Ｉ／Ｏ制御機能５１８とを含み得る。汎用処理コア５１５は典型的には、コンピューティングシステムのオペレーティングシステムおよびアプリケーションソフトウェアの動作を実行する。グラフィック処理ユニット５１６は典型的には、例えば、ディスプレイ５０３に表示されるグラフィック情報を生成するグラフィック集約機能    を実行する。メモリ制御機能５１７は、システムメモリ５０２とインターフェースして、システムメモリ５０２との間でデータの書き込み／読み出しを行う。電力管理制御ユニット５１２は概して、システム５００の電力消費を制御する。
【００４９】
タッチスクリーンディスプレイ５０３、通信インターフェース５０４−７０７、ＧＰＳインターフェース５０８、センサ５０９、カメラ５１０およびスピーカ／マイクコーデック５１３、５１４の各々全ては、必要に応じて統合型周辺デバイス（例えば、１または複数のカメラ５１０）も含むコンピューティングシステム全体に対する様々な形式のＩ／Ｏ（入力および／または出力）として見られ得る。実装に応じて、これらのＩ／Ｏコンポーネントのうちの様々なものが、アプリケーションプロセッサ／マルチコアプロセッサ５５０上で統合され得るか、またはダイの外またはアプリケーションプロセッサ／マルチコアプロセッサ５５０のパッケージの外に配置され得る。
【００５０】
コンピューティングシステムは、システムの大容量ストレージコンポーネントであり得る不揮発性ストレージ５２０も含む。ここで、例えば、大容量ストレージは、上記で詳細に説明されるように、ＳＳＤの容量利用率に応じてそのマルチビットストレージセルが異なる記憶密度でプログラミングされるフラッシュメモリチップから構成される１または複数のＳＳＤから構成され得る。
【００５１】
本発明の実施形態は、上記の様々な処理を含み得る。これらの処理は、機械実行可能命令において具現化され得る。この命令は、汎用プロセッサまたは特定用途向けプロセッサに特定の処理を実行させるために用いられ得る。代替的に、これらの処理は、処理を実行するためのハードワイヤード論理回路またはプログラマブル論理回路（例えば、ＦＰＧＡ、ＰＬＤ）を含む特定ハードウェアコンポーネント／カスタムハードウェアコンポーネントにより、またはプログラミングされたコンピュータコンポーネントおよびカスタムハードウェアコンポーネントの任意の組み合わせにより実行され得る。
【００５２】
本発明の要素は、機械実行可能命令を記憶するための機械可読媒体としても提供され得る。機械可読媒体は、限定はされないが、フロッピー（登録商標）ディスケット、光ディスク、ＣＤ−ＲＯＭ、磁気光ディスク、フラッシュメモリ、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気カードもしくは光カード、伝播媒体、または電子命令を記憶するのに適した他のタイプの媒体／機械可読媒体を含み得る。例えば、本発明は、通信リンク（例えば、モデム接続またはネットワーク接続）を介して搬送波または他の伝播媒体に具現化されるデータ信号を用いて、リモートコンピュータ（例えば、サーバ）から要求しているコンピュータ（例えば、クライアント）に転送され得るコンピュータプログラムとしてダウンロードされ得る。
【００５３】
上述の明細書において、本発明は、その特定の例示的な実施形態を参照して説明されている。しかしながら、添付の特許請求の範囲に記載される本発明のより広い趣旨および範囲から逸脱することなく、様々な修正および変更がなされ得ることは明らかであろう。よって、本明細書および図面は、限定的な意味ではなく、例示的な意味で解釈されるべきである。
【００５４】
［項目１］
ストレージデバイスを備え、
上記ストレージデバイスは、コントローラと、複数のフラッシュメモリチップとを有し、
上記複数のフラッシュメモリチップは、マルチビットストレージセルの３次元スタックを含み、
上記マルチビットストレージセルは、複数の記憶密度モードを有し、
上記コントローラは、少なくとも２５％という上記ストレージデバイスの記憶容量閾値まで上記セルを低密度記憶モードにプログラミングし、ひとたび上記容量閾値に到達すると、上記セルを高密度モードにプログラミングする、
装置。
［項目２］
上記低密度記憶モードはマルチレベルセル（ＭＬＣ）である、
項目１に記載の装置。
［項目３］
上記高密度記憶モードはクワッドレベルセル（ＱＬＣ）である、
項目２に記載の装置。
［項目４］
上記記憶容量閾値は５０％である、
項目３に記載の装置。
［項目５］
上記記憶容量閾値は２５％以上７５％以下の範囲内である、
項目１に記載の装置。
［項目６］
上記高密度記憶モードはＱＬＣである、
項目１に記載の装置。
［項目７］
上記ストレージデバイスはソリッドステートドライブである、
項目１に記載の装置。
［項目８］
複数のフラッシュメモリチップのプログラミングレベルを決定するコントローラを備え、
上記複数のフラッシュメモリチップは、マルチビットストレージセルの３次元スタックを含み、
上記マルチビットストレージセルは、複数の記憶密度モードを有し、
上記コントローラは、少なくとも２５％という上記フラッシュメモリチップの記憶容量閾値まで上記セルを低密度記憶モードにプログラミングし、ひとたび上記容量閾値に到達すると、上記セルを高密度記憶モードにプログラミングする、
装置。
［項目９］
上記低密度記憶モードはマルチレベルセル（ＭＬＣ）である、
項目８に記載の装置。
［項目１０］
上記高密度記憶モードはクワッドレベルセル（ＱＬＣ）である、
項目９に記載の装置。
［項目１１］
上記記憶容量閾値は５０％である、
項目１０に記載の装置。
［項目１２］
上記記憶容量閾値は２５％以上７５％以下の範囲内である、
項目８に記載の装置。
［項目１３］
上記高密度記憶モードはＱＬＣである、
項目８に記載の装置。
［項目１４］
上記ストレージデバイスはソリッドステートドライブである、
項目８に記載の装置。
［項目１５］
複数の処理コアと、
メインメモリと、
上記複数の処理コアと上記メインメモリとの間に結合されたメモリコントローラと、
周辺ハブコントローラと、
上記周辺ハブコントローラに結合されたソリッドステートドライブと
を備え、
上記ソリッドステートドライブは、コントローラと、複数のフラッシュメモリチップとを有し、
上記複数のフラッシュメモリチップは、マルチビットストレージセルの３次元スタックを含み、
上記マルチビットストレージセルは、複数の記憶密度モードを有し、
上記コントローラは、少なくとも２５％という上記ストレージデバイスの記憶容量閾値まで上記セルを低密度記憶モードにプログラミングし、ひとたび上記容量閾値に到達すると、上記セルを高密度記憶モードにプログラミングする、
コンピューティングシステム。
［項目１６］
上記低密度記憶モードはマルチレベルセル（ＭＬＣ）である、
項目１５に記載のコンピューティングシステム。
［項目１７］
上記高密度記憶モードはクワッドレベルセル（ＱＬＣ）である、
項目１６に記載のコンピューティングシステム。
［項目１８］
上記記憶容量閾値は５０％である、
項目１７に記載のコンピューティングシステム。
［項目１９］
上記記憶容量閾値は２５％以上７５％以下の範囲内である、
項目１５に記載のコンピューティングシステム。
［項目２０］
複数のフラッシュメモリチップを有するストレージデバイスのコントローラにより処理された場合、
上記複数のフラッシュメモリチップのマルチビットストレージセルを低密度記憶モードにプログラミングする手順と、
上記複数のフラッシュメモリチップの上記記憶容量の少なくとも２５％がプログラミングされた後に、上記複数のフラッシュメモリチップの上記マルチビットストレージセルを高密度記憶モードにプログラミングする手順と
を含む方法を上記ストレージデバイスに実行させる記憶されたプログラムコード
を備える製造品。
【図１ａ】
2019121350.tif 000003
【図１ｂ】
2019121350.tif 000004
【図１ｃ】
2019121350.tif 000005
【図１ｄ】
2019121350.tif 000006
【図１ｅ】
2019121350.tif 000007
【図１ｆ】
2019121350.tif 000008
【図１ｇ】
2019121350.tif 000009
【図２】
2019121350.tif 000010
【図３】
2019121350.tif 000011
【図４】
2019121350.tif 000012
【図５】
2019121350.tif 000013
【手続補正書】
【提出日】平成30年12月28日(2018.12.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ストレージデバイスを備え、
前記ストレージデバイスは、コントローラと、複数のフラッシュメモリチップとを有し、
前記複数のフラッシュメモリチップは、マルチビットストレージセルの３次元スタックを含み、
前記マルチビットストレージセルは、複数の記憶密度モードを有し、
前記コントローラは、少なくとも２５％という前記ストレージデバイスの記憶容量閾値まで前記マルチビットストレージセルを低密度記憶モードにプログラミングし、ひとたび前記記憶容量閾値に到達すると、前記マルチビットストレージセルを高密度記憶モードにプログラミングする、
装置。
【請求項２】
前記低密度記憶モードはマルチレベルセル（ＭＬＣ）である、
請求項１に記載の装置。
【請求項３】
前記高密度記憶モードはクワッドレベルセル（ＱＬＣ）である、
請求項２に記載の装置。
【請求項４】
前記記憶容量閾値は５０％である、
請求項３に記載の装置。
【請求項５】
前記記憶容量閾値は２５％以上７５％以下の範囲内である、
請求項１から３のいずれか一項に記載の装置。
【請求項６】
前記高密度記憶モードはＱＬＣである、
請求項１に記載の装置。
【請求項７】
前記ストレージデバイスはソリッドステートドライブである、
請求項１から６のいずれか一項に記載の装置。
【請求項８】
複数のフラッシュメモリチップのプログラミングレベルを決定するコントローラを備え、
前記複数のフラッシュメモリチップは、マルチビットストレージセルの３次元スタックを含み、
前記マルチビットストレージセルは、複数の記憶密度モードを有し、
前記コントローラは、少なくとも２５％という前記複数のフラッシュメモリチップの記憶容量閾値まで前記マルチビットストレージセルを低密度記憶モードにプログラミングし、ひとたび前記記憶容量閾値に到達すると、前記マルチビットストレージセルを高密度記憶モードにプログラミングする、
装置。
【請求項９】
前記低密度記憶モードはマルチレベルセル（ＭＬＣ）である、
請求項８に記載の装置。
【請求項１０】
前記高密度記憶モードはクワッドレベルセル（ＱＬＣ）である、
請求項９に記載の装置。
【請求項１１】
前記記憶容量閾値は５０％である、
請求項１０に記載の装置。
【請求項１２】
前記記憶容量閾値は２５％以上７５％以下の範囲内である、
請求項８から１０のいずれか一項に記載の装置。
【請求項１３】
前記高密度記憶モードはＱＬＣである、
請求項８に記載の装置。
【請求項１４】
前記ストレージデバイスはソリッドステートドライブである、
請求項８に記載の装置。
【請求項１５】
複数の処理コアと、
メインメモリと、
前記複数の処理コアと前記メインメモリとの間に結合されたメモリコントローラと、
周辺ハブコントローラと、
前記周辺ハブコントローラに結合されたソリッドステートドライブと
を備え、
前記ソリッドステートドライブは、コントローラと、複数のフラッシュメモリチップとを有し、
前記複数のフラッシュメモリチップは、マルチビットストレージセルの３次元スタックを含み、
前記マルチビットストレージセルは、複数の記憶密度モードを有し、
前記コントローラは、少なくとも２５％という前記ソリッドステートドライブの記憶容量閾値まで前記マルチビットストレージセルを低密度記憶モードにプログラミングし、ひとたび前記記憶容量閾値に到達すると、前記マルチビットストレージセルを高密度記憶モードにプログラミングする、
コンピューティングシステム。
【請求項１６】
前記低密度記憶モードはマルチレベルセル（ＭＬＣ）である、
請求項１５に記載のコンピューティングシステム。
【請求項１７】
前記高密度記憶モードはクワッドレベルセル（ＱＬＣ）である、
請求項１６に記載のコンピューティングシステム。
【請求項１８】
前記記憶容量閾値は５０％である、
請求項１７に記載のコンピューティングシステム。
【請求項１９】
前記記憶容量閾値は２５％以上７５％以下の範囲内である、
請求項１５から１７のいずれか一項に記載のコンピューティングシステム。
【請求項２０】
複数のフラッシュメモリチップを有するストレージデバイスのコントローラにより処理された場合、
前記複数のフラッシュメモリチップのマルチビットストレージセルを低密度記憶モードにプログラミングする手順と、
前記複数のフラッシュメモリチップの記憶容量の少なくとも２５％がプログラミングされた後に、前記複数のフラッシュメモリチップの前記マルチビットストレージセルを高密度記憶モードにプログラミングする手順と
を含む方法を前記ストレージデバイスに実行させる
プログラム。
【請求項２１】
請求項２０に記載のプログラムを記憶するコンピュータ可読ストレージ媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
しかしながら、セル１個当たりの記憶密度およびセル１個当たりのアクセス時間に関して、トレードオフが存在する。すなわち、概して、ストレージセルがより多くのビットを記憶するほど、情報をセルに書き込むために必要な時間の量は長くなる。ここで、より多くのビットを記憶するストレージセルは、より少ないビットを記憶するストレージセルより厳しい電荷記憶許容値を有するものと理解され得る。すなわち、より多くのビットを記憶するセルは、そのセルが記憶し得る異なる論理状態間の差を示すより少量の電荷を有するのに対し、より少ないビットを記憶するセルは、そのセルが記憶し得る論理状態間差を示すより大量の電荷を有する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００２０
【補正方法】変更
【補正の内容】
【００２０】
図１ｂは、最初のページ数１０１がデバイスにプログラミングされた後のＳＳＤの状態を示す。ここで、ＳＳＤは、論理アドレスを物理アドレスにマッピングするマッピングテーブル（アドレス変換テーブルとも称される）を管理するコントローラを含む。ＳＳＤに書き込まれるデータのブロックをホストが送信する場合、ホストは、このデータにブロックアドレスも付加する。このブロックアドレスは、論理ブロックアドレス（ＬＢＵ）と称される。次に、ＳＳＤは、このデータブロックをＳＳＤに書き込み、マッピングテーブル内で、このデータのＬＢＵを、このブロックのデータのページが記憶されているＳＳＤ内の物理位置に関連付ける。これらの特定の物理位置は、ページが記憶されているＳＳＤ内の１または複数のダイ、面、ブロック、ワードラインおよびページリソースを一意に特定する物理ブロックアドレス（ＰＢＡ）で指定される。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００２５
【補正方法】変更
【補正の内容】
【００２５】
再びであるが、同じ面およびダイの異なるブロックおよびワードラインにわたってデータが順次書き込まれる書き込みパターンを用いる代替的な実装では、ページＬおよびＵがダイ１の面０のＢＡ＝０およびＷＬ＝０に書き込まれた後、ＳＳＤは、例えば、ダイ１の面０のＢＡ＝０およびＷＬ＝１にページＬおよびＵを書き込み得る。この特定の実施形態では、再びであるが、特定のワードラインに沿った潜在的な記憶容量の半分のみがプログラミングされる。従って、無数の異なる記憶ブロックおよびワードラインの組み合わせのシーケンスが存在し、これらは、特定のプログラミングパターンを、ＳＳＤに書き込まれている新しいページとして定義するために用いられ得る。議論を容易にするために、本説明の残りでは主に、ページ書き込みパターンが図１ｂから図１ｆに示される実施形態のみに言及する。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００３６
【補正方法】変更
【補正の内容】
【００３６】
ひとたび高密度セル記憶モードの利用が始まると認められる、プログラミング性能の低下の影響を減らすべく、ウェアレベリング機能により維持されるホットブロックデータおよびコールドブロックデータも、ＭＬＣモードで動作しているセルにおけるホットページを維持するために、また、ＱＬＣモードで動作しているストレージセルにおけるコールドページを維持するために用いられ得る。ここで、例えば、図１ｅはＳＳＤを示す。ＳＳＤのストレージセルのうちのかなりの割合がＭＬＣモードで動作しており、ＳＳＤのストレージセルのうちのかなりの割合がＱＬＣモードで動作している。従って、低速ＱＬＣセル内に十分な数のホットブロックが存在し得、高速ＭＬＣセル内に十分な数のコールドブロックが存在し得る。コントローラにより維持されるウェアレベリングデータは、ホットブロックが高速ＭＬＣセルへと動かされ、コールドブロックが低速ＱＬＣセルへと動かされるようにこれらのページの位置をインテリジェントにスワップするために用いられ得る。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００４９
【補正方法】変更
【補正の内容】
【００４９】
タッチスクリーンディスプレイ５０３、通信インターフェース５０４−７０７、ＧＰＳインターフェース５０８、センサ５０９、カメラ５１０およびスピーカ／マイクコーデック５１３、５１４の各々は、必要に応じて統合型周辺デバイス（例えば、１または複数のカメラ５１０）も含むコンピューティングシステム全体に対する様々な形式のＩ／Ｏ（入力および／または出力）として見られ得る。実装に応じて、これらのＩ／Ｏコンポーネントのうちの様々なものが、アプリケーションプロセッサ／マルチコアプロセッサ５５０上で統合され得るか、またはダイの外またはアプリケーションプロセッサ／マルチコアプロセッサ５５０のパッケージの外に配置され得る。
【外国語明細書】
2019121350000001.pdf