(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2022-06-10
(45)【発行日】2022-06-20
(54)【発明の名称】符号化されたFoggy-Fineプログラミングを用いた、不揮発性メモリのための読み出し閾値の較正
(51)【国際特許分類】
G11C 11/56 20060101AFI20220613BHJP
G11C 16/34 20060101ALI20220613BHJP
【FI】
G11C11/56 210
G11C11/56 220
G11C16/34 116
(21)【出願番号】P 2021103685
(22)【出願日】2021-06-22
【審査請求日】2021-06-22
(32)【優先日】2021-01-20
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-02-09
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】504056130
【氏名又は名称】ウェスタン デジタル テクノロジーズ インコーポレーテッド
(74)【代理人】
【識別番号】110000110
【氏名又は名称】弁理士法人 快友国際特許事務所
(72)【発明者】
【氏名】アイダン・アルロッド
(72)【発明者】
【氏名】エラン・シャロン
(72)【発明者】
【氏名】セルゲイ・アナトーリエヴィチ・ゴロベッツ
(72)【発明者】
【氏名】ジャック・フライヤー
(72)【発明者】
【氏名】ティエンチェン・クオ
(72)【発明者】
【氏名】アレクサンダー・バザラスキー
【審査官】後藤 彰
(56)【参考文献】
【文献】米国特許出願公開第2020/0194064(US,A1)
【文献】米国特許出願公開第2011/0252288(US,A1)
【文献】特開2020-107376(JP,A)
【文献】特開2018-37123(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G11C 11/56
G11C 16/34
(57)【特許請求の範囲】
【請求項1】
装置であって、
複数の不揮発性メモリセルの1つ以上のアレイに接続するように構成された制御回路であって、前記メモリセルのそれぞれは、複数ビットのデータを保持するように構成されており、前記制御回路は、
前記複数の不揮発性メモリセルに記憶されるデータのパリティデータを計算し、
前記複数の不揮発性メモリセルを複数の第1の分布にプログラムし、
前記第1の分布にある前記複数の不揮発性メモリセルの複数回の第1の読み出しを実行し、
前記第1の分布にある前記複数の不揮発性メモリセルの複数回の第2の読み出しのための複数の読み出し電圧レベルを、前記第1の読み出しの結果から決定し、
決定した前記読み出し電圧を使用して、前記第1の分布にある前記複数の不揮発性メモリセルの前記複数回の第2の読み出しを実行し、
前記第2の読み出しと前記パリティデータとの組み合わせから前記複数の不揮発性メモリセルに記憶される前記データを復元するように構成されている、制御回路を備える、装置。
【請求項2】
前記制御回路は、
前記複数の不揮発性メモリセルを、前記第1の分布から第2の分布に更にプログラムして、復元した前記データを記憶するように更に構成されている、請求項1に記載の装置。
【請求項3】
前記制御回路は、前記第1の分布が重複を有するように、Foggyプログラム動作で前記複数の不揮発性メモリセルを前記第1の分布にプログラムし、前記第2の分布は前記第1の分布よりも狭く、かつ前記第1の分布よりも少ない重複を有するように、前記複数の不揮発性メモリセルを前記第1の分布から前記第2の分布にプログラムするように更に構成されている、請求項2に記載の装置。
【請求項4】
前記制御回路は制御ダイ上に形成され、前記装置は、
前記不揮発性メモリセルの1つ以上のアレイを含むメモリダイであって、前記メモリダイは、前記制御ダイとは別個に形成され、前記制御ダイに結合されている、メモリダイを更に備える、請求項1に記載の装置。
【請求項5】
前記制御回路は、前記不揮発性メモリセルの1つ以上のアレイを有する単一のダイ上に形成される、請求項1に記載の装置。
【請求項6】
前記第1の読み出しの前記結果から、前記複数回の第2の読み出しのための前記複数の読み出し電圧レベルを決定するために、前記制御回路は、
前記第1の読み出しを実行して、前記第1の分布のうちの1つ以上について複数の閾値電圧範囲ビンのそれぞれに属するメモリセルの数を決定し、
前記1つ以上の第1の分布のそれぞれについて、前記ビンに属するメモリセルの数をカウントし、
カウントした前記数から複数回の第2の読み出しのための前記読み出し電圧レベルのうちの1つ以上を決定するように構成されている、請求項1に記載の装置。
【請求項7】
前記制御回路は、
前記複数の不揮発性メモリセルを、前記第1の分布から前記第2の分布に更にプログラムして、復元した前記データを記憶するように更に構成されており、
前記複数回の第2の読み出しのための前記複数の読み出し電圧レベルのうちの1つ以上は、前記第2の分布にプログラムされたメモリセルの読み出しに使用される読み出し電圧レベルの中間値として決定される、請求項1に記載の装置。
【請求項8】
前記第1の読み出しの前記結果から、前記複数回の第2の読み出しのための前記複数の読み出し電圧レベルを決定するために、前記制御回路は、
エラー訂正コード関連技術を適用して、前記第1の読み出しの前記結果のエラーの量に基づいて前記複数回の第2の読み出しのための前記読み出し電圧レベルを決定するように構成されている、請求項1に記載の装置。
【請求項9】
エラー訂正コード関連技術を適用して、前記複数回の第2の読み出しのための前記読み出し電圧レベルを決定することは、前記第1の読み出しの前記結果のシンドローム重みを計算することを含む、請求項8に記載の装置。
【請求項10】
前記複数の第1の分布は、奇数パリティデータを有する分布のサブセットと、偶数パリティデータを有するサブセットと、を含み、前記第1の読み出しの前記結果の前記シンドローム重みを計算するときに、前記サブセットのシンドローム重みは、他方の前記サブセットの前記第1の読み出し値のための読み出し電圧レベルを固定しつつ、前記サブセットごとに前記第1の読み出しの前記結果について計算される、請求項9に記載の装置。
【請求項11】
前記複数の第1の分布は、奇数パリティデータを有する分布のサブセット及び偶数パリティデータを有するサブセットであり、前記第1の読み出しの前記結果の前記シンドローム重みを計算するときに、両サブセットのシンドローム重みが同時に計算される、請求項9に記載の装置。
【請求項12】
前記装置は、前記制御回路に接続されたメモリコントローラを更に備え、エラー訂正コード関連技術を適用して、前記複数回の第2の読み出しのための前記読み出し電圧レベルを決定するために、前記制御回路は、
前記第1の読み出しの前記結果を前記メモリコントローラに転送し、
続いて、前記メモリコントローラから前記第1の読み出しの前記結果の前記シンドローム重みを受信するように構成されている、請求項9に記載の装置。
【請求項13】
前記制御回路は、前記第1の読み出しの前記結果の前記シンドローム重みを計算するように構成された1つ以上の制御回路を含む、請求項9に記載の装置。
【請求項14】
方法であって、
メモリデバイスによって、複数の不揮発性メモリセルを有するマルチレベルセル(MLC)メモリのページに記憶される、複数の論理ページのデータを受信することと、
前記メモリデバイスの回路によって、前記複数の論理ページのデータのパリティデータを計算することと、
MLCメモリの前記ページの前記メモリセルが複数の第1の分布にプログラムされるように、Foggyプログラム動作で、MLCメモリの前記ページに前記複数の論理ページのデータをプログラムすることと、
前記メモリセルが前記第1の分布にある間に、複数回の第1のFoggy読み出し動作でMLCメモリの前記ページを読み出すことと、
前記メモリデバイスの回路によって、前記第1の分布にある前記複数の不揮発性メモリセルの複数回の第2の読み出しのための読み出し電圧レベルを、前記第1のFoggy読み出し動作の結果から決定することと、
前記メモリセルが前記第1の分布にある間に、決定した前記読み出し電圧レベルを使用して、前記複数回の第2のFoggy読み出し動作でMLCメモリの前記ページを読み出すことと、
前記メモリダイの回路によって、前記第2のFoggy読み出し動作の結果及び前記パリティデータから前記複数の論理ページのデータを復元することと、を含む、方法。
【請求項15】
Fineプログラミング動作で、前記第1の分布から第2の分布にMLCメモリの前記ページを更にプログラムすることであって、前記第2の分布は、復元した前記複数の論理ページを表すことを更に含む、請求項14に記載の方法。
【請求項16】
前記第1のFoggy読み出し動作の結果から、前記複数回の第2の読み出しのための読み出し電圧レベルを決定することは、
前記複数回の第2の読み出しのための前記読み出し電圧レベルを、前記第2の分布にプログラムされたメモリセルの読み出しに使用される読み出し電圧レベルの中間値として決定することを含む、請求項15に記載の方法。
【請求項17】
前記第1のFoggy読み出し動作の結果から、前記複数回の第2の読み出しのための読み出し電圧レベルを決定することは、
前記第1の読み出し動作を実行して、前記第1の分布のうちの1つ以上について複数の閾値電圧範囲ビンのそれぞれに属するメモリセルの数を決定することと、
前記1つ以上の第1の分布のそれぞれについて、前記ビンに属する多数のメモリセルの数をカウントすることと、
カウントした前記数から複数回の第2の読み出しのための前記読み出し電圧レベルのうちの1つ以上を決定することと、を含む、請求項14に記載の方法。
【請求項18】
前記第1のFoggy読み出し動作の結果から、前記複数回の第2の読み出しのための読み出し電圧レベルを決定することは、
前記第1のFoggy読み出し動作の前記結果のシンドローム重みを計算することと、
計算した前記シンドローム重みから前記複数回の第2の読み出しのための前記読み出し電圧レベルを決定することと、を含む、請求項14に記載の方法。
【請求項19】
前記複数の第1の分布は、奇数パリティデータを有する分布のサブセットと、偶数パリティデータを有するサブセットと、を含み、前記第1のFoggy読み出し動作の前記結果のシンドローム重みを計算することは、他方の前記サブセットの前記第1の読み出し値のための読み出し電圧レベルを固定しつつ、前記サブセットごとに前記第1の読み出しの結果について計算することを含む、請求項18に記載の方法。
【請求項20】
不揮発性メモリデバイスであって、
複数ビットのデータを保持するようにそれぞれ構成された複数の不揮発性メモリセルと、
前記不揮発性メモリセルに接続された1つ以上の制御回路であって、前記1つ以上の制御回路は、
前記複数の不揮発性メモリセルに記憶されるデータのパリティ値を計算するための手段と、
第1の分布が著しい重複を有するように、Foggyプログラム動作で、前記複数の不揮発性メモリセルに記憶される前記データを前記第1の分布にプログラムするための手段と、
前記第1の分布にプログラムされた前記複数の不揮発性メモリセルを読み出すための電圧値を最適化するための手段と、
最適化した前記電圧値を使用して、前記第1の分布にある前記複数の不揮発性メモリセルを読み出すための手段と、
前記パリティ値と組み合わせて、前記第1の分布にある前記複数の不揮発性メモリセルの読み出しの結果から、前記複数の不揮発性メモリセルに記憶される前記データを復元するための手段と、
前記複数の不揮発性メモリセルを、前記第1の分布から前記第2の分布に更にプログラムして、復元した前記データを記憶するための手段と、を備える、1つ以上の制御回路と、を備える不揮発性メモリデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
(優先権の主張)
本出願は、参照によりその全体が本明細書に組み込まれる、2021年1月20日出願のAlrod et al.による「READ THRESHOLD CALIBRATION FOR NONVOLATILE MEMORY WITH ENCODED FOGGY-FINE PROGRAMMING」という名称の米国特許仮出願第63/139,399号の優先権を主張する。
【背景技術】
【0002】
本技術は、メモリデバイスの動作に関する。
【0003】
半導体メモリデバイスは、様々な電子デバイスにおいて利用が増加してきている。例えば、不揮発性半導体メモリは、携帯電話、デジタルカメラ、携帯情報端末、モバイルコンピューティングデバイス、非モバイルコンピューティングデバイス、及び他のデバイスにおいて使用される。
【0004】
かかるメモリデバイスでは、浮遊ゲート又は電荷トラップ材料など蓄電材料を使用して、データ状態を表す電荷を記憶することができる。電荷トラップ材料は、3次元(3D)積層メモリ構造で垂直に、又は2次元(2D)メモリ構造で水平に配置され得る。3Dメモリ構造の一例は、交互の導電層及び誘電体層のスタックを含む、Bit Cost Scalable(BiCS)アーキテクチャである。
【0005】
メモリデバイスは、例えば、NANDストリングの端部に選択ゲートトランジスタが設けられて、NANDストリングのチャネルをソース線又はビット線に選択的に接続するNANDストリングに直列に配置され得るメモリセルを含む。しかしながら、このようなメモリデバイスを動作させる際に、様々な課題が提起される。
【0006】
蓄電材料又は電荷トラップ材料を使用する一部のメモリ構造(例えば、NAND構造)では、メモリセルをプログラムすることにより、以前にプログラムしたメモリセルをディスターブすることがある(例えば、メモリセルに加えられる電荷が、近傍のメモリセルに影響を及ぼし得る)。かかるプログラムディスターブ効果を緩和するために、プログラミングは、2つ以上のプログラム動作で行われ、隣接するメモリセルが、プログラム動作間に(少なくとも部分的に)プログラムされてよい。このアプローチは、プログラムディスターブ効果を緩和し得るが、これを実施するためには、プログラム動作間で(例えば、データがNAND構造で完全にプログラムされる前に)データを維持するために多大なデータ記憶容量が必要になることがあり、多大なオーバーヘッド(例えば、複数のプログラム動作のための構成要素間での激しいデータ移動)が生じ得る。複数のプログラム動作でメモリセルを効率的にプログラムすることは困難であり得る。
【図面の簡単な説明】
【0007】
【
図1A】ホストに接続されたメモリシステムの一実施形態を示すブロック図である。
【0008】
【
図1B】フロントエンドプロセッサ回路の一実施形態のブロック図である。いくつかの実施形態では、フロントエンドプロセッサ回路は、コントローラの一部である。
【0009】
【
図1C】バックエンドプロセッサ回路の一実施形態のブロック図である。いくつかの実施形態では、バックエンドプロセッサ回路は、コントローラの一部である。
【0010】
【
図1D】メモリパッケージの一実施形態のブロック図である。
【0011】
【
図1E】メモリダイの一実施形態のブロック図である。
【0012】
【
図2A】ウェハ-ウェハ接合によりメモリ構造に結合された制御回路の例を示す。
【
図2B】ウェハ-ウェハ接合によりメモリ構造に結合された制御回路の例を示す。
【0013】
【0014】
【0015】
【
図4】メモリセルのブロックに電圧を供給するための回路の例を示す。
【0016】
【
図5】
図1E又は
図2Aのメモリ構造326の3D構成例において1組のブロックを含むメモリデバイス600の斜視図である。
【0017】
【
図6A】
図5のブロックのうちの1つの一部の断面図の例を示す。
【0018】
【
図6B】
図6Aのメモリホールの高さに沿った、その幅の変動の例を示す。
【0019】
【0020】
【
図7】プログラム動作におけるプログラミングパルスの例を示す。
【0021】
【
図8】データを記憶するために異なるデータ状態にプログラムされた複数のメモリセルのメモリセル閾値電圧の例を示す。
【0022】
【
図9】データを記憶するために異なるデータ状態にプログラムされた複数のメモリセルのメモリセル閾値電圧の別の例を示す。
【0023】
【
図10】Foggyプログラミング、続いてのFineプログラミングの例を示す。
【0024】
【
図11】NAND構造におけるワード線のFoggy-Fineプログラミング用スキームの例を示す。
【0025】
【
図12】デジタル値及びパリティビットへの閾値電圧分布のマッピングの例を示す。
【0026】
【
図13A】FoggyプログラムされたメモリセルのFoggy読み出しの例を示す。
【0027】
【
図13B】デジタル値及びパリティビットへの閾値電圧分布のマッピングの別の例を示す。
【0028】
【
図13C】Foggy読み出しスキームで復元値を取得するために使用される読み出しレベル、初期デジタル値、及びパリティビットの例を示す。
【0029】
【
図13D】Foggy読み出しスキームで復元値を取得するために使用される論理演算の例を示す。
【0030】
【
図13E】Foggy読み出しを実行する方法の例を示す。
【0031】
【
図14】オフチップ符号化を伴うFoggy-Fineプログラミングを用いたメモリデバイスの例を示す。
【0032】
【
図15A】オンチップ符号化を伴うFoggy-Fineプログラミングを用いたメモリデバイスの例を示す。
【0033】
【
図15B】Foggyプログラミング用パリティデータの生成(符号化)の例を示す。
【0034】
【
図15C】Foggy読み出しからの初期値をパリティデータと組み合わせて用いたデータの復元(複号化)の例を示す。
【0035】
【
図16】XORを用いたオンチップ符号化の例を示す。
【0036】
【
図17】パリティデータがオンチップでSLCメモリセルに記憶される、Foggy-Fineプログラミングの実装形態の例を示す。
【0037】
【
図18】パリティデータがECCによって訂正される、Foggy-Fineプログラミングの実装形態の例を示す。
【0038】
【
図19】パリティデータがオフチップでDRAMに記憶される、Foggy-Fineプログラミングの実装形態の例を示す。
【0039】
【
図20】Foggyプログラム動作でデータをプログラムすることと、Fineプログラム動作で更にプログラムすることと、を含む方法の例を示す。
【0040】
【
図21】Foggy状態分布間の谷部の決定に基づいた、Foggy分布のためのFoggy読み出し電圧レベルの決定を示す。
【0041】
【
図22】符号化されたFoggy-FineプログラミングプロセスのFoggyフェーズでプログラムする1組のメモリセルのためにBESプロセスを使用するための実施形態のフローチャートである。
【0042】
【
図23】
図13Aの要素を繰り返すが、Foggyフェーズの読み出しレベルを推定するための実施形態を示すために詳細が加えられている。
【0043】
【
図24】一方の組の分布(奇数又は偶数のいずれか)が他方の組の前に較正される、符号化されたFoggy-FineプロセスのFoggyフェーズでプログラムされたデータのための最良の推定スキャン動作の実施形態のフローチャートである。
【0044】
【
図25】Foggy分布の読み出しのための読み出し電圧レベルの較正を組み込む、符号化されたFoggy-Fine動作の実施形態のフローチャートである。
【発明を実施するための形態】
【0045】
不揮発性メモリセル、例えば、NAND又は他のマルチレベルセル(multi-level cell、MLC)メモリ構造の不揮発性メモリセルをプログラムするための装置及び技術について説明する。場合によっては、不揮発性メモリセルは、他の不揮発性メモリセル(例えば、隣接するワード線に沿った、近傍の不揮発性メモリセル)のプログラミングの影響を受ける。かかる効果に対処する1つの技術は、不揮発性メモリセルを2つ以上のプログラム動作、例えば、不揮発性メモリセルを近似の第1の分布のままにする、第1の「Foggy」プログラム動作、続いて、不揮発性メモリセルを、長期的な記憶に使用され得る、より正確な第2の分布(例えば、より狭い分布)にする第2の「Fine」プログラム動作でプログラムすることである。隣接する不揮発性メモリセルは、かかるFoggyプログラミングと、続いてのFineプログラミングとの間でプログラムされて(少なくともFoggyプログラムされて)よく、その結果、Fineプログラミングが生じたときに、隣接する不揮発性メモリセルに電荷が存在し、隣接する不揮発性メモリセルの任意の更なるプログラミングによる更なるディスターブは、ほとんど又は全く生じない(例えば、Fineプログラミングは、Fineプログラミングの影響が著しくないように、比較的わずかな追加電荷を追加してよい)。データがFoggyプログラムされ、Fineプログラムがまだ行われていない間は、データの安全なコピーが(例えば、DRAMに)維持されてよい。しかしながら、かかるデータを維持することは、DRAM又は他の記憶場所にかなりの領域を必要とすることがある。また、かかるデータへのアクセス(保存し、続いてそれを取り出すため)は、著しいリソースを使用し得る(例えば、メモリダイとDRAMとの間のバス上に著しいトラフィックをもたらし得る)。
【0046】
一例では、データは、(例えば、パリティデータを生成することによって)Foggyプログラムされる前に符号化されてよく、その結果、Foggyプログラムされた(第1の分布にある)メモリセルの読み出しが実行されると、その読み出し(Foggy読み出し)の結果が(例えば、パリティデータと組み合わされて)復号されて元のデータを復元してよい。場合によっては、データが符号化され、Foggyプログラムされたメモリセル及びパリティデータから復元可能である場合には、安全なコピーは不要である場合がある。オンチップ回路は、リソースが効率的に使用され、(例えば、メモリバスを介した)過剰なデータ転送が回避されるように、かかる符号化(例えば、XOR回路)及び復号を実行するために設けられてよい。パリティデータは、場合によっては、(例えば、シングルレベルセル(Single Level Cell、SLC)記憶装置用に構成されている不揮発性メモリ構造の一部に)オンチップで記憶されてよい。場合によっては、パリティデータは、データの復元に使用される前に、エラー訂正符号(Error Correction Code、ECC)回路によって訂正(復号)されてよい。パリティデータはまた、オフチップで(例えば、DRAMに)記憶されてよい。
【0047】
不適切なシャットダウン又は極端な動作条件など一部の状況では、Foggyデータ状態から復元されるデータは、高いビット誤り率を有し、信頼できないことがある。Foggyデータのデータ値をより正確に復元するためには、Foggyデータの読み出しに使用される電圧レベルは適切に較正されると、より正確な結果がもたらされ得る。この目的のために、マルチステートの符号化されたFoggy-Fineプログラミング法に適合した読み出し閾値を最適化する技術を提示する。Foggy状態分布では隣接する状態間に著しい重複が存在するために、状態間の最小値を見出すことに基づいた、より標準的な読み出し閾値較正アルゴリズムを使用しても、Foggy状態の符号化されたFoggy-Fine分布について正確な結果を得られない。これは、分布の中心付近の読み出し値を使用するためである。代わりに、以下に提示する実施形態は、Foggyプログラムされたメモリセル分布の中心付近のFoggy読み出し電圧をより正確に決定する技術を提示する。
【0048】
図1Aは、ホスト120に接続されたメモリシステム100の一実施形態のブロック図である。メモリシステム100は、マルチレベルメモリのプログラミングのために本明細書に提示する技術を実施することができる。多くの異なる種類のメモリシステムが、本明細書で提案する技術で使用され得る。メモリシステムの例としては、ソリッドステートドライブ(「SSD」)、DRAMに代わるDual In-line Memory Module(DIMM)などメモリカード、及び埋め込みメモリデバイスが挙げられる。しかしながら、他の種類のメモリシステムも使用され得る。
【0049】
図1Aのメモリシステム100は、コントローラ102と、データを記憶するための不揮発性メモリ104と、ローカルメモリ(例えば、DRAM/ReRAM/MRAM)106とを備える。コントローラ102は、フロントエンドプロセッサ(Front End Processor、FEP)回路110と、1つ以上のバックエンドプロセッサ(Back End Processor、BEP)回路112とを備える。一実施形態では、FEP回路110は、特定用途向け集積回路(ASIC)に実装される。一実施形態では、各BEP回路112は、別個のASICに実装される。他の実施形態では、統合コントローラASICは、フロントエンド機能及びバックエンド機能の両方を兼ね備えることができる。BEP回路112及びFEP回路110のそれぞれのASICは、コントローラ102がSystem on a Chip(「SoC」)として製造されるように、同じ半導体に実装される。FEP回路110及びBEP回路112の両方は、自身のプロセッサを含む。一実施形態では、FEP回路110及びBEP回路112は、FEP回路110がマスタであり、各BEP回路112がスレーブである、マスタ-スレーブ構成として機能する。例えば、FEP回路110は、メモリ管理(例えば、ガベージコレクション、ウェアレベリングなど)、論理-物理アドレス変換、ホストとの通信、DRAM(ローカルの揮発性メモリ)の管理、及びSSD(又は他の不揮発性記憶システム)の動作全体の管理を行う、フラッシュ変換層(Flash Translation Layer、FTL)又はメディア管理層(Media Management Layer、MML)を実装する。BEP回路112は、FEP回路110の要求を受けて、メモリパッケージ/ダイ内のメモリ動作を管理する。例えば、BEP回路112は、読み出し、消去、及びプログラミングプロセスを実行することができる。加えて、BEP回路112は、バッファ管理、FEP回路110が要求する特定の電圧レベルの設定、エラー訂正(ECC)、メモリパッケージへのトグルモードインターフェースの制御などを行うことができる。一実施形態では、各BEP回路112は、自身のメモリパッケージの組に関与する。
【0050】
一実施形態では、不揮発性メモリ104は、複数のメモリパッケージを備える。各メモリパッケージは、1つ以上のメモリダイを含む。したがって、コントローラ102は、1つ以上の不揮発性メモリダイに接続される。一実施形態では、メモリパッケージ104内の各メモリダイは、NANDフラッシュメモリ(2次元NANDフラッシュメモリ及び/又は3次元NANDフラッシュメモリなど)を用いる。他の実施形態では、メモリパッケージは、抵抗変化型メモリ(ReRAM、MRAM、FeRAM又はRRAMなど)に基づいたストレージクラスメモリ(storage class memory、SCM)又は相変化メモリ(phase change memory、PCM)など他の種類のメモリを含み得る。他の実施形態では、BEP又はFEPは、メモリダイ上に含まれ得る。
【0051】
コントローラ102は、例えば、NVM Express(NVMe)などプロトコルを実装するインターフェース130若しくはPCI Express(PCIe)を介したCompute Express Link(CXL)を介して、又はDDR5若しくはLPDDR5などJEDEC規格のダブルデータレート(Double Data Rate、DDR)インターフェース若しくは低電力ダブルデータレート(Low-Power Double Data Rate、LPDDR)インターフェースを使用して、ホスト120と通信する。メモリシステム100を用いて動作するために、ホスト120は、ホストプロセッサ122と、ホストメモリ124と、バス128に沿って接続されたPCIeインターフェース126とを含む。ホストメモリ124は、ホストの物理メモリであり、DRAM、SRAM、MRAM、不揮発性メモリ、又は別の種類の記憶装置であり得る。ホスト120は、メモリシステム100の外部にあり、分離している。一実施形態では、記憶システム100は、ホスト120に埋め込まれている。
【0052】
図1Bは、FEP回路110の一実施形態のブロック図である。
図1Bは、ホスト120と通信するためのPCIeインターフェース150及びそのPCIeインターフェースと通信しているホストプロセッサ152を示す。ホストプロセッサ152は、実装するのに好適な、当該技術分野において既知の任意の種類のプロセッサであり得る。ホストプロセッサ152は、ネットワークオンチップ(network-on-chip、NOC)154と通信している。NOCは、典型的にはSoC内のコア間の集積回路上の通信サブシステムである。NOCは、同期及び非同期クロックドメインにまたがるか、又はロックされていない非同期論理を使用することができる。NOC技術は、ネットワーキング理論及び方法をオンチップ通信に適用し、従来のバス及びクロスバー相互接続に顕著な改善をもたらす。NOCは、他の設計と比較して、SoCの拡張性、及び複雑なSoCの電力効率を向上させる。NOCのワイヤ及びリンクは、多くの信号によって共有される。NOC内の全てのリンクが異なるデータパケット上で同時に動作することができるため、高レベルの並列性が達成される。したがって、統合サブシステムの複雑性が増大し続けると、NOCは、以前の通信アーキテクチャ(例えば、専用のポイントツーポイント信号ワイヤ、共有バス、又はブリッジを有するセグメント化バス)と比較して、向上した性能(スループットなど)及び拡張性をもたらす。NOC154に接続されて、通信しているのは、メモリプロセッサ156、SRAM160及びDRAMコントローラ162である。DRAMコントローラ162は、DRAM(例えば、DRAM106)を動作させ、これと通信するために使用される。SRAM160は、メモリプロセッサ156によって使用されるローカルRAMメモリである。メモリプロセッサ156は、FEP回路を実行し、様々なメモリ動作を実行するために使用される。また、NOCと通信しているのは、2つのPCIeインターフェース164及び166である。
図1Bの実施形態では、SSDコントローラは2つのBEP回路112を含む。したがって、2つのPCIeインターフェース164/166が存在する。各PCIeインターフェースは、BEP回路112のうちの1つと通信する。他の実施形態では、3つ以上又は1つ以下のBEP回路112が存在し得る。したがって、3つ以上のPCIeインターフェースが存在し得る。
【0053】
FEP回路110はまた、メモリ管理(例えば、ガベージコレクション、ウェアレベリング、ロードバランシングなど)、論理-物理アドレス変換、ホストとの通信、DRAM(ローカルの揮発性メモリ)の管理、及びSSD又は他の不揮発性記憶システムの動作全体の管理を行う、フラッシュ変換層(FTL)又は、より一般的に、メディア管理層(MML)158を含み得る。メモリエラー及びホストとのインターフェースを処理し得るメモリ管理の一部として、メディア管理層(MML)158が統合されてよい。具体的には、MMLはFEP回路110内のモジュールであってよく、メモリの内部管理に関与してよい。具体的には、MML158は、ホストからの書き込みをダイのメモリ構造(例えば、以下の
図1E及び
図2Aの326)への書き込みに変換するメモリデバイスファームウェア内のアルゴリズムを含んでよい。MML158は、1)メモリの耐久性が限られている場合があること、2)メモリ構造がページの倍数単位でのみ書き込むことができること、及び/又は3)メモリ構造はブロックとして消去されない限り書き込むことができないことを理由に必要とされ得る。MML158は、ホストに可視でないことがある、メモリ構造のこれらの潜在的制約を理解する。したがって、MML158は、ホストからの書き込みをメモリ構造への書き込みに変換しようと試みる。
【0054】
図1Cは、BEP回路112の一実施形態のブロック図である。
図1Cは、FEP回路110と通信するためのPCIeインターフェース200を示す(例えば、
図1BのPCIeインターフェース164及び166のうちの1つと通信する)。PCIeインターフェース200は、2つのNOC202及び204と通信している。一実施形態では、2つのNOCは、1つの大型NOCに統合することができる。各NOC(202/204)は、SRAM(230/260)、バッファ(232/262)、プロセッサ(220/250)、並びにXORエンジン(224/254)及びECCエンジン(226/256)を介してデータ経路コントローラ(222/252)に接続される。ECCエンジン226/256は、当該技術分野において既知のように、エラー訂正を実行するために使用される。XORエンジン224/254は、データをXORするために使用され、その結果、データは統合され、プログラミングエラーがある場合に復元され得る方法で記憶され得る。データ経路コントローラ222は、4つのチャネルを介してメモリパッケージと通信するためのインターフェースモジュールに接続される。したがって、上のNOC202は、メモリパッケージと通信するための4つのチャネル用のインターフェース228に関係し、下のNOC204は、メモリパッケージと通信するための4つの追加チャネル用のインターフェース258に関係する。各インターフェース228/258は、4つのトグルモードインターフェース(TMインターフェース)と、4つのバッファと、4つのスケジューラとを含む。チャネルごとに、1つのスケジューラ、バッファ、及びTMインターフェースが存在する。プロセッサは、当該技術分野において既知の任意の標準的なプロセッサであり得る。データ経路コントローラ222/252は、プロセッサ、FPGA、マイクロプロセッサ、又は他の種類のコントローラであり得る。XORエンジン224/254及びECCエンジン226/256は、ハードウェアアクセラレータとして既知の専用ハードウェア回路である。他の実施形態では、XORエンジン224/254及びECCエンジン226/256は、ソフトウェアで実装され得る。スケジューラ、バッファ、及びTMインターフェースは、ハードウェア回路である。
【0055】
図1Dは、メモリバス(データ線及びチップイネーブル線)294に接続された複数のメモリダイ292を含むメモリパッケージ104の一実施形態のブロック図である。メモリバス294は、BEP回路112のTMインターフェース(例えば、
図1Cを参照)と通信するためにトグルモードインターフェース296に接続する。いくつかの実施形態では、メモリパッケージは、メモリバス及びTMインターフェースに接続された小型コントローラを含み得る。メモリパッケージは、1つ以上のメモリダイを有し得る。一実施形態では、各メモリパッケージは、8個又は16個のメモリダイを含むが、他の数のメモリダイも実装され得る。別の実施形態では、トグルインターフェースは、その代わりに、緩やかな時間セット又はより小さいページサイズなどの変動がある、又は変動がない、JEDEC規格のDDR又はLPDDRである。本明細書に記載する技術は、任意の特定数のメモリダイに限定されない。
【0056】
図1Eは、メモリダイ300の一実施形態の機能ブロック図である。
図1Eに示す構成要素は、電気回路である。一実施形態では、各メモリダイ300は、メモリ構造326と、制御回路310と、読み出し/書き込み回路328とを含む。メモリ構造326は、行デコーダ324を介してワード線によりアドレス指定可能であり、列デコーダ332を介してビット線によりアドレス指定可能である。読み出し/書き込み回路328は、SB1、SB2、...、SBp(センス回路)など複数のセンスブロック350を含み、メモリセルのページが並列に読み出し又はプログラムされることを可能にする。コマンド及びデータは、線318を介してコントローラとメモリダイ300との間で転送される。一実施形態では、メモリダイ300は、線318に接続する、1組の入力及び/又は出力(I/O)ピンを含む。
【0057】
制御回路310は、読み出し/書き込み回路328と協働して、メモリ構造326でメモリ動作(例えば、書き込み、読み出しなど)を実行し、ステートマシン312と、オンチップアドレスデコーダ314と、電力制御回路316とを含む。ステートマシン312は、メモリ動作のダイレベル制御を提供する。一実施形態では、ステートマシン312は、ソフトウェアによってプログラム可能である。他の実施形態では、ステートマシン312は、ソフトウェアを使用せず、完全にハードウェア(例えば電気回路)に実装される。別の実施形態では、ステートマシン312は、マイクロコントローラに置き換えられる。
【0058】
オンチップアドレスデコーダ314は、コントローラ102によって使用されるアドレスと、デコーダ324及び332によって使用されるハードウェアアドレスとのアドレスインターフェースを提供する。電力制御モジュール316は、メモリ動作中にワード線及びビット線に供給される電力及び電圧を制御する。電力制御モジュール316は、電圧を生成するための電荷ポンプを含んでよい。センスブロックは、ビット線ドライバを含む。
【0059】
本文書のために、語句「1つ以上の制御回路」は、不揮発性メモリを制御するために使用されるコントローラ、ステートマシン、マイクロコントローラ及び/若しくは制御回路310、又は他の類似の回路を含み得る。
【0060】
一実施形態では、メモリ構造326は、ウェハなど単一基板の上方に複数のメモリレベルが形成される不揮発性メモリセルの3次元メモリアレイを含む。メモリ構造は、シリコン(又は他の種類の)基板の上方に配置された活性領域を有するメモリセルのアレイの1つ以上の物理レベルに、モノリシックに形成される任意の種類の不揮発性メモリを含んでよい。一例では、不揮発性メモリセルは、例えば米国特許第9,721,662号に記載されているような電荷トラップ材料を有する垂直NANDストリングを含み、その全体が参照により本明細書に組み込まれる。
【0061】
別の実施形態では、メモリ構造326は、不揮発性メモリセルの2次元メモリアレイを備える。一例では、不揮発性メモリセルは、例えば米国特許第9,082,502号に記載されているような浮動ゲートを利用するNANDフラッシュメモリセルであり、その全体が参照により本明細書に組み込まれる。他の種類のメモリセル(例えば、NOR型フラッシュメモリ)も使用することができる。
【0062】
メモリ構造326に含まれるメモリアレイアーキテクチャ又はメモリセルの正確な種類は、上記の例に限定されない。多くの異なる種類のメモリアレイアーキテクチャ又はメモリ技術を使用して、メモリ構造326を形成することができる。本明細書で提案された新たに特許請求される実施形態の目的には、特定の不揮発性メモリ技術は必要とされない。メモリ構造326のメモリセルに好適な技術の他の例として、ReRAMメモリ(抵抗変化型メモリ)、磁気抵抗メモリ(例えば、MRAM、スピントランスファートルクMRAM、スピン軌道トルクMRAM)、FeRAM、相変化メモリ(例えばPCM)などが挙げられる。メモリ構造326のメモリセルアーキテクチャに適した技術の例として、2次元アレイ、3次元アレイ、クロスポイントアレイ、積層型2次元アレイ、垂直ビット線アレイなどが挙げられる。
【0063】
ReRAMクロスポイントメモリの一例として、X線及びY線(例えば、ワード線及びビット線)によってアクセスされるクロスポイントアレイに配置された可逆抵抗スイッチング素子が挙げられる。別の実施形態では、メモリセルは、導電性ブリッジメモリ素子を含み得る。導電性ブリッジメモリ素子はまた、プログラム可能なメタライゼーションセルと呼ばれ得る。導電性ブリッジメモリ素子は、固体電解質内のイオンの物理的再配置に基づく状態変化素子として使用され得る。場合によっては、導電性ブリッジメモリ素子は、2つの電極間に固体電解質薄膜を有する、2つの固体金属電極を含んでもよく、一方は、比較的不活性であり(例えば、タングステン)、他方は、他の電気化学的に活性である(例えば、銀又は銅)。温度が上昇すると、イオンの移動度も増加し、導電性ブリッジメモリセルのプログラミング閾値が低下する。したがって、導電性ブリッジメモリ素子は、温度に対して広範囲のプログラミング閾値を有し得る。
【0064】
磁気抵抗メモリ(Magnetoresistive Random Access Memory、MRAM)は、磁気記憶素子によってデータを記憶する。これらの素子は、層としても既知である2つの強磁性薄膜から形成され、各層は強磁性であり、薄い絶縁層によって分離されている。2層のうちの1つは、特定の極性に設定された永久磁石であり、他方の層の磁化は、外場の磁化と一致するように変更されて、メモリを記憶することができる。メモリデバイスは、このようなメモリセルのグリッドから構築される。プログラミングのための一実施形態では、各メモリセルは、互いに直角に、セルに平行に、セルの1つ上及び1つ下に配置された一対の書き込み線の間にある。電流がそれらを通過すると、誘導磁場が生成される。
【0065】
位相変化メモリ(Phase change memory、PCM)は、カルコゲナイドガラス特有の挙動を利用する。一実施形態は、単にレーザパルス(又は別の光源からの光パルス)でゲルマニウム原子の調整状態を変化させることによって、非熱位相変化を達成するために、GeTe-Sb2Te3超格子を使用する。したがって、プログラミングの線量はレーザーパルスである。メモリセルは、メモリセルが光を受信することをブロックすることによって抑制され得る。他のPCM実施形態では、メモリセルは、電流パルスによってプログラムされる。本書で「パルス」使用を使用する場合、方形波である必要はないが、(連続的又は非連続的な)音の振動若しくはバースト、電流、電圧光、又はその他の波が含まれる。
【0066】
当業者であれば、本明細書に記載するこの技術は単一の特定のメモリ構造、メモリ構成又は材料組成に限定されず、本明細書に記載し、当業者によって理解されるように、技術の趣旨及び範囲内で、多くの関連するメモリ構造を対象とすることを、理解するであろう。
【0067】
図1Eの素子は、2つの部分、つまりメモリセルのメモリ構造326、及び他の素子の全てを含む周辺回路に分類され得る。メモリ回路の重要な特性はその容量であり、メモリ構造326に託されるメモリダイ300の面積を増加させることによって増大させることができるが、これにより、周辺回路で利用可能なメモリダイ300の面積が減少する。これは、これらの周辺素子に非常に厳しい制限を課すことになり得る。例えば、センス増幅器回路を利用可能な面積内に適合させる必要があることは、センス増幅器の設計アーキテクチャに対する著しい制限になり得る。オンダイ制御回路310に関しては、利用可能な面積が低減することは、チップ上に実装可能である利用可能な機能性を制限し得る。その結果、メモリダイ300の設計における基本的なトレードオフは、メモリ構造326に充てられる面積と、周辺回路に充てられる面積とである。
【0068】
メモリ構造326及び周辺回路が一致しないことが多い別の領域は、これらの領域の形成に伴う処理中である。これは、これらの領域が、多くの場合、異なる処理技術を含み、単一ダイ上で異なる技術を有することのトレードオフを伴うためである。例えば、メモリ構造326がNANDフラッシュである場合、これはNMOS構造であるが、周辺回路は、CMOSベースであることが多い。例えば、センスブロック350内のセンス増幅器回路、電力制御ブロック316内の電荷ポンプ、ステートマシン312内の論理素子及び他の周辺回路は、PMOSデバイスを使用することが多い。CMOSダイを製造するための処理動作は、NMOSフラッシュNANDメモリに向けて最適化された処理動作又は他のメモリセル技術とは多くの点で異なるであろう。
【0069】
これらの制限を改善するために、以下に記載する実施形態は、別個に形成された(次いで、まとめて接合される)ダイ上に
図1Eの素子を分離することができる。より具体的には、メモリ構造326は、1つのダイ上に形成され得、1つ以上の制御回路など周辺回路素子の一部又は全ては、別個のダイ上に形成され得る。例えば、メモリダイは、フラッシュNANDメモリ、PCMメモリ、ReRAMメモリ、又は他のメモリタイプのメモリセルのアレイなどメモリ素子のみから形成され得る。次いで、デコーダ及びセンス増幅器など素子も含む周辺回路の一部又は全てが、別個のダイ上に移動され得る。これにより、メモリダイのそれぞれは、その技術に従って個別に最適化されることが可能になる。例えば、NANDメモリダイは、CMOS処理用に最適化され得る、別個の周辺回路ダイ上に移動済みのCMOS素子を気にせずに、NMOSベースのメモリアレイ構造用に最適化され得る。これにより、周辺素子がより多くの空間を利用でき、メモリセルアレイを保持する同一ダイの余白部に制限されていた場合には容易に組み込むことができなかった追加機能を組み込むことができるようになった。次いで、2つのダイは、接合されたマルチダイメモリ回路内で合わせて接合され得、一方のダイ上のアレイは、他のメモリ回路上の周辺素子に接続される。以下では、1つのメモリダイ及び1つの周辺回路ダイの接合されたメモリ回路に着目しているが、他の実施形態は、例えば、2つのメモリダイ及び1つの周辺回路ダイなどより多くのダイを使用することができる。
【0070】
図2A及び
図2Bは、
図1Eの単一ダイメモリデバイスの構成に対する代替的な構成を示し、これは、ウェハ-ウェハ接合を使用して実装されて、接合されたダイペア394をメモリデバイスに提供することができる。
図2Aは、メモリダイ390内に形成されたメモリ構造326に結合された周辺回路又は制御ダイ398に形成された、制御回路を含む周辺回路の例を示す。共通の構成要素は、
図1Eに示すように番号を付ける。制御回路310、読み出し/書き込み回路328、及び行デコーダ324(CMOSプロセスによって形成され得る)は、制御ダイ398内に位置する。コントローラ102からの機能など追加素子も、制御ダイ398へと移動され得る。制御回路310、読み出し/書き込み回路328、行デコーダ324、及び列デコーダ332は、共通プロセス(例えば、CMOSプロセス)によって形成されてよく、それにより、メモリコントローラ102でより典型的に見られる素子及び機能の追加には、追加のプロセス工程をほとんど又は全く要さなくてよい(すなわち、コントローラ102の製造に使用される同一のプロセス工程が、制御回路310、読み出し/書き込み回路328、及び行デコーダ324の製造に使用されてよい)。したがって、かかる回路をメモリダイ300などダイから移動させると、かかるダイの製造に必要な工程数を低減することができ、制御ダイ398などダイに対するかかる回路の追加には、追加のプロセス工程を全く必要としない場合がある。
【0071】
図2Aは、電気経路392を介してメモリダイ390上のメモリ構造326に結合された制御ダイ398上の読み出し/書き込み回路328を示す。例えば、電気経路392は、読み出し/書き込み回路328とメモリ構造326のビット線との間の電気的接続を提供してよい。電気経路は、メモリ構造326のビット線に接続されたメモリダイ390の対応するパッドに接合された制御ダイ398上のパッドを介して制御ダイ398内の読み出し/書き込み回路328から延在し得る。メモリ構造326の各ビット線は、読み出し/書き込み回路328に接続する、一対の接合されたパッドを含む電気経路392内の対応する電気経路を有してよい。同様に、行デコーダ回路324は、電気経路393を介してメモリ構造326に結合される。電気経路393のそれぞれは、ワード線、ダミーワード線、又は選択ゲート線に対応してよい。更に、制御ダイ398とメモリダイ390との間には、追加の電気経路が設けられてよい。
【0072】
図2Bは、接合されたダイペア394の統合メモリアセンブリの一実施形態の構成に関するより詳細を示すブロック図である。メモリダイ390は、メモリセルの平面399、又はアレイを含む。メモリダイ390は、追加の平面又はアレイを有してよい。1つの代表的なビット線(BL)及び代表的なワード線(WL)を、各平面又はアレイ399について示す。平面又はアレイ399ごとに数千又は数万のかかるビット線が存在し得る。一実施形態では、アレイ又は平面は、切れ目のないワード線及び切れ目のないビット線の共通の組を共有する、接続されたメモリセルの群を表す。
【0073】
制御ダイ398は、多数のセンス増幅器(SA)350を含む。各センス増幅器350は、1つのビット線に接続されるか、又はいくつかの実施形態では、複数のビット線に接続されてよい。センス増幅器は、ビット線ドライバを含む。このため、センス増幅器は、それが接続されるビット線に電圧を提供し得る。センス増幅器は、ビット線の状態を感知するように構成されている。一実施形態では、センス増幅器は、ビット線に流れる電流を感知するように構成されている。一実施形態では、センス増幅器は、ビット線上の電圧を感知するように構成されている。
【0074】
制御ダイ398は、多数のワード線ドライバ360(1)~360(n)を含む。ワード線ドライバ360は、ワード線に電圧を提供するように構成されている。この例では、アレイ又は平面メモリセル当たり「n」本のワード線が存在する。メモリ動作がプログラム又は読み出しである場合、一実施形態では、選択されたブロック内の1つのワード線がメモリ動作のために選択される。メモリ動作が消去である場合、一実施形態では、選択されたブロック内のワード線の全てが消去のために選択される。ワード線ドライバ360(例えば、電力制御部316の一部)は、メモリダイ390内のワード線に電圧を供給する。
図2Aに関して上述したように、制御ダイ398はまた、ワード線ドライバ360及び/又はビット線ドライバに電圧を供給するために使用され得る電荷ポンプ、電圧発生器など(
図2Bには示さない)を含み得る。
【0075】
メモリダイ390は、メモリダイ390の第1の主面382上に、多数のボンドパッド370a、370bを有する。対応する「n」個のワード線ドライバ360(1)~360(n)から電圧を受け取るために、「n」個のボンドパッド370(a)が存在してよい。平面399に関係するビット線ごとに1つのボンドパッド370bが存在してよい。参照番号370は、一般に、主面382上のボンドパッドに言及するために使用される。
【0076】
いくつかの実施形態では、コードワードの各データビット及び各パリティビットは、異なるボンドパッドペア370b、374bを介して転送される。コードワードのビットは、ボンドパッドペア370b、374bを介して並列転送されてよい。これは、例えば、メモリコントローラ102と統合メモリアセンブリ394との間でのデータ転送と比較して、非常に効率的なデータ転送をもたらす。例えば、メモリコントローラ102と統合メモリアセンブリ394との間のデータバスは、例えば、8ビット、16ビット、又は恐らく32ビットの並列転送をもたらしてよい。しかしながら、メモリコントローラ102と統合メモリアセンブリ394との間のデータバスは、これらの例に限定されない。
【0077】
制御ダイ398は、制御ダイ398の第1の主面384に、多数のボンドパッド374a、374bを有する。対応する「n」個のワード線ドライバ360(1)~360(n)からメモリダイ390に電圧を送達するために、「n」個のボンドパッド374aが存在してよい。平面399に関係するビット線ごとに1個のボンドパッド374bが存在してよい。参照番号374は、一般に、主面382上のボンドパッドに言及するために使用される。ボンドパッドペア370a/374a及びボンドパッドペア370b/374bが存在し得ることに留意されたい。いくつかの実施形態では、ボンドパッド370及び/又は374は、フリップチップボンドパッドである。
【0078】
一実施形態では、ボンドパッド370のパターンは、ボンドパッド374のパターンと一致する。ボンドパッド370は、ボンドパッド374に接合される(例えば、フリップチップ接合される)。このため、ボンドパッド370、374は、メモリダイ390を制御ダイ398に電気的かつ物理的に結合する。
【0079】
また、ボンドパッド370、374は、メモリダイ390と制御ダイ398との間の内部信号転送を可能にする。したがって、メモリダイ390及び制御ダイ398は、合わせてボンドパッドと接合される。
図2Aは、1つのメモリダイ390に接合された1つの制御ダイ398を示すが、別の実施形態では、1つの制御ダイ398は、複数のメモリダイ390に接合される。
【0080】
本明細書では、「内部信号転送」は、制御ダイ398とメモリダイ390との間の信号転送を意味する。内部信号転送は、制御ダイ398上の回路がメモリダイ390内のメモリ動作を制御することを可能にする。したがって、ボンドパッド370、374は、メモリ動作信号転送のために使用されてよい。本明細書では、「メモリ動作信号転送」は、メモリダイ390内のメモリ動作に関係する任意の信号を指す。メモリ動作信号転送は、電圧を提供すること、電流を提供すること、電圧を受け取ること、電流を受け取ること、電圧を感知すること、及び/又は電流を感知することを含み得るが、これらに限定されない。
【0081】
ボンドパッド370、374は、例えば、銅、アルミニウム、及びこれらの合金から形成されてよい。ボンドパッド370、374と主面(382、384)との間にライナーが存在してよい。ライナーは、例えば、チタン/窒化チタンスタックで形成されてもよい。ボンドパッド370、374及びライナーは、蒸着及び/又はめっき技術によって適用されてよい。ボンドパッド及びライナーは共に720nmの厚さを有してもよいが、更なる実施形態では、この厚さはより大きくても小さくてもよい。
【0082】
金属相互接続及び/又はビアは、ダイ内の様々な素子をボンドパッド370、374に電気的に接続するために使用されてよい。金属相互接続及び/又はビアによって実装され得るいくつかの導電経路が示されている。例えば、センス増幅器350は、経路364によってボンドパッド374bに電気的に接続されてよい。
図2Aに関して、電気経路392は、経路364、ボンドパッド374b、及びボンドパッド370bに対応し得る。数千のそのようなセンス増幅器、経路、及びボンドパッドが存在し得る。BLは、必ずしもボンドパッド370bに直接接続しないことに留意されたい。ワード線ドライバ360は、経路362によってボンドパッド374aに電気的に接続されてよい。
図2Aに関して、電気経路393は、経路362、ボンドパッド374a、及びボンドパッド370aに対応し得る。経路362は、ワード線ドライバ360(1)~360(n)ごとに別個の導電経路を備えてよいことに留意されたい。同様に、ワード線ドライバ360(1)~360(n)ごとに別個のボンドパッド374aが存在してよい。メモリダイ390のブロック2内のワード線は、経路364によってボンドパッド370aに電気的に接続されてよい。
図2Bでは、ブロック内の対応する「n」本のワード線に対して「n」個の経路364が存在する。経路364ごとに、ボンドパッド370a、374aの別個のペアが存在してよい。
【0083】
図1Eと比較して、
図2Aのオンダイ制御回路はまた、その論理素子内に、メモリコントローラ102で典型的に見られるよりも一般的な機能及び一部のCPU機能の両方である追加機能を含むが、エラー訂正符号(ECC)など特定用途の機能も含み得る。
【0084】
以下では、
図2Aの制御ダイ398に示した他の回路の全て又は一部と組み合せたステートマシン312及び/又はコントローラ102(又は同等に機能する回路)並びに
図1Eの類似の素子は、本明細書に記載する機能を実施する1つ以上の制御回路の一部であると見なすことができる。制御回路は、ハードウェアのみ、又はハードウェアとソフトウェア(ファームウェアを含む)との組み合せを含むことができる。例えば、本明細書に記載する機能を実施するためにファームウェアによってプログラムされたコントローラは、制御回路の一例である。制御回路は、プロセッサ、FGA、ASIC、集積回路、又は他の種類の回路を含み得る。
【0085】
以下の説明では、
図1E及び
図2Aのメモリ構造326を、主として3次元NANDフラッシュメモリの文脈で説明するが、説明の大半は、より一般的に適用され得る。3次元NANDフラッシュメモリの一般的な実装形態であるマルチレベルセル(MLC)のFoggy-Fineプログラミング向けの技術を提示しているが、マルチステートメモリ値のプログラミングでは、他のメモリ技術にも適用され得る。
【0086】
図3Aは、
図1E又は
図2Aのセンスブロック350の一実施形態を示すブロック図である。個別のセンスブロック350は、センス回路480~483又はセンス増幅器と呼ばれる1つ以上のコア部分と、管理回路490と呼ばれる共通部分とに区画化される。一実施形態では、ビット線/NANDストリングごとに別個のセンス回路、及び1組の複数(例えば、4個又は8個)のセンス回路用の1つの共通の管理回路490が存在する。グループ内の各センス回路は、データバス472を介して関連する管理回路と通信する。したがって、1組の記憶素子のセンス回路と通信する1つ以上の管理回路が存在する。
【0087】
センス回路480は、一例として、接続されたビット線内の伝導電流が所定の閾値レベルを上回るか又は下回るかどうかを判定することによって感知を実施するセンス回路470を備える。センス回路480はまた、接続されたビット線で電圧状態を設定するために使用されるビット線ラッチ484を含む。例えば、ビット線ラッチでラッチされた所定の状態により、接続されたビット線が、プログラム禁止を指定する状態(例えば、1.5~3V)となる。一例として、フラグ=0はプログラミングを禁止することができ、フラグ=1はプログラミングを禁止しない。
【0088】
管理回路490は、プロセッサ492と、4組のデータラッチの例494~497と、データラッチの組494とデータバス120との間に結合されたI/Oインターフェース498とを備える。1組のデータラッチ、例えば、T、C、B、Aは、センス回路ごとに設けられ得る。場合によっては、追加のデータラッチが使用されてもよい。ラッチT、C、B、Aの各組は、1組の不揮発性メモリセルにまとめてプログラムするために異なる論理ページのデータに対応し得る。これは、16レベル、つまり記憶素子メモリデバイス当たり4ビットである。ビット線当たり1つの追加データラッチは、記憶素子当たりの追加データビットごとに設けられ得る。
【0089】
プロセッサ492は、感知されたメモリセルに記憶されたデータを判定し、データラッチの組内に判定されたデータを記憶するなど計算を実施する。データラッチの各組494~497は、読み出し動作中にプロセッサ492によって判定されたデータビットを記憶し、メモリにプログラムされることを意味するデータの書き込みを表すプログラム動作中にデータバス120からインポートされたデータビットを記憶するために使用される。I/Oインターフェース498は、データラッチ494~497とデータバス120との間のインターフェースを提供する。
【0090】
読み出し及び検証中、システムの動作は、アドレス指定された記憶素子への異なる制御ゲート電圧の供給を制御するステートマシン112の制御下にある。メモリによってサポートされる様々なメモリ状態に対応する様々な所定の制御ゲート電圧を一通り実行すると、センス回路480はこれらの電圧のうちの1つでトリップしてよく、対応する出力が、データバス472を介してプロセッサ492にセンス回路480から提供されることになる。その時点で、プロセッサ492は、センス回路のトリップイベント及び入力線493を介してステートマシンから印加された制御ゲート電圧に関する情報を考慮することによって、結果として得られるメモリ状態を判定する。次いで、メモリ状態のバイナリ符号化を計算し、結果として得られるデータビットをデータラッチ494~497に記憶する。管理回路490の別の実施形態では、ビット線ラッチは2役をこなす。つまり、センス回路480の出力をラッチするためのラッチ、また上記のようにビット線ラッチの両方として機能する。
【0091】
いくつかの実装形態は、複数のプロセッサ492を含み得る。一実施形態では、各プロセッサ492は、出力線のそれぞれが有線ORであるように、出力線(図示せず)を含む。いくつかの実施形態では、出力線は、有線OR線に接続される前に反転される。この構成により、有線ORを受信するステートマシンは、プログラムされている全てのビットが所望のレベルに到達したことを判定することができるため、プログラミングプロセスが完了したときのプログラム検証プロセス中に迅速に判定できる。例えば、各ビットがその所望のレベルに到達したとき、そのビットの論理ゼロは、有線OR線(又は、データ1が反転)に送信される。全てのビットがデータ0(又は、データ1が反転)を出力すると、ステートマシンはプログラミングプロセスを終了することを知る。各プロセッサは8つのセンス回路と通信するため、ステートマシンは有線OR線を8回読み出す必要があり、又は、論理は、関連するビット線の結果を蓄積するためにプロセッサ492に追加されて、ステートマシンが有線OR線を一度に読み出す必要がある。同様に、論理レベルを正しく選択することによって、グローバルステートマシンは、第1のビットがその状態を変更し、それに応答してアルゴリズムを変更するときを検出することができる。
【0092】
プログラム動作中又はメモリセルの検証動作中に、プログラムされるデータ(書き込みデータ)が、データバス120からデータラッチの組494~497に記憶される。記憶素子当たり4ビットの実装形態(Quad-LevelCell、つまりQLC)では、4つのデータラッチ(T、C、B、A)が使用されてよい。プログラム動作は、ステートマシンの制御下で、アドレス指定されたメモリセルの制御ゲートに印加される一連のプログラミング電圧パルスを含む。各プログラム電圧の後に、メモリセルが所望のメモリ状態にプログラムされているかどうかを判定するための読み戻し(検証)が続く。場合によっては、プロセッサ492は、所望のメモリ状態に対して読み戻しメモリ状態を監視する。2つが一致しているとき、プロセッサ492は、ビット線をプログラム禁止状態にさせるように、ビット線ラッチを設定する。これにより、プログラムパルスがその制御ゲートで生じても、ビット線に結合された記憶素子の更なるプログラミングが禁止される。他の実施形態では、プロセッサは、最初にビット線ラッチをロードし、センス回路は、検証プロセス中に、ビット線ラッチを禁止値に設定する。
【0093】
データラッチの各組494~497は、各センス回路のデータラッチのスタックとして実装されてよい。一実施形態では、センス回路480当たり4つ以上のデータラッチが存在する。いくつかの実装形態では、データラッチはシフトレジスタとして実装されているため、そこに記憶されたパラレルデータはデータバス420のシリアルデータに変換され、逆もまた同様である。記憶素子の読み出し/書き込みブロックに対応する全てのデータラッチをリンクして、データのブロックがシリアル転送によって入力又は出力され得るように、ブロックシフトレジスタを形成することができる。具体的には、読み出し/書き込み回路のバンクは、データラッチの組の各々が、読み出し/書き込みブロック全体のシフトレジスタの一部であるかのように、データバスの中又は外のデータをシーケンス内でシフトさせるように適合される。
【0094】
データラッチは、関連する記憶素子がプログラム動作において特定のマイルポストに到達したときを識別する。例えば、ラッチは、V番目の記憶素子が特定の検証レベルを下回ることを識別し得る。データラッチは、記憶素子が現在データページから1つ以上のビットを記憶しているかどうかを示す。
【0095】
図3Bは、センスブロック350のブロック図の別の例を示す。列制御回路は、複数のセンスブロックを含み得、各センスブロックは、それぞれのビット線を介して複数のメモリセルに対する感知動作(例えば、読み出し)、プログラム検証動作、又は消去動作を実行する。1つのアプローチでは、センスブロックは、センス増幅器とも呼ばれる、複数のセンス回路を備える。各センス回路は、データラッチ及びキャッシュに関係する。例えば、センス回路の例450a、451a、452a及び453aは、それぞれキャッシュ450c、451c、452c及び453cに関係する。
【0096】
1つのアプローチでは、ビット線の異なるサブセットは、異なるそれぞれのセンスブロックを使用して感知され得る。これにより、センス回路に関係する処理負荷を分割し、各センスブロック内のそれぞれのプロセッサによって処理することが可能になる。例えば、センス回路コントローラ460は、センス回路及びラッチの組、例えば16のセンス回路及びラッチと通信することができる。センス回路コントローラは、プリチャージ電圧を設定するために各センス回路に電圧を供給する、プリチャージ回路461を含んでよい。センス回路コントローラはまた、メモリ462と、プロセッサ463とを含んでよい。
【0097】
図4は、メモリセルのブロックに電圧を供給するための回路の例を示す。この例では、行デコーダ501は、ブロック510の組内の各ブロックのワード線及び選択ゲートに電圧を供給する。ブロックは平面内にあってよく、ブロックBLK_0~BLK_7を含む。行デコーダは、ブロックを行デコーダに接続するパストランジスタ522に制御信号を提供する。典型的には、プログラム動作又は読み出し動作は、1つの選択されたブロックで一度に、及びブロックの1つの選択されたサブブロックで実行される。消去動作は、選択されたブロック又はサブブロックで実行され得る。行デコーダ及びパスゲートは、グローバル制御線502をローカル制御線503に接続することができる。制御線は導電経路を表す。電圧は、電圧源520からパストランジスタ522へとグローバル制御線上で供給される。電圧源は、グローバル制御線に接続するスイッチ521に電圧を供給してよい。パストランジスタ524は、電圧源520からスイッチ521に電圧を渡すように制御される。
【0098】
電圧源520は、例えば、ワード線(WL)、SGS制御ゲート、及びSGD制御ゲート上で電圧を供給することができる。電圧源は、プログラム動作又は読み出し動作中に選択されたワード線上で電圧を供給する選択されたワード線(WL)ドライバ547と、選択されていないデータワード線のドライバ547aと、ダミーワード線上で電圧を供給するダミーワード線ドライバ547bと、を含み得る。
【0099】
電圧源はまた、共通のSGSドライバ545及びサブブロックごとの別個のSGDドライバを含み得る。例えば、SGDドライバ546、546a、546b及び546cは、それぞれSB0、SB1、SB2、SB3に提供され得る。別の選択肢では、別個のSGSドライバがサブブロックごとに提供される。
【0100】
行デコーダなど様々な構成要素は、ステートマシン112又はコントローラ122などコントローラからコマンドを受信して、本明細書に記載の機能を実行してよい。
【0101】
ソース線電圧源530は、制御線532を介して基板内のソース線/拡散領域に電圧Vslを供給する。1つのアプローチでは、ソース拡散領域533は、ブロックに共通である。ビット線の組542もまた、ブロックによって共有される。ビット線電圧源540は、ビット線に電圧を供給する。
【0102】
図5は、
図1E又は
図2Aのメモリ構造326の3D構成例において1組のブロックを含むメモリデバイス600の斜視図である。基板上には、メモリセル(記憶素子)のブロックBLK0、BLK1、BLK2、及びBLK3、並びにブロックによって使用される回路を有する周辺領域がある。周辺領域604は、各ブロックの縁部に沿って存在し、周辺領域605は、ブロックの組の端部にある。1つのアプローチでは、SGSトランジスタの電圧ドライバ用パストランジスタは、この周辺領域605内に位置してよい。この場合、ブロックBL0、BLK1、BLK2、及びBLK3は、パストランジスタから次第に離れる距離にある。回路は、制御ゲート層、ビット線、及びブロックのソース線に接続され得る電圧ドライバを含み得る。1つのアプローチでは、ブロック内で共通の高さである制御ゲート層が、一般に駆動される。基板601はまた、ブロック及び導電経路内でパターン化された1つ以上の下部金属層の下に回路を備えて、回路の信号を搬送することができる。ブロックは、メモリデバイスの中間領域602に形成される。メモリデバイスの上部領域603において、1つ以上の上部金属層は、導電路内でパターン化されて、回路の信号を搬送する。
【0103】
1つの可能なアプローチでは、ブロックは平面内にあり、x方向の平面の長さは、ワード線への信号経路が1つ以上の上部金属層に延在する方向(ワード線又はSGD線方向)を表し、また、y方向の平面の幅は、ビット線への信号経路が1つ以上の上部金属層内に延在する方向(ビット線方向)を表す。Z方向は、メモリデバイスの高さを表す。ブロックはまた、複数の平面内に配置されてもよい。
【0104】
図6Aは、
図5のブロックのうちの1つの一部の断面図の例を示す。ブロックは、交互の導電層及び誘電体層のスタック610を備える。この例では、導電層は、2つのSGD層、1つのSGS層、2つのソース側ダミーワード線層(又はワード線)WLS1及びWLS0、2つのドレイン側ダミーワード線層WLD1及びWLD0、並びに11のデータワード線層(又はデータワード線)WL0~WL10を備える。WL0はソース側データワード線であり、WLS1は、ソース側データワード線に隣接するダミーワード線層である。WLS0はWLS1に隣接する別のダミーワード線層である。WL10はドレイン側データワード線であり、WLD1は、ドレイン側データワード線に隣接するダミーワード線層である。WLD0はWLD1に隣接する別のダミーワード線層である。誘電体層をDL1~DL19とラベル付けする。更に、NANDストリングNS1及びNS2を含むスタックの領域が示されている。各NANDストリングは、ワード線に隣接するメモリセルを形成する材料で充填されたメモリホール618又は619を包含する。スタックの領域622を、
図6Cでより詳細に示す。
【0105】
スタックは、基板611を含む。1つのアプローチでは、ソース線SLの一部は、ブロック内の各メモリセルストリングのソース端と接触する、基板内のn型ソース拡散層611aを備える。消去動作では、この層に消去電圧が印加されてよい。1つの考えられる実装形態では、n型ソース拡散層611aは、p型ウェル領域611bに形成され、p型ウェル領域611bは、n型ウェル領域611cに形成され、n型ウェル領域611cは、p型半導体基板611dに形成される。1つのアプローチでは、n型ソース拡散層は、平面内の全ブロックに共有されてよい。
【0106】
NS1は、スタック616の底部616bにソース端613を有し、スタックの上部616aにドレイン端615を有する。金属充填スリット617及び620は、ソース線をスタックの上方の線に接続するためになど、スタックを通って延在する相互接続として、スタック全体に周期的に設けられてよい。スリットは、ワード線の形成中に使用され、続いて金属で充填されてもよい。ビット線BL0の一部分も示されている。導電ビア621は、ドレイン端615をBL0に接続する。
【0107】
1つのアプローチでは、メモリセルのブロックは、交互の制御ゲート及び誘電体層のスタックを含み、メモリセルは、スタック内の垂直に延在するメモリホール内に配置される。
【0108】
1つのアプローチでは、各ブロックは、SGS層、WL層、及びSGD層など各層に垂直相互接続が接続され、水平経路から電圧ドライバへと上向きに延在する。
【0109】
図6Bは、
図6Aのメモリホールの高さに沿った、その幅の変動の例を示す。メモリホールの形成に使用されるエッチングプロセス、及び非常に高いアスペクト比により、メモリホールの断面幅、例えば直径は、その高さに沿って変動し得る。典型的には、直径は、メモリホールの上部から底部にかけて次第に小さくなる。場合によっては、図示するように、メモリホールの上部でやや小さくなり、その結果、直径は、やや幅広になってから、メモリホールの上部から底部にかけて次第に小さくなる。
【0110】
図6Cは、
図6Aのスタックの領域622の拡大図を示す。メモリセルは、ワード線層とメモリホールとの交差部において、スタックの異なるレベルで形成される。この例では、SGDトランジスタ718及び717は、ダミーメモリセル716及び715、並びにデータメモリセル714の上方に設けられる。多数の層が、例えば、原子層堆積を用いて、メモリホール630の側壁(SW)に沿って、及び/又は各ワード線層内に堆積させられ得る。例えば、メモリホール内の材料によって形成される各ピラー699又は列は、遮断酸化物層663、電荷トラップ層664又は窒化ケイ素(Si3N4)若しくは他の窒化物など膜、トンネル層665、チャネル660(例えば、ポリシリコンを含む)、及び誘電体コア666を含み得る。ワード線層は、金属バリア661と、制御ゲートとしてタングステンなど導電性金属662とを含み得る。例えば、制御ゲート690~694が設けられる。この実施例では、金属を除く全ての層が、メモリホール内に提供される。他のアプローチでは、層の一部は、制御ゲート層内にあり得る。追加のピラーは、異なるメモリホール内に同様に形成される。ピラーは、NANDストリングの柱状活性領域(active area、AA)を形成することができる。
【0111】
各NANDストリングは、1つ以上のソース端選択ゲートトランジスタから1つ以上のドレイン端選択ゲートトランジスタまで連続的に延在するチャネルを備える。
【0112】
図7は、プログラム動作例において一連のプログラムループで使用される電圧信号を示す。水平軸は、1~22の範囲のプログラムループ(PL)番号を示し、垂直軸は電圧を示す。プログラム動作中、プログラムループは、各平面内の選択されたブロック内の選択されたワード線に対して実行される。プログラムループは、プログラム電圧又はパルスが選択されたワード線に印加されるプログラム部と、続いて、1つ以上の検証試験が関連するメモリセルに対して実行されている間に、選択されたワード線に検証信号が印加される検証部とを含む。消去状態以外の割り当てられた各状態は、プログラム動作中の状態についての検証試験に使用される検証電圧を有する。
【0113】
電圧信号700は、プログラミング用に選択されたワード線に印加される初期プログラム電圧701など一連のプログラム電圧を含む。この例では、電圧信号はプログラム電圧を含み、この電圧は、プログラミングパスの1つ以上のプログラムループにおいて、一定又は異なるステップサイズを使用して段階的に振幅が増加する。これは、段階的パルスプログラミングと呼ばれ、プログラム電圧は初期レベルVpgm_int(初期プログラム電圧701を参照)から始まり、例えば、プログラム動作が完了するまで、連続する各プログラムループにおいて段階的に増加する。選択されたメモリセルの閾値電圧が割り当てられたデータ状態の検証電圧に到達すると、正常に完了する。
【0114】
プログラム動作は、単一のプログラミングパス又は複数のプログラミングパスを含み得、各パスは、例えば、段階的パルスプログラミングを使用する。
【0115】
検証信号の例702など各プログラムループでの検証信号は、プログラムループについて検証されている割り当てられたデータ状態に基づいて、1つ以上の検証電圧を含み得る。検証試験は、プログラム動作が進むにつれて、より低い割り当てられたデータ状態、次いで、中間の割り当てられたデータ状態、次いで、より高い割り当てられたデータ状態を包含し得る。単純化するために、検証信号の例は、3つの検証電圧を示す。
【0116】
全てのメモリセルは、当初、例えば、プログラム動作の開始時に消去状態にあってよい。プログラム動作の完了後、データは、V番目の分布の間にある読み出し電圧を使用してメモリセルから読み出され得る。同時に、パス電圧とも呼ばれる読み出しパス電圧Vpass(例えば、8~10V)が残りのワード線に印加される。V番目の所与のメモリセルが読み出し基準電圧のうちの1つ以上を上回るか又は下回るかどうかを試験することにより、システムは、メモリセルによって表されるデータ状態を決定することができる。これらの電圧は、V番目の範囲の異なるデータ状態間で境界を定めるため、境界電圧である。
【0117】
更に、プログラムされる又は読み出されるデータは、ページに配置され得る。例えば、4つのデータ状態、つまりセル当たり2ビットを用いて、2つの論理ページのデータを1ページに記憶することができる。Er、A、B、及びCの各状態のビットの符号化の例は、上位ページ(UP)ビット/下部ページ(LP)ビットの形式で、それぞれ11、10、00及び01である。下位ページの読み出しはVrA及びVrCを使用してよく、上位ページの読み出しはVrBを使用してよい。
【0118】
8つのデータ状態、つまりセル当たり3ビットを使用して、3ページのデータを記憶することができる。Er、A、B、C、D、E、F及びGの各状態のビットの符号の例は、それぞれ111、110、100、000、010、011、001及び101である。セル当たり2ビット以上を記憶するメモリは、MLCメモリと呼ばれてよく、このメモリとしては、3レベルセル(Three Level Cell、TLC)メモリ(8つのデータ状態を使用してセル当たり3ビットを記憶する)及びQLCメモリ(16のデータ状態を使用してセル当たり4ビットを記憶する)が挙げられる。2つのデータ状態を使用してセル当たり1ビットを記憶するメモリは、SLCメモリと呼ばれることがある。
【0119】
図8は、8つのデータ状態、つまりセル当たり3ビットを使用したメモリセルの組でのプログラム動作後のメモリセルの組のV番目の分布の一例を示す。垂直軸は、メモリセルの数を対数目盛で示し、水平軸は、V番目のメモリセルを均等目盛で示す。1つのアプローチでは、プログラム動作の開始時において、メモリセルは全て、当初は消去状態1000である。プログラム動作が正常に完了した後、通常発生するある程度のプログラムディスターブにより、ER状態に割り当てられたメモリセルがアップシフトされることがある。
【0120】
VvA、VvB、VvC、VvD、VvE、VvF及びVvGの検証電圧をそれぞれ使用して、A、B、C、D、E、F及びGの各状態にプログラムされるメモリセルは、V番目の分布1001、1002、1003、1004、1005、1006及び1007によってそれぞれ表される。読み出し電圧VrA、VrB、VrC、VrD、VrE、VrF及びVrGが、読み出し動作でのメモリセルの状態の読み出しに使用され得る。これらの検証電圧及び読み出し電圧は、選択されたワード線電圧の制御ゲート読み出しレベルの例である。
【0121】
データがメモリセルでしばらくの間記憶された後に、当該データは、古くなり得る、別の場所にコピーされ得る、又は何らかの他の理由で、メモリセルを消去することが望ましいことがある。多くの不揮発性メモリ設計では、消去は、ブロックごとに行われる。かかる設計(ブロック消去可能なメモリ)では、ブロック内のメモリセルのサブセットは、別個に消去されなくてよく、したがって、ブロックは、消去の最小単位と見なされてよい。
【0122】
図9は、16のデータ状態、つまりセル当たり4ビットを使用したメモリセル(QLC)の組でのプログラム動作後のメモリセルのV番目の分布の別の例を示す。垂直軸は、メモリセルの数を対数目盛で示し、水平軸は、V番目のメモリセルを均等目盛で示す。1つのアプローチでは、プログラム動作の開始時において、メモリセルは全て、当初は消去分布状態S0である。対応する分布S1~S15に対応して、読み出し電圧VrS1~VrS15を示す(明確にするために、対応する検証電圧は
図9に示していない)。
【0123】
図8~
図9の実施例では、プログラミングは単一の連続動作で実行されてよく、全てのメモリセルが消去分布(Er又はS0)にある状態で開始し、全て又はほぼ全てのメモリセルが記憶されるデータに従ってそれらの標的分布にあるものとして検証されることで終了する。他の実施例では、
図8~
図9に示す状態へのプログラミングは、異なる時間に実行されてよい、2つ以上の別個のプログラミング動作で行われてよい。かかるプログラミング動作の間に他の動作が実行されてよい。
【0124】
場合によっては、1つ以上のメモリセルのプログラミングは、以前にプログラムされたメモリセルの閾値電圧分布に影響を及ぼしてよい。例えば、NAND構造のワード線に沿ったプログラムされたメモリセルは、NAND構造の以降のワード線のプログラミング(例えば、同一ブロック内の隣接ワード線に沿ったメモリセルのプログラミング)による影響を受けることがある。近傍のメモリセルに電荷が追加されると、以前プログラムされたメモリセルの閾値電圧は、閾値電圧分布が「プログラムディスターブ」と呼ばれる状態に変化するように増加し得る。これにより、データの誤読が生じることがある。かかるプログラムディスターブ効果を低減するために、2つ以上の動作でプログラミングを実行して、プログラミングが最終化される前に隣接するメモリセルのプログラミングを可能にし得る。例えば、第1のプログラミング動作は、最終分布に近い第1の分布にメモリセル群をプログラムしてよく、Foggyプログラミング動作と呼ばれることがある。次に、1つ以上の隣接ワード線のメモリセルがプログラムされてよい。続いて、隣接セルがプログラムされた後、別のプログラム動作(Fineプログラミング動作)によって、メモリセル群が第2の分布(例えば、
図8~
図9に示す分布のような最終分布)にプログラムされてよい。第1の(近似又はFoggy)分布にプログラムし、続いて、このようにして第2の(精密又はFine)分布にプログラムすることは、Foggy-Fineプログラミングと呼ばれることがある。
【0125】
図10は、16のデータ状態に対応する16の分布を使用した、QLCメモリセル群のFoggy-Fineプログラミングの例を示す。Foggyプログラミング前は、全てのメモリセルは消去分布(例えば、分布S0)であってよい。Foggyプログラミングは、
図10の上部に示す第1の分布S1’~S15’にメモリセルをプログラムする。Fineプログラミングは、続いて、底部に示す第2の分布S1~S15にメモリセルをプログラムする。これらの2つのプログラム動作の間には時間があってよく、1つ以上の他のメモリセル群が、その間にプログラムされてよい。所与の第1の分布のメモリセルは、続いて、対応する第2の分布へと更にプログラムされ、その間にメモリセルが消去されることはなく、したがって、Fineプログラミングは、消去分布から開始されないことが理解されるであろう。例えば、Foggyプログラム動作でS1’分布にプログラムされるメモリセルは、続いて、Fineプログラム動作でS1分布に更にプログラムされ、Foggyプログラム動作でS2’分布にプログラムされるメモリセルは、続いて、Fineプログラム動作でS2分布に更にプログラムされ、Foggyプログラム動作でS3’分布にプログラムされるメモリセルは、続いて、Fineプログラム動作でS3分布に更にプログラムされるなどである。
【0126】
第1の分布S1’~S15’は、一般に第2の分布S1~S15よりも幅広であり、隣接する分布間には著しい重複が存在する(例えば、分布S1’は分布S2’と重複し、分布S2’は分布S3’と重複するなど)。第1の分布へのプログラミングは、第2の分布のために使用される工程と同一のプログラミング工程を使用してよく、又は異なる工程を使用してよい(例えば、同一の電圧及び時間、又は異なる電圧及び/若しくは時間のプログラミングパルス)。
図9に示すような読み出し電圧を使用して第1の分布S1’~S15’にあるメモリセルを読み出すと、かかる重複のために多数のエラー(例えば、ECCによって訂正され得る、より多くのエラー)が生じ得、その結果、Fineプログラミングには別のソースが使用され得る。データの安全なコピーは、Fineプログラミングに良好なコピーを使用できるように、Foggyプログラム動作とFineプログラム動作との間には別の場所に維持されてよい。例えば、データのコピーは、続いてのFineプログラミングのために、追加の不揮発性メモリセル(例えば、QLCメモリセルと同一メモリ構造であってよいSLCメモリセル、又は他の場所)に、又は揮発性メモリに書き込まれてよい。
【0127】
所与のワード線のFoggyプログラミングとFineプログラミングとの間には、1本以上の他のワード線(例えば、所与のワード線と何らかの結合を有し得る近傍のワード線)がプログラムされてよい。
図11は、3D NAND構造の4つのストリング(例えば、
図6Aに示すNS1及びNS2などNANDストリング)のワード線をプログラムするために使用され得るプログラミングスキームの例を示す。左側の第1の列は、ワード線(WL)を示し、次の列(STAGE)は、4つのストリングSTR0~STR3のそれぞれについて、プログラミングステージをFoggy又はFINEのいずれかとして示す。各エントリの数字は、異なるストリング及びワード線のFoggyプログラミング及びFINEプログラミングの順序を示す。矢印は、いくつかの工程の順序を示すために使用する。
【0128】
プログラミングは、WL0のSTR0、STR1、STR2及びSTR3のFoggyプログラミング、続いてWL1、STR0のFoggyプログラミング、次いでWL0、STR0のFineプログラミングで開始する。これに続いて、WL1、STR1のFoggyプログラミング、次いで、WL0、STR1のFineプログラミング、WL1、STR2のFoggyプログラミング、WL0、STR2のFineプログラミング、WL1、STR3のFoggyプログラミング、WL0、STR3のFineプログラミング、続いてWL2、STR0のFoggyプログラミングなどと続く。所与のメモリセル群のFoggyプログラミングとFineプログラミングとの間には、他のメモリセルがプログラムされ(例えば、Foggyプログラムされる)、その結果、隣接セルの結合効果が既に生じた後にFineプログラミングが行われ、したがってプログラムディスターブ効果が低減することが分かる。例えば、WL1、STR0のFoggyプログラミングは、
図11の第4のプログラム動作であり、WL1、STR0は第13のプログラム動作であり、したがって、これらの間には9回の他のプログラム動作が生じる。Foggyプログラムされ、まだFineプログラムされていないデータのコピーは、Fineプログラミングが完了するまで安全な場所に保存されてよい(例えば、WL1、STR0の安全なデータのコピーは、
図11の第4の動作と第13の動作との間に維持されてよい)。安全なコピーを維持することは、記憶領域(例えば、揮発性又は不揮発性メモリ)及びデータを転送するためのバス使用の両方に関して著しいリソースを要し得る。
【0129】
本技術の例では、MLCメモリセルに記憶されるデータについて、パリティデータが計算されてよく、このパリティデータは、Foggyプログラムされたデータを復元可能にしてよい(例えば、読み出したFoggyデータをパリティデータと組み合わせることにより復元して、安全なコピーを必要とすることなく元のデータを取得する)。
【0130】
図12は、Foggyプログラムされたメモリセルからのデータの復元を容易にするためにパリティデータで使用されるグレイ符号メモリ状態符号化スキームの例を示す。図示する符号化スキームは、
図8~
図10のいずれかに示す分布に適用されてよい。分布S0~S15(列1)はそれぞれ、任意の隣接する分布に割り当てられたデジタル値が1ビットだけ異なるように、グレイ符号割り当てスキームに従って、異なる4ビットのデジタル値(列2)、つまりメモリ状態が割り当てられる。例えば、分布S4に割り当てられたデジタル値(1100)及び隣接する分布S3に割り当てられたデジタル値(1101)は、最初の3ビットが同一の値(110)を有し、最後のビットのみが異なる。同様に、分布S4に割り当てられたデジタル値(1100)及び隣接する分布S5に割り当てられたデジタル値(0100)は、最後の3ビットが同一の値(100)を有し、最初のビットのみ異なる。パリティデータ(列3)は、割り当てられたデジタル値ごとに1つのパリティビットからなり、この場合、デジタル値のビットでの排他的OR(XOR)演算によって単純に得られる。グレイ符号は、メモリ状態の割り当てに使用されるため、図示するようにパリティビットは、0-1-0-1と交互になる。他の実施例では、他のパリティスキーム(又は異なる符号化スキーム)が使用されてよい。デジタル値は、分布S0~S15にマッピングされた状態(Fineプログラミング後に達成され得る)で示しているが、同じデジタル値が、Foggyプログラミングから生じ得る第1の分布S0~S15’に同様にマッピングされることが理解されるであろう。したがって、例えば、S3及びS3’分布の両方がデジタル値1101にマッピングされ、S12及びS12’分布の両方がデジタル値1010にマッピングされるなどである。パリティデータを用いてグレイ符号割り当てスキームを使用することにより、Foggyプログラムされたメモリセル(例えば、メモリセルは、まだFineプログラムされておらず、データ状態はS1~S15ではなく、状態S1’~S15’である)からのデータの復元が容易になってよい。
【0131】
図13Aは、パリティデータを用いた好適なグレイ符号割り当て(例えば、
図12に示すように、又は異なるグレイ符号を使用して)が使用されて、Foggyプログラムされたメモリセルからの正確なデータの復元を容易にし得る方法の例を示す。
図13Aは、(消去分布S0に加えて)分布S1’~S15’を示し、各分布の上方に1ビットのパリティデータ(1又は0値のいずれか)を示す。これは、例えば、Foggyプログラム状態であり(例えば、隣接するメモリセルがプログラムされている間)、
図12に示すようにパリティデータが生成されたメモリセルに対応する。一連の読み出し工程は、
図13Aに示すように、読み出しレベルRL1~RL14で実行されてよい。読み出しレベルRL1~RL14は、以前の例のように分布間には位置しない(例えば、
図8のVrA~VrG、又は
図9のVrS1~VrS15のようではない)。代わりに、各読み出しレベルRL1~RL14は、分布の中央(中点)若しくはその付近、つまり両側の分布のほぼ中間に位置する。例えば、RL3は、分布S2’と分布S4’とのほぼ中間であり、分布S3’の中央にある。したがって、RL3は、偶数パリティ値(パリティ値=0)を有する2つの分布(S2’及びS4’)の間にあり、奇数パリティ値(パリティ値=1)を有する分布(S3’)の中間又はその付近にある。読み出しレベルRL1~RL14は、分布S1~S14の中央又はその付近(すなわち、最低分布S0、及び最大分布S15を除く全ての分布の中央又はその付近)に位置する。
【0132】
示されるパリティ値(使用されるグレイ符号に従って交互である)と組み合わせて、14個の読み出しレベルRL1~RL14においてFoggyプログラムされたデータ状態S1’~S15’を読み出すことは、Foggyプログラミング動作でプログラムされたデータを正確に復元するのに十分であり得る。場合によっては、これにより、Foggyプログラムされたデータが、Foggyプログラムされたメモリセルから直接復元可能となり、安全なコピーを他の場所に維持する必要がなくなる(例えば、SLC又は揮発性メモリ内の安全なコピーが不要であり得る)。
【0133】
RL1が使用されるとき(例えば、RL1における電圧が対応するワード線に印加されたとき)にオンになる(例えば、センスブロックによって検出されるように、導通する又はトリップイベントを経験する)メモリセルは、S0分布又はS1’分布のいずれかにあってもよい。所与のセルがこれらの分布のうちのいずれにあるかは、セルに関連付けられたパリティビットから判定されてよい(例えば、RL1でオンになり、パリティ=0を有する任意のセルは、分布S0にあり、RL1でオンになり、パリティ=1を有する任意のセルは、分布S1’にある)。このようにして、S0分布内の全てのメモリセル(及びS1’分布の一部のメモリセル)は、RL1での読み出しから見出されてよい。RL1でオンにならず、RL2でオンになるメモリセル(RL1とRL2との間でトリップイベントが検出される)は、S1’分布又はS2’分布のいずれかにあってよい。所与のセルがこれらの分布のうちのいずれにあるかは、セルに関連付けられたパリティビットから判定されてよい(例えば、最初にRL2でオンになり、パリティ=1を有する任意のセルは、分布S1’にあり、最初にRL2でオンになり、パリティ=0を有する任意のセルは、分布S2’にある)。このようにして、S1’分布内の残りのメモリセル(及びS2’分布の一部のメモリセル)は、RL2での読み出しから見出されてよい。RL2又はRL1でオンにならず、RL3でオンになるメモリセルは、S2’分布又はS3’分布のいずれかにあってよい。所与のセルがこれらの分布のうちのいずれにあるかは、セルに関連付けられたパリティビットから判定されてよい(例えば、最初にRL3でオンになり、パリティ=0を有する任意のセルは、分布S2’にあり、最初にRL3でオンになり、パリティ=1を有する任意のセルは、分布S3’にある)。このようにして、S2’分布内の残りのメモリセル(及びS3’分布の一部のメモリセル)は、RL3での読み出しから見出されてよい。このアプローチは、RL14まで拡大されて、S0及びS1’~S13’内の全てのセル及びS14’内の一部のセルを識別してよい。RL14が適用されたときにオンにならない(トリップイベントを経験しない)メモリセルは、分布S14’又はS15’のいずれかにあり、これらは、それぞれのパリティビットで区別されてよい(RL14でオンにならず、パリティ=0を有するメモリセルは分布S14’にあり、RL14でオンにならず、パリティ=1を有するメモリセルは、分布S15’にある)。
【0134】
図13B~
図13Dは、
図13Aに示すようにFoggyプログラムされた読み出しQLCセル(例えば、
図6A~
図6Cに示すようなNAND構造又は他のメモリ構造のメモリセル)の実装形態を示す。
図13Bは、隣接する分布が確実に1ビットだけ異なるように、グレイ符号を使用して、16の分布S0~S15にデジタル値を割り当てる、割り当てスキームを示す。分布S0~S15は第1の列に列挙され、第2の列にはデジタル値(つまりメモリ状態)が列挙され、第3の列には各デジタル値に対応するパリティ値が列挙される。パリティ値は、4ビットの対応するデジタル値をXORすることによって得られてよい。
図13Bに示すスキームは、
図12に示すスキームの代替であってよい(異なるパリティスキームなど他の符号化スキームも使用されてよい)。
図13Bに示すパリティ値を使用してデータを符号化することにより、Foggyプログラムされたデータの続いての復元が可能になり得る。
【0135】
図13Cは、
図13Aに示すように、読み出しレベルRL1~RL14でのメモリセルの読み出しがパリティビットと組み合わされて、Foggyプログラムされたデータを復元し得る方法を示す。第1の列には読み出しレベルが列挙され、第2列には、初期値(4ビットのデジタル値)が列挙される。第2列の初期値を有するセルごとに、復元値(復号値)が、セルのパリティビットに依存する。第3の列にはパリティビットが列挙され、第4の列には対応する復元値が列挙される。場合によっては、パリティ値を使用してFoggy読み出しデータ(例えば、初期値)を復号して復元値を得ることにより、Foggyプログラムデータの安全なコピーの維持を不要にしてよい。
【0136】
RL1でオンになるメモリセルには、初期値1111が割り当てられてよい(
図13Bの表の分布S0に対応する)。対応するパリティビット=0であると、復元値も1111であり(例えば、メモリセルは分布S0にある)、パリティビット=1であると、復元値は1110である(例えば、メモリセルは分布S1’にあり、第4のビットは反転する)。RL1でオンにならず、RL2でオンになるメモリセルには、初期値1110が割り当てられてよい(
図13Bの表の分布S1又はS1’に対応する)。対応するパリティビット=1であると、復元値も1110であり(例えば、メモリセルは分布S1’にあり、初期値は復元値として使用される)、パリティビット=0であると、復元値は1010である(例えば、メモリセルは分布S2’にあり、第2のビットは反転する)。RL1又はRL2ではオンにならず、RL3でオンになるメモリセルには、初期値1010が割り当てられてよい(
図3Bの表の分布S2又はS2’に対応する)。対応するパリティビット=0であると、復元値も1010であり(例えば、メモリセルは分布S2にあり、初期値は復元値として使用される)、パリティビット=1であると、復元値は1000である(例えば、メモリセルは分布S3’にあり、第3のビットが反転する)。このアプローチは、
図13Cに示すように、RL14まで続き、RL14において最初にオンになるメモリセルには、0111の初期値が割り当てられ(
図13Bの表の分布S13又は分布S13’に対応する)、対応するパリティ値に応じて、0111(パリティ=1である場合)又は0011(パリティ=0である場合)のいずれかの復元値が割り当てられる。RL14でオンにならない残りのメモリセル(
図13Cに「残り」で示す)は、0011の初期値が割り当てられ(分布S14又は分布S14’に対応する)、対応するパリティ値に応じて、分布S14に対応する1011(パリティ=1である場合)又は分布S15に対応する0011(パリティ=0である場合)の復元値が割り当てられる。
【0137】
パリティデータを用いて値を復元するFoggy読み出しは、様々な方法で実施され得る。
図13Dは、初期値(ビットT、C、B、及びA)及びパリティビット(S)に論理演算を適用して、対応する論理演算によって示されると反転する例を示す。例えば、第1の線では、初期値1111は、パリティビット0又は1を伴って生じてよい。パリティビットが1(T&C&B&A&S)である場合、ビットAは0に反転し(A=0)、そうでなければ、初期値1111は復元値として使用される。第2の線では、初期値1110は、パリティビット0又は1を伴って生じてよい。パリティビットが0である場合(T&C&B&!A&!S、式中、「!」は逆数を示し、!AはAの逆数である、すなわち、A=0である場合、!A=1であり、A=1である場合、!A=0である)、ビットCは0に反転し(C=0)、そうでなければ、初期値1110は復元値として使用される。第3の線では、初期値1010は、パリティビット0又は1を伴って生じてよい。パリティビットが1(T&!C&B&!A&S)である場合、ビットBは0に反転し(B=0)、そうでなければ、初期値1010は復元値として使用される。QLCメモリについて示す16個の値については、復元値の取得には、15の論理演算で十分であり得ることが分かる。グレイ符号を使用するため、任意の所与の初期値については、パリティビットに応じて1ビットのみが反転する。反転するビットは、説明目的で影付きになっている。
【0138】
AND演算など単純な論理演算は、メモリダイで実施されてよい。場合によっては、かかる論理演算は、データがデータラッチ494~497などデータラッチに保持されている間に(例えば、パリティデータに追加のラッチを用いて)適用されてよい。ビットは、データがラッチに留まっている間に(例えば、Fine書き込み動作で復元値の書き込みに使用される前に)、スキームに従って反転してよい。
図13Aに示すように、Foggyプログラムされたデータを読み出すと、初期値がデータラッチ494~497にラッチされてよい。このデータがパリティ値と組み合わされると(例えば、
図13Dに示す論理演算を使用して)、復元値は、データがデータラッチ494~494に留まる間にビットを反転させることによって取得されてよい。次いで、この復元されたデータは、初期値及び復元値の他の回路(例えば、メモリダイの外部)への転送が不要となるように、Fine書き込み動作でデータラッチ494~497から同一メモリセルに書き戻されてよい。
【0139】
図13Eは、(例えば、上記の
図13A~
図13Dの例のように)パリティデータを使用することによってFoggyプログラムされたメモリセルからデータを復元する動作を示す。この方法は、工程1302において分布中央読み出しレベル(例えば、
図13Aに示すRL1~RL14)で読み出しを実行することと、工程1304において読み出し結果に従って初期値(例えば、
図13Cに示すようなRL1~RL14に対応する初期値)を割り当てることと、工程1306において読み出しデータに対応するパリティデータ(パリティデータは、Foggyプログラミングの前に生成されてよく、後に使用するために保存されてよい)を取得することと、工程1308においてパリティデータを読み出し結果と組み合わせて、(例えば、
図13C~
図13Dに示すように、パリティビットによって示されるときにビットの初期値を反転させることによって)復元データを取得することと、を含む。
【0140】
図13A~
図13Dに示すように、Foggyプログラムされたメモリセルからのデータの復元(復号)は、Foggy読み出し動作の結果と組み合わせてパリティデータを使用する。パリティデータは、データの書き込み時、又は書き込み前に計算されてよく、適切な場所に記憶されてよい。例えば、パリティデータは、メモリダイへの送信前にメモリコントローラ内で計算されてよく、Foggyプログラムされたデータの復元に必要になるまで、揮発性メモリ(例えば、DRAM)に記憶されてよい。
【0141】
図14は、(例えば、
図1Aに示すような)メモリデバイス101が修正されて、不揮発性メモリダイ1414(例えば、不揮発性メモリ104の個々の不揮発性メモリダイ)内のQLC記憶装置1412にFoggyプログラムされたメモリセルからのデータの符号化及び復号を実施する例を示す。コントローラ102は、SRAM1416を含むFEP回路141及びBEP回路142を含む。FEP回路141は、バス1418(例えば、PCIeインターフェース)を介してBEP回路142に接続される。BEP回路142は、低密度パリティチェック(Low Density Parity Check、LDPC)符号化及び復号を実施してよいECC回路1420(例えば、ECCエンジン226/256)と、この場合はXOR回路1413であるパリティ回路(例えば、XOR回路1413は、XORエンジン224/254によって実装され得る)と、デコーダ回路1422(例えば、プロセッサ220/250を使用して実装される)とを含む。コントローラ102は、バス1424(例えば、メモリバス294)を介して不揮発性メモリダイ1414に接続される。
【0142】
データは、入力部1428においてホストから受信され、バス1418を介してSRAM1416からECC回路1420に転送され、ECC回路1420はデータを符号化し、QLC記憶装置1412でのFoggyプログラミングのためにバス1424を介してデータを転送し(1430)、ローカルメモリ(この例では、DRAM/ReRAM/MRAM106)に保存されたXORビットを計算するXOR回路1413にもデータを送信する。続いて、データがFoggyプログラムされた状態でいる間に他の書き込みが生じることがあり、以降のプログラミングシーケンス(例えば、
図11に示すシーケンス)のある時点において、当該データがFineプログラムされてよい。Fineプログラミング時には、(例えば、
図13A~
図13Dに示すように)Foggy読み出しが実行されてよく、その結果は、デコーダ1422に転送され得る(1434)(例えば、
図13Cに示す初期値は、不揮発性メモリダイ1414の読み出し/書き込み回路からデコーダ1422に送信されてよい)。デコーダ1422はまた、ローカルメモリ106からXORビットを受信し、Foggy読み出し結果をXORビットと組み合わせて(例えば、
図13Cに示すように)復元データを取得する。次いで、これらの結果が転送されて(1434)、Fineプログラム動作で同一のメモリセルに書き込まれる(例えば、Foggyプログラムされた同一のメモリセルが更にプログラムされる)。
【0143】
この例は、構成要素間(例えば、バス1424を介してコントローラ102とメモリダイ1414との間、及びバス1418を介してFEP回路141とBEP回路142との間)での大量のデータ転送を含むことが分かる。例えば、QLC記憶装置では、4つの論理ページのデータがまとめて記憶されてよく、かかる4ページをXORした結果は1ページのパリティデータである。
図14に示すスキームでは、かかるデータをプログラムすることは、4つの論理ページのデータの転送(1430)、続いてのFoggy読み出しから取得した4ページの(バス1424を介した)コントローラ102への転送(1432)、及びFineプログラミングのために4ページの復元データをメモリダイ1414に転送して戻すこと(1434)を含む。これは、特に(例えば、
図1Dに示されるように)バスが複数のメモリダイ間で共有される場合、バス1424上に大量のトラフィックをもたらし得る。更に、XORデータ(例えば、Foggyプログラムされた4つの論理ページのデータごとに1つの論理ページのXORデータ)によってローカルメモリ106のかなりの領域が占有され得る。ローカルメモリ106内のXORデータへのアクセスは、バス1418上に大量のトラフィックを生成し得る。
【0144】
図15Aは、Foggy-Fineプログラミングのためにオンチップ符号化及び復号を実行するように構成されているメモリデバイス1530の例を示す。メモリダイ1532は、メモリダイ1532でパリティデータ(XORデータ)を生成するように構成されている、パリティデータ生成回路(この例ではXOR回路1540)を含む。XOR回路1540は、QLC記憶装置1412の不揮発性メモリセルに記憶されるデータのパリティデータを計算するための手段と見なされてよい。例えば、データがメモリデバイス1530に転送される(1536)と、データは、(ECCデータと共に)コントローラ102からバス1424を介してQLC記憶装置1412に転送され(1538)、またメモリダイ1532のXOR回路1540にも転送され得る。データは、QLC記憶装置1412でFoggyプログラムされてよく、パリティデータ(この例ではXORデータ)を生成するためにも使用されてよい。パリティデータがFoggyプログラムされている間、Fineプログラミングが開始されるまでは、データが保存されてよい。メモリダイ1532はまた、QLC記憶装置1412からのFoggy読み出しデータを受信し(転送1544)、XOR回路1540によって以前に生成されたXORデータを使用してFoggy読み出しデータを復号するように構成されているオンチップデコーダ1542を含む。このようにして復元された復号データは、Fineプログラミング動作でQLC記憶装置1412に転送される(1546)。このようにしてオンチップでパリティデータを生成し、オンチップで復号することにより、データの安全なコピーを用いずに(例えば、安全なコピーの代わりにFoggyプログラムされたデータとパリティデータとの組み合わせを用いて)、比較的少量のバス1424上のトラフィックで、Foggy-Fineプログラミングを実行することが可能になり得る。例えば、4つの論理ページのデータが書き込まれると、4つの論理ページはメモリダイ1532に転送される(1538)。続いて、4つの論理ページのFoggy読み出しデータは、オンチップデコーダ1542に転送され(バス1424上でトラフィックを生じさせない)、復元データは、ここでもバス1424上でトラフィックを生じさせずにQLC記憶装置1412に転送して戻される(1546)。場合によっては、XORデータは、メモリダイ1532内のSLC記憶装置に保存されてよく、その結果、パリティデータは、バス1424上でトラフィックを生じさせずに保存され、復元されてよい(他の例では、XOR回路1540からのXORデータは、例えばメモリコントローラ102、又はメモリコントローラ102に接続された揮発性メモリにオフチップで保存されてよい)。
【0145】
図15Bは、QLC記憶装置1412の物理ページにプログラムされた4つの論理ページのデータ(それぞれ「T」、「C」、「B」、及び「A」とラベル付けされた論理ページ)に対応する4組のデータラッチ1550~1553を含むオンチップXOR回路1540の実装形態の例を示す。例えば、ラッチの各組は、ECCデータ(例えば、メモリコントローラ102のECC回路によって計算される)及びホストからのデータと共に記憶され得る任意の他のオーバーヘッドデータと併せた、1つの論理ページのホストからのデータに対する容量を有してよい。XOR回路1540は、QLC記憶装置1412のメモリセルに対応する各組のビットに対してXOR論理演算を実行し、対応するXORデータのビット(パリティデータ)を生成するように構成されているXOR論理回路1554を含む。XOR論理回路1554は、複数の不揮発性メモリセルに記憶されるデータのパリティデータを計算するための手段の例と見なされてよい。パリティデータは、1組のデータラッチ1556に記憶される。1組のビット1558の例は、QLC記憶装置1412のメモリセルにプログラミングされる。XOR論理回路1554は、1組のビット1558のビット1101に対応する、対応するパリティビット(この場合、「1」)を計算する。例えば、モジュロ2の加算又は他の技術を使用して、XORビットを生成してよい(例えば、奇数の「1」ビットが存在する場合、XOR結果は「1」である)。パリティビットが他の方法(XORではない)で生成される場合、パリティビットを生成するために異なる論理が適用されてよい。データラッチ1550~1553は、
図3Aのデータラッチ494~497によって実装されてよく、データがFoggyプログラミング前又はFoggyプログラミング中にラッチ内にあるときに、符号化(この例ではXORビットの計算)が行われてよい。データラッチ1550~1553(例えば、データラッチ494~497)は、センスブロック350の追加回路と組み合わせて、複数の不揮発性メモリセルを第1の分布にプログラムするための手段の例と見なされてよい。
【0146】
図15Cは、QLC記憶装置1412のページのFoggy読み出しから取得された4つの論理ページのデータに対応する4組のデータラッチ1560~1563を含むオンチップデコーダ1542の例を示す。例えば、ラッチの各組は、ECCデータ及びホストから受信したデータと共に記憶され得る任意の他のオーバーヘッドデータと併せた、1つの論理ページのデータに対する容量を有してよい。いくつかの実施例では、同一の物理的データラッチがXORデータラッチ1550~1553として使用され、データラッチ1560~1563(例えば、データラッチ494~497)を復号するために使用されてよい。Foggy読み出しが行われるとき(例えば、
図13Aに示すように)、初期データ状態がデータラッチ1560~1563にロードされてよい(例えば、
図13Cに列挙する初期値)。データラッチ1560~1563(例えば、データラッチ494~497)は、センスブロック350の追加回路と組み合わせて、第1の分布にある複数の不揮発性メモリセルを読み出すための手段の例と見なされてよい。オンチップデコーダ1542は、かかるFoggy読み出しから取得された初期値を、1組のデータラッチ1566内のパリティデータ(例えば、Foggyプログラミング前にXOR回路1540によって生成されるXORデータ)と組み合わせる、復号論理回路1564を含む。復号論理回路1564は、
図13C~
図13Dに示すように、Foggy読み出しデータとパリティデータとを組み合わせてよく、その結果、メモリセルからの初期値が復元値として使用され得る、又はメモリセルに関連付けられたパリティ値に応じて1ビットが反転され得る。例えば、復号論理回路1564は、
図13Dに示す論理演算を実行するAND論理回路及びNOR論理回路を含んでよい。第1の例1568では、メモリセルのFoggy読み出しは、初期値1101を提供し(例えば、メモリセルがRL12において導通する)、メモリセルの対応するXORビットは1である。復号論理回路1564は、この場合、(
図13C~
図13Dの対応するエントリに示すように)1101の復元値を生成する。第2の例1570では、別のメモリセルのFoggy読み出しは、初期値1101を提供し、メモリセルの対応するXORビットは0である。復号論理回路1564は、この場合、(
図13C~
図13Dの対応するエントリに示すように)0101の復元値を生成する。復号論理回路1564は、
図13Dに示す論理演算に従ってビットT(網掛け部分)を単純に0に反転させてよく(T&C&!B&A&!Sの場合はT=0に設定する)、その結果、初期値は、ラッチ1560~1563内にある間に復元値に置き換えられる。復号論理回路1564は、XORビットと組み合わせた、QLC記憶装置1412のメモリセルのFoggy読み出しによって取得された対応する初期値から、
図13C~
図13Dの復元値を生成するように構成されている。次いで、これらの復元値が使用されて、メモリセルのFineプログラミングが行われてよい(例えば、Foggyプログラムされた同一メモリセルが、復元値に基づいて、
図10に示すように更にプログラムされる)。データは、データラッチ1560~1563(例えば、データラッチ494~497)からFineプログラムされてよい。オンチップ復号1542は、パリティデータと組み合わせて、第1の分布にある複数の不揮発性メモリセルを読み出した結果からデータを復元し、複数の不揮発性メモリセルを第1の分布から第2の分布へと更にプログラムしてデータを記憶するための手段の例と見なされてよい。
【0147】
図16は、プログラミングに使用される一連の工程の例を示す。工程1では、4つの論理ページのデータがメモリダイ(例えば、メモリダイ1532)に転送され、対応するデータラッチ(例えば、ラッチT、C、B、A)の組にロードされる。工程2では、4つの論理ページは、プログラムされるメモリセルごとにXORビット(つまりフラグ「A」)を生成するXOR演算を受ける。
図16の例では、これに25μsを要する。工程3では、XORビット(4つの論理ページの転送データから生成された1つの論理ページのXORデータ)は、SLCメモリに書き込まれる(例えば、SLCと指定されるメモリダイ1532上のNANDメモリの一部に書き込まれる)。
図16の例では、これに130μsを要する。したがって、オンチップ符号化(XORによる)及びSLCでのXORデータの記憶は、迅速に実行されてよい。SLC部分及びQLC部分は、別個の構造であってよく、又は両方が共通の構造に形成されてよい(例えば、構造体一部のブロックは、QLCブロックとして、また他のブロックはSLCブロックとして指定されてよく、これらの指定は経時的に変化してよい)ことが理解されるであろう。
【0148】
上記の例のいずれかに記載したようにFoggy-Fineプログラミングのためのオンチップ符号化及び復号は、
図17~
図19の例を含むがこれらに限定された様々な方法で実施されてよい。
図17は、SLCメモリセルを使用して、Fineプログラミングで後に使用するためにパリティデータ(例えば、XORデータ)を記憶する例を示す。データ転送1770(例えば、ホストから)がメモリコントローラ102によって受信され、データはECC回路1772によってECC符号化される。次いで、符号化データは、バス1424を介してQLCストレージ1412に転送されて(1774)、Foggyプログラムされる。また、XORビットを生成するXOR回路に転送され(1540)、次いで、SLCキャッシュ1776に記憶される。SLCキャッシュ1776は、SLCデータ記憶装置用に構成された構造1778(例えば、3D NANDメモリ構造)の一部である。構造1778はまた、QLC記憶装置1412を含み、これらの部分は再構成可能であってよい。Foggyプログラミング後、QLC記憶装置1412内のデータ及び対応するXORデータはSLCキャッシュ1776内にあり、他のデータは、プログラムされてよい(例えば、
図11に示すように)。続いて、Fineプログラミングがスケジュールされてよく、Foggy読み出しが実行されて、QLC記憶装置1412からデコーダ1542に初期値が読み出されてよく(転送1780)、XORデータはSLCキャッシュ1776から読み出されてよい(転送1782)。次に、デコーダ1542は、Foggy読み出しデータとXORデータとの組み合わせから復元値を生成する(例えば、
図13Cに示すように復号する)。次いで、これらの復元値が使用されて、以前にFoggyプログラムされたメモリセルのFineプログラミングを実行する(転送1784)。したがって、この例では、バス1424を横断する唯一のデータ転送は、初期データ(例えば、4つの論理ページのユーザデータ及び任意のオーバーヘッド)がメモリダイ1532に転送されるときである。続いてのXORデータ、Foggy読み出しデータ、及び復元データ転送は、メモリダイ1532で内部的に生じる。
【0149】
図18は、SLCメモリセルが使用されて、Fineプログラミングで後に使用するためにパリティデータ(例えば、XORデータ)を記憶する別の例を示す。データ転送1770(例えば、ホストから)がメモリコントローラ102によって受信され、データはECC回路1772によってECC符号化される。次いで、符号化データは、バス1424を介してQLCストレージ1412に転送されて(1774)、Foggyプログラムされる。また、XORビットを生成するXOR回路に転送され(1540)、次いで、SLCキャッシュ1776に記憶される。続いて、Fineプログラミングがスケジュールされてよく、Foggy読み出しが実行されて、QLC記憶装置1412からデコーダ1524に初期値が読み出されてよい(転送1780)。この例では、XORデータは、SLCキャッシュ1776からデコーダ1542に直接転送されない。SLCキャッシュ1776からのXORデータは、エラー訂正が実行されるバス1424を介してメモリコントローラ102のECC回路1772に転送される(転送1880)。訂正されたXORデータ(復号パリティデータ)は、バス1424を介してデコーダ1542に転送される(転送1882)。ECC回路1772は、エラー訂正符号(ECC)がパリティデータを復号し、復号パリティデータを復号器1542に送信するための手段の例と見なされてよい。次に、デコーダ1542は、Foggy読み出しデータと訂正されたXORデータとの組み合わせから復元値を生成する(例えば、
図13Cに示すように)。次いで、これらの復元値が使用されて、以前にFoggyプログラムされたメモリセルのFineプログラミングを実行する(転送1784)。したがって、この例では、バス1424を横断する初期転送1774(例えば、4つの論理ページ)に加えて、メモリダイ1532からメモリコントローラ102へのXORデータ(例えば、4つの論理ページに対して1つの論理ページ)の転送及びメモリコントローラ102からメモリダイ1532に戻す、訂正されたXORデータの転送もバス1424上に存在する。XORデータのエラーは、復元データにエラーを生じさせ、したがって、Fineプログラムされたデータにエラーを生じさせ得るため、ECCを使用してかかるエラーを低減すること又は排除することは、バス1424上の追加のトラフィックを正当化してよい。
【0150】
パリティデータは、SLCキャッシュ1776での記憶前にECC回路1772によって別個に符号化されてもよいが、場合によっては、別個の符号化は不要である。これは、例えば、パリティデータが符号化データのXOR積である場合である(例えば、コードワードのXOR積は、コードワードを提供するため、別個の符号化は不要である)。パリティデータのECC訂正は、全データに適用されてよく、又は選択的に使用されてよい。例えば、ECC訂正は、選択されたブロック(多数のエラーを含むブロック)、所与のブロックの選択された部分(例えば、3Dブロックのより低いレベル)、又はトリガイベントに応答して(例えば、特定の数の書き込み-消去サイクル後、閾値を超える温度、又は他のかかるイベントの後など)に対して使用されてよい。したがって、メモリデバイス1530は、
図17のスキーム及び
図18のスキームの両方を、異なる時間及び/又はQLC記憶装置1412の異なる部分のデータに使用してよい。
【0151】
図19は、ローカルメモリ、ローカルメモリ106(例えば、DRAM)が使用されて、Fineプログラミングで後に使用するためにパリティデータ(例えば、XORデータ)を記憶する例を示す。データ転送1770(例えば、ホストから)がメモリコントローラ102によって受信され、データはECC回路1772によってECC符号化される。次いで、符号化データは、バス1424を介してQLCストレージ1412に転送されて(1774)、Foggyプログラムされる。また、XORビットを生成するXOR回路に転送され(1540)、次いで、DRAM106に転送される(転送1990)。続いて、Fineプログラミングがスケジュールされてよく、Foggy読み出しが実行されて、QLC記憶装置1412からデコーダ1524に初期値が読み出されてよい(転送1780)。XORデータは、DRAM106からデコーダ1542に転送される(転送1992)。次に、デコーダ1542は、Foggy読み出しデータとXORデータとの組み合わせから復元値を生成する(例えば、
図13Cに示すように)。次いで、これらの復元値が使用されて、以前にFoggyプログラムされたメモリセルのFineプログラミングを実行する(転送1784)。したがって、この例では、バス1424を横断する初期転送1774(例えば、4つの論理ページ)に加えて、メモリダイ1532からDRAM106へのXORデータ(例えば、4つの論理ページに対して1つの論理ページ)の転送及びDRAM106からメモリダイ1532に戻すXORデータの転送もバス1424上に存在する。
【0152】
記載したいくつかの実施例では、Foggy-Fineプログラミングのためのオンチップ符号化及び復号は、(例えば、データがプログラムされたメモリ構造と同一のダイ上に形成された符号化及び復号回路によって)オンチップで実行されるが、他の例では、符号化及び復号回路は、集積メモリアセンブリ内のメモリダイに結合された制御ダイ内に位置してよい。例えば、
図15A、及び
図17~
図19のXOR回路及びデコーダ回路は、かかる制御ダイ内に位置してよい。
【0153】
図20は、本技術の態様を実施する方法の例を示すフローチャートである。この方法は、工程2002において、メモリダイによって、マルチレベルセル(MLC)メモリのページ内に記憶される、複数の論理ページのデータを受信することと、工程2004において、メモリダイの回路によって、複数の論理ページのパリティデータを計算すること(例えば、記憶する、4つの論理ページのユーザデータについて1ページのXORビットを計算すること)と、工程2006において、MLCメモリのページのメモリセルが第1の分布にプログラムされるように、Foggyプログラム動作で、MLCメモリのページに複数の論理ページのデータをプログラムすることと、を含む。この方法は、工程2008において、メモリセルが第1の分布にある間に、Foggy読み出し動作でMLCメモリのページを読み出すことと(例えば、
図13Aに示すように)、工程2010において、メモリダイの回路によって、Foggy読み出し動作の結果及びパリティデータから複数の論理ページのデータを計算すること(例えば、
図13Cの復元値を計算すること)と、工程2012において、(例えば、
図10に示すように)Fineプログラミング動作で第1の分布から第2の分布にMLCメモリのページを更にプログラムすることであって、第2の分布は、パリティデータから計算された複数の論理ページを表すことと、を更に含む。この方法は、シングルレベルセル(SLC)セルとして構成されている追加メモリセル内のメモリダイにパリティデータを記憶することを含んでよく、SLCセルからパリティデータを読み出すことと、パリティデータから複数の論理ページを計算する前にパリティデータのエラー訂正コード(ECC)復号を実行することと、を更に含んでよいか、又は揮発性メモリに記憶されるパリティデータをメモリダイから送信することと、続いて計算するために揮発性メモリからパリティデータを受信すること(
図20には図示せず)とを含んでよい。
【0154】
不揮発性記憶装置の例は、メモリダイ上に形成された複数の不揮発性メモリセルであって、各不揮発性メモリセルは、複数ビットのデータを保持するように構成されている、複数の不揮発性メモリセルと、メモリダイ上に形成された制御回路であって、制御回路は、複数の不揮発性メモリセルに記憶されるデータのパリティデータを計算し、複数の不揮発性メモリセルを第1の分布にプログラムし、第1の分布にある複数の不揮発性メモリセルを読み出し、パリティデータと組み合わせた、第1の分布にある不揮発性メモリセルの読み出しの結果からデータを復元し、複数の不揮発性メモリセルを第1の分布から第2の分布へと更にプログラムして、データを記憶するように構成されている、制御回路とを含む。
【0155】
制御回路は、メモリダイ上に形成された追加の不揮発性メモリセル内でパリティデータをプログラムするように更に構成されてよく、各追加の不揮発性メモリセルは、1ビットのデータを保持するように構成されている。制御回路は、追加の不揮発性メモリセルからパリティデータを読み出し、エラー訂正符号(ECC)復号のためにパリティデータを送信するように更に構成されてよい。制御回路は、メモリダイに接続された、制御ダイ上の揮発性メモリに記憶するためにパリティデータを送信し、揮発性メモリからパリティデータを受信するように更に構成されてよい。複数の不揮発性メモリセルは、メモリダイのNAND構造の第1のワード線に沿って位置してよく、制御回路は、複数の不揮発性メモリセルを第1の分布にプログラミングすることと、当該複数の不揮発性メモリセルを第1の分布から第2の分布に更にプログラミングすることとの間に、NAND構造の少なくとも第2のワード線をプログラムするように更に構成されている。第1の分布は、4ビットのデータを表す16の分布からなってよく、制御回路は、最低及び最高の第1の分布を除いた第1の分布の中央又はその付近に位置する14の読み出し電圧を使用して、第1の分布にある複数の不揮発性メモリセルを読み出すように更に構成されてよい。制御回路は、グレイ符号に従って複数の不揮発性メモリセルをプログラムするように構成されていてよく、その結果、隣接する分布に1ビット(1ビットだけ)異なるデジタル値が割り当てられる。制御回路は、第1の分布が著しい重複を有するように、Foggyプログラム動作で複数の不揮発性メモリセルを第1の分布にプログラムし、第2の分布が第1の分布よりも狭い幅であり、第1の分布よりも少ない重複を有するように、Fineプログラミングで複数の不揮発性メモリセルを第1の分布から第2の分布にプログラムするように構成されてよい。制御回路は、複数の不揮発性メモリセルに記憶される4つの論理ページのデータについて1つの論理ページのパリティデータを計算し、メモリダイ上に形成された追加の不揮発性メモリセルに論理ページのパリティデータを書き込むか、又はメモリダイの外部に記憶するために論理ページのパリティデータを送信し、続いて、追加の不揮発性メモリセルから論理ページのパリティデータを読み出すか、又データを復元するためにメモリダイの外部から論理ページのパリティデータを受信するように構成されてよい。
【0156】
方法の例は、メモリダイによって、マルチレベルセル(MLC)メモリのページに記憶される、複数の論理ページのデータを受信することと、メモリダイの回路によって、複数の論理ページのパリティデータを計算することと、MLCメモリのページのメモリセルが第1の分布にプログラムされるように、Foggyプログラム動作で、MLCメモリのページに複数の論理ページのデータをプログラムすることと、メモリセルが第1の分布にある間に、Foggy読み出し動作でMLCメモリのページを読み出すことと、メモリダイの回路によって、Foggy読み出し動作の結果及びパリティデータから複数の論理ページのデータを計算することと、Fineプログラミング動作で、MLCメモリのページを第1の分布から第2の分布に更にプログラミングすることであって、第2の分布は、パリティデータから計算された複数の論理ページを表す、ことと、を含む。
【0157】
複数の論理ページのパリティデータを計算することは、MLCメモリのページのメモリセルごとに1つのパリティビットを計算することを含んでよい。パリティデータを計算することは、複数の論理ページに対して排他的OR(XOR)演算を実行することを含んでよい。この方法は、シングルシングルレベルセル(SLC)セルとして構成されている追加メモリセル内のメモリダイにパリティデータを記憶することを含んでよい。この方法は、SLCセルからパリティデータからパリティデータを読み出すことと、パリティデータから複数の論理ページを計算する前に、パリティデータのエラー訂正コード(ECC)復号を実行することと、を更に含んでよい。この方法は、揮発性メモリに記憶されるパリティデータをメモリダイから送信することと、続いて、計算するために揮発性メモリからパリティデータを受信することと、を更に含んでよい。この方法は、Foggyプログラミング動作の後、かつFoggy読み出し動作の前に、MLCメモリの少なくとも1つの他のページをプログラミングすることを更に含んでよい。MLCメモリのページは、NANDメモリ構造の第1ワード線に沿って存在してよく、MLCメモリの少なくとも1つの他のページは、NANDメモリ構造の少なくとも第2ワード線に沿って存在してよい。メモリセルが第1の分布にある間にMLCメモリのページを読み出すことは、第1の分布の中点又はその付近の読み出しレベルを使用することを含んでよい。
【0158】
不揮発性記憶装置の例は、複数の不揮発性メモリセルを含むメモリダイを含み、メモリダイは、複数の不揮発性メモリセルに記憶されるデータのパリティデータを計算するための手段と、複数の不揮発性メモリセルを第1の分布にプログラミングするための手段と、第1の分布にある複数の不揮発性メモリセルを読み出すための手段と、パリティデータと組み合わせて、第1の分布にある複数の不揮発性メモリセルの読み出しの結果からデータを復元し、複数の不揮発性メモリセルを第1の分布から第2の分布へと更にプログラムしてデータを記憶するための手段と、を更に含む。
【0159】
不揮発性記憶装置は、メモリダイに接続されたメモリコントローラダイを含んでよく、メモリコントローラダイは、パリティデータをエラー訂正コード(ECC)復号し、復号されたパリティデータを、データを復元するための手段に送信するための手段を含む。例えば、
図2Aを再び参照すると、結合されたダイペア394において、メモリダイはメモリダイ390に対応し得、ECCは、周辺回路又は制御ダイ398上で実行され得る。
【0160】
上記の符号化されたFoggy-Fineプロセスは、Foggy-Fineプログラミングモードの利点を、メモリダイ上で単純な論理を用いて実施することができ、コントローラのエラー訂正エンジンを必要としないために、Foggyフェーズではオーバーヘッド又は待ち時間ペナルティをほとんど伴わずにデータを抽出できるという利点と組み合わせる。最も効率的に動作するために、上記の技術は、NANDからのFoggyデータの読み出しは高速かつ極めて低いビットエラー率(BER)で生じると仮定する。この仮定は、より高いBERが生じ得る、Foggyプログラミング後の不適切なシャットダウン、又はメモリデバイスにとって極端な動作条件(極端な交差温度など)など極端な事例において該当しないことがある。符号化されたFoggy-Fineプロセスは、パリティ値に基づいているために、隣接するグレイ符号状態間で1ビットの反転のみを訂正することができる。上記の考察は、符号化されたFoggy-Fine読み出し閾値が較正されると概ね仮定し、16レベルのQLCシステムの15の読み出し閾値電圧を較正する方法については考察しない。次の節は、マルチレベルで符号化されたFoggy-Fineプログラミング法に適合した読み出し閾値を最適化する技術について説明する。実施形態に応じて、このFoggyフェーズの読み出し閾値較正は、定期的に、及び/又は、高BER若しくは動作条件の変化など状況に応じて実行され得る。
【0161】
Fineフェーズでのように、比較的良好に分離した分布にプログラムされたときに、フラッシュ及び他の不揮発性メモリデバイスのマルチレベル読み出し閾値電圧を最適化するための技術が既知である。かかる読み出し閾値の最適化は、より狭い分布を有する16の状態のセル電圧分布を有し、各状態の分布のより狭い状態間での重複に起因する誤りビットのリスクがより高いQLC製品など、より多くの状態がメモリセルに記憶されるにつれてより重要になる。Fine状態にプログラムされたデータと共に使用されるであろうアルゴリズムなど、「標準」読み出し閾値較正アルゴリズムは、状態を区別するために、
図9に示す読み出し値など2つの隣接する状態間のセル電圧分布最小値(又は、BER最小値)、例えば、S6分布とS7分布との間の最小値に位置するVrS7などを見出すことに基づく。対照的に、
図13Aに示すように、符号化Foggyデータを抽出するために使用される読み出しレベルは、代わりに、Foggy分布(例えば、S7’に使用されるRL7)の中心又はその付近に位置する。その結果、新たな技術を使用して、Foggyフェーズの読み出し電圧レベルを最適化する必要がある。
【0162】
以下の説明は、符号化されたFoggy-Fineプログラミングスキームを使用するときに、Foggyプログラム分布の読み出し閾値を較正する方法を提示し、複雑性と利益との間のトレードオフを特定用途向けに最適化することができるように複数の実施形態を提示する。これらのスキームは、メモリダイ、記憶装置コントローラ、結合されたダイペア、又はこれらの組み合わせのいずれかで実施することができる。再び
図13Aを参照すると、RL
1~RL
15の閾値の組を最適化する際の主な課題は、これらが分布状態の中心に位置し、その一方で、「標準」読み出し閾値較正アルゴリズムは、2つの隣接する状態間の最小値を見出すように設計されていることである。
【0163】
第1の組の実施形態では、Foggy段階分布のピークは、RL閾値として機能することが見出され得る。状態分布のピークは、電圧軸をビン(すなわち、読み出し電圧レベルの範囲)に分解し、各ビン内のセル数をカウントすることによって見出され得る。これを行うためには、各ワード線が全ての関連電圧で読み出され、読み出しが実行され、各セルが伝導を開始するビンは、このセルについて選択されたビンである。次いで、ビンのセルが合計される。実施形態に応じて、決定は、各ビンのセル数のカウントに基づいて、メモリセルを用いてビンを選択することができ、又はビン値が使用されて各分布の極値を推定することができる。
【0164】
別の組の実施形態では、状態分布間の谷部が見出され得、次いで、RL電圧レベルが、これらの谷部の間の中央として選択され得る。この実施形態が使用される例を、
図21に示す。この図では、
図13Aの特徴の多くを繰り返すが、RL
1の例を決定するために使用される読み出し値を強調する。
【0165】
より具体的には、
図21は、Foggy状態分布間の谷部の決定に基づいた、Foggy分布のためのFoggy読み出し電圧レベルの決定を示す。(Fine)プログラムされたメモリセル分布のための読み出し電圧レベルの最適な読み出し点を決定するためのより標準的な技術と同様に、各分布間の谷部が決定され得る。例えば、S1’を見ると、S0とS1’との間の谷部が決定されて、VR0値を提供することができ、S1’とS2’との間の谷部が決定されて、VR1値を提供することができる。RL
1値は次に、RL
1=(VR0+VR1)/2として取得され得る。この実施形態の精度は、分布の非対称性に起因して低減し得、またRL
15値を決定しない。
【0166】
別の組の実施形態では、読み出しレベルがシフトした数回の読み出しによって、ECC関連技術を使用して、RLレベルに対するスキャンが実行されて、符号化されたFoggy-FineスキームにおいてFoggyフェーズデータで使用される読み出し閾値を較正するための最良の推定値を提供する。この方法によって見出される読み出し閾値は、前述のいくつかの段落で提示した実施形態と比較してより良好に実行することが期待されるが、実行には追加の計算オーバーヘッドを使用する。この技術は、メモリからページ全体のデータを読み出し、いくつかの異なる読み出し閾値を使用して、ページのデータについてECC関連情報を計算する。例えば、ページは、論理ページ当たり3つの閾値を用いて、閾値当たり5回の読み出しで読み出され得、5回の通常の読み出しから53のエミュレーションを生じさせる。これらの感知動作及びそれらのECC関連情報に基づいて、読み出し値の最良の推定値が決定され得る。
【0167】
いくつかの実施形態では、ECC関連情報は、メモリから読み出したECCコードワードを完全に復号せずに、例えば、完全に復号することなく、不十分なECCパリティチェック式の数(シンドローム重みとしても知られる)を計算することによって使用され得る。これにより、完全に復号することなく、シンドローム重みによりエラーの数を推定することができるので、読み出された各ページの完全復号に関連する待ち時間を低減することができる。一般に、より大きいシンドローム重みを有する読み出しは、より小さいシンドローム重みを有する読み出しよりも多くのビットエラーを有する。
【0168】
例えば、いくつかの実施形態では、ECCエンジン226/256は、ページの読み出しに使用される読み出し電圧レベルの組ごとに、不十分なパリティチェック式の数を示すシンドローム値を生成することができる。読み出し電圧レベルの組ごとのシンドロームは、一般に、対応する読み出し電圧レベルの組のそれぞれにおけるエラーの相対量を示す。実施形態に応じて、シンドロームは、完全復号と比較して待ち時間の少ない専用ハードウェア回路を使用して、ファームウェアを使用して、又はこれらの何らかの組み合わせを使用して生成され、メモリコントローラ102及び/又はメモリダイ300若しくは制御ダイ398上で実行されてよい。例えば、
図1E及び
図2Aを参照すると、オンダイ制御回路310は、ハードウェアシンドローム重み(SW)演算ブロック215を含み得る。ECC関連情報は、読み出し電圧レベルの組ごとのシンドローム値を含んでもよく、SW演算ブロック215は、シンドロームを検索及び/又はソートして、読み出し電圧レベルの組の最低推定BERを識別し、読み出し電圧レベルの最良の推定値の組を選択することができる。SW演算ブロック215又はこの目的に使用される他の回路は、読み出し電圧レベルを使用して読み出されたページごとにシンドローム重みを決定することができ、最低のシンドローム重みをもたらす感知電圧レベルに基づいて、更新された読み出し電圧を選択するか、又は推定することができる。
【0169】
プログラミング後(すなわち、Foggy-FineプログラミングのFineフェーズ後)にメモリセルの組に通常適用されるように、プロセスは、
図8のVrA、VrB、...又は
図9のVrS1、VrS2、...などメモリセル閾値電圧分布間の谷部での読み出し電圧レベルを決定するために適用される。読み出し電圧レベルの最良の値を推定するために、論理データページは複数回読み出され、値は、読み出しごとにわずかにシフトする。例えば、5回又は7回の通常の論理ページの読み出しの組が実行され、分布間の予想される谷部の下側(
図8及び
図9に示されるように左)で読み出し電圧から始まり、読み出しごとに、読み出しのシーケンスの高い側(右)に向かってをシフトし得る。かかる読み出しが多いほど、推定値はより良好であるが、より多くの計算が必要となるであろう。次に、読み出し閾値の組み合わせごとに、シンドローム重みが計算され得る。次いで、読み出し電圧レベルの最良の組を推定するために使用される、シフトした読み出し閾値が、最低シンドロームを有する値を選択するか、又は極値(例えば、期待されるBERの最小値)を推定するためのいくつかの処理を実行することによって、これらのシンドローム重みから決定され得る。
【0170】
直前に記載した技術では、「最良推定スキャン(best estimate scan)」、つまりBESは、最も良好な読み出し電圧レベルを決定して、Fineフェーズプログラムの後に生じるような比較的良好に定義された分布を区別する。以下では、
図13Aに示すように、メモリセル閾値分布に著しい重複が存在する、符号化されたFoggy-FineプロセスのFoggyフェーズでプログラムされたデータで動作するように、BES技術を修正することについて考察する。各BES動作は、読み出しに論理ページ全体を使用するため、Foggy復号は、偶数及び奇数のXORパリティ値を動作に組み込む。
【0171】
1つの組のBESベースの実施形態では、「標準」バージョンは、(
図13Dに関して上述したように)BES入力としてパリティビットを使用して復号された後に、Foggyフェーズ論理ページを使用するように修正される。これらの復号されたFoggyフェーズ論理ページを使用して、較正された読み出し閾値は、偶数(0パリティ値)分布グループと奇数(1パリティ値)分布グループとの平均を表す。全ての論理ページに対して較正プロセスが行われた後、いくつかの論理ページに対して較正された状態が存在する場合には、それらの結果が平均化され得るように集計され得る。この組の実施形態を、
図22に関連して示す。
【0172】
図22は、符号化されたFoggy-FineプログラミングプロセスのFoggyフェーズにプログラムされる1組のメモリセルのためにBESプロセスを使用する実施形態のフローチャートである。工程2201において、論理ページのFoggyプログラムされたデータが、5回又は7回など数回読み出され、
図13A~
図13Dに関して記載したようにXORパリティ値を使用して復号される。論理ページの数回の読み出しのそれぞれは、他の読み出しに対してシフトされた読み出し電圧レベルで実行され、オンダイ制御回路310の素子、デコーダ/ドライバ324/332、及び読み出し/書き込み回路328など、
図1Eのダイ300又は
図2Aの制御ダイ398のメモリ上の読み出し回路素子を使用して実され得る。
【0173】
工程2203では、工程2201で読み出され、復号された論理ページを使用して、BESプロセスが実行される。これは、実施形態に応じて、シンドローム重み計算ブロック315、コントローラ102、又はこれらの組み合わせで実行され得る。「標準」BESについて上述したプロセスと同様に、工程2203のBESプロセスは、工程2201で使用された読み出し電圧レベルの組み合わせごとにシンドローム重みを計算し、これらのシンドローム重みから、以降の動作中にこれらのレベルの最良推定値を見出すか、又は内挿する。工程2205では、次いで、
図13A~
図13Eに関して記載したように、続いてプロセスを実行するために偶数(0パリティ)状態及び奇数(1パリティ)状態の両方について、BESで決定された閾値が、読み出しレベルRL1~RL15として集計される。
【0174】
図22に関して記載した方法は、同一論理ページの奇数パリティRL及び偶数パリティRLは同一方向に移動するという根本的な前提を有する。この前提は、通常有効であるが、場合によっては、そうとは限らないことがある。別の組のBESベースの実施形態では、奇数パリティグループ及び偶数パリティグループは、かかる前提を回避するために、別個に較正され得る。
【0175】
1つの実装形態では、BES動作は、読み出し電圧レベルのデフォルト閾値位置、又は以前のBES動作で確立された値から始まり、これらのデフォルト値に対して読み出し電圧レベルをシフトさせ、1回に1つの論理ページを読み出す。セル当たり4ビット、つまりQLCでは、4つの論理ページが物理ページ(例えば、ワード線)に記憶され、所与の論理ページを読み出すために、3つ又は4つの読み出し電圧レベル(
図13DのビットT、C、B、及びAに対応するなど)が同時に行われる。例えば、QLCの4つの論理ページは、3、4、4、4の読み出し構成で読み出されてよい。RL1~RL15の位置についての初期の十分に良好な推測は、
図23に示すものなど通常の(すなわち、Fine状態)VrS1~VrS15(
図9を参照)の位置の間の平均であってよい。
【0176】
図23は
図13Aの要素を繰り返すが、Foggyフェーズの読み出しレベルを推定するための実施形態を示すために詳細が加えられている。前述したように、セル当たり4ビットの実施形態を、メモリセル分布がFoggy状態S0、S1’、S2’,...,S15’にプログラムされた状態で、対応するパリティ値と共に示す。ここでは、各分布のパリティ値の上方に、状態のグレイ符号の一例における各状態の4ビットデータ値(例えば、S4’=1100)を示す。分布の上方には、メモリセルが
図9のFine分布にプログラムされたデータ状態を区別するために使用されるものと同様の、いくつかの読み出し点の位置を示す。図示したFine分布の読み出し点は、データ値の「A」(すなわち、最終)ビットの変化を区別するために以下のように使用される:VrS4’(1101~1100)、VrS7’((0000~0001)、VrS9’((0011~0010)、及びVrS14’((1000~1001)。Fineプログラムされると、これらの読み出し点は、Aページ値が変化するデータ状態に対応するビットを決定するために使用される。前述のように、XORパリティページが全ての4つのQLCページについて計算され、奇数番号の分布(S1’、S3’、...)は1、偶数番号の分布(S0、S2’、S4’、...)は0のパリティビットを得る。
【0177】
XORされたデータからのパリティ値を使用して、偶数メモリセル電圧分布と奇数メモリセル電圧分布とを区別する能力に基づいて、メモリシステムは、パリティ状態分布の組のうちの1つ、例えば、偶数の状態分布を固定することによって、BES計算を実行することができ、最初に奇数のみのRL閾値を最適することができる。この実装形態では、メモリシステムは、最初に第1のRL1、RL3、RL5、RL7、RL9、RL11、RL13、及びRL15を最適化し、これらが最適化された後、システムは、これらを最適点で使用して、奇数状態のRL(RL0、RL2、RL4、RL6、RL8、RL10、RL12及びRL14)を計算することができる。あるいは、順序を逆にして、奇数の状態を最初に処理することもできる。いずれの順序でも、組ごとのBESシンドローム重みの計算動作は、Fineプログラムされた分布のためのより日常的なBES動作に対して行わる動作と同じであり得る。しかしながら、システムは、まず、符号化されたFoggy-Fine法に従って、XORパリティビットが正しいことを確認する必要がある。XORデータの訂正後、このデータを使用してRLを最適化することができる。
【0178】
図23はまた、5回の検知動作が使用される場合のVrS4’、VrS7’、VrS9’、及びVrS14’の両側への分布のためのBESプロセスの読み出し電圧レベルの実施形態を示す。これらの電圧読み出しレベルの組(「BES5」)は、対応するFoggy分布の下に概略的に示す。本実施形態におけるBESアルゴリズムの読み出しは、シフトされた閾値Vt-2Δ、Vt-Δ、Vt、Vt+Δ、Vt+2Δ(この例では、全ての電圧レベルが同量シフトし、V
tは、状態のデフォルト値又は以前に決定されたRL値であり、Δは、読み出しレベル間の電圧シフトであり、この例では、ステップサイズが均一である)を有する論理ページの5回の検知動作に基づき得る。5つの検知されたページは、コントローラ102、シンドローム重み計算ブロック315、又はこれらのいくつかの組み合わせに転送され得、したがって、3つ又は4つの閾値のシンドロームの重みを最小化する最適位置で決定される。
【0179】
直前に記載したような単一BES操作では、#Sensesが各分布の読み出し動作の回数であり、#THが読み出される分布の数である場合、合計で(#Senses)^(#TH)の潜在的な組み合わせ、この実施例では合計5
4の組み合わせが存在するが、いくつかの実施形態では、スキャン機構が、早急に終了し得るように検索を最適化することができる。しかしながら、同一動作で奇数分布及び偶数分布の読み出し電圧レベルを較正するBESの単純な実装形態では、ページ当たり8個の閾値が存在して合計5^8の組み合わせとなり、多大な計算量である。したがって、奇数グループ及び偶数グループに対する最適化空間を低減し、各グループを別々に最適化することは、奇数-奇数ビット又は偶数-偶数ビットの混合が極めて低く、この工程で無視することができるために理に適う利点を有する。この構成の下では、符号化されたFoggy-Fine BES動作のそれぞれは、2つの通常のBES動作、つまり奇数分布のための動作と偶数分布のための動作を包含する。15個のRL閾値を全て較正するために、全論理ページについて符号化されたFoggy-Fine BES動作を行う必要はない。これは、符号化されたFoggy-Fine BES動作当たり7/8個の閾値が較正されるためである。マッピングは、この種の分離を可能にするように設定されてよい。
図23の符号化に基づいた4-3-4-4マッピングでは、例えば、5つのBES動作のみが必要である。「通常の」BES(Fineプログラムされた分布の場合など)では、論理ページを含む閾値は、他の論理ページとは別個に較正される。Foggyプログラムされた分布のための強化されたFoggy-Fine BESでは、一部の読み出しオーバーヘッドが隣接する論理ページ間で共通であるため、同一又は隣接するBES動作内の全ての論理ページの全ての閾値を較正することが理に適っている。
【0180】
図24は、一方の組の分布(奇数又は偶数のいずれか)が他の組の前に較正される、符号化されたFoggy-FineプロセスのFoggyフェーズでプログラムされたデータのための最良の推定スキャン動作の実施形態のフローチャートである。次いで、一方の組の較正された閾値を使用して、他方の組が較正される。
図24のフローでは、奇数パリティ状態が最初に較正され、その後、偶数の状態が較正されるが、他の実施形態は順序を逆にすることができる。
【0181】
工程2401から開始して、偶数状態の読み出しレベル値を、デフォルトの、又は以前に確立された電圧レベルの組などに固定している間に、奇数状態のRL値がスキャンされる。工程2201と同様に、論理ページのFoggyプログラムされたデータが、5回又は7回など数回読み出され、
図13A~
図13Dに関して記載したようにXORパリティ値を使用して復号される。論理ページの数回の読み出しのそれぞれは、他の読み出しに対してシフトされた奇数状態の読み出し電圧レベルで実行され、オンダイ制御回路310の素子、デコーダ/ドライバ324/332、及び読み出し/書き込み回路328など、
図1Eのダイ300又は
図2Aの制御ダイ398のメモリ上の読み出し回路素子を使用して実行され得る。工程2403では、工程2401で読み出され、復号された論理ページを使用してBESプロセスが実行され、奇数状態分布のRLレベルを較正する。これは、実施形態に応じて、シンドローム重み計算ブロック315、コントローラ102、又はこれらの組み合わせで実行され得る。「標準」BESについて上述したプロセスと同様に、工程2403のBESプロセスは、工程2401で使用した読み出し電圧レベルの組み合わせごとにシンドローム重みを計算し、これらのシンドローム重みから、以降の動作中にこれらのレベルの最良推定値を見つけるか、又は外挿する。
【0182】
工程2405及び2407はそれぞれ、工程2401及び工程2403を繰り返すが、偶数状態分布については、工程2403で決定された電圧レベルに奇数状態RL値を固定する。偶数状態RL値が工程2407で決定されると、工程2409において、奇数状態分布のための工程2403の結果と集計されて、Foggy状態メモリセル電圧分布の全てについて最終のRL値の組を生成する。
図24のいくつかの変形例が可能である。例えば、いくつかの実施形態では、追加メモリを使用して論理ページの全てを記憶し、奇数及び偶数のRL値を同時に計算することによって、待ち時間を低減することができる。この場合、較正プロセス後に、両方の場合で較正された状態が存在する場合には、それらの結果が平均化され得るように、集計が行われてよい。
【0183】
図25は、Foggy分布の読み出しのための読み出し電圧レベルの較正を組み込む、符号化されたFoggy-Fine動作の実施形態のフローチャートである。より具体的には、
図25は、上述した
図20のフローにRLレベルの較正を組み込む。結果的に、工程2501、工程2503、及び工程2505は、それぞれ、マルチレベルセル(MLC)メモリのページに記憶されるデータの論理ページを受信し、複数の論理ページのデータのパリティデータを計算し、メモリのページのメモリセルが第1の分布にプログラムされるように、Foggyプログラム動作で複数の論理ページのデータをプログラムする、工程2002、工程2004、及び工程2006に対応し得る。これらの工程については、
図20に関して上記で詳述する。
【0184】
Foggy状態の読み出し電圧レベル(RL値)を較正するかどうかを判定する決定は、続いて工程2507で行われる。これは、大半の実施形態では、かかる較正が、工程2515における以降の読み出しの多く前には実行されないためである。工程2507は、工程2505のプログラミングの直後に続いて行われる必要はないが、工程2515におけるFoggyフェーズデータの読み出しに先立って、以降の任意の時間に生じ得ることに留意されたい。較正(又は再較正)を実行するかどうかの決定は、実施形態に応じて、例えば、前回の較正からの時間、Foggy状態分布からのデータ復元時の高ビットエラー率、高プログラム消去カウント、又は動作条件など因子など1つ以上の基準に基づき得る。較正がFoggyデータの読み出し前に実行されるべきではない場合(工程2507からの「いいえ」の経路)、電流RL値が維持され(工程2509)、フローは工程2515に続く。工程2509における電流RL値は、デフォルト値又はフローを通過する以前の経路で以前に較正された値であり得る。
【0185】
較正が実行されるべきである場合(工程2507からの「はい」の経路)、続いて工程2511において、Foggy分布の読み出しの組が実行され、工程2513において、工程2511の読み出しに基づいてRL値が確立される。これらの工程の詳細は、上記に示したいくつかの実施形態のうちの1つに従うことができる。例えば、第1の組の実施形態では、Foggy段階分布のピークは、電圧軸をビン(すなわち、読み出し電圧レベルの範囲)に分解し、各ビン内のセル数をカウントすることによって、RL閾値として機能することが見出され得る。別の組の実施形態では、
図21に関して上述したように、状態分布間の谷部が見出され得、次いで、RL電圧レベルは、これらの谷部の間の中央として選択され得る。更に他の実施形態は、
図22、
図23、及び
図24に関して上述したように、BESプロセスに基づくことができる。工程2513でRL値が較正されると、Foggyデータは、工程2515bでこれらの値を用いて読み出され得る。工程2517は、工程2515の直後に続くことが示されているが、これが生じる前に様々な長さの時間が存在し得ることが理解されるであろう。
【0186】
Foggy分布からデータの復元が実行されると(工程2509又は工程2513のいずれかに続いて)、フローは、
図20の工程2008、工程2010、及び工程2012にそれぞれ対応し得、上記でより詳細に説明した工程2515、2517、及び2519に続く。工程2507における決定に応じて、工程2515の読み出しは、工程2009の保持されたRL値、又は工程2513で較正された値のいずれかを使用し、工程2517において、読み出し値及びパリティデータを用いてデータを復元し、所望に応じて、次いでデータがFineプログラムされ得る。
【0187】
したがって、上記の実施形態のいずれかについて、符号化されたFoggy-FineスキームにおけるFoggyフェーズのセル電圧分布のデータコンテンツを抽出するために使用される読み出し電圧レベルの較正を可能にするための技術が導入される。符号化されたFoggy-Fineプロセスにおける読み出し閾値の較正のための信頼性の高い方法を利用できることにより、Foggy状態の書き込み後、かつFine状態の書き込み前に、メモリによって誘発されるビットエラー率を大幅に低減させることができる。
【0188】
第1の組の態様によると、装置は、複数ビットのデータを保持するようにそれぞれ構成された、複数の不揮発性メモリセルの1つ以上のアレイに接続するように構成された制御回路を含む。この制御回路は、複数の不揮発性メモリセルに記憶されるデータのパリティデータを計算し、複数の不揮発性メモリセルを複数の第1の分布にプログラムし、第1の分布にある複数の不揮発性メモリセルの複数回の第1の読み出しを実行し、第1の分布にある複数の不揮発性メモリセルの複数回の第2の読み出しのための複数の読み出し電圧レベルを、第1の読み出しの結果から決定し、決定した読み出し電圧を使用して、第1の分布にある複数の不揮発性メモリセルの複数回の第2の読み出しを実行し、第2の読み出しとパリティデータとの組み合わせから複数の不揮発性メモリセルに記憶されるデータを復元するように構成されている。
【0189】
追加の態様では、方法は、メモリデバイスによって、複数の不揮発性メモリセルを有するマルチレベルセル(MLC)メモリのページに記憶される、複数の論理ページのデータを受信することと、メモリデバイスの回路によって、複数の論理ページのパリティデータを計算することと、MLCメモリのページのメモリセルが複数の第1の分布にプログラムされるように、Foggyプログラム動作でMLCメモリのページに複数の論理ページのデータをプログラムすることと、を含む。この方法は、メモリセルが、第1の分布にある間に、複数回の第1のFoggy読み出し動作でMLCメモリのページを読み出すことと、メモリデバイスの回路によって、第1の分布にある複数の不揮発性メモリセルの複数回の第2の読み出しのための読み出し電圧レベルを、第1のFoggy読み出し動作の結果から決定することと、決定した読み出し電圧レベルを使用して、メモリセルが第1の分布にある間に、複数回の第2のFoggy読み出し動作でMLCメモリのページを読み出すことと、メモリダイの回路によって、第2のFoggy読み出し動作の結果及びパリティデータから複数の論理ページのデータを復元することと、を更に含む。
【0190】
別の組の態様では、不揮発性メモリデバイスは、複数ビットのデータを保持するようにそれぞれ構成された複数の不揮発性メモリセルと、複数の不揮発性メモリセルに接続された1つ以上の制御回路とを含む。1つ以上の制御回路は、複数の不揮発性メモリセルに記憶されるデータのパリティ値を計算するための手段と、第1の分布が著しい重複を有するように、Foggyプログラム動作で複数の不揮発性メモリセルに記憶されるデータを第1の分布にプログラムするための手段と、第1の分布にプログラムされた複数の不揮発性メモリセルを読み出すための電圧値を最適化するための手段と、最適化した電圧値を使用して、第1の分布にある複数の不揮発性メモリセルを読み出すための手段と、パリティデータと組み合わせて、第1の分布にある複数の不揮発性メモリセルの読み出しの結果から、複数の不揮発性メモリセルに記憶されるデータを復元するための手段と、複数の不揮発性メモリセルを第1の分布から第2の分布に更にプログラムして、復元したデータを記憶するための手段とを含む。
【0191】
1組の実施形態では、複数の不揮発性メモリセルに記憶されるデータのパリティ値を計算するための手段は、
図1E又は
図2Aのオンダイ制御回路310、メモリコントローラ102の素子(ECCブロック226/256、XORブロック224/254、及び他のメモリコントローラ素子など)、又はこれらの組み合わせを含み得る。
【0192】
1組の実施形態では、Foggyプログラムで、複数の不揮発性メモリセルに記憶されるデータを第1の分布にプログラムするための手段は、
図1E及び
図2Aの読み出し/書き込み回路328と、行デコーダ324と、列デコーダ332と、ステートマシン312、オンチップアドレスデコーダ314、及び電力制御回路316を含む制御回路310とを含み得る。Foggyプログラミング動作を実行するためのこれらの素子の動作は、
図7~
図11に関して上述したとおりであり得る。
【0193】
1組の実施形態では、第1の分布にプログラムされた複数の不揮発性メモリセルを読み出すための電圧値を最適化するための手段は、
図25の工程2511及び工程2512を実行するために使用される素子に対応し得る。これは、Foggyプログラムされたデータを読み出すための回路、例えば、
図1E及び2Aのセンスブロック350、行デコーダ324、列デコーダ332を有する読み出し/書き込み回路328と、ステートマシン312、オンチップアドレスデコーダ314、及び電力制御回路316を含む制御回路310とを含み得る。最適化された電圧は、読み出し値から、
図1E又は
図2Aのオンダイ制御回路310(SW演算ブロック315を含む)、メモリコントローラ102の素子(ECCブロック226/256、XORブロック224/254、及び他のメモリコントローラ素子など)、又はこれらの組み合わせによって決定され得る。
【0194】
1組の実施形態では、最適化された電圧値を使用して第1の分布にある複数の不揮発性メモリセルを読み出すための手段は、
図1E及び
図2Aのセンスブロック350、行デコーダ324、列デコーダ332を有する読み出し/書き込み回路328と、ステートマシン312、オンチップアドレスデコーダ314、及び電力制御回路316を含む制御回路310とを含み得、ラッチ構造を含む更なる詳細を
図3A、
図3B、及び
図4に示す。これは、
図25の工程2515に対応し得る。
【0195】
1組の実施形態では、パリティデータと組み合わせて、第1の分布にある複数の不揮発性メモリセルの読み出しの結果から、複数の不揮発性メモリセルに記憶されるデータを復元するための手段は、
図25の工程2517及び
図13A~
図13Eのように、読み出し結果をパリティと組み合わせることができる、オンダイ制御回路310内の論理回路を含み得る。
【0196】
1組の実施形態では、複数の不揮発性メモリセルを第1の分布から第2の分布に更にプログラムして、復元データを記憶するための手段もまた、
図1E及び
図2Aの読み出し/書き込み回路328と、行デコーダ324と、列デコーダ332と、ステートマシン312、オンチップアドレスデコーダ314、及び電力制御回路316を含む制御回路310とを含み得る。Fineプログラミング動作を実行するためのこれらの素子の動作は、
図7~
図11及び
図25の工程2519に関して上述したとおりであり得る。
【0197】
本明細書の目的のために、明細書中の「実施形態」、「一実施形態」、「いくつかの実施形態」又は「別の実施形態」に対する言及は、異なる実施形態又は同一の実施形態について記述するために使用されることがある。
【0198】
本明細書の目的のために、接続とは、直接的な接続又は間接的な接続(例えば、1つ又は複数の他の部分を介して)であり得る。場合によっては、ある要素が別の要素に接続されるか又は結合されると言及される場合、この要素は、他の要素に直接的に接続されてもよく、又は、介在要素を介して他の要素に間接的に接続されてもよい。ある要素が別の要素に直接的に接続されていると言及される場合、この要素と他の要素との間には介在要素は存在しない。2つのデバイスは、それらが互いの間で電子信号を交換することができるように直接的に又は間接的に接続されている場合、「通信状態」にある。
【0199】
本明細書の目的のために、「基づいて」という用語は、「少なくとも部分的に基づいて」と読むことができる。
【0200】
本明細書の目的のために、追加の文脈がない、「第1の」物体、「第2の」物体、及び「第3の」物体などの数値的な用語の使用は、物体の順序を示唆するものではなく、代わりに、異なる物体を識別するための識別目的で使用されることがある。
【0201】
本明細書の目的のために、物体の「組」という用語は、複数の物体のうちの1つ又は複数の物体の「組」を指すことがある。
【0202】
前述の詳細な説明は、例示及び説明の目的のために提示されている。前述の詳細な説明は、網羅的であること、又は開示された正確な形態に限定することを意図したものではない。上記の教示に鑑みて多くの修正及び変形が可能である。説明した実施形態は、提案した技術の原理及びその実際の用途を最もよく説明するために選択されたものであり、それによって、当業者が様々な実施形態で、企図される特定の使用法に適するように様々な修正を伴って、この技術を最も良いように利用することを可能にする。本範囲は、本明細書に添付の特許請求の範囲によって定義されることが意図される。
【要約】 (修正有)
【課題】符号化されたFoggyフェーズデータの復元精度を改善するために、Foggy状態分布の感知で使用される電圧レベルを較正する不揮発性メモリセル及び制御回路を含む装置を提供する。
【解決手段】メモリシステム100において、コントローラ102は、メモリセルに記憶されるデータのパリティデータを計算し、メモリセルを第1の分布にプログラムし、第1の分布にあるメモリセルを読み出し、パリティデータと組み合わせて、第1の分布にあるメモリセルの読み出しの結果からデータを復元し、メモリセルを第1の分布から第2の分布に更にプログラムしてデータを記憶する。
【選択図】
図1A