(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024031831
(43)【公開日】2024-03-07
(54)【発明の名称】QLC/TLCダイのためのハイブリッドスマート検証
(51)【国際特許分類】
G11C 11/56 20060101AFI20240229BHJP
G11C 16/34 20060101ALI20240229BHJP
H10B 43/27 20230101ALI20240229BHJP
H10B 41/27 20230101ALI20240229BHJP
H01L 21/336 20060101ALI20240229BHJP
【FI】
G11C11/56 210
G11C16/34 140
H10B43/27
H10B41/27
H01L29/78 371
【審査請求】有
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023113773
(22)【出願日】2023-07-11
(31)【優先権主張番号】17/895,412
(32)【優先日】2022-08-25
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】511242535
【氏名又は名称】サンディスク テクノロジーズ エルエルシー
【住所又は居所原語表記】5080 Spectrum Drive,Suite 1050W,Addison,Texas 75001,United States of America
(74)【代理人】
【識別番号】100207837
【弁理士】
【氏名又は名称】小松原 寿美
(72)【発明者】
【氏名】シャン ヤン
(72)【発明者】
【氏名】ヘンリー チン
(72)【発明者】
【氏名】エリカ ペンツォ
(72)【発明者】
【氏名】ムハンマド マスドゥザマン
【テーマコード(参考)】
5B225
5F083
5F101
【Fターム(参考)】
5B225BA19
5B225CA08
5B225DB02
5B225DB08
5B225DB22
5B225DB30
5B225DE15
5B225EA05
5B225EF17
5B225FA01
5B225FA02
5F083EP18
5F083EP22
5F083EP32
5F083EP76
5F083ER21
5F083GA10
5F083JA36
5F083JA37
5F083JA38
5F083JA39
5F083JA56
5F083MA06
5F083MA16
5F083ZA21
5F101BA01
5F101BA41
5F101BB02
5F101BD12
5F101BD22
5F101BD30
5F101BD34
5F101BE07
5F101BH13
(57)【要約】 (修正有)
【課題】セル当たり4ビットのプログラムモード(又はX4モード)を有し、かつ、セル当たり3ビットのプログラムモード(又はX3モード)を有するメモリシステムにおけるスマート検証のための装置、方法及び不揮発性記憶システムを提供する。
【解決手段】メモリシステムにおける状態依存スマート検証のプロセスX3モードであって、X4モードの4ビットグレーコードに基づく3ビットグレーコードを使用し、X4モードからのプログラミング論理のかなりの部分を使用しながら、X3モードにおける状態の検証をスキップし、1つのX3モードにおいては、A状態検証電圧を上回るVtを有するメモリセルの数が閾値未満である間、B状態検証をスキップし、1つのX3モードにおいては第1の試験に基づいて、データ状態の第1のセットの検証をスキップするかどうか判定し、第2の試験に基づいて、データ状態の第2のセットの検証をスキップするかどうか判定する。
【選択図】
図8
【特許請求の範囲】
【請求項1】
装置であって、
不揮発性メモリセルを備えるメモリ構造に接続するように構成された1つ以上の制御回路を備え、前記1つ以上の制御回路が、
16個の状態及び4つのページを有する4ビットコードを使用して、前記メモリ構造内の前記メモリセルの第1のグループをプログラムすること、
前記4つのページのうちの3つのページに基づいて、3ビットコードを使用して前記メモリ構造内の前記メモリセルの第2のグループをプログラムすることであって、前記3ビットコードが、前記4ビットコードの未使用ページがデフォルト値を含む前記4ビットコードの前記16個の状態のうちの8個の状態を含む、プログラムすること、及び
前記8個の状態のうちの1個以上の状態の第1のセットの各特定の状態について、閾値電圧にある前記特定の状態の直前の状態の検証電圧を上回る閾値電圧を有するメモリセルの数が所定の数よりも大きいかどうかに基づいて判定されるプログラム検証ループの間に、前記3ビットコードを使用したプログラミングの間に検証を始めることを行うように構成されている、装置。
【請求項2】
前記1つ以上の制御回路が、
前記8個の状態のうちの1個以上の状態の第2のセットの各特定の状態について、閾値電圧にある前記特定の状態の直前の状態を検証することを始めた後の所定の数のプログラム検証ループに基づいて判定されたプログラム検証ループの間に、前記3ビットコードを使用したプログラミングの間に検証を始めるように更に構成されている、請求項1に記載の装置。
【請求項3】
前記8個の状態が、消去状態、並びに増加する閾値電圧にあるA状態、B状態、C状態、D状態、E状態、F状態、及びG状態を含み、
前記第1のセットが、前記B状態を含む、
請求項2に記載の装置。
【請求項4】
前記第2のセットが、前記C状態、D状態、E状態、F状態、及びG状態を含む、
請求項3に記載の装置。
【請求項5】
前記第1のセットが、
前記3ビットコード内でも使用される前記4ビットコード内の状態の直後の前記3ビットコード内の全ての状態を含む、請求項2に記載の装置。
【請求項6】
前記8個の状態が、消去状態、並びに増加する閾値電圧にあるA状態、B状態、C状態、D状態、E状態、F状態、及びG状態を含み、
前記第1のセットは、前記B状態が、前記3ビットコードにおいても使用される前記4ビットコードにおける状態に続くかどうか、又は前記B状態が、前記3ビットコードにおいて使用されない前記4ビットコードにおける状態に続くどうかの前記B状態を含む、
請求項5に記載の装置。
【請求項7】
前記第2のセットが、
前記3ビットコードにおいて使用されない前記4ビットコードにおける状態の直後であるが、前記3ビットコードにおいても使用される前記4ビットコードにおけるいかなる状態も含まない前記3ビットコードにおける状態を含む、請求項5に記載の装置。
【請求項8】
前記4ビットコードの前記4つのページのうちの3つに基づいて、前記3ビットコードを使用して前記メモリ構造内の前記メモリセルの前記第2のグループをプログラムすることは、前記1つ以上の制御回路が、
3つのデータページを、メモリセルに関連付けられたデータラッチの対応する第3のセットにロードすること、及び
前記デフォルト値を、メモリセルに関連付けられたデータラッチの第4のセットにロードすることであって、前記デフォルト値が、前記データラッチの第4のセット内の全てのデータラッチについて同じである、ロードすることを行うように更に構成されていることを含む、請求項1に記載の装置。
【請求項9】
前記1つ以上の制御回路が、
前記データラッチの前記対応する3つのセット内の前記3つのデータページ、及び前記データラッチの前記第4のセット内の前記デフォルト値を考慮するプログラミングアルゴリズムに基づいて、前記3つのデータページを前記メモリセルにプログラムするように更に構成されている、請求項8に記載の装置。
【請求項10】
不揮発性記憶装置を動作させる方法であって、
3つのデータページをデータラッチの対応する3つのセットにロードすることと、
デフォルト値をデータラッチの第4のセットにロードすることであって、前記デフォルト値が、前記第4のセット内の全てのラッチについて同じである、ロードすることと、
前記3つのデータページを前記不揮発性記憶装置内のメモリセルのグループにプログラムすることであって、前記3つのデータページが、A状態及びB状態を含む8つの閾値電圧分布としてプログラムされ、
i)所定の数のメモリセルが前記A状態の検証電圧を上回る閾値電圧を有する前に、前記B状態各プログラム検証ループの検証をスキップすること、及び
ii)前記所定の数のメモリセルがA状態の前記検証電圧を上回る閾値電圧を有した後に、次のプログラム検証ループで前記B状態の検証を始めることを含む、プログラムすることと、を含む、方法。
【請求項11】
前記B状態の検証を開始した後に実行されるプログラムループの数に基づいて、前記B状態を上回る閾値電圧を有する各それぞれの状態について検証を開始すること、
を更に含む、請求項10に記載の方法。
【請求項12】
4つのデータページを前記データラッチの対応する4つのセットにロードすることと、
4ページグレーコードに基づいて、前記不揮発性記憶装置内の前記メモリセルのグループに前記4つのデータページをプログラムすることであって、前記4つのデータページが、前記4ページグレーコードの16個の状態に対応する16個の閾値電圧分布としてプログラムされ、前記8個の閾値電圧分布が、前記16個の状態のうちの8個の状態に対応し、前記8個の状態が、3ページグレーコードである、プログラムすることと、
を更に含む、請求項10に記載の方法。
【請求項13】
特定の状態であって、前記B状態よりも大きい閾値電圧を有し、かつ閾値電圧にある前記特定の状態の直前の前記3ページグレーコード内の前記状態の検証を開始した後に実行されるプログラムループの数に基づいて、前記4ページグレーコード内の未使用状態に続く、特定の状態の検証を開始すること、
を更に含む、請求項12に記載の方法。
【請求項14】
特定の状態であって、前記B状態よりも大きい閾値電圧を有し、かつ閾値電圧にある前記特定の状態の直前の前記状態の検証電圧を上回る閾値電圧を有するメモリセルの数のカウントに基づいて、前記4ページグレーコード内の使用済み状態に続く、特定の状態の検証を開始すること、
を更に含む、請求項12に記載の方法。
【請求項15】
不揮発性記憶システムであって、
NANDメモリセルを含むメモリ構造と、
前記メモリ構造と通信する1つ以上の制御回路と、を備え、前記1つ以上の制御回路が、
16個のデータ状態を有する4ページグレーコードを使用して、前記メモリ構造内の前記NANDメモリセルの第1のグループをプログラムすること、
前記16個のデータ状態のうちの8個のデータ状態に基づいて、3ページグレーコードを使用して、前記メモリ構造内の前記NANDメモリセルの第2のグループをプログラムすることであって、前記8個のデータ状態が、前記3ページグレーコード内で連続的に順序付けられる、プログラムすること、
第1の試験に基づいて、前記3ページグレーコードの1個以上のデータ状態の第1のセットに対する特定のプログラム検証ループの検証をスキップするかどうかを判定すること、及び
第2の試験に基づいて、前記3ページグレーコードの1個以上のデータ状態の第2のセットに対する特定のプログラム検証ループの検証をスキップするかどうかを判定することを行うように構成されている、不揮発性記憶システム。
【請求項16】
前記第1の試験は、所定の数のメモリセルが、直前のプログラム検証ループにおける前記3ページグレーコード内の直前のデータ状態の検証基準電圧を上回る閾値電圧を有するかどうかの判定を含み、
前記第2の試験は、前記3ページグレーコードにおける前記直前のデータ状態の検証が開始された前記プログラム検証ループの後に、所定の数のプログラムパルスが前記メモリセルに印加されたかどうかの判定を含む、
請求項15に記載の不揮発性記憶システム。
【請求項17】
前記8個のデータ状態が、消去状態、並びに増加する閾値電圧にあるA状態、B状態、C状態、D状態、E状態、F状態、及びG状態を含み、
前記第1のセットが、前記B状態を含み、
前記第2のセットが、前記C状態、D状態、E状態、F状態、及びG状態を含む、
請求項16に記載の不揮発性記憶システム。
【請求項18】
前記第1の試験は、所定の数のメモリセルが、直前のプログラム検証ループにおける前記3ページグレーコード内の直前のデータ状態の検証基準電圧を上回る閾値電圧を有するかどうかの判定を含み、
前記第1のセットが、前記4ページグレーコードにおける使用済み状態に続く全てのデータ状態を含む、
請求項15に記載の不揮発性記憶システム。
【請求項19】
前記第1の試験は、B状態が前記4ページグレーコードからの使用済みデータ状態又は未使用データ状態によって先行されるかどうかにかかわらず、B状態のために使用される、
請求項18に記載の不揮発性記憶システム。
【請求項20】
前記第2の試験は、前記3ページグレーコードにおける直前のデータ状態の検証が開始された前記プログラム検証ループの後に、所定の数のプログラムパルスが前記メモリセルの前記第2のグループに印加されたかどうかの判定を含み、
前記第2のセットが、前記4ページグレーコードにおける未使用状態に続くデータ状態を含み、前記4ページグレーコードにおける使用済み状態に続くいかなるデータ状態も含まない、
請求項15に記載の不揮発性記憶システム。
【発明の詳細な説明】
【背景技術】
【0001】
本開示は、不揮発性メモリに関する。
【0002】
半導体メモリは、携帯電話、デジタルカメラ、パーソナルデジタルアシスタント、電子医療機器、モバイルコンピューティングデバイス、サーバ、ソリッドステートドライブ、非モバイルコンピューティングデバイス、及び他のデバイスなどの様々な電子デバイスに広く使用されている。半導体メモリは、不揮発性メモリ又は揮発性メモリを含むことがある。不揮発性メモリにより、不揮発性メモリが電源(例えば、電池)に接続されていないときでも、情報を記憶及び保持することが可能になる。
【0003】
メモリシステムにおけるメモリ構造は、典型的には、多くのメモリセル及び様々な制御線を含む。メモリ構造は、三次元であってもよい。三次元構造の1つのタイプは、垂直NANDストリングとして配置された不揮発性メモリセルを有する。メモリ構造は、一般に物理ブロックと呼ばれるユニットに構成されてもよい。例えば、NANDメモリシステム内のブロックは、多くのNANDストリングを含む。NANDストリングは、直列に接続されたメモリセルトランジスタ、一端のドレイン側選択ゲート、及び他端のソース側選択ゲートを含む。各NANDストリングは、ビット線に関連付けられる。ブロックは、典型的には、メモリセルトランジスタの制御ゲートに電圧を提供する多くのワード線を有する。いくつかのアーキテクチャでは、各ワード線は、ブロック内の各それぞれのNANDストリング上の1つのメモリセルの制御ゲートに接続する。
【0004】
NANDなどのメモリでは、メモリセルの大きなセットが最初に消去される。本明細書では、単位として消去されるメモリセルのセットを「消去ブロック」と呼ぶ。場合によっては、消去ブロックは、物理ブロックと一致する。場合によっては、消去ブロックは、物理ブロックの一部分である。次に、消去ブロック内のメモリセルは、一度に1グループずつプログラムされる。プログラミングの単位は、典型的には、メモリセルの物理ページと呼ばれる。不揮発性メモリセルは、データを記憶するようにプログラムされてもよい。典型的には、メモリセルは、いくつかのデータ状態にプログラムされる。より多数のデータ状態を使用することにより、メモリセル毎により多くのビットが記憶されることが可能になる。例えば、メモリセル毎に2ビットを記憶するために4個のデータ状態が使用されてもよく、メモリセル毎に3ビットを記憶するために8個のデータ状態が使用されてもよく、メモリセル毎に4ビットを記憶するために16個のデータ状態が使用されてもよい、など。いくつかのメモリセルは、電荷を蓄積することによって、データ状態にプログラムされてもよい。例えば、NANDメモリセルの閾値電圧(Vt)は、電荷トラップ層などの電荷蓄積領域に電荷をプログラムすることによって、目標Vtに設定することができる。電荷トラップ層に蓄積された電荷の量は、メモリセルのVtを確立する。
【0005】
プログラム動作の間に、一連のプログラミング電圧パルスがメモリセルの制御ゲートに印加される。各電圧パルスは、増分型ステップパルスプログラミングと呼ばれる処理のステップサイズ分だけ、前のプログラムパルスから大きさがステップアップし得る。プログラム電圧の後に、メモリセルが対応する1個以上の目標データ状態にプログラムされたかどうかを判定するために、1つ以上の検証動作が続いてもよい。いくつかの技法では、プログラムパルスの後に、目標検証状態のサブセットのみが検証される。各検証動作は有限量の時間を要する。したがって、検証動作の総数を低減することは、プログラミング時間を低減する。検証動作の総数を低減することはまた、電流及び/又は電力を節約する。
【0006】
しかしながら、所与のプログラムパルスの後にどの状態が検証されるべきかを判定する際の技術的課題がある。目標状態のメモリセルのオーバープログラミングは、目標状態の検証がプログラムパルスの後にスキップされる場合に発生し得る。一方、プログラミングプロセスにおいて目標状態をあまりにも早く検証することによって、時間、電流及び/又は電力が浪費される場合がある。
【図面の簡単な説明】
【0007】
同様に番号付けされた要素は、異なる図で共通の構成要素を指す。
【
図1】記憶システムの一実施形態を示すブロック図である。
【
図2A】メモリダイの一実施形態のブロック図である。
【
図2B】集積メモリアセンブリの一実施形態のブロック図である。
【
図3A】集積メモリアセンブリの異なる実施形態を示す。
【
図3B】集積メモリアセンブリの異なる実施形態を示す。
【
図3C】いくつかの読み出し/書き込み回路を含む列制御回路の一部分の一実施形態を示すブロック図である。
【
図4】モノリシック三次元メモリ構造の一例示的実施形態の一部の斜視図である。
【
図4A】2つの平面を有するメモリ構造の一実施形態のブロック図である。
【
図4B】メモリセルから物理ブロックの一部分の上面図を示すブロック図である。
【
図4C】
図4Bの線AAに沿った断面図を示すスタックの一実施形態を示す。
【
図4E】いくつかのNANDストリングを示す、物理ブロックの一実施形態の一部分の概略図である。
【
図5A】各メモリセルが2ビットのデータを記憶する4状態メモリデバイスの閾値電圧Vth分布の一実施形態を示す。
【
図5B】各メモリセルが3ビットのデータを記憶する8状態メモリデバイスの閾値電圧Vth分布の一実施形態を示す。
【
図5C】各メモリセルが4ビットのデータを記憶する16状態メモリデバイスの閾値電圧Vth分布の一実施形態を示す。
【
図6】プログラミングメモリセルのプロセスの一実施形態を説明するフロー図である。
【
図7A1】16個のデータ状態を表すために使用される例示的なグレーコードの表である。
【
図7A2】
図7A1の例示的なグレーコードから生成されてもよい8個のデータ状態を表すために使用される例示的なグレーコードの表である。
【
図7A3】
図7A2の例示的なグレーコードを使用してプログラムされた、各メモリセルが3ビットのデータを記憶する8状態メモリデバイスの閾値電圧分布の一実施形態を示す。
【
図7A4】調整された検証レベルを有する
図7A2の例示的なグレーコードを使用してプログラムされた、各メモリセルが3ビットのデータを記憶する8状態メモリデバイスの閾値電圧分布の一実施形態を示す。
【
図8】X3モード及びX4モードの両方を使用するメモリシステムにおける状態依存スマート検証のプロセスの一実施形態のフロー図である。
【
図9】メモリセルを検証するための1つの可能な方式を示す。
【
図10A】異なる速度でプログラムする2つの異なるダイのプログラミングプロセスの一部分を示す。
【
図10B】異なる速度でプログラムする2つの異なるダイのプログラミングプロセスの一部分を示す。
【
図11】より低速又はより高速のプログラミングダイがあるかどうかにかかわらず、オーバープログラミングを防止する可能な方式を示す。
【
図12】X3プログラミングのスマート検証方式の一実施形態を示す。
【
図13】X3プログラミングのためにスマートPVCと手動PVCとを組み合わせるプロセスの一実施形態のフロー図である。
【
図14】X3プログラミングの状態依存スマート検証のプロセスの一実施形態のフロー図である。
【
図15】X3プログラミングの状態依存スマート検証のプロセスの別の実施形態のフロー図である。
【
図16B1】16個のデータ状態を表すために使用される例示的なグレーコードの表である。
【
図16B2】
図16B1の例示的なグレーコードから生成されてもよい8個のデータ状態を表すために使用される例示的なグレーコードの表である。
【
図16B3】
図16B2の例示的なグレーコードを使用してプログラムされた、各メモリセルが3ビットのデータを記憶する8状態メモリデバイスの閾値電圧分布の一実施形態を示す。
【
図16B4】調整された検証レベルを有する
図16B2の例示的なグレーコードを使用してプログラムされた、各メモリセルが3ビットのデータを記憶する8状態メモリデバイスの閾値電圧分布の一実施形態を示す。
【
図16C1】16個のデータ状態を表すために使用される例示的なグレーコードの表である。
【
図16C2】
図16C1の例示的なグレーコードから生成されてもよい8個のデータ状態を表すために使用される例示的なグレーコードの表である。
【
図16C3】
図16C2の例示的なグレーコードを使用してプログラムされた、各メモリセルが3ビットのデータを記憶する8状態メモリデバイスの閾値電圧分布の一実施形態を示す。
【
図16C4】調整された検証レベルを有する
図16C2の例示的なグレーコードを使用してプログラムされた、各メモリセルが3ビットのデータを記憶する8状態メモリデバイスの閾値電圧分布の一実施形態を示す。
【
図16D1】16個のデータ状態を表すために使用される例示的なグレーコードの表である。
【
図16D2】
図16D1の例示的なグレーコードから生成されてもよい8個のデータ状態を表すために使用される例示的なグレーコードの表である。
【
図16D3】
図16D2の例示的なグレーコードを使用してプログラムされた、各メモリセルが3ビットのデータを記憶する8状態メモリデバイスの閾値電圧分布の一実施形態を示す。
【
図16D4】調整された検証レベルを有する
図16D2の例示的なグレーコードを使用してプログラムされた、各メモリセルが3ビットのデータを記憶する8状態メモリデバイスの閾値電圧分布の一実施形態を示す。
【
図16E1】16個のデータ状態を表すために使用される例示的なグレーコードの表である。
【
図16E2】
図16E1の例示的なグレーコードから生成されてもよい8個のデータ状態を表すために使用される例示的なグレーコードの表である。
【
図16E3】
図16E2の例示的なグレーコードを使用してプログラムされた、各メモリセルが3ビットのデータを記憶する8状態メモリデバイスの閾値電圧分布の一実施形態を示す。
【
図16E4】調整された検証レベルを有する
図16E2の例示的なグレーコードを使用してプログラムされた、各メモリセルが3ビットのデータを記憶する8状態メモリデバイスの閾値電圧分布の一実施形態を示す。
【
図16F1】16個のデータ状態を表すために使用される例示的なグレーコードの表である。
【
図16F2】
図16F1の例示的なグレーコードから生成されてもよい8個のデータ状態を表すために使用される例示的なグレーコードの表である。
【
図16F3】
図16F2の例示的なグレーコードを使用してプログラムされた、各メモリセルが3ビットのデータを記憶する8状態メモリデバイスの閾値電圧分布の一実施形態を示す。
【
図16F4】調整された検証レベルを有する
図16F2の例示的なグレーコードを使用してプログラムされた、各メモリセルが3ビットのデータを記憶する8状態メモリデバイスの閾値電圧分布の一実施形態を示す。
【
図16G1】16個のデータ状態を表すために使用される例示的なグレーコードの表である。
【
図16G2】
図16G1の例示的なグレーコードから生成されてもよい8個のデータ状態を表すために使用される例示的なグレーコードの表である。
【
図16G3】
図16G2の例示的なグレーコードを使用してプログラムされた、各メモリセルが3ビットのデータを記憶する8状態メモリデバイスの閾値電圧分布の一実施形態を示す。
【
図16G4】調整された検証レベルを有する
図16G2の例示的なグレーコードを使用してプログラムされた、各メモリセルが3ビットのデータを記憶する8状態メモリデバイスの閾値電圧分布の一実施形態を示す。
【
図16H1】16個のデータ状態を表すために使用される例示的なグレーコードの表である。
【
図16H2】
図16H1の例示的なグレーコードから生成されてもよい8個のデータ状態を表すために使用される例示的なグレーコードの表である。
【
図16H3】
図16H2の例示的なグレーコードを使用してプログラムされた、各メモリセルが3ビットのデータを記憶する8状態メモリデバイスの閾値電圧分布の一実施形態を示す。
【
図16H4】調整された検証レベルを有する
図16H2の例示的なグレーコードを使用してプログラムされた、各メモリセルが3ビットのデータを記憶する8状態メモリデバイスの閾値電圧分布の一実施形態を示す。
【発明を実施するための形態】
【0008】
セル毎に異なるマルチビットモードにおいてデータをプログラムすることが可能なメモリシステムにおけるスマート検証のための技術が、本明細書で開示される。一実施形態では、メモリシステムは、セル当たり4ビットのモード(又はX4モード)及びセル当たり3ビットのモード(又はX3モード)でメモリ構造内のメモリセルをプログラムする。セル当たり4ビットのモードは、4ページ及び16個のデータ状態を有する4ビットグレーコードを使用する。セル当たり3ビットのモードは、4ビットグレーコードに基づく3ビットグレーコードを使用する。3ビットグレーコードは、4ビットグレーコードの4つのページのうちの3つに基づく。3ビットコードを4ビットグレーコードの4つのページのうちの3つに基づかせることによって、セル当たり4ビットプログラムするために使用される論理のかなりの部分を、セル当たり3ビットにプログラムするために使用することもできる。しかしながら、3ビットグレーコードは、4ビットグレーコードからの16個の状態のうちの8つしか使用しないので、3ビットグレーコードを使用する検証には技術的な課題が生じる。特に、X4プログラミングモードにおいてどの状態が検証をスキップすべきかを判定する論理は、X3プログラミングモードにおいて検証をスキップするために使用するのに適していない場合がある。X4プログラミングモードからのプログラミング論理のかなりの部分がX3プログラミングモードにおいて使用されることを依然として可能にしながら、X3プログラミングモードにおける状態の検証をスキップするための技法が、本明細書で開示される。
【0009】
一実施形態では、X3プログラミングモードにおいて、メモリシステムは、各プログラムパルス後に、(X3モードにおけるA~G状態のうちの)A状態の検証電圧を上回る閾値電圧を有するメモリセルの数をカウントする。B状態の検証は、A状態の検証電圧を上回る閾値電圧を有するメモリセルの数がPVループのための閾値を下回ることに応答して、次のプログラム検証(program-verify、PV)ループ上でスキップされる。B状態の検証は、A状態の検証電圧を上回る閾値電圧を有するメモリセルの数が閾値を上回る第1の時間の後に、次のPVループ上で始まる。十分な数のセルがA状態検証電圧を上回るVtを有するまでB状態を検証するのを待つことによって、メモリシステムは、B状態をあまりにも早く検証することを回避する。したがって、時間、電力及び/又は電流が節約される。また、メモリシステムは、B状態の検証が遅すぎることを回避する。したがって、B状態セルのオーバープログラミングが回避される。検証は、様々な実施形態では、異なる要因に基づいて、残りの状態について開始することができる。一実施形態では、各他の状態の検証は、先行する状態の検証が始められた後、所定の数のPVループを始める。
【0010】
一実施形態では、メモリシステムは、第1の試験に基づいて、X3プログラミングモードの1個以上のデータ状態の第1のセットの検証をスキップするかどうかを判定し、第2の試験に基づいて、X3プログラミングモードの1個以上のデータ状態の第2のセットの検証をスキップするかどうかを判定する。一実施形態では、第1のセットは、4ビットコードにおける未使用状態に続くデータ状態を含むが、4ビットコードにおける使用済み状態に続くいかなるデータ状態も含まない。一実施形態では、第2のセットは、4ビットコードにおける使用済み状態に続く全てのデータ状態を含む。
【0011】
図1は、本明細書で説明される技術を実装する記憶システム100の一実施形態のブロック図である。一実施形態では、記憶システム100は、ソリッドステートドライブ(solid state drive、「SSD」)である。記憶システム100はまた、メモリカード、USBドライブ、又は他の種類の記憶システムであってよい。提案される技術は、任意の1つの種類の記憶システムに限定されない。記憶システム100は、コンピュータ、サーバ、電子デバイス(例えば、スマートフォン、タブレット、又は他のモバイルデバイス)、電化製品、又はメモリを使用し、データ処理能力を有する別の装置であり得るホスト102に接続されている。いくつかの実施形態では、ホスト102は、記憶システム100とは別個であるが、記憶システムに接続されている。他の実施形態では、記憶システム100はホスト102内に埋め込まれる。
【0012】
図1に示す記憶システム100の構成要素は、電気回路である。記憶システム100は、不揮発性記憶装置130及びローカル高速メモリ140(例えば、DRAM、SRAM、MRAM)に接続されたメモリコントローラ120(又は記憶装置コントローラ)を含む。ローカルメモリ140は、揮発性メモリ又は不揮発性メモリを含んでもよい非一時的メモリである。ローカル高速メモリ140は、メモリコントローラ120によって使用されて、特定の動作を実行する。例えば、ローカル高速メモリ140は、論理-物理アドレス変換テーブル(「L2Pテーブル」)を記憶してもよい。
【0013】
メモリコントローラ120は、ホスト102に接続され、ホスト102と通信するホストインターフェース152を備える。一実施形態では、ホストインターフェース152は、PCI Express(PCI Express、PCIe)上のNVM Express(NVM Express、NVMe)を実装する。SCSI、SATAなどの他のインターフェースも使用され得る。ホストインターフェース152は、ネットワークオンチップ(network-on-chip、NOC)154にも接続される。NOCは、集積回路上の通信サブシステムである。NOCは、同期及び非同期クロックドメインにまたがるか、又はロックされていない非同期論理を使用することができる。NOC技術は、ネットワーキング理論及び方法をオンチップ通信に適用し、従来のバス及びクロスバー相互接続に顕著な改善をもたらす。NOCは、他の設計と比較して、systems on a chip(SoC)の拡張性、及び複雑なSoCの電力効率を向上させる。NOCのワイヤ及びリンクは、多くの信号によって共有される。NOC内の全てのリンクが異なるデータパケット上で同時に動作することができるため、高レベルの並列性が達成される。したがって、統合サブシステムの複雑性が増大し続けると、NOCは、以前の通信アーキテクチャ(例えば、専用のポイントツーポイント信号ワイヤ、共有バス、又はブリッジを有するセグメント化バス)と比較して、向上した性能(スループットなど)及びスケーラビリティをもたらす。他の実施形態では、NOC154をバスで置き換えることができる。プロセッサ156、ECCエンジン158、メモリインターフェース160、及びローカルメモリコントローラ164はNOC154に接続され、これと通信している。ローカルメモリコントローラ164は、ローカル高速メモリ140(例えば、DRAM、SRAM、MRAM)を動作させ、これと通信するために使用される。
【0014】
ECCエンジン158は、誤り訂正サービスを実行する。例えば、ECCエンジン158は、データ符号化及び復号化を実行する。一実施形態では、ECCエンジン158は、ソフトウェアによってプログラムされた電気回路である。例えば、ECCエンジン158は、プログラムされ得るプロセッサであり得る。他の実施形態では、ECCエンジン158は、いずれのソフトウェアも有さない、カスタムの専用ハードウェア回路である。別の実施形態では、ECCエンジン158の機能は、プロセッサ156によって実装される。
【0015】
プロセッサ156は、プログラミング、消去、読み出し、及びメモリ管理プロセスなど様々なコントローラメモリ動作を実行する。一実施形態では、プロセッサ156はファームウェアによってプログラムされる。他の実施形態では、プロセッサ156は、いずれのソフトウェアも有さない、カスタムの専用ハードウェア回路である。プロセッサ156はまた、ソフトウェア/ファームウェアプロセスとして、又は専用ハードウェア回路として、変換モジュールを実装する。多くのシステムでは、不揮発性メモリは、1つ以上のメモリダイに関連する物理アドレスを使用して、内部で記憶システムにアドレス指定される。しかしながら、ホストシステムは論理アドレスを使用して、様々なメモリ場所にアドレスを指定する。これにより、ホストは、データを連続論理アドレスに割り当てることができ、その一方、記憶システムは、1つ以上のメモリダイの場所の間で、思い通りにデータを自由に記憶する。このシステムを実装するために、メモリコントローラ120(例えば、変換モジュール)は、ホストによって使用される論理アドレスとメモリダイによって使用される物理アドレスとの間でアドレス変換を実行する。例示的な一実装形態は、論理アドレスと物理アドレスとの間での現在の変換を識別するテーブル(すなわち、上記のL2Pテーブル)を維持することである。L2Pテーブル内のエントリとしては、論理アドレス及び対応する物理アドレスの識別子が挙げられ得る。論理アドレス-物理アドレステーブル(つまり、L2Pテーブル)は、「テーブル」という語を含むが、文字通りテーブルである必要はない。むしろ、物理アドレス-論理アドレステーブル(つまり、L2Pテーブル)は、任意の種類のデータ構造であり得る。いくつかの例では、記憶システムのメモリ空間が非常に大きいため、ローカルメモリ140はL2Pテーブルの全てを保持することができない。かかる場合、L2Pテーブルのセットの全体が記憶装置130に記憶され、L2Pテーブルのサブセットは、ローカル高速メモリ140にキャッシュされる(L2Pキャッシュ)。
【0016】
メモリインターフェース160は、不揮発性記憶装置130と通信する。一実施形態では、メモリインターフェースは、トグルモードインターフェースを提供する。他のインターフェースも使用され得る。いくつかの例示的な実装形態では、メモリインターフェース160(又はコントローラ120の別の部分)は、1つ以上のメモリダイに対してデータを送受信するためのスケジューラ及びバッファを実装する。
【0017】
一実施形態では、不揮発性記憶装置130は、1つ以上のメモリダイを備える。
図2Aは、不揮発性記憶装置130を備えるメモリダイ200の一実施形態の機能ブロック図である。不揮発性記憶装置130の1つ以上のメモリダイの各々は、
図2Aのメモリダイ200として実装することができる。
図2Aに示す構成要素は、電気回路である。メモリダイ200は、以下でより詳細に説明するように、不揮発性メモリセル(不揮発性記憶セルとも呼ばれる)を備え得るメモリ構造202(例えば、メモリアレイ)を含む。メモリ構造202のアレイ分界線は、行として編成されたワード線の様々な層、及び列として編成されたビット線の様々な層を含む。しかしながら、他の配向もまた、実装することができる。メモリダイ200は、行制御回路220を含み、その出力は、メモリ構造202のそれぞれのワード線に接続されている。行制御回路220は、M行アドレス信号のグループ、及びシステム制御論理260からの1つ以上の様々な制御信号を受信し、典型的には、行デコーダ222、アレイドライバ224、及びブロック選択回路226のような回路を、読み出し動作及び書き込み(プログラミング)動作の両方に対して含むことができる。行制御回路220はまた、読み出し/書き込み回路を含んでもよい。メモリダイ200はまた、読み出し/書き込み回路225を含む列制御回路210を含む。読み出し/書き込み回路225は、感知増幅器及びデータラッチを含んでもよい。感知増幅器の入力/出力は、メモリ構造202のそれぞれのビット線に接続される。構造202に対して単一のブロックのみが示されているが、メモリダイは、個別にアクセスすることができる複数のアレイを含むことができる。列制御回路210は、N列アドレス信号のグループ、及びシステム制御論理260からの1つ以上の様々な制御信号を受信し、典型的には、列デコーダ212、アレイ終端受信器又はドライバ回路214、並びに読み出し/書き込み回路225及びI/Oマルチプレクサなどの回路を含むことができる。
【0018】
システム制御論理260は、メモリコントローラ120からのデータ及び命令を受信し、ホストに出力データ及びステータスを提供する。いくつかの実施形態では、(1つ以上の電気回路を備える)システム制御論理260は、メモリ動作のダイレベル制御を提供するステートマシン262を含む。一実施形態では、ステートマシン262は、ソフトウェアによってプログラム可能である。他の実施形態では、ステートマシン262は、ソフトウェアを使用せず、ハードウェア(例えば、電気回路)内に完全に実装される。別の実施形態では、ステートマシン262は、メモリチップ上又はメモリチップ外のいずれかのマイクロコントローラ又はマイクロプロセッサに置き換えられる。システム制御論理260はまた、メモリ動作中にメモリ構造202の行及び列に供給される電力及び電圧を制御する電力制御モジュール264を含むことができる。システム制御論理260は、メモリ構造202を動作させるためのパラメータを記憶するために使用され得る記憶装置266(例えば、RAM、レジスタ、ラッチなど)を含む。
【0019】
コマンド及びデータは、メモリコントローラインターフェース268(「通信インターフェース」とも呼ばれる)を介してメモリコントローラ120とメモリダイ200との間で転送される。メモリコントローラインターフェース268は、メモリコントローラ120と通信するための電気的インターフェースである。メモリコントローラインターフェース268の例としては、トグルモードインターフェース及びオープンNANDフラッシュインターフェース(Open NAND Flash Interface、ONFI)が挙げられる。他のI/Oインターフェースも使用され得る。
【0020】
いくつかの実施形態では、システム制御論理260を含む全てのメモリダイ200の素子は、単一ダイの一部として形成され得る。他の実施形態では、システム制御論理260の一部又は全ては、メモリ構造202を含むダイとは異なるダイ上に形成され得る。
【0021】
一実施形態では、メモリ構造202は、ウェハなどの単一の基板上に複数のメモリレベルが形成される不揮発性メモリセルの三次元メモリアレイを含む。メモリ構造は、シリコン(又は他の種類の)基板上に配置された活性エリアを有するメモリセルの1つ以上の物理的レベルに、モノリシックに形成される任意の種類の不揮発性メモリを含み得る。一実施例では、不揮発性メモリセルは、電荷トラップ層を有する垂直NANDストリングを含む。
【0022】
別の実施形態では、メモリ構造202は、不揮発性メモリセルの二次元メモリアレイを含む。一実施例では、不揮発性メモリセルは、浮遊ゲートを利用するNANDフラッシュメモリセルである。他の種類のメモリセル(例えば、NOR型フラッシュメモリ)も使用することができる。
【0023】
メモリ構造202に含まれるメモリアレイアーキテクチャ又はメモリセルの正確な種類は、上記の例に限定されない。多くの異なる種類のメモリアレイアーキテクチャ又はメモリ技術を使用して、メモリ構造202を形成することができる。本明細書で提案される新たに特許請求される実施形態の目的には、特定の不揮発性メモリ技術は必要とされない。メモリ構造202のメモリセルに適した技術の他の例として、ReRAMメモリ(抵抗ランダムアクセスメモリ)、磁気抵抗メモリ(例えば、MRAM、スピントランスファートルクMRAM、スピン軌道トルクMRAM)、FeRAM、相変化メモリ(例えば、PCM)などが挙げられる。メモリ構造202のメモリセルアーキテクチャに適した技術の例として、二次元アレイ、三次元アレイ、クロスポイントアレイ、積層型二次元アレイ、垂直ビット線アレイなどが挙げられる。
【0024】
ReRAMクロスポイントメモリの一例として、X線及びY線(例えば、ワード線及びビット線)によってアクセスされるクロスポイントアレイに配置された可逆抵抗切替素子が挙げられる。別の実施形態では、メモリセルは、導電性ブリッジメモリ素子を含み得る。導電性ブリッジメモリ素子はまた、プログラム可能なメタライゼーションセルと呼ばれ得る。導電性ブリッジメモリ素子は、固体電解質内のイオンの物理的再配置に基づく状態変化素子として使用され得る。場合によっては、導電性ブリッジメモリ素子は、2つの電極間に固体電解質薄膜を有する、2つの固体金属電極を含んでもよく、一方は、比較的不活性であり(例えば、タングステン)、他方は、電気化学的に活性である(例えば、銀又は銅)。温度が上昇すると、イオンの移動度も増加し、導電性ブリッジメモリセルのプログラミング閾値が低下する。したがって、導電性ブリッジメモリ素子は、温度に対して広範囲のプログラミング閾値を有し得る。
【0025】
別の例は、磁気記憶素子によってデータを記憶する磁気抵抗ランダムアクセスメモリ(magnetoresistive random access memory、MRAM)である。素子は、薄い絶縁層によって分離された、各々が磁化を保持することができる2つの強磁性層から形成される。2つの層のうちの1つは、特定の極性に設定された永久磁石である。他方の層の磁化は、メモリを記憶するために外場の磁化と一致するように変更することができる。メモリデバイスは、このようなメモリセルのグリッドから構築される。プログラミングのための一実施形態では、各メモリセルは、互いに直角に、セルに平行に、一方はセルの上に、かつ一方はセルの下に配置された1対の書き込み線の間にある。電流がそれらを通過すると、誘導磁場が生成される。MRAMベースのメモリ実施形態について、以下でより詳細に論じる。
【0026】
相変化メモリ(phase change memory、PCM)は、カルコゲナイドガラスのユニークな挙動を利用する。一実施形態は、レーザパルス(又は別の光源からの光パルス)でゲルマニウム原子の配位状態を単純に変化させることによって、非熱的相変化を達成するために、GeTe-Sb2Te3超格子を使用する。したがって、プログラミングの線量はレーザパルスである。メモリセルは、メモリセルが光を受光することをブロックすることによって抑制され得る。他のPCM実施形態では、メモリセルは、電流パルスによってプログラムされる。本書では「パルス」の使用には方形パルスを必要としないが、(連続的又は非連続的な)音の振動若しくはバースト、電流、電圧光、又はその他の波を含む。個々の選択可能なメモリセル内のこれらのメモリ素子、又はビットは、オボニック閾値スイッチ又は金属絶縁体基板などのセレクタである更なる直列素子を含むことができる。
【0027】
当業者であれば、本明細書に記載されるこの技術は単一の特定のメモリ構造、メモリ構築又は材料組成に限定されず、本明細書に記載され、当業者によって理解されるように、技術の趣旨及び範囲内で、多くの関連するメモリ構造をカバーすることを、理解するであろう。
【0028】
図2Aの素子は、(1)メモリ構造202及び(2)
図2Aに示す他の構成要素の全てを含む周辺回路の2つの部分にグループ化することができる。メモリ回路の重要な特性はその容量であり、これは、メモリ構造202に与えられる記憶システム100のメモリダイの面積を増加させることによって増加させることができるが、しかし、これにより、周辺回路に利用可能なメモリダイの面積が減少する。これは、周辺回路のこれらの素子に非常に厳しい制限を課す可能性がある。例えば、利用可能なエリア内にセンス増幅器回路を収める必要性は、センス増幅器設計アーキテクチャに対する著しい制限となり得る。システム制御論理260に関して、エリアの利用可能性の減少は、オンチップで実装することができる利用可能な機能を制限する可能性がある。したがって、記憶システム100のためのメモリダイの設計における基本的なトレードオフは、メモリ構造202に費やされる面積の量及び周辺回路に費やされる面積の量である。
【0029】
メモリ構造202及び周辺回路がしばしば対立する別のエリアは、これらの領域の形成に関与するプロセスに含まれるが、これは、これらの領域が異なるプロセス技術を含むことが多く、単一のダイに異なる技術を有することのトレードオフであるためである。例えば、メモリ構造202がNANDフラッシュである場合、これはNMOS構造であるが、周辺回路はCMOSベースであることが多い。例えば、このような感知増幅器回路、チャージポンプ、ステートマシン内の論理素子、及びシステム制御論理260内の他の周辺回路は、PMOSデバイスを使用することが多い。CMOSダイを製造するためのプロセス動作は、多くの態様において、NMOSフラッシュNANDメモリ又は他のメモリセル技術に関して最適化されたプロセス動作とは異なる。三次元NAND構造(例えば、
図4参照)は、特に、特殊な処理動作から利益を得ることができる。
【0030】
これらの制限を改善するために、以下に記載される実施形態は、
図2Aの素子を別個に形成されたダイ上に分離することができ、その後、ダイは互いに接合される。より具体的には、メモリ構造202を、1つのダイ(メモリダイと呼ばれる)上に形成することができ、1つ以上の制御回路を含む周辺回路素子の一部又は全てを、別個のダイ(制御ダイと呼ばれる)上に形成することができる。例えば、メモリダイは、フラッシュNANDメモリ、MRAMメモリ、PCMメモリ、ReRAMメモリ、又は他のメモリタイプのメモリセルのアレイなどのメモリ素子のみで形成することができる。周辺回路の一部又は全ては、デコーダ及び感知増幅器などの素子を含む場合であっても、その後、別個の制御ダイに移され得る。これにより、メモリダイの各々をその技術に従って個別に最適化することが可能になる。例えば、NANDメモリダイは、CMOSプロセスのために最適化することができる制御ダイ上に移されたCMOS素子を気にすることなく、NMOSベースのメモリアレイ構造のために最適化することができる。これにより、周辺素子のためのより多くの空間が可能になり、これで、メモリセルアレイを保持する同じダイのマージンに制限されていたならば容易に組み込むことができなかった、追加の機能を組み込むことができる。次いで、2つのダイは、接合されたマルチダイメモリ回路内で一緒に接合することができ、一方のダイ上のアレイは、他方のダイ上の周辺素子に接続されている。以下では、1つのメモリダイ及び1つの制御ダイの接合メモリ回路に焦点を当てるが、他の実施形態は、例えば2つのメモリダイ及び1つの制御ダイなどの追加のダイを使用することができる。
【0031】
図2Bは、接合されたダイ対を提供するためにウェハ間接合を使用して実装され得る、
図2Aの配置の代替配置を示す。
図2Bは、集積メモリアセンブリ207の一実施形態の機能ブロック図である。1つ以上の集積メモリアセンブリ207は、記憶システム100の不揮発性記憶装置130を実装するために使用されてもよい。集積メモリアセンブリ207は、2種類の半導体ダイ(又はより簡潔に「ダイ」)を含む。メモリ構造ダイ201は、メモリ構造202を含む。メモリ構造202は、不揮発性メモリセルを含む。制御ダイ211は、(上述のように)制御回路260、210、及び220を含む。いくつかの実施形態では、制御ダイ211は、メモリ構造ダイ201内のメモリ構造202に接続するように構成されている。いくつかの実施形態では、メモリ構造ダイ201及び制御ダイ211は、一緒に接合される。
【0032】
図2Bは、メモリ構造ダイ201内に形成されたメモリ構造202に結合された、周辺回路又は制御ダイ211に形成された制御回路を含む周辺回路の例を示す。共通の構成要素は、
図2Aと同様にラベル付けされている。システム制御論理260、行制御回路220、及び列制御回路210は、制御ダイ211内に配置される。いくつかの実施形態では、列制御回路210の全て又は一部、及び行制御回路220の全て又は一部は、メモリ構造ダイ201上に配置される。いくつかの実施形態では、システム制御論理260内の回路の一部は、メモリ構造ダイ201上に配置される。
【0033】
システム制御論理260、行制御回路220、及び列制御回路210は、一般的なプロセス(例えば、CMOSプロセス)によって形成されてもよく、それにより、より典型的にはメモリコントローラ120上に見られるECCなどの素子及び機能を追加することは、追加のプロセスステップをほとんど又は全く必要としなくてもよい(すなわち、コントローラ120を製造するために使用されるのと同じプロセスステップを使用して、システム制御論理260、行制御回路220、及び列制御回路210を製造することもできる)。したがって、そのような回路をメモリ構造ダイ201などのダイから移動させることにより、そのようなダイを製造するのに必要なステップの数を減らすことができ、そのような回路を制御ダイ211などのダイに追加することは、多くの追加のプロセスステップを必要としない場合がある。制御ダイ211はまた、制御回路260、210、220の一部又は全てを実装するためにCMOS技術を使用することに起因して、CMOSダイと称され得る。
【0034】
図2Bは、電気経路206を通してメモリ構造ダイ201上のメモリ構造202に結合された制御ダイ211上の読み出し/書き込み回路225を含む列制御回路210を示す。例えば、電気経路206は、列デコーダ212、ドライバ回路214、及びR/W回路225とメモリ構造202のビット線との間の電気的接続を提供し得る。電気経路は、制御ダイ211内の列制御回路210から、メモリ構造202のビット線に接続されているメモリ構造ダイ201の対応するパッドに接合されている制御ダイ211上のパッドを通って延びてもよい。メモリ構造202の各ビット線は、列制御回路210に接続する1対のボンドパッドを含む電気経路206内に対応する電気経路を有してもよい。同様に、行デコーダ222、アレイドライバ224、及びブロック選択226を含む、行制御回路220は、電気経路208を介してメモリ構造202に結合される。各電気経路208は、ワード線、ダミーワード線、又は選択ゲート線に対応してもよい。更に、制御ダイ211とメモリ構造ダイ201との間に追加の電気経路が設けられてもよい。
【0035】
本明細書の目的のために、「制御回路」又は「1つ以上の制御回路」という句は、メモリコントローラ120、ステートマシン262、電力制御264、システム制御論理260の全て又は一部、行制御回路220の全て又は一部、列制御回路210の全て又は一部、読み出し/書き込み回路225、感知アンプ、マイクロコントローラ、マイクロプロセッサ、及び/又は他の同様に機能する回路のうちのいずれか1つ又は任意の組み合わせを含むことができる。制御回路は、ハードウェアのみ、又はハードウェアとソフトウェア(ファームウェアを含む)との組み合わせを含むことができる。例えば、本明細書に記載する機能を実行するためにファームウェアによってプログラムされたコントローラは、制御回路の一例である。制御回路は、プロセッサ、FPGA、ASIC、集積回路、又は他の種類の回路を含むことができる。
【0036】
本明細書では、「装置」という用語は、記憶システム100、メモリコントローラ120、記憶装置130、メモリダイ200、集積メモリアセンブリ207、及び/又は制御ダイ211のうちの1つ以上を含むことができるが、これらに限定されない。
【0037】
いくつかの実施形態では、集積メモリアセンブリ207内に、2つ以上の制御ダイ211及び2つ以上のメモリ構造ダイ201が存在する。いくつかの実施形態では、集積メモリアセンブリ207は、複数の制御ダイ211及び複数のメモリ構造ダイ201のスタックを含む。
図3Aは、基板271上に積層された集積メモリアセンブリ207(例えば、制御ダイ211及びメモリ構造ダイを備えるスタック)の一実施形態の側面図を示す。集積メモリアセンブリ207は、3つの制御ダイ211及び3つのメモリ構造ダイ201を有する。いくつかの実施形態では、4つ以上のメモリ構造ダイ201及び4つ以上の制御ダイ211が存在する。
図3Aでは、等しい数のメモリ構造ダイ201及び制御ダイ211が存在する。しかしながら、一実施形態では、制御ダイ211よりも多くのメモリ構造ダイ201が存在する。例えば、1つの制御ダイ211が、複数のメモリ構造ダイ201を制御することができる。
【0038】
各制御ダイ211は、メモリ構造ダイ201のうちの少なくとも1つに固着(例えば、接合)される。ボンドパッド282、284の一部が示されている。更に多くのボンドパッドが存在し得る。一緒に接合された2つのダイ201、211の間の空間は、エポキシ又は他の樹脂又はポリマーから形成され得る固体層280で充填される。この固定層280は、ダイ201、211間の電気的接続を保護し、更にダイを一緒に固定する。様々な材料を固定層280として使用し得るが、実施形態では、California,USAにオフィスを構えるHenkel Corp.のHysolエポキシ樹脂とし得る。
【0039】
集積メモリアセンブリ207は、例えば、ステップオフセットで積層され得、各レベルのボンドパッドは、被覆されておらず、上からアクセス可能である。ボンドパッドに接続されたワイヤボンド270は、制御ダイ211を基板271に接続する。いくつかのこのようなワイヤボンドは、各制御ダイ211の全幅にわたって(すなわち、
図3Aのページ内に)形成され得る。
【0040】
メモリダイのスルーシリコンビア(through silicon via、TSV)276を使用して、メモリ構造ダイ201を介して信号をルーティングすることができる。シリコンビア(TSV)278を通じた制御ダイを使用して、制御ダイ211を介して信号をルーティングし得る。TSV276、278は、半導体ダイ201、211内の集積回路の形成前、形成中、又は形成後に形成されてもよい。TSVは、ウェハを貫通する孔をエッチングすることによって形成されてもよい。次いで、孔は、金属拡散に対するバリアで裏打ちされてもよい。バリア層は、次にシード層で裏打ちされてもよく、シード層は、銅などの導電体でめっきされてもよいが、アルミニウム、スズ、ニッケル、金、ドープポリシリコン、及びこれらの合金又は組み合わせなどの他の好適な材料を使用することができる。
【0041】
はんだボール272は、任意選択的に、基板271の下面上のコンタクトパッド274に固着され得る。はんだボール272は、集積メモリアセンブリ207をプリント回路基板などのホストデバイスに電気的及び機械的に結合するために使用され得る。集積メモリアセンブリ207がLGAパッケージとして使用される場合、はんだボール272は省略され得る。はんだボール272は、集積メモリアセンブリ207とメモリコントローラ120との間のインターフェースの一部を形成し得る。
【0042】
図3Bは、基板271上に積層された集積メモリアセンブリ207の別の実施形態の側面図を示す。
図3Bの集積メモリアセンブリ207は、3つの制御ダイ211及び3つのメモリ構造ダイ201を有する。いくつかの実施形態では、4つ以上のメモリ構造ダイ201及び4つ以上の制御ダイ211が存在する。この実施例では、各制御ダイ211は、少なくとも1つのメモリ構造ダイ201に接合されている。任意選択的に、制御ダイ211は、2つ以上のメモリ構造ダイ201に接合され得る。
【0043】
ボンドパッド282、284の一部が示されている。更に多くのボンドパッドが存在し得る。一緒に結合された2つのダイ201、211の間の空間は、エポキシ又は他の樹脂又はポリマーから形成され得る固体層280で充填される。
図3Aの実施例とは対照的に、
図3Bの集積メモリアセンブリ207は、ステップオフセットを有していない。メモリダイのスルーシリコンビア(TSV)276を使用して、メモリ構造ダイ201を介して信号をルーティングすることができる。シリコンビア(TSV)278を通じた制御ダイを使用して、制御ダイ211を介して信号をルーティングし得る。
【0044】
はんだボール272は、任意選択的に、基板271の下面上のコンタクトパッド274に固着され得る。はんだボール272は、集積メモリアセンブリ207をプリント回路基板などのホストデバイスに電気的及び機械的に結合するために使用され得る。集積メモリアセンブリ207がLGAパッケージとして使用される場合、はんだボール272は省略され得る。
【0045】
上で簡潔に考察されるように、制御ダイ211及びメモリ構造ダイ201は、一緒に接合されてもよい。各ダイ201、211上のボンドパッドを使用して、2つのダイを一緒に接合することができる。いくつかの実施形態では、ボンドパッドは、はんだ又は他の追加材料なしで、いわゆるCu~Cu接合プロセスにおいて互いに直接接合される。Cu~Cu接合プロセスでは、ボンドパッドは、高度に平坦であるように制御され、周囲の微粒子がほとんどない高度に制御された環境で形成され、微粒子は、そうしないと、ボンドパッド上に沈降し、密接な接合を妨げる可能性がある。このような適切に制御された条件下で、ボンドパッドは、互いに位置合わせされ、互いに押し付けられて、表面張力に基づいて相互接合を形成する。このような接着は、室温で形成され得るが、熱がまた、適用されてもよい。Cu~Cu接合を使用する実施形態では、ボンドパッドは、約5μm平方であり得、5μm~5μmのピッチで互いに離間され得る。このプロセスは、本明細書ではCu~Cu接合と称されるが、この用語はまた、ボンドパッドがCu以外の材料で形成される場合にも適用され得る。
【0046】
ボンドパッドの面積が小さい場合、半導体ダイを一緒に接合することは困難となり得る。ボンドパッドのサイズ及びボンドパッド間ピッチは、ボンドパッドを含む半導体ダイの表面上にフィルム層を提供することによって、更に低減され得る。フィルム層は、ボンドパッドの周囲に設けられる。ダイが一緒になると、ボンドパッドは互いに接合し得、それぞれのダイ上のフィルム層が互いに接合し得る。このような接合技法は、ハイブリッド接合と称されることがある。ハイブリッド接合を使用する実施形態では、ボンドパッドは、約5μm平方であり得、1μm~5μmのピッチで互いに離間され得る。いっそうより小さいサイズ及びピッチを有するボンドパッドを提供する接合技法が使用されてもよい。
【0047】
上述したように、いくつかの実施形態は、ダイ201、211の表面上にフィルムを含み得る。このようなフィルムが最初に提供されない場合、ダイ間の空間は、エポキシ又は他の樹脂又はポリマーでアンダーフィルされてもよい。アンダーフィル材料は液体として塗布されてもよく、それはその後固体層に固化する。このアンダーフィルステップは、ダイ201、211間の電気的接続を保護し、更にダイを一緒に固定する。様々な材料をアンダーフィル材料として使用することができる。
【0048】
図3Cは、いくつかの読み出し/書き込み回路225を含む列制御回路210の一部分の一実施形態を示すブロック図である。各読み出し/書き込み回路225は、感知増幅器325とデータラッチ340とに分割される。管理回路330は、読み出し/書き込み回路225を制御する。管理回路330は、ステートマシン262と通信することができる。一実施形態では、各感知増幅器325は、それぞれのビット線に接続される。各ビット線は、1つの時点において、多数の異なるNANDストリングのうちの1つに接続され得る。NANDストリング上の選択ゲートは、NANDストリングチャネルをビット線に接続するために使用され得る。
【0049】
各感知増幅器325は、プログラム、検証、消去、及び読み出し動作中に、ビット線(BL0、BL1、BL2、BL3参照)のうちの1つに電圧を提供するように動作する。感知増幅器はまた、それぞれの感知増幅器に接続するビット線に接続されたNANDストリング内のメモリセルの条件(例えば、データ状態)を感知するために使用される。
【0050】
各感知増幅器325は、感知ノードを有し得る。感知中、感知ノードは、3Vなどの初期電圧Vsense_initまでチャージされる。感知ノードは次に、感知時間の間ビット線に接続され、感知ノードの減衰量は、メモリセルが導電性状態にあるか非導電性状態にあるかどうかを判定するために使用される。感知ノードの減衰量は、メモリセル内の電流Icellが基準電流Irefを超えるかどうかも示す。より大きな減衰は、より大きな電流に対応する。Icell≦Irefであれば、メモリセルは非導電性状態であり、Icell>Irefであれば、メモリセルは導電性状態である。一実施形態では、感知ノードは、プリチャージされ、次いで、感知時間の間放電されるコンデンサを有する。
【0051】
特に、比較回路320は、感知ノード電圧を感知時間後のトリップ電圧と比較することによって、減衰量を判定する。感知ノード電圧がトリップ電圧Vtripを下回って減衰する場合、メモリセルは導電性状態にあり、そのVthは検証電圧以下である。感知ノード電圧がVtripを下回って減衰しない場合、メモリセルは非導電性状態にあり、そのVthは検証電圧を上回る。感知ノードラッチ322は、例えば、メモリセルが導電状態であるか非導電状態であるかに基づいて、比較回路320によってそれぞれ0又は1に設定される。感知ノードラッチ322内のビットは、次のプログラムループにおいてビット線電圧を禁止レベルに設定するか、又はプログラムイネーブルレベルに設定するかを判定するために、ロックアウトスキャンにおいて使用することもできる。感知ノードラッチ322内のビットは、読み出し動作においてビット線電圧を感知電圧に設定するか、又はロックアウト電圧に設定するかを判定するために、ロックアウトモードにおいて使用することもできる。
【0052】
データラッチ340は、ローカルデータバス346によって感知増幅器325に結合される。データラッチ340は、この例では、各感知アンプ325に対して4つのラッチ(ADL、BDL、CDL、DDL)を含む。4つより多い又は少ないラッチが、データラッチ340に含まれてもよい。一実施形態では、プログラミングのために、各データラッチ340は、メモリセルに記憶されるべき1ビットを記憶するために使用され、読み出しのために、各データラッチ340は、メモリセルから読み出された1ビットを記憶するために使用される。メモリセル当たり4ビットの実施形態では、ADLは、データの下部ページのビットを記憶し、BDLは、データの中央ページのビットを記憶し、CDLは、データの上部ページのビットを記憶し、DDLは、データの最上ページのビットを記憶する。各読み出し/書き込み回路225は、XDLバス352によってXDLラッチ348に接続されている。この例では、トランジスタ336は、ローカルデータバス346をXDLバス352に接続する。XDLラッチ348には、I/Oインターフェース332が接続されている。特定の読み出し/書き込み回路225に関連付けられたXDLラッチ348は、メモリコントローラからのデータを記憶/ラッチするためのインターフェースラッチとしての役割を果たす。一実施形態では、ラッチ空間は、DDLラッチを含まないが、代わりに、プログラム動作の少なくとも一部分のためのデータの最上ページのためにXDLラッチ348を使用することによって節約される。しかしながら、最上ページのためにXDLラッチ348を使用することは、プログラミングを遅くする可能性がある。
【0053】
一実施形態では、メモリセルは、メモリセルをセル当たり4ビットにプログラムするためのプログラミングアルゴリズムのうちの少なくともいくつかを使用して、セル当たり3ビットにプログラムされる。一実施形態では、セル当たり3ビットのモードは、セル当たり4ビットのモードからの4つのページのうちの3つのページを使用することによって、セル当たり4ビットのモードと同様の符号化方式を有する。一実施形態では、ラッチ340のうちの1つは、4ページコードのどのページが使用されないかに基づいて、セル当たり3ビットのモードにおいてデフォルト値に設定される。例えば、3ビットモードは、4ページコードの下部ページ、中央ページ、及び最上ページからの符号化を使用し得る(それによって、上部ページを使用しない)。この例では、ユーザデータの第1のページは、ADLラッチに記憶されてもよく、ユーザデータの第2のページは、BDLラッチに記憶されてもよく、ユーザデータの第3のページは、DDLラッチに記憶されてもよい。しかしながら、CDLラッチは、デフォルト値(例えば、全て1又は全てゼロ)に設定されてもよい。この技法は、4ページコードプログラミング回路のいくつかを3ページコードでのプログラミングに使用できるようにすることによって、論理回路を簡略化する。3ページプログラミングモードにおいてメモリセルを検証するための技法が、本明細書で開示される。
【0054】
管理回路330は、感知されたメモリセルに記憶されたデータを判定し、かつ判定されたデータをデータラッチのセットに記憶するように、計算を実行する。データラッチ340の各セットは、読み出し動作中に管理回路330によって判定されたデータビットを記憶し、かつメモリ内にプログラムされることを意図される書き込みデータを表すプログラム動作中にデータバス334からインポートされたデータビットを記憶するために使用される。I/Oインターフェース332は、XDLラッチ348とデータバス334との間のインターフェースを提供する。
【0055】
読み出し中、システムの動作は、アドレス指定されたメモリセルに対して異なる制御ゲート電圧の供給を制御するステートマシン262の制御下にある。メモリによってサポートされる様々なメモリ状態に対応する様々な所定の制御ゲート電圧をステップ実行すると、感知回路はこれらの電圧のうちの1つでトリップすることができ、対応する出力は、感知増幅器から管理回路330に提供されることになる。その時点で、管理回路330は、感知回路のトリップイベント及びステートマシンからの印加された制御ゲート電圧に関する情報を考慮することによって、結果として得られるメモリ状態を判定する。それは次いで、メモリ状態のバイナリ符号化を計算し、結果として得られるデータビットをデータラッチ340内に記憶する。
【0056】
メモリセルに対するプログラム又は検証動作中、プログラムされるデータ(書き込みデータ)は、XDLラッチ348によって、データバス334からデータラッチ340のセットに記憶されてもよい。プログラム動作は、ステートマシン262の制御下で、アドレス指定されたメモリセルの制御ゲートに一連のプログラミング電圧パルスを印加する。各電圧パルスは、増分型ステップパルスプログラミングと呼ばれる処理のステップサイズ分だけ、前のプログラムパルスから大きさがステップアップし得る。一実施形態では、各プログラム電圧の後に、メモリセルが所望のメモリ状態にプログラムされているかどうかを判定するための検証動作が続く。場合によっては、管理回路330は、所望のメモリ状態について読み戻しメモリ状態を監視する。それらの2つが一致しているとき、管理回路330は、そのラッチを更新することなどによって、ビット線をプログラム禁止モードに設定する。これにより、追加のプログラムパルスがその制御ゲートに印加されても、ビット線に結合されたメモリセルの更なるプログラミングが禁止される。検証フェーズは、各プログラムパルスに続くデータ状態の全てを検証する必要はないことに留意されたい。3ページコードにおける各プログラムパルスに続いてどのデータ状態が検証されるべきかを判定するための実施形態が、本明細書において開示される。
【0057】
図4は、垂直NANDストリングとして配置された複数の不揮発性メモリセルを含む、メモリ構造202を備え得るモノリシック三次元メモリアレイ/構造の例示的な一実施形態の一部の斜視図である。例えば、
図4は、メモリの1つのブロックの一部分400を示す。示される構造は、交互の誘電体層及び導電層のスタック401の上に位置決めされたビット線BLのセットを含む。例として、誘電体層のうちの1つがDとしてマークされ、導電層(ワード線層とも呼ばれる)のうちの1つがWとしてマークされている。交互の誘電体層及び導電層の数は、特定の実装要件に基づいて変化し得る。一実施形態では、交互の誘電体層及び導電層は、分離領域IRによって4つ(又は異なる数)の領域(例えば、サブブロック)に分割される。
図4は、2つのサブブロックを分離する1つの分離領域IRを示している。交互の誘電体層及びワード線層の下には、ソース線層SLがある。メモリホールは、交互の誘電体層及び導電層のスタック内に形成される。例えば、メモリホールのうちの1つはMHとしてマークされる。
図4では、誘電体層がシースルーとして示されているので、読者は交互の誘電体層及び導電層のスタック内に位置決めされたメモリホールを見ることができることに留意されたい。一実施形態では、NANDストリングは、電荷トラップ材料を含む材料でメモリホールを充填して、メモリセルの垂直列を生成することによって形成される。各メモリセルは、1つ以上のビットのデータを記憶することができる。メモリ構造202を備える三次元モノリシックメモリアレイの更なる詳細は、以下で提供する。
【0058】
図4Aは、2つの平面403及び405に分割されたメモリ構造202の1つの例示的な構成を説明するブロック図である。次いで、各平面はM個の物理ブロックに分割される。一実施例では、各平面は、約2000個の物理ブロックを有する。しかしながら、異なる数の物理ブロック及び平面を使用することもできる。一実施形態では、メモリセルの物理ブロックは、消去の単位である。すなわち、物理ブロックの全てのメモリセルは、一緒に消去される。他の実施形態では、物理ブロックをサブブロックに分割することができ、サブブロックを消去単位とすることができる。メモリ構造を編成して信号化回路及び選択回路をイネーブルにするなど、他の理由でメモリセルを物理ブロックにグループ化することができる。いくつかの実施形態では、物理ブロックは、ブロックのメモリセルが、ワード線の共通セットを共有するように、接続されたメモリセルのグループを表す。例えば、物理ブロックのワード線は全て、その物理ブロックの垂直NANDストリングの全てに接続される。
図4Aは2つの平面403/405を示しているが、2つより多い又は少ない平面を実装することができる。いくつかの実施形態では、メモリ構造202は、4つの平面を含む。いくつかの実施形態では、メモリ構造202は、8つの平面を含む。いくつかの実施形態では、プログラミングは、平面403内の第1の選択されたブロック及び平面405内の第2の選択されたブロックにおいて並列に実行することができる。
【0059】
図4B~
図4Eは、
図4の構造に対応する例示的な三次元(three dimensional、「3D」)NAND構造を示し、
図2A及び
図2Bのメモリ構造202を実装するために使用することができる。
図4Bは、ブロック2の部分407の上面図を示す図である。
図4Bに示すように、
図4Bに示すブロックは、矢印433の方向に延びる。一実施形態では、メモリアレイは、多くの層を有する。しかしながら、
図4Bは、最上層のみを示している。
【0060】
図4Bは、垂直列を表す複数の円を示す。垂直列のそれぞれは、複数の選択トランジスタ(選択ゲート(select gate)又は選択ゲート(selection gate)とも称する)と、複数のメモリセルと、を含む。一実施形態では、各垂直列は、NANDストリングを実装する。例えば、
図4Bは、垂直列422、432、442、452、及び453を示す。垂直列422は、NANDストリング482を実装する。垂直列432は、NANDストリング484を実装する。垂直列442は、NANDストリング486を実装する。垂直列452は、NANDストリング488を実装する。垂直列453は、NANDストリング486を実装する。垂直列452は、NANDストリング489を実装する。垂直列の詳細は、以下に記載する。
図4Bに示す物理ブロックは矢印433の方向に延びるため、物理ブロックは、
図4Bに示すよりも多くの垂直列を含む。
【0061】
図4Bはまた、ビット線411、412、413、414、...419を含むビット線415のセットを示す。
図4Bは、物理ブロックの一部分のみを示すため、24本のビット線を示す。25本以上のビット線が物理ブロックの垂直列に接続されていることが企図される。垂直列を表す円の各々は、1本のビット線への接続を示す「x」を有する。例えば、ビット線414は垂直列422、432、442、及び452に接続されている。
【0062】
図4Bに示される物理ブロックは、SiO
2から形成される分離領域402、404、406、408、410、及び424のセットを含む。しかしながら、他の誘電体材料もまた、使用され得る。分離領域402、404、406、408、410、及び424は、物理ブロックの最上層を5つの領域に分割する役割を果たす。例えば、
図4Bに示す最上層は、サブブロックと呼ばれる領域420、430、440、450、及び460に分割される。一実施形態では、分離領域402及び424は、物理ブロック407を隣接する物理ブロックから分離する。したがって、分離領域402及び424は、基板まで下方に延びることができる。一実施形態では、分離領域404、406、及び410は、異なるサブブロック内のNANDストリングが独立して選択され得るように、選択ゲートを実装するために使用される層を分割するだけである。
図4に戻って参照すると、IR領域は、分離領域404、406、又は408のいずれかに対応し得る。例示的な一実装形態では、ビット線は、領域(サブブロック)420、430、440、450、及び460の各々で1つの垂直列/NANDストリングにのみ接続する。当該実装形態では、各ブロックは20行の活性列を有し、各ビット線は、各ブロックで5行に接続する。一実施形態では、共通ビット線に接続された5つの垂直列/NANDストリングの全てが、同じワード線(又はワード線のセット)に接続される。したがって、システムは、ドレイン側選択線を使用して、メモリ動作(プログラム、検証、読み出し、及び/又は消去)に供される5つのうちの1つ(又は別のサブセット)を選択する。
【0063】
図4Bは、4行の垂直列を有する各領域、5つの領域(420、430、440、450、460)、及びブロック内の20行の垂直列を有する各領域(420、430、440、450、460)を示すが、これらの正確な数は例示的な実装形態である。他の実施形態は、1ブロック毎により多くの領域又はより少ない領域(420、430、440、450、460)、1領域毎により多くの又はより少ない行の垂直列、及び1ブロック毎により多くの又はより少ない行の垂直列を含むことができる。
図4Bはまた、垂直列が千鳥状であることを示している。他の実施形態では、異なるパターンの千鳥配置を使用することができる。いくつかの実施形態では、垂直列は千鳥状ではない。
【0064】
図4Cは、
図4Bの線AAに沿った断面図を示すスタック435の一実施形態を示す。データワード線層WL0~WL111に加えて、SGD層(SGD)、SGS層(SGS)、並びに4層のダミーワード線層DD0、DD1、DS1、及びDS0が設けられている。各NANDストリングは、SGD層にドレイン側選択トランジスタを有する。各NANDストリングは、SGS層にソース側選択トランジスタを有する。2つ以上のSGD層及び2つ以上のSGS層が存在してもよい。誘電体層DL0~DL118も示されている。
【0065】
メモリセルの列432、434が、多層スタック内に示されている。スタックは、基板457、基板上の絶縁フィルム454、及びソース線SLの一部分を含む。ビット線414の一部分も示されている。NANDストリング484は、ビット線414に接続されていることに留意されたい。NANDストリング484は、スタックの底部にソース端を有し、スタックの上部にドレイン端を有する。ソース端は、ソース線SLに接続されている。導電性ビア417は、NANDストリング484のドレイン端をビット線414に接続する。
【0066】
一実施形態では、メモリセルは、NANDストリング内に配置される。ワード線層WL0~WL111は、メモリセル(データメモリセルとも称される)に接続する。ダミーワード線層DD0、DD1、DS0、及びDS1は、ダミーメモリセルに接続される。ダミーメモリセルは、ホストデータ(ホストから提供されたデータ、例えばホストのユーザからのデータなど)を記憶せず、ホストデータを記憶するのに適格ではないが、データメモリセルは、ホストデータを記憶するのに適格である。いくつかの実施形態では、データメモリセル及びダミーメモリセルは、同一構造を有し得る。ドレイン側選択層SGDは、それぞれのNANDストリングのチャネルをビット線から電気的に接続及び切断(又は遮断)するために使用される。ソース側選択層SGSは、それぞれのNANDストリングのチャネルソース線SLから電気的に接続及び切断(又は遮断)するため使用される。
【0067】
図4Dは、
図4Cの領域445の図を示す。データメモリセルトランジスタ570、571、572、573及び574は、破線で示されている。いくつかの層は、例えば、原子層堆積を使用して、メモリホール432の側壁(sidewall、SW)に沿って、及び/又はそれぞれのワード線層内に堆積され得る。例えば、各列(例えば、メモリホール内の材料によって形成されるピラー)は、SiN又は他の窒化物などの遮断酸化物/遮断高k材料470、電荷トラップ層又はフィルム463、トンネル層464、ポリシリコン本体又はチャネル465、及び誘電体コア466を含み得る。ワード線層は、制御ゲートとしてタングステンなどの導電性金属462を含むことができる。例えば、制御ゲート490、491、492、493、及び494が提供される。この実施例では、金属を除く全ての層が、メモリホール内に提供される。他のアプローチでは、層のいくつかは制御ゲート層内にあり得る。追加のピラーは、異なるメモリホール内に同様に形成される。ピラーは、NANDストリングの柱状活性領域(active area、AA)を形成することができる。
【0068】
データメモリセルトランジスタがプログラムされるとき、電子は、メモリセルトランジスタに関連付けられている電荷トラップ層の一部分に蓄積される。これらの電子は、チャネルからトンネル層を通って電荷トラップ層に引き込まれる。データメモリセルトランジスタのVthは、蓄積電荷量に比例して増加する。消去動作中、電子はチャネルに戻る。
【0069】
メモリホールの各々は、遮断酸化物層、電荷トラップ層、トンネリング層、及びチャネル層を含む複数の環状層(メモリフィルム層とも称される)で充填され得る。メモリホールの各々のコア領域は、本体材料で充填され、複数の環状層は、メモリホールのそれぞれのコア領域とWLLとの間にある。場合によっては、トンネル層464は、酸化物-窒化物-酸化物の構成などの複数の層を含むことができる。
【0070】
図4Eは、メモリ構造202の一部分の概略図である。
図4Eは、ブロック全体にわたる物理データワード線WL0~WL111を示す。
図4Eの構造は、ビット線411を含む、
図4Aのブロック2内の一部分407に対応する。一実施形態では、物理ブロック内で、各ビット線が、5つのNANDストリングに接続される。したがって、
図4Eは、NANDストリングNS0、NANDストリングNS1、NANDストリングNS2、NANDストリングNS3、及びNANDストリングNS4に接続されたビット線を示す。
【0071】
一実施形態では、物理ブロック内に5つのドレイン側選択線(SGD-s0、SGD-s1、SGD-s2、SGD-s3、及びSGD-s4)が存在する。各それぞれのドレイン側選択線は、他から独立して選択することができる。各ドレイン側選択線は、ブロック内のNANDストリングのグループに接続する。各グループの1つのNANDストリングのみが
図4Eに示されている。これら5本のドレイン側選択線は、5つのサブブロックに対応する。第1のサブブロックは、SGD-s0によって制御されるそれらの垂直NANDストリングに対応する。第2のサブブロックは、SGD-s1によって制御されるそれらの垂直NANDストリングに対応する。第3のサブブロックは、SGD-s2によって制御されるそれらの垂直NANDストリングに対応する。第4のサブブロックは、SGD-s3によって制御されるそれらの垂直NANDストリングに対応する。第5のサブブロックは、SGD-s4によって制御されるそれらの垂直NANDストリングに対応する。上述したように、
図4Eは、ビット線411に接続されたNANDストリングのみを示す。しかしながら、ブロックの完全な概略図は、全てのビット線及び各ビット線に接続された5つの垂直NANDストリングを示す。
【0072】
一実施形態では、物理ブロック内のNANDストリング上のメモリセルの全ては、単位として消去される。しかしながら、いくつかの実施形態では、物理ブロックは、上部階層及び下部階層として動作され、上部階層及び下部階層は各々、消去ブロックを形成する。例えば、WL0~WL61に接続されたメモリセルは、下層にあってもよく、WL62~WL111に接続されたメモリセルは、上層にあってもよい。したがって、WL0~WL61に接続されたメモリセルは、1つの消去ブロック内にあってもよく、WL62~WL111に接続されたメモリセルは、別の消去ブロック内にあってもよい。物理ブロックは、3つ以上の階層で動作させることができる。消去ブロックは、物理ブロックの他の分割に基づいて形成することができる。
【0073】
図4~
図4Eの例示的なメモリは、電荷トラップ材料を有する垂直NANDストリングを含む三次元メモリ構造であるが、他の(2D及び3D)メモリ構造を本明細書に記載の技術とともに使用することもできる。
【0074】
任意の所与のメモリ動作中に、メモリセルのサブセットが、メモリ動作の1つ以上の部分を受けるように識別される。メモリ動作を受けるように識別されたこれらのメモリセルは、選択メモリセルと呼ばれる。メモリ動作を受けるように識別されていないメモリセルは、非選択メモリセルと呼ばれる。メモリアーキテクチャ、メモリタイプ、及びメモリ動作に応じて、非選択メモリセルは、メモリ動作を受けることから能動的又は受動的に除外されてもよい。
【0075】
メモリ動作中、いくつかのワード線は、選択メモリセルに接続されるので、選択ワード線と呼ばれる。非選択ワード線は、選択メモリセルに接続されない。同様に、選択ビット線は選択メモリセルに接続され、非選択ビット線は、選択メモリセルに接続されない。
【0076】
上述したメモリシステムは、消去、プログラム、及び読み出しが可能である。各メモリセルは、プログラムコマンド内の書き込みデータに従って、メモリ状態に関連付けられてもよい。そのメモリ状態に基づいて、メモリセルは、消去状態のままであるか、又は消去状態とは異なるメモリ状態(プログラムされたメモリ状態)にプログラムされるかのいずれかである。
【0077】
例えば、セル当たり2ビットのメモリデバイス(マルチレベルセル(multi-level cell、MLC)と呼ばれることもある)では、消去状態、並びにA、B及びCメモリ状態と呼ばれる3つのプログラムされたメモリ状態を含む4つのメモリ状態がある。セル当たり3ビットのメモリデバイス(トライレベルセル(tri-level cell、TLC)と呼ばれることもある)では、消去状態、並びにA、B、C、D、E、F、及びGメモリ状態と呼ばれる7つのプログラムされたメモリ状態を含む8つのメモリ状態がある。セル当たり4ビットのメモリデバイス(クアッドレベルセル(quad-level cell、QLC)と呼ばれることもある)では、消去状態、並びにEr、S1、S2、S3、S4、S5、S6、S7、S8、S9、S10、S11、S12、S13、S14、及びS15メモリ状態と呼ばれる15個のプログラムされたメモリ状態を含む16個のメモリ状態がある。
【0078】
図5Aは、各メモリセルが2ビットのデータを記憶する4状態メモリデバイスの閾値電圧Vth分布の一実施形態を示す。第1の閾値電圧Vth分布500は、消去された(Er状態)記憶素子に対して提供される。3つの閾値電圧Vth分布502、504、及び506は、それぞれプログラムされたメモリ状態A、B、及びCを表す。下部ビット及び上部ビットを有する2ビットコードを使用して、4つのメモリ状態の各々を表すことができる。一実施形態では、「Er」、「A」、「B」、及び「C」メモリ状態は、それぞれ、「11」、「01」、「00」、及び「10」によって表される。
【0079】
図5Bは、各メモリセルが3ビットのデータを記憶する8状態メモリデバイスの閾値電圧Vth分布の一実施形態を示す。第1の閾値電圧Vth分布510は、Er状態記憶素子に対して提供される。7つの閾値電圧Vth分布512、514、516、518、520、522、及び524は、それぞれプログラムされたメモリ状態A、B、C、D、E、F、及びGを表す。下部ページ、中央ページ及び上部ページビットを有する3ビットコードを使用して、8つのメモリ状態の各々を表すことができる。一実施形態では、「Er」、「A」、「B」、「C」、「D」、「E」、「F」、及び「G」メモリ状態は、それぞれ、「111」、「011」、「001」、「000」、「010」、「110」、「100」、及び「101」によって表される。
【0080】
図5Cは、各メモリセルが4ビットのデータを記憶する16状態メモリデバイスの閾値電圧Vth分布の一実施形態を示す。第1の閾値電圧Vth分布530は、消去されたEr状態記憶素子に対して提供される。15個の閾値電圧Vth分布532、534、536、538、540、542、544、546、548、550、552、554、556、558、及び560は、プログラムされたメモリ状態S1、S2、S3、S4、S5、S6、S7、S8、S9、S10、S11、S12、S13、S14、及びS15をそれぞれ表す。
【0081】
下部ページ、中間ページ、上部ページ及び最上部ページビットを有する4ビットコードを使用して、16個のメモリ状態の各々を表すことができる。一実施形態では、S0、S1、S2、S3、S4、S5、S6、S7、S8、S9、S10、S11、S12、S13、S14、及びS15メモリ状態はそれぞれ、「1111」、「1110」、「1100」、「1101」、「1001」、「0001」、「0101」、「0100」、「0110」、「0010」、「0000」、「1000」、「1010」、「1011」、「0011」、及び「0111」によって表される。
【0082】
本明細書に記載する技術はまた、フルシーケンスプログラミング(これに限定されるわけではないが、複数の段階/フェーズのプログラミングを含む)に加えて、他の種類のプログラミングとともに使用することもできる。いくつかの実施形態では、プログラム状態(例えば、S1~S15)は、重複することができ、コントローラ120(
図1)は、誤り訂正に応答して、記憶されている正しいデータを識別する。
【0083】
図6は、プログラミングメモリセルのプロセスの一実施形態を説明するフロー図である。本明細書では、プログラム及びプログラミングという用語は、書き込む及び書き込みと同義である。例示的な一実施形態では、
図6のプロセスは、上述した1つ以上の制御回路(例えば、システム制御論理260、列制御回路210、行制御回路220)を使用して、メモリ構造202に対して実行される。例示的な一実施形態では、
図6のプロセスは、メモリ構造ダイ201上のメモリセルをプログラムするために、制御ダイ211の1つ以上の制御回路(例えば、システム制御論理260、列制御回路210、行制御回路220)を使用して、集積メモリアセンブリ207によって実行される。プロセスは、複数のループを含み、これらのループの各々は、プログラムフェーズ及び検証フェーズを含む。
【0084】
典型的には、プログラム動作中に(選択データワード線を介して)制御ゲートに印加されるプログラム電圧は、一連のプログラムパルス(例えば、電圧パルス)として印加される。プログラミングパルス同士の間には、検証パルス(例えば、電圧パルス)のセットが存在して検証を実施する。多くの実装形態では、プログラムパルスの大きさは、所定のステップサイズだけ、各連続するパルスにあわせて増加する。
図6のステップ602において、プログラミング電圧信号(Vpgm)が開始の大きさ(例えば、約12~16V又は別の好適なレベル)に初期化され、ステートマシン262によって維持されるプログラムカウンタPCが1に初期化される。一実施形態では、プログラムされるように選択されたメモリセルのグループ(本明細書では、選択メモリセルと呼ばれる)は、同時にプログラムされ、全てが同じワード線(選択ワード線)に接続される。プログラミング用に選択されていない他のメモリセル(非選択メモリセル)は、選択ワード線にも接続されている可能性がある。すなわち、選択ワード線はまた、プログラミングが禁止されると想定されるメモリセルに接続される。加えて、メモリセルがそれらの意図された目標データ状態へ到達すると、更なるプログラミングが禁止される。プログラミングが禁止される選択ワード線に接続されたメモリセルを含むNANDストリング(例えば、非選択NANDストリング)は、プログラミングを禁止するためにそれらのチャネルが昇圧されている。チャネルが昇圧電圧を有する場合、チャネルとワード線との間の電圧差は、プログラミングを引き起こすほど大きくない。ブーストを支援するために、ステップ604において、制御ダイは、プログラミングを禁止されることになる選択ワード線に接続されたメモリセルを含むNANDストリングのチャネルをプリチャージする。ステップ606において、プログラミングが禁止されることになる選択ワード線に接続されたメモリセルを含むNANDストリングは、プログラミングを禁止するためにそれらのチャネルがブーストされる。このようなNANDストリングは、本明細書では「非選択NANDストリング」と称される。一実施形態では、非選択ワード線は、1つ以上の昇圧電圧(例えば、約7~11ボルト)を受信して、昇圧方式を実施する。プログラム禁止電圧が、非選択NANDストリングに結合されたビット線に印加される。
【0085】
ステップ608において、プログラミング電圧信号Vpgmのプログラム電圧パルスが、選択ワード線(プログラミングのために選択ワード線)に印加される。NANDストリング上のメモリセルがプログラムされるべきである場合、対応するビット線はプログラムイネーブル電圧でバイアスされる。ステップ608において、プログラムパルスが、選択ワード線に接続された全てのメモリセルに同時に印加され、その結果、選択ワード線に接続された全てのメモリセルが(プログラミングが禁止されていない限り)同時にプログラムされる。すなわち、それらのメモリセルは、同時に、又は重複する時間の間に(どちらも同時であるとみなされる)プログラムされる。このようにして、選択ワード線に接続された全てのメモリセルは、プログラミングが禁止されていない限り、同時にそれらの閾値電圧を変化させる。
【0086】
ステップ610において、プログラム検証が実行され、それらの目標状態に達したメモリセルは、制御ダイによって、更なるプログラミングからロックアウトされる。ステップ610は、1つ以上の検証基準レベルで感知することによって、プログラミングの検証を実行することを含む。プログラミングプロセスの各ループにおいて、どのデータ状態が検証されるべきかを判定するための実施形態が、本明細書に開示される。一実施形態では、検証プロセスは、プログラミングのために選択されたメモリセルの閾値電圧が適切な検証基準電圧に到達したどうかの試験によって、実施される。ステップ610において、メモリセルがその目標状態へ到達したことをメモリセルが検証した後(Vtの試験によって)、そのメモリセルはロックされ得る。例えば、メモリセルは、検証基準電圧に達した場合にロックアウトされ得る。一実施形態では、管理回路330内の1つ以上のデータラッチを使用して、メモリセルがロックアウトされているか、又は完全なプログラミングを受けるべきかを示す。
【0087】
ステップ612において、全てのメモリセルが目標閾値電圧に到達した(合格)と判定される場合、全ての選択メモリセルがプログラムされ、それらの目標状態に検証されたため、プログラミングプロセスは完了して成功している。ステップ614において、「合格」のステータスが報告される。そうではなく、ステップ612において、全てのメモリセルがそれらの目標閾値電圧に到達していない(不合格)という判定がなされる場合、プログラミングプロセスはステップ616に進む。
【0088】
ステップ616において、それぞれの目標閾値電圧分布にまだ達していないメモリセルの数がカウントされる。すなわち、これまでに目標状態に到達できなかったメモリセルの数がカウントされる。このカウントは、ステートマシン262、メモリコントローラ120、又は別の回路で実行することができる。一実施形態では、1つの合計カウントが存在し、これは、最後の検証ステップを失敗した現在プログラムされているメモリセルの総数を反映している。別の実施形態では、データ状態ごとに別個のカウントが維持される。
【0089】
一実施形態では、ステップ616において、特定の検証基準電圧以上のVtを有するメモリセルの数がカウントされる。一実施形態では、データ状態の検証は、検証基準電圧を上回るセルのカウントが特定の数を超えるかどうかに依存する。例えば、次のPVループ上のB状態の検証は、A状態検証電圧を上回るVtを有するセルのカウントが、特定の数よりも大きいかどうかに依存し得る。他の例は、以下により詳細に説明される。
【0090】
ステップ618において、ステップ616からの不合格のセルのカウントが所定の限界値以下であるかどうかの判定がなされる。一実施形態では、所定の限界値は、メモリセルのページについての読み取りプロセスの間に、誤り訂正コード(error correction code、ECC)によって訂正することができるビットの数である。失敗したセルの数が所定の限界値以下である場合、プログラミングプロセスは停止することができ、「合格」のステータスがステップ614で報告される。この状況では、十分な数のメモリセルが正確にプログラムされており、その結果、完全にプログラムされていない残りのわずかのメモリセルは、読み取りプロセスの間に、ECCを使用して訂正することができる。いくつかの実施形態では、ステップ618で使用される所定の限界値は、今後の/追加の誤りを見越して、読み取りプロセスの間に誤り訂正コード(ECC)によって訂正することができるビットの数より小さい。1ページに対する全てのメモリセルよりも少ないメモリセルをプログラムする場合、又は、1個のデータ状態のみ(又は全ての状態よりも少ない状態)に対するカウントを比較する場合、所定の限界値は、メモリセルのページの読み取りプロセスの間にECCによって訂正することができるビットの数の(比例した、又は比例しない)一部とすることができる。いくつかの実施形態では、限界値は予め決められていない。代わりに、限界値は、そのページについて既にカウントされた誤りの数、実施されるプログラム-消去のサイクル数、又は他の基準に基づいて変化する。
【0091】
失敗したメモリセルの数が所定の限界値以上である場合、プログラミングプロセスはステップ620に進み、プログラムカウンタPCはプログラム限界値(program limit value、PL)と照合される。プログラム限界値の実施例としては、6、12、16、19、20及び30が挙げられるが、他の値を使用することもできる。プログラムカウンタPCがプログラム限界値PL以上である場合、プログラムプロセスは失敗したとみなされ、不合格のステータスがステップ624で報告される。プログラムカウンタPCがプログラム限界値PL未満である場合、プロセスはステップ626に進み、このステップの間に、プログラムカウンタPCは1だけインクリメントされ、プログラミング電圧信号Vpgmは、次の大きさにステップアップされる。例えば、次のパルスの大きさは、ステップサイズΔVpgm(例えば、0.1~1.0ボルトのステップサイズ)だけ前のパルスよりも大きい。ステップ626の後、このプロセスはステップ604にループして戻り、別のプログラムパルスが選択ワード線に印加され、その結果、
図6のプログラミングプロセスの別の反復(ステップ604~626)が実行される。
【0092】
(メモリダイ200又はメモリ構造ダイ201上の)メモリ構造202内のメモリセルが、セル当たり4ビットのモード(QLC、X4、又は4ページコードとも呼ばれる)でプログラムされ得るか、又はセル当たり3ビットのモード(TLC、X3、又は3ページコードとも呼ばれる)でプログラムされ得る技術が本明細書で開示される。一実施形態では、(メモリダイ200又は制御ダイ211のいずれか上の)システム制御論理260は、X4プログラミングアルゴリズム及びX3プログラミングアルゴリズムを実行することができる。プログラミングのための論理回路の量を低減するために、X4プログラミングのために使用される論理回路のうちの少なくともいくつかは、X3プログラミングのためにも使用される。一実施形態では、論理回路は、4ビットデータをメモリセルにプログラムするために、QLCプログラミングアルゴリズム(グレーコード及び論理)を実装してもよい。一実施形態では、論理回路はまた、3ビットデータをメモリセルにプログラムするために、QLCプログラミングアルゴリズムに基づくTLCプログラミングアルゴリズム(グレーコード及び論理)を実装してもよい。しかしながら、QLCプログラミングアルゴリズムに基づくTLCプログラミングの場合、メモリセルを検証する際の技術的な課題が生じる。本明細書で開示される論理回路の一実施形態は、TLCプログラミングがQLCプログラミングアルゴリズムに基づくときに、スマート検証を実行する。
【0093】
一実施形態では、既存のQLCグレーコードを使用して、TLCグレーコードを生成する。
図7A1は、16個のデータ状態を表すために使用される例示的なQLCグレーコード700a1の表である。特に、QLCグレーコード700a1は、16個のデータ状態S0、S1...S15に対する下部ページ(lower page、LP)ビット、中央ページ(middle page、MP)ビット、上部ページ(upper page、UP)ビット、及び上部ページ(top page、TP)ビットに対する値を示す。例えば、状態S3に対して、LP、MP、UP及びTPビットは、それぞれ1101であり、状態S9に対して、LP、MP、UP及びTPビットは、それぞれ0010であり、以下同様である。
【0094】
例示的なQLCグレーコード700a1は、「3-4-4-4コード」と呼ばれることがあり、これは、ページ毎の読み出しレベルの数を指し、読み出しレベルは、通常、0~1又は1~0への遷移で発生する。したがって、
図7A1の例では、LPに対する3つの読み出しレベル(S4~S5への遷移、S10~S11への遷移、及びS13~S14への遷移)、MPに対する4つの読み出しレベル(S3~S4への遷移、S5~S6への遷移、S8~S9への遷移、及びS14~S15への遷移)、UPに対する4つの読み出しレベル(S1~S2への遷移、S7~S8への遷移、S9~S10への遷移、及びS11~S12への遷移)、並びにTPに対する4つの読み出しレベル(S0~S1への遷移、S2~S3への遷移、S6~S7への遷移、及びS12~S13への遷移)が存在する。当業者であれば、
図7A1の例示的なQLCグレーコード700a1以外のQLCグレーコードが使用され得ることを理解するであろう。
【0095】
実施形態では、TLCグレーコードは、LP、MP、UP及びTPのうちの1つの全てのビットを1又は0に設定することによって、QLCグレーコードから生成される。一実施形態では、制御回路(例えば、システム制御論理260、読み出し/書き込み回路225、行デコーダ222、及び列デコーダ212のうちの1つ以上)は、UP=1を設定する。QLCグレーコード700a1は、UP=1である全てのデータ状態を破線で示す。
図7A2は、UP=1に設定することによって、
図7A1の例示的なQLCグレーコード700a1から生成され得る例示的なTLCグレーコード700a2の表である。すなわち、QLCデータ状態S0、S1、S8、S9及びS12~S15に対してUP=1である。ユーザデータは、
図7A2に示すように、LP、MP及びTPの3つのページ分のデータとして入力される。
【0096】
例示的なTLCグレーコード700a2は、「2-3-2コード」と呼ばれることがあり、これは、ページ毎の読み出しレベルの数を指し、読み出しレベルは、通常、0~1又は1~0への遷移で発生する。したがって、
図7A2の例では、LPに対する3つの読み出しレベル(S1~S8への遷移、S9~S12への遷移、及びS13~S14への遷移)、MPに対する2つの読み出しレベル(S8~S9への遷移及びS14~S15への遷移)、並びにTPに対する2つの読み出しレベル(S0~S1への遷移、及びS12~S13への遷移)が存在する。
【0097】
図7A3は、UP=1である
図7A1の例示的なQLCグレーコード700a1から生成された、例示的なTLCグレーコード700a2を使用してプログラムされた、各メモリセルが3ビットのデータを記憶するX3プログラミングモードの閾値電圧Vth分布の一実施形態を示す。この例に示すように、状態S2~S7及びS10~S11は、それらの状態に割り当てられたメモリセルを有していない。したがって、以下の8個の状態:S0、S1、S8、S9、S12、S13、S14、及びS15が残り、これらはそれぞれ、TLC状態「Er」、「A」、「B」、「C」、「D」、「E」、「F」、及び「G」として割り当てられる。
【0098】
一実施形態では、データラッチのうちの1つ(例えば、UPデータラッチ)は、1の値に強制され、次いで、ダイ(例えば、200、211)上のX4論理は、QLCプログラミングアルゴリズムを実装して、メモリセルをTLCメモリセルとしてプログラムする。16個のデータ状態の代わりに、
図7A3又は
図7A4の例示的な閾値電圧Vth分布に示すように、8個のデータ状態が生じる。
【0099】
図7A3の閾値電圧Vth分布がそのまま使用されてもよいが、代替的に、閾値電圧Vth分布がより均等に離間されてもよい。一実施形態では、制御回路(例えば、システム制御論理260、読み出し/書き込み回路225、行デコーダ222、及び列デコーダ212のうちの1つ以上)は、7個のプログラムデータ状態S1、S8、S9、S12、S13、S14、及びS15の検証レベルVv1、Vv8、Vv9、Vv12、Vv13、Vv14、及びVv15をそれぞれ調整し、その結果、閾値電圧Vth分布は、
図7A4に示される例示的な閾値電圧Vth分布(検証レベルVvA、VvB、VvC、VvD、VvE、VvF、及びVvGを有する)のように、より均一に離間される。
【0100】
いくつかの実施形態では、X4プログラミングのために、スマート検証が実行される。スマート検証は、スキップ検証と呼ぶこともできる。X4プログラミングのスマート検証の一実施形態では、システムは、直前の状態の検証電圧を上回るVtを有するメモリセルの数がある所定の数を超えるかどうかに基づいて、どのプログラムループが特定の状態の検証を開始するかを判定する。例えば、S2状態のX4プログラミング検証は、所定の数のメモリセルがS1状態のVv1電圧を上回るVtを有するまでスキップされてもよく、S3状態の検証は、所定の数のメモリセルがS2状態のVv2電圧を上回るVtを有するまでスキップされてもよい、などである。このスマート検証は、検証動作の総数を低減し、それによって時間、電力及び/又は電流を節約するのに有効である。また、このスマート検証は、特定の開始の検証がプログラムループの高すぎるところで開始する場合に起こり得る、メモリセルのオーバープログラミングを回避するのに有効である。
【0101】
しかしながら、X3プログラミングの一実施形態のためのX4プログラミングのために使用される論理回路のうちの少なくともいくつかの再利用は、X3プログラミング時のスマート検証に対する技術的課題を提示する。
図7A3を参照すると、X3プログラミングモードにおいては、16個のX4状態のうちの8つが使用され、16個のX4状態のうちの8つが使用されないことに留意されたい。その結果、X3モードにおける状態のうちのいくつかは、X3モードにおいて使用されていないX4モードの状態に続く。例えば、B状態(S8に対応)は、X4モードからS7に続く。S7がX3モードにおいて使用されないという事実は、X4プログラミングアルゴリズムに基づくX3プログラミングモードにおけるB状態のスマート検証に対する技術的課題を提示する。また、D状態(S12に対応する)は、X4モードからS11に続くことに留意されたい。S11がX3モードにおいて使用されないという事実は、X4プログラミングアルゴリズムに基づくX3プログラミングモードにおけるD状態のスマート検証において技術的課題を提示する。
【0102】
一実施形態では、システムは、スマート検証を使用して、特定の状態がX4モードからの使用済み状態に続く場合、どのPVループがX3モードにおける特定の状態の検証を開始するかを判定する。例えば、
図7A3を参照すると、C、E、F、及びG状態はそれぞれ、X4モードからの使用済み状態の直後である。したがって、システムは、所定の数のメモリセルがVvBを上回るVtを有するまでC状態の検証をスキップし、所定の数のメモリセルがVvDを上回るVtを有するまでE状態の検証をスキップし、所定の数のメモリセルがVvEを上回るVtを有するまでF状態の検証をスキップし、所定の数のメモリセルがVvFを上回るVtを有するまでG状態の検証をスキップしてもよい。「スマートPCV」という用語は、
図7A3において、このようにして検証が実行され得るX3状態を示すために使用される。
【0103】
実施形態では、X3モードにおける特定の状態がX4モードにおける未使用状態に続く場合、システムは、異なる試験を使用して、どのPVループが検証を始めるかを判定してもよい。例えば、システムは、C状態の検証が始まってから所定の数のプログラムループ後にD状態の検証を始めてもよい。そうすることで、VvCを上回るVtを有するメモリセルの数のカウントに基づいて判定を行う必要がなくなり、これにより、X3プログラミングのためにX4プログラミング論理の少なくとも一部を使用する一実施形態では、プログラミング論理が簡略化される。
図7A3のD状態は、C状態の検証が開始された後、所定の数のプログラムループの後にD状態検証が始まることを示すために、「手動PCV」とラベル付けされている。
【0104】
場合によっては、スマート検証を使用することは、特定の状態がX4モードからの未使用状態に続く場合であっても、スマート検証を使用するのに十分に重要である。
図7A3のB状態が、その例である。一実施形態では、メモリシステムは、所定の数のメモリセルがVvAを上回るVtを有するまで、B状態の検証をスキップする。一実施形態では、検証は、B状態のスマート検証と組み合わせて、B状態を上回る状態の検証は、先行する状態の検証が始まった後、所定の数のPVループを始める。例えば、C状態の検証は、B状態の検証が始まった後に1つのPVループを開始してもよく、D状態の検証は、C状態の検証が始まった後に1つのPVループを開始してもよいなどである。直前の状態の後に所定の数のPVループの検証を開始することは、本明細書において手動PCVと呼ばれる。したがって、C、D、E、F、及びG状態がスマート検証を有する必要はない。代わりに、手動PCVは、B状態のスマートPCVと組み合わせて、C、D、E、F、及びG状態のために使用され得る。この本例では、スマート検証は、B状態についてのみ使用され、これは、X3プログラミングモードにおける効率的かつ正確な検証をサポートするために、X4プログラミング論理回路に対する修正を簡略化する。例えば、オーバープログラミングの重大なリスクなしに、検証動作の数を低く保つことができる。
【0105】
図8は、X3プログラムモード及びX4プログラムモードの両方を使用するメモリシステムにおける状態依存スマート検証のプロセス800の一実施形態のフローチャートである。一実施形態では、プロセス800は、NANDメモリセルをプログラムするために使用される。一実施形態では、ブロックのあるセットがTLCデータに使用され、ブロックの別のセットがQLCデータに使用される。したがって、X3モード及びX4モードの両方で同じグループのメモリセルがプログラムされる必要はない。しかしながら、任意選択的に、同じグループのメモリセルが異なる時間にTLCデータ及びQLCデータを記憶することができる。一実施形態では、プロセス800は、メモリダイ200の1つ以上の制御回路(例えば、システム制御論理260、列制御回路210、行制御回路220)によって実行される。一実施形態では、プロセス800は、制御ダイ211の1つ以上の制御回路(例えば、システム制御論理260、列制御回路210、行制御回路220)によって実行される。プロセス800におけるステップは、説明の便宜上、特定の順序で示されている。
【0106】
ステップ802は、4ビットコードを使用してメモリ構造202内のメモリセルの第1のグループをプログラムすることを含む。4ビットコードの一例を
図7A1に示す。ステップ802はまた、スマート検証を実行することを含んでもよい。4ビットコードは、16個の状態(例えば、S0~S15)及び4つのページ(例えば、LP、MP、UP、TP)を有する。ステップ802のスマート検証の一実施形態では、特定の状態の検証は、特定の数のセルが特定の状態の直前の状態の検証電圧を上回るVtを有した後に、所定の数のPVループを始める。状態は、閾値電圧に基づいて順序付けられる。第2の状態の直前の第1の状態とは、第1の状態の検証電圧が閾値電圧において次に低いことを意味する。
【0107】
ステップ804は、3ビットコードを使用してメモリ構造202内のメモリセルの第2のグループをプログラムすることを含む。4ビットコードの一例を
図7A2に示す。3ビットコードは、4ビットコードの16個の状態のうちの8つを有する。例えば、
図7A2において、3ビットコードは、状態S0、S1、S8、S9、S12、S13、S14、及びS15を有する。これらの8個の状態は、未使用ページがデフォルト値を有する4ビットコードからの状態に基づく。
図7Aの例では、未使用ページはUPである。使用される状態は、この例では、UPが1の値を有する状態である。4ビットコードからの他の状態が3ビットコードで使用される例を以下に説明する。
【0108】
ステップ804aは、3ビットコードにおける状態のセットの各状態をどのPVループが検証すべきかを判定することを含む。一実施形態では、ステップ804aは、本明細書においてスマートPVCと呼ばれるものを実行する。特定の状態のスマートPVCの一実施形態では、メモリシステムは、特定の状態のすぐ下の検証電圧を上回るVtを有するメモリセルの数をカウントする。検証は、カウントが特定の数に達した後、次のPVループ(又は何らかの他の所定の数のPVループ)を始める。例えば、E状態の検証は、特定の数のセルがD状態の検証電圧を上回るVtを有した後に、次のPVループを始めてもよい。ステップ804は、ステップ804aで判定されたPVループ上の各特定の状態の検証を始めることである。特定の状態の検証が始まると、その特定の状態は、その特定の状態を目標とするメモリセルがプログラミングを完了したと判定されるまで、各PVループで検証される(ステップ804c)。
【0109】
図9は、メモリセルを検証するための1つの可能な方式を示す。この技法は、各プログラムパルスの後に検証をまだ合格していない全ての状態を検証することを含む。この例は、パルス902の後に7個の状態が検証され、パルス904の後に7個の状態が検証されるTLCの場合である。例示のために、A状態は、パルス904の後にプログラミングを終了したものとして検証され、パルス906の後には検証されない。この技法は、非常に多数のプログラムパルスをもたらし、したがって遅くなり、大幅な電流及び/又は電力を消費する。
【0110】
図9に示された技術に対する可能な進歩は、より早いPVループでより高いVt状態のいくつかの検証をスキップすることである。しかしながら、そのようなスキッピングの技術的課題のうちの1つは、プログラミング速度においてダイ毎にかなりの変動があり得ることである。
図10A及び
図10Bは、異なる速度でプログラムする2つの異なるダイのプログラミングプロセスの一部分を示す。
図10Aは、単一のプログラムパルスの後、メモリセルのうちのいくつかがVaV(A状態検証電圧)を上回るVtを有する場合を示す。
図10Bは、VaVを上回るVtを有するメモリセルのいずれかに対して3つのプログラムパルスを要する場合を示す。B状態の検証が第1のPVループに対してスキップされ、第2のPVループ上で開始される方式を考える。方式などがは、
図10Aのより高速なプログラミングの場合にうまく機能することができる。しかしながら、方式などは、
図10Bの場合に必要とされるよりも早く検証する。ここで、B状態の検証が最初の3つのPVループに対してスキップされ、第4のPVループで開始される方式を考える。方式などは、
図10Bのより高速でより低速の場合にうまく機能することができる。しかしながら、方式などは、
図10Aの場合にオーバープログラミングをもたらす可能性がある。オーバープログラミングは、ECCによって訂正することができない誤りにつながり得るので、オーバープログラミングは回避されるべきである。
図11は、より低速又はより高速のプログラミングダイがあるかどうかにかかわらず、オーバープログラミングを防止する可能な方式を示す。
図11は、11個のプログラムパルス1102-1~1102-11を示す。
図11において、A状態の検証は、検証パルス1104によって示されるように、第1のプログラムパルス1102-1の後に開始する。B状態の検証は、検証パルス1106によって示されるように、第2のプログラムパルス1102-2の後に開始する。C状態の検証は、検証パルス1108によって示されるように、第3のプログラムパルス1102-3の後に開始する。D状態の検証は、検証パルス1110によって示されるように、第4のプログラムパルス1102-4の後に開始する。E状態の検証は、検証パルス1112によって示されるように、第5のプログラムパルス1102-5の後に開始する。F状態の検証は、検証パルス1114によって示されるように、第6のプログラムパルス1102-6の後に開始し、G状態の検証は、検証パルス1116によって示されるように、第7のプログラムパルス1102-7の後に開始する。状態の検証は、いくつかのセルを除く全てのセルがその状態に達した後に停止することができる。
図11に示される技法は、各状態の検証が所定のPVループで開始するため、実装が比較的簡単であり得る。しかしながら、
図11に示される技法は、
図10Aの例のような、より高速なプログラミングダイに対して不必要な検証を有する。実際には、高い割合のダイが、
図10Aの例のように比較的高速にプログラムしてもよい。
【0111】
図12は、X3プログラミングのためのスマート検証方式の一実施形態を示す。この方式は、X4プログラミングも実行するダイ上の論理回路によって実行されてもよい。更に、スマート検証方式は、X4プログラミング論理回路の大幅な部分がX3プログラミングに使用されることを可能にする。
図12は、11個のプログラムパルス1202-1~1202-11を示す。
図12に示すスマート検証の一実施形態は、1~n個のプログラム/検証(PV)ループ(パルス1204)に対してA状態のみを検証する。したがって、B状態からG状態までの検証は、1~n個のPVループに対してスキップされ、検証動作の総数が低減される。この判定は、A状態検証レベルを上回るVtを有するメモリセルのカウントに基づく。例として、
図12ではnは3つのPVループとして示されているが、nは3より小さくても大きくてもよい。特定の数のメモリセルがA状態検証を上回るVtを有した後、次のPVループにおいてB状態検証(パルス1206)が始まる。C状態からG状態までの検証は、直前の状態について検証が開始した後、所定の数のPVループを始める。例えば、C状態(パルス1208)の検証は、B状態の検証が始まった後に1つのPVループを始め、D状態(パルス1210)の検証は、C状態の検証が始まった後に1つのPVループを始め、E状態(パルス1212)の検証は、D状態の検証が始まった後に1つのPVループを始め、F状態(パルス1214)の検証は、E状態の検証が始まった後に1つのPVループを始め、G状態(パルス1216)の検証は、F状態の検証が始まった後に1つのPVループを始める。この例では、次の状態の検証を始めるために待つPVループの数は1である。しかしながら、2つ以上のPVループを使用することができる。また、全ての状態が直前の状態の検証後に同じ数のPVループを待つ必要はない。
図11及び
図12の例を比較すると、それは各々の場合、プログラミングを完了するのに11個のプログラムパルスを要したことが示されている。ただし、
図11では29個の検証パルスを使用したのに対して、
図12では17個の検証パルスしか使用していない。したがって、
図12の実施形態は、
図11の例と比較して、時間、電流及び/又は電力の大幅な節約を表す。更に、A状態検証レベルを上回るVtを有するメモリセルのカウントにより、
図12の実施形態は、オーバープログラミングの重大なリスクを提示しない。
【0112】
図12に示される実施形態は、B状態についてスマートPVCを使用し、C状態、D状態、E状態、F状態、及びG状態について手動PVCを使用するものとして参照され得る。したがって、本実施形態は、スマートPVCと手動PVCとを組み合わせる。
図13は、X3プログラミングのためにスマートPVCと手動PVCとを組み合わせるプロセス1300の一実施形態のフロー図である。プロセス1300は、
図8のステップ804の一実施形態についての更なる詳細を提供する。ステップ1302は、プログラムされるべきメモリセルに接続された選択ワード線にプログラムパルスを印加することを含む。メモリセルは、選択ワード線に接続されるサブブロックのうちの1つのサブブロック内のメモリセルだけであってもよい。メモリセルは、本明細書において、メモリセルの物理ページと呼ばれてもよい。一実施形態では、物理ページは、約16キロバイトのメモリセルを有する。
【0113】
ステップ1304は、選択ワード線にA状態検証基準電圧を印加することを含む。ステップ1304はまた、セルのVtがA状態検証基準電圧である場合に、A状態を目標とするセルが更なるプログラミングを受けることを禁止することを含む。
【0114】
ステップ1306は、A状態検証基準レベルを上回るVtを有するメモリセルの数(N)をカウントすることを含む。ステップ1308は、メモリセルの数(N)が閾値数よりも大きいかどうかの判定である。閾値数は、実装形態によって変わり得る。例えば、閾値数は、約10個のセル、約100個のセル、又は何らかの他の数である。メモリセルの数(N)がまだ閾値に達していない場合、次いで、プロセスはステップ1302に戻り、別のプログラムパルスを印加する。メモリセルの数(N)が閾値に達すると、次いで、プロセスはステップ1310に進み、別のプログラムパルスを印加する。
【0115】
ステップ1312及び1314は、プログラミングプロセス中にB~G状態の検証を始めることを含む。ステップ1312は、カウント(N)が閾値に達した後、所定の数のPVループのB状態の検証を始めることを含む。これは、第4のPVループで開始するものとして
図12に示されているが、カウント(N)に応じて、第2のPVループと同じくらい早いか、又は第4のPVループの後であり得る。
【0116】
ステップ1314は、直前の状態について検証が開始された後、所定の数のPVループのC状態、D状態、E状態、F状態、及びG状態の検証を開始することを含む。特定の状態について検証を開始するための条件を述べる別の方法は、メモリセルの数(N)が閾値数に達した後、所定の数のPVループを始めることである。しかしながら、これは、カウントがA状態検証レベルに対して行われることを必要とするだけであり、論理回路の設計を大幅に簡略化することに留意されたい。ステップ1316は、プログラミングが行われたかどうかの試験を含む(例えば、
図6のステップ618を参照)。プロセスは、プログラミングが完了するまでステップ1310~1316をループする。
【0117】
一実施形態は、X3プログラミングの状態依存スマート検証を含む。例えば、スマートPVCは、X3状態の第1のセットに使用することができ、手動PVCは、X3状態の第2のセットに使用することができる。
図14は、X3プログラミングの状態依存スマート検証のプロセス1400の一実施形態のフロー図である。プロセス1400は、
図8のステップ804の一実施形態についての更なる詳細を提供する。ステップ1402は、プログラムされるべきメモリセルに接続された選択ワード線にプログラムパルスを印加することを含む。メモリセルは、選択ワード線に接続されるサブブロックのうちの1つのサブブロック内のメモリセルだけであってもよい。
【0118】
ステップ1404~1410は、特定の状態について検証すること、又は検証をスキップすることを説明する。ステップ1404~1410は、まだ検証を完了していない各状態について実行されてもよい。ステップ1404は、特定の状態がX3状態の第1のセットにあるか、又はX3状態の第2のセットにあるかの判定である。第1のセットは、検証するか又は検証をスキップするかを判定するために、第1の試験が実行されるセットである。第2のセットは、検証するか又は検証をスキップするかを判定するために、第2の試験が実行されるセットである。一実施形態では、第1の試験はスマートPVC試験であり、第2の試験は手動PVC試験である。一実施形態では、第1の状態セットは、4ビット符号化における使用済み状態に続く全ての状態を含む。一実施形態では、状態の第2のセットは、4ビット符号化における未使用状態に続く状態を含むが、4ビット符号化における使用済み状態に続くいかなる状態も含まない。一実施形態では、B状態は、B状態が4ビットコード内の使用状態又は未使用状態に続くかどうかにかかわらず、第1のセット内にある。いくつかの例を以下に説明して、更に詳しく説明する。
【0119】
特定の状態が第1のセット内にある場合、第1の試験を使用して、妥当性を検証するか、又はスキップするかを判定する(ステップ1406)。特定の状態が第2のセット内にある場合、第2の試験を使用して、妥当性を検証するか、又はスキップするかを判定する(ステップ1408)。ステップ1410は、試験結果に基づいて妥当性を検証するか、又はスキップすることのいずれかを含む。ステップ1412は、考慮すべき別の状態が存在するかどうかの判定を含む。そうである場合、ステップ1404~1410は、次の状態に対して繰り返される。このPVループの検証が実行された後、ステップ1414において、プログラミングが完了したかどうかの判定が行われる。そうである場合、ステップ1402で次のPVループを開始する。
【0120】
図15は、X3プログラミングの状態依存スマート検証のプロセス1500の別の実施形態のフロー図である。プロセス1500は、
図8のステップ804の一実施形態についての更なる詳細を提供する。ステップ1502は、プログラムされるべきメモリセルに接続された選択ワード線にプログラムパルスを印加することを含む。メモリセルは、選択ワード線に接続されるサブブロックのうちの1つのサブブロック内のメモリセルだけであってもよい。
【0121】
ステップ1504~1510は、特定の状態について検証すること、又は検証をスキップすることを説明する。ステップ1504は、特定の状態が4ビットコードからの未使用状態によって先行されるかどうかの判定である。そうである場合、システムは、ステップ1506において、十分なセルが直前の状態の検証基準を上回るVtを有するときに検証が始まると判定する。
【0122】
状態が未使用状態によって先行される場合、システムは、ステップ1508において、直前の状態の検証を始めた後に所定の数のPVループの検証を始めると判定する。一実施形態では、例外がB状態について行われ、B状態は、B状態が未使用状態の後に続く場合であってもステップ1506のように試験される。
【0123】
ステップ1510は、試験結果に基づいて妥当性を検証するか、又は検証をスキップすることのいずれかを含む。ステップ1512は、考慮すべき別の状態が存在するかどうかの判定を含む。そうである場合、ステップ1504~1510は、次の状態に対して繰り返される。このPVループの検証が実行された後、ステップ1514において、プログラミングが完了したかどうかの判定が行われる。そうである場合、ステップ1512で次のPVループを開始する。
【0124】
本明細書で説明したように、いくつかの実施形態では、メモリシステムは、X3状態が、使用されているか、又は使用されていないかのいずれのX4状態によって先行されるかに基づいて、スマートPCVを使用するか手動PCVを使用するかを判定する。いくつかの実施形態では、使用済みX4状態によって先行されるX3状態は、スマートPCVを受け、未使用X4状態によって先行されるX3状態は、手動PCVを受けてもよい。しかしながら、一実施形態では、未使用X4状態によって先行される場合であってもスマートPCVを受信してもよいB状態について例外が行われる。次に、いくつかの異なる4ビットコード及び対応する3ビットコードについて説明する。
【0125】
図7A1~
図7A4に示す実施形態では、TLCグレーコードは、UPの全てのビットを1に設定することによって、QLCグレーコードから生成される。上述したように、実施形態では、TLCグレーコードは、LP、MP、UP及びTPのうちの1つの全てのビットを1又は0に設定することによって、QLCグレーコードから生成される。したがって、代替実施形態では、UPの全てのビットを0に設定することによって、QLCグレーコードからTLCグレーコードを生成してもよい。一実施形態では、制御回路(例えば、システム制御論理260、読み出し/書き込み回路225、行デコーダ222、及び列デコーダ212のうちの1つ以上)は、UP=0に設定する。
【0126】
例えば、
図16B1は、16個のデータ状態を表すために使用される例示的なQLCグレーコード1600b1の表であり、UP=0である全てのデータ状態を破線で示す。
図16B2は、UP=0に設定することによって、
図16B1の例示的なQLCグレーコード1600b1から生成され得る例示的なTLCグレーコード1600b2の表である。すなわち、QLCデータ状態S2~S7及びS10~S11に対してUP=0である。ユーザデータは、
図16B2に示すように、LP、MP及びTPの3つのページ分のデータとして入力される。
【0127】
図16B3は、UP=0である
図16B1の例示的なQLCグレーコード1600b1から生成された例示的なTLCグレーコード1600b2を使用してプログラムされた、各メモリセルが3ビットのデータを記憶する8状態メモリデバイスの閾値電圧Vth分布の一実施形態を示す。この例に示すように、状態S0~S1、S8~S9、及びS12~S15は、それらの状態に割り当てられたメモリセルを有していない。したがって、以下の8個の状態:S2、S3、S4、S5、S6、S7、S10、及びS11が残り、これらはそれぞれ、TLC状態「Er」、「A」、「B」、「C」、「D」、「E」、「F」、及び「G」として割り当てられる。
【0128】
一実施形態では、データラッチのうちの1つ(例えば、UPデータラッチ)は、0の値に強制され、次いで、メモリダイ200又は制御ダイ211上のX4論理は、QLCプログラムを実装して、メモリセルをTLCメモリセルとしてプログラムする。16個のデータ状態の代わりに、
図16B3に示される例示的な閾値電圧Vth分布のような8個のデータ状態が生じる。
【0129】
図16B3の閾値電圧Vth分布がそのまま使用されてもよいが、代替的に、閾値電圧Vth分布がより均等に離間されてもよい。一実施形態では、制御回路(例えば、システム制御論理260、読み出し/書き込み回路225、行デコーダ222、及び列デコーダ212のうちの1つ以上)は、8個のプログラムデータ状態S2、S3、S4、S5、S6、S7、S10、及びS11の検証レベルVv2、Vv3、Vv4、Vv5、Vv6、Vv7、Vv10、及びVv11をそれぞれ調整し、その結果、閾値電圧Vth分布は、
図16B4に示される例示的な閾値電圧Vth分布のように、より均一に離間される。
【0130】
図16B3は、一実施形態では、スマートPCVがB、C、D、E、及びG状態のために使用されることを示しており、その理由は、それらがそれぞれ4ビット符号化における使用済み状態に続くからである。しかしながら、手動PCVは、4ビット符号化から未使用状態(S9)に続くので、F状態の一実施形態において使用される。
【0131】
図16C1~
図16C4は、TPの全てのビットを1に設定することによって、QLCグレーコードからTLCグレーコードが生成される更に別の代替実施形態を示す。一実施形態では、制御回路(例えば、システム制御論理260、読み出し/書き込み回路225、行デコーダ222及び列デコーダ212のうちの1つ以上)は、TP=1を設定する。
【0132】
図16C1は、16個のデータ状態を表すために使用される例示的なQLCグレーコード1600c1の表であり、TP=1である全てのデータ状態を破線で示す。
図16C2は、TP=1に設定することによって、
図16C1の例示的なQLCグレーコード1600c1から生成され得る例示的なTLCグレーコード1600c2の表である。すなわち、QLCデータ状態S0、S3~S6、及びS13~S15に対してTP=1である。ユーザデータは、
図16C2に示すように、LP、MP及びTPの3つのページ分のデータとして入力される。
【0133】
図16C3は、TP=1である
図16C1の例示的なQLCグレーコード1600c1から生成された例示的なTLCグレーコード1600c2を使用してプログラムされた、各メモリセルが3ビットのデータを記憶する8状態メモリデバイスの閾値電圧Vth分布の一実施形態を示す。この例に示すように、状態S1~S2及びS7~S12は、これらの状態に割り当てられたメモリセルを有していない。したがって、以下の8個の状態:S0、S3、S4、S5、S6、S13、S14、及びS15が残り、これらはそれぞれ、TLC状態「Er」、「A」、「B」、「C」、「D」、「E」、「F」、及び「G」として割り当てられる。
【0134】
一実施形態では、データラッチのうちの1つ(例えば、TPデータラッチ)は、1の値に強制され、次いで、メモリダイ上のX4論理は、QLCプログラムを実装して、メモリセルをTLCメモリセルとしてプログラムする。16個のデータ状態の代わりに、
図16C3の例示的な閾値電圧Vth分布に示すように、8個のデータ状態が生じる。
【0135】
図16C3の閾値電圧Vth分布がそのまま使用されてもよいが、代替的に、閾値電圧Vth分布がより均等に離間されてもよい。一実施形態では、制御回路(例えば、システム制御論理260、読み出し/書き込み回路225、行デコーダ222、及び列デコーダ212のうちの1つ以上)は、8個のプログラムデータ状態S3、S4、S5、S6、S13、S14、及びS15の検証レベルVv3、Vv4、Vv5、Vv6、Vv13、Vv14、及びVv15をそれぞれ調整し、その結果、閾値電圧Vth分布は、
図16C4に示される例示的な閾値電圧Vth分布のように、より均一に離間される。
【0136】
図16C3は、一実施形態では、スマートPCVがB、C、D、F、及びG状態のために使用されることを示しており、その理由は、それらがそれぞれ4ビット符号化における使用済み状態に続くからである。しかしながら、手動PCVは、4ビット符号化から未使用状態(S12)に続くので、E状態の一実施形態において使用される。
【0137】
図16D1~
図16D4は、TPの全てのビットを0に設定することによって、QLCグレーコードからTLCグレーコードが生成される更に別の代替実施形態を示す。一実施形態では、制御回路(例えば、システム制御論理260、読み出し/書き込み回路225、行デコーダ222、及び列デコーダ212のうちの1つ以上)は、TP=0に設定する。
【0138】
図16D1は、16個のデータ状態を表すために使用される例示的なQLCグレーコード1600d1の表であり、TP=0である全てのデータ状態を破線で示す。
図16D2は、TP=0に設定することによって、
図16D1の例示的なQLCグレーコード1600d1から生成され得る例示的なTLCグレーコード1600d2の表である。すなわち、QLCデータ状態S1~S2及びS7~S12に対してTP=0である。ユーザデータは、
図16D2に示すように、LP、MP及びTPの3つのページ分のデータとして入力される。
【0139】
図16D3は、TP=0である
図16D1の例示的なQLCグレーコード1600d1から生成された、例示的なTLCグレーコード1600d2を使用してプログラムされた、各メモリセルが3ビットのデータを記憶する8状態メモリデバイスの閾値電圧Vth分布の一実施形態を示す。この例に示すように、状態S0、S3~S6及びS13~S15は、これらの状態に割り当てられたメモリセルを有していない。したがって、以下の8個の状態:S1、S2、S7、S8、S9、S10、S11、及びS12が残り、これらはそれぞれ、TLC状態「Er」、「A」、「B」、「C」、「D」、「E」、「F」、及び「G」として割り当てられる。
【0140】
一実施形態では、データラッチのうちの1つ(例えば、TPデータラッチ)は、0の値に強制され、次いで、メモリダイ上のX4論理は、QLCプログラムを実装して、メモリセルをTLCメモリセルとしてプログラムする。16個のデータ状態の代わりに、
図16D3に示すように、8個のデータ状態が生じる。
【0141】
図16D3の閾値電圧Vth分布がそのまま使用されてもよいが、代替的に、閾値電圧Vth分布がより均等に離間されてもよい。一実施形態では、制御回路(例えば、システム制御論理260、読み出し/書き込み回路225、行デコーダ222、及び列デコーダ212のうちの1つ以上)は、8個のプログラムデータ状態S1、S2、S7、S8、S9、S10、S11、及びS12の検証レベルVv1、Vv2、Vv7、Vv8、Vv9、Vv10、Vv11、及びVv12をそれぞれ調整し、その結果、閾値電圧Vth分布は、
図16D4に示される例示的な閾値電圧Vth分布のように、より均一に離間される。
【0142】
図16D3は、一実施形態では、スマートPCVがC、D、E、F、及びG状態のために使用されることを示しており、その理由は、それらがそれぞれ4ビット符号化における使用済み状態に続くからである。B状態は、未使用状態(S6)に続く。一実施形態では、例外がB状態について行われ、スマートPCVは、未使用状態に続くB状態にもかかわらず使用される。任意選択的に、手動PVCは、未使用X4状態に続くので、B状態のために使用することができる。
【0143】
図16E1~
図16E4は、MPの全てのビットを1に設定することによって、QLCグレーコードからTLCグレーコードが生成される更に別の代替実施形態を示す。一実施形態では、制御回路(例えば、システム制御論理260、読み出し/書き込み回路225、行デコーダ222、及び列デコーダ212のうちの1つ以上)は、MP=1を設定する。
【0144】
図16E1は、16個のデータ状態を表すために使用される例示的なQLCグレーコード1600e1の表であり、MP=1である全てのデータ状態を破線で示す。
図16E2は、MP=1に設定することによって、
図16E1の例示的なQLCグレーコード1600e1から生成され得る例示的なTLCグレーコード1600e2の表である。すなわち、QLCデータ状態S0~S3、S6~S8及びS15に対してMP=1である。ユーザデータは、
図16E2に示すように、LP、MP及びTPの3つのページ分のデータとして入力される。
【0145】
図16E3は、MP=1である
図16E1の例示的なQLCグレーコード1600e1から生成された、例示的なTLCグレーコード1600e2を使用してプログラムされた、各メモリセルが3ビットのデータを記憶する8状態メモリデバイスの閾値電圧Vth分布の一実施形態を示す。この例に示すように、状態S4~S5及びS9~S14は、それらの状態に割り当てられたメモリセルを有していない。したがって、以下の8個の状態:S0、S1、S2、S3、S6、S7、S8、及びS15が残り、これらはそれぞれ、TLC状態「Er」、「A」、「B」、「C」、「D」、「E」、「F」、及び「G」として割り当てられる。
【0146】
一実施形態では、データラッチのうちの1つ(例えば、MPデータラッチ)は、1の値に強制され、次いで、メモリダイ上のX4論理は、QLCプログラムを実装して、メモリセルをTLCメモリセルとしてプログラムする。16個のデータ状態の代わりに、
図16E3に示すように、8個のデータ状態が生じる。
【0147】
なお、
図16E3の閾値電圧Vth分布をそのまま用いてもよいが、代替的に、閾値電圧Vth分布がより均等に離間されてもよい。一実施形態では、制御回路(例えば、システム制御論理260、読み出し/書き込み回路225、行デコーダ222、及び列デコーダ212のうちの1つ以上)は、8個のプログラムデータ状態S1、S2、S3、S6、S7、S8、及びS15の検証レベルVv1、Vv2、Vv3、Vv6、Vv7、Vv8、及びVv15をそれぞれ調整し、その結果、閾値電圧Vth分布は、
図16E4に示される例示的な閾値電圧Vth分布のように、より均一に離間される。
【0148】
図16E3は、一実施形態では、スマートPCVがB、C、E、及びF状態のために使用されることを示しており、その理由は、それらがそれぞれ4ビット符号化における使用済み状態に続くからである。手動PVCは、未使用X4状態(S5)に続くので、D状態に使用される。手動PVCは、未使用X4状態(S14)に続くので、G状態にも使用される。
【0149】
図16F1~
図16F4は、MPの全てのビットを0に設定することによって、QLCグレーコードからTLCグレーコードが生成される更に別の代替実施形態を示す。一実施形態では、制御回路(例えば、システム制御論理260、読み出し/書き込み回路225、行デコーダ222、及び列デコーダ212のうちの1つ以上)は、MP=0に設定する。
【0150】
図16F1は、16個のデータ状態を表すために使用される例示的なQLCグレーコード1600f1の表であり、MP=0である全てのデータ状態を破線で示す。
図16F2は、MP=0に設定することによって、
図16F1の例示的なQLCグレーコード1600f1から生成され得る例示的なTLCグレーコード1600f2の表である。すなわち、QLCデータ状態S4~S5及びS9~S14に対してMP=0である。ユーザデータは、
図16F2に示すように、LP、MP及びTPの3つのページ分のデータとして入力される。
【0151】
図16F3は、MP=0である
図16F1の例示的なQLCグレーコード1600f1から生成された、例示的なTLCグレーコード1600f2を使用してプログラムされた、各メモリセルが3ビットのデータを記憶する8状態メモリデバイスの閾値電圧Vth分布の一実施形態を示す。この例に示すように、状態S0~S3、S6~S8、及びS15は、それらの状態に割り当てられたメモリセルを有していない。したがって、以下の8個の状態:S4、S5、S9、S10、S11、S12、S13、及びS14が残り、これらはそれぞれ、TLC状態「Er」、「A」、「B」、「C」、「D」、「E」、「F」、及び「G」として割り当てられる。
【0152】
一実施形態では、データラッチのうちの1つ(例えば、MPデータラッチ)は、0の値に強制され、次いで、メモリダイ上のX4論理は、QLCプログラムを実装して、メモリセルをTLCメモリセルとしてプログラムする。16個のデータ状態の代わりに、
図16F3に示すように、8個のデータ状態が生じる。
【0153】
図16F3の閾値電圧Vth分布がそのまま使用されてもよいが、代替的に、閾値電圧Vth分布がより均等に離間されてもよい。一実施形態では、制御回路(例えば、システム制御論理260、読み出し/書き込み回路225、行デコーダ222、及び列デコーダ212のうちの1つ以上)は、8個のプログラムデータ状態S4、S5、S9、S10、S11、S12、S13、及びS14の検証レベルVv4、Vv5、Vv9、Vv10、Vv11、Vv12、Vv13、及びVv14をそれぞれ調整し、その結果、閾値電圧Vth分布は、
図16F4に示される例示的な閾値電圧Vth分布のように、より均一に離間される。
【0154】
図16F3は、一実施形態では、スマートPCVがC、D、E、F及びG状態のために使用されることを示しており、その理由は、それらがそれぞれ4ビット符号化における使用済み状態に続くからである。B状態は、未使用状態(S8)に続く。一実施形態では、例外がB状態について行われ、スマートPCVは、未使用状態に続くB状態にもかかわらず使用される。任意選択的に、手動PVCは、未使用X4状態に続くので、B状態のために使用することができる。
【0155】
図16G1~
図16G4は、LPの全てのビットを1に設定することによって、QLCグレーコードからTLCグレーコードが生成される更に別の代替実施形態を示す。一実施形態では、制御回路(例えば、システム制御論理260、読み出し/書き込み回路225、行デコーダ222、及び列デコーダ212のうちの1つ以上)は、LP=1を設定する。
【0156】
特に、
図16G1は、16個のデータ状態を表すために使用される例示的なQLCグレーコード1600g1の表であり、LP=1である全てのデータ状態を破線で示す。
図16G2は、LP=1に設定することによって、
図16G1の例示的なQLCグレーコード1600g1から生成され得る例示的なTLCグレーコード1600g2の表である。すなわち、QLCデータ状態S0~S4及びS11~S13に対してLP=1である。ユーザデータは、
図16G2に示すように、LP、MP及びTPの3つのページ分のデータとして入力される。
【0157】
図16G3は、LP=1である
図16G1の例示的なQLCグレーコード1600g1から生成された、例示的なTLCグレーコード1600g2を使用してプログラムされた、各メモリセルが3ビットのデータを記憶する8状態メモリデバイスの閾値電圧Vth分布の一実施形態を示す。この例に示すように、状態S5~S10及びS14~S15は、それらの状態に割り当てられたメモリセルを有していない。したがって、以下の8個の状態:S0、S1、S2、S3、S4、S11、S12、及びS13が残り、これらはそれぞれ、TLC状態「Er」、「A」、「B」、「C」、「D」、「E」、「F」、及び「G」として割り当てられる。
【0158】
一実施形態では、データラッチのうちの1つ(例えば、LPデータラッチ)は、1の値に強制され、次いで、メモリダイ上のX4論理は、QLCプログラムを実装して、メモリセルをTLCメモリセルとしてプログラムする。16個のデータ状態の代わりに、
図16G3に示すように、8個のデータ状態が生じる。
【0159】
図16G3の閾値電圧Vth分布がそのまま使用されてもよいが、代替的に、閾値電圧Vth分布がより均等に離間されてもよい。一実施形態では、制御回路(例えば、システム制御論理260、読み出し/書き込み回路225、行デコーダ222、及び列デコーダ212のうちの1つ以上)は、8個のプログラムデータ状態S0、S1、S2、S3、S4、S11、S12、及びS13の検証レベルVv1、Vv2、Vv3、Vv4、Vv11、Vv12、及びVv13をそれぞれ調整し、その結果、閾値電圧Vth分布は、
図16G4に示される例示的な閾値電圧Vth分布のように、より均一に離間される。
【0160】
図16G3は、一実施形態では、スマートPCVがB、C、D、F及びG状態のために使用されることを示しており、その理由は、それらがそれぞれ4ビット符号化における使用済み状態に続くからである。手動PCVは、未使用X4状態(S10)に続くので、E状態に使用される。
【0161】
図16H1~
図16H4は、LPの全てのビットを0に設定することによって、QLCグレーコードからTLCグレーコードが生成される更に別の実施形態を示す。一実施形態では、制御回路(例えば、システム制御論理260、読み出し/書き込み回路225、行デコーダ222、及び列デコーダ212のうちの1つ以上)は、LP=0に設定する。
【0162】
図16H1は、16個のデータ状態を表すために使用される例示的なQLCグレーコード1600h1の表であり、LP=0である全てのデータ状態を破線で示す。
図16H2は、LP=0に設定することによって、
図16H1の例示的なQLCグレーコード1600h1から生成され得る例示的なTLCグレーコード1600h2の表である。すなわち、QLCデータ状態S5~S10及びS14~S15に対してLP=0である。ユーザデータは、
図16H2に示すように、LP、MP及びTPの3つのページ分のデータとして入力される。
【0163】
図16H3は、LP=0である
図16H1の例示的なQLCグレーコード1600h1から生成された、例示的なTLCグレーコード1600h2を使用してプログラムされた、各メモリセルが3ビットのデータを記憶する8状態メモリデバイスの閾値電圧Vth分布の一実施形態を示す。この例に示すように、状態S0~S4及びS11~S13は、それらの状態に割り当てられたメモリセルを有していない。したがって、以下の8個の状態:S5、S6、S7、S8、S9、S10、S14、及びS15が残り、これらはそれぞれ、TLC状態「Er」、「A」、「B」、「C」、「D」、「E」、「F」、及び「G」として割り当てられる。
【0164】
一実施形態では、データラッチのうちの1つ(例えば、LPデータラッチ)は、0の値に強制され、次いで、メモリダイ上のX4論理は、QLCプログラムを実装して、メモリセルをTLCメモリセルとしてプログラムする。16個のデータ状態の代わりに、
図16H3に示すように、8個のデータ状態が生じる。
【0165】
図16H3の閾値電圧Vth分布がそのまま使用されてもよいが、代替的に、閾値電圧Vth分布がより均等に離間されてもよい。一実施形態では、制御回路(例えば、システム制御論理260、読み出し/書き込み回路225、行デコーダ222、及び列デコーダ212のうちの1つ以上)は、8個のプログラムデータ状態S5、S6、S7、S8、S9、S10、S14、及びS15の検証レベルVv5、Vv6、Vv7、Vv8、Vv9、Vv10、Vv14、及びVv15をそれぞれ調整し、その結果、閾値電圧Vth分布は、
図16H4に示される例示的な閾値電圧Vth分布のように、より均一に離間される。
【0166】
図16H3は、一実施形態では、スマートPCVがB、C、D、E及びG状態のために使用されることを示しており、その理由は、それらがそれぞれ4ビット符号化における使用済み状態に続くからである。手動PCVは、未使用X4状態(S13)に続くので、F状態に使用される。
【0167】
X3プログラムモードのためのスマート検証を有するメモリシステムのための技法が、本明細書で開示される。X3モードは、X4モードの4ビットグレーコードに基づく3ビットグレーコードを使用する。3ビットグレーコードを4ビットグレーコードに基づかせることによって、X4プログラミングに使用される論理のかなりの部分を、X3プログラミングにも使用することができる。しかしながら、3ビットグレーコードは、4ビットグレーコードからの16個の状態のうちの8つしか使用しないので、3ビットグレーコードを使用する検証には技術的な課題が生じる。特に、X4プログラミングモードにおいてどの状態が検証をスキップすべきかを判定する論理は、X3プログラミングモードにおいて検証をスキップするために使用するのに適していない場合がある。X4プログラミングモードからのプログラミング論理のかなりの部分がX3プログラミングモードにおいて使用されることを依然として可能にしながら、X3プログラミングモードにおける状態の検証をスキップする技術が、本明細書で開示される。
【0168】
上記に鑑みて、第1の実施形態は、不揮発性メモリセルを備えるメモリ構造に接続するように構成された1つ以上の制御回路を含み、1つ以上の制御回路は、16個の状態及び4つのページを有する4ビットコードを使用して、メモリ構造内のメモリセルの第1のグループをプログラムするように構成されている。1つ以上の制御回路は、4つのページのうちの3つのページに基づく3ビットコードを使用して、メモリ構造内のメモリセルの第2のグループをプログラムするように構成されている。3ビットコードは、4ビットコードの未使用ページがデフォルト値を含む、4ビットコードの16個の状態のうちの8個の状態を含む。1つ以上の制御回路は、8個の状態のうちの1個以上の状態の第1のセットの各特定の状態について、閾値電圧にある特定の状態の直前の状態の検証電圧を上回る閾値電圧を有するメモリセルの数が所定の数よりも大きいかどうかに基づいて判定されるプログラム検証ループの間に、3ビットコードを使用したプログラミングの間に検証を始めるように構成されている。
【0169】
第2の実施形態では、第1の実施形態を促進するために、1つ以上の制御回路は、8個の状態のうちの1個以上の状態の第2のセットの各特定の状態について、閾値電圧にある特定の状態の直前の状態を検証することを始めた後の所定の数のプログラム検証ループに基づいて判定されたプログラム検証ループの間に、3ビットコードを使用したプログラミングの間に検証を始めるように更に構成されている。
【0170】
第3の実施形態では、第1又は第2の実施形態を促進するために、8個の状態は、消去状態、並びに増加する閾値電圧にあるA状態、B状態、C状態、D状態、E状態、F状態、及びG状態を含む。第1のセットは、B状態を含む。
【0171】
第4の実施形態では、第1~第3の実施形態のいずれかを促進するために、第2のセットは、C状態、D状態、E状態、F状態、及びG状態を含む。
【0172】
第5の実施形態では、第1~第4の実施形態のいずれかを促進するために、第1のセットは、3ビットコードでも使用される4ビットコード内の状態の直後の3ビットコード内の全ての状態を含む。
【0173】
第6の実施形態では、第1~第5の実施形態のいずれかを促進するために、8個の状態は、消去状態、並びに増加する閾値電圧にあるA状態、B状態、C状態、D状態、E状態、F状態、及びG状態を含む。第1のセットは、B状態が、3ビットコードにおいても使用される4ビットコードにおける状態に続くかどうか、又はB状態が、3ビットコードにおいて使用されない4ビットコードにおける状態に続くどうかのB状態を含む。
【0174】
第7の実施形態では、第1~第6の実施形態のいずれかを促進するために、第2のセットは、3ビットコードにおいて使用されない4ビットコードにおける状態の直後であるが、3ビットコードにおいても使用される4ビットコードにおけるいかなる状態も含まない3ビットコードにおける状態を含む。
【0175】
第8の実施形態では、第1~第7の実施形態のいずれかを促進するために、4ビットコードの4つのページのうちの3つに基づいて、3ビットコードを使用してメモリ構造内のメモリセルの第2のグループをプログラムすることは、1つ以上の制御回路が、3つのデータページを、メモリセルに関連付けられたデータラッチの対応する第3のセットにロードすること、及びデフォルト値を、メモリセルに関連付けられたデータラッチの第4のセットにロードすることであって、デフォルト値が、データラッチの第4のセット内の全てのデータラッチについて同じである、ロードすることを行うように更に構成されていることを含む。
【0176】
第9の実施形態では、第8の実施形態を促進するために、1つ以上の制御回路は、データラッチの対応する3つのセット内の3つのデータページ、及びデータラッチの第4のセット内のデフォルト値を考慮するプログラミングアルゴリズムに基づいて、3つのデータページをメモリセルにプログラムするように更に構成されている。
【0177】
一実施形態は、不揮発性記憶装置を動作させる方法を含む。この方法は、3つのデータページをデータラッチの対応する3つのセットにロードすることを含む。この方法は、デフォルト値をデータラッチの第4のセットにロードすることであって、デフォルト値が、第4のセット内の全てのラッチについて同じである、ロードすることを含む。この方法は、3つのデータページを不揮発性記憶装置内のメモリセルのグループにプログラムすることであって、3つのデータページが、A状態及びB状態を含む8つの閾値電圧分布としてプログラムされ、i)所定の数のメモリセルがA状態の検証電圧を上回る閾値電圧を有する前に、B状態各プログラム検証ループの検証をスキップすること、及びii)所定の数のメモリセルがA状態の検証電圧を上回る閾値電圧を有した後に、次のプログラム検証ループでB状態の検証を始めることを含む、プログラムすることを含む。
【0178】
一実施形態は、NANDメモリセルを含むメモリ構造と、メモリ構造と通信している1つ以上の制御回路と、を含む不揮発性記憶システムを含む。1つ以上の制御回路は、16個のデータ状態を有する4ページグレーコードを使用して、メモリ構造内のNANDメモリセルの第1のグループをプログラムするように構成されている。1つ以上の制御回路は、16個のデータ状態のうちの8個のデータ状態に基づいて、3ページグレーコードを使用して、メモリ構造内のNANDメモリセルの第2のグループをプログラムするように構成されており、8個のデータ状態は、3ページグレーコード内で連続的に順序付けられる。1つ以上の制御回路は、第1の試験に基づいて、3ページグレーコードの1個以上のデータ状態の第1のセットに対する特定のプログラム検証ループの検証をスキップするかどうかを判定するように構成されている。1つ以上の制御回路は、第2の試験に基づいて、3ページグレーコードの1個以上のデータ状態の第2のセットに対する特定のプログラム検証ループの検証をスキップするかどうかを判定するように構成されている。
【0179】
本明細書の目的のために、明細書中の「実施形態」、「一実施形態」、「いくつかの実施形態」又は「別の実施形態」に対する言及は、異なる実施形態又は同一の実施形態について記述するために使用されることがある。
【0180】
本明細書の目的のために、接続とは、直接的な接続又は間接的な接続(例えば、1つ以上の他の部分を介して)であり得る。場合によっては、ある要素が別の要素に接続されるか又は結合されると言及される場合、この要素は、他の要素に直接的に接続されてもよく、又は、1つ以上の介在要素を介して他の要素に間接的に接続されてもよい。ある要素が別の要素に直接的に接続されていると言及される場合、この要素と他の要素との間には介在要素は存在しない。2つのデバイスは、それらが互いの間で電子信号を交換することができるように直接的に又は間接的に接続されている場合、「通信状態」にある。
【0181】
本明細書の目的のために、「基づいて」という用語は、「少なくとも部分的に基づいて」と読むことができる。
【0182】
本明細書の目的のために、追加の文脈がない、「第1の」物体、「第2の」物体、及び「第3の」物体などの数値的な用語の使用は、物体の順序を示唆するものではなく、代わりに、異なる物体を識別するための識別目的で使用されることがある。
【0183】
本明細書の目的のために、物体の「組」という用語は、物体のうちの1つ以上の物体の「組」を指すことがある。
【0184】
前述の詳細な説明は、例示及び説明の目的のために提示されている。前述の詳細な説明は、網羅的であること、又は開示された正確な形態に限定することを意図したものではない。多くの修正形態及び変形形態が、上記の教示に鑑みて可能である。説明した実施形態は、提案した技術の原理及びその実際の用途を最もよく説明するために選択されたものであり、それによって、当業者が様々な実施形態で、企図される特定の使用法に適するように様々な修正を伴って、この技術を最も良いように利用することを可能にする。本範囲は、本明細書に添付の請求項によって定義されることが意図されている。
【外国語明細書】