JP2020009511A - メモリシステム及び不揮発性半導体メモリ - Google Patents
メモリシステム及び不揮発性半導体メモリ Download PDFInfo
- Publication number
- JP2020009511A JP2020009511A JP2018128320A JP2018128320A JP2020009511A JP 2020009511 A JP2020009511 A JP 2020009511A JP 2018128320 A JP2018128320 A JP 2018128320A JP 2018128320 A JP2018128320 A JP 2018128320A JP 2020009511 A JP2020009511 A JP 2020009511A
- Authority
- JP
- Japan
- Prior art keywords
- write
- verify
- voltage
- writing
- memory
- 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
- 239000004065 semiconductor Substances 0.000 title claims abstract description 29
- 238000012795 verification Methods 0.000 claims abstract description 110
- 238000011084 recovery Methods 0.000 claims description 29
- 238000010586 diagram Methods 0.000 abstract description 42
- 238000001514 detection method Methods 0.000 description 72
- 238000009826 distribution Methods 0.000 description 40
- 238000000034 method Methods 0.000 description 24
- 238000012545 processing Methods 0.000 description 11
- 230000000694 effects Effects 0.000 description 7
- 238000003860 storage Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 101100481702 Arabidopsis thaliana TMK1 gene Proteins 0.000 description 5
- 239000004020 conductor Substances 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 230000003044 adaptive effect Effects 0.000 description 4
- 238000009792 diffusion process Methods 0.000 description 4
- 239000002184 metal Substances 0.000 description 3
- 101100481704 Arabidopsis thaliana TMK3 gene Proteins 0.000 description 2
- 238000005056 compaction Methods 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 239000012535 impurity Substances 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 101100481703 Arabidopsis thaliana TMK2 gene Proteins 0.000 description 1
- 101150056203 SGS3 gene Proteins 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000000149 penetrating effect Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
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
- 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/5671—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 trapping in an insulator
-
- 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/10—Programming or 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/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/32—Timing 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
- G11C16/3413—Circuits or methods to recover overprogrammed nonvolatile memory cells detected during program verification, usually by means of a "soft" erasing step
-
- 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/3463—Circuits or methods to detect overprogrammed nonvolatile memory cells, usually during program verification
-
- 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/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
- G11C16/3495—Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/028—Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- 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
-
- H—ELECTRICITY
- H10—SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
- H10B—ELECTRONIC MEMORY DEVICES
- H10B43/00—EEPROM devices comprising charge-trapping gate insulators
- H10B43/20—EEPROM devices comprising charge-trapping gate insulators characterised by three-dimensional arrangements, e.g. with cells on different height levels
- H10B43/23—EEPROM devices comprising charge-trapping gate insulators characterised by three-dimensional arrangements, e.g. with cells on different height levels with source and drain on different levels, e.g. with sloping channels
- H10B43/27—EEPROM devices comprising charge-trapping gate insulators characterised by three-dimensional arrangements, e.g. with cells on different height levels with source and drain on different levels, e.g. with sloping channels the channels comprising vertical portions, e.g. U-shaped channels
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
Abstract
【課題】書き込み性能を向上させることができるメモリシステム及び不揮発性半導体メモリを提供する。【解決手段】実施形態のメモリシステムは、メモリセルを含むNAND型フラッシュメモリ100と、メモリセルに対する書き込み動作で用いる書き込みパラメータを記憶するメモリを有するコントローラ200とを備える。コントローラ200は、NAND型フラッシュメモリ100にメモリセルに対する書き込みパラメータを用いた書き込み動作を指示し、書き込み動作から得られる書き込みパラメータの検証結果をNAND型フラッシュメモリ100から受け取る。コントローラ200は、書き込みパラメータの検証結果に基づいて、前記メモリに記憶された書き込みパラメータを更新する。【選択図】図10
Description
実施形態は、メモリシステム及び不揮発性半導体メモリに関するものである。
不揮発性半導体メモリとして、メモリセルが二次元あるいは三次元に配列されたNAND型フラッシュメモリが知られている。NAND型フラッシュメモリと、NAND型フラッシュメモリを制御するコントローラとにより、メモリシステムが構成されている。
書き込み性能を向上させることができるメモリシステム及び不揮発性半導体メモリを提供する。
実施形態のメモリシステムは、メモリセルを含む不揮発性半導体メモリと、前記メモリセルに対する書き込み動作で用いる書き込みパラメータを記憶するメモリを有するコントローラとを具備し、前記コントローラは、前記不揮発性半導体メモリに、前記メモリセルに対する前記書き込みパラメータを用いた前記書き込み動作を指示し、前記書き込み動作から得られる前記書き込みパラメータの検証結果を前記不揮発性半導体メモリから受け取り、前記コントローラは、前記書き込みパラメータの前記検証結果に基づいて、前記メモリに記憶された前記書き込みパラメータを更新する。
以下、図面を参照して実施形態について説明する。以下の説明において、同一の機能及び構成を有する構成要素については同一符号を付す。また、以下に示す各実施形態は、この実施形態の技術的思想を具体化するための装置や方法を例示するものであって、構成部品の材質、形状、構造、配置等を下記のものに特定するものではない。
各機能ブロックは、ハードウェア、コンピュータソフトウェアのいずれかまたは両者を組み合わせたものとして実現することができる。各機能ブロックが以下の例のように区別されていることは必須ではない。例えば、一部の機能が例示の機能ブロックとは別の機能ブロックによって実行されてもよい。さらに、例示の機能ブロックがさらに細かい機能サブブロックに分割されていてもよい。ここでは、不揮発性半導体メモリとして、メモリセルトランジスタが半導体基板の上方に積層された三次元積層型のNAND型フラッシュメモリを例に挙げて説明する。
1.実施形態
実施形態のメモリシステムについて説明する。以下では、不揮発性半導体メモリとして、NAND型フラッシュメモリを例に挙げて説明する。
実施形態のメモリシステムについて説明する。以下では、不揮発性半導体メモリとして、NAND型フラッシュメモリを例に挙げて説明する。
1.1 構成
1.1.1 メモリシステムの全体構成
まず、図1を用いて、本実施形態のメモリシステムの全体構成について説明する。図1は、本実施形態のメモリシステムの全体構成を示すブロック図である。メモリシステム1は、NAND型フラッシュメモリ100、及びコントローラ200を備えている。NAND型フラッシュメモリ100とコントローラ200は、例えばそれらの組み合わせにより一つの半導体装置を構成してもよく、その例としてはSDTMカードのようなメモリカードや、SSD(solid state drive)等が挙げられる。また、コントローラ200は、例えばSoC(system-on-a-chip)等であってもよい。
1.1.1 メモリシステムの全体構成
まず、図1を用いて、本実施形態のメモリシステムの全体構成について説明する。図1は、本実施形態のメモリシステムの全体構成を示すブロック図である。メモリシステム1は、NAND型フラッシュメモリ100、及びコントローラ200を備えている。NAND型フラッシュメモリ100とコントローラ200は、例えばそれらの組み合わせにより一つの半導体装置を構成してもよく、その例としてはSDTMカードのようなメモリカードや、SSD(solid state drive)等が挙げられる。また、コントローラ200は、例えばSoC(system-on-a-chip)等であってもよい。
NAND型フラッシュメモリ100は、複数のメモリセルを備え、データを不揮発に記憶する。
コントローラ200は、NANDバスを介してNAND型フラッシュメモリ100に接続され、ホストバスを介してホストデバイス300に接続される。コントローラ200は、NAND型フラッシュメモリ100を制御し、またホストデバイス300から受信した命令に応答して、NAND型フラッシュメモリ100にアクセスする。
ホストデバイス300は、例えばデジタルカメラやパーソナルコンピュータ等であり、ホストバスは、例えばSDTMインターフェースに従ったバスである。NANDバスは、NANDインターフェースに従った信号の送受信を行う。NANDバスは、例えばチップイネーブル信号/CE、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、ライトイネーブル信号/WE、リードイネーブル信号/RE、データストローブ信号DQS、I/O信号DQx(DQ0〜DQ7)、及びレディ/ビジー信号R/Bを通信するバスを含む。I/O信号DQxは、コマンド、アドレス、及びデータ等を通信する。
1.1.2 コントローラの構成
次に、図1を用いて、コントローラ200の構成について説明する。コントローラ200は、ホストインターフェース(I/F)回路210、内蔵メモリ(RAM)220、プロセッサ(CPU)230、バッファメモリ240、NANDインターフェース(I/F)回路250、及びECC(Error Checking and Correcting)回路260を備えている。
次に、図1を用いて、コントローラ200の構成について説明する。コントローラ200は、ホストインターフェース(I/F)回路210、内蔵メモリ(RAM)220、プロセッサ(CPU)230、バッファメモリ240、NANDインターフェース(I/F)回路250、及びECC(Error Checking and Correcting)回路260を備えている。
ホストインターフェース回路210は、ホストバスを介してホストデバイス300と接続される。ホストインターフェース回路210は、ホストデバイス300から受信した命令及びデータを、それぞれプロセッサ230及びバッファメモリ240に転送する。また、ホストインターフェース回路210は、プロセッサ230の命令に応答して、バッファメモリ240内のデータをホストデバイス300へ転送する。
プロセッサ230は、コントローラ200全体の動作を制御する。例えば、プロセッサ230は、ホストデバイス300から書き込み命令を受信した際には、それに応答して、NANDインターフェース回路250に対して書き込み命令を発行する。読み出し及び消去の際も同様である。また、プロセッサ230は、ウェアレベリング等、NAND型フラッシュメモリ100を管理するための様々な処理を実行する。なお、以下で説明するコントローラ200の動作は、プロセッサ230がソフトウェア(またはファームウェア)を実行することによって実現されてもよいし、またはハードウェアで実現されてもよい。
NANDインターフェース回路250は、NANDバスを介してNAND型フラッシュメモリ100と接続され、NAND型フラッシュメモリ100との通信を司る。NANDインターフェース回路250は、プロセッサ230から受信した命令に基づき、種々の信号をNAND型フラッシュメモリ100へ送信し、また種々の信号をNAND型フラッシュメモリ100から受信する。
バッファメモリ240は、書き込みデータや読み出しデータを一時的に保持する。バッファメモリ240はDRAMやSRAM等から構成してもよい。
内蔵メモリ220は、例えばDRAMやSRAM等の半導体メモリであり、プロセッサ230の作業領域として使用される。内蔵メモリ220は、NAND型フラッシュメモリ100を管理するためのファームウェアや、各種の管理テーブル等を保持する。
ECC回路260は、NAND型フラッシュメモリ100に記憶されるデータに関する誤り検出及び誤り訂正処理を行う。すなわちECC回路260は、データの書き込み時には誤り訂正符号を生成して、これを書き込みデータに付与し、データの読み出し時にはこれを復号する。
1.1.3 NAND型フラッシュメモリの構成
1.1.3.1 NAND型フラッシュメモリの全体構成
次に、NAND型フラッシュメモリ100の構成について説明する。図1に示すように、NAND型フラッシュメモリ100は、メモリセルアレイ110、ロウデコーダ120、ドライバ130、センスアンプ140、アドレスレジスタ150、コマンドレジスタ160、レジスタ170及びシーケンサ180を備える。
1.1.3.1 NAND型フラッシュメモリの全体構成
次に、NAND型フラッシュメモリ100の構成について説明する。図1に示すように、NAND型フラッシュメモリ100は、メモリセルアレイ110、ロウデコーダ120、ドライバ130、センスアンプ140、アドレスレジスタ150、コマンドレジスタ160、レジスタ170及びシーケンサ180を備える。
メモリセルアレイ110は、ロウ及びカラムに対応付けられた複数の不揮発性メモリセルを含む複数のブロックBLK(BLK0,BLK1,BLK2,BLK3,…)を備えている。メモリセルアレイ110は、コントローラ200から与えられたデータを記憶する。
ロウデコーダ120は、ブロックBLKのいずれかを選択し、更に選択したブロックBLKにおけるワード線を選択する。
ドライバ130は、選択されたブロックBLKに対して、ロウデコーダ120を介して電圧を供給する。
センスアンプ140は、データの読み出し時には、メモリセルアレイ110から読み出されたデータDATをセンスし、必要な演算を行う。そして、このデータDATをコントローラ200に出力する。データの書き込み時には、コントローラ200から受信した書き込みデータDATを、メモリセルアレイ110に転送する。
アドレスレジスタ150は、コントローラ200から受信したアドレスADDを保持する。コマンドレジスタ160は、コントローラ200から受信したコマンドCMDを保持する。
レジスタ170は複数のレジスタを含む。レジスタ170が含む複数のレジスタは、例えば書き込みパラメータ及び検証結果を記憶する。書き込みパラメータ及び検証結果については後述する。
シーケンサ180は、アドレスレジスタ150、コマンドレジスタ160及びレジスタ170に保持された種々の情報に基づいて、NAND型フラッシュメモリ100全体の動作を制御する。
1.1.3.2 ブロックBLKの構成
次に、図2を用いて、上記ブロックBLKの構成について説明する。図2は、メモリセルアレイ110が含むブロックBLKの回路図である。図示するように、ブロックBLKは、例えば4つのストリングユニットSU(SU0〜SU3)を含む。また各々のストリングユニットSUは、複数のNANDストリング10を含む。
次に、図2を用いて、上記ブロックBLKの構成について説明する。図2は、メモリセルアレイ110が含むブロックBLKの回路図である。図示するように、ブロックBLKは、例えば4つのストリングユニットSU(SU0〜SU3)を含む。また各々のストリングユニットSUは、複数のNANDストリング10を含む。
NANDストリング10の各々は、例えば8個のメモリセルトランジスタ(MT0〜MT7)及び選択トランジスタST1,ST2を含む。メモリセルトランジスタ(以下、メモリセルとも記す)MTは、制御ゲートと電荷蓄積層とを備え、データを不揮発に保持する。メモリセルトランジスタMTは、選択トランジスタST1のソースと選択トランジスタST2のドレインとの間に直列接続されている。
ストリングユニットSU0〜SU3の各々における選択トランジスタST1のゲートは、それぞれセレクトゲート線SGD0〜SGD3に接続される。これに対してストリングユニットSU0〜SU3の各々における選択トランジスタST2のゲートは、例えばセレクトゲート線SGSに共通接続される。選択トランジスタST2のゲートは、ストリングユニット毎に異なるセレクトゲート線SGS0〜SGS3に接続されてもよい。また、各々のブロックBLK内にあるメモリセルトランジスタMT0〜MT7の制御ゲートは、それぞれワード線WL0〜WL7に共通接続される。
また、メモリセルアレイ110は、複数のブロックBLK間でビット線BL(BL0〜BL(L−1)、但しLは2以上の自然数)を共通にする。各々のブロックBLK内の複数のストリングユニットSUにおいて、各ビット線BLは、同一列にあるNANDストリング10の選択トランジスタST1のドレインに共通に接続される。すなわち、各ビット線BLは、同一列の複数のストリングユニットSU間でNANDストリング10を共通に接続する。更に、複数の選択トランジスタST2のソースは、ソース線SLに共通に接続されている。つまり、ストリングユニットSUは、異なるビット線BLに接続され、且つ同一のセレクトゲート線SGDに接続されたNANDストリング10を複数含む。
また、ブロックBLKは、ワード線WLを共通にする複数のストリングユニットSUを含む。
図3は、ブロックBLKの一部領域の断面図である。図示するように、p型ウェル領域20上に、複数のNANDストリング10が形成されている。すなわち、ウェル領域20上には、セレクトゲート線SGSとして機能する例えば4層の配線層27、ワード線WL0〜WL7として機能する8層の配線層23、及びセレクトゲート線SGDとして機能する例えば4層の配線層25が、順次積層されている。積層された配線層間には、図示しない絶縁膜が形成されている。
これらの配線層25、23、27を貫通してウェル領域20に達するピラー状の導電体31が形成されている。導電体31の側面には、ゲート絶縁膜30、電荷蓄積層(絶縁膜)29、及びブロック絶縁膜28が順次形成されている。これらによって、メモリセルトランジスタMT、並びに選択トランジスタST1及びST2が形成される。導電体31は、NANDストリング10の電流経路として機能し、各トランジスタのチャネルが形成される領域となる。導電体31の上端は、ビット線BLとして機能する金属配線層32に接続される。
ウェル領域20の表面領域内には、n+型不純物拡散層33が形成されている。拡散層33上にはコンタクトプラグ35が形成され、コンタクトプラグ35は、ソース線SLとして機能する金属配線層36に接続される。さらに、ウェル領域20の表面領域内には、p+型不純物拡散層34が形成されている。拡散層34上にはコンタクトプラグ37が形成され、コンタクトプラグ37は、ウェル配線CPWELLとして機能する金属配線層38に接続される。ウェル配線CPWELLは、ウェル領域20を介して導電体31に電位を印加するための配線である。
以上の構成が、図3を記載した紙面に直交する方向(奥行き方向)に複数配列されており、奥行き方向に並ぶ複数のNANDストリング10の集合によってストリングユニットSUが形成される。
さらに、メモリセルアレイ110の構成についてはその他の構成であってもよい。すなわち、メモリセルアレイ110の構成は、例えば、“THREE DIMENSIONAL STACKED NONVOLATILE SEMICONDUCTOR MEMORY”という2009年3月19日に出願された米国特許出願12/407,403号に記載されている。また、“THREE DIMENSIONAL STACKED NONVOLATILE SEMICONDUCTOR MEMORY”という2009年3月18日に出願された米国特許出願12/406,524号、“NON-VOLATILE SEMICONDUCTOR STORAGE DEVICE AND METHOD OF MANUFACTURING THE SAME”という2010年3月25日に出願された米国特許出願12/679,991号、及び“SEMICONDUCTOR MEMORY AND METHOD FOR MANUFACTURING SAME”という2009年3月23日に出願された米国特許出願12/532,030号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
また、データの消去は、ブロックBLK単位、またはブロックBLKよりも小さい単位で行うことができる。消去方法に関しては、例えば“NONVOLATILE SEMICONDUCTOR MEMORY DEVICE”という2011年9月18日に出願された米国特許出願13/235,389号に記載されている。また、“NON-VOLATILE SEMICONDUCTOR STORAGE DEVICE”という2010年1月27日に出願された米国特許出願12/694,690号に記載されている。さらに、“NONVOLATILE SEMICONDUCTOR MEMORY DEVICE AND DATA ERASE METHOD THEREOF”という2012年5月30日に出願された米国特許出願13/483,610号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
1.1.3.3 メモリセルトランジスタの閾値電圧分布
図4は、本実施形態におけるメモリセルトランジスタMTの取り得るデータとその閾値電圧分布を示す。ここでは、メモリセルが3ビットのデータを記憶するTLC(Triple-Level Cell)方式を有する場合について説明する。
図4は、本実施形態におけるメモリセルトランジスタMTの取り得るデータとその閾値電圧分布を示す。ここでは、メモリセルが3ビットのデータを記憶するTLC(Triple-Level Cell)方式を有する場合について説明する。
図示するように、各々のメモリセルトランジスタMTは、その閾値電圧に応じて例えば3ビットのデータを保持可能である。この3ビットデータは、閾値電圧の低いものから順番に、例えば“111”、“110”、“100”、“000”、“010”、“011”、“001”、“101”である。これらデータを保持するメモリセルの閾値電圧のステートは、低いものから順番に、例えば“Er”ステート(例えば、電圧VA未満)、“A”ステート(例えば、電圧VA以上、VB未満であり、VA<VB)、“B”ステート(例えば、電圧VB以上、VC未満であり、VB<VC)、“C”ステート(例えば、電圧VC以上、VD未満であり、VC<VD)、“D”ステート(例えば、電圧VD以上、VE未満であり、VD<VE)、“E”ステート(例えば、電圧VE以上、VF未満であり、VE<VF)、“F”ステート(例えば、電圧VF以上、VG未満であり、VF<VG)、“G”ステート(例えば電圧VG以上)である。なお、3ビットデータと閾値電圧との関係はこの関係に限定されるものではなく、両者の関係については適宜選択できる。
各々のメモリセルトランジスタMTが保持する3ビットデータを、lower(下位)ビット側からそれぞれlowerビット、middle(中位)ビット、及びupper(上位)ビットと呼ぶ。そして、同一のストリングユニットSUにおいて、同一のワード線に接続された複数のメモリセルを含むセルユニットCUの保持するlowerビットの集合をlowerページと呼び、middleビットの集合をmiddleページと呼び、upperビットの集合をupperページと呼ぶ。つまり、セルユニットCUには3ページが割り当てられる。よって、「ページ」とは、セルユニットCUによって形成されるメモリ空間の一部、と定義することもできる。
データの書き込み及び読み出しは、ページ単位もしくはセルユニット単位で行われる。本例の場合、1つのストリングユニットSUは8本のワード線を含むので、各ストリングユニットSUは(3×8)=24ページを含み、1つのブロックBLKは4つのストリングユニットSUを含むので、各ブロックは(24×4)=96ページを含む。
1.2 動作
1.2.1 NAND型フラッシュメモリの書き込み
書き込み動作は、プログラム動作(プログラムとも称する)と、プログラムベリファイ動作とを含む。
1.2.1 NAND型フラッシュメモリの書き込み
書き込み動作は、プログラム動作(プログラムとも称する)と、プログラムベリファイ動作とを含む。
プログラム動作は、メモリセルトランジスタMTのゲート電極に書き込み電圧(プログラム電圧とも称する)を印加することにより、メモリセルトランジスタMTの電荷蓄積層に電荷を注入し、メモリセルトランジスタの閾値電圧を上昇させる動作である。
プログラムベリファイ動作は、書き込み電圧の印加によって生じたメモリセルトランジスタの閾値電圧の変化を確認する動作である。プログラムベリファイ動作は、メモリセルトランジスタの閾値電圧が所定の閾値電圧に達したか否かを判定する。
プログラムベリファイによる判定において、メモリセルトランジスタの閾値電圧が所定の閾値電圧に達していない、すなわちプログラムベリファイにフェイルした場合、書き込み電圧が一定電圧ΔV増加されてプログラム動作が再び実行され、さらにプログラムベリファイ動作が実行される。そして、プログラム動作とプログラムベリファイ動作を1つの書き込みループとし、プログラムベリファイにパスするまで、書き込みループが繰り返される。なお、増加される電圧ΔVは一定電圧に限らず、任意に変化する電圧でもよい。このように、書き込み電圧を増加しながら書き込み動作を行うことを、ステップアップ書き込みと称する。
ここで、メモリセルに書き込みを行った場合の書き込み特性について説明する。メモリセルに書き込みを行ったとき、メモリセルごとに書き込まれ易さは異なる。例えば、書き込みパラメータなどの条件を同一にして、複数のメモリセルにステップアップ書き込みを行った場合でも、書き込み完了までの書き込みループ数はメモリセルごとに異なる。書き込みパラメータは、例えば、書き込み電圧、増加電圧ΔV、及び書き込み電圧の印加時間等を含む。
また、メモリセルは消去を繰り返すごとに疲弊していき、疲弊するとメモリセルは書き込まれ易くなる。メモリセルの書き込み特性は、ページなどの書き込み単位内のメモリセル、すなわち同一のワードラインにあるメモリセル、また、消去回数の等しいメモリセルなどで似通っていることが知られている。
書き込みに当たって、最も書き込まれ易いメモリセルを基準として書き込みパラメータを決定すると、もっとも書き込まれ難いメモリセルに対しては書き込みループ数が増える傾向にある。その逆に、もっとも書き込まれ難いメモリセルを基準として書き込みパラメータを決定すると、書き込まれ易いメモリセルに対しては、過剰な書き込み、例えばオーバープログラムが発生し、意図したデータを書き込むことができない傾向にある。オーバープログラムとは、意図したデータの閾値電圧より高く、かつ他のデータに対応する閾値電圧、あるいはそれ以上の閾値電圧にメモリセルが書き込まれた状態をいう。
上述した傾向を鑑みて用いられる書き込み方式に、スマートベリファイがある。スマートベリファイは、全てのメモリセルに対して、同一の書き込みパラメータを設定するのではなく、メモリセルの書き込み特性に合わせて書き込みパラメータを動的に調整し設定することで、書き込みループ数を削減する技術である。さらに、スマートベリファイには、書き込み特性の似通ったメモリセルをグループとし、書き込みパラメータをグループ毎に管理して設定する応用例も有る。例えば、1つあるいは複数のワード線に接続された複数のメモリセルがグループとして定義される。
前述した応用例のスマートベリファイでは、グループに対して、オーバープログラムが発生せず、かつ、書き込みループ数の削減が期待できる書き込みパラメータを探索する検知書き込みと、検知書き込みにより探索された書き込みパラメータを用いて、書き込みループ数を削減しつつ、意図したデータを書き込む適用書き込みとを行う。適用書き込みを複数回実行する間に、適宜、検知書き込みを実行することにより、適用書き込みで用いる書き込みパラメータを適切に調整することができるが、検知書き込みに要する時間は適用書き込みより長い。一方、適用書き込みに要する時間は、検知書き込みに要する時間よりも短い。よって、スマートベリファイでは、グループ単位で検知書き込みと適用書き込みとを適時使い分けることにより、書き込み動作にかかる平均書き込み時間を削減できる。
書き込みパラメータは、書き込み電圧以外にも増加電圧ΔV及び書き込み電圧の印加時間等も含むが、以下の説明では書き込みパラメータは、プログラム動作時に使用する書き込み電圧とする。
1.2.2 スマートベリファイの検知書き込みと適用書き込み
次に、スマートベリファイにおける検知書き込みと適用書き込みについて詳述する。複数ビットのデータを保持可能なメモリセルトランジスタに対する書き込み方式は、1つのプログラムコマンドによりメモリセルトランジスタに複数ビットのデータを一括して書き込む方式(例えば、フルシーケンスプログラム)と、複数のプログラムコマンドによりメモリセルトランジスタに複数ビットのデータを多段階に分けて書き込む方式(例えば、2ステージプログラムあるいはfoggy & fine)とがある。2ステージプログラムは、第1ステージの書き込み動作でlowerなどの下位ページを書き、第2ステージの書き込み動作でupperとmiddleなどの上位ページを同時に書く方式である。foggy & fineは、第1ステージの書き込み動作でlower/upper/middleなどの全てのページを荒く書き、第2ステージの書き込み動作で、第1ステージの書き込み動作で書いたページを細かく書く方式である。いずれの方式においても、検知書き込みと適用書き込みを用いることができる。
次に、スマートベリファイにおける検知書き込みと適用書き込みについて詳述する。複数ビットのデータを保持可能なメモリセルトランジスタに対する書き込み方式は、1つのプログラムコマンドによりメモリセルトランジスタに複数ビットのデータを一括して書き込む方式(例えば、フルシーケンスプログラム)と、複数のプログラムコマンドによりメモリセルトランジスタに複数ビットのデータを多段階に分けて書き込む方式(例えば、2ステージプログラムあるいはfoggy & fine)とがある。2ステージプログラムは、第1ステージの書き込み動作でlowerなどの下位ページを書き、第2ステージの書き込み動作でupperとmiddleなどの上位ページを同時に書く方式である。foggy & fineは、第1ステージの書き込み動作でlower/upper/middleなどの全てのページを荒く書き、第2ステージの書き込み動作で、第1ステージの書き込み動作で書いたページを細かく書く方式である。いずれの方式においても、検知書き込みと適用書き込みを用いることができる。
以下に、“Er”ステートのメモリセルを“A”ステートに書き込む場合を例に挙げ、検知書き込み及び適用書き込みを説明する。
図5は、検知書き込み及び適用書き込みにおける書き込み電圧とメモリセルトランジスタの閾値電圧分布を示す。図5に示す上側のパルス波形は書き込み電圧の変化を示し、下側の波形は書き込み電圧が印加された時のメモリセルトランジスタの閾値電圧分布を示す。
書き込み電圧VPGMがワード線に印加されてプログラム動作が行われ、続いてメモリセルトランジスタの閾値電圧を判定するプログラムベリファイ動作が行われる。プログラムベリファイがフェイルの場合、書き込み電圧VPGMが一定電圧ΔVだけ増加される。メモリセルトランジスタの閾値電圧分布の下裾(最も低い閾値電圧)が書き込みデータに応じたプログラムベリファイ電圧を超えると、プログラムベリファイがパスとなり、書き込み動作が終了する。なお、具体的には、プログラムベリファイによる判定には、書き込み対象のメモリセルであって、閾値電圧がプログラムベリファイ電圧未満であると判定されたメモリセルの数が閾値以下であるか否かという条件が用いられる。閾値電圧がプログラムベリファイ電圧未満であると判定されたメモリセルの数が閾値以下である(0でなくてもよい)とき、プログラムベリファイがパスと判定される。
図5を用いて、スマートベリファイの書き込み動作を説明する。ここでは、例えば“A”ステートを書き込む場合を示す。スマートベリファイの検知書き込みでは、少なくともメモリセルの書き込み特性に応じた初回の書込み電圧が検知されるまでの間、プログラム動作、スマートベリファイ動作、及びプログラムベリファイ動作が1つの書き込みループとして実行される。すなわち、検知書き込みでは、プログラムベリファイ電圧AVを用いたプログラムベリファイ動作以外に、スマートベリファイ電圧SVを用いたスマートベリファイ動作が行われる。このスマートベリファイ電圧SVを用いたスマートベリファイ動作では、適用書き込みで用いられる初回の書き込み電圧が検知される。
以下の説明では、スマートベリファイ電圧SVがプログラムベリファイ電圧AVより低い場合を説明する。
以下の説明では、スマートベリファイ電圧SVがプログラムベリファイ電圧AVより低い場合を説明する。
スマートベリファイ動作では、メモリセルトランジスタの閾値電圧分布の上裾(最も高い閾値電圧)がスマートベリファイ電圧SVを超えたときの書き込み電圧が、適用書き込みで用いられる初回の書き込み電圧として記憶される。初回の書き込み電圧が記憶される条件は、書き込み対象のメモリセルであって、閾値電圧がスマートベリファイ電圧SVを超えたと判定されるメモリセルの数が閾値以上になることである。初回の書き込み電圧が記憶された後、“A”ステートに対する初回の書き込み電圧を検知する検知書き込みでは、スマートベリファイ動作は行われず、従来の書き込み動作と同様に、プログラム動作とプログラムベリファイ動作とを含む書き込みループが、メモリセルトランジスタの閾値電圧分布の下裾(最も低い閾値電圧)がプログラムベリファイ電圧AVを超えるまで繰り返される。
前述したように、検知書き込みは、閾値の数のメモリセルの閾値電圧がスマートベリファイ電圧SVを超えた時の書き込み電圧を検知する。適用書き込みは、検知された書き込み電圧を、適用書き込みにおける初回の書き込み電圧として用いて、プログラム動作とプログラムベリファイ動作とを繰り返す。検知書き込みで検知された書き込み電圧を適用書き込みの際の初回の書き込み電圧とすることで、適用書き込みにおける書き込みループ数を削減でき、書き込み時間を短縮することができる。
検知書き込みでは、予め設定された既定の書き込み電圧VPGM、または指定された書き込み電圧VPGMを使用し、徐々に書き込み電圧を昇圧することによって書き込みパラメータを検知する。そのため、適用書き込みよりも、プログラムベリファイがパスするまでの書き込みループ数が多く、また書き込みループ内でスマートベリファイ電圧SVによるスマートベリファイ動作も行っているため、スマートベリファイ動作を行わない書き込み動作に比べて時間がかかる。
しかし、検知書き込みを行わず、適用書き込みだけを行っていると、メモリセルの疲弊によって書き込み特性に変化が生じ、オーバープログラムが発生する危険性が高まる。このため、スマートベリファイでは、適用書き込みにおいて適正な書き込みパラメータ使用するために、ある一定の頻度で検知書き込みを行う必要がある。すなわち、適用書き込みでは、書き込みに要する時間を短くできるが、書き込み特性の変化と共に書き込み電圧の信頼性が低下する。このため、書き込み時間を短縮するために、適用書き込みだけを続けることはできない。検知書き込みでは、書き込み時間が長くなるが、書き込み特性の変化に追従することができるので、書き込み電圧の信頼性が高くなる。しかし、書き込み電圧の信頼性を重視して、検知書き込みを頻繁に行うと、書き込み時間を短縮することができない。したがって、適度に検知書き込みを実行しつつ、適用書き込みを実行する必要がある。
そこで、本実施形態では、検知書き込み及び適用書き込みと共に、フィードバック付き書き込みを行う。フィードバック付き書き込みは、検知書き込みと適用書き込みの利点を合わせ持つものであり、検知書き込みによる書き込みパラメータの適正の向上と、適用書き込みによる書き込み時間の短縮とを共に可能にする。フィードバック付き書き込みは、書き込みパラメータが適正であるか否かを検知書き込みに比べて短時間で検証し、その検証結果に基づいて書き込みパラメータを調整する書き込み方式である。
1.2.3 実施形態の書き込み動作
ここで説明する書き込み動作では、検知書き込み、フィードバック付き書き込み、及び適用書き込みが実行される例を述べるが、書き込み動作においてフィードバック付き書き込みだけを実行することも可能である。
ここで説明する書き込み動作では、検知書き込み、フィードバック付き書き込み、及び適用書き込みが実行される例を述べるが、書き込み動作においてフィードバック付き書き込みだけを実行することも可能である。
1.2.3.1 コントローラとNAND型フラッシュメモリ間のインターフェース
次に、本実施形態の書き込み動作におけるコントローラ200とNAND型フラッシュメモリ100間のインターフェースについて説明する。図6は、コントローラ200とNAND型フラッシュメモリ100間で行われる書き込み動作のシーケンスを示す図である。
次に、本実施形態の書き込み動作におけるコントローラ200とNAND型フラッシュメモリ100間のインターフェースについて説明する。図6は、コントローラ200とNAND型フラッシュメモリ100間で行われる書き込み動作のシーケンスを示す図である。
NAND型フラッシュメモリ100はレジスタ170を有する。レジスタ170は、書き込みパラメータが設定される第1レジスタ170A、及びフィードバック付き書き込みによる検証結果及び検知書き込みによる検知結果を格納する第2レジスタ170Bを有する。書き込みパラメータは、検知書き込みによって取得される、あるいはフィードバック付き書き込みによって変更される。
また、例えばメモリセルアレイ110内のメモリセル110Aには、プリセット値が記憶されている。プリセット値は、NAND型フラッシュメモリ100のROM領域に出荷前に記憶された情報であり、例えば検知書き込みで用いる既定の書き込み電圧等を含む。
コントローラ200は、グループ代表値に関する情報を管理するグループ代表値管理テーブル群220Aを有する。グループ代表値は、複数のメモリセルを含むグループ毎、例えばページ毎あるいはブロック毎に管理された書き込みパラメータ等を含む。コントローラは、グループ毎にグループ代表値を管理する。例えば、グループは、互いに似た書き込み特性を持つことが期待される複数のメモリセルを含むように設定する。なお、コントローラ200の代わりにNAND型フラッシュメモリ100がグループ毎に書き込みパラメータを管理してもよい。管理テーブル群220Aは、例えば内蔵メモリ220に記憶される。
以下に、コントローラ200とNAND型フラッシュメモリ100間のシーケンスを述べる。
NAND型フラッシュメモリ100では、書き込み動作として、検知書き込み、フィードバック付き書き込み、及び適用書き込みが実行される。
検知書き込みにおけるシーケンスは以下のようになる。コントローラ200は、NAND型フラッシュメモリ100に検知書き込みを指示する。NAND型フラッシュメモリ100は、プリセット値として記憶された既定の書き込み電圧を用いて検知書き込みを実行し、書き込みパラメータを検知する。
NAND型フラッシュメモリ100は、検知した書き込みパラメータを第2レジスタ170Bに格納する。さらに、NAND型フラッシュメモリ100は、第2レジスタ170Bに格納された書き込みパラメータを、コントローラ200からの取得コマンドに応じて、コントローラ200に送信する。これにより、コントローラ200は、検知書き込みで検知された書き込みパラメータを取得し、内蔵メモリ220内の管理テーブル群220Aに、書き込みパラメータをグループ代表値として記憶する。取得コマンドとしては、例えば、ステータスリードコマンドあるいはゲットフィーチャーコマンドが用いられる。ステータスリードコマンドあるいはゲットフィーチャーコマンドについては後で詳述する
フィードバック付き書き込みにおけるシーケンスは以下のようになる。コントローラ200は、内蔵メモリ220内の管理テーブル群220Aに記憶されたグループ代表値を書き込みパラメータとしてNAND型フラッシュメモリ100に送信する。NAND型フラッシュメモリ100は、受信した書き込みパラメータを第1レジスタ170Aに記憶する。
フィードバック付き書き込みにおけるシーケンスは以下のようになる。コントローラ200は、内蔵メモリ220内の管理テーブル群220Aに記憶されたグループ代表値を書き込みパラメータとしてNAND型フラッシュメモリ100に送信する。NAND型フラッシュメモリ100は、受信した書き込みパラメータを第1レジスタ170Aに記憶する。
続いて、コントローラ200は、NAND型フラッシュメモリ100にフィードバック付き書き込みを指示する。NAND型フラッシュメモリ100は、第1レジスタ170Aに記憶された書き込みパラメータを用いてフィードバック付き書き込みを実行し、フィードバック付き書き込みで得られた検証結果を第2レジスタ170Bに格納する。さらに、NAND型フラッシュメモリ100は、コントローラ200からの取得コマンドに応じて、第2レジスタ170Bに格納された検証結果をコントローラ200に送信する。コントローラ200は、フィードバック付き書き込みで得られた検証結果を取得し、検証結果に基づいてグループ代表値を更新して管理テーブル群220Aに記憶する。検証結果は、フィードバック付き書き込みによって検証された書き込みパラメータの妥当性を表す情報を含む。さらに、コントローラ200は、検証結果からオーバープログラムが発生していると判定した場合、NAND型フラッシュメモリ100に対して回復処理を行う。例えば、コントローラ200は、NAND型フラッシュメモリ100に、回復処理を実行させるためのコマンドを送信する。
適用書き込みにおけるシーケンスは以下のようになる。コントローラ200は、内蔵メモリ220内の管理テーブル群220Aに記憶されたグループ代表値を書き込みパラメータとしてNAND型フラッシュメモリ100に送信する。NAND型フラッシュメモリ100は、書き込みパラメータを第1レジスタ170Aに記憶する。続いて、コントローラ200は、NAND型フラッシュメモリ100に適用書き込みを指示する。NAND型フラッシュメモリ100は、第1レジスタ170Aに記憶された書き込みパラメータを用いて適用書き込みを実行する。
1.2.3.2 コントローラの管理テーブル群
次に、コントローラ200が有する管理テーブル群220Aについて説明する。図7A〜図7Dは、コントローラが有する管理テーブル群の一例を示す図である。管理テーブル群220Aは、内蔵メモリ220に記憶され、例えば、図7Aに示すグループ定義テーブル220A_1、図7Bに示すグループの書き込みパラメータテーブル220A_2、図7Cに示すフィードバック付き書き込みのサイクル定義テーブル220A_3、及び図7Dに示すフィードバック付き書き込みのスケジュールテーブル220A_4等を含む。
次に、コントローラ200が有する管理テーブル群220Aについて説明する。図7A〜図7Dは、コントローラが有する管理テーブル群の一例を示す図である。管理テーブル群220Aは、内蔵メモリ220に記憶され、例えば、図7Aに示すグループ定義テーブル220A_1、図7Bに示すグループの書き込みパラメータテーブル220A_2、図7Cに示すフィードバック付き書き込みのサイクル定義テーブル220A_3、及び図7Dに示すフィードバック付き書き込みのスケジュールテーブル220A_4等を含む。
図7Aに示すグループ定義テーブル220A_1は、1つのグループ代表値を共有するメモリセル群(グループ)に含まれるワード線の集合を定義する。例えば、グループは、1つのワード線を含んでもよいし、複数のワード線を含んでもよい。グループは、1つのブロックを含んでもよいし、複数のブロックを含んでもよい。図7Aでは、グループGR0はワード線WL0〜WL7を含み、グループGR1はワード線WL8〜WL23を含む。
図7Bに示すグループの書き込みパラメータテーブル220A_2は、例えば、各ブロック内のグループ毎に、使用する書き込みパラメータを記憶する。例えば、ブロックBLK1内のグループGR0には書き込みパラメータA10が対応する。その結果、ブロックBLK1内のグループGR0に含まれるメモリセルに対するフィードバック付き書き込み及び適用書き込みには、書き込みパラメータA10が用いられる。例えば、ブロックBLK1内のグループGR0に含まれるメモリセルを書き込み対象とするフィードバック付き書き込みでは、書き込みパラメータA10が第1レジスタ170Aに設定され、書き込みパラメータA10を用いたフィードバック付き書き込みが実行される。図7Bに示すように、ブロックBLK1内のグループGR1,GR2,GR3には、書き込みパラメータA11,A12,A13がそれぞれ対応する。
図7Cに示すフィードバック付き書き込みのサイクル定義テーブル220A_3は、フィードバック付き書き込みを行うべき書き込み/消去(P/E)のサイクル数を定義する。例えば、書き込み対象グループの書き込み/消去(P/E)サイクルが100,300,500,700回のいずれかに達したとき、すなわちP/Eサイクルが100回に達したとき、及びその後200回増加する毎に、フィードバック付き書き込みを実行することが定義される。図7Cのサイクル定義テーブル220A_3は、グループ毎に用意してもよいし、フィードバック付き書き込みが実行されるべきサイクル数の間隔は一定回数であってもよいし、一定回数でなくてもよい。
図7Dに示すフィードバック付き書き込みのスケジュールテーブル220A_4は、フィードバック付き書き込みを行うべき書き込み/消去(P/E)サイクル数を記憶する。書き込み対象グループのP/Eサイクル数がスケジュールテーブル220A_4に記憶されたサイクル数に達したとき、フィードバック付き書き込みが実行される。例えば、ブロックBLK0のグループGR0のP/Eサイクル数が100回に達したとき、フィードバック付き書き込みが実行される。
さらに、フィードバック付き書き込みが実行されたら、コントローラ200は、スケジュールテーブル220A_4内のP/Eサイクル数を、サイクル定義テーブル220A_3のタイミング1〜4に定義されたP/Eサイクル数に更新する。例えば、ブロックBLK2のグループGR0は、P/Eサイクル数が100回目でフィードバック付き書き込みが実行され、実行後、図7Dに示すように、スケジュールテーブル220A_4内のP/Eサイクル数が100回から300回に更新される。
1.2.3.3 書き込み動作の流れ
次に、図8を用いて、本実施形態における書き込み動作について説明する。図8は、本実施形態の書き込み動作を示すフローチャートである。図8に示す書き込み動作はコントローラ200が実行する。
次に、図8を用いて、本実施形態における書き込み動作について説明する。図8は、本実施形態の書き込み動作を示すフローチャートである。図8に示す書き込み動作はコントローラ200が実行する。
まず、コントローラ200は、書き込み対象の複数のメモリセルを含むグループに対するグループ代表値(例えば、書き込み電圧を含む書き込みパラメータ)を、取得済みか否かを判定する。すなわち、コントローラ200は、書き込み対象グループのグループ代表値が書き込みパラメータテーブル220A_2に記憶されているか否かを判定する(ステップS1)。グループ代表値が記憶されていない場合(No)、コントローラ200から第1レジスタ170Aのリセットを指示することで、あるいはコントローラ200から第1レジスタ170Aに設定すべき書き込みパラメータを指示しないことによって、NAND型フラッシュメモリ100では、NAND型フラッシュメモリ100に記憶されているプリセット値が第1レジスタ170Aに記憶される。これにより、プリセット値としての書き込みパラメータを、検知書き込みに用いる書き込み電圧VPGMとして設定する(ステップS2)。
次に、コントローラ200は、NAND型フラッシュメモリ100に検知書き込みを指示する(ステップS3)。これにより、NAND型フラッシュメモリ100は、既定の書き込み電圧VPGMを用いて検知書き込みを実行し、検知結果を得る。コントローラ200は、検知書き込みにて検知された検知結果を取得する(ステップS4)。さらに、コントローラ200は、検知結果に基づいて求められた初回の電圧VPGMを、グループ代表値として書き込みパラメータテーブル220A_2に記憶する(ステップS5)。その後、書き込み動作を終了する。
ステップS1において、書き込みパラメータテーブル220A_2に、書き込み対象グループのグループ代表値が既に記憶されている場合(Yes)、コントローラ200は、NAND型フラッシュメモリ100の第1レジスタ170Aにグループ代表値を記憶させることで、グループ代表値を初回の電圧VPGMとして設定する(ステップS6)。
次に、コントローラ200は、スケジュールテーブル220A_4を参照し、スケジュールテーブル220A_4に従ってフィードバック付き書き込みを実行するか否かを判定する(ステップS7)。具体的には、P/Eサイクルが100、150、200あるいは250に達したとき、フィードバック付き書き込みの実行が必要であると判定する。
ステップS7において、フィードバック付き書き込みを実行すると判定した場合(Yes)、コントローラ200は、NAND型フラッシュメモリ100にフィードバック付き書き込みを指示する(ステップS8)。これにより、NAND型フラッシュメモリ100は、ステップS6で書き込みパラメータとして指示されたグループ代表値を用いてフィードバック付き書き込みを実行し、グループ代表値についての検証結果を得る。コントローラ200は、フィードバック付き書き込みにて検証された検証結果を取得する(ステップS9)。フィードバック付き書き込みの詳細については後述する。
次に、コントローラ200は、検証結果を判定し、検証結果に基づいてグループ代表値を更新する(ステップS10)。ステップS10の処理の詳細については図14を用いて後述する。その後、書き込み動作を終了する。
また、ステップS7において、フィードバック付き書き込みを実行しないと判定した場合(No)、コントローラ200は、NAND型フラッシュメモリ100に適用書き込みを指示する(ステップS11)。これにより、NAND型フラッシュメモリ100は、ステップS6で書き込みパラメータとして指示されたグループ代表値を用いて適用書き込みを実行する。その後、書き込み動作を終了する。
なお、ステップS10における検証結果の判定において、コントローラ200によりオーバープログラムが発生していると判定された場合、以下の回復処理が実行される。図9は、オーバープログラムが発生した場合の回復処理の動作を示すフローチャートである。
まず、回復処理が起動されると、コントローラ200は、オーバープログラムが発生したメモリセルに書き込まれるべきデータ、すなわち書き込みに失敗したメモリセルのデータを特定する(ステップS41)。
続いて、コントローラ200は、書き込みに失敗したメモリセルのデータを取得する(ステップS42)。例えば、書き込みが正常に終了するまで書き込みデータをバッファに保持する構成である場合は、書き込みに失敗したメモリセルのデータをバッファから取得する。また、SLC(single level cell)バッファに書き込みに失敗したメモリセルのデータがある場合は、SLCバッファから取得する。コンパクション実行時であり、コンパクションの対象ブロックに書き込みに失敗したメモリセルのデータがある場合は、そのブロックから取得する。ECCでページ間積符号を構成している場合は、書き込みに失敗したメモリセルのデータを、積符号を用いて回復する。
次に、コントローラ200は、NAND型フラッシュメモリ100に、取得したデータの書き込みを指示する(ステップS43)。取得したデータの書き込み先のメモリセルは、書き込みに失敗したメモリセルとは別のメモリセルに対して行ってもよいし、あるいは、消去動作を行った後に、書き込みに失敗したメモリセルに対して行ってもよい。以上により、回復処理が終了する。
このように、オーバープログラムが発生していると判定された場合、オーバープログラムが発生したメモリセルに書き込まれるべきデータに対して回復処理を行うことにより、データの損失を防ぐことができる。
1.2.3.4 フィードバック付き書き込み
次に、書き込み動作で実行されるフィードバック付き書き込みについて説明する。フィードバック付き書き込みは、前述したように、NAND型フラッシュメモリにおいて書き込みパラメータが適正であるか否かを検知書き込みに比べて短時間で検証し、その検証結果をコントローラに送信する書き込み方式である。さらに、その応用として、コントローラがその検証結果に基づいて書き込みパラメータを調整するものである。
次に、書き込み動作で実行されるフィードバック付き書き込みについて説明する。フィードバック付き書き込みは、前述したように、NAND型フラッシュメモリにおいて書き込みパラメータが適正であるか否かを検知書き込みに比べて短時間で検証し、その検証結果をコントローラに送信する書き込み方式である。さらに、その応用として、コントローラがその検証結果に基づいて書き込みパラメータを調整するものである。
図10及び図11は、フィードバック付き書き込みにおけるコントローラとNAND型フラッシュメモリ間のインターフェースを示す図である。図10は、プログラム動作によってオーバープログラムが発生しない場合を示し、図11は、プログラム動作によってオーバープログラムが発生した場合を示す。
コントローラ200は、書き込みパラメータテーブル220A_2に記憶されたグループ代表値V0を、NAND型フラッシュメモリ100の第1レジスタ170Aに設定する(1)。続いて、コントローラ200は、NAND型フラッシュメモリ100にフィードバック付き書き込みを指示する(2)。
NAND型フラッシュメモリ100は、コントローラ200から指示された書き込み対象、例えばブロックBLK0のグループGR0に含まれるメモリセルに対して、書き込みパラメータとして指示されたグループ代表値V0を用いてフィードバック付き書き込みを実行する(2-1)。そして、NAND型フラッシュメモリ100は、フィードバック付き書き込みにより得られた書き込みパラメータの検証結果を、例えばステータス情報として第2レジスタ170Bに記憶する(2-2)。
次に、コントローラ200は、例えば、取得コマンドによって格納レジスタ170Bから検証結果(例えば、ステータス情報)を取得し(3)、検証結果に基づいて、書き込みパラメータテーブル220A_2内に記憶されたグループ代表値V0をグループ代表値Vxに更新する(4)。
ここで、コントローラ200は、フィードバック付き書き込みによる検証結果がオーバープログラムの発生を示していないと判定した場合、前述したように、グループ代表値V0をVxに更新して終了する。
一方、フィードバック付き書き込みによる検証結果がオーバープログラムの発生を示していると判定した場合、図11に示すように、コントローラ200は、オーバープログラムに対する回復処理を起動し、オーバープログラムが発生したメモリセルに書き込むべきデータを復旧し、そのデータの書き込みをNAND型フラッシュメモリ100に新たに指示する(5)。
前述したように、書き込み方式には、フルシーケンスプログラム、及び多段階で書き込む方式(例えば、2ステージプログラムあるいはfoggy & fine)がある。
メモリセルが二次元に配列された二次元NAND型フラッシュメモリ、及びメモリセルが三次元に配列された三次元NAND型フラッシュメモリでは、隣接するワード線WLにおいてセル間干渉などの影響を受けやすいことが知られている。セル間干渉の影響を緩和するため、二次元NAND型フラッシュメモリ及び三次元NAND型フラッシュメモリでは、多段階で書き込む方式が提案されている。2ステージプログラムとfoggy & fineでは、データを入力するページの数、印加する初回の電圧VPGM以外に大きな違いは無いので、2ステージプログラムを例に挙げ説明する。
また、三次元NAND型フラッシュメモリでの2ステージプログラムは、第1ワード線と、第1ワード線に隣接する第2ワード線がある場合、第1ワード線の第1ステージの書き込み動作が終了すると、第2ワード線の第1ステージの書き込み動作を行う。第2ワード線の第1ステージの書き込み動作が終了すると、第1ワード線の第2ステージの書き込み動作を行う。三次元NAND型フラッシュメモリでは、ストリングユニットの配列方向にも書き込むページが存在する。
なお、二次元NAND型フラッシュメモリでの2ステージプログラムも、三次元NAND型フラッシュメモリの場合と同様に、第1ワード線と、第1ワード線に隣接する第2ワード線がある場合、第1ワード線の第1ステージの書き込み動作が終了すると、第2ワード線の第1ステージの書き込み動作を行う。第2ワード線の第1ステージの書き込み動作が終了すると、第1ワード線の第2ステージの書き込み動作を行う。すなわち、1つのストリングユニットしか存在しない以外、三次元NAND型フラッシュメモリの場合と同様であるため、詳細な説明は省略する。
以下に、三次元NAND型フラッシュメモリにおける2ステージプログラムの書き込み順序の一例を説明する。
図12は、2ステージプログラムにより三次元NAND型フラッシュメモリにデータを書き込む場合の書き込み順序の一例を示す。1つのブロックは、4つのストリングユニットSU0〜SU3に分割されている。図12に示す例は、4本のワード線WL0〜WL3に接続されたストリングユニットSU0〜SU3のメモリセル(セルユニット)に、lowerページ(L)、middleページ(M)、及びupperページ(U)のデータを書き込む場合である。2ステージプログラムでは、第1ステージの書き込み動作でlowerページのデータを書き込み、第2ステージの書き込み動作で残りのページ、ここではmiddle及びupperページのデータを書き込む。
図示するように、例えば、ワード線WL0に接続されたストリングユニットSU0〜SU3のメモリセル(セルユニット)に、lowerページのデータを順に書き込む(0→1→2→3)。続いて、ワード線WL1に接続されたストリングユニットSU0〜SU3のメモリセルに、lowerページのデータを順に書き込む(4→5→6→7)。
次に、ワード線WL0に接続されたストリングユニットSU0〜SU3のメモリセルに、middle及びupperページのデータを順に書き込む(8→9→10→11)。続いて、ワード線WL2に接続されたストリングユニットSU0〜SU3のメモリセルに、lowerページのデータを順に書き込む(12→13→14→15)。次に、ワード線WL1に接続されたストリングユニットSU0〜SU3のメモリセルに、middle及びupperページのデータを順に書き込む(16→17→18→19)。
次に、ワード線WL3に接続されたストリングユニットSU0〜SU3のメモリセルに、lowerページのデータを順に書き込む(20→21→22→23)。続いて、ワード線WL2に接続されたストリングユニットSU0〜SU3のメモリセルに、middle及びupperページのデータを順に書き込む(24→25→26→27)。
次に、図13(a)、図13(b)及び図13(c)に、2ステージプログラムによるメモリセルの閾値電圧分布の推移を示す。図13(a)に消去状態、すなわち“Er”ステートを持つメモリセルの閾値電圧分布を示す。先に“LM”ステートを書き込むべきメモリセルの閾値電圧分布を移動させる書き込みを第1ステージで行う。これにより、図13(b)に示すように、メモリセルの一部は“Er”ステートから例えば“C”ステートと“D”ステートとの間の“LM”ステートにシフトする。続いて、第2ステージの書き込みでは、図13(c)に示すように、メモリセルに書き込むデータに応じて、第1ステージ後の“Er”ステートの分布を、“Er”、“A”、“B”、“C”ステートと分割するように、及び“LM”ステートの分布を、“D”、“E”、“F”、“G”ステートに分割するように書き込みを行う。すなわち、第2ステージの書き込みにより、“Er”ステートが“A”、“B”、“C”ステートとなるように書き込み、その後、“LM”ステートが“D”、“E”、“F”、“G”ステートとなるように書き込む。
以下に、フルシーケンスプログラム、及び2ステージプログラムに、フィードバック付き書き込みを適用した例を説明する。
<第1実施形態のフィードバック付き書き込み(第1例〜第3例)>
次に、第1実施形態のフィードバック付き書き込みを適用した例として、第1例〜第3例を説明する。第1例は、フルシーケンスプログラムにおける1回目の書き込みループのプログラムベリファイ動作に、追加のベリファイ動作を設けたものである。
次に、第1実施形態のフィードバック付き書き込みを適用した例として、第1例〜第3例を説明する。第1例は、フルシーケンスプログラムにおける1回目の書き込みループのプログラムベリファイ動作に、追加のベリファイ動作を設けたものである。
図14は、第1例のフィードバック付き書き込みで行われるプログラム動作とプログラムベリファイ動作におけるワード線電圧を示す。なお、第1例、及び以降の例では、メモリセルを“A”ステートに書き込む場合を表す。
書き込み動作の1回目の書き込みループにおいて、グループ代表値あるいはグループ代表値に補正をかけた値を、初回の電圧VPGMとして用いたプログラム動作を行う。初回の電圧VPGMは、検知書き込み、あるいは前回のフィードバック付き書き込みで得られた検証結果に基づいて、更新あるいは補正された書き込み電圧である。非選択ワード線WLには、電圧VPASSを印加する。なお、この非選択ワード線WLへの電圧VPASSの印加は以降の例においても同様である。
次に、選択ワード線WLに、ベリファイ電圧SV1,SV2を印加して、スマートベリファイ動作をそれぞれ行う。続いて、“A”ステートについてのベリファイ電圧AVを印加して、プログラムベリファイ動作及びスマートベリファイ動作をそれぞれ行う。さらに、ベリファイ電圧SV3,SV4を印加して、スマートベリファイ動作をそれぞれ行う。これらベリファイ電圧の大小関係は、例えば、SV1<SV2<AV<SV3<SV4である。非選択ワード線WLには、電圧VREADを印加する。なお、この非選択ワード線WLへの電圧VREADの印加は以降の例においても同様である。
その後、1回目の書き込みループでプログラムベリファイがパスしない場合、電圧VPGMに電圧ΔVが加算されたプログラム動作と、プログラムベリファイ電圧AVを用いたプログラムベリファイ動作とを含む書き込みループが繰り返される。なお、2回目以降の書き込みループでは、スマートベリファイ動作は行わない。
前述した1回目の書き込みループのプログラムベリファイ動作では、選択ワード線WLにベリファイ電圧SV1,SV2,AV,SV3,SV4が順に印加され、スマートベリファイ動作がそれぞれ行われる。これらのスマートベリファイ動作により、フィードバック付き書き込みによる初回の電圧VPGMが書き込み対象のメモリセルに対して適正であるか否かが検証される。
図15は、プログラム動作によって生じたメモリセルの閾値電圧分布と検証結果に基づいたステータス情報を示す。プログラム動作後、ベリファイ電圧SV1,SV2,AV,SV3,SV4を用いてそれぞれスマートベリファイ動作を行うことで、閾値電圧分布の上裾が電圧SV1,SV2,AV,SV3,SV4をそれぞれ超えたか否かの情報が得られる。閾値電圧分布の上裾がスマートベリファイ電圧を超えるとは、閾値電圧がスマートベリファイ電圧を超えたと判定されるメモリセルの数が第1閾値以上になることである。これら情報に対して検証結果としてのステータス情報を割り当てる。このようにして、電圧VPGMで書き込みを行った後の閾値電圧分布に応じた検証結果に基づいてステータス情報を生成する。
閾値電圧分布の情報をステータス情報に割り当てた場合の例を図15に示す。閾値電圧分布の情報は、5ビットのデータ列で表される。5ビットのデータ列のうち、下位ビット側から順に、閾値電圧分布の上裾がベリファイ電圧SV1,SV2,AV,SV3,SV4をそれぞれ超えたか否かを示す。0が超えていない場合を示し、1が超えている場合を示す。
例えば、メモリセルの閾値電圧分布の上裾がベリファイ電圧SV1を超えていない場合は、“00000”で表される。閾値電圧分布の上裾がベリファイ電圧SV1を超え、電圧SV2を超えていない場合は、“00001”で表される。閾値電圧分布の上裾がベリファイ電圧SV2を超え、電圧AVを超えていない場合は、“00011”で表される。閾値電圧分布の上裾がベリファイ電圧AVを超え、電圧SV3を超えていない場合は、“00111”で表される。閾値電圧分布の上裾がベリファイ電圧SV3を超え、電圧SV4を超えていない場合は、“01111”で表される。さらに、閾値電圧分布の上裾がベリファイ電圧SV4を超えている場合は、“11111”で表される。
また、閾値電圧分布の情報は、3ビットのデータ列で表すことも可能である。ここでは、ステータス情報は6つの状態を記憶できればよい。従って、図15に示すように、3ビットのデータ列を用いれば6つの各状態を記憶できる。
検証結果としての5ビットまたは3ビットのデータ列は第2レジスタ170Bに格納される。コントローラ200は、例えば、取得コマンドによって格納レジスタ170Bに格納されたデータ列を取得し、データ列に基づいてグループ代表値を更新する。
図16は、図8のステップS10で実行されるフィードバック付き書き込みの検証結果に基づいたグループ代表値更新とオーバープログラム発生の判定とを示す図である。コントローラ200は、図16に示すように、検証結果に基づいて、グループ代表値の更新、及びメモリセルにオーバープログラムが発生しているか否かの判定を行う。
図16に示すように、フィードバック付き書き込みのスマートベリファイ動作時点において、メモリセルの閾値電圧分布の上裾がベリファイ電圧SV1を超えていない場合、すなわち、ベリファイ電圧SV1を用いたスマートベリファイ動作でオフ状態となるメモリセルの数が第1閾値未満である場合、コントローラ200は、例えば、書き込みパラメータテーブル220A_2内のグループ代表値を2段階上げて“電圧VPGM+2×ΔV”とし、またオーバープログラムの発生がないと判定する。
メモリセルの閾値電圧分布の上裾がベリファイ電圧SV1を超え、電圧SV2を超えていない場合、すなわち、ベリファイ電圧SV1を用いたスマートベリファイ動作でオフ状態となるメモリセルの数が第1閾値以上であり、電圧SV2を用いたスマートベリファイ動作でオフ状態となるメモリセルの数が第1閾値未満である場合、コントローラ200は、例えば、書き込みパラメータテーブル220A_2内のグループ代表値を1段階上げて“電圧VPGM+ΔV”とし、またオーバープログラムの発生がないと判定する。
メモリセルの閾値電圧分布の上裾がベリファイ電圧SV2を超え、電圧AVを超えていない場合、すなわち、ベリファイ電圧SV2を用いたスマートベリファイ動作でオフ状態となるメモリセルの数が第1閾値以上であり、ベリファイ電圧AVを用いたスマートベリファイ動作でオフ状態となるメモリセルの数が第1閾値未満である場合、コントローラ200は、例えば、書き込みパラメータテーブル220A_2内のグループ代表値をそのまま維持し、またオーバープログラムの発生がないと判定する。
メモリセルの閾値電圧分布の上裾がベリファイ電圧AVを超え、電圧SV3を超えていない場合、すなわち、ベリファイ電圧AVを用いたスマートベリファイ動作でオフ状態となるメモリセルの数が第1閾値以上であり、電圧SV3を用いたスマートベリファイ動作でオフ状態となるメモリセルの数が第1閾値未満である場合、コントローラ200は、例えば、書き込みパラメータテーブル220A_2内のグループ代表値を1段階下げて“電圧VPGM−ΔV”とし、またオーバープログラムの発生がないと判定する。
メモリセルの閾値電圧分布の上裾がベリファイ電圧SV3を超え、電圧SV4を超えていない場合、すなわち、ベリファイ電圧SV3を用いたスマートベリファイ動作でオフ状態となるメモリセルの数が第1閾値以上であり、電圧SV4を用いたスマートベリファイ動作でオフ状態となるメモリセルの数が第1閾値未満である場合、コントローラ200は、例えば、書き込みパラメータテーブル220A_2内のグループ代表値を2段階下げて“電圧VPGM−2×ΔV”とし、またオーバープログラムの発生がないと判定する。
メモリセルの閾値電圧分布の上裾がベリファイ電圧SV4を超えている場合、すなわち、ベリファイ電圧SV4を用いたスマートベリファイ動作でオフ状態となるメモリセルが第1閾値以上である場合、コントローラ200は、例えば、書き込みパラメータテーブル220A_2内のグループ代表値を3段階下げて“電圧VPGM−3×ΔV”とする。さらに、メモリセルにオーバープログラムが発生している疑いがあるため、コントローラ200は、オーバープログラムに対する回復処理を起動し、オーバープログラムが発生したメモリセルに書き込むべきデータを復旧し、そのデータの書き込みをNAND型フラッシュメモリ100に新たに指示する。以上により、処理を終了する。
このようにして検証結果に基づいて更新されたグループ代表値は、次回の書き込み動作の1回目の書き込みループにおいて初回の電圧VPGMとして用いられる。これにより、オーバープログラムの発生を抑制しつつ、メモリセルの特性変化に応じて書き込み電圧を動的に調整することができ、書き込み動作に要する時間を短縮することができる。
次に、2ステージプログラムにおける第1ステージの書き込み動作に、フィードバック付き書き込みを適用した例を、第2例として説明する。第2例は、第1ステージの書き込み動作における1回目の書き込みループのプログラムベリファイ動作に、追加のスマートベリファイ動作を設けたものである。
図17は、第2例のフィードバック付き書き込みで行われるプログラム動作とプログラムベリファイ動作におけるワード線電圧を示す。選択ワード線WLに初回の電圧VPGMを印加してプログラム動作を行う。次に、プログラムベリファイ動作において、選択ワード線WLに、ベリファイ電圧SV1,SV2を印加して、スマートベリファイ動作をそれぞれ行う。続いて、“LM”ステートについてのベリファイ電圧LMVを印加して、プログラムベリファイ動作及びスマートベリファイ動作をそれぞれ行う。さらに、ベリファイ電圧SV3,SV4を印加して、スマートベリファイ動作をそれぞれ行う。これらベリファイ電圧の大小関係は、例えば、SV1<SV2<LMV<SV3<SV4である。
第2例の図14に示した第1例と異なる点は、ベリファイ電圧AVがベリファイ電圧LMVに換わり、ベリファイ電圧SV1,SV2,SV3,SV4がベリファイ電圧LMVに応じた電圧になるだけである。その他の構成及び効果は、前述した第1例と同様である。なお、2ステージプログラムでは、第1ステージの書き込み動作の後、第2ステージの書き込み動作が実行されるが、第1ステージと第2ステージの書き込み動作で設定される書き込みパラメータは異なる。このため、コントローラ200は、第1ステージ及び第2ステージの書き込み動作における書き込みパラメータをそれぞれ管理する。すなわち、コントローラ200は、第1ステージ及び第2ステージの書き込み動作における書き込みパラメータを別々のテーブルで管理する。
次に、2ステージプログラムにおける第2ステージの書き込み動作に、フィードバック付き書き込みを適用した例を、第3例として説明する。第3例は、第2ステージの書き込み動作における1回目の書き込みループのプログラムベリファイ動作に、追加のスマートベリファイ動作を設けたものである。
図18は、第3例のフィードバック付き書き込みで行われるプログラム動作とプログラムベリファイ動作におけるワード線電圧を示す。第3例では、第2ステージの書き込み動作において8値を書くためにLowerページのデータ、すなわち“LM”データの復元が必要である。このため、“LM”データの読み出し電圧LMRを用いて読み出しを行う。その後、選択ワード線WLに初回の電圧VPGMを印加してプログラム動作を行う。次に、プログラムベリファイ動作において、選択ワード線WLに、ベリファイ電圧SV1,SV2を印加して、スマートベリファイ動作をそれぞれ行う。続いて、“A”ステートについてのベリファイ電圧AVを印加して、プログラムベリファイ動作及びスマートベリファイ動作をそれぞれ行う。さらに、ベリファイ電圧SV3,SV4を印加して、スマートベリファイ動作をそれぞれ行う。これらベリファイ電圧の大小関係は、例えば、SV1<SV2<AV<SV3<SV4である。
第3例の図14に示した第1例と異なる点は、“A”ステートの書き込み動作前に、読み出し電圧LMRでの読み出しがあるだけである。その他の構成及び効果は、前述した第1例と同様である。
<第2実施形態のフィードバック付き書き込み(第4例〜第6例)>
次に、第2実施形態のフィードバック付き書き込みを適用した例として、第4例〜第6例を説明する。第4例では、スマートベリファイによる書き込みパラメータの検知を、“A”ステートのプログラムベリファイ電圧AVを用いて行う。スマートベリファイにパスしたら、オーバープログラムが発生したか否かを判定するベリファイ動作を行う。このベリファイ動作には、ベリファイ電圧AVより高いベリファイ電圧AVHを用いる。以降、オーバープログラムの発生を判定するベリファイをOPベリファイ動作と称する。
次に、第2実施形態のフィードバック付き書き込みを適用した例として、第4例〜第6例を説明する。第4例では、スマートベリファイによる書き込みパラメータの検知を、“A”ステートのプログラムベリファイ電圧AVを用いて行う。スマートベリファイにパスしたら、オーバープログラムが発生したか否かを判定するベリファイ動作を行う。このベリファイ動作には、ベリファイ電圧AVより高いベリファイ電圧AVHを用いる。以降、オーバープログラムの発生を判定するベリファイをOPベリファイ動作と称する。
図19は、第4例のフィードバック付き書き込みで行われるプログラム動作とプログラムベリファイ動作におけるワード線電圧を示す。図20は、プログラム動作後のメモリセルの閾値電圧分布を示す。第4例では、図19に示すように、プログラム動作の後、プログラムベリファイ電圧AVをスマートベリファイ電圧として用いてスマートベリファイ動作を行う。閾値電圧がプログラムベリファイ電圧AV以上であると判定されたメモリセルの数が第1閾値以上であるか否かを判定するスマートベリファイ動作を行い、スマートベリファイにパスしたら、プログラムベリファイ電圧AVより高いベリファイ電圧AVHを用いたOPベリファイ動作を行う。
図19に示すように、1回目の書き込みループでは、選択ワード線WLに初回の電圧VPGMを印加してプログラム動作を行う。続いて、選択ワード線WLに、“A”ステートのベリファイ電圧AVを印加して、スマートベリファイ動作を行う。例えばここでは、閾値電圧がプログラムベリファイ電圧AV以上であると判定されたメモリセルの数が第1閾値以上でなく、スマートベリファイがフェイルであるとして、2回目の書き込みループに進む。
2回目の書き込みループでは、選択ワード線WLに“電圧VPGM+ΔV”を印加して、プログラム動作を行う。続いて、選択ワード線WLに、“A”ステートのベリファイ電圧AVを印加して、スマートベリファイ動作を行う。ここでも、閾値電圧がプログラムベリファイ電圧AV以上であると判定されたメモリセルの数が第1閾値以上でなく、スマートベリファイがフェイルであるとして、3回目の書き込みループに進む。
3回目の書き込みループでは、選択ワード線WLに“電圧VPGM+2ΔV”を印加して、プログラム動作を行う。続いて、選択ワード線WLに、“A”ステートのベリファイ電圧AVを印加して、スマートベリファイ動作を行う。例えばここでは、閾値電圧がプログラムベリファイ電圧AV以上であると判定されたメモリセルの数が第1閾値以上であり、スマートベリファイにパスしたと判定される。スマートベリファイにパスすると、選択ワード線WLにベリファイ電圧AVより高い電圧AVHを印加して、OPベリファイ動作を行う。電圧AVHは、オーバープログラムを検出するためのベリファイ電圧である。
前述したように、図19に示す例は、書き込み動作の3回目の書き込みループのスマートベリファイ動作において、“A”ステートのベリファイ電圧AVによるスマートベリファイがパスした例である。スマートベリファイにパスすると、追加のベリファイ電圧AVHによるOPベリファイ動作が実行される。コントローラ200は、ベリファイ電圧AVHによるOPベリファイ動作によって得られる検証結果に基いて、オーバープログラムが発生しているか否かを判定する。OPベリファイ動作では、閾値電圧がベリファイ電圧AVHを超えたと判定されるメモリセルの数が第2閾値以上であるとき、オーバープログラムが発生していると判定される。
次に、第4例における検証結果に基づいてステータス情報を決定する手法について説明する。図21は、フィードバック付き書き込みによって得られた検証結果に基づいて決定されるステータス情報の一例を示す。
この第4例では、NAND型フラッシュメモリ100は、フィードバック付き書き込みの検証結果として、ベリファイ電圧AVを用いたスマートベリファイにパスした書き込みループ数と、OPベリファイ動作によるオーバープログラム発生の有無情報を取得する。なお、OPベリファイ動作によりオーバープログラムの発生有りと判定されるのは、閾値電圧がベリファイ電圧AVHを超えたと判定されるメモリセルの数が第2閾値以上の場合である。
NAND型フラッシュメモリ100は、書き込みループ数、及びOPベリファイ動作によるオーバープログラム発生の有無情報に基づいて、図21に示すように、8ビットのステータス情報[7:0]を決定する。ステータス情報[7]がオーバープログラムの発生の有無を表し、ステータス情報[6:0]がベリファイ電圧AVのスマートベリファイにパスした書き込みループ数を表す。
図21に示す(a)行は、ベリファイ電圧AVのスマートベリファイにパスした書き込みループ数が1回で、かつスマートベリファイのパス時にオーバープログラムの発生が有る場合である。この場合、ステータス情報[7:0]は、“10000001”となる。
図21に示す(b)行は、ベリファイ電圧AVのスマートベリファイにパスした書き込みループ数が1回で、かつスマートベリファイのパス時にオーバープログラムの発生が無い場合である。この場合、ステータス情報[7:0]は、“00000001”となる。
図21に示す(c)行は、ベリファイ電圧AVのスマートベリファイにパスした書き込みループ数が2回で、かつスマートベリファイのパス時にオーバープログラムの発生が有る場合である。この場合、ステータス情報[7:0]は、“10000010”となる。
図21に示す(d)行は、ベリファイ電圧AVのスマートベリファイにパスした書き込みループ数が2回で、かつスマートベリファイのパス時にオーバープログラムの発生が無い場合である。この場合、ステータス情報[7:0]は、“00000010”となる。
図21に示す(e)行は、ベリファイ電圧AVのスマートベリファイにパスした書き込みループ数が3回で、かつスマートベリファイのパス時にオーバープログラムの発生が有る場合である。この場合、ステータス情報[7:0]は、“10000011”となる。
図21に示す(f)行は、ベリファイ電圧AVのスマートベリファイにパスした書き込みループ数が3回で、かつスマートベリファイのパス時にオーバープログラムの発生が無い場合である。この場合、ステータス情報[7:0]は、“00000011”となる。
図21に示す(g)行は、ベリファイ電圧AVのスマートベリファイにパスした書き込みループ数が4回で、かつスマートベリファイのパス時にオーバープログラムの発生が有る場合である。この場合、ステータス情報[7:0]は、“10000100”となる。
図21に示す(h)行は、ベリファイ電圧AVのスマートベリファイにパスした書き込みループ数が4回で、かつスマートベリファイのパス時にオーバープログラムの発生が無い場合である。この場合、ステータス情報[7:0]は、“00000100”となる。
NAND型フラッシュメモリ100は、フィードバック付き書き込みにより得られた検証結果を、ステータス情報[7:0]として第2レジスタ170Bに記憶する。続いて、コントローラ200は、例えば、取得コマンドによって第2レジスタ170Bからステータス情報を取得し、検証結果としてのステータス情報に基づいてグループ代表値の更新及び回復処理を行う。例えば、コントローラ200は、回復処理のためのコマンドをNAND型フラッシュメモリ100に送信する。
次に、第4例における検証結果に基づいたグループ代表値の更新及び回復処理の有無について説明する。図22は、検証結果としてのステータス情報に基づいたグループ代表値の更新及び回復処理の実行の有無を示す。図22に示す(a)〜(h)の検証結果は、図21に示した(a)〜(h)のそれらと同様である。
コントローラ200は、検証結果が図22に示す(a)の場合、オーバープログラムが発生している懸念が高いため、グループ代表値として設定される電圧VPGMを3段階下げて“電圧VPGM−3×ΔV”とし、かつ回復処理を行う。図22に示す(b)の場合、オーバープログラムが発生していないが、他のワード線への適用はできないため、グループ代表値として設定される電圧VPGMを2段階下げて“電圧VPGM−2×ΔV”とし、また回復処理を行わない。図22に示す(c)の場合、他のワード線への適用はできないため、グループ代表値として設定される電圧VPGMを1段階下げて“電圧VPGM−ΔV”とし、かつ回復処理を行う。図20に示す(d)の場合、他のワード線へ適用して良いとし、グループ代表値として設定されている電圧VPGMをそのまま維持し、回復処理を行わない。図20に示す(e)の場合、他のワード線への適用が可能であるが、グループ代表値として設定される電圧VPGMを1段階上げて“電圧VPGM+ΔV”とし、かつ回復処理を行う。図22に示す(f)の場合、グループ代表値として設定される電圧VPGMを1段階上げて“電圧VPGM+ΔV”とし、また回復処理を行わない。図22に示す(g)の場合、グループ代表値として設定される電圧VPGMを2段階上げて“電圧VPGM+2×ΔV”とし、かつ回復処理を行う。さらに、図22に示す(h)の場合、グループ代表値として設定される電圧VPGMを2段階上げて“電圧VPGM+2×ΔV”とし、また回復処理を行わない。
第4例では、このようにベリファイ電圧AVを用いたスマートベリファイにパスした後、ベリファイ電圧AVより高い電圧AVHを用いたOPベリファイ動作を行うことにより、オーバープログラムが発生したか否かを判定する。これにより、オーバープログラムが発生したメモリセルに書き込まれるべきデータに対して回復処理を行うことができ、メモリシステムとしてのデータの損失を防ぐことができる。
次に、2ステージプログラムにおける第1ステージの書き込み動作に、第2実施形態を適用した例を、第5例として説明する。第5例では、スマートベリファイによる書き込みパラメータの検知を、“LM”ステートのプログラムベリファイ電圧LMVを用いて行う。スマートベリファイにパスしたら、ベリファイ電圧LMVより高いベリファイ電圧LMVHを用いたOPベリファイ動作を行う。
図23は、第5例のフィードバック付き書き込みで行われるプログラム動作とプログラムベリファイ動作におけるワード線電圧を示す。第5例では、図23に示すように、プログラム動作の後、プログラムベリファイ電圧LMVをスマートベリファイ電圧として用いてスマートベリファイ動作を行う。スマートベリファイ動作では、閾値電圧がプログラムベリファイ電圧LMV以上であると判定されたメモリセルの数が第1閾値以上であるか否かを判定する。スマートベリファイにパスしたら、プログラムベリファイ電圧LMVより高いベリファイ電圧LMVHを用いたOPベリファイ動作によりオーバープログラムが発生しているか否かを判定する。
第5例は、書き込み動作の3回目の書き込みループにおいて、“LM”ステートのベリファイ電圧LMVによるスマートベリファイがパスした例を示す。スマートベリファイにパスすると、追加のベリファイ電圧LMVHによるOPベリファイ動作が行われる。OPベリファイ動作では、閾値電圧がベリファイ電圧LMVHを超えたと判定されるメモリセルの数が第2閾値以上であるとき、オーバープログラムが発生していると判定される。
NAND型フラッシュメモリ100は、ベリファイ電圧LMVによるスマートベリファイにパスした書き込みループ数と、OPベリファイ動作によるオーバープログラム発生の有無情報に基づいてステータス情報を決定し、第2レジスタ170Bに記憶する。コントローラ200は、第2レジスタ170Bから検証結果としてのステータス情報を取得し、ステータス情報に基づいてグループ代表値の更新及び回復処理を行う。
第4例における図20、図21、及び図22を用いた説明は、電圧AVを電圧LMVに、電圧AVHを電圧LMVHに、“A”を“LM”にそれぞれ置き換えれば、第5例においても同様に適用できるため、それらの説明は省略する。その他の構成及び効果は前述した第4例と同様である。
次に、2ステージプログラムにおける第2ステージの書き込み動作に、第2実施形態を適用した例を、第6例として説明する。第6例では、スマートベリファイによる書き込みパラメータの検知を、“A”ステートのプログラムベリファイ電圧AVを用いて行う。スマートベリファイにパスしたら、ベリファイ電圧AVHを用いたOPベリファイ動作を行う。
図24は、第6例のフィードバック付き書き込みで行われるプログラム動作とプログラムベリファイ動作におけるワード線電圧を示す。第6例では、第2ステージにおいて8値を書くためにLowerページのデータ、すなわち“LM”データの復元が必要である。このため、“LM”データの読み出し電圧LMRを用いて読み出しを行う。その後、第4例と同様に、選択ワード線WLに初回の電圧VPGMを印加してプログラム動作を行う。プログラム動作の後、プログラムベリファイ電圧AVをスマートベリファイ電圧として用いてスマートベリファイ動作を行う。スマートベリファイ動作では、閾値電圧がプログラムベリファイ電圧AV以上であると判定されたメモリセルの数が第1閾値以上であるか否かを判定する。スマートベリファイにパスしたら、プログラムベリファイ電圧AVより高いベリファイ電圧AVHを用いたOPベリファイ動作によりオーバープログラムが発生しているか否かを判定する。
図19に示した第4例と異なる点は、“A”ステートの書き込み動作前に、読み出し電圧LMRでの読み出しがあるだけである。その他の構成及び効果は、前述した第4例と同様である。
<第3実施形態のフィードバック付き書き込み(第7例〜第9例)>
次に、第3実施形態のフィードバック付き書き込みを適用した例として、第7例〜第9例を説明する。第7例では、スマートベリファイによる書き込みパラメータの検知を、スマートベリファイ電圧SVを用いて行う。スマートベリファイにパスしたら、“A”ステートのプログラムベリファイ電圧AVを用いたOPベリファイ動作を行う。スマートベリファイ電圧SVは、“A”ステートのプログラムベリファイ電圧AVより低い。
次に、第3実施形態のフィードバック付き書き込みを適用した例として、第7例〜第9例を説明する。第7例では、スマートベリファイによる書き込みパラメータの検知を、スマートベリファイ電圧SVを用いて行う。スマートベリファイにパスしたら、“A”ステートのプログラムベリファイ電圧AVを用いたOPベリファイ動作を行う。スマートベリファイ電圧SVは、“A”ステートのプログラムベリファイ電圧AVより低い。
図25は、第7例のフィードバック付き書き込みで行われるプログラム動作とプログラムベリファイ動作におけるワード線電圧を示す。図26は、プログラム動作後のメモリセルの閾値電圧分布を示す。第7例では、図25に示すように、プログラム動作の後、スマートベリファイ電圧SVを用いたスマートベリファイ動作を行い、スマートベリファイにパスしたら、プログラムベリファイ電圧AVを用いたOPベリファイ動作を行う。
図25に示すように、1回目の書き込みループでは、選択ワード線WLに初回の電圧VPGMを印加してプログラム動作を行う。続いて、選択ワード線WLに、スマートベリファイ電圧SVを印加して、スマートベリファイ動作を行う。例えばここでは、閾値電圧がスマートベリファイ電圧SV以上であると判定されたメモリセルの数が第1閾値以上でなく、スマートベリファイがフェイルであるとして、2回目の書き込みループに進む。
2回目の書き込みループでは、選択ワード線WLに“電圧VPGM+ΔV”を印加して、プログラム動作を行う。続いて、選択ワード線WLに、スマートベリファイ電圧SVを印加して、スマートベリファイ動作を行う。ここでも、閾値電圧がスマートベリファイ電圧SV以上であると判定されたメモリセルの数が第1閾値以上でなく、スマートベリファイがフェイルであるとして、3回目の書き込みループに進む。
3回目の書き込みループでは、選択ワード線WLに“電圧VPGM+2ΔV”を印加して、プログラム動作を行う。続いて、選択ワード線WLに、スマートベリファイ電圧SVを印加して、スマートベリファイ動作を行う。例えばここでは、閾値電圧がスマートベリファイ電圧SV以上であると判定されたメモリセルの数が第1閾値以上であり、スマートベリファイにパスしたと判定される。スマートベリファイにパスすると、選択ワード線WLにスマートベリファイ電圧SVより高い、“A”ステートのプログラムベリファイ電圧AVを印加して、プログラムベリファイ電圧AVを用いたOPベリファイ動作を行う。プログラムベリファイ電圧AVを用いたOPベリファイ動作では、閾値電圧がベリファイ電圧AVを超えたと判定されるメモリセルの数が第2閾値以上であるとき、オーバープログラムが発生したと判定される。
第7例における検証結果に基づいてステータス情報を決定する手法、及び検証結果に基づいたグループ代表値の更新及び回復処理の有無については、図21及び図22における電圧AVを電圧SVに置き換えればよく、その他は第4例と同様である。
第7例では、このようにスマートベリファイ電圧SVを用いたスマートベリファイにパスした後、スマートベリファイ電圧SVより高いプログラムベリファイ電圧AVを用いたOPベリファイ動作を行うことにより、オーバープログラムが発生したか否かを判定する。これにより、オーバープログラムが発生したメモリセルに書き込まれるべきデータに対して回復処理を行うことができ、メモリシステムとしてのデータの損失を防ぐことができる。
次に、2ステージプログラムにおける第1ステージの書き込み動作に、第3実施形態を適用した例を、第8例として説明する。第8例では、スマートベリファイによる書き込みパラメータの検知を、スマートベリファイ電圧SVを用いて行う。スマートベリファイにパスしたら、“LM”ステートのプログラムベリファイ電圧LMVを用いたOPベリファイ動作を行う。スマートベリファイ電圧SVは、“LM”ステートのプログラムベリファイ電圧LMVより低い。
図27は、第8例のフィードバック付き書き込みで行われるプログラム動作とプログラムベリファイ動作におけるワード線電圧を示す。第8例は、書き込み動作の3回目の書き込みループにおいて、スマートベリファイ電圧SVによるスマートベリファイがパスした例を示す。スマートベリファイにパスすると、選択ワード線WLにスマートベリファイ電圧SVより高い、“LM”ステートのプログラムベリファイ電圧LMVを印加して、OPベリファイ動作を行う。OPベリファイ動作では、閾値電圧がプログラムベリファイ電圧LMVを超えたと判定されるメモリセルの数が第2閾値以上であるとき、オーバープログラムが発生していると判定される。
NAND型フラッシュメモリ100は、スマートベリファイ電圧SVを用いたスマートベリファイにパスした書き込みループ数と、OPベリファイ動作によるオーバープログラム発生の有無情報に基づいてステータス情報を決定し、第2レジスタ170Bに記憶する。コントローラ200は、例えば、取得コマンドによって第2レジスタ170Bから検証結果としてのステータス情報を取得し、ステータス情報に基づいてグループ代表値の更新及び回復処理を行う。
第4例における図20、図21、及び図22を用いた説明は、電圧AVを電圧SVに、電圧AVHを電圧LMVに、“A”を“LM”にそれぞれ置き換えれば、第8例においても同様に適用できるため、それらの説明は省略する。その他の構成及び効果は前述した第4例と同様である。
次に、2ステージプログラムにおける第2ステージの書き込み動作に、第3実施形態を適用した例を、第9例として説明する。第9例では、スマートベリファイによる書き込みパラメータの検知を、スマートベリファイ電圧SVを用いて行う。スマートベリファイにパスしたら、“A”ステートのプログラムベリファイ電圧AVを用いたOPベリファイ動作を行う。スマートベリファイ電圧SVは、“A”ステートのプログラムベリファイ電圧AVより低い。
図28は、第9例のフィードバック付き書き込みで行われるプログラム動作とプログラムベリファイ動作におけるワード線電圧を示す。第9例では、第2ステージにおいて8値を書くためにLowerページのデータ、すなわち“LM”データの復元が必要である。このため、“LM”データの読み出し電圧LMRを用いて読み出しを行う。その後、第7例と同様に、選択ワード線WLに初回の電圧VPGMを印加してプログラム動作を行う。プログラム動作の後、スマートベリファイ電圧SVを用いてスマートベリファイ動作を行う。スマートベリファイにパスしたら、プログラムベリファイ電圧AVを用いたOPベリファイ動作を行う。
図25に示した第7例と異なる点は、“A”ステートの書き込み動作前に、読み出し電圧LMRでの読み出しがあるだけである。その他の構成及び効果は、前述した第7例と同様である。
1.3 タイミングチャート及びコマンドシーケンス
次に、図29〜図36を用いて、実施形態の検知書き込み、適用書き込み、及びフィードバック付き書き込みのタイミングチャート及びコマンドシーケンスについて説明する。
次に、図29〜図36を用いて、実施形態の検知書き込み、適用書き込み、及びフィードバック付き書き込みのタイミングチャート及びコマンドシーケンスについて説明する。
図29は、実施形態の検知書き込み、適用書き込み、及びフィードバック付き書き込みによるページ書き込みのタイミングチャートの一例である。このタイミングチャートに従い、コントローラ200がNAND型フラッシュメモリ100に検知書き込み、適用書き込み、あるいはフィードバック付き書き込みを指示する。各信号は、ハイアクティブ信号(あるいは正論理信号)とローアクティブ信号(あるいは負論理信号)のいずれか一方により表す場合と、正論理信号と負論理信号の両方により表す場合がある。ローアクティブ信号は、本明細書及び図中では信号を表す記号の前に/を、あるいは信号を表す記号にオーバーライン(又は上線)を付して表現する。
まず、チップイネーブル信号/CEが活性化されるともに、コマンドラッチイネーブル信号CLEが活性化され、アドレスラッチイネーブル信号ALEが非活性化され、相補信号であるリードイネーブル信号/RE及びREが非活性化される。さらに、ライトイネーブル信号/WEが活性化され、I/O信号DQxによるプレフィックスコマンド“yyh”が検知書き込みを指示するコマンドとしてNAND型フラッシュメモリ100に取り込まれる。I/O信号は、複数ビットの信号、例えばDQ0〜DQ7からなるが、複数ビットをまとめてI/O信号DQxと称する。なお、適用書き込みを指示する場合は“yyh”と異なる“yxh”を用い、フィードバック付き書き込みを指示する場合は“yyh”、“yxh”と異なる“yzh”をそれぞれ用いる。あるいは、プレフィックスコマンドを付加しないことによって、適用書き込みを指示してもよい。
次に、コマンドラッチイネーブル信号CLEが非活性化され、アドレスラッチイネーブル信号ALEが活性化され、ライトイネーブル信号/WEの活性化に同期して、I/O信号DQxにより書き込み先のカラムアドレス(Column Address)とロウアドレス(Row Address)がNAND型フラッシュメモリ100に取り込まれる。
この後、アドレスラッチイネーブル信号ALEが非活性化され、データストローブ信号DQS及び/DQSのトグルに同期して書き込みデータD0,D1,…,DNがNAND型フラッシュメモリ100に取り込まれる。データD0,D1,…,DNは、1ページ分のデータに相当する。
データが取り込まれた後、I/O信号DQxによりチップ内部のプログラム開始コマンド“10h”がNAND型フラッシュメモリ100に伝送され、プログラム動作が開始される。書き込み期間tPROGは、レディ/ビジー信号(R/B)がビジーとされる。
その後、I/O信号DQxによりステータスリードコマンド“70h”がNAND型フラッシュメモリ100に伝送される。続いて、例えばI/O信号DQ0がNAND型フラッシュメモリ100からコントローラ200に返信される。コントローラ200は、I/O信号DQ0によりプログラム動作が成功したか、失敗したかを判定する。例えば、I/O信号DQ0=0ならばプログラム動作が成功と判定され、I/O信号DQ0=1ならばプログラム動作が失敗と判定される。
以降の図でも同様であるが、コマンドを示す英数字はあくまでも一例であり、これらの英数字に何ら限定されない。
図30は、フルシーケンスプログラムによる検知書き込み、適用書き込み、及びフィードバック付き書き込みを指示するコマンドシーケンスを示す。このコマンドシーケンスに従い、コントローラ200がNAND型フラッシュメモリ100に検知書き込み、適用書き込み、あるいはフィードバック付き書き込みを指示する。なお、1行目の時間軸のA端は2行目の時間軸のA端に続き、2行目の時間軸のB端は3行目の時間軸のB端に続く。
前述したように、プレフィックスコマンド“yzh”は、フィードバック付き書き込みを示し、図示しないプレフィックスコマンド“yyh”は検知書き込みを、プレフィックスコマンド“yxh”は適用書き込みをそれぞれ示す。このように、プレフィックスコマンドの種類により、検知書き込み、適用書き込み、あるいはフィードバック付き書き込みのいずれかを指示することができる。あるいは、プレフィックスコマンドを付加しないことによって、適用書き込みを指示してもよい。図30では、フィードバック付き書き込みを指示する場合を示す。
I/O信号DQxにより、フィードバック付き書き込みを指示するプレフィックスコマンド“yzh”が伝送され、プレフィックスコマンド“yzh”に後続してデータが伝送される。このデータは、書き込みパラメータを示す情報を含む。NAND型フラッシュメモリ100は、プレフィックスコマンド“yzh”に後続するデータを受け取り、このデータに基づいて第1レジスタ170Aに書き込みパラメータを設定する。ここでは、プレフィックスコマンド“yzh”の伝送直後に、データにより書き込みパラメータを伝送したが、セットフィーチャー(Set feature)コマンドによって書き込みパラメータを伝送してもよい。セットフィーチャーコマンドについては後述する。
プレフィックスコマンド“yzh”に後続してデータが伝送された後、lowerページを示すコマンド“01h”が伝送され、その後、データ入力を示すコマンド“80h”が伝送される。データ入力コマンド“80h”は、通常の書き込みコマンドと同じであってもよい。
次に、図29に示したシーケンスと同様にデータ入力コマンド“80h”に続いて、カラムアドレスCA1,CA2、ロウアドレスRA1,RA2,RA3が供給される。ロウアドレスRA3に後続するデータ入力は、図29に示した書き込みデータD0,D1,…,DNに対応する。データD0,D1,…,DNは、1ページ(lowerページ)分のデータに相当する。
lowerページのデータ入力後のコマンド“1Ah”は、例えば、NAND型フラッシュメモリ100内の内部バッファ(図示しない)に書き込みデータを一時的に保持させるコマンドである。書き込みデータの内部バッファへの転送中は、レディ/ビジー信号(R/B)がビジーとされる。
その後、lowerページの場合と同様に、middleページを示すコマンド“02h”が伝送された後、middleページの書き込みデータが供給され、さらに、upperページを示すコマンド“03h”が伝送された後、upperページの書き込みデータが供給される。upperページのデータ入力後のコマンド“10h”は、NAND型フラッシュメモリ100内部のプログラム開始コマンドであり、これによりメモリセルアレイ110への書き込みデータの一括書き込みが開始される。書き込み期間tPROGは、レディ/ビジー信号(R/B)がビジーとされる。
図31(a),(b)は、2ステージプログラムによる検知書き込み、適用書き込み、及びフィードバック付き書き込みを指示するコマンドシーケンスを示す。このコマンドシーケンスに従い、コントローラ200がNAND型フラッシュメモリ100に検知書き込み、適用書き込み、あるいはフィードバック付き書き込みを指示する。
図31(a)は第1ステージの書き込みを表し、図31(b)は第2ステージの書き込みを表す。前述したように、プレフィックスコマンド“yzh”は、フィードバック付き書き込みを示し、図示しないプレフィックスコマンド“yyh”は検知書き込みを、プレフィックスコマンド“yxh”は適用書き込みをそれぞれ示す。あるいは、プレフィックスコマンドを付加しないことによって、適用書き込みを指示してもよい。図31(a),(b)では、フィードバック付き書き込みを指示する場合を示す。
第1ステージの書き込みは、図31(a)に示すように実行される。まず、I/O信号DQxにより、フィードバック付き書き込みを指示するプレフィックスコマンド“yzh”が伝送され、プレフィックスコマンド“yzh”に後続してデータが伝送される。NAND型フラッシュメモリ100は、プレフィックスコマンド“yzh”に後続するデータを受け取り、このデータに基づいて第1レジスタ170Aに書き込みパラメータを設定する。データによる書き込みパラメータの伝送に換えて、セットフィーチャーコマンドによって書き込みパラメータを伝送してもよい。
プレフィックスコマンド“yzh”に後続してデータが伝送された後、lowerページを示すコマンド“01h”が伝送され、その後、データ入力を示すコマンド“80h”が伝送される。データ入力コマンド“80h”に続いて、カラムアドレスCA1,CA2、及びロウアドレスRA1,RA2,RA3が供給される。さらに、ロウアドレスRA3に後続して、書き込みデータが供給される。
lowerページの書き込みデータ供給後のコマンド“10h”は、NAND型フラッシュメモリ100内部のプログラム開始コマンドであり、これによりメモリセルアレイ110への書き込みデータの書き込みが開始される。書き込み期間tPROG1は、レディ/ビジー信号(R/B)がビジーとされる。
次に、第2ステージの書き込みは、図31(b)に示すように実行される。まず、I/O信号DQxにより、フィードバック付き書き込みを指示するプレフィックスコマンド“yzh”が伝送され、プレフィックスコマンド“yzh”に後続してデータが伝送される。NAND型フラッシュメモリ100は、プレフィックスコマンド“yzh”に後続するデータを受け取り、このデータに基づいて第1レジスタ170Aに書き込みパラメータを設定する。データによる書き込みパラメータの伝送に換えて、セットフィーチャーコマンドによって書き込みパラメータを伝送してもよい。
プレフィックスコマンド“yzh”に後続してデータが伝送された後、middleページを示すコマンド“02h”が伝送され、その後、データ入力を示すコマンド“80h”が伝送される。データ入力コマンド“80h”に続いて、カラムアドレスCA1,CA2、及びロウアドレスRA1,RA2,RA3が供給される。さらに、ロウアドレスRA3に後続して、書き込みデータが供給される。書き込みデータ供給後のコマンド“1Ah”は、NAND型フラッシュメモリ100内のバッファに書き込みデータを一時的に保持させるコマンドである。
その後、middleページの場合と同様に、upperページを示すコマンド“03h”が伝送された後、upperページの書き込みデータが供給される。upperページの書き込みデータ供給後のコマンド“10h”は、NAND型フラッシュメモリ100内部のプログラム開始コマンドであり、これによりメモリセルアレイ110への書き込みデータの書き込みが開始される。書き込み期間tPROG2は、レディ/ビジー信号(R/B)がビジーとされる。
図32(a),(b)は、foggy & fineによる検知書き込み、適用書き込み、及びフィードバック付き書き込みを指示するコマンドシーケンスを示す。foggy & fineでは、第1ステージの書き込みで粗く書き込み、第2ステージの書き込みで詳細に書き込む。このコマンドシーケンスに従い、コントローラ200がNAND型フラッシュメモリ100に検知書き込み、適用書き込み、あるいはフィードバック付き書き込みを指示する。
図32(a)は第1ステージの書き込みを表し、図32(b)は第2ステージ2段階目の書き込みを表す。前述したように、プレフィックスコマンド“yzh”は、フィードバック付き書き込みを示し、図示しないプレフィックスコマンド“yyh”は検知書き込みを、プレフィックスコマンド“yxh”は適用書き込みをそれぞれ示す。あるいは、プレフィックスコマンドを付加しないことによって、適用書き込みを指示してもよい。図32(a),(b)では、フィードバック付き書き込みを指示する場合を示す。
第1ステージの書き込みは、図32(a)に示すように実行される。まず、I/O信号DQxにより、フィードバック付き書き込みを指示するプレフィックスコマンド“yzh”が伝送され、プレフィックスコマンド“yzh”に後続してデータが伝送される。NAND型フラッシュメモリ100は、プレフィックスコマンド“yzh”に後続するデータを受け取り、このデータに基づいて第1レジスタ170Aに書き込みパラメータを設定する。データによる書き込みパラメータの伝送に換えて、セットフィーチャーコマンドによって書き込みパラメータを伝送してもよい。
プレフィックスコマンド“yzh”に後続してデータが伝送された後、lowerページを示すコマンド“01h”が伝送され、その後、データ入力を示すコマンド“80h”が伝送される。データ入力コマンド“80h”に続いて、カラムアドレスCA1,CA2、及びロウアドレスRA1,RA2,RA3が供給される。さらに、ロウアドレスRA3に後続して、書き込みデータが供給される。lowerページの書き込みデータ供給後のコマンド“1Ah”は、NAND型フラッシュメモリ100内の内部バッファに書き込みデータを一時的に保持させるコマンドである。
その後、lowerページの場合と同様に、middleページを示すコマンド“02h”が伝送された後、middleページの書き込みデータが供給される。middleページの書き込みデータ供給後のコマンド“1Ah”は、NAND型フラッシュメモリ100内の内部バッファに書き込みデータを一時的に保持させるコマンドである。
その後、middleページの場合と同様に、upperページを示すコマンド“03h”が伝送された後、upperページの書き込みデータが供給される。upperページの書き込みデータ供給後のコマンド“10h”は、NAND型フラッシュメモリ100内部のプログラム開始コマンドであり、これによりメモリセルアレイ110への書き込みデータの書き込みが開始される。書き込み期間tPROG2は、レディ/ビジー信号(R/B)がビジーとされる。
次に、第2ステージの書き込みは、図32(b)に示すように実行される。まず、I/O信号DQxにより、フィードバック付き書き込みを指示するプレフィックスコマンド“yzh”が伝送され、プレフィックスコマンド“yzh”に後続してデータが伝送される。NAND型フラッシュメモリ100は、プレフィックスコマンド“yzh”に後続するデータを受け取り、このデータに基づいて第1レジスタ170Aに書き込みパラメータを設定する。データによる書き込みパラメータの伝送に換えて、セットフィーチャーコマンドによって書き込みパラメータを伝送してもよい。
プレフィックスコマンド“yzh”に後続してデータが伝送された後、lowerページを示すコマンド“01h”が伝送され、その後、データ入力を示すコマンド“80h”が伝送される。データ入力コマンド“80h”に続いて、カラムアドレスCA1,CA2、及びロウアドレスRA1,RA2,RA3が供給される。さらに、ロウアドレスRA3に後続して、書き込みデータが供給される。lowerページの書き込みデータ供給後のコマンド“1Ah”は、NAND型フラッシュメモリ100内の内部バッファに書き込みデータを一時的に保持させるコマンドである。
その後、lowerページの場合と同様に、middleページを示すコマンド“02h”が伝送された後、middleページの書き込みデータが供給される。middleページの書き込みデータ供給後のコマンド“1Ah”は、NAND型フラッシュメモリ100内の内部バッファに書き込みデータを一時的に保持させるコマンドである。
その後、middleページの場合と同様に、upperページを示すコマンド“03h”が伝送された後、upperページの書き込みデータが供給される。upperページの書き込みデータ供給後のコマンド“10h”は、NAND型フラッシュメモリ100内部のプログラム開始コマンドであり、これによりメモリセルアレイ110への書き込みデータの書き込みが開始される。書き込み期間tPROG2は、レディ/ビジー信号(R/B)がビジーとされる。
次に、検知書き込み及びフィードバック付き書き込みによる検証結果をコントローラ200がNAND型フラッシュメモリ100から取得するための実装例として、ステータスリードコマンドまたはゲットフィーチャー(Get feature)コマンドを用いた場合について説明する。
まず、ステータスリードコマンドを用いて、コントローラ200がNAND型フラッシュメモリ100から検証結果を取得する場合を述べる。図33は、検知書き込み及びフィードバック付き書き込みによる検証結果を読み出すステータスリードコマンドのタイミングチャートを示す。このタイミングチャートに従い、コントローラ200はNAND型フラッシュメモリ100にステータスリードを指示する。図34は、ステータスリードコマンドで出力されるステータス情報の詳細を示す。
まず、チップイネーブル信号/CEが活性化されるともに、コマンドラッチイネーブル信号CLEが活性化され、アドレスラッチイネーブル信号ALEが非活性化され、相補信号であるリードイネーブル信号/RE及びREが非活性化される。さらに、ライトイネーブル信号/WEが活性化され、I/O信号DQxによる“7Xh”がステータスリード動作を指示するコマンドとしてNAND型フラッシュメモリ100に取り込まれる。
次に、コマンドラッチイネーブル信号CLEが非活性化され、リードイネーブル信号/RE及びREのトグルに同期して、第2レジスタ170Bからステータス情報が取得される。さらに、データストローブ信号DQS及び/DQSのトグルに同期して、ステータス情報がNAND型フラッシュメモリ100からコントローラ200へ出力される。図34に示すように、コントローラ200からのステータスリードコマンドで出力されるステータス情報IO7〜IO0は、例えばIO4〜IO2に検証結果を含む。IO0及びIO1は、例えばそれぞれ、自ら及び他のNAND型フラッシュメモリチップに対する書き込み動作がパスしたか、あるいはフェイルしたかを示す情報であり、その他については説明を省略する。
次に、ゲットフィーチャーコマンドを用いて、コントローラ200がNAND型フラッシュメモリ100から検証結果を取得する場合を述べる。図35は、検知書き込み及びフィードバック付き書き込みによる検証結果を得るためのゲットフィーチャーコマンドのタイミングチャートを示す。このタイミングチャートに従い、コントローラ200はNAND型フラッシュメモリ100にゲットフィーチャーを指示する。ゲットフィーチャーは、第2レジスタ170Bのアドレス“XXh”からデータR−B0、R−B1、R−B2、R−B3を取得するものである。第2レジスタ170Bのアドレス“XXh”には、書き込みパラメータを示す情報が記憶されているものとする。
まず、チップイネーブル信号/CEが活性化されるともに、コマンドラッチイネーブル信号CLEと、アドレスラッチイネーブル信号ALEと、ライトイネーブル信号/WEとリードイネーブル信号/RE及びREが非活性化される。
この後、コマンドラッチイネーブル信号CLEとライトイネーブル信号/WEが活性化され、I/O信号DQxによりコマンド“EEh”が伝送される。ライトイネーブル信号/WEの立ち上がりに同期して、I/O信号DQxの“EEh”がコマンドとしてNAND型フラッシュメモリ100に取り込まれる。コマンド“EEh”は、ゲットフィーチャー動作の開始を指示する。
次に、コマンドラッチイネーブル信号CLEが非活性化され、アドレスラッチイネーブル信号ALEとライトイネーブル信号/WEが活性化され、I/O信号DQxにより“XXh”が伝送される。ライトイネーブル信号/WEの立ち上がりに同期して、I/O信号DQxの“XXh”がアドレスとしてフラッシュメモリ100に取り込まれる。
その後、アドレスラッチイネーブル信号ALEが非活性化され、I/O信号DQxによりR−B0、R−B1、R−B2、R−B3がコントローラ200に伝送される。コントローラ200がリードイネーブル信号/RE及びREをトグルすることに応じて、NAND型フラッシュメモリ100がデータストローブ信号DQS及び/DQSをトグルさせる。そして、データストローブ信号DQS及び/DQSのトグルに同期して、I/O信号DQxのR−B0、R−B1、R−B2、R−B3がデータとしてコントローラ200に取得される。コントローラ200は、取得したデータに基づいた書き込みパラメータをグループ代表値として書き込みパラメータテーブル220A_2に記憶する。以上により、NAND型フラッシュメモリ100の第2レジスタ170Bに記憶された書き込みパラメータを示す情報が、ゲットフィーチャーコマンドによってコントローラ200に伝送される。
次に、検知書き込み及びフィードバック付き書き込みにおいて、書き込みパラメータをNAND型フラッシュメモリ100の第1レジスタ170Aにセットするための実装例として、セットフィーチャー(Set feature)コマンドを用いた場合について説明する。
図36は、検知書き込み及びフィードバック付き書き込みにおいて書き込みパラメータを第1レジスタ170Aにセットするためのセットフィーチャーコマンドのタイミングチャートを示す。このタイミングチャートに従い、コントローラ200はNAND型フラッシュメモリ100にセットフィーチャー動作を指示する。セットフィーチャーコマンドは、NAND型フラッシュメモリ100のアドレス“XXh”の第1レジスタ170Aに、書き込みパラメータを表すデータW−B0、W−B1、W−B2、W−B3を設定するものである。
まず、チップイネーブル信号/CEが活性化されるともに、コマンドラッチイネーブル信号CLEとアドレスラッチイネーブル信号ALEとライトイネーブル信号/WEとリードイネーブル信号/RE及びREが非活性化される。
この後、コマンドラッチイネーブル信号CLEとライトイネーブル信号/WEが活性化され、I/O信号DQxにより“EFh”が伝送される。ライトイネーブル信号/WEの立ち上がりに同期して、I/O信号DQxの“EFh”がコマンドとしてNAND型フラッシュメモリ100に取り込まれる。コマンド“EFh”はセットフィーチャー動作の開始を指示する。
次に、コマンドラッチイネーブル信号CLEが非活性化され、アドレスラッチイネーブル信号ALEとライトイネーブル信号/WEが活性化され、I/O信号DQxにより“XXh”が伝送される。ライトイネーブル信号/WEの立ち上がりに同期して、I/O信号DQxの“XXh”がアドレスとしてNAND型フラッシュメモリ100に取り込まれる。
その後、アドレスラッチイネーブル信号ALEが非活性化され、I/O信号DQxにより書き込みパラメータを表すデータW−B0、W−B1、W−B2、W−B3がNAND型フラッシュメモリ100に伝送される。データストローブ信号DQS及び/DQSのトグルに同期して、I/O信号DQxのW−B0、W−B1、W−B2、W−B3がデータとしてNAND型フラッシュメモリ100に取り込まれる。NAND型フラッシュメモリ100に取り込まれたデータW−B0、W−B1、W−B2、W−B3は、第1レジスタ170Aのアドレス“XXh”に設定される。以上により、コントローラ200の書き込みパラメータテーブル220A_2に記憶されたグループ代表値が、セットフィーチャーによって書き込みパラメータとして第1レジスタ170Aに記憶される。
1.4 本実施形態の効果
本実施形態によれば、書き込み動作におけるプログラムベリファイ動作に追加のベリファイ電圧によるベリファイ動作を設けることにより、書き込み対象のメモリセルに対して現行の書き込みパラメータが過小、適正、過大、あるいは過大のためにオーバープログラムが発生しているか否かを検証し、検証結果に基づいて次回の書き込み動作で用いる書き込みパラメータを動的に調整する。
本実施形態によれば、書き込み動作におけるプログラムベリファイ動作に追加のベリファイ電圧によるベリファイ動作を設けることにより、書き込み対象のメモリセルに対して現行の書き込みパラメータが過小、適正、過大、あるいは過大のためにオーバープログラムが発生しているか否かを検証し、検証結果に基づいて次回の書き込み動作で用いる書き込みパラメータを動的に調整する。
これにより、次回の書き込み動作において、調整した書き込みパラメータを用いてプログラム動作を行うことにより、書き込みループ数を低減でき、書き込み動作を高速化することができる。また、メモリセルにオーバープログラムが発生しているか否かを判定することにより、オーバープログラムが発生していると判定した場合には、オーバープログラムが発生したメモリセルに書き込まれるべきデータに対して回復処理を行うことができ、メモリシステムとしてのデータの損失を防ぐことができる。以上により、書き込み性能を向上させることが可能である。
2.その他変形例等
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1…メモリシステム、100…NAND型フラッシュメモリ、110…メモリセルアレイ、120…ロウデコーダ、130…ドライバ、140…センスアンプ、150…アドレスレジスタ、160…コマンドレジスタ、170…レジスタ、170A…第1レジスタ、170B…第2レジスタ、180…シーケンサ、200…コントローラ、210…ホストインターフェース(I/F)回路、220…内蔵メモリ(RAM)、220A…グループ代表値管理テーブル群、220A_1…グループ定義テーブル、220A_2…書き込みパラメータテーブル、220A_3…サイクル定義テーブル、220A_4…スケジュールテーブル、230…プロセッサ(CPU)、240…バッファメモリ、250…NANDインターフェース(I/F)回路、260…ECC(Error Checking and Correcting)回路、300…ホストデバイス。
Claims (16)
- メモリセルを含む不揮発性半導体メモリと、
前記メモリセルに対する書き込み動作で用いる書き込みパラメータを記憶するメモリを有するコントローラと、
を具備し、
前記コントローラは、前記不揮発性半導体メモリに、前記メモリセルに対する前記書き込みパラメータを用いた前記書き込み動作を指示し、前記書き込み動作から得られる前記書き込みパラメータの検証結果を前記不揮発性半導体メモリから受け取り、
前記コントローラは、前記書き込みパラメータの前記検証結果に基づいて、前記メモリに記憶された前記書き込みパラメータを更新するメモリシステム。 - 前記書き込み動作はプログラム動作とプログラムベリファイ動作とを含み、前記書き込みパラメータは書き込み電圧を含み、
前記プログラム動作は、前記メモリセルに対し前記書き込み電圧を印加して書き込みデータを書き込む動作であり、
前記プログラムベリファイ動作は、前記書き込みデータに対応した第1ベリファイ電圧を用いて、前記メモリセルが持つ閾値電圧を検証する第1ベリファイ動作と、前記第1ベリファイ電圧と異なる第2ベリファイ電圧を用いて、前記メモリセルが持つ閾値電圧を検証する第2ベリファイ動作とを有する請求項1に記載のメモリシステム。 - 前記第2ベリファイ動作は、複数の前記第2ベリファイ電圧を用いた複数のベリファイ動作を有する請求項2に記載のメモリシステム。
- 前記書き込みパラメータの検証結果は、前記メモリセルを含む1個以上のメモリセルのうち、閾値個数以上のメモリセルが持つ閾値電圧が前記第2ベリファイ電圧に達しているか否かの情報を有する請求項2または3に記載のメモリシステム。
- 前記第2ベリファイ動作は、前記書き込み動作における最初のプログラムベリファイ動作で行われる請求項2乃至4のいずれかに記載のメモリシステム。
- 前記第1ベリファイ動作は、前記メモリセルが持つ閾値電圧が前記第1ベリファイ電圧に達しているか否かを検証し、
前記書き込み動作は、前記メモリセルが持つ閾値電圧が前記第1ベリファイ電圧に達していないとき、前記プログラム動作と前記プログラムベリファイ動作とを繰り返す請求項2乃至5のいずれかに記載のメモリシステム。 - 前記コントローラは、前記書き込みパラメータの前記検証結果に基づいて前記メモリセルにオーバープログラムが発生しているかを判定し、
前記オーバープログラムが発生していると判定したとき、オーバープログラムが発生したメモリセルに書き込まれるべきデータを取得し、前記不揮発性半導体メモリに前記取得したデータを書き込む回復処理を行う請求項1乃至6のいずれかに記載のメモリシステム。 - 前記メモリセルが持つ閾値電圧が前記第1ベリファイ電圧に達したとき、前記第2ベリファイ動作が行われる請求項2に記載のメモリシステム。
- 前記第2ベリファイ電圧は前記第1ベリファイ電圧より低く、
前記メモリセルが持つ閾値電圧が前記第2ベリファイ電圧に達したとき、前記第1ベリファイ動作が行われる請求項2に記載のメモリシステム。 - 前記書き込みパラメータの検証結果は、前記メモリセルが持つ閾値電圧が前記第1ベリファイ電圧に達するまでのプログラム動作とプログラムベリファイ動作を含むループの繰り返し回数と、前記メモリセルが持つ閾値電圧が前記第2ベリファイ電圧に達しているか否かの情報を有する請求項8に記載のメモリシステム。
- 前記第2ベリファイ動作は、前記メモリセルに対する書き込み動作と消去が所定回数に達したときに行われる請求項2乃至6、8、9のいずれかに記載のメモリシステム。
- 前記不揮発性半導体メモリは、前記メモリセルを含む複数のメモリセルを有するグループを備え、前記書き込みパラメータは、前記書き込み動作において前記グループに対して共通に用いられる請求項1乃至11のいずれかに記載のメモリシステム。
- 前記書き込みパラメータは、前記コントローラが前記メモリから読み出した第1値、または前記第1値から算出した第2値である請求項1乃至12のいずれかに記載のメモリシステム。
- 前記書き込み動作は、プログラム動作とプログラムベリファイ動作とを含むループを繰り返し、前記メモリセルが持つ閾値電圧が前記第1ベリファイ電圧に達していないとき、次回のループのプログラム動作で、前記書き込み電圧を第1電圧分増加して書き込みを行うステップアップ書き込みを含む請求項2に記載のメモリシステム。
- メモリセルと、
前記メモリセルに対する書き込み動作で用いる書き込みパラメータを保持する第1レジスタと、
前記書き込み動作で得られた前記書き込みパラメータの検証結果を格納する第2レジスタと、
を具備し、
前記書き込み動作は、プログラム動作とプログラムベリファイ動作とを含み、
前記プログラム動作は、前記メモリセルに対し前記書き込みパラメータを用いて書き込みデータを書き込む動作であり、
前記プログラムベリファイ動作は、前記書き込みデータに対応した第1ベリファイ電圧を用いて、前記メモリセルが持つ閾値電圧を検証する第1ベリファイ動作と、前記第1ベリファイ電圧と異なる第2ベリファイ電圧を用いて、前記メモリセルが持つ閾値電圧を検証する第2ベリファイ動作とを有するメモリシステム。 - メモリセルを含む不揮発性半導体メモリと、
前記メモリセルに対する書き込み動作で用いる書き込みパラメータを記憶するテーブルを有するコントローラと、
を具備し、
前記コントローラは、前記不揮発性半導体メモリに前記メモリセルに対する前記書き込みパラメータを用いた前記書き込み動作を指示し、前記書き込み動作から得られる前記書き込みパラメータの検証結果を前記不揮発性半導体メモリから受け取り、
前記コントローラは、前記書き込みパラメータの前記検証結果に基づいて前記メモリセルにオーバープログラムが発生しているかを判定し、
前記オーバープログラムが発生していると判定したとき、オーバープログラムが発生したメモリセルに書き込まれるべきデータを取得し、前記不揮発性半導体メモリに前記取得したデータを書き込む回復処理を行うメモリシステム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018128320A JP2020009511A (ja) | 2018-07-05 | 2018-07-05 | メモリシステム及び不揮発性半導体メモリ |
US16/435,694 US10978165B2 (en) | 2018-07-05 | 2019-06-10 | Memory system and non-volatile semiconductor memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018128320A JP2020009511A (ja) | 2018-07-05 | 2018-07-05 | メモリシステム及び不揮発性半導体メモリ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2020009511A true JP2020009511A (ja) | 2020-01-16 |
Family
ID=69101546
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018128320A Pending JP2020009511A (ja) | 2018-07-05 | 2018-07-05 | メモリシステム及び不揮発性半導体メモリ |
Country Status (2)
Country | Link |
---|---|
US (1) | US10978165B2 (ja) |
JP (1) | JP2020009511A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12046291B2 (en) | 2022-03-22 | 2024-07-23 | Kioxia Corporation | Semiconductor memory device |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102743813B1 (ko) * | 2019-06-25 | 2024-12-18 | 에스케이하이닉스 주식회사 | 메모리 장치 및 이의 동작 방법 |
JP2022036654A (ja) | 2020-08-24 | 2022-03-08 | キオクシア株式会社 | メモリデバイス及びメモリシステム |
KR20220067282A (ko) * | 2020-11-17 | 2022-05-24 | 삼성전자주식회사 | 스토리지 장치, 스토리지 장치를 포함하는 서버 장치 및 스토리지 장치의 구동 방법 |
US11749346B2 (en) * | 2021-05-19 | 2023-09-05 | Micron Technology, Inc. | Overwrite mode in memory programming operations |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1055691A (ja) | 1996-08-08 | 1998-02-24 | Ricoh Co Ltd | 不揮発性半導体メモリ |
JP3850791B2 (ja) | 2001-12-20 | 2006-11-29 | 株式会社東芝 | 不揮発性半導体記憶装置 |
US6907497B2 (en) | 2001-12-20 | 2005-06-14 | Kabushiki Kaisha Toshiba | Non-volatile semiconductor memory device |
KR100525910B1 (ko) * | 2003-03-31 | 2005-11-02 | 주식회사 하이닉스반도체 | 플래시 메모리 셀의 프로그램 방법 및 이를 이용한 낸드플래시 메모리의 프로그램 방법 |
US7239557B2 (en) | 2005-06-17 | 2007-07-03 | Micron Technology, Inc. | Program method with optimized voltage level for flash memory |
US8085586B2 (en) * | 2007-12-27 | 2011-12-27 | Anobit Technologies Ltd. | Wear level estimation in analog memory cells |
US10224107B1 (en) * | 2017-09-29 | 2019-03-05 | Intel Corporation | Method and apparatus for dynamically determining start program voltages for a memory device |
-
2018
- 2018-07-05 JP JP2018128320A patent/JP2020009511A/ja active Pending
-
2019
- 2019-06-10 US US16/435,694 patent/US10978165B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12046291B2 (en) | 2022-03-22 | 2024-07-23 | Kioxia Corporation | Semiconductor memory device |
Also Published As
Publication number | Publication date |
---|---|
US20200013470A1 (en) | 2020-01-09 |
US10978165B2 (en) | 2021-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230282276A1 (en) | Semiconductor memory device and memory system | |
JP6293964B1 (ja) | メモリシステム | |
CN107818809B (zh) | 半导体存储装置及存储器系统 | |
US10643715B2 (en) | Semiconductor memory device and memory system configured to perform tracking read on first memory cells followed by shift read on second memory cells using read voltage correction value determined during the tracking read | |
US10978157B2 (en) | Memory system having semiconductor memory device that performs verify operations using various verify voltages | |
US9576665B2 (en) | Semiconductor memory device and memory system | |
US20200327948A1 (en) | Semiconductor memory device and memory system | |
JP2020009511A (ja) | メモリシステム及び不揮発性半導体メモリ | |
US10860251B2 (en) | Semiconductor memory device | |
JP2019164865A (ja) | メモリシステム | |
JP2019169205A (ja) | メモリシステム | |
JP6293692B2 (ja) | メモリシステム | |
CN109524043B (zh) | 半导体存储装置 | |
JP2019160379A (ja) | 半導体記憶装置及びメモリシステム | |
JP2022146645A (ja) | 半導体装置、メモリシステム及び半導体記憶装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20180831 |