JP2023038769A - 半導体記憶装置 - Google Patents
半導体記憶装置 Download PDFInfo
- Publication number
- JP2023038769A JP2023038769A JP2021145658A JP2021145658A JP2023038769A JP 2023038769 A JP2023038769 A JP 2023038769A JP 2021145658 A JP2021145658 A JP 2021145658A JP 2021145658 A JP2021145658 A JP 2021145658A JP 2023038769 A JP2023038769 A JP 2023038769A
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory cell
- verify
- write operation
- write
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
- G11C16/3459—Circuits or methods to verify correct programming of nonvolatile memory cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/102—External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/24—Bit-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3404—Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
- G11C16/3427—Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
- G11C7/106—Data output latches
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
- G11C7/1087—Data input latches
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/32—Timing circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/562—Multilevel memory programming aspects
- G11C2211/5621—Multilevel programming verification
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5642—Multilevel memory with buffers, latches, registers at input or output
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5648—Multilevel memory programming, reading or erasing operations wherein the order or sequence of the operations is relevant
Abstract
【課題】読み出し動作時間が長くなるのを抑制した半導体記憶装置を提供する。【解決手段】実施形態の不揮発性メモリ2は、メモリセルアレイ21と、第1書き込み動作と、第1書き込み動作後の第2書き込み動作とを実行可能で、第2書き込み動作において、nビットデータを書き込むプログラム動作と、プログラム動作により書き込まれたnビットデータのベリファイを行うベリファイ動作とを実行するシーケンサ25と、を有する。シーケンサ25は、メモリセルMT1に隣接する2つのメモリセルMT2、MT3に書き込まれたデータを読み出し、読み出したデータと、メモリセルMT1に第1書き込み動作により書き込まれたデータとに基づいて、第2書き込み動作におけるメモリセルMT1のベリファイ動作のためのベリファイ電圧レベルを複数設定する。【選択図】図19
Description
本発明の実施形態は、半導体記憶装置に関する。
半導体記憶装置が複数回の書き込み動作(書き込みシーケンス)を行うことによって多値データの書き込みを行う方式がある。そのような方式では、多値データの書き込みを行うために必要となる時間が長くなってしまう場合がある。また、多値データを書き込むことで、半導体記憶装置からデータを読み出すために必要となる時間が長くなってしまう場合がある。
実施形態は、読み出し動作のための時間あるいは書き込み動作のための時間が長くなるのを抑制した半導体記憶装置を提供することを目的とする。
実施形態の半導体記憶装置は、1メモリセル当たりn(nは、2以上の整数)ビットデータを記憶可能なメモリセルを複数含むメモリセルアレイと、各メモリセルにnビット中p(p<n)ビットデータを書き込む第1書き込み動作と、前記第1書き込み動作後に前記各メモリセルに前記nビットデータを書き込む第2書き込み動作とを実行可能で、前記第2書き込み動作において、前記nビットデータを書き込むプログラム動作と、前記プログラム動作により書き込まれた前記nビットデータのベリファイを行うベリファイ動作とを実行する制御回路と、を有し、前記制御回路は、第1メモリセルに隣接する少なくとも1つの第2メモリセルに書き込まれた少なくとも1つの第1データを読み出し、読み出した前記第1データと、前記第1メモリセルに前記第1書き込み動作により書き込まれた第2データとに基づいて、前記第2書き込み動作における前記第1メモリセルの前記ベリファイ動作のためのベリファイ電圧レベルを複数設定する。
以下、図面を参照して実施形態を説明する。
(第1の実施形態)
(メモリシステムの構成)
(第1の実施形態)
(メモリシステムの構成)
図1は、本発明の実施形態のメモリシステムの構成例を示すブロック図である。本実施形態のメモリシステムは、メモリコントローラ1と、半導体記憶装置としての不揮発性メモリ2とを備える。メモリシステムは、ホストと接続可能である。ホストは、例えば、パーソナルコンピュータ、携帯端末などの電子機器である。
不揮発性メモリ2は、データを不揮発に記憶するメモリであり、例えば、NANDメモリ(NAND型フラッシュメモリ)を備えている。不揮発性メモリ2は、例えば、メモリセルトランジスタ(以下、メモリセルともいう)あたり4bitを記憶可能なメモリセルを有するNANDメモリ、すなわち4bit/Cell(QLC:Quad Level Cell)のNANDメモリである。
メモリコントローラ1は、ホストからの書き込みリクエストに従って不揮発性メモリ2へのデータの書き込みを制御する。また、メモリコントローラ1は、ホストからの読み出しリクエストに従って不揮発性メモリ2からのデータの読み出しを制御する。メモリコントローラ1と不揮発性メモリ2との間では、チップイネーブル信号/CE、レディービジー信号/RB、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、ライトイネーブル信号/WE、リードイネーブル信号RE、/RE、ライトプロテクト信号/WP、データである信号DQ<7:0>、データストローブ信号DQS、/DQS、の各信号が送受信される。
例えば、不揮発性メモリ2とメモリコントローラ1は、それぞれが、半導体チップ(以下、単に"チップ"ともいう)として形成される。
チップイネーブル信号/CEは、不揮発性メモリ2をイネーブルにするための信号である。レディービジー信号/RBは、不揮発性メモリ2がレディ状態(外部からの命令を受け付ける状態)であるか、ビジー状態(外部からの命令を受け付けない状態)であるかを示すための信号である。コマンドラッチイネーブル信号CLEは、信号DQ<7:0>がコマンドであることを示す信号である。アドレスラッチイネーブル信号ALEは、信号DQ<7:0>がアドレスであることを示す信号である。ライトイネーブル信号/WEは、受信した信号を不揮発性メモリ2に取り込むための信号であり、メモリコントローラ1によりコマンド、アドレス、及びデータを受信する都度アサートされる。信号/WEが"L(Low)"レベルである間に信号DQ<7:0>を取り込むよう不揮発性メモリ2に指示する。
リードイネーブル信号RE、/REは、メモリコントローラ1が、不揮発性メモリ2からデータを読み出すための信号である。例えば、信号DQ<7:0>を出力する際の不揮発性メモリ2の動作タイミングを制御するために使用される。ライトプロテクト信号/WPは、データ書き込み及び消去の禁止を不揮発性メモリ2に指示するための信号である。信号DQ<7:0>は、不揮発性メモリ2とメモリコントローラ1との間で送受信されるデータの実体であり、コマンド、アドレス、及びデータを含む。データストローブ信号DQS、/DQSは、信号DQ<7:0>の入出力のタイミングを制御するための信号である。
メモリコントローラ1は、RAM(Random Access Memory)11、プロセッサ12、ホストインターフェイス13、ECC(Error Checking and Correction)回路14およびメモリインターフェイス15を備える。RAM11、プロセッサ12、ホストインターフェイス13、ECC回路14およびメモリインターフェイス15は、互いに内部バス16で接続される。
ホストインターフェイス13は、ホストから受信したリクエスト、ユーザデータ(書き込みデータ)などを内部バス16に出力する。また、ホストインターフェイス13は、不揮発性メモリ2から読み出されたユーザデータ、プロセッサ12からの応答などをホストへ送信する。
メモリインターフェイス15は、プロセッサ12の指示に基づいて、ユーザデータ等を不揮発性メモリ2へ書き込む処理および不揮発性メモリ2から読み出す処理を制御する。
プロセッサ12は、メモリコントローラ1を統括的に制御する。プロセッサ12は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)等である。プロセッサ12は、ホストからホストインターフェイス13経由でリクエストを受けた場合に、そのリクエストに従った制御を行う。例えば、プロセッサ12は、ホストからのリクエストに従って、不揮発性メモリ2へのユーザデータおよびパリティの書き込みをメモリインターフェイス15へ指示する。また、プロセッサ12は、ホストからのリクエストに従って、不揮発性メモリ2からのユーザデータおよびパリティの読み出しを、メモリインターフェイス15へ指示する。
プロセッサ12は、RAM11に蓄積されるユーザデータに対して、不揮発性メモリ2上の格納領域(メモリ領域)を決定する。ユーザデータは、内部バス16経由でRAM11に格納される。プロセッサ12は、メモリ領域の決定を、書き込み単位であるページ単位のデータ(ページデータ)に対して実施する。本明細書では、不揮発性メモリ2の1ページに格納されるユーザデータをユニットデータと定義する。ユニットデータは、一般的には符号化されて符号語として不揮発性メモリ2に格納される。本実施形態では、符号化は必須ではない。メモリコントローラ1は、符号化せずにユニットデータを不揮発性メモリ2に格納してもよいが、図1では、一構成例として符号化を行う構成を示している。メモリコントローラ1が符号化を行わない場合には、ページデータはユニットデータと一致する。また、1つのユニットデータに基づいて1つの符号語が生成されてもよいし、ユニットデータが分割された分割データに基づいて1つの符号語が生成されてもよい。また、複数のユニットデータを用いて1つの符号語が生成されてもよい。
プロセッサ12は、ユニットデータごとに書き込み先の不揮発性メモリ2のメモリ領域を決定する。不揮発性メモリ2のメモリ領域には物理アドレスが割当てられている。プロセッサ12は、ユニットデータの書き込み先のメモリ領域を、物理アドレスを用いて管理する。プロセッサ12は、決定したメモリ領域(物理アドレス)を指定してユーザデータを不揮発性メモリ2へ書き込むようメモリインターフェイス15へ指示する。プロセッサ12は、ユーザデータの論理アドレス(ホストが管理する論理アドレス)と物理アドレスとの対応を管理する。プロセッサ12は、ホストからの論理アドレスを含む読み出しリクエストを受信した場合は、論理アドレスに対応する物理アドレスを特定し、物理アドレスを指定してユーザデータの読み出しをメモリインターフェイス15へ指示する。
ECC回路14は、RAM11に格納されたユーザデータを符号化して、符号語を生成する。また、ECC回路14は、不揮発性メモリ2から読み出された符号語を復号する。
RAM11は、ホストから受信したユーザデータを不揮発性メモリ2へ記憶するまでに一時格納したり、不揮発性メモリ2から読み出したデータをホストへ送信するまでに一時格納したりする。RAM11は、例えば、SRAM(Static Random Access Memory)やDRAM(Dynamic Random Access Memory)などの汎用メモリである。
図1では、メモリコントローラ1が、ECC回路14とメモリインターフェイス15をそれぞれ備える構成例を示した。しかしながら、ECC回路14がメモリインターフェイス15に内蔵されていてもよい。また、ECC回路14が、不揮発性メモリ2に内蔵されていてもよい。
ホストから書き込みリクエストを受信した場合、メモリシステムは次のように動作する。プロセッサ12は、書き込み対象となるデータをRAM11に一時記憶させる。プロセッサ12は、RAM11に格納されたデータを読み出し、ECC回路14に入力する。ECC回路14は、入力されたデータを符号化し、符号語をメモリインターフェイス15に入力する。メモリインターフェイス15は、入力された符号語を不揮発性メモリ2に書き込む。
ホストから読み出しリクエストを受信した場合、メモリシステムは次のように動作する。メモリインターフェイス15は、不揮発性メモリ2から読み出した符号語をECC回路14に入力する。ECC回路14は、入力された符号語を復号し、復号されたデータをRAM11に格納する。プロセッサ12は、RAM11に格納されたデータを、ホストインターフェイス13を介してホストに送信する。
(不揮発性メモリの構成)
(不揮発性メモリの構成)
図2は、本実施形態の不揮発性メモリの構成例を示すブロック図である。不揮発性メモリ2は、メモリセルアレイ21、入出力回路22、ロジック制御回路23、レジスタ24、シーケンサ25、電圧生成回路26、ロウデコーダ27、センスアンプ28、入出力用パッド群29、ロジック制御用パッド群30、及び、電源入力用端子群31を備えている。
メモリセルアレイ21は、ワード線及びビット線に関連付けられた複数の不揮発性のメモリセル(図示せず)を含む。各メモリセルは、ロウ及びカラムに対応付けられている。メモリセルアレイ21は、複数のブロックBLKを備えている。メモリセルアレイ21は、複数のメモリセルを含む。後述するように、各メモリセルは、1メモリセル当たりn(nは、2以上の整数)ビットデータを記憶可能である。
入出力回路22は、メモリコントローラ1との間で、信号DQ<7:0>、及び、データストローブ信号DQS、/DQSを送受信する。入出力回路22は、信号DQ<7:0>内のコマンド及びアドレスをレジスタ24に転送する。また、入出力回路22は、書き込みデータ、及び読み出しデータをセンスアンプ28との間で送受信する。
ロジック制御回路23は、メモリコントローラ1からチップイネーブル信号/CE、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、ライトイネーブル信号/WE、リードイネーブル信号RE、/RE、及びライトプロテクト信号/WPを受信する。また、ロジック制御回路23は、レディービジー信号/RBをメモリコントローラ1に転送して、不揮発性メモリ2の状態を外部に通知する。
レジスタ24には、コマンド、アドレス及びステータスが格納される。より具体的には、レジスタ24はコマンドレジスタ24A、アドレスレジスタ24B及びステータスレジスタ24Cを含み、それぞれ、コマンド、アドレス及びステータスを格納する。
シーケンサ25は、コマンドレジスタ24Aに保持されたコマンドに基づき、不揮発性メモリ2全体の動作を制御する制御回路である。
電圧生成回路26は、シーケンサ25からの指示に基づき、データの書き込み、読み出し、及び、消去等の動作に必要な電圧を生成する。
ロウデコーダ27は、アドレスレジスタ24Bからアドレスに含まれるブロックアドレスおよびロウアドレスを受け取り、当該ブロックアドレスに基づいて対応するブロックを選択するとともに、当該ロウアドレスに基づいて対応するワード線を選択する。
センスアンプ28は、データの読み出し時には、メモリセルからビット線に読み出されたデータをセンスし、センスした読み出しデータを入出力回路22に転送する。センスアンプ28は、データの書き込み時には、ビット線を介して書き込まれる書き込みデータをメモリセルに転送する。より具体的には、センスアンプ28はセンスアンプユニット群28Aとデータレジスタ28Bとを含み、データの読み出し時には、センスアンプユニット群28Aによって読み出された読み出しデータを、データレジスタ28Bに格納する。また、データの書き込み時には、データレジスタ28Bに格納された書き込みデータをセンスアンプユニット群28Aに転送し、センスアンプユニット群28Aビット線を介してメモリセルに対する書き込みデータを書き込む。
入出力用パッド群29は、メモリコントローラ1との間でデータを含む各信号の送受信を行うため、信号DQ<7:0>、及び、データストローブ信号DQS、/DQSに対応する複数の端子(パッド)を備えている。
ロジック制御用パッド群30は、メモリコントローラ1との間で各信号の送受信を行うため、チップイネーブル信号/CE、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、ライトイネーブル信号/WE、リードイネーブル信号RE、/RE、及びライトプロテクト信号/WPに対応する複数の端子(パッド)を備えている。
電源入力用端子群31は、外部から不揮発性メモリ2に、種々の動作電源を供給するため、電源電圧Vcc、VccQ、Vppと、接地電圧Vssを入力する複数の端子を備えている。電源電圧Vccは、動作電源として一般的に外部から与えられる回路電源電圧であり、例えば3.3V程度の電圧が入力される。電源電圧VccQは、例えば1.2Vの電圧が入力される。電源電圧VccQは、メモリコントローラ1と不揮発性メモリ2との間で信号を送受信する際に用いられる。電源電圧Vppは、電源電圧Vccよりも高圧の電源電圧であり、例えば12Vの電圧が入力される。メモリセルアレイ21へデータを書き込んだり、データを消去したりする際には、20V程度の高い電圧が必要となる。この際に、約3.3Vの電源電圧Vccを電圧生成回路28の昇圧回路で昇圧するよりも、約12Vの電源電圧Vppを昇圧するほうが、高速かつ低消費電力で所望の電圧を生成することができる。一方で、例えば、高電圧を供給することができない環境において不揮発性メモリ2が用いられる場合、電源電圧Vppには電圧が供給されなくともよい。電源電圧Vppが供給されない場合であっても、不揮発性メモリ2は、電源電圧Vccが供給されていれば、各種の動作を実行することができる。すなわち、電源電圧Vccは、不揮発性メモリ2に標準的に供給される電源であり、電源電圧Vppは、例えば使用環境に応じて追加的・任意的に供給される電源である。
(NANDメモリセルアレイの構成)
(NANDメモリセルアレイの構成)
図3は、3次元構造のメモリセルアレイ21のブロックの構成例を示す図である。図3は、3次元構造のメモリセルアレイ21を構成する複数のブロックのうちの1つのブロックBLKを示している。メモリセルアレイ21の他のブロックも図3と同様の構成を有する。なお、本実施形態は、2次元構造のメモリセルアレイにも適用可能である。
図示するように、ブロックBLKは、例えば4つのストリングユニット(SU0~SU3)を含む。また各々のストリングユニットSUは、複数のNANDストリングNSを含む。NANDストリングNSの各々は、ここでは8個のメモリセルMT(MT0~MT7)と、選択トランジスタST1,ST2とを含む。なお、NANDストリングNSに含まれるメモリセルMTの個数は、ここでは8個であるが、8個に限られず、例えば、32個、48個、64個、96個等でもよい。選択トランジスタST1,ST2は、電気回路上は1つのトランジスタとして示しているが、構造上はメモリセルトランジスタと同じでもよい。また、例えばカットオフ特性を高めるために、選択トランジスタST1,ST2として、それぞれ複数の選択トランジスタを用いてもよい。さらに、メモリセルMTと選択トランジスタST1,ST2との間には、ダミーセルトランジスタが設けられていてもよい。
複数のメモリセルMTは、選択トランジスタST1,ST2間において、直列接続されるようにして配置されている。複数のメモリセルMTの一端側のメモリセルMT7が、選択トランジスタST1に接続され、複数のメモリセルMTの他端側のメモリセルMT0が、選択トランジスタST2に接続されている。
ストリングユニットSU0~SU3の各々の選択トランジスタST1のゲートは、それぞれセレクトゲート線SGD0~SGD3に接続される。他方で、選択トランジスタST2のゲートは、同一のブロックBLK内にある複数のストリングユニットSU間で同一のセレクトゲート線SGSに共通接続される。また、同一のブロックBLK内にあるメモリセルMT0~MT7のゲートは、それぞれワード線WL0~WL7に共通接続される。すなわち、ワード線WL0~WL7及びセレクトゲート線SGSは、同一ブロックBLK内の複数のストリングユニットSU0~SU3間で共通に接続されているのに対し、セレクトゲート線SGDは、同一ブロックBLK内であってもストリングユニットSU0~SU3毎に独立している。
NANDストリングNSを構成するメモリセルMT0~MT7のゲートには、それぞれワード線WL0~WL7が接続されている。ブロックBLK内において同一行にあるメモリセルMTiのゲートは、同一のワード線WLiに接続される。なお、以下の説明では、NANDストリングNSを単に「ストリング」という場合がある。
各NANDストリングNSは、対応するビット線に接続されている。従って、各メモリセルMTは、NANDストリングNSに含まれる選択トランジスタSTや他のメモリセルMTを介して、ビット線に接続されている。上述した通り、同一のブロックBLK内にあるメモリセルMTのデータは、一括して消去される。一方、データの読み出し及び書き込みは、メモリセルグループMG単位(またはページ単位)で行われる。本明細書では、1つのワード線WLiに接続され、かつ1つのストリングユニットSUに属する複数のメモリセルMTをメモリセルグループMGと定義する。本実施形態では、不揮発性メモリ2は4ビット(16値)のデータを保持可能なQLC(Quad Level Cell)のNANDメモリである。従って、1つのメモリセルグループMGが、4ページ分のデータを保持することができる。各メモリセルMTが保持することができる4ビットは、それぞれこの4ページに対応する。
図4は、3次元構造のNANDメモリセルアレイの一部領域の断面図である。図4に示すように、p型ウェル領域(P-well)上に複数のNANDストリングNSが形成されている。すなわち、p型ウェル領域上には、セレクトゲート線SGSとして機能する複数の配線層333、ワード線WLiとして機能する複数の配線層332、およびセレクトゲート線SGDとして機能する複数の配線層331が積層されている。
そして、これらの配線層333,332,331を貫通してp型ウェル領域に達するメモリホール334が形成されている。メモリホール334の側面には、ブロック絶縁膜335、電荷蓄積膜(電荷保持領域)336、およびゲート絶縁膜337が順次形成され、更にメモリホール334内に導電体柱338が埋め込まれている。導電体柱338は、例えばポリシリコンからなり、NANDストリングNSに含まれるメモリセルMT並びに選択トランジスタST1及びST2の動作時にチャネルが形成される領域として機能する。すなわち、配線層331と導電体柱338とそれらの間の膜335~337がそれぞれ選択トランジスタST1として機能し、配線層332と導電体柱338とそれらの間の膜335~337がそれぞれメモリセルMTとして機能し、配線層333と各導電体柱338とそれらの間の膜335~337が選択トランジスタST2として機能する。
各NANDストリングNSにおいて、p型ウェル領域上に選択トランジスタST2、複数のメモリセルMT、及び選択トランジスタST1が順に形成されている。導電体柱338よりも上側には、ビット線BLとして機能する配線層が形成される。導電体柱338の上端には、導電体柱338とビット線BLとを接続するコンタクトプラグ339が形成されている。
さらに、p型ウェル領域の表面内には、n+型不純物拡散層およびp+型不純物拡散層が形成されている。n+型不純物拡散層上にはコンタクトプラグ340が形成され、コンタクトプラグ340上には、ソース線SLとして機能する配線層が形成される。
以上の図4に示した構成が、図4の紙面の奥行き方向に複数配列されており、奥行き方向に一列に並ぶ複数のNANDストリングの集合によって、1つのストリングユニットSUが形成される。
(閾値電圧分布)
(閾値電圧分布)
図5はメモリセル(メモリセルトランジスタ)の閾値電圧分布を示す図である。図5は、4bit/Cellの不揮発性メモリ2の閾値電圧分布例を示している。不揮発性メモリ2において、メモリセルMTに記憶する多値データ(ここでは4ビット)の各データ値に応じて、メモリセルMTの閾値電圧が設定される。すなわち、各メモリセルMTは、n(nは、2以上の整数)ビットデータを記憶可能であり、各データ値に応じた閾値電圧が、各メモリセルMTに設定される。電荷蓄積膜(電荷保持領域)への電荷量の注入は、確率的であるため、図5に示すように、各メモリセルMTの閾値電圧も統計的に分布する。
後述するように、4ビットは、下位(Lower Level)ページ、中位(Middle Level)ページ、上位(Upper Level)ページ及びトップ(Top Level)ページのデータに対応する。
また、本実施形態では、データの書き込みは、2段階で行われる。シーケンサ25は、各メモリセルにnビット中p(p<n)ビットデータを書き込む第1書き込み動作(後述するMLC書き込み動作)と、第1書き込み動作後に各メモリセルに(n-p)ビットデータを追加的に書き込むことによりnビットデータを書き込む第2書き込み動作(後述するQLC書き込み動作)とを実行可能である。シーケンサ25は、第2書き込み動作(QLC書き込み動作)において、nビットデータを書き込むプログラム動作と、プログラム動作により書き込まれたnビットデータのベリファイを行うベリファイ動作とを実行する。
本実施形態では、1回目の書き込み動作では、下位ページと中位ページに2ビットデータが書き込まれ、2回目の書き込み動作では、上位ページとトップページの2ビットデータが追加的書き込まれることにより4ビットデータが書き込まれる。図5は、上位ページとトップページのデータが書き込まれた後のメモリセルMTの閾値電圧分布を示す。後述するように、1回目の書き込み動作では、4つの閾値電圧分布に対応する4つのレベルEr,A,B,Cのいずれかに対応するデータが各メモリセルMTに書き込まれる。すなわち、1回目の書き込み動作では、2ビットデータに対応する4個の閾値電圧分布に対応する4個のレベルEr,A,B,Dのいずれかに対応するデータが各メモリセルMTに書き込まれる。2回目の書き込み動作よって、4ビットデータに対応する16個の閾値電圧分布に対応する16個のステートEr,S1,・・・,S15のいずれかに対応するデータが各メモリセルMTに書き込まれる。
図5は横軸に閾値電圧Vthをとり縦軸にメモリセル数(セル数)をとって、閾値電圧分布をDEr,DS1,DS2,DS3,・・・,DS13,DS14,DS15の16個の山型の領域にて示しており、これらの各領域の閾値電圧の幅が各ターゲット領域に対応する。図5の例では、16個のターゲット領域内のいずれかにメモリセルMTの閾値電圧を設定することで、メモリセルMTに16値を取り得るデータ(4ビットデータ)を記憶させることが可能である。
本実施形態では、閾値電圧Vthが図5の電圧Vr1以下となるターゲット領域をステートErとよび、閾値電圧が電圧Vr1より大きく電圧Vr2以下となるターゲット領域をステートS1とよび、閾値電圧が電圧Vr2より大きく電圧Vr3以下となるターゲット領域をステートS2とよび、閾値電圧が電圧Vr3より大きく電圧Vr4以下となるターゲット領域をステートS3とよぶ。以下同様に、図5に示すように、ステートS4からS15が、それぞれの電圧に応じて設定される。
すなわち、ステートは、各メモリセルMTに記憶させるデータ値に対応したいずれのターゲット領域であるかを示すものであり、4ビット16値の場合にはターゲット領域は、ステートEr,S1~S15の16個のステートに分けられる。なお、各ステートEr,S1,S2,S3,・・・,S13,S14,S15にそれぞれ対応する閾値電圧分布をそれぞれ分布DEr,DS1,DS2,DS3,・・・,DS13,DS14,DS15と呼ぶ。電圧Vr1~Vr15は、各ターゲット領域の境界となる基準電圧である。なお、ベリファイ動作においては、ワード線WLに電圧Vr1~Vr15をベリファイ電圧として印加し、センスアンプユニットSAUによってビット線BLに流れる電流をセンスする。対象のメモリセルMTがオフになっていると判定された場合、ステートに対応した閾値電圧に到達したことを判定する。
(センスアンプ)
(センスアンプ)
次に、読み出し動作及びベリファイ動作におけるセンスアンプ28の動作について説明する。
図6は、センスアンプユニット群28Aに含まれる1つのセンスアンプユニットと、それに対応したデータレジスタ28Bに含まれる1つのラッチ回路XDLの具体的な構成の一例を示す回路図である。センスアンプ28はセンスアンプユニット群28Aとデータレジスタ28Bを含む。センスアンプユニット群28は、ビット線BL0~BL(m-1)にそれぞれ関連付けられた複数のセンスアンプユニットSAUを含む。また、データレジスタ28Bは、複数のセンスアンプユニットSAUとそれぞれ対応する複数のラッチ回路XDLを含む。図6には、1本のビット線BLに接続された1つのセンスアンプユニットSAUと1つのラッチ回路XDLの詳細な回路構成を示している。
センスアンプユニットSAUは、図6に示すように、センスアンプ部SA、並びにラッチ回路SDL、ADL、BDL、CDL、DDL、EDL及びFDLを含んでいる。センスアンプ部SA並びにラッチ回路SDL、ADL、BDL、CDL、DDL、EDL、FDL及びXDLは、互いにデータを受信可能なように接続される。そのうちラッチ回路SDL、ADL、BDL、CDL、DDL、EDL及びFDLは、バスLBUSによって接続される。バスLBUSとラッチ回路XDLとは、トランジスタ54およびバスDBUSを介して接続される。ラッチ回路SDL、ADL、BDL、CDL、DDL、EDL、FDL及びXDLは、読み出しデータ、書き込みデータ及び後述する各種データを一時的に保持する。ラッチ回路XDLは、入出力回路22に接続され、センスアンプユニットSAUとシーケンサ25との間でデータの入出力に使用される。トランジスタ54のゲートには制御信号SWが入力される。制御信号SWにより、バスLBUSとバスXBUSの接続及び切断が制御される。
ラッチ回路ADLとBDLには、それぞれ下位ページデータと中位ページデータが格納される。ラッチ回路CDLとDDLには、それぞれ上位ページデータとトップページデータが格納される。後述するように、ラッチ回路EDLとFDLには、隣接メモリセルMTの書き込みデータ(閾値電圧)に関する情報が格納される。
ラッチ回路ADL、BDL、CDL及びDDLは、書き込みデータの4ビットデータが格納される。ラッチ回路EDLとFDLは、後述するように隣接する2つのメモリセルMTの閾値電圧に関する情報が格納される。選択ワード線WLnのある1つのメモリセルをメモリセルMT1とすれば、隣接ワード線WL(n+1)の(メモリセルMT1に隣接する)隣接メモリセルMT2と隣接ワード線WL(n-1)の(メモリセルMT1に隣接する)隣接メモリセルMT3についての閾値電圧に関する情報(ここではErレベルであるか否かを示す情報)が、それぞれラッチ回路EDLとFDLに格納される。例えば、ラッチ回路EDLにデータ「1」が格納されている場合は、隣接メモリセルMT2の閾値電圧は「Er」レベルであることを示す。
ラッチ回路SDLは、例えばインバータ50,51及びnチャネルMOSトランジスタ52,53を含んでいる。インバータ50の入力ノード及びインバータ51の出力ノードはノードLATに接続される。インバータ51の入力ノード及びインバータ50の出力ノードはノードINVに接続される。インバータ50,51によって、ノードINV,LATのデータが保持される。シーケンサ25からの書き込みデータは、ノードLATに供給される。ノードINVにおいて保持されるデータはノードLATに保持されるデータの反転データである。
トランジスタ52のドレイン・ソース路の一端はノードINVに接続され、他端はバスLBUSに接続される。また、トランジスタ53のドレイン・ソース路の一端はノードINVに接続され、他端はバスLBUSに接続される。トランジスタ53のゲートには制御信号STLが入力され、トランジスタ52のゲートには制御信号STIが入力される。
なお、各ラッチ回路ADL、BDL、CDL、DDL、EDL及びXDLの回路構成はラッチ回路SDLと同様のため、説明を省略する。なお、センスアンプユニットSAUに供給される各種制御信号は、シーケンサ25から与えられるものである。
センスアンプ部SAは、例えば、pチャネルMOSトランジスタ40、nチャネルMOSトランジスタ41~48、及びキャパシタ49を含んでいる。
センスアンプ部SAは、読み出し動作において、対応するビット線BLに読み出されたデータをセンスして、読み出したデータが"0"であるか"1"であるかを判定する。また、センスアンプ部SAは、プログラム動作において、対応するビット線BLを書き込むデータ"0","1"に応じた電圧値に設定する。
センスアンプ部SAにおいて、プログラム動作には、トランジスタ40~44が関係する。内部電源電圧である電圧VDDを供給する電源線とノードCOMとの間には、トランジスタ40のソース・ドレイン路及びトランジスタ41のドレイン・ソース路が直列接続される。また、ノードCOMと接地電圧である電圧Vssを供給するノードSRCとの間には、トランジスタ44のドレイン・ソース路が接続される。また、ノードCOMとビット線BLとの間にはトランジスタ42のドレイン・ソース路及びトランジスタ43のドレイン・ソース路が直列接続される。
トランジスタ40,44のゲートはノードINVに接続される。従って、"0"データに対応してノードLATがローレベル(以下、"L"ともいう)の場合には、INVはハイレベル(以下、"H"ともいう)に維持されており、トランジスタ40がオフでありトランジスタ44がオンである。逆に、"1"データに対応してノードLATが"H"の場合には、ノードINVは"L"に維持されており、トランジスタ40がオンでありトランジスタ44がオフである。
プログラム動作時には、トランジスタ45,46のゲートにそれぞれ供給される制御信号HLL,XXLは"L"であり、トランジスタ45,46はオフである。トランジスタ41に供給される制御信号は"H"であり、トランジスタ41はオンである。また、通常プログラム動作時には、制御信号BLC,BLSによって、トランジスタ42,43は導通する。
従って、"0"データがノードLATに保持されると、トランジスタ40はオフでトランジスタ44がオンとなって、ノードSRCからの電圧Vss(例えば0V)等のビット線電圧Vbl_Lがビット線BLに供給される。また、"1"データがノードLATに保持されると、トランジスタ40はオンでトランジスタ44がオフとなって、トランジスタ42,43に与える制御信号BLC,BLSに応じて、例えば、2.5V等のビット線電圧Vbl_Hがビット線BLに供給される。
ベリファイ動作には、センスアンプ部SAの全てのトランジスタ40~48及びキャパシタ49が関係する。トランジスタ40のドレインとノードCOMとの間にはトランジスタ45のドレイン・ソース路及び46のドレイン・ソース路が直列接続される。また、バスLBUSと基準電圧点との間には、トランジスタ48のドレイン・ソース路及び47のドレイン・ソース路が直列接続される。トランジスタ45のソースとトランジスタ46のドレインとはセンスノードSENに接続され、センスノードSENはトランジスタ47のゲートに接続される。トランジスタ45~48のゲートには、それぞれ制御信号HLL、XXL、センスノードSENの電圧又は制御信号STBが印加される。センスノードSENはキャパシタ49を介してクロックCLKが印加される。
図7は、書き込み動作における各配線の電圧変化を示す図である。図7は、プログラム動作における各配線の電圧変化を示している。プログラム動作は、ワード線及びビット線に印加するプログラム電圧及びビット線電圧に従って行われる。ワード線(図7の選択WL,非選択WL)に電圧が印加されないブロックBLKは、書き込み対象でない非選択ブロックBLK(図7下段)である。また、ビット線電圧は、ビット線BLに接続された選択トランジスタST1が導通することによりメモリセルMTに印加されるので、書き込み対象のブロックBLK(選択ブロックBLK)のうち、セレクトゲート線SGDが印加されないストリングユニットSUは書き込み対象でない非選択SU(図7中段)である。なお、選択ブロックBLKの非選択SU(図7中段)についても、プログラム電圧Vpgmの印加の前に、セレクトゲート線SGDを例えば5Vにして選択トランジスタST1を導通させておくようにしてもよい。
書き込み対象のブロックBLK(選択ブロックBLK)の書き込み対象のストリングユニットSU(選択SU)(図7上段)については、プログラム電圧Vpgmの印加の前に、図7上段の左側に示すように、選択SUについてはセレクトゲート線SGDを例えば5Vにして、選択トランジスタST1を導通させておく。また、プログラム動作時には、セレクトゲート線SGSは例えば0Vである。従って、選択トランジスタST2はオフ状態となる。一方、図7上段の右側に示すプログラム電圧Vpgm印加時には、セレクトゲート線SGDを例えば2.5Vとする。これにより、選択トランジスタST1の導通、非導通の状態は、選択トランジスタST1に接続されるビット線BLのビット線電圧によって決まる。
上述したように、センスアンプ31は、各ビット線BLにデータを転送する。"0"データが与えられたビット線BLにはビット線電圧Vbl_Lとして例えば0Vの接地電圧Vssが印加される。"1"データが与えられたビット線BLにはビット線電圧Vbl_Hとして書き込み禁止電圧Vinhibit(例えば2.5V)が印加される。従って、プログラム電圧Vpgm印加時には、"0"データが与えられたビット線BLに接続された選択トランジスタST1は導通し、"1"データが与えられたビット線BLに接続された選択トランジスタST1はカットオフする。カットオフした選択トランジスタST1に接続されているメモリセルMTは書き込み禁止となる。
導通状態となった選択トランジスタST1に接続されているメモリセルMTは、ワード線WLに印加される電圧に従って電荷蓄積膜への電子の注入が行われる。ワード線電圧として、電圧Vpassが与えられたワード線WLに接続されたメモリセルMTは、閾値電圧に拘わらず導通状態となるが、電荷蓄積膜への電子の注入は行われない。一方、ワード線電圧として、プログラム電圧Vpgmが与えられたワード線WLに接続されたメモリセルMTは、プログラム電圧Vpgmに応じて電荷蓄積膜への電子の注入が行われる。
即ち、ロウデコーダ27は、選択ブロックBLKにおいていずれかのワード線WLを選択し、選択ワード線に電圧Vpgmを印加し、その他の非選択ワード線WLに電圧Vpassを印加する。電圧Vpgmは、トンネル現象により電子を電荷蓄積膜に注入するための高電圧であり、Vpgm>Vpassである。ロウデコーダ27によってワード線WLの電圧を制御しながら、センスアンプ28によって各ビット線BLにデータを供給することで、メモリセルアレイ21の各メモリセルMTへの書き込み動作が行われる。
図8は、ベリファイ動作における各配線の電圧変化を示す図である。ロウデコーダ27が、プログラム動作がなされたブロックBLKおよびストリングユニットSUを選択し、選択されたブロックBLKにおけるセレクトゲート線SGSおよび選択されたストリングユニットSUにおけるセレクトゲート線SGDに、例えば5Vを印加する。これにより、選択されたストリングユニットSUに含まれるNANDストリングでは、選択トランジスタST1と選択トランジスタST2の両方がオン状態となる。
一方で、非選択のブロックBLKにおけるセレクトゲート線SGSおよび、選択されたブロックBLKにおける非選択のストリングユニットSUにおけるセレクトゲート線SGDには電圧Vssを印可して、選択トランジスタST1および/またはST2をオフ状態とさせる。これにより、非選択のストリングユニットSUに含まれるNANDストリングでは、少なくとも選択トランジスタST1がオフ状態となる。また、非選択のブロックBLKに含まれるNANDストリングでは、選択トランジスタST1と選択トランジスタST2の両方がオフ状態となる。
また、ロウデコーダ27は、選択ブロックBLKにおいていずれかのワード線WLを選択し、選択ワード線WLに電圧Vcgrvを印加し、その他の非選択ワード線WLに電圧Vreadを印加する。例えば、メモリセルMTの閾値電圧をレベルAにするためのプログラム動作を行った場合、ベリファイ動作では電圧Vcgrvとして電圧AVを用いる。同様に、メモリセルMTの閾値電圧をレベルBにするためのプログラム動作を行った場合、ベリファイ動作では電圧Vcgrvとして電圧BVを用いる。電圧Vreadは、非選択ワード線WLに接続されたメモリセルMTをそれらの閾値電圧にかかわらずオンさせるための電圧であり、Vread>Vcgrv(GV)である。GVは、MLC書き込み動作の場合は、レベルCに対応するベリファイ電圧VrCであり、QLC書き込み動作の場合は、ステートS15に対応するベリファイ電圧Vr15である。
また、例えば、1回目の書き込み動作における中位ページデータのベリファイ動作では、図8において点線で示すように、電圧Vcgrvは、レベルAとレベルCの2つの電圧レベルを有する。
そして、センスアンプ28が各ビット線BLを電圧Vblに充電する。電圧Vblは、ソース線SLの電圧Vslよりも大きく、Vbl>Vslである。これにより、選択されたストリングユニットSUに含まれるNANDストリングでは、選択ワード線WLに接続されたメモリセルMTの閾値電圧に応じて、ビット線BL側からソース線SL側へ、電流が流れる(あるいは流れない)。これにより、閾値電圧が所望のレベルまで上昇しているかどうかを検証することができる。
上述したように、書き込み動作は、プログラム動作とベリファイ動作とを含むループを繰り返すことにより実行される。プログラム動作では、選択ワード線WLにプログラム電圧Vpgmが印加される。続くベリファイ動作では、検証する閾値電圧レベルに対応して、MLC書き込み動作の場合はレベルA~Cに対応するベリファイ電圧VrA~Cのうち少なくとも1つ、QLC書き込み動作の場合はステートS1~S15に対応するベリファイ電圧Vr1~Vr15のうち少なくとも1つが印加される。なお、各ループにおいて、プログラム動作が実行された後、ベリファイ動作が複数回実行されることがある。反対に、各ループにおいて、プログラム動作が実行された後、ベリファイ動作が実行されないこともある。すなわち、書き込み動作は複数のループを含み、各ループは少なくともプログラム動作を含む。また、各ループは、1回又は複数回のベリファイ動作を含み得る。各ループにおいて、ベリファイ動作は、プログラム動作に続いて実行される。
1回目のループにおけるプログラム電圧Vpgmは最も低い電圧値に設定され、2回目、3回目・・・とループが進むにつれて、次第にプログラム電圧Vpgmを大きな電圧値に設定するようになっている。また、各ループにおいてベリファイ動作を行うステートが予め設定されている。後述するように、目標ステート毎に、ベリファイ動作開始ループが設定されている。各ステートのベリファイ動作は所定のループにおいてのみ行われ、ベリファイ動作によって、設定されているターゲット領域に閾値電圧が到達したと判定されたメモリセルMTについては、その後、書き込み禁止とされる。
(動作)
(動作)
データの書き込みは、書き込みシーケンスを複数回に分割して実行する多段階(本実施形態では2段階)書き込み方式により行われる。2段階書き込み方式では、1回目においては、n1(本実施形態では、n1=4)ページのうちの半分のページ(本実施形態では、2ページ)分のデータが書き込まれ、2回目においては、残りの半分のページ(本実施形態では、2ページ)分のデータが書き込まれる。
図9は、2段階書き込み方式における閾値電圧Vthの分布を示す図である。図9の横軸は、閾値電圧Vthを示し、縦軸は、メモリセル数を示している。
図9に示すように、1回目の書き込み動作において、各メモリセルMTを2ビットデータを記憶するMLC(Multiple Level Cell)として用いるための書き込みが行われる。1回目の書き込み動作を、MLC書き込み動作ともいう。1回目の書き込み動作(MLC書き込み動作)では、4値データ(レベルEr,A,B,C)のいずれか対応したデータが各メモリセルMTに書き込まれる。2回目の書き込み動作において、各メモリセルMTを4ビットデータを記憶するQLCとして用いるための書き込みが行われる。2回目の書き込み動作を、QLC書き込み動作ともいう)が行われる。2回目の書き込み動作(QLC書き込み動作)では、各セルに16値データ(ステートS0~S15)のいずれかに対応したデータが各メモリセルMTに書き込まれる。
MLC書き込み動作においては、4ページの内の下位(Lower Level)ページと中位(Middle Level)ページのデータが書き込まれる。すなわち、1回目の書き込み動作では、4値(Er,A,B,C)のいずれかのデータが、選択ワード線WLのうちあるセレクトゲート線SGDに対応したメモリセルグループMGに含まれる各メモリセルMTに書き込まれる。図9において、「M」は、中位ページのデータの読み出し電圧を示し、「L」は、下位ページのデータの読み出し電圧を示す。すなわち、書き込まれた下位ページと中位ページのデータは、QLC書き込み動作が行われる前においても、読み出すことができるように書き込まれる。
図9に示すように、MLC書き込み動作により書き込まれた4値の各レベルをQLC書き込み動作によりさらに4つのレベルに分割することにより、16値データが各メモリセルMTに書き込まれる。
シーケンサ25は、メモリセルグループMGに含まれる各メモリセルMTに対して、例えば、4ページ分のデータを一度に書き込む場合がある。この場合、例えば、ラッチ回路ADL,BDL,CDL及びDDLに、それぞれ下位、中位、上位及びトップのページデータが格納される。シーケンサ25は、4つのラッチ回路ADL,BDL,CDL及びDDLに格納されたデータを用いて、4ページ分のデータを各メモリセルグループMGに書き込む。
2段階書き込み方式では、シーケンサ25は、MLC書き込み動作を実行した後にQLC書き込み動作を実行する。より具体的には、シーケンサ25は、MLC書き込み動作を実行した後、時間をおいて、QLC書き込み動作を実行する。その場合、QLC書き込み動作のときに、シーケンサ25は、QLC書き込み動作の対象となる各メモリセルMTから下位ページデータ及び中位ページデータを読み出す。シーケンサ25は、読み出した下位ページデータ及び中位ページデータと、メモリコントローラ1から受信した上位ページデータ及びトップページデータとを用いてQLC書き込み動作を実行する。これにより、メモリコントローラ1から不揮発性メモリ2へ転送するデータの量を削減できる。
図10は、2段階書き込み方式における書き込み動作の順番を示す図である。図10は、複数のワード線WLの一部のワード線WL0~WL2のみ示し、ストリングユニットが、SU0~SU4の5つの場合を示している。図10中の"["と"]"の括弧内の番号は、書き込み動作の順番を示す。
2段階書き込み方式では、隣り合う2本のワード線WLへの書き込みが交互に行われる。図10に示すように、ストリングユニットSU0~SU4のワード線WL0へのMLC書き込み動作が順に実行された後([1]~[5])に、ストリングユニットSU0のワード線WL1へのMLC書き込み動作が行われる([6])。
ストリングユニットSU0のワード線WL1へのMLC書き込み動作([6])の後、ストリングユニットSU0のワード線WL0へのQLC書き込み動作が実行される([7])。ストリングユニットSU0のワード線WL0へのQLC書き込み動作の後、ストリングユニットSU1に戻り、ストリングユニットSU1のワード線WL1へのMLC書き込み動作が行われる([8])。
以後、同様に、図10に示すように、ワード線WL0とワード線WL1へのMLC書き込み動作とQLC書き込み動作が交互に実行される([9]~[15])。
ストリングユニットSU4のワード線WL0へのQLC書き込み動作([15])の後、ストリングユニットSU0のワード線WL2へのMLC書き込み動作が行われる([16])。ストリングユニットSU0のワード線WL2へのMLC書き込み動作([16])の後、ストリングユニットSU0のワード線WL1へのQLC書き込み動作が実行される([17])。
以後、ワード線WL1とワード線WL2へのMLC書き込み動作とQLC書き込み動作が、ワード線WL0とワード線WL1へのMLC書き込み動作とQLC書き込み動作と同様に、交互に実行される([17]~)。
以上のように、全てのストリングユニットSU0~SU4のワード線WL(n-1)の全てのメモリセルMTにQLC書き込み動作を実行した後([15])、ストリングユニットSU0のワード線WL(n+1)の1つのメモリセルMTにMLC書き込み動作が実行される([16])。そして、そのメモリセルMTに対するMLC書き込み動作の実行後、ストリングユニットSU0のワード線WLnに戻って、QLC書き込み動作が実行される([17])。
2段階書き込み方式の場合、MLC書き込み動作が実行された後、時間が経過してからQLC書き込み動作が実行される。ここで、時間経過により、データリテンション劣化(メモリセルMTが保持する電子が経時的に変化することによる、メモリセルMTの閾値電圧の変動)が発生する。例えば、QLC書き込み動作によりあるメモリセルMTにステートS15のデータを書き込んでも、隣接メモリセルMTの閾値電圧がレベルErなどの低い閾値電圧のステートの場合、ステートS15のメモリセルMTの閾値電圧分布は、隣接ワード線の隣接メモリセルMTの影響を受けて、閾値電圧が低くなる方向にずれる場合がある。
図11及び図12は、隣接する2本のワード線WLn、WL(n+1)の2つの隣接メモリセルMTの閾値電圧分布の例を示す図である。図11の下段は、ワード線WLnのレベルCのメモリセルMTに対して、QLC書き込み動作が実行される場合の閾値電圧分布を示している。
例えば、選択ワード線WLnのあるメモリセルMT1の閾値電圧分布がMLC書き込み動作によりレベルCとなっているとき、そのレベルCのメモリセルMT(以下、MT1ともいう)の閾値電圧は、QLC書き込み動作により、閾値電圧レベルがステートS12からS15のいずれかとなる。
図11の上段は、MLC書き込み動作によって、メモリセルMT1の隣接メモリセルMT(すなわち隣接ワード線WL(n+1)におけるメモリセル(以下、MT2ともいう))の閾値電圧分布が、レベルCとなっているときに、QLC書き込み動作が実行される場合の閾値電圧分布を示している。メモリセルMT2の閾値電圧分布は、その後のQLC書き込み動作によってステートS12~S15のいずれかとなる。
図12の上段は、メモリセルMT2の閾値電圧レベルが、MLC書き込み動作によって、レベルErとなっているときに、QLC書き込み動作が実行される場合の閾値電圧分布を示している。このメモリセルMT2の閾値電圧レベルは、その後のQLC書き込み動作によってステートS0~S3のいずれかとなる。
図11及び図12のいずれの場合も、QLC書き込み動作が実行された後のメモリセルMT1の閾値電圧は隣接メモリセルMT2の電荷の影響を受けて、データリテンション劣化が発生する。しかし、図11の場合は、メモリセルMT1の閾値電圧と隣接メモリセルMT2の閾値電圧の差は小さいため、メモリセルMT1に蓄積されている電荷は、メモリセルMT2へ漏れ難い。一方、図12の場合、メモリセルMT1の閾値電圧と隣接メモリセルMT2の閾値電圧の差は大きいため、メモリセルMT1に蓄積されている電荷は、メモリセルMT2へ向かって漏れ易い。特に、図12の場合は、メモリセルMT1が最も高い閾値電圧(レベルC)であり、隣接メモリセルMT2が最も低い閾値電圧(レベルEr)であるため、メモリセルMT1に蓄積されている電荷は、メモリセルMT2へ向かって特に漏れ易い。そのため、レベルCのメモリセルMT1の閾値電圧分布は、QLC書き込み動作が実行された後、変化し易い、すなわち低い電圧側へずれ易い。ワード線WLnの各メモリセルMT1の閾値電圧分布のずれ量は、隣接ワード線WL(n+1)における隣接メモリセルMT2の閾値電圧のレベル(あるいはステート)に応じて異なる。
図11及び図12は、選択ワード線WLnのメモリセルMT1の閾値電圧に対する、隣接ワード線WL(n+1)のメモリセルMT2の電荷の影響を示しているが、隣接ワード線WL(n-1)のメモリセルMT3の電荷もメモリセルMT1の閾値電圧に影響する。
図13は、データリテンション劣化による、閾値電圧分布の変化を示す図である。図13において、QLC書き込み動作が実行された直後の閾値電圧分布は、実線で示し、データリテンション劣化によりずれた閾値電圧分布は、点線又は一点鎖線で示されている。
図11の場合、隣り合う2つのメモリセルMT1,MT2の閾値電圧は共に高いため、データリテンション劣化によるメモリセルMT1から隣接メモリセルMT2への電荷の漏れ量は少ない。その場合、点線で示すように、データリテンション劣化によるメモリセルMT1の閾値電圧分布のずれ量は小さい。
しかし、図12の場合、メモリセルMT1の閾値電圧は高く、かつメモリセルMT2の閾値電圧は低いため、データリテンション劣化によるメモリセルMT1から隣接メモリセルMT2への電荷の漏れ量は、多い。よって、図13において、一転鎖線で示すように、データリテンション劣化によるメモリセルMT1の閾値電圧分布のずれ量dTHは大きい。
データリテンション劣化によるメモリセルMT1の閾値電圧分布のずれ量dTHは、選択ワード線WLnの各メモリセルMTの隣接メモリセルMT2,MT3の電荷量に応じて、異なる。
例えば、隣接メモリセルMT2の閾値電圧分布がレベルAの場合、データリテンション劣化によるメモリセルMT1に閾値電圧分布のずれ量は、図13に示すずれ量dTHよりは、小さくなる。さらに、メモリセルMT2が閾値電圧のレベルBの場合、データリテンション劣化によるメモリセルMT1に閾値電圧分布のずれ量は、図13に示すずれ量dTHより、さらに小さくなる。
また、上述したように、メモリセルMT1の閾値電圧は、隣接ワード線WL(n+1)の隣接メモリセルMT2の閾値電圧のレベル(あるいはステート)から影響を受けるだけでなく、隣接ワード線WL(n-1)の隣接メモリセルMT3の閾値電圧のレベル(あるいはステート)からも影響を受ける。
よって、本実施形態では、メモリセルMT1についてのQLC書き込み動作におけるベリファイ電圧レベルが、隣接する2つのメモリセルMT2とMT3の両方の閾値電圧に基づいて、調整される。
また、メモリセルMT1の電荷の漏れ量は、メモリセルMT1のデータ(目標ステート)と各隣接メモリセルMT2、MT3のデータの差に応じて異なるので、その差に応じて、QLC書き込み動作におけるベリファイ電圧レベルを調整するのが好ましい。
しかし、メモリセルMT1の閾値電圧と各隣接メモリセルMT2、MT3との閾値電圧の差が最も大きい場合に、メモリセルMT1の電荷の漏れ量が最も多くなるため、読み出されたメモリセルMT2、MT3のデータと、メモリセルMT1の書き込みデータ(目標ステート)との差が最も大きい場合にのみ、QLC書き込み動作におけるベリファイ電圧レベルが調整するようにしてもよい。
そこで、以下に説明する本実施形態では、隣接メモリセルMT2、MT3のデータと、メモリセルMT1の書き込みデータ(目標ステート)との差が最も大きい場合にのみ、ベリファイ電圧レベルが調整される。言い換えれば、例えば、図13のような場合、メモリセルMT1についてのQLC書き込み動作におけるベリファイ電圧レベルが調整される。
ベリファイ電圧レベルの調整は、シーケンサ25がQLC書き込み動作を実行するときに、行われる。図13において、メモリセルMT1の閾値電圧分布が二点鎖線で示す高い閾値電圧分布になるように、ベリファイ電圧レベルが設定される。
次に、シーケンサ25の書き込み動作のシーケンスを説明する。図14は、MLC書き込み動作におけるコマンドシーケンスを示す図である。MLC書き込み動作が行われるとき、メモリコントローラ1は、不揮発性メモリ2へMLC書き込みコマンド、アドレス及びデータを出力する。MLC書き込みコマンドは、MLC書き込みの実行を指示するコマンドである。
シーケンサ25は、MLC書き込みコマンドを受信する。さらに、シーケンサ25は、MLC書き込みコマンドを受信した後、アドレスと書き込みデータを受信する。コマンド、アドレス及びデータの受信後、シーケンサ25は、MLC書き込み動作を実行する。受信したデータは、ラッチ回路XDLを介して、2つのラッチ回路ADL,BDLに格納される。シーケンサ25は、ラッチ回路ADL,BDLに格納された下位ページデータと中位ページデータに基づいて、MLC書き込み動作を実行する。
図15は、QLC書き込み動作におけるコマンドシーケンスを示す図である。QLC書き込み動作が行われるとき、メモリコントローラ1は、不揮発性メモリ2へQLC書き込みコマンド、アドレス及びデータを出力する。QLC書き込みコマンドは、QLC書き込みの実行を指示するコマンドである。
まず、シーケンサ25は、QLC書き込みコマンドを受信する。さらに、シーケンサ25は、QLC書き込みコマンドを受信した後、アドレスとデータを受信する。データの受信後、シーケンサ25は、隣接ワード線WL(n+1)に対応するメモリセルグループMGの各メモリセルMT及び隣接ワードWL(n-1)に対応するメモリセルグループMGの各メモリセルMTからデータを読み出す。隣接ワード線WL(n+1)に対応するメモリセルグループMGの各メモリセルMT及び隣接ワードWL(n-1)に対応するメモリセルグループMGの各メモリセルMTからデータを読み出す処理を隣接セル読み出し処理NDRともいう。
以下では、MLC書き込み動作によって書き込まれたデータを、MLC書き込みデータともいう。隣接セル読み出し処理NDRでは、隣接ワード線WL(n-1)のMLC書き込みデータと、隣接ワード線WL(n+1)のMLC書き込みデータとが読み出される。
続いて、シーケンサ25は、選択ワード線WLnに対応するメモリセルグループMGの各メモリセルMTからMLC書き込みデータを読み出す。選択ワード線WLnに対応するメモリセルグループMGの各メモリセルMTからMLC書き込みデータを読み出す処理を書き込み対象セル読み出し処理SDRともいう。書き込み対象セル読み出し処理SDRにおいては、MLC書き込み動作によって選択ワード線WLnに書き込まれている下位ページの読み出しと中位ページの読み出しが読み出される。
以上のように、シーケンサ25は、QLC書き込み動作において、QLC書き込みコマンドを受信すると、隣接ワード線WL(n+1)、WL(n-1)の複数のメモリセルMTのデータを読み出す隣接セル読み出し処理NDRと選択ワード線WLnの各メモリセルMTのMLC書き込みデータを読み出す書き込み対象セル読み出し処理SDRとを実行する。
以下、隣接セル読み出し処理NDRと書き込み対象セル読み出し処理SDRとを含む処理を、内部データ読み出し処理IDL1という。
そして、シーケンサ25は、QLC書き込み動作を実行する。QLC書き込み動作では、プログラム動作とベリファイ動作が実行される。プログラム動作は、選択ワード線WLへのプログラム電圧の印加とベリファイ電圧の印加とを含む。QLC書き込み動作は、下位及び中位ページのデータと、上位及びトップページのデータとに基づいて実行される。下位及び中位ページのデータは、書き込み対象セル読み出し処理SDRにより得られ、データラッチADL,BDLに格納されている。上位及びトップページのデータは、メモリコントローラ1から送信され、データラッチCDL,DDLに格納されている。
シーケンサ25は、隣接ワード線WL(n+1)、WL(n-1)の複数のメモリセル(以下、隣接メモリセルともいう)MTのデータ(すなわち閾値電圧分布のレベル)とワード線WLnの複数のメモリセル(以下、書き込み対象メモリセルともいう)のMT書き込みデータ(すなわち閾値電圧分布のレベル)との差に基づいて、QLC書き込み動作におけるベリファイ電圧レベルを、調整する。
QLC書き込み動作について、より具体的に説明する。
図16は、QLC書き込み動作のコマンドシーケンスと、コマンドシーケンスの実行に伴う7つのラッチ回路XDL~FDLのデータの格納状況を示す図である。
レディービジー信号/RBがHighレベルであるとき、上位ページデータを指定するコマンドc1、書き込みコマンドc2と、アドレスデータ(Add(WLn))と、上位ページデータ(Data_U)と、コマンドc3を、シーケンサ25は受信する。メモリコントローラ1から送信されたコマンド及びアドレスは、コマンドレジスタ24A及びアドレスレジスタ24Bにそれぞれ格納される。上位ページデータ(Data_U)は、ラッチ回路XDLへ転送され、格納される。
図16に示すように、シーケンサ25は、レディービジー信号/RBをLowレベルにして、コマンドレジスタ24Aに格納されたコマンドに基づいて、ラッチ回路XDLに格納されている上位ページデータ(Data_U)をラッチ回路CDLに転送する。転送後、レディービジー信号/RBは、Highレベルになる。
続いて、レディービジー信号/RBがHighレベルであるとき、トップページデータを指定するコマンドc4、書き込みコマンドc2と、アドレスデータ(Add(WLn))と、トップページデータ(Data_T)と、コマンドc5を、シーケンサ25は受信する。メモリコントローラ1から送信されたコマンド及びアドレスは、コマンドレジスタ24A及びアドレスレジスタ24Bにそれぞれ格納される。トップページデータ(Data_T)は、ラッチ回路XDLへ転送され、格納される。
図16に示すように、シーケンサ25は、レディービジー信号/RBがLowレベルにして、コマンドレジスタ24Aに格納されたコマンドに基づいて、ラッチ回路XDLに格納されているトップページデータ(Data_T)をラッチ回路DDLに転送する。
続いて、シーケンサ25は、内部データ読み出し処理IDL1を実行する。
隣接セル読み出し処理NDRでは、隣接する2つのワード線WL(n+1)、WL(n-1)の複数のメモリセルMTのMLC書き込みデータが読み出される。
図16に示すように、隣接ワード線WL(n+1)のデータ読み出し(WL(n+1) read)が行われ、シーケンサ25は、そのデータ読み出しの結果に基づいて、隣接メモリセルMT2の書き込みデータ(閾値電圧)に関する情報を、ラッチ回路EDLに格納する。
図17は、ラッチ回路EDLに格納されるデータを示す図である。図17に示すように、読み出したデータ(閾値電圧)がレベルA,B,Cである場合、シーケンサ25は、ラッチ回路EDLに「0」を格納する。また、読み出したデータ(閾値電圧)がレベルErである場合、シーケンサ25は、ラッチ回路EDLに「1」を格納する。
続いて、隣接するワード線WL(n-1)の複数のメモリセルMTのMLC書き込みデータが読み出される。
続いて、図16に示すように、隣接ワード線WL(n-1)のデータ読み出し(WL(n-1) read)が行われ、シーケンサ25は、そのデータ読み出しの結果に基づいて、隣接メモリセルMT2の書き込みデータ(閾値電圧)に関する情報を、ラッチ回路FDLに格納する。
隣接セル読み出し処理NDRに続いて書き込み対象セル読み出し処理SDRが実行される。書き込み対象セル読み出し処理SDRでは、ワード線WLnの複数のメモリセルMTのMLC書き込みデータが読み出される。シーケンサ25は、そのデータ読み出しの結果を、ラッチ回路ADL,BDLに格納する。下位ページデータは、ラッチ回路ADLに格納され、中位ページデータは、ラッチ回路BDLに格納される。
シーケンサ25は、ラッチ回路ADL~FDLに格納されたデータに基づいてベリファイ電圧レベルを調整しながら、ワード線WLn(ワード線WLnおよびセレクトゲート線SGDとの組み合わせによって選択されるメモリセルグループMG)に対する書き込み動作を実行する。
上述したように、本実施形態では、選択ワード線WLnにおいてMLC書き込み動作によりレベルCのデータが書き込まれたメモリセルMTに対して、ベリファイ電圧レベルの調整が行われる。従って、目標ステートがS12~S15のメモリセルMTへのプログラム動作後のベリファイ動作において、ベリファイ電圧レベルの調整が行われる。
図18は、閾値電圧分布と、ベリファイ動作におけるラッチ回路ADL~FDLのデータとの関係を説明するための図である。図18に含まれる分布図の横軸は閾値電圧であり、縦軸はメモリセルグループMGにおける当該閾値電圧に対応するメモリセルMTの個数である。図19は、ステートS15のベリファイ動作時のベリファイ電圧レベルの変化を示す図である。図19の横軸は、時間であり、縦軸は、ベリファイ電圧レベル(又は読み出し電圧VCG)である。
図18のSS1は、隣接ワード線WL(n+1)、WL(n-1)の2つの隣接メモリセルMT2,MT3のMLC書き込みデータが共にレベルErであるとき(ケース1)の、ラッチ回路ADL~FDLのデータの変化を示す。ラッチ回路EDLとFDLには、共に「1」が格納される。ラッチ回路ADL~DDLには、ステートS15に対応するデータとして、それぞれ「0」が格納される。
図18のSS2は、隣接ワード線WL(n+1)の隣接メモリセルMT2のMLC書き込みデータがレベルA,B,Cのいずれかであり、隣接ワード線WL(n-1)の隣接メモリセルMT3のMLC書き込みデータがレベルErであるとき(ケース2)の、ラッチ回路ADL~FDLのデータの変化を示す。ラッチ回路EDLには、「0」が格納され、ラッチ回路FDLには、「1」が格納される。ラッチ回路ADL~DDLには、ステートS15に対応するデータとして、それぞれ「0」が格納される。
図18のSS3は、隣接ワード線WL(n+1)の隣接メモリセルMT2のMLC書き込みデータがレベルErであり、隣接ワード線WL(n-1)の隣接メモリセルMT3のMLC書き込みデータがレベルA,B,Cのいずれかであるとき(ケース3)の、ラッチ回路ADL~FDLのデータの変化を示す。ラッチ回路EDLには、「1」が格納され、ラッチ回路FDLには、「0」が格納される。ラッチ回路ADL~DDLには、ステートS15に対応するデータとして、それぞれ「0」が格納される。
図18のSS4は、隣接ワード線WL(n+1)とWL(n-1)の2つの隣接メモリセルMT2,MT3のMLC書き込みデータがレベルA,B,Cのいずれかであるとき(ケース4)の、ラッチ回路ADL~FDLのデータの変化を示す。ラッチ回路EDLとFDLには、共に「0」が格納される。ラッチ回路ADL~DDLには、ステートS15に対応するデータとして、それぞれ「0」が格納される。
ケース1の場合、隣接メモリセルMTへの電荷の漏れ量が最も多い。ケース4の場合は、隣接メモリセルMTへの電荷の漏れ量が最も少ない。ケース2と3の場合は、接メモリセルMTへの電荷の漏れ量は、ケース1よりは多くなく、ケース4よりは少なくない。
そこで、各メモリセルMT1のベリファイ電圧レベルを、3段階のいずれかに設定して、データの書き込み動作が実行される。
シーケンサ25は、隣接ワード線WL(n+1)とWL(n-1)の2つの隣接メモリセルMT2,MT3のMLC書き込みデータと、書き込み対象のメモリセルMT1のMLC書き込みデータと、目標ステートデータとに基づいて、選択ワード線WLnの各メモリセルMT1に対するベリファイ動作を実行する。
各メモリセルMT1では、目標ステートがS12~S15のいずれかでなければ、ベリファイ電圧レベルの調整は行われない。
また、各メモリセルMT1では、目標ステートがS12~S15のいずれかであっても、2つのメモリセルMT2,MT3の両方のMLC書き込みデータがErレベルでないとき(レベルA,B,Cのいずれかであるとき)も、ベリファイ電圧レベルの調整は行われない。すなわち、ケース4の場合、ベリファイ電圧レベルの調整は行われない。
しかし、各メモリセルMT1では、目標ステートがS12~S15のいずれかであり、2つのメモリセルMT2,MT3の一方のMLC書き込みデータが、Erレベルであるときは、ベリファイ電圧レベルの調整が行われる。すなわち、ケース2と3の場合、ベリファイ電圧レベルの調整は行われる。
また、各メモリセルMT1では、目標ステートがS12~S15のいずれかであり、2つのメモリセルMT2,MT3の両方のMLC書き込みデータが、Erレベルであるときも、ベリファイ電圧レベルの調整が行われる。すなわち、ケース1の場合も、ベリファイ電圧レベルの調整は行われる。
ステートS12~S15の各ステートのベリファイ動作のために、シーケンサ25は、ベリファイ電圧レベルを複数設定する。ベリファイ電圧レベルは、メモリセルMT毎に設定される。
ケース1~4に対応して、図19に示すように、ベリファイ電圧レベルが複数レベルに設定される。図19は、ステートS15のベリファイ動作において、標準的な1つのベリファイ電圧Vr15の代わりに複数レベルのベリファイ電圧Vr15_L1、Vr15_L2、Vr15_L3を用いた例を示す。例えば、ベリファイ電圧Vr15_L2はベリファイ電圧Vr15_L1より所定のオフセット量だけ高く、ベリファイ電圧Vr15_レベルL3はベリファイ電圧Vr15_L2より所定のオフセット量だけ高い。すなわち、シーケンサ25は、QLC書き込み動作に含まれるあるステートに対するベリファイ動作において、標準的な1つのベリファイ電圧の代わりに、複数レベルのベリファイ電圧を段階的に印加する。複数レベルのベリファイ電圧のうちどれを適用するかは、隣接する2つのメモリセルMT2、MT3に書き込まれたデータに応じて選択する。
ケース4のメモリセルMTにはベリファイ電圧Vr15_L1を適用する。ケース2,3のメモリセルMTにはベリファイ電圧Vr15_L2を適用する。ケース1のメモリセルMTにはベリファイ電圧Vr15_L3を適用する。
図18と図19では、ステートS15のベリファイ動作において複数レベルのベリファイ電圧を用いる例を示しているが、ステートS12、S13、S14それぞれのベリファイ動作においても、複数レベルのベリファイ電圧を用いてもよい。ステートS12、S13、S14それぞれのベリファイ動作においても、ステートS15のベリファイ動作と同様に3段階のベリファイ電圧を用いる。なお、ベリファイ電圧のオフセット量は、ステートごとに異なっていてもよい。
よって、選択ワード線WLnのステートS15のベリファイ動作において、ケース4のメモリセルMTにはベリファイ電圧Vr15_L1が適用され、ケース2,3のメモリセルMTにはベリファイ電圧Vr15_L2が適用され、ケース1のメモリセルMTにはベリファイ電圧Vr15_L3が適用される。
以上のように、シーケンサ25は、メモリセルMT1に隣接する2つのメモリセルMT2、MT3に書き込まれたデータを読み出し、その読み出したデータと、メモリセルMT1にMLC書き込み動作により書き込まれたデータとに基づいて、QLC書き込み動作におけるメモリセルMT1のベリファイ動作のためのベリファイ電圧レベルを複数設定する。
また、シーケンサ25は、2つのメモリセルMT2、MT3の両方がレベルErである場合と、一方がレベルErである場合とで、複数のベリファイ電圧レベルを、変更している。すなわち、シーケンサ25は、複数のベリファイ電圧レベルを、2つのメモリセルMT2、MT3に書き込まれたデータに応じて設定する。
なお、ベリファイ電圧Vr15_L1、Vr15_L2,Vr15_L3のうちいずれか対応するレベルでベリファイ動作がパスすると、そのメモリセルMTに対応して設けられたラッチ回路ADL~DDLのデータは全て「0」のデータから全て「1」のデータ(ステートS0を示すデータ)に書き替えられる。すなわち、メモリセルMTがステートS15の閾値電圧分布に到達したと判断されるまでは、ラッチ回路ADL~DDLのデータは全て「0」のデータに維持される。しかし、ベリファイ電圧Vr15_L1、Vr15_L2,Vr15_L3のうちいずれか対応するレベルでベリファイ動作がパスすると、そのメモリセルMTに対応して設けられたラッチ回路ADL~DDLのデータは全て「0」のデータ(ステートS15を示すデータ)から全て「1」のデータ(ステートS0を示すデータに更新され、当該メモリセルMTは次回以降のループにおけるプログラム動作の対象からは除外される(書き込み禁止状態に設定される)。なお、ラッチ回路EDL,FDLのデータは変更されない。
具体的には、図19において、ケース4に対応するメモリセルMTについてはベリファイ電圧Vr15_L1でベリファイ動作がパスすると、ラッチ回路ADL~DDLのデータラッチ操作LO1が実行されて、ラッチ回路ADL~DDLのデータはすべて「1」に更新される。ケース2又はケース3に対応するメモリセルMTについてはベリファイ電圧Vr15_L2でベリファイ動作がパスすると、ラッチ回路ADL~DDLのデータラッチ操作LO2が実行されて、ラッチ回路ADL~DDLのデータはすべて「1」に更新される。また、ケース1に対応するメモリセルMTについてはベリファイ電圧Vr15_L3でベリファイ動作がパスすると、ラッチ回路ADL~DDLのデータラッチ操作LO3が実行されて、ラッチ回路ADL~DDLのデータ「0」はすべて「1」に更新される。
なお、上述した例では、隣接ワード線WL(n+1)とWL(n-1)に対応するラッチ回路EDL,FDLが用いられているが、1つのラッチ回路EDLだけを用いてもよい。すなわち、隣接ワード線WL(n+1)とWL(n-1)の2つの隣接メモリセルのデータを格納するラッチ回路は、少なくとも1つあればよい。
図20は、1つのラッチ回路EDLを用いた場合のデータの例を示す図である。図20は、2つの隣接メモリセルMT2,MT3のデータに関する情報を1つのラッチ回路EDLに格納されるデータを示す。
図20に示すように、2つのワード線WL(n+1)とWL(n-1)の2つの隣接メモリセルMT2,MT3のデータが共にErであるとき、シーケンサ25は、ラッチ回路EDLに「1」を格納する。22つの隣接メモリセルMT2,MT3の一方のデータがErであるとき、シーケンサ25は、ラッチ回路EDLに「0」を格納する。2つの隣接メモリセルMT2,MT3のデータが共にA,B,Cのいずれかであるとき、シーケンサ25は、ラッチ回路EDLに「0」を格納する。すなわち、図20は、2つの隣接メモリセルMT2,MT3に対する読み出し結果と、ラッチ回路EDLに格納されるデータとの対応を示すテーブルである。
図21は、1つのラッチ回路EDLを用いた場合の、内部データ読み出し処理IDL1におけるラッチ回路ADL~EDLのデータの変化を示す図である。図21に示すように、隣接ワード線WL(n+1)の複数のメモリセルMT2のMLC書き込みデータの読み出し(WL(n+1) read)が行われ、そのデータ読み出しの結果が、ラッチ回路EDLに格納される。
続いて、隣接するワード線WL(n-1)の複数のメモリセルMT3のMLC書き込みデータが読み出されるが、シーケンサ25は、図20に示すテーブルに従って、2つの隣接メモリセルMT2,MT3の読み出し結果に基づくデータをラッチ回路EDLに格納する。そして、シーケンサ25は、選択ワード線WLnの複数のメモリセルMT1のMLC書き込みデータの読み出し(WLn read)が行われ、そのデータ読み出しの結果が、ラッチ回路ADL,BDLに格納する。そして、シーケンサ25は、ラッチ回路ADL~EDLに格納されたデータに基づいてベリファイ電圧レベルを調整しながら、ワード線WLnに対する書き込み動作を実行する。
よって、1つのラッチ回路EDLを用いても、上述した実施形態と同様の効果を得ることができる。
以上のように、隣接メモリセルMT2,MT3への電荷の漏れが最も多いと想定されるメモリセルMT1(ケース1のメモリセル)のベリファイ電圧レベルが高く設定される。また、隣接メモリセルMT2,MT3への電荷の漏れが少なくないと想定されるメモリセルMT1(ケース2,3のメモリセル)のベリファイ電圧レベルもやや高く設定される。
その結果、QLC書き込み動作が実行された直後、レベルErのメモリセルMT2、MT3に隣接するメモリセルMT1は、高めの閾値電圧分布を有する。そのため、メモリセルMT1の閾値電圧分布が低めにシフトしても、同じワード線WL内において、同じステートの複数のメモリセルMTの閾値電圧分布は、ほぼ揃うようになる。
選択ワード線WLnの各メモリセルMT1の閾値電圧分布は、隣接ワード線WL(n+1)、WL(n-1)における対応する隣接メモリセルMT2,MT3の閾値電圧分布の状態に応じて影響を受けるため、選択ワード線WLnの各メモリセルMT1の閾値電圧分布は、大きくばらつく可能性がある。閾値電圧分布がばらついた状態でデータを読み出すために、例えば、隣接するワード線の読み出しを行うなどの追加的な読み出し電圧レベル補正処理を行うと、データを読み出すためにより長い時間が必要となる。
これに対して、本実施形態によれば、このような補正処理の発生率が低下するので、データを読み出すために必要となる時間を低減することができる。
次に、上述した実施形態の変形例を説明する。
(変形例1)
(変形例1)
上述した実施形態では、各センスアンプユニットSAUは、隣接メモリセルMT2とMT3のデータがレベルErであるかを示すデータを、ラッチ回路EDLとFDLに格納している。しかし、上述したように、電荷の漏れ量は、メモリセルMT1と各隣接メモリセルMT2,MT3とのデータの差に応じて異なる。よって、各センスアンプユニットSAUが、隣接メモリセルMT2、MT3のデータ(レベルEr,A,B,C)を示す情報を格納できるより多くのラッチ回路を有するようにして、メモリセルMT1のMLC書き込みデータ(あるいは目標ステート)と隣接メモリセルMT2、MT3のデータとの差に応じて、ベリファイ電圧レベルをより細かく複数設定するようにしてもよい。
例えば、隣接メモリセルMT2がレベルErである場合と、レベルAである場合で、ベリファイ電圧レベルを異ならせるようにしてもよい。
すなわち、隣接メモリセルMT2,MT3のデータが、4つのレベルEr,A,B,Cのいずれにあるかを保持し、その保持されたデータと、メモリセルMT1のMLC書き込みデータ(あるいは目標ステート)との差に応じて、シーケンサ25がベリファイ電圧レベルをより細かく設定する。
そのような構成によれば、ベリファイ電圧レベルは、より細かく段階的に変更可能となり、データを読み出すために必要となる時間がデータリテンション劣化によって悪化することを抑制できる。
(変形例2)
(変形例2)
メモリセルMT1についてのQLC書き込み動作におけるベリファイ電圧レベルは、隣接する2つのメモリセルMT2とMT3のいずれか一方だけを考慮して調整するようにしてもよい。
上述した実施形態では、選択ワード線WLnのメモリセルMT1のQLC書き込み動作が実行されるとき、2つのメモリセルMT2,MT3の2つのMLC書き込みデータとメモリセルMT1のMLC書き込みデータ(あるいは目標ステート)との差に応じて、ワード線WLnのQLC書き込み動作におけるベリファイ電圧レベルを調整している。しかし、隣接ワード線WL(n+1)とWL(n-1)の2つのメモリセルMT2,MT3の少なくとも一方のMLC書き込みデータとメモリセルMT1のMLC書き込みデータ(あるいは目標ステート)との差に応じて、ワード線WLnに対するQLC書き込み動作におけるベリファイ電圧レベルを調整するようにしてもよい。例えば、隣接ワード線WL(n+1)のメモリセルMT2のMLC書き込みデータとメモリセルMT1のMLC書き込みデータ(あるいは目標ステート)との差に応じて、ワード線WLnに対するQLC書き込み動作におけるベリファイ電圧レベルを調整するようにしてもよい。
本変形例2によっても、第1実施形態と同様の効果を得ることができる。
(第2の実施形態)
(第2の実施形態)
第1の実施形態では、2回目の書き込み動作(QLC書き込み動作)のときに、将来のデータリテンション劣化による電荷の漏れを想定して、想定した漏れ量が多い場合に閾値電圧分布が高めになるように予めベリファイ電圧レベルが調整される。
しかし、2回目の書き込み動作(QLC書き込み動作)が1回目の書き込み動作(MLC書き込み動作)の直後に行われた場合は、データリテンション劣化は発生していない。一方で、1回目の書き込み動作の後、ある程度の時間が経過してから2回目の書き込み動作が行われると、データリテンション劣化が発生している。
そこで、第2の実施形態では、2回目の書き込みの動作ときに、MLC書き込みデータ(1回目の書き込み動作によって書き込まれたデータ)の読み出しを行い、閾値電圧分布のずれ量を検出する、すなわちデータリテンション劣化の程度が判定される。そして、そのずれ量(差)に応じて、各ステートのベリファイ動作開始ループが調整される。
本実施形態も第1の実施形態と同様に、多段書き込み方式の例として、各メモリセルグループMGが4ビットデータを保持可能で、図9と同じ2段階書き込み方式の場合を説明する。
本実施形態に係るメモリシステムの構成は、第1の実施形態に係るメモリシステムの構成と同じであるので、本実施形態のメモリシステムの構成要素のうち、第1の実施形態のメモリシステムと同じ構成要素については説明を省略し、異なる構成について詳述する。
まず、データリテンション劣化による閾値電圧分布の変化について説明する。図22は、MLC書き込み動作が実行された後のデータリテンション劣化による4つのレベルの閾値電圧分布の変化を説明するための図である。
図22の上段は、MLC書き込み動作が実行された直後の、4つのレベルEr、A、B、Cの閾値電圧分布を示す。「M」は、中位ページのデータの読み出し電圧を示し、「L」は、下位ページのデータの読み出し電圧を示す。MLC書き込み動作が実行された後、読み出し電圧Lを用いて、下位ページのデータを読み出すことが可能であり、読み出し電圧Mを用いて、中位ページのデータを読み出すことが可能である。読み出し電圧M,Lは、例えばシーケンサ25が保持している設定情報であり、予め設定されている。以下、下位ページと中位ページのデータの読み出しを、MLC読み出しともいう。
図22の下段は、MLC書き込み動作が実行されてから時間が経過した場合の、4つのレベルEr、A、B、Cの閾値電圧分布を示す。データリテンション劣化により3つのレベルA、B、Cの閾値電圧分布は変化し、選択ワード線に印加するべき読み出し電圧M,Lは低下する。図22の下段は、レベルBの読み出し電圧Lが、ずれ量dvだけ低下したことを示している。
このずれ量dvは、後述するVthトラッキングリードにより検出される。同様に、レベルA,Cの閾値電圧分布のずれ量もVthトラッキングリードにより算出される。
データリテンション劣化によりレベルA、B、Cの閾値電圧分布が変化すると、QLC書き込み動作のために、予め設定された読み出し電圧M,Lを用いてMLCデータの読み出しを行うと、読み出したデータは、異なったデータとして読み出される場合がある。その場合、読み出しエラーが発生する。結果として、QLC書き込み動作におけるMLC読み出しの信頼性が低下する。
また、一般に、QLC書き込み動作のとき、閾値電圧が目標ステートの近傍にまで達していないと想定される場合は、ベリファイ動作が省略される。ベリファイ動作を省略することによって、書き込み時間TPROGの短縮が図られている。そのため、書き込み動作に含まれる複数のループに対応して、ベリファイ動作開始ループが予め設定される。
しかし、データリテンション劣化により、MLC書き込み動作が実行された後の閾値電圧分布が低い電圧側にシフトすると、目標ステートのためのベリファイ動作が開始されたとき、各メモリセルMTの閾値電圧分布が目標ステートの近傍にまで達しない。そのため、無駄なベリファイ動作が実行されることにより、書き込み時間TPROGが無駄に長くなってしまう。
そこで、本実施形態では、まず、QLC書き込み動作におけるMLC読み出しにおいて、Vthトラッキングリードが行われる。Vthトラッキングリードは、MLC読み出しの読み出し電圧の最適値を探索し、その探索により得られた修正読み出し電圧を用いて、MLC読み出しを行うものである。そのMLC読み出しにより読み出されたMLCデータを用いて、QLC書き込み動作が実行されるので、MLC読み出しにおける読み出しエラーの発生が防止される。
図23は、Vthトラッキングリードにおける選択ワード線WLnの読み出し電圧の変化を示す図である。図24は、Vthトラッキングリードにおける谷位置探索処理を示す図である。
図23に示すように、QLC書き込み動作におけるMLC読み出しは、探索リードと最適値リードの2つのリード動作を含む。以下、QLC書き込み時のMLC読み出しを、内部データ読み出し処理IDL2ともいう。図23は、中位ページのデータを読み出すときの読み出し電圧ARとCRのそれぞれの最適値を用いたデータ読み出しの場合を示す。
探索リードは、Vthトラッキングリードによる最適読み出し電圧の探索のための読み出しである。図23に示すように、探索リードは、読み出し電圧ARの探索リードSR1と、読み出し電圧CRの探索リードSR2を含む。また、最適値リードは、読み出し電圧ARの最適値リードOR1と、読み出し電圧CRの最適値リードOR2を含む。図24は、レベルErとレベルAの2つの閾値電圧分布の間の読み出し電圧の最適値を探索するVthトラッキングリードを説明するための図である。レベルAとレベルB間、及びレベルBとレベルCの間の読み出し電圧の最適値を探索するVthトラッキングリードの説明は省略する。
図24に示すように、Vthトラッキングリードでは、レベルErとレベルAの間に存在する最適読み出し電圧(すなわち谷位置)を算出するために、複数回の読み出しが行われる。複数回の読み出しは、読み出し電圧を所定の範囲内で変化させて行われる。Vthトラッキングリードの所定の範囲と読み出し回数は、レベル間で想定されるデータリテンション劣化により想定されるずれ量に基づいて予め設定される。
谷位置は、例えば、複数回の読み出しにおける各回におけるオンするメモリセルMTの数とオフするメモリセルMTの数の比率から判定される。
なお、図24には、中位ページの最適読み出し電圧を探索するために、レベルErとAの谷位置探索のVthトラッキングリードが示されているが、Vthトラッキングリードは、下位ページと中位ページの3つの最適読み出し電圧について行われる。
図24は、互いに異なる9つの読み出し電圧v1~v9に基づいて、所定の範囲内で9回の読み出しが行われる場合を示す。探索リードでは、読み出されたデータに基づいて、最適な読み出し電圧が算出されて谷位置が判定される。各谷位置は、ワード線WL毎に判定される。
後述するように、Vthトラッキングリードにより判定された谷位置が、読み出し電圧v1~v9により定められた複数の範囲r1,r2,r3,r4,r5のいずれにあるかに基づいて、ベリファイ動作開始ループの位置が調整される。すなわち、ベリファイ動作を開始するタイミングが調整される。
算出された各ページの最適な読み出し電圧を用いて、MLC読み出しが実行されるので、MLC読み出し時の読み出しエラーを防止することができる。
また、目標ステート毎に、所定のベリファイ動作開始ループが設定されている。
図25は、書き込み動作におけるループとベリファイ動作の関係を示す図である。図25は、ループ1から36の範囲を示している。図25に示すようなベリファイ動作を行うステートとループの関係は、予め設定され、その予め設定されたに基づいて、ベリファイ動作が行われる。
データの書き込み動作は、プログラム動作とベリファイ動作を含む。図25は、各ステートに対応してベリファイ動作を行うループを示す。各ステートS1~S15において、プログラム動作は、1回目のループから実行される。プログラム動作は、各ステートS1~S15において、最大で、丸印が含まれるループまで行われる。
図25中の矢印は、目標ステート毎のベリファイ動作開始ループを示す。図25中の丸印は、ベリファイ動作を行うことが可能なループを示している。例えば、ステートS5のデータに対するベリファイ動作は、ループ7からループ16まで行われる。ループ7がS5のベリファイ動作開始ループであり、ループ16がS5のベリファイ動作終了ループである。言い換えれば、ステートS5のデータは、ループ1からループ6までのプログラム動作によっては、閾値電圧が目標ステート(S5)の近傍にまで達していないと想定されるため、ループ6までのベリファイ動作が省略されている。このように、無駄なベリファイ動作を省略することによって、書き込み時間TPROGの短縮が図られる。
本実施形態では、各ステートのベリファイ動作開始ループは、上述したVthトラッキングリードにより判定された谷位置が、複数の範囲r1,r2,r3,r4,r5のいずれにあるかに応じて、変更される。
本実施形態では、例えば、シーケンサ25がVthトラッキングリードにより判定された谷位置に応じたオフセット量dLを保持し、予め設定されたテーブルに基づいて当該オフセット量dLに応じたベリファイ動作開始ループを再設定する。さらに、谷位置のずれ量dvに応じて、ベリファイ動作開始ループに対するオフセット量が変更される。ここでは、谷位置がr1の範囲にあるときのオフセット量(すなわち加算ループ数)は、2dLであり、谷位置がr2の範囲にあるときのオフセット量は、dLであり、谷位置がr3の範囲にあるときのオフセット量は、0であり、谷位置がr4の範囲にあるときのオフセット量は、(-dL)であり、谷位置がr5の範囲にあるときのオフセット量は、(-2dL)であるように、オフセット量は変更される。よって、例えば、オフセット量dLを「1」とした場合、谷位置がr1の範囲にあるとき、あるステートのベリファイ動作開始ループが10として設定されていても、2ループだけ遅くなって、そのステートのベリファイ動作開始ループは12に変更される。また、谷位置がr4の範囲にあるときは、あるステートのベリファイ動作開始ループが10として設定されていても、1ループだけ早くなって、そのステートのベリファイ動作開始ループは9に変更される。
すなわち、シーケンサ25は、MLC書き込み動作により書き込まれたデータに対応する閾値電圧分布間の谷位置を探索し、探索された谷位置の電圧に基づいて、ベリファイ動作のためのベリファイ動作開始ループを変更する。ここでは、シーケンサ25は、谷位置の電圧と、MLCデータを読み出すために予め設定された読み出し電圧との差に応じて、ベリファイ動作開始ループを変更する。
図26は、ループごとの閾値電圧分布の変化を示す図である。図26は、レベルBの閾値電圧分布をステートS10の閾値電圧分布になるようにプログラム動作が行われるときの閾値電圧分布の変化と、ベリファイ動作の開始タイミングを示す。
例えば、図9に示すように、レベルBの閾値電圧分布の電荷は、QLC書き込み動作により、ステートS6、S7、S10、S11のいずれかになる。プログラム動作において印加されるプログラム電圧Vpgmの大きさと、メモリセルMTの閾値電圧の上昇量には相関関係がある。従って、あるステートSnに対して、ベリファイ動作を開始すべきタイミングは、ループと対応して決められる。すなわち、ステートSnごとに、ベリファイ動作開始ループN(Sn)が設定される。例えば、ステートS10の場合、データリテンション劣化を想定しなければ、図25に示すように、ステートS10に対するベリファイ動作を開始するタイミングを示すベリファイ動作開始ループN(S10)は16である。データリテンション劣化を想定しなければ、図26に示すように、ループ15以前においては、ステートS10のベリファイ動作をすることは無駄となる。ステートS10のベリファイ動作が、予め設定されたループN(Sn)から実行されることにより、無駄なベリファイ動作の実行を抑制しつつ、ステートS10の所望の閾値電圧分布を得ることができる。
図25では、ステートS10のベリファイ動作が開始するベリファイ動作開始ループN(S10)は、16である。すなわち、ループ15以前は(実行中のループをループカウント値Lcによって示した場合、LcがN(S10)未満であるときは)、ステートS10のためのベリファイ動作は実行されない。図26においてd1は、レベルBの閾値電圧分布を示し、d2は、ループ15以前の閾値電圧分布を示す。
ステートS10の閾値電圧分布は、レベルBの閾値電圧分布から生成される。各メモリセルMTの閾値電圧分布は、ループが進行するにつれて(ループカウント値Lcが増加するにつれて)、徐々に閾値電圧が高くなるように変化していく。
図27は、ループ15(Lc=15)と、ループ16(Lc=16)において、ベリファイ動作の際に選択ワード線に印加される読み出し電圧の変化を示す図である。図25のテーブルによれば、ループ15(Lc=15)においては、ステートS5からS9についてのベリファイ動作が実行される。同様に、ループ16(Lc=16)においては、ステートS5からS10についてのベリファイ動作が実行される。
例えば、図26においてd1で示すようなレベルBの閾値電圧分布からd4で示すようなステートS10の閾値電圧分布を生成する場合、ループ15以前(Lc<N(S10))のプログラム動作によって生成される閾値電圧分布d2は、点線で示すベリファイ電圧Vr10(ステートS10のためのベリファイ電圧)まで到達しない。一方で、ループ16(Lc=N(S10))のプログラム動作によって生成される閾値電圧分布d3は、点線で示すベリファイ電圧Vr10の近傍に到達する。従って、図26に示すような閾値電圧分布の変化を想定した場合、ループ15以前ではステートS10のベリファイ動作は不要であり、ループ以後にステートS10のベリファイ動作を実行することにより、無駄なベリファイ動作を省略しつつ、ステートS10の閾値電圧分布として所望の分布d4が生成できる。
すなわち、実行中のループを示すループカウント値LcがN(Sn)になると(図26の例では、N(S10)=16)になると、当該ステートSnのためのベリファイ動作が開始される。理想的な状態を想定すると、ベリファイ動作開始ループN(Sn)より前のループでは図26のd2に示すように目標ステートのベリファイ電圧(点線で示すベリファイ電圧Vr10)に到達せず、図26のd3に示すように、ベリファイ動作開始ループN(Sn)において目標ステートのベリファイ電圧に一部が近接した状態となる。図26のd3に示す状態からベリファイ動作を開始させることにより、無駄なベリファイ動作を省略しつつ、各ステートの閾値電圧分布として図26のd4に示すように幅の狭い分布を生成できる。
しかし、MLC書き込み動作が実行された後の閾値電圧分布(例えばレベルB)は低い電圧側へシフトする場合がある。
図28は、MLC書き込み動作が終了した後におけるデータリテンション劣化によるループごとの閾値電圧分布の変化を示す図である。図28に示すように、レベルBの閾値電圧分布が点線で示す位置から実線で示す位置に変化した場合、例えば、ループ15以前のプログラム動作によって生成される閾値電圧分布d3は目標ステート(S10)に対応するベリファイ電圧(Vr10)まで到達せず、ループ16+Mのプログラム動作によって得られる閾値電圧分布daが目標ステート(S10)に対応するベリファイ電圧(Vr10)の近傍まで到達する。この場合、ループ16+Mより前に実施されるベリファイ動作は無駄となり、M回分のベリファイ動作時間t1だけ書き込み動作全体の時間が増えることになる。
すなわち、MLCデータの閾値電圧分布が低い電圧側へシフトした場合、データリテンション劣化を想定せずに設定されたベリファイ動作開始ループからベリファイ動作を実行すると、無駄なベリファイ動作が発生してしまう。
一方で、単純に閾値電圧分布が低い電圧側へシフトすることを想定してベリファイ動作開始ループN(Sn)を設定すると、データリテンション劣化の影響が小さい場合、オーバープログラミングが発生し得る。
図29は、単純に閾値電圧分布が低い電圧側へシフトすることを想定してベリファイ動作開始ループN(Sn)をより大きい値に再設定した場合の、ループごとの閾値電圧分布の変化を示す図である。例えば、データリテンション劣化を想定しない場合のステートS10に対するベリファイ動作開始ループN(S10)として、16ではなく、それより大きい17に再設定した例を考える。ここで、もしもデータリテンション劣化による閾値電圧分布が低い電圧側へのシフトが想定したよりも小さかった場合、図29に示すように、ループ16(本来のベリファイ動作開始ループN(S10))のプログラム動作によって生成される閾値電圧分布d2がベリファイ電圧(Vr10)の近傍に来ている。そして、ループ17(大きい値に再設定されたベリファイ動作開始ループN(S10))のプログラム動作によって生成される閾値電圧分布d3は、ある程度の部分がベリファイ電圧(Vr10)を超過している。各メモリセルMTは、すでに閾値電圧がベリファイ電圧を超過していても、プログラム動作よりも前にベリファイ動作によって書き込み禁止状態に設定されていないと、プログラム動作の対象となってしまう。その結果、各ステートの閾値電圧分布として図29のd4に示すように幅の広い分布が生成されてしまうおそれがある。もしも閾値電圧分布がより高いステートのベリファイ電圧に到達した場合(あるいは、メモリセルグループMGの中で閾値電圧がより高いステートのベリファイ電圧に到達してしまったメモリセルMTの数が多くなることにより、メモリコントローラ1のECC回路14によるエラー訂正ができなくなった場合)、オーバープログラミングとなる。
そこで、本実施形態では、各ステートSnに対するベリファイ動作開始ループN(Sn)を、MLC書き込み動作が実行された後の閾値電圧分布のずれ量dvに応じて調整する。
具体的には、QLC書き込み動作において、MLC書き込みにより書き込まれたデータの閾値電圧分布に対してVthトラッキングを行い、最適な読み出し電圧を検出する。その検出して得られた最適な読み出し電圧と、当初想定された読み出し電圧との差(図22のずれ量dv)に応じて、必要なステートに対するベリファイ動作開始ループを変更する。例えば、レベルBの閾値電圧分布のずれ量dvに応じて、ステートS6,S7,S10,S11のベリファイ動作開始ループを所定量だけ大きく設定して、ベリファイ動作の開始を遅らせる。すなわち、シーケンサ25は、谷位置が、MLC書き込みデータを読み出すために予め設定された読み出し電圧よりも低い場合は、ベリファイ動作の開始を遅らせるように、ベリファイ動作開始ループを変更する。
以上のように、レベル間の谷位置が最適な読み出し電圧に基づいてMLC読み出しを実行するので、QLC書き込み動作においてMLC書き込みデータを読み出す際の信頼性が向上する。さらに、通常の読み出し電圧とのずれ量dvに応じて、各ステートSnに対するベリファイ動作開始ループN(Sn)が変更されるので、無駄なベリファイ動作を省略され、書き込み時間TPROGの短縮化を図ることができる。
図30は、QLC書き込み動作におけるコマンドシーケンスを示す図である。
QLC書き込み動作が行われるとき、シーケンサ25は、QLC書き込みコマンドを受信する。
さらに、シーケンサ25は、受信したQLC書き込みコマンドに関わるアドレスとデータを受信する。
データの受信後、シーケンサ25は、選択ワード線WLnに対して上述した谷位置探索処理VSを実行する。すなわち、MLCデータについての最適読み出し電圧を算出する。
続いて、シーケンサ25は、最適読み出し電圧を用いて、選択ワード線WLnの各メモリセルMTのMLC書き込みデータの読み出し処理(書き込み対象セル読み出し処理SDR1ともいう)を実行する。この書き込み対象セル読み出し処理SDR1においても、下位ページの読み出しと中位ページの読み出しの2回の読み出しが実行される。
以上のように、シーケンサ25は、QLC書き込み動作において、QLC書き込みコマンドを受信すると、谷位置を探索する谷位置探索処理VSと、MLC書き込みにより書かれたデータの読み出しを行うデータ読み出し処理(SDR1)とを実行する。書き込み対象セル読み出し処理SDR1では、MLC書き込み動作により書かれたデータの読み出しは、探索された谷位置に基づいて行われる。
そして、シーケンサ25は、QLC書き込み動作を実行する。QLC書き込み動作では、各レベルの読み出し電圧のずれ量dvに応じて、各ステートのベリファイ動作開始ループN(Sn)を調整する。
具体的には、上述した無駄なベリファイ動作を行わないように、あるいは無駄なベリファイ動作の数を減らすように、シーケンサ25は、ステートS1~S15の少なくとも一部のベリファイ動作開始ループを遅らせる。
図31は、本実施形態に関わる、書き込み動作におけるループとベリファイ動作の対象となるステートの関係を示す図である。ベリファイ動作開始ループが所定量だけ大きく設定されると、予め設定されたベリファイ動作開始ループから新しく設定されたベリファイ動作開始ループまでは、対象となるステートのベリファイ動作が省略される。図31において、点線の丸印は省略されたベリファイ動作を示す。
図32は、QLC書き込み動作のフローチャートである。実行中のループに対応するループカウント値をLcで表す。例えば、1回目のループにおいては、Lcは1となる。なお、本フローチャートにおいて、QLC書き込み動作が実行される前におけるループカウント値Lcは0にセットされている。
シーケンサ25は、ループカウント値Lcを1インクリメントにして、所定のプログラムパルスを選択ワード線WLに印加する(ステップ101)。以下、「ステップ」は「s」とも表記される。例えば、「ステップ101」は「s101」とも表記される。
シーケンサ25は、当該ループにおいてベリファイ動作の対象となる各ステートSnのプログラムが終了したかを判定する(s102)。nは、1~15のいずれかである。例えば、ループ1においてはステートS1がベリファイ動作の対象となり、ループ3においてはステートS1及びS2がベリファイ動作の対象となり、ループ20においてはステートS8、S9、S10、S11及びS12がベリファイ動作の対象となる。
当該ループにおいてベリファイ動作の対象となる各ステートSnについてのプログラムが終了しているとき(s102:YES)、シーケンサ25は、ステートS15のプログラムが終了しているか(すなわちn=15?)を判定する(s103)。
プログラムがステートS15まで終了しているとき(s103;YES)、シーケンサ25は、図32の処理を終了する。
ステートS15まで終了していないとき(s103;NO)、シーケンサ25は、nを1インクリメントして(s108)、その後、s102の処理を実行する。
当該ループにおいてベリファイ動作の対象となる各ステートSnについてのプログラムが終了していないとき(s102:NO)、シーケンサ25は、ループカウント値Lc(実行中のループ)が、各ステートSnのベリファイ動作開始ループN(Sn)以上であるかを判定する(s105)。すなわち、当該ループにおいて、ステートSnのベリファイ動作を実行する必要があるかどうかを判定する。
ループカウント値Lc(実行中のループ)が、各ステートSnのベリファイ動作開始ループN(Sn)以上ではないとき(s105:NO)、シーケンサ25は、ループカウント値Lcを1インクリメントする(s104)。s104の後、シーケンサ25は、所定のプログラムパルスを選択ワード線WLに出力して、次のループのプログラム動作を実行する(s101)。
ループカウント値Lc(実行中のループ)が、ステートSnのベリファイ動作開始ループN(Sn)以上であるとき(s105:YES)、シーケンサ25は当該ステートSnについてベリファイ動作を実行する(s106)。
s106の後、シーケンサ25は、ステートS15のベリファイ動作が実行済みであるかどうか(すなわちn=15?)を判定する(s107)。
ステートS15のベリファイ動作が実行済みであるとき(s107:YES)、シーケンサ25は、s104を実行する。このとき、S104では、nは初期化される。
ステートS15のベリファイ動作が実行済みでないとき(s107:NO)、シーケンサ25は、nを1インクリメントして(s108)、その後、s102の処理を実行する。
図33は、Vthトラッキングリードを用いた各レベルの読み出し電圧のずれ量dvに応じて、各ステートのベリファイ動作開始ループN(Sn)を調整した結果の、ループとベリファイ動作の関係を示す図である。
図33において、網掛けがされたステートについて、ベリファイ動作開始ループN(Sn)が変更されたことを示している。例えば、ステートS4のベリファイ動作開始ループN(S4)は、オフセット量2dLだけ省略されている。すなわち、ループ5とループ6においてステートS4のベリファイ動作は実行されない。同様に、ステートS10のベリファイ動作開始ループN(S10)は、オフセット量dLだけ省略されている。また、ステートS12~S15のベリファイ動作開始ループN(S12)~N(S15)は、オフセット量dLだけ追加されている。
以上のように、本実施形態によれば、無駄なベリファイ動作の実行を抑制できるので、閾値電圧分布への悪影響を避けつつ、データを書き込むために必要となる時間を低減できる。
特に、MLCデータのVthトラッキングリードにより検出された谷位置の情報を、QLC書き込み動作の直前に取得して、ベリファイ動作開始ループが決定されるので、ベリファイ動作が無駄のない最適な回数で実行可能である。
なお、上述した各実施形態では、不揮発性メモリ2は、メモリセルあたり4ビットを記憶可能なQLCのNANDメモリであるが、不揮発性メモリ2は、2bit/Cell、3bit/Cell、又は5bit/CellのNANDメモリであっても構わない。また、3回以上の書き込み動作によって多値データを書き込む方式であってもよい。例えば、3bit/CellのNANDメモリの場合、1回目の書き込み動作で1ビット分のデータが書き込まれて、2回目の書き込み動作で残り2ビット分のデータが書き込まれる方式でもよい。例えば、5bit/CellのNANDメモリの場合、1回目の書き込み動作で2ビット分のデータが書き込まれて2回目の書き込み動作で残り3ビット分のデータが書き込まれる方式でもよいし、1回目の書き込み動作で3ビット分のデータが書き込まれて2回目の書き込み動作で残り2ビット分のデータが書き込まれる方式でもよい。また、例えば、5bit/CellのNANDメモリの場合、1回目の書き込み動作で1ビット分のデータが書き込まれて、2回目の書き込み動作で他の2ビット分のデータが書き込まれて、3回目の書き込み動作で残り2ビット分のデータが書き込まれる方式でもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として例示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1 メモリコントローラ、
2 不揮発性メモリ、
12 プロセッサ、
13 ホストインターフェイス、
14 ECC回路、
15 メモリインターフェイス、
16 内部バス、
21 メモリセルアレイ、
22 入出力回路、
23 ロジック制御回路、
24 レジスタ、
25 シーケンサ、
26 電圧生成回路、
27 ロウデコーダ、
28 センスアンプ、
28 電圧生成回路、
29 入出力用パッド群、
30 ロジック制御用パッド群、
31 電源入力用端子群、
31 センスアンプ、
40~48 トランジスタ、
49 キャパシタ、
50,51 インバータ、
52,53 トランジスタ、
331、332、333 配線層、
334 メモリホール、
335 ブロック絶縁膜、
336 電荷蓄積膜、
337 ゲート絶縁膜、
338 導電体柱、
339、340 コンタクトプラグ
2 不揮発性メモリ、
12 プロセッサ、
13 ホストインターフェイス、
14 ECC回路、
15 メモリインターフェイス、
16 内部バス、
21 メモリセルアレイ、
22 入出力回路、
23 ロジック制御回路、
24 レジスタ、
25 シーケンサ、
26 電圧生成回路、
27 ロウデコーダ、
28 センスアンプ、
28 電圧生成回路、
29 入出力用パッド群、
30 ロジック制御用パッド群、
31 電源入力用端子群、
31 センスアンプ、
40~48 トランジスタ、
49 キャパシタ、
50,51 インバータ、
52,53 トランジスタ、
331、332、333 配線層、
334 メモリホール、
335 ブロック絶縁膜、
336 電荷蓄積膜、
337 ゲート絶縁膜、
338 導電体柱、
339、340 コンタクトプラグ
Claims (12)
- 1メモリセル当たりn(nは、2以上の整数)ビットデータを記憶可能なメモリセルを複数含むメモリセルアレイと、
各メモリセルにnビット中p(p<n)ビットデータを書き込む第1書き込み動作と、前記第1書き込み動作後に前記各メモリセルに前記nビットデータを書き込む第2書き込み動作とを実行可能で、前記第2書き込み動作において、前記nビットデータを書き込むプログラム動作と、前記プログラム動作により書き込まれた前記nビットデータのベリファイを行うベリファイ動作とを実行する制御回路と、
を有し、
前記制御回路は、第1メモリセルに隣接する少なくとも1つの第2メモリセルに書き込まれた少なくとも1つの第1データを読み出し、読み出した前記第1データと、前記第1メモリセルに前記第1書き込み動作により書き込まれた第2データとに基づいて、前記第2書き込み動作における前記第1メモリセルの前記ベリファイ動作のためのベリファイ電圧レベルを複数設定する、半導体記憶装置。 - 前記制御回路は、前記複数のベリファイ電圧レベルを、前記第1データに応じて設定する、請求項1に記載の半導体記憶装置。
- 前記制御回路は、前記第2書き込み動作において、前記複数のベリファイ電圧レベルを、前記第1データに応じて段階的に高くなるように設定する、請求項2に記載の半導体記憶装置。
- 前記制御回路は、前記第2の書き込み動作において、前記nビットデータの書き込みコマンドを受信すると、前記第1データを読み出す第1読み出し処理と前記第2データを読み出す第2読み出し処理とを実行する、請求項1に記載の半導体記憶装置。
- 前記少なくとも1つの第1データを格納するための少なくとも1つの第1のラッチ回路を有する、請求項1に記載の半導体記憶装置。
- 前記少なくとも1つの第1のラッチ回路は、前記第1メモリセルに隣接する2つのメモリセルのための2つの前記第1のラッチ回路を有する、請求項1に記載の半導体記憶装置。
- 前記第2データを格納する第2のラッチ回路を有する、請求項5に記載の半導体記憶装置。
- 1メモリセル当たりn(nは、2以上の整数)ビットデータを記憶可能なメモリセルを複数含むメモリセルアレイと、
各メモリセルにnビット中p(p<n)ビットデータを書き込む第1書き込み動作と、前記第1書き込み動作後に前記各メモリセルに前記nビットデータを書き込む第2書き込み動作とを実行可能で、前記第2書き込み動作において、前記nビットデータを書き込むプログラム動作と、前記プログラム動作により書き込まれた前記nビットデータのベリファイを行うベリファイ動作とを実行する制御回路と、
を有し、
前記制御回路は、前記第1書き込み動作により書き込まれたデータに対応する2つの閾値電圧分布の谷位置を探索し、探索された前記谷位置の電圧に基づいて、前記ベリファイ動作のためのベリファイ動作開始ループを変更する、半導体記憶装置。 - 前記制御回路は、前記谷位置の電圧と、前記データを読み出すために予め設定された読み出し電圧との差に応じて、前記ベリファイ動作開始ループを変更する、請求項8に記載の半導体記憶装置。
- 前記制御回路は、前記谷位置が、前記データを読み出すために前記予め設定された読み出し電圧よりも低い場合は、前記ベリファイ動作の開始を遅らせるように、前記ベリファイ動作開始ループを変更する、請求項9に記載の半導体記憶装置。
- 前記制御回路は、前記第2の書き込み動作において、前記nビットデータの書き込みコマンドを受信すると、前記谷位置を探索する谷位置探索処理と、前記第1書き込み動作により書かれた前記pビットデータの読み出しを行うデータ読み出し処理とを実行する、請求項9に記載の半導体記憶装置。
- 前記データ読み出し処理は、前記第1書き込み動作により書かれた前記pビットデータの読み出しを、探索された前記谷位置に基づいて行う、請求項11に記載の半導体記憶装置。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021145658A JP2023038769A (ja) | 2021-09-07 | 2021-09-07 | 半導体記憶装置 |
TW111100595A TWI802209B (zh) | 2021-09-07 | 2022-01-06 | 半導體記憶裝置 |
CN202210099929.9A CN115775573A (zh) | 2021-09-07 | 2022-01-27 | 半导体存储装置 |
US17/682,255 US20230072387A1 (en) | 2021-09-07 | 2022-02-28 | Multi-bit writing and verification in semiconductor memory device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021145658A JP2023038769A (ja) | 2021-09-07 | 2021-09-07 | 半導体記憶装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023038769A true JP2023038769A (ja) | 2023-03-17 |
Family
ID=85385521
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021145658A Pending JP2023038769A (ja) | 2021-09-07 | 2021-09-07 | 半導体記憶装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230072387A1 (ja) |
JP (1) | JP2023038769A (ja) |
CN (1) | CN115775573A (ja) |
TW (1) | TWI802209B (ja) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4410188B2 (ja) * | 2004-11-12 | 2010-02-03 | 株式会社東芝 | 半導体記憶装置のデータ書き込み方法 |
KR102187521B1 (ko) * | 2014-01-28 | 2020-12-08 | 삼성전자주식회사 | 불휘발성 메모리 및 메모리 컨트롤러를 포함하는 메모리 시스템 및 불휘발성 메모리에 데이터를 프로그램하는 프로그램 방법 |
US11069417B2 (en) * | 2019-08-27 | 2021-07-20 | Samsung Electronics Co., Ltd. | Memory system and method of operating the same |
KR20210025249A (ko) * | 2019-08-27 | 2021-03-09 | 삼성전자주식회사 | 메모리 시스템 및 그 동작 방법 |
JP7346311B2 (ja) * | 2020-01-16 | 2023-09-19 | キオクシア株式会社 | メモリシステム |
-
2021
- 2021-09-07 JP JP2021145658A patent/JP2023038769A/ja active Pending
-
2022
- 2022-01-06 TW TW111100595A patent/TWI802209B/zh active
- 2022-01-27 CN CN202210099929.9A patent/CN115775573A/zh active Pending
- 2022-02-28 US US17/682,255 patent/US20230072387A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
TWI802209B (zh) | 2023-05-11 |
TW202312173A (zh) | 2023-03-16 |
US20230072387A1 (en) | 2023-03-09 |
CN115775573A (zh) | 2023-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7894269B2 (en) | Nonvolatile memory and method for compensating during programming for perturbing charges of neighboring cells | |
US9190161B2 (en) | Semiconductor memory device | |
US11107542B2 (en) | Semiconductor memory device | |
JP2019200826A (ja) | 半導体記憶装置 | |
TW201826269A (zh) | 半導體記憶裝置 | |
JP2020047330A (ja) | 半導体記憶装置 | |
JP2020009509A (ja) | 半導体記憶装置 | |
US20200294600A1 (en) | Semiconductor memory device | |
KR101393772B1 (ko) | 반도체 기억 장치 | |
US20230092551A1 (en) | Semiconductor storage device | |
US11869597B2 (en) | Semiconductor storage device including a voltage generator for applying first and second intermediate voltages to an adjacent word line in a program operation | |
US9558815B2 (en) | Semiconductor storage device | |
TWI802209B (zh) | 半導體記憶裝置 | |
US11423980B2 (en) | Semiconductor storage device | |
US20230317181A1 (en) | Semiconductor storage device and memory system | |
TWI804191B (zh) | 半導體記憶裝置 | |
TWI767789B (zh) | 半導體記憶裝置 | |
US11810629B2 (en) | Semiconductor memory device | |
JP2023046208A (ja) | 半導体記憶装置 | |
JP2023086292A (ja) | 半導体記憶装置 | |
JP2023045251A (ja) | 半導体記憶装置及びデータ消去方法 | |
JP2022134271A (ja) | 半導体記憶装置 |