JP2022020957A - メモリシステム及び半導体記憶装置 - Google Patents
メモリシステム及び半導体記憶装置 Download PDFInfo
- Publication number
- JP2022020957A JP2022020957A JP2020124259A JP2020124259A JP2022020957A JP 2022020957 A JP2022020957 A JP 2022020957A JP 2020124259 A JP2020124259 A JP 2020124259A JP 2020124259 A JP2020124259 A JP 2020124259A JP 2022020957 A JP2022020957 A JP 2022020957A
- Authority
- JP
- Japan
- Prior art keywords
- erasing
- memory
- read
- voltage
- memory cell
- 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
- 238000003860 storage Methods 0.000 title claims abstract description 303
- 239000004065 semiconductor Substances 0.000 title claims abstract description 300
- 238000000034 method Methods 0.000 claims description 126
- 230000008569 process Effects 0.000 claims description 112
- 239000000758 substrate Substances 0.000 claims description 3
- 210000004027 cell Anatomy 0.000 description 325
- 238000010586 diagram Methods 0.000 description 55
- 230000004044 response Effects 0.000 description 47
- 238000012937 correction Methods 0.000 description 27
- 102100034033 Alpha-adducin Human genes 0.000 description 24
- 101000799076 Homo sapiens Alpha-adducin Proteins 0.000 description 24
- 101000629598 Rattus norvegicus Sterol regulatory element-binding protein 1 Proteins 0.000 description 24
- 101100322582 Streptomyces coelicolor (strain ATCC BAA-471 / A3(2) / M145) add1 gene Proteins 0.000 description 24
- 238000009826 distribution Methods 0.000 description 20
- 238000005259 measurement Methods 0.000 description 14
- 230000007704 transition Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 9
- 238000012795 verification Methods 0.000 description 9
- 230000000694 effects Effects 0.000 description 8
- 210000003967 CLP Anatomy 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 239000002184 metal Substances 0.000 description 6
- 102220198146 rs1057519886 Human genes 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 101100034367 Homo sapiens RILPL2 gene Proteins 0.000 description 5
- 102100033758 RILP-like protein 2 Human genes 0.000 description 5
- 239000004020 conductor Substances 0.000 description 5
- 101150086583 rlp2 gene Proteins 0.000 description 5
- 230000000052 comparative effect Effects 0.000 description 4
- 238000009792 diffusion process Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 101150038575 clpS gene Proteins 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 239000012535 impurity Substances 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 208000011580 syndromic disease Diseases 0.000 description 2
- 101100481702 Arabidopsis thaliana TMK1 gene Proteins 0.000 description 1
- 101100481704 Arabidopsis thaliana TMK3 gene Proteins 0.000 description 1
- 101000578349 Homo sapiens Nucleolar MIF4G domain-containing protein 1 Proteins 0.000 description 1
- 102100027969 Nucleolar MIF4G domain-containing protein 1 Human genes 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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/10—Programming or data input circuits
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
- G11C16/16—Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
-
- 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/3409—Circuits or methods to recover overerased nonvolatile memory cells detected during erase verification, usually by means of a "soft" programming step
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/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
- G11C11/5635—Erasing 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/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/5642—Sensing or reading circuits; Data output 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/10—Programming or data input circuits
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching 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/3436—Arrangements for verifying correct programming or erasure
- G11C16/344—Arrangements for verifying correct erasure or for detecting overerased cells
- G11C16/3445—Circuits or methods to verify correct erasure of nonvolatile memory 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/3436—Arrangements for verifying correct programming or erasure
- G11C16/3468—Prevention of overerasure or overprogramming, e.g. by verifying whilst erasing or writing
- G11C16/3477—Circuits or methods to prevent overerasing of nonvolatile memory cells, e.g. by detecting onset or cessation of current flow in cells and using the detector output to terminate erasing
-
- 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
-
- H—ELECTRICITY
- H10—SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
- H10B—ELECTRONIC MEMORY DEVICES
- H10B41/00—Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates
- H10B41/20—Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates characterised by three-dimensional arrangements, e.g. with cells on different height levels
- H10B41/23—Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates 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
- H10B41/27—Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates 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
-
- 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)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Read Only Memory (AREA)
- Static Random-Access Memory (AREA)
- Memory System (AREA)
Abstract
【課題】消去動作の性能を向上させることができるメモリシステム及び半導体記憶装置を提供する。【解決手段】実施形態のメモリシステムは、データを記憶可能なメモリセルを含む半導体記憶装置10と、前記メモリセルに対する消去動作で用いるパラメータ、及び前記消去動作を命ずるコマンドを出力するメモリコントローラ20とを具備し、メモリコントローラ20は、半導体記憶装置10に、前記パラメータを出力した後、前記コマンドを出力する。【選択図】図9
Description
実施形態は、メモリシステム及び半導体記憶装置に関する。
不揮発性の半導体記憶装置として、例えば、メモリセルが二次元あるいは三次元に配列されたNAND型フラッシュメモリが知られている。NAND型フラッシュメモリと、NAND型フラッシュメモリを制御するコントローラとにより、メモリシステムが構成されている。
消去動作の性能を向上させることができるメモリシステム及び半導体記憶装置を提供する。
実施形態のメモリシステムは、データを記憶可能なメモリセルを含む半導体記憶装置と、前記メモリセルに対する消去動作で用いるパラメータ、及び前記消去動作を命ずるコマンドを出力するコントローラとを具備し、前記コントローラは、前記半導体記憶装置に、前記パラメータを出力した後、前記コマンドを出力する。
以下、図面を参照して実施形態について説明する。なお、以下の説明において、同一の機能及び構成を有する構成要素については、共通する参照符号を付す。また、以下に示す各実施形態は、この実施形態の技術的思想を具体化するための装置や方法を例示するものであって、構成部品の材質、形状、構造、配置等を下記のものに特定するものではない。
各機能ブロックは、ハードウェア、コンピュータソフトウェアのいずれかまたは両者を組み合わせたものとして実現することができる。各機能ブロックが以下の例のように区別されていることは必須ではない。例えば、一部の機能が例示の機能ブロックとは別の機能ブロックによって実行されてもよい。さらに、例示の機能ブロックがさらに細かい機能サブブロックに分割されていてもよい。ここでは、メモリシステムが含む半導体記憶装置として、メモリセルトランジスタが半導体基板の上方に積層された三次元積層型のNAND型フラッシュメモリを例に取り説明する。
1.第1実施形態
以下に、第1実施形態のメモリシステムについて説明する。
以下に、第1実施形態のメモリシステムについて説明する。
1.1 構成
1.1.1 メモリシステムの構成
まず、図1を用いて、第1実施形態のメモリシステムの構成について説明する。図1は、第1実施形態のメモリシステムの構成を示すブロック図である。メモリシステム1は、半導体記憶装置10、メモリコントローラ20、及びバッファメモリ30を備える。メモリシステム1は、外部のホスト装置2に接続され、ホスト装置2からの命令に応じて各種動作を実行し得る。
1.1.1 メモリシステムの構成
まず、図1を用いて、第1実施形態のメモリシステムの構成について説明する。図1は、第1実施形態のメモリシステムの構成を示すブロック図である。メモリシステム1は、半導体記憶装置10、メモリコントローラ20、及びバッファメモリ30を備える。メモリシステム1は、外部のホスト装置2に接続され、ホスト装置2からの命令に応じて各種動作を実行し得る。
半導体記憶装置10は、1つまたは複数のメモリチップ10_0、10_1、10_2、…、10_n(nは0以上の自然数)を含む。メモリチップ10_nは、複数のメモリセルを備え、データを不揮発に記憶する。半導体記憶装置10の詳細については後述する。
メモリコントローラ20は、NANDバスを介して半導体記憶装置10に接続される。NANDバスは、NANDインターフェースに従った信号の送受信を行う。メモリコントローラ20は、また、ホストバスを介してホスト装置2に接続される。メモリコントローラ20は、半導体記憶装置10を制御する。メモリコントローラ20は、また、ホスト装置2から受信した命令に応答して、半導体記憶装置10にアクセスする。
バッファメモリ30は、半導体記憶装置10及びホスト装置2との間で送受信する書き込みデータや読み出しデータを一時的に保持する。バッファメモリ30は、例えば、DRAM(dynamic random access memory)やSRAM(static random access memory)等から構成される。
半導体記憶装置10とメモリコントローラ20は、例えば、それらの組み合わせにより一つの半導体装置を構成してもよく、その例としてはSDTMカードを含むメモリカードや、SSD(solid state drive)等が挙げられる。また、メモリコントローラ20は、例えば、SoC(system-on-a-chip)等であってもよい。
ホスト装置2は、例えば、デジタルカメラやパーソナルコンピュータ等であり、ホストバスは、例えばSDTMインターフェースに従ったバスである。
1.1.2 メモリコントローラ20の構成
引き続き図1を用いて、メモリコントローラ20の構成について説明する。メモリコントローラ20は、CPU(central processing unit)(または、プロセッサ)21、メモリ22、ホストインターフェース(ホストI/F)23、ECC(error checking and correcting)回路24、NANDインターフェース(NAND I/F)25、及びRAMインターフェース(RAM I/F)26を備える。
引き続き図1を用いて、メモリコントローラ20の構成について説明する。メモリコントローラ20は、CPU(central processing unit)(または、プロセッサ)21、メモリ22、ホストインターフェース(ホストI/F)23、ECC(error checking and correcting)回路24、NANDインターフェース(NAND I/F)25、及びRAMインターフェース(RAM I/F)26を備える。
CPU21は、メモリコントローラ20全体の動作を制御する。例えば、CPU21は、ホスト装置2から書き込み命令を受信した際には、それに応答して、NANDインターフェース25に対して書き込み命令を発行する。読み出し及び消去の際も同様である。また、CPU21は、ウェアレベリング等、半導体記憶装置10を管理するための様々な処理を実行する。なお、以下で説明するメモリコントローラ20の動作は、CPU21がソフトウェア(または、ファームウェア)を実行することによって実現されてもよいし、またはハードウェアで実現されてもよい。
メモリ22は、例えば、DRAMやSRAM等の半導体メモリであり、CPU21の作業領域として使用される。メモリ22は、各種の情報を記憶するバッファ22A、半導体記憶装置10を管理するためのファームウェア、及び各種の管理テーブル22B等を保持する。バッファ22Aは、例えば、消去動作後、あるいは消去動作後の書き込み動作後におけるメモリセルの消去結果に関する情報、すなわち、消去動作後あるいは書き込み動作後における消去対象のメモリセル群(例えば、ブロック)の消去状態を示す情報を記憶する。管理テーブル22Bは、例えば、ブロック毎に対応付けられた消去電圧VERAのパラメータを含む。パラメータは、例えば、消去電圧VERAのパルス時間あるいは初期電圧値である。管理テーブル22Bは、後述する管理テーブル22B_1、22B_2、及び22B_3を有する。
ホストインターフェース23は、ホストバスを介してホスト装置2と接続され、ホスト装置2との通信を司る。ホストインターフェース23は、ホスト装置2から受信した命令及びデータを、それぞれCPU21、メモリ22、及びバッファメモリ30に転送する。また、ホストインターフェース23は、CPU21からの命令に応答して、バッファメモリ30内のデータをホスト装置2へ転送する。
ECC回路24は、データのエラー訂正処理を実行する。書き込み動作時においてECC回路24は、ホスト装置2から受信した書き込みデータに基づいてパリティを生成し、生成したパリティを書き込みデータに付与する。読み出し動作時においてECC回路24は、半導体記憶装置10から受信した読み出しデータに基づいてシンドロームを生成し、生成したシンドロームに基づいて読み出しデータのエラーを検出及び訂正する。
NANDインターフェース25は、NANDバスを介して半導体記憶装置10と接続され、半導体記憶装置10との通信を司る。NANDインターフェース25は、CPU21から受信した命令に基づき、種々の信号を半導体記憶装置10へ送信し、また種々の信号を半導体記憶装置10から受信する。
1.1.3 半導体記憶装置10の構成
次に、半導体記憶装置10の構成について説明する。図1に示すように、半導体記憶装置10は、複数のメモリチップ10_nを有する。メモリチップ10_nは、例えば、データを不揮発に記憶可能なNAND型フラッシュメモリを含む。
次に、半導体記憶装置10の構成について説明する。図1に示すように、半導体記憶装置10は、複数のメモリチップ10_nを有する。メモリチップ10_nは、例えば、データを不揮発に記憶可能なNAND型フラッシュメモリを含む。
1.1.3.1 メモリチップの構成
図2を用いて、メモリチップ10_nの構成について説明する。図2は、半導体記憶装置10内のメモリチップ10_nの構成を示すブロック図である。メモリチップ10_nは、メモリセルアレイ11、入出力回路12、ロジック制御回路13、レディ/ビジー回路14、レジスタ群15、シーケンサ(または、制御回路)16、電圧生成回路17、ドライバ18、ロウデコーダモジュール19、カラムデコーダ31、及びセンスアンプモジュール32を備える。レジスタ群15は、ステータスレジスタ15A、アドレスレジスタ15B、コマンドレジスタ15C、及びレジスタ15Dを含む。
図2を用いて、メモリチップ10_nの構成について説明する。図2は、半導体記憶装置10内のメモリチップ10_nの構成を示すブロック図である。メモリチップ10_nは、メモリセルアレイ11、入出力回路12、ロジック制御回路13、レディ/ビジー回路14、レジスタ群15、シーケンサ(または、制御回路)16、電圧生成回路17、ドライバ18、ロウデコーダモジュール19、カラムデコーダ31、及びセンスアンプモジュール32を備える。レジスタ群15は、ステータスレジスタ15A、アドレスレジスタ15B、コマンドレジスタ15C、及びレジスタ15Dを含む。
メモリセルアレイ11は、1つまたは複数のブロックBLK0,BLK1,BLK2,…,BLKm(mは0以上の整数)を備える。複数のブロックBLK0~BLKmの各々は、ロウ及びカラムに対応付けられた複数のメモリセルトランジスタ(以下、メモリセルとも記す)を含む。メモリセルトランジスタは、電気的に消去およびプログラム可能な不揮発性メモリセルである。メモリセルアレイ11は、メモリセルトランジスタに電圧を印加するための、複数のワード線、複数のビット線、及びソース線を含む。以降、ブロックBLKr(rは0以上m以下の整数である)と記した場合、ブロックBLK0~BLKmの各々を示すものとする。ブロックBLKrの具体的な構成については後述する。
入出力回路12及びロジック制御回路13は、入出力端子(または、NANDバス)を介してメモリコントローラ20に接続される。入出力回路12は、メモリコントローラ20との間で入出力端子を介して、I/O信号DQ(例えば、DQ0、DQ1、DQ2、…、DQ7)を送受信する。I/O信号DQは、コマンド、アドレス、及びデータ等を通信する。
ロジック制御回路13は、メモリコントローラ20から入出力端子(または、NANDバス)を介して、外部制御信号を受信する。外部制御信号は、例えば、チップイネーブル信号CEn、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、書き込みイネーブル信号WEn、読み出しイネーブル信号REn、及びライトプロテクト信号WPnを含む。信号名に付記された“n”は、その信号がアクティブ・ローであることを示す。
チップイネーブル信号CEnは、メモリチップ10_nの選択を可能にし、当該メモリチップ10_nを選択する際にアサートされる。コマンドラッチイネーブル信号CLEは、信号DQとして送信されるコマンドをコマンドレジスタ15Cにラッチすることを可能にする。アドレスラッチイネーブル信号ALEは、信号DQとして送信されるアドレスをアドレスレジスタ15Bにラッチすることを可能にする。書き込みイネーブル信号WEnは、信号DQとして送信されるデータを入出力回路12に保持することを可能にする。読み出しイネーブル信号REnは、メモリセルアレイ11から読み出したデータを、信号DQとして出力することを可能にする。ライトプロテクト信号WPnは、メモリチップ10_nに対する書き込み及び消去を禁止する際にアサートされる。
レディ/ビジー回路14は、シーケンサ16からの制御に応じて、レディ/ビジー信号R/Bnを生成する。レディ/ビジー信号R/Bnは、メモリチップ10_nがレディ状態であるか、ビジー状態であるかを示す。レディ状態は、メモリコントローラ20からの命令を受け付けることが可能な状態であることを示す。ビジー状態は、メモリコントローラ20からの命令を受け付けることができない状態であることを示す。メモリコントローラ20は、メモリチップ10_nからレディ/ビジー信号R/Bnを受けることで、メモリチップ10_nがレディ状態であるか、あるいはビジー状態であるかを知ることができる。
ステータスレジスタ15Aは、メモリチップ10_nの動作に必要なステータス情報STSを保持し、このステータス情報STSをシーケンサ16の指示に基づいて入出力回路12に転送する。アドレスレジスタ15Bは、入出力回路12から転送されたアドレスADDを保持する。アドレスADDは、ロウアドレス及びカラムアドレスを含む。ロウアドレスは、例えば、動作対象のブロックBLKrを指定するブロックアドレス、及び指定されたブロック内の動作対象のワード線WLを指定するページアドレスを含む。コマンドレジスタ15Cは、入出力回路12から転送されたコマンドCMDを保持する。コマンドCMDは、例えば、シーケンサ16に書き込み動作を命ずる書き込みコマンド、及び読み出し動作を命ずる読み出しコマンドなどを含む。レジスタ15Dは、メモリコントローラ20から送信され、入出力回路12により転送された消去電圧VERAのパラメータ(例えば、パルス時間あるいは初期電圧値)を保持する。レジスタ15Dは、後述するレジスタ15D_1、15D_2を有する。ステータスレジスタ15A、アドレスレジスタ15B、コマンドレジスタ15C、及びレジスタ15Dには、例えばSRAMを用いる。
シーケンサ16は、コマンドレジスタ15Cからコマンドを受け、このコマンドに基づくシーケンスに従ってメモリチップ10_nを統括的に制御する。シーケンサ16は、ロウデコーダモジュール19、カラムデコーダ31、センスアンプモジュール32、及び電圧生成回路17などを制御して、書き込み動作、読み出し動作、及び消去動作を実行する。具体的には、シーケンサ16は、コマンドレジスタ15Cから受信した書き込みコマンドに基づいて、ロウデコーダモジュール19、ドライバ18、及びセンスアンプモジュール32を制御して、アドレスADDにて指定された複数のメモリセルトランジスタにデータを書き込む。シーケンサ16は、またコマンドレジスタ15Cから受信した読み出しコマンドに基づいて、ロウデコーダモジュール19、ドライバ18、カラムデコーダ31、及びセンスアンプモジュール32を制御して、アドレスADDにて指定された複数のメモリセルトランジスタからデータを読み出す。シーケンサ16は、またコマンドレジスタ15Cから受信した消去コマンドに基づいて、ロウデコーダモジュール19、ドライバ18、カラムデコーダ31、及びセンスアンプモジュール32を制御して、アドレスADDにて指定されたブロックに記憶されたデータを消去する。
電圧生成回路17は、メモリチップ10_nの外部から図示しない電源端子を介して電源電圧を受ける。この電源電圧を用いて、書き込み動作、読み出し動作、及び消去動作に必要な複数の電圧を生成する。電圧生成回路17は、生成した電圧を、メモリセルアレイ11、ドライバ18、及びセンスアンプモジュール32などに供給する。
ドライバ18は、電圧生成回路17から複数の電圧を受ける。ドライバ18は、電圧生成回路17から供給された複数の電圧のうち、読み出し動作、書き込み動作、及び消去動作に応じて選択した複数の電圧を、複数の信号線を介してロウデコーダモジュール19に供給する。ドライバ18は、例えば、消去動作時に消去電圧VERAを、後述するウェル配線CPWELLに供給する。
ロウデコーダモジュール19は、アドレスレジスタ15Bからロウアドレスを受け、このロウアドレスをデコードする。ロウデコーダモジュール19は、ロウアドレスのデコード結果に基づいて、複数のブロックのいずれかを選択し、さらに選択したブロックBLKr内のワード線WLを選択する。さらに、ロウデコーダモジュール19は、選択されたブロックBLKrに、ドライバ18から供給された複数の電圧を転送する。
カラムデコーダ31は、アドレスレジスタ15Bからカラムアドレスを受け、このカラムアドレスをデコードする。カラムデコーダ31は、カラムアドレスのデコード結果に基づいて、ビット線を選択する。
センスアンプモジュール32は、データの読み出し動作時には、メモリセルトランジスタからビット線に読み出されたデータを検知及び増幅する。さらに、センスアンプモジュール32は、メモリセルトランジスタから読み出された読み出しデータDATを一時的に保持し、保持した読み出しデータDATを入出力回路12へ転送する。また、センスアンプモジュール32は、データの書き込み動作時には、入出力回路12から転送された書き込みデータDATを一時的に保持する。さらに、センスアンプモジュール32は、書き込みデータDATをビット線に転送する。
1.1.3.2 ブロックの構成
次に、図3を用いて、メモリチップ10_n内のメモリセルアレイ11の回路構成について説明する。メモリセルアレイ11は、前述したように、複数のブロックBLK0~BLKmを有する。ここでは、1つのブロックBLKrの回路構成を説明するが、その他のブロックの回路構成も同様である。
次に、図3を用いて、メモリチップ10_n内のメモリセルアレイ11の回路構成について説明する。メモリセルアレイ11は、前述したように、複数のブロックBLK0~BLKmを有する。ここでは、1つのブロックBLKrの回路構成を説明するが、その他のブロックの回路構成も同様である。
図3は、メモリセルアレイ11内のブロックBLKrの回路図である。ブロックBLKrは、例えば、複数のストリングユニットSU0、SU1、SU2、SU3を備える。以降、ストリングユニットSUと記した場合、ストリングユニットSU0~SU3の各々を示すものとする。ストリングユニットSU0~SU3の各々は、複数のNANDストリング(または、メモリストリング)NSを備える。
NANDストリングNSは、複数のメモリセルトランジスタMT0,MT1,MT2,…,MT7、及びセレクトトランジスタST1,ST2を含む。ここでは、説明を平易にするために、NANDストリングNSが8個のメモリセルトランジスタMT0~MT7、及び2個のセレクトトランジスタST1,ST2を備える例を示す。以降、メモリセルトランジスタMTと記した場合、メモリセルトランジスタMT0~MT7の各々を示すものとする。
メモリセルトランジスタMT0~MT7の各々は、制御ゲートと電荷蓄積層とを備え、データを不揮発に記憶する。メモリセルトランジスタMT0~MT7は、セレクトトランジスタST1のソースとセレクトトランジスタST2のドレインとの間に直列に接続される。
メモリセルトランジスタMTは、1ビットのデータ、または2ビット以上のデータを記憶することが可能である。
ストリングユニットSU0に含まれる複数のセレクトトランジスタST1のゲートは、セレクトゲート線SGD0に接続される。同様に、ストリングユニットSU1~SU3の各々のセレクトトランジスタST1のゲートは、セレクトゲート線SGD1~SGD3にそれぞれ接続される。セレクトゲート線SGD0~SGD3の各々は、ロウデコーダモジュール19によって独立に制御される。
ストリングユニットSU0に含まれる複数のセレクトトランジスタST2のゲートは、セレクトゲート線SGSに接続される。同様に、ストリングユニットSU1~SU3の各々のセレクトトランジスタST2のゲートは、セレクトゲート線SGSに接続される。なお、ストリングユニットSU0~SU3のセレクトトランジスタST2のゲートには、個別のセレクトゲート線SGSがそれぞれ接続される場合もある。セレクトトランジスタST1及びST2は、各種動作におけるストリングユニットSUの選択に使用される。
ブロックBLKrに含まれるメモリセルトランジスタMT0~MT7の制御ゲートは、ワード線WL0~WL7にそれぞれ接続される。ワード線WL0~WL7の各々は、ロウデコーダモジュール19によって独立に制御される。
ビット線BL0~BLi(iは0以上の整数)の各々は、複数のブロックBLK0~BLKmに接続され、ブロックBLKrに含まれるストリングユニットSU内にある1つのNANDストリングNSに接続される。すなわち、ビット線BL0~BLiの各々は、ブロックBLKr内でマトリクス状に配置されたNANDストリングNSのうち、同一列にある複数のNANDストリングNSのセレクトトランジスタST1のドレインに接続される。また、ソース線SLは、複数のブロックBLK0~BLKmに接続される。すなわち、ソース線SLは、ブロックBLKrに含まれる複数のセレクトトランジスタST2のソースに接続される。
要するに、ストリングユニットSUは、異なるビット線BLに接続され、かつ同一のセレクトゲート線SGDに接続されたNANDストリングNSを複数含む。また、ブロックBLKrは、ワード線WLを共通にする複数のストリングユニットSUを含む。さらに、メモリセルアレイ11は、ビット線BLを共通にする複数のブロックBLK0~BLKmを含む。
ブロックBLKrは、例えば、データの消去単位である。すなわち、ブロックBLKr内に含まれるメモリセルトランジスタMTの保持するデータは、一括して消去される。なお、データは、ストリングユニットSU単位で消去されてもよいし、また、ストリングユニットSU未満の単位で消去されてもよい。
1つのストリングユニットSU内でワード線WLを共有する複数のメモリセルトランジスタMTを、セルユニットCUと呼ぶ。セルユニットCUに含まれる複数のメモリセルトランジスタMTがそれぞれ記憶する1ビットのデータの集まりをページと呼ぶ。セルユニットCUは、メモリセルトランジスタMTが記憶するデータのビット数に応じて記憶容量が変化する。例えば、セルユニットCUは、各メモリセルトランジスタMTが1ビットデータを記憶する場合に1ページデータを記憶し、2ビットデータを記憶する場合に2ページデータを、3ビットデータを記憶する場合に3ページデータをそれぞれ記憶する。
セルユニットCUに対する書き込み動作及び読み出し動作は、ページを単位として行われる。言い換えると、読み出し及び書き込み動作は、1つのストリングユニットSUに配設された1本のワード線WLに接続された複数のメモリセルトランジスタMTに対して、一括して行われる。
なお、ブロックBLKrが備えるストリングユニットの数は、SU0~SU3に限るわけではなく、任意に設定可能である。また、ストリングユニットSUに含まれるNANDストリングNSの数、及びNANDストリングNSが備えるメモリセルトランジスタ、及びセレクトトランジスタの数も、任意に設定可能である。さらに、メモリセルトランジスタMTは、電荷蓄積層として絶縁膜を用いたMONOS(metal-oxide-nitride-oxide-silicon)型であってもよいし、電荷蓄積層として導電層を用いたFG(floating gate)型であってもよい。
次に、図4を用いて、ブロックBLKrの断面構造について説明する。図4は、ブロックBLKrの一部領域の断面図である。図示するように、半導体基板40上にp型ウェル領域40Pが設けられる。p型ウェル領域40P上に、複数のNANDストリングNSが設けられる。すなわち、p型ウェル領域40P上には、配線層41、8層の配線層42、及び配線層43が順次積層されている。配線層41はセレクトゲート線SGSとして機能し、配線層42はワード線WL0~WL7として機能し、配線層43はセレクトゲート線SGDとして機能する。積層された配線層間には、図示しない絶縁層が設けられる。
これらの配線層41、42、43を貫通して、p型ウェル領域40Pに達するピラー状の導電体44が設けられる。導電体44の側面には、ゲート絶縁層45、電荷蓄積層(絶縁層)46、及びブロック絶縁層47が順次設けられる。これらによって、メモリセルトランジスタMT、並びにセレクトトランジスタST1及びST2が形成される。導電体44は、NANDストリングNSの電流経路として機能し、各トランジスタのチャネルが形成される領域である。導電体44の上端は、ビア48を介して金属配線層49に接続される。金属配線層49は、ビット線BLとして機能する。
p型ウェル領域40Pの表面領域内には、n+型不純物拡散層40Sが設けられる。拡散層40S上には、コンタクトプラグ50が設けられる。コンタクトプラグ50は、金属配線層51に接続される。金属配線層51は、ソース線SLとして機能する。
さらに、p型ウェル領域40Pの表面領域内には、p+型不純物拡散層40Cが設けられる。拡散層40C上には、コンタクトプラグ52が設けられる。コンタクトプラグ52は、金属配線層53に接続される。金属配線層53は、ウェル配線CPWELLとして機能する。ウェル配線CPWELLは、p型ウェル領域40Pを介して導電体44に電位を印加するための配線である。
以上の構成が、図4を記載した紙面に直交する方向(奥行き方向)に複数配列されており、奥行き方向に並ぶ複数のNANDストリングNSの集合によってストリングユニットSUが構成される。
さらに、メモリセルアレイ11の構成についてはその他の構成であってもよい。すなわち、メモリセルアレイ11の構成は、例えば、“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号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
また、データの消去は、ブロック単位、またはブロックよりも小さい単位で行うことができる。消去方法に関しては、例えば“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 メモリセルトランジスタの閾値電圧分布
次に、本実施形態におけるメモリセルトランジスタMTの取り得る閾値電圧分布とデータの関係について説明する。図5Aは、メモリセルトランジスタMTの取り得る閾値電圧分布とデータの関係を示す図である。ここでは、メモリセルトランジスタMTの記憶方式として、1つのメモリセルトランジスタMTに3ビットのデータを記憶可能なTLC(Triple-Level Cell)方式を適用した例を示す。なお、本実施形態は、1つのメモリセルトランジスタMTに1ビットのデータを記憶可能なSLC(Single-Level Cell)方式、1つのメモリセルトランジスタMTに2ビットのデータを記憶可能なMLC(Multi-Level Cell)方式、1つのメモリセルトランジスタMTに4ビットのデータを記憶可能なQLC(Quad-Level Cell)方式等、その他の記憶方式を用いた場合にも適用できる。
次に、本実施形態におけるメモリセルトランジスタMTの取り得る閾値電圧分布とデータの関係について説明する。図5Aは、メモリセルトランジスタMTの取り得る閾値電圧分布とデータの関係を示す図である。ここでは、メモリセルトランジスタMTの記憶方式として、1つのメモリセルトランジスタMTに3ビットのデータを記憶可能なTLC(Triple-Level Cell)方式を適用した例を示す。なお、本実施形態は、1つのメモリセルトランジスタMTに1ビットのデータを記憶可能なSLC(Single-Level Cell)方式、1つのメモリセルトランジスタMTに2ビットのデータを記憶可能なMLC(Multi-Level Cell)方式、1つのメモリセルトランジスタMTに4ビットのデータを記憶可能なQLC(Quad-Level Cell)方式等、その他の記憶方式を用いた場合にも適用できる。
メモリセルトランジスタMTが記憶可能な3ビットのデータは、下位(lower)ビット、中位(middle)ビット、及び上位(upper)ビットにより規定される。メモリセルトランジスタMTが3ビットを記憶する場合、メモリセルトランジスタMTは、複数の閾値電圧に応じた8つの状態(ステート)のうちのいずれかのステートを取り得る。8つのステートを、低い方から順に、ステート“Er”、“A”、“B”、“C”、“D”、“E”、“F”、“G”と呼ぶ。ステート“Er”、“A”、“B”、“C”、“D”、“E”、“F”、“G”の各々に属する複数のメモリセルトランジスタMTは、図5Aに示すような閾値電圧の分布を形成する。
ステート“Er”、“A”、“B”、“C”、“D”、“E”、“F”、“G”には、例えば、それぞれデータ“111”、“110”、“100”、“000”、“010”、“011”、“001”、“101”が割り当てられる。ビットの並びは、下位ビット“X”、中位ビット“Y”、上位ビット“Z”とすると、“Z、Y、X”である。なお、閾値電圧分布とデータとの割り当ては、任意に設定可能である。
読み出し対象のメモリセルトランジスタMTに記憶されたデータを読み出すために、メモリセルトランジスタMTの閾値電圧が属するステートが判定される。ステートの判定のために、読み出し電圧AR、BR、CR、DR、ER、FR、GRが用いられる。
ステート“Er”は、例えば、データが消去された状態(消去状態)に相当する。ステート“Er”に属するメモリセルトランジスタMTの閾値電圧は、電圧ARより低く、例えば負の値を有する。
ステート“A”~“G”は、電荷蓄積層に電荷が注入されてメモリセルトランジスタMTにデータが書き込まれた状態に相当し、ステート“A”~“G”に属するメモリセルトランジスタMTの閾値電圧は、例えば正の値を有する。ステート“A”に属するメモリセルトランジスタMTの閾値電圧は、読み出し電圧ARより高く、かつ読み出し電圧BR以下である。ステート“B”に属するメモリセルトランジスタMTの閾値電圧は、読み出し電圧BRより高く、かつ読み出し電圧CR以下である。ステート“C”に属するメモリセルトランジスタMTの閾値電圧は、読み出し電圧CRより高く、かつ読み出し電圧DR以下である。ステート“D”に属するメモリセルトランジスタMTの閾値電圧は、読み出し電圧DRより高く、かつ読み出し電圧ER以下である。ステート“E”に属するメモリセルトランジスタMTの閾値電圧は、読み出し電圧ERより高く、かつ読み出し電圧FR以下である。ステート“F”に属するメモリセルトランジスタMTの閾値電圧は、読み出し電圧FRより高く、かつ読み出し電圧GR以下である。ステート“G”に属するメモリセルトランジスタMTの閾値電圧は、読み出し電圧GRより高く、電圧VREADより低い。
電圧VREADは、非読み出し対象のセルユニットCUのメモリセルトランジスタMTに接続されたワード線WLに印加される電圧であり、いずれのステートにあるメモリセルトランジスタMTの閾値電圧よりも高い。このため、制御ゲートに電圧VREADが印加されたメモリセルトランジスタMTは、保持するデータに関わらずオン状態になる。
また、隣り合う閾値分布の間には、それぞれ書き込み動作で使用されるベリファイ電圧が設定される。具体的には、ステート“A”、“B”、“C”、“D”、“E”、“F”、“G”に対応して、それぞれベリファイ電圧AV、BV、CV、DV、EV、FV、GVが設定される。例えば、ベリファイ電圧AV、BV、CV、DV、EV、FV、GVはそれぞれ、読み出し電圧AR、BR、CR、DR、ER、FR、GRより若干高く設定される。
以上のように、各メモリセルトランジスタMTは、8個のステートのいずれかに設定され、3ビットデータを記憶することが可能である。また、書き込み及び読み出しは、1つのセルユニットCU内のページ単位で行われる。メモリセルトランジスタMTが3ビットデータを記憶している場合、1つのセルユニットCU内の3個のページにそれぞれ、下位ビット、中位ビット、及び上位ビットが割当てられる。下位ビット、中位ビット、及び上位ビットについて一回の書き込み動作にて書き込み又は一回の読み出し動作にて読み出されるページ、すなわちセルユニットCUの保持する下位ビットの集合、中位ビットの集合、及び上位ビットの集合は、それぞれ下位(lower)ページ、中位(middle)ページ、及び上位(upper)ページと呼ばれる。
上記データの割り付けが適用された場合、下位ページは、読み出し電圧AR、ERを用いた読み出し動作によって確定する。中位ページは、読み出し電圧BR、DR、FRを用いた読み出し動作によって確定する。上位ページは、読み出し電圧CR、GRを用いた読み出し動作によって確定する。
1.2 動作
以下に、第1実施形態のメモリシステム1における消去動作について説明する。消去動作は、メモリセルを消去状態に設定する動作である。言い換えると、消去動作は、メモリセルトランジスタMTの電荷蓄積層に蓄積されている電子を引き抜き、メモリセルトランジスタMTの閾値電圧を、ステート“Er”の閾値電圧分布内に遷移させる動作である。
以下に、第1実施形態のメモリシステム1における消去動作について説明する。消去動作は、メモリセルを消去状態に設定する動作である。言い換えると、消去動作は、メモリセルトランジスタMTの電荷蓄積層に蓄積されている電子を引き抜き、メモリセルトランジスタMTの閾値電圧を、ステート“Er”の閾値電圧分布内に遷移させる動作である。
図5Bは、消去動作後におけるメモリセルトランジスタMTの閾値電圧分布を示す図である。メモリセルトランジスタMTに対して消去動作を行った場合、ステート“Er”に属するメモリセルトランジスタMTの消去状態は、消去不足状態、または消去適正状態、過消去状態のいずれかの状態に遷移する。
消去不足状態は、例えば、図5Bの(a)に示すように、閾値電圧分布においてステート“Er”がステート“A”の裾に入っている状態であり、メモリセルトランジスタMTの電荷蓄積層に蓄積されている電子の引き抜きが不足している状態である。消去適正状態は、図5Bの(b)に示すように、閾値電圧分布においてステート“Er”とステート“A”との間が適正な距離隔てている状態であり、メモリセルトランジスタMTの電荷蓄積層に蓄積されている電子の量が適正な状態である。過消去状態は、図5Bの(c)に示すように、閾値電圧分布においてステート“Er”とステート“A”との間が適正な距離より大きく隔てている状態であり、メモリセルトランジスタMTの電荷蓄積層に蓄積されている電子の引き抜きが過多な状態である。
消去動作後において、メモリセルトランジスタMTの消去状態は、消去不足状態、または消去適正状態、過消去状態のいずれの状態にある。消去動作後のメモリセルトランジスタMTの消去状態を消去深さと定義する。
メモリセルトランジスタMTが過消去状態になるのを回避することにより、言い換えると、メモリセルトランジスタMTの消去深さが深くなるのを回避することにより、メモリセルに生じるダメージを低減することができる。また、メモリセルトランジスタMTが消去不足状態になるのを回避することにより、言い換えると、メモリセルの消去深さが浅くなるのを回避することにより、ページリードにおけるリードエラーを低減することができる。
1.2.1 メモリシステムの消去動作
半導体記憶装置10に記憶されたデータの消去動作は、メモリコントローラ20から半導体記憶装置10に出力される消去命令により実行される。半導体記憶装置10における消去動作は、前述したように、例えば、ブロック単位、あるいはブロックよりも小さい単位で行うことができる。ここでは、ブロック単位で消去動作を行う場合を例として示す。
半導体記憶装置10に記憶されたデータの消去動作は、メモリコントローラ20から半導体記憶装置10に出力される消去命令により実行される。半導体記憶装置10における消去動作は、前述したように、例えば、ブロック単位、あるいはブロックよりも小さい単位で行うことができる。ここでは、ブロック単位で消去動作を行う場合を例として示す。
以下に、メモリシステム1におけるデータの基本的な消去動作について説明する。図6は、メモリシステム1における基本的な消去動作を示す図である。図6において、メモリコントローラ20からI/O信号DQ0~DQ7にて出力されるコマンドは六角形で表現し、アドレスは角丸四角形(または、長円形)で表現する。
図6に示すように、メモリコントローラ20は、半導体記憶装置10にイレーズセットアップコマンド“60h”を出力し、引き続き、消去対象ブロックのアドレス“ADD”を出力し、その後、イレーズ実行コマンド“D0h”を出力する。シーケンサ16は、コマンドレジスタ15Cにイレーズセットアップコマンド“60hが保持されたことにより、消去命令を受信したことを認識する。さらに、シーケンサ16は、イレーズ実行コマンド“D0h”を受信したことに応答して消去動作を開始する。消去動作は、図6に示すように、データの消去処理及び消去ベリファイ処理を含む。シーケンサ16は、この消去動作の開始と共に、レディ/ビジー信号R/Bnをレディ状態からビジー状態(R/Bn=“L”)に遷移させる。なお、コマンド(または、アドレス)に付記された「h」は、その値が16進数表記であることを示す。
消去処理は、消去対象ブロック内のメモリセルトランジスタMTに記憶されたデータを消去する動作である。詳述すると、消去処理は、ウェル配線CPWELLに消去電圧VERAを印加し、消去対象ブロック内のメモリセルトランジスタMTの電荷蓄積層から電子を引き抜く動作である。印加する消去電圧VERAのパルス時間は、予め定められた値に設定され得る。パルス時間は、消去電圧VERAの電圧レベルが維持される時間であり、パルス幅あるいはパルス長ともいう。消去ベリファイ処理は、消去処理によるメモリセルトランジスタMTに対するデータ消去を検証する動作である。言い換えると、消去ベリファイ処理は、メモリセルトランジスタMTの閾値電圧が消去状態の閾値電圧に遷移したか否かを確認する読み出し動作である。
消去動作は、消去処理と、この消去処理の後に行われる消去ベリファイ処理とで1つの消去ループを構成する。図6の例では、1回目と2回目の消去ループが図示されている。消去ベリファイ処理による検証において、ある値より高い閾値電圧を持つメモリセルトランジスタMTの数が所定数より少ない場合に消去ベリファイにパスしたと判定する。一方で、前記ある値より高い閾値電圧を持つメモリセルトランジスタMTの数が所定数よりも多い場合に消去ベリファイにフェイルしたと判定する。これらの判定が終了すると、シーケンサ16は、消去ベリファイ処理を終了する。以上で説明した消去処理と消去ベリファイ処理の組が、1回の消去ループに対応する。シーケンサ16は、消去ベリファイにフェイルすると、消去ループを繰り返し、消去ベリファイにパスすると、消去動作を終了する。
メモリセルトランジスタMTの電荷蓄積層に注入されている電子は、初回の消去ループで一気に所定数よりも少なくなることはなく、複数回の消去ループを通じて所定数より少なくなる。例えば、図6に示すように、1回目の消去ループにおける消去ベリファイにフェイルした場合、2回目の消去ループを実施する。繰り返される消去ループでの消去処理における、消去電圧VERAの電圧はΔVERAだけ増加した値が設定される。消去ベリファイにパスし、当該消去動作が終了すると、シーケンサ16は、半導体記憶装置10をビジー状態からレディ状態に遷移させる。レディ状態への遷移により、消去処理が終わる。
図7は、消去動作における各信号の電圧波形を示す図である。
先に、時刻t0~t5にて消去処理が実行され、その後、時刻t5~t10にて消去ベリファイ処理が実行される。これらt0~t10までの一連の処理が1回の消去ループに対応する。
以下に、消去処理について述べる。時刻t0にて、ビット線BL、セレクトゲート線SGD及びSGS、ワード線WL、ソース線SELSRC、及びウェル配線CPWELLが電圧VSS(例えば、0V)に設定される。
次に、時刻t1-t3にて、例えば、ドライバ18は、ウェル配線CPWELLに消去電圧VERAを印加する。すると、時刻t1-t3にて、メモリセルトランジスタMTのチャネル領域が消去電圧VERAに昇圧される。さらに、ウェル配線CPWELLに印加された電圧VERAによって生じる容量結合により、ビット線BL、セレクトゲート線SGD及びSGS、消去対象でないブロック(あるいは、非選択ブロック)のワード線WL、及びソース線SELSRCは、電圧VERAに上昇する。なお、セレクトゲート線SGSは、電圧VERAより電圧Δだけ低い電圧に上昇する。
さらに、時刻t1-t3にて、ロウデコーダモジュール19は、消去対象のブロック(あるいは、選択ブロック)のワード線WLに、消去電圧VERAより低い電圧Vwlを印加する。これにより、メモリセルトランジスタMTのチャネル領域の消去電圧VERAと、消去対象ブロックのワード線WLの電圧Vwlとに電位差が生じ、消去対象ブロック内のメモリセルトランジスタMTの電荷蓄積層からチャネル層へ電子が引き抜かれる。すなわち、消去対象ブロック内のメモリセルトランジスタMTのデータが消去される。
その後、時刻t3-t5にて、ビット線BL、セレクトゲート線SGD及びSGS、ワード線WL、ソース線SELSRC、及びウェル配線CPWELLが電圧VSSに設定される。以上により、消去処理が終了する。
次に、時刻t5~t10における消去ベリファイ処理について述べる。
時刻t6にて、ロウデコーダモジュール19は、選択ブロックのセレクトゲート線SGD及びSGSに電圧VSGを印加する。電圧VSGは、セレクトトランジスタST1及びST2をオン状態にさせる電圧である。
次に、時刻t7-t9にて、ロウデコーダモジュール19は、消去対象ブロックのワード線WLに、消去ベリファイ電圧Vevを印加する。さらに、ロウデコーダモジュール19は、消去対象でないブロックのワード線WLに、電圧VREADを印加する。消去ベリファイ電圧Vevは、消去対象ブロック内のメモリセルトランジスタMTの消去状態を判定するための読み出し電圧である。
これにより、センスアンプモジュール32は、ビット線BLに読み出されたデータをセンス及び増幅する。この読み出し結果に従って、シーケンサ16は、消去対象ブロックに対する消去動作が終了したか否か、すなわち消去ベリファイにパスしたか、フェイルしたかを判定する。消去動作が終了していなければ、消去対象ブロックに対して消去処理と消去ベリファイ処理を含む消去動作が繰り返し実行される。
1.2.2 第1実施形態の消去動作
第1実施形態の消去動作では、消去動作後のメモリセルの消去結果に基づいて、あるいは消去動作後の書き込み動作後におけるメモリセルの消去結果に基づいて、消去電圧VERAのパルス時間を調整(または、変更)する。例えば、消去電圧VERAのパルス時間を長くあるいは短くする。メモリセルの消去結果は、消去動作後におけるメモリセルの消去深さの判断結果をさす。言い換えると、メモリセルの消去結果とは、消去動作後にメモリセルが持つ消去不足状態、消去適正状態、過消去状態のいずれかの状態をいう。
第1実施形態の消去動作では、消去動作後のメモリセルの消去結果に基づいて、あるいは消去動作後の書き込み動作後におけるメモリセルの消去結果に基づいて、消去電圧VERAのパルス時間を調整(または、変更)する。例えば、消去電圧VERAのパルス時間を長くあるいは短くする。メモリセルの消去結果は、消去動作後におけるメモリセルの消去深さの判断結果をさす。言い換えると、メモリセルの消去結果とは、消去動作後にメモリセルが持つ消去不足状態、消去適正状態、過消去状態のいずれかの状態をいう。
1.2.2.1 消去動作の第1例
第1例では、消去動作後において、消去対象ブロック内の測定対象のワード線WL及びストリングユニットSUに含まれるメモリセルの消去結果に基づいて、消去電圧VERAのパルス時間を更新する。ここでは、メモリセルの消去結果に基づいて、消去電圧VERAのパルス時間を長くする例を示す。
第1例では、消去動作後において、消去対象ブロック内の測定対象のワード線WL及びストリングユニットSUに含まれるメモリセルの消去結果に基づいて、消去電圧VERAのパルス時間を更新する。ここでは、メモリセルの消去結果に基づいて、消去電圧VERAのパルス時間を長くする例を示す。
図8は、第1実施形態のメモリシステム1における消去動作の第1例を示すフローチャートである。図9は、メモリコントローラ20と半導体記憶装置10間で行われる動作のやり取りを示す図である。図10は、メモリコントローラ20のメモリ22内に設けられるパルス時間管理テーブル22B_1の一例を示す図である。パルス時間管理テーブル22B_1は、消去電圧VERAのパルス時間を管理する。パルス時間管理テーブル22B_1には、ブロックBLKr(rは0以上m以下の整数)に、そのブロックの消去動作に用いるパルス時間PDrが対応付けられている。なお、図8に示す処理は、メモリコントローラ20(あるいは、CPU21)により命令され、制御される。
図8及び図9に示すように、消去動作が開始すると、先ず、メモリコントローラ20は、パルス時間管理テーブル22B_1内の消去対象ブロックBLKrに対応する消去電圧VERAのパルス時間PDrを、半導体記憶装置10に送信し、半導体記憶装置10のレジスタ15D_1に設定する。詳述すると、メモリコントローラ20は、パルス時間管理テーブル22B_1から消去対象ブロックBLKrに対応する消去電圧VERAのパルス時間PDrを取得し、半導体記憶装置10に送信し、レジスタ15D_1に記憶させる(ステップS1)。例えば、消去対象ブロックがブロックBLK0のとき、ブロックBLK0に対応するパルス時間PD0を半導体記憶装置10に送信し、レジスタ15D_1に記憶させる。
次に、メモリコントローラ20は、半導体記憶装置10に消去動作を命令する(ステップS2)。半導体記憶装置10のシーケンサ16は、レジスタ15D_1に記憶された消去電圧VERAのパルス時間PDrを用いて、消去対象ブロックBLKrに対して消去動作を実行する。
次に、メモリコントローラ20は、半導体記憶装置10がレディ状態なった後、消去動作によるメモリセルの消去結果を半導体記憶装置10から取得する。メモリコントローラ20は、半導体記憶装置10から取得したメモリセルの消去結果に基づいて、消去電圧VERAのパルス時間PDrを更新するか否かを判断する(以下、「消去電圧VERAのパルス時間を判断」とも記す)(ステップS3)。例えば、このステップS3の「消去電圧VERAのパルス時間を判断」の処理は、消去動作を行う毎に、または予め設定された書き込み動作/消去動作の実行回数毎に、または書き込み動作/消去動作の実行回数が予め設定された回数に達したときに実行される。ステップS3の「消去電圧VERAのパルス時間を判断」の処理の詳細については後述する。
次に、メモリコントローラ20は、ステップS3の「消去電圧VERAのパルス時間を判断」による判断結果に基づいて、メモリ22のパルス時間管理テーブル22B_1内の消去対象ブロックBLKrに対応するパルス時間PDrを更新する、あるいは更新せず、そのまま維持する(ステップS4)。以上により、消去動作が終了する。
次に、図8に示したフローチャートにおけるステップS3の「消去電圧VERAのパルス時間を判断」(ステップS3)の処理について詳述する。図11Aは、ステップS3の「消去電圧VERAのパルス時間を判断」の処理を示すフローチャートである。図12は、消去動作の第1例における消去深さの判断方法を説明するための閾値電圧分布と判定レベルを示す図である。なお、図11Aに示す処理は、メモリコントローラ20(あるいは、CPU21)により命令され、制御される。
先ず、消去動作後におけるメモリセルの消去深さを判断するための読み出し動作を行う。図11AのステップS11に示すように、メモリコントローラ20は、読み出し電圧を、ステート“A”の読み出し電圧ARに設定し、さらに読み出し電圧ARから低電圧側にシフトさせるシフト値(電圧値)を設定する。ここで、図12に示すように、読み出し電圧ARからシフト値だけシフトさせた読み出し電圧を判定レベルAR2と定義する。判定レベルAR2は、消去動作後におけるメモリセルの消去深さを判断する電圧レベルである。メモリコントローラ20は、読み出し電圧ARからシフト値だけシフトさせた判定レベルAR2を半導体記憶装置10に設定する。なお、メモリセルの消去深さによっては、読み出し電圧ARをそのまま判定レベルAR2として用いてもよいし、読み出し電圧ARから高電圧側にシフトさせて判定レベルAR2として用いてもよい。さらに、メモリコントローラ20は、消去対象ブロック内の測定対象のワード線WL及びストリングユニットSUを指定する(ステップS11)。なお、測定対象のワード線WLは、1本のワード線でもよいし、複数のワード線であってもよし、また、全ワード線であってもよい。
次に、メモリコントローラ20は、半導体記憶装置10にステート“A”の“ワンレベルリード”を命令する(ステップS12)。“ワンレベルリード”は、ステート1つの読み出し電圧に対する閾値電圧の大小を示す読み出しデータを取得する処理である。例えば、TLCの場合であれば、ステート“A”~ステート“G”までのいずれか一つのステートの読み出し電圧を指定する。ここでは、読み出し電圧ARからシフト値だけシフトさせた判定レベルAR2を用いて、読み出し動作が実行される。ステート“A”の“ワンレベルリード”の命令を受けると、半導体記憶装置10のシーケンサ16は、測定対象のメモリセルに対して、設定された判定レベルAR2で読み出し動作を実行する。この読み出し動作では、図12に示すように、閾値電圧が判定レベルAR2より高いメモリセルは、オン状態とならず、オフ状態となる。シーケンサ16は、判定レベルAR2で読み出した結果RA2Rを半導体記憶装置10からメモリコントローラ20に出力する。消去動作後の消去結果として、メモリコントローラ20は、オフ状態のメモリセルの数(以下、オフビット数と記す)“DO1”をカウントする。カウントされたオフビット数は、メモリ22内のバッファ22Aに記憶される。
次に、メモリコントローラ20は、判定レベルAR2での読み出し結果に基づいて、消去動作後のメモリセルの消去深さを判断する(ステップS13)。すなわち、メモリコントローラ20は、判定レベルAR2での読み出し動作によって取得したオフビット数から、消去動作後のメモリセルの消去深さを判断する。詳述すると、メモリコントローラ20は、消去対象ブロックBLKrの消去動作を実行する毎に、もしくは数回の消去動作に1回の割合で、判定レベルAR2での読み出し動作を実行する。消去動作でのAR2の読み出し動作が回数X(例えば、4回)に達すると、メモリコントローラ20は、回数Xのオフビット数の平均値が基準値Y1を超えているか否かを判断する(ステップS14)。オフビット数の平均値が基準値Y1を超えている場合(Yes)、メモリコントローラ20は、消去電圧VERAのパルス時間PDrを所定時間だけ長くする(ステップS15)。一方、オフビット数の平均値が基準値Y1を超えていない場合(No)、メモリコントローラ20は、「消去電圧VERAのパルス時間を判断」の処理を終了する。
なお、ステップS14では、回数Xのオフビット数の平均値と基準値Y1とを比較したが、回数X実行したときの1つあるいは複数のワード線WLにおけるオフビット数の最大値と、基準値Y1とを比較してもよいし、あるいは、回数X実行したときの全ワード線WLにおけるオフビット数の最大値と、基準値Y1とを比較してもよい。
また、メモリセルの書き込み動作/消去動作の回数に応じて、基準値Y1を変更してもよい。図11Bに、書き込み動作/消去動作の回数と基準値Y1との関係の一例を示す。図11Bに示すように、メモリセルの書き込み動作/消去動作の回数が増加するのに従って、基準値Y1を減少させてもよい。より具体的には、書き込み動作/消去動作の回数が所定回数だけ増加する毎に、基準値Y1を段階的に減少させてもよい。メモリセルは書き込み動作/消去動作の回数が増加すると疲弊が進行する。書き込み動作/消去動作の回数の増加に応じて基準値Y1を設定することにより、メモリセルの消去深さを、より細やかな単位で一定にすることができる。
次に、図13及び図14を用いて、ステップS14におけるオフビット数が基準値Y1を超えているか否かの判断について説明する。すなわち、パルス時間PDrを更新するか否かの判断の具体例について説明する。図13及び図14は、測定対象のメモリセルを判定レベルAR2で読み出したときにバッファ22Aに記憶されたオフビット数を示す図である。t-3が3回前の読み出し動作で得られたオフビット数を示し、t-2が2回前の読み出し動作で、t-1が1回前(即ち、前回)の読み出し動作でそれぞれ得られたオフビット数を示す。さらに、t-0が最新(今回)の読み出し動作で得られたオフビット数を示す。なおここでは、例えば基準値Y1を30とする。
図13は、バッファ22Aのt-3、t-2、t-1がそれぞれオフビット数29、35、29を記憶し、t-0が最新のオフビット数23を記憶した例である。この場合、t-3、t-2、t-1、t-0に記憶されたオフセット数の平均値は29となる。オフビット数の平均値29が基準値30を超えていないため、メモリコントローラ20は、消去電圧VERAのパルス時間PDrを変更せず、そのまま処理を終了する。例えば、メモリコントローラ20のCPU21には、オフビット数の平均値と基準値をパラメータとして、パルス時間PDrを算出可能な回路が実装される。これにより、メモリコントローラ20はオフビット数の平均値からパルス時間PDrを算出することができ、当該算出されたパルス時間PDrをメモリ22のパルス時間管理テーブル22B_1内に反映することが出来る。
さらに終了時には、メモリコントローラ20はバッファ22Aのt-3に記憶された最も古いオフビット数を削除し、t-2、t-1、t-0の値を順にシフトする。シフト後はバッファ22Aのt-3、t-2、t-1が、それぞれ35、29、23を記憶する。
図14は、バッファ22Aのt-3、t-2、t-1がそれぞれオフビット数29、35、29を記憶し、t-0が最新のオフビット数32を記憶した例である。この場合、t-3、t-2、t-1、t-0に記憶されたオフセット数の平均値は31となる。オフビット数の平均値31が基準値30を超えているため、メモリコントローラ20は、消去電圧VERAのパルス時間PDrを所定時間だけ長くし、その後、処理を終了する。
さらに終了時には、メモリコントローラ20は、バッファ22Aのt3、t2、t1をすべてクリアする。
次に、前述した消去動作の第1例におけるメモリコントローラ20と半導体記憶装置10間のコマンド、アドレス、及びデータの入出力について説明する。
図15は、第1実施形態の消去動作の第1例におけるコマンドシーケンスを示す図である。図15に示されるコマンドシーケンスは、コマンド、アドレス、データ入出力サイクルからなる。コマンドは六角形で表現し、アドレスは角丸四角形(または、長円形)で表現し、データ入出力サイクルは四角形で表現する。以下に説明するメモリコントローラ20から半導体記憶装置10へのコマンド及びアドレスの出力、及びメモリコントローラ20と半導体記憶装置10間のデータの入出力は、I/O信号DQ0~DQ7を用いて行われる。
図15に示すように、コマンドシーケンスは、「消去電圧VERAのパルス時間を設定(ステップS1)」に対応するフェーズP1、「消去動作を命令(ステップS2)」に対応するフェーズP2、ワンレベルリードのシフトリードにおける「判定レベルAR2を設定(ステップS11)」に対応するフェーズP3、及び前記シフトリードにおける「ワンレベルリードを命令(ステップS12)」に対応するフェーズP3、P4を有する。
先ず、消去電圧VERAのパルス時間を設定するフェーズP1では、メモリコントローラ20は、コマンド“0Xh”、 アドレス“00h”、及びデータ“PDr”を半導体記憶装置10に順に出力する。コマンド“0Xh”は、消去モードを指定するコマンドである。アドレス“00h”は、消去電圧VERAのパルス時間を設定するアドレスである。データ“PDr”は、消去対象ブロックBLKrに対応する消去電圧VERAのパルス時間を示すデータであり、レジスタ15D_1に保持される。これにより、メモリコントローラ20は、半導体記憶装置10に消去モードを指定すると共に、消去対象ブロックBLKrへの消去動作で用いる消去電圧VERAのパルス時間PDrを、半導体記憶装置10のレジスタ15D_1に設定する。
次に、消去動作を命令するフェーズP2では、メモリコントローラ20は、イレーズセットアップコマンド“60h”、消去対象ブロックBLKrのアドレス“ADD”、及びイレーズ実行コマンド“D0h”を半導体記憶装置10に順に出力する。これにより、シーケンサ16は、パルス時間PDrの消去電圧VERAをウェル配線CPWELLに印加して、消去対象ブロックBLKrに対する消去動作を実行する。シーケンサ16は、この消去動作の実行中、レディ/ビジー信号R/Bnをレディ状態からビジー状態(R/Bn=“L”)に遷移させる。
その後、メモリコントローラ20は、半導体記憶装置10にステータスリードコマンド“70h”を出力する。ステータスリードコマンド“70h”を受けて、半導体記憶装置10は、消去動作にパスしたか、あるいはフェイルしたかを示すデータをメモリコントローラ20に出力する。ここでは例えば、半導体記憶装置10は、消去動作にパスしたことを示すデータ“PASS”をメモリコントローラ20に出力する。
次に、判定レベルAR2を設定するフェーズP3では、メモリコントローラ20は、ワンレベルリードコマンド“X1h”、及びステート“A”の読み出し電圧ARを示すアドレス“01h”を半導体記憶装置10に順に出力する。さらに、メモリコントローラ20は、シフトリードコマンド“X2h”、アドレス“01h”、及び読み出し電圧ARからのシフト値を示すデータ“SHIFT”を半導体記憶装置10に順に出力する。これにより、メモリコントローラ20は、ワンレベルリードのシフトリードで用いる判定レベルAR2を半導体記憶装置10に設定する。
次に、リードを命令するフェーズP4では、メモリコントローラ20は、リードセットアップコマンド“00h”、測定対象のアドレス“ADD1~ADD5”、及び読み出し動作の開始を命令するリード実行コマンド“30h”を半導体記憶装置10に順に出力する。リード実行コマンド“30h”を受けて、半導体記憶装置10のシーケンサ16は、アドレス“ADD1~ADD5”にて指定された測定対象のメモリセルに対して、判定レベルAR2での読み出し動作を実行する。シーケンサ16は、この読み出し動作の実行中、レディ/ビジー信号R/Bnをレディ状態からビジー状態(R/Bn=“L”)に遷移させる。その後、
シーケンサ16は、判定レベルAR2での読み出し動作で、読み出した結果RA2Rを半導体記憶装置10からメモリコントローラ20に出力する。メモリコントローラ20はオン状態とならずにオフ状態のままのメモリセルの数(即ち、オフビット数)“DO1”をカウントする。
シーケンサ16は、判定レベルAR2での読み出し動作で、読み出した結果RA2Rを半導体記憶装置10からメモリコントローラ20に出力する。メモリコントローラ20はオン状態とならずにオフ状態のままのメモリセルの数(即ち、オフビット数)“DO1”をカウントする。
以上説明したように、第1例では、消去動作後の読み出し動作により、コントローラ20は、消去対象ブロックBLKr内の測定対象のメモリセル中におけるオフビット数をカウントする。メモリコントローラ20は、オフビット数に基づいて、消去電圧VERAのパルス時間PDrを更新する、あるいは更新せずに維持する。
<第1例の変形例>
次に、第1実施形態の消去動作の第1例における変形例について説明する。この変形例では、消去動作後のメモリセルの消去結果に基づいて、消去電圧VERAのパルス時間を短くあるいは長くする例を示す。
次に、第1実施形態の消去動作の第1例における変形例について説明する。この変形例では、消去動作後のメモリセルの消去結果に基づいて、消去電圧VERAのパルス時間を短くあるいは長くする例を示す。
変形例の消去動作は、前述した第1例と同様に、図8に示した消去動作のフローチャートに従って実行される。図8のフローチャートにおけるステップS3の処理が、図16に示す処理に置き換わる。図16は、変形例の「消去電圧VERAのパルス時間を判断」(ステップS3)の処理を示すフローチャートである。図16に示す処理は、メモリコントローラ20(あるいは、CPU21)により命令され、制御される。
図16に示すステップS11~S15までの処理は、前述の図11Aに示したステップS11~S15までの処理と同様である。すなわち、メモリコントローラ20は、消去動作後におけるメモリセルの消去深さを判断する判定レベルAR2を、半導体記憶装置10に設定する。さらに、メモリコントローラ20は、消去対象ブロックBLKr内の測定対象のワード線WL及びストリングユニットSUを指定する(ステップS11)。
次に、メモリコントローラ20は、半導体記憶装置10に“ワンレベルリード”を命令する(ステップS12)。“ワンレベルリード”の命令を受けて、半導体記憶装置10のシーケンサ16は、例えば、測定対象のメモリセルに対して、設定された判定レベルAR2で読み出し動作を実行する。
次に、メモリコントローラ20は、判定レベルAR2での読み出し結果RA2Rから計算したオフビット数から、消去動作後のメモリセルの消去深さを判断する(ステップS13)。詳述すると、メモリコントローラ20は、消去動作後にメモリセルの消去深さを判断する場合に、判定レベルAR2での読み出し動作を実行する。判定レベルAR2での読み出し動作が回数Xに達すると、メモリコントローラ20は、回数Xのオフビット数の平均値が基準値Y1を超えているか否かを判断する(ステップS14)。ステップS14の判断において、回数Xのオフビット数の平均値が基準値Y1を超えている場合(Yes)、メモリコントローラ20は、消去電圧VERAのパルス時間PDrを所定時間だけ長くし(ステップS15)、処理を終了する。一方、回数Xのオフビット数の平均値が基準値Y1を超えていない場合(No)、メモリコントローラ20は、回数Xのオフビット数の平均値が基準値Y2に達しているか否かを判断する(ステップS16)。
ステップS16の判断において、回数Xのオフビット数の平均値が基準値Y2に達していない場合(No)、メモリコントローラ20は、消去電圧VERAのパルス時間PDrを所定時間だけ短くし(ステップS17)、処理を終了する。一方、回数Xのオフビット数の平均値が基準値Y2に達している場合(Yes)、メモリコントローラ20は、消去電圧VERAのパルス時間を更新せず、そのまま処理を終了する。
以上説明したように、第1例の変形例では、消去動作後の読み出し動作により、消去対象ブロックBLKr内の測定対象のメモリセル中におけるオフビット数が半導体記憶装置10からメモリコントローラ20に出力される。メモリコントローラ20は、オフビット数に基づいて、メモリセルが消去不足状態、消去適正状態、過消去状態のいずれの状態にあるかを判断する。メモリコントローラ20は、メモリセルが過消去状態にある場合(ステップS16のNo)、消去電圧VERAのパルス時間PDrを短くする(ステップS17)。メモリセルが消去適正状態にある場合(ステップS16のYes)、パルス時間PDrを更新せず、また、メモリセルが消去不足状態にある場合(ステップS14のYes)、パルス時間PDrを長くする(ステップS15)。
1.2.2.2 消去動作の第2例
第2例では、消去動作後の書き込み動作後において、消去対象ブロック内の測定対象のワード線WL及びストリングユニットSUに含まれるメモリセルの消去結果に基づいて、消去電圧VERAのパルス時間を更新する。ここでは、パルス時間を長くする例を示す。第2例においては、消去動作と、パルス時間を更新するか否かの判断との間に、書き込み動作が追加される。
第2例では、消去動作後の書き込み動作後において、消去対象ブロック内の測定対象のワード線WL及びストリングユニットSUに含まれるメモリセルの消去結果に基づいて、消去電圧VERAのパルス時間を更新する。ここでは、パルス時間を長くする例を示す。第2例においては、消去動作と、パルス時間を更新するか否かの判断との間に、書き込み動作が追加される。
図17は、第1実施形態のメモリシステム1における消去動作の第2例を示すフローチャートである。図17に示す処理は、メモリコントローラ20(あるいは、CPU21)により命令され、制御される。
第1例と同様に、メモリコントローラ20は、パルス時間管理テーブル22B_1内の消去対象ブロックBLKrに対応する消去電圧VERAのパルス時間PDrを、半導体記憶装置10に送信し、半導体記憶装置10のレジスタ15D_1に設定する(ステップS1)。さらに、メモリコントローラ20は、半導体記憶装置10に消去動作を命令する(ステップS2)。消去動作の命令を受けて、半導体記憶装置10のシーケンサ16は、消去対象ブロックBLKrに対して消去動作を実行する。
消去対象ブロックBLKrに対して消去動作が実行された後、メモリコントローラ20は、半導体記憶装置10に書き込み動作を命令する(ステップS5)。書き込み動作の命令を受けて、半導体記憶装置10のシーケンサ16は、消去対象ブロックBLKr内の書き込み対象のメモリセルに対して書き込み動作を実行する。書き込み動作の命令はブロックの一部の書き込みを完了するか、ブロックの全面書き込みを完了するまでのいずれかを満たすまで繰り返される(ステップS6)。
次に、メモリコントローラ20は、書き込み動作後におけるメモリセルの消去状態に基づいて、消去電圧VERAのパルス時間PDrを更新するか否かを判断する(ステップS3A)。例えば、このステップS3Aの「消去電圧VERAのパルス時間を判断」の処理は、第1例と同様に、消去動作後に書き込み動作を行う毎に、または予め設定された書き込み動作/消去動作の実行回数毎に、または書き込み動作/消去動作の実行回数が予め設定された回数に達したときに実行される。ステップS3Aの「消去電圧VERAのパルス時間を判断」の処理の詳細については後述する。
次に、メモリコントローラ20は、ステップS3Aの「消去電圧VERAのパルス時間を判断」による判断結果に基づいて、メモリ22のパルス時間管理テーブル22B_1内の消去対象ブロックBLKrに対応するパルス時間PDrを更新する、あるいは更新せず、そのまま維持する(ステップS4)。以上により、消去動作が終了する。
次に、図17に示したフローチャートにおけるステップS3Aの「消去電圧VERAのパルス時間を判断」の処理について詳述する。図18は、ステップS3Aの「消去電圧VERAのパルス時間を判断」の処理を示すフローチャートである。図19は、消去動作の第2例における消去深さの判断方法を説明するための閾値電圧分布と判定レベル、及びオフビット数算出のためのデータを示す図である。なお、図18に示す処理は、メモリコントローラ20(あるいは、CPU21)により命令され、制御される。
先ず、図18に示すように、メモリコントローラ20は、読み出し電圧ARからシフトさせるシフト値を設定する。ここで、図19の(A)に示すように、読み出し電圧ARからシフト値だけシフトさせた読み出し電圧を判定レベルAR3と定義する。判定レベルAR3は、書き込み動作後におけるメモリセルの消去深さを判断する電圧レベルである。メモリコントローラ20は、読み出し電圧ARからシフト値だけシフトさせた判定レベルAR3を半導体記憶装置10に設定する。なお、メモリセルの消去深さによっては、読み出し電圧ARをそのまま判定レベルAR3として用いてもよいし、読み出し電圧ARから高電圧側にシフトさせて判定レベルAR3として用いてもよい。さらに、メモリコントローラ20は、消去対象ブロックBLKr内の測定対象のワード線WL及びストリングユニットSUを指定する(ステップS21)。なお、測定対象のワード線WLは、1本のワード線でもよいし、複数のワード線であってもよいし、また、全ワード線であってもよい。以降の説明では図5Aに示されるメモリマッピングでのリードを示す。図5Aでは、読み出し電圧ARは“下位ページ”の読み出しにマッピングされている。
次に、メモリコントローラ20は、半導体記憶装置10にARを含む“下位ページリード”を命令する(ステップS22)。“下位ページリード”は、例えば読み出し電圧AR、ERを用いた読み出し動作によって下位ページのデータを読み出す動作であり、ここでは読み出し電圧ARに代えて判定レベルAR3が用いられる。“下位ページリード”の命令を受けて、半導体記憶装置10のシーケンサ16は、例えば、測定対象のメモリセルに対して、設定された判定レベルAR3と読み出し電圧ERを用いて読み出し動作を実行し、図19の(B)に示す誤り訂正前の下位ページデータRLPを得る。下位ページデータRLPは、判定レベルAR3と読み出し電圧ERを用いて読み出した直後のデータであり、誤り訂正を施していないデータである。
次に、メモリコントローラ20は、判定レベルAR3と読み出し電圧ERの読み出し動作で得られた誤り訂正前の下位ページデータRLPを半導体記憶装置10から受け取る。メモリコントローラ20は、ECC回路24により誤り訂正前の下位ページデータRLPのエラーを訂正し、図19の(B)に示す誤り訂正後の下位ページデータCLPを得る(ステップS23)。
次に、メモリコントローラ20は、読み出した下位ページデータから判定レベルAR3のみの読み出しデータを分離する。例えば、ステート“C”の読み出し電圧CRを半導体記憶装置10に設定する。本実施形態ではステート“C”に拘わらず、ステート“A”とステート“E”が分離できるステート“B”、“C”、“D”であれば何でもよい。さらに、メモリコントローラ20は、半導体記憶装置10に消去対象ブロックBLKr内の測定対象のワード線WL及びストリングユニットSUを指定する(ステップS24)。
次に、メモリコントローラ20は、半導体記憶装置10にステート“C”の“ワンレベルリード”を命令する(ステップS25)。“ワンレベルリード”の命令を受けて、半導体記憶装置10のシーケンサ16は、例えば、測定対象のメモリセルに対して、設定された読み出し電圧CRで読み出し動作を実行し、図19の(B)に示すステート“C”の読み出し結果RCRを得る。
メモリコントローラ20は、ステップS22で得られた誤り訂正前の下位ページデータRLPに論理否定演算を施したデータRLP2と、ステップS23、S25にて得られた2つのデータCLP、RCRとの論理積演算を行い、消去深さを判断するためのオフビット数をカウントする。メモリコントローラ20は、取得したオフビット数をメモリ22内のバッファ22Aに記憶する。
次に、メモリコントローラ20は、書き込み動作後におけるメモリセルの消去状態に基づいて、書き込み動作後における消去対象メモリセルの消去深さを判断する。すなわち、メモリコントローラ20は、バッファ22Aに記憶されたオフビット数から、書き込み動作後における消去対象メモリセルの消去深さを判断する(ステップS26)。詳述すると、メモリコントローラ20は、消去動作後の書き込み動作後にメモリセルの消去深さを判断する場合に、測定対象のメモリセルに対するステップS22、S23、S25の処理を実行する。ステップS22、S23、S25の処理が回数X(例えば、4回)に達すると、メモリコントローラ20は、回数Xのオフビット数の平均値が基準値Y1を超えているか否かを判断する(ステップS27)。回数Xのオフビット数の平均値が基準値Y1を超えている場合(Yes)、メモリコントローラ20は、消去電圧VERAのパルス時間PDrを所定時間だけ長くする(ステップS28)。一方、回数Xのオフビット数の平均値が基準値Y1を超えていない場合(No)、メモリコントローラ20は、「消去電圧VERAのパルス時間を判断」の処理を終了する。
なお、ステップS27では、回数Xのオフビット数の平均値と基準値Y1とを比較したが、回数X実行したときの1つあるいは複数のワード線WLにおけるオフビット数の最大値と、基準値Y1とを比較してもよいし、あるいは、回数X実行したときの全ワード線WLにおけるオフビット数の最大値と、基準値Y1とを比較してもよい。
前述のステップS27におけるオフビット数が基準値Y1を超えている否かの判断、すなわちパルス時間を更新するか否かの判断の具体例については、第1例と同様である。バッファ22Aのt-3、t-2、t-1、t-0に記憶されたオフセット数の平均値が基準値30を超えていない場合、メモリコントローラ20は、消去電圧VERAのパルス時間を変更せず、そのまま処理を終了する。一方、バッファ22Aのt-3、t-2、t-1、t-0に記憶されたオフセット数の平均値が基準値30を超えている場合、メモリコントローラ20は、消去電圧VERAのパルス時間を所定時間だけ長くし、その後、処理を終了する。
次に、第1実施形態の消去動作の第2例におけるメモリコントローラ20と半導体記憶装置10間のコマンド、アドレス、及びデータの入出力について説明する。
図20は、第1実施形態の消去動作の第2例におけるコマンドシーケンスを示す図である。以下に説明するメモリコントローラ20から半導体記憶装置10へのコマンド及びアドレスの出力、及びメモリコントローラ20と半導体記憶装置10間のデータの入出力は、I/O信号DQ0~DQ7を用いて行われる。図20に示されるコマンドシーケンスは、コマンド、アドレス、データ入出力サイクルからなる。コマンドは六角形で表現し、アドレスは角丸四角形(または、長円形)で表現し、データ入出力サイクルは四角形で表現する。
図20に示すように、コマンドシーケンスは、「消去電圧VERAのパルス時間を設定(ステップS1)」に対応するフェーズP1、「消去動作を命令(ステップS2)」に対応するフェーズP2、「書き込み動作を命令(ステップS5)」に対応するフェーズP5、下位ページリードのシフトリードにおける「判定レベルAR3を設定(ステップS21)」に対応するフェーズP3A、前記シフトリードにおける「下位ページリードを命令(ステップS22)」に対応するフェーズP4A、及び「ワンレベルリードを命令(ステップS25)」に対応するフェーズP6を有する。なお、フェーズP1、P2は、前述の図15に示したフェーズP1、P2と同様である。
先ず、消去電圧VERAのパルス時間を設定するフェーズP1では、メモリコントローラ20は、コマンド“0Xh”、アドレス“00h”、及びデータ“PDr”を半導体記憶装置10に順に出力する。これにより、メモリコントローラ20は、半導体記憶装置10に消去モードを指定すると共に、消去対象ブロックBLKrへの消去動作で用いる消去電圧VERAのパルス時間PDrを、半導体記憶装置10のレジスタ15D_1に設定する。
次に、消去動作を命令するフェーズP2では、メモリコントローラ20は、イレーズセットアップコマンド“60h”、消去対象ブロックBLKrのアドレス“ADD”、及びイレーズ実行コマンド“D0h”を半導体記憶装置10に順に出力する。イレーズ実行コマンド“D0h”を受けて、半導体記憶装置10のシーケンサ16は、パルス時間PDrの消去電圧VERAをウェル配線CPWELLに印加して、消去対象ブロックBLKrに対する消去動作を実行する。続いて、メモリコントローラ20は、半導体記憶装置10にステータスリードコマンド“70h”を出力する。ステータスリードコマンド“70h”を受けて、半導体記憶装置10は、ここでは例えば、消去動作にパスしたことを示すデータ“PASS”をメモリコントローラ20に出力する。
次に、書き込み動作を命令するフェーズP5では、メモリコントローラ20は、ライトセットアップコマンド“80h”、書き込み対象のアドレス“ADD1~ADD5”、書き込みデータ“DI”、及びライト実行コマンド“10h”を半導体記憶装置10に順に出力する。ライト実行コマンド“10h”を受けて、半導体記憶装置10のシーケンサ16は、アドレス“ADD1~ADD5”にて指定された書き込み対象のメモリセルに対して、書き込みデータ“DI”に応じた書き込み動作を実行する。シーケンサ16は、この書き込み動作の実行中、レディ/ビジー信号R/Bnをレディ状態からビジー状態(R/Bn=“L”)に遷移させる。なお、フェーズP5は、ブロック内の特定アドレスに対しての書き込み動作である。メモリコントローラ20は、ブロック内の一部のアドレスもしくは全てのアドレスへの書き込み動作を行うために、フェーズP5を繰り返し実施してもよい。
次に、判定レベルAR3を設定するフェーズP3Aでは、メモリコントローラ20は、シフトリードコマンド“X2h”、読み出し電圧ARを示すアドレス“01h”、及び読み出し電圧ARからのシフト値を示すデータ“SHIFT”を半導体記憶装置10に順に出力する。これにより、メモリコントローラ20は、下位ページリードのシフトリードで用いる判定レベルAR3を半導体記憶装置10に設定する。
次に、下位ページリードを命令するフェーズP4Aでは、メモリコントローラ20は、下位ページを示すコマンド“01h”、リードセットアップコマンド“00h”、測定対象のアドレス“ADD1~ADD5”、及びリード実行コマンド“30h”を半導体記憶装置10に順に出力する。リード実行コマンド“30h”を受けて、半導体記憶装置10のシーケンサ16は、アドレス“ADD1~ADD5”にて指定された測定対象のメモリセルに対して、判定レベルAR3での読み出し動作と、ステート“E”の読み出し電圧ERでの読み出し動作を実行する。シーケンサ16は、この読み出し動作の実行中、レディ/ビジー信号R/Bnをレディ状態からビジー状態(R/Bn=“L”)に遷移させる。その後、シーケンサ16は、判定レベルAR3と読み出し電圧ERでの読み出し動作によって得られた誤り訂正前の下位ページデータRLPをメモリコントローラ20に出力する。メモリコントローラ20は、受け取った誤り訂正前の下位ページデータRLPに対してECC回路24によりエラー訂正を行い、誤り訂正後の下位ページデータCLPを算出する。
次に、ワンレベルリードを命令するフェーズP6では、メモリコントローラ20は、ワンレベルリードコマンド“X1h”、ステート“C”の読み出し電圧CRを示すアドレス“03h”、リードセットアップコマンド“00h”、測定対象のアドレス“ADD1~ADD5”、及びリード実行コマンド“30h”を半導体記憶装置10に順に出力する。リード実行コマンド“30h”を受けて、半導体記憶装置10のシーケンサ16は、アドレス“ADD1~ADD5”にて指定された測定対象のメモリセルに対して、読み出し電圧CRでの読み出し動作を実行する。シーケンサ16は、この読み出し動作の実行中、レディ/ビジー信号R/Bnをレディ状態からビジー状態(R/Bn=“L”)に遷移させる。その後、半導体記憶装置10は、読み出し電圧CRでの読み出し動作によって得られた読み出し結果RCRをメモリコントローラ20に出力する。
その後、メモリコントローラ20は、上述したように、誤り訂正前の下位ページデータRLPに論理否定演算を施したデータRLP2と、2つのデータCLP、RCRとの論理積演算を行い、消去深さを判断するためのオフビット数を算出する。
第2例では、書き込み動作後の読み出し動作により、メモリコントローラ20は、消去対象ブロックBLKr内の測定対象のメモリセル中におけるオフビット数を取得する。メモリコントローラ20は、オフビット数に基づいて、消去電圧VERAのパルス時間PDrを更新する、あるいは更新せずに維持する。
1.3 第1実施形態の効果
第1実施形態によれば、消去動作後あるいは書き込み動作後において、消去電圧VERAのパルス時間を調整あるいは更新することにより、消去動作によるメモリセルに対する消去を最適化することができる。言い換えると、消去電圧VERAのパルス時間を調整あるいは更新することにより、消去動作によってメモリセルが消去不足状態あるいは過消去状態に遷移するのを回避することができる。
第1実施形態によれば、消去動作後あるいは書き込み動作後において、消去電圧VERAのパルス時間を調整あるいは更新することにより、消去動作によるメモリセルに対する消去を最適化することができる。言い換えると、消去電圧VERAのパルス時間を調整あるいは更新することにより、消去動作によってメモリセルが消去不足状態あるいは過消去状態に遷移するのを回避することができる。
消去動作によるメモリセルの過消去状態への遷移を回避することで、消去動作によってメモリセルに生じるダメージを低減できる。さらに、消去動作によるメモリセルの消去不足状態への遷移を回避することで、例えばステートAの読み出しを含むページリードにおけるリードエラーを低減できる。
以下に、比較例を示し、第1実施形態の効果について詳述する。図21は、比較例としてのメモリセルに対する書き込み/消去の回数と、消去動作によるメモリセルの消去深さとの関係を示す図である。メモリセルの書き込み/消去の回数が増加すると、メモリセルの疲弊が進行する。このため、書き込み/消去の回数が増加するのに従って、メモリセルに対して消去動作を行っても、メモリセルの電荷蓄積層に蓄積されている電子を引き抜く量が徐々に減り、消去深さが徐々に浅くなる。このため、図21に示すように、消去ループの回数を一定にして消去動作を行っていると、徐々にメモリセルの消去深さが浅くなり、消去深さの許容範囲の上限に近づく。そこで、消去深さの許容範囲を超える前に、消去ループの回数を増加させる。消去ループの回数を増加させると、回数を増加させた直後はメモリセルの消去深さが深くなり、メモリセルの疲弊が進む原因となる。
前述した第1実施形態では、消去動作後あるいは書き込み動作後における消去対象メモリセルの消去結果(あるいは消去状態、消去深さ)に基づいて、前記消去対象メモリセルに対する次回の消去動作で用いる消去電圧VERAのパルス時間を調整あるいは更新する。
詳述すると、消去動作後あるいは書き込み動作後におけるステート“Er”のメモリセルの閾値電圧分布状態から、メモリセルの消去深さが消去不足状態、消去適正状態、あるいは過消去状態のいずれの状態であるかを判断する。そして、消去深さの状態に基づいて、消去電圧VERAのパルス時間を調整あるいは更新する。例えば、メモリセルの消去深さが消去不足状態である場合は、消去電圧VERAのパルス時間を長くする。一方、メモリセルの消去深さが過消去状態である場合は、消去電圧VERAのパルス時間を短くする。
第1実施形態の消去動作におけるメモリセルの書き込み/消去の回数と、消去動作によるメモリセルの消去深さとの関係を図22に示す。第1実施形態では、上述したように、消去電圧VERAのパルス時間を調整することにより、メモリセルに対する細やかな消去が可能となり、図22に示すように、図21の比較例と比べて、メモリセルの消去深さが深くなること及び浅くなることを回避できる。メモリセルの消去深さが深くなるのを回避することにより、言い換えると、メモリセルが過消去状態になるのを回避することにより、メモリセルに生じるダメージを低減することができる。さらに、メモリセルの消去深さが浅くなるのを回避することにより、言い換えると、メモリセルが消去不足状態になるのを回避することにより、ページリードにおけるリードエラーを低減することができる。
以上説明したように、第1実施形態によれば、メモリセルのダメージ及びリードエラーを低減でき、消去動作の性能を向上させることができるメモリシステム及び半導体記憶装置を提供できる。
2.第2実施形態
以下に、第2実施形態のメモリシステム1における消去動作について説明する。第2実施形態のメモリシステム1が備える構成は、第1実施形態の構成と同様である。第2実施形態では、主に第1実施形態と異なる点について説明する。
以下に、第2実施形態のメモリシステム1における消去動作について説明する。第2実施形態のメモリシステム1が備える構成は、第1実施形態の構成と同様である。第2実施形態では、主に第1実施形態と異なる点について説明する。
2.1 第2実施形態の消去動作
第2実施形態の消去動作では、消去動作後のメモリセルの消去結果に基づいて、あるいは消去動作後の書き込み動作後におけるメモリセルの消去結果に基づいて、消去電圧VERAの初期電圧値を調整(または、変更)する。例えば、消去電圧VERAの初期電圧値を高くあるいは低くする。この第2実施形態において調整する消去電圧VERAの初期電圧値は、初回の消去ループにおける消去電圧VERAの電圧値である。
第2実施形態の消去動作では、消去動作後のメモリセルの消去結果に基づいて、あるいは消去動作後の書き込み動作後におけるメモリセルの消去結果に基づいて、消去電圧VERAの初期電圧値を調整(または、変更)する。例えば、消去電圧VERAの初期電圧値を高くあるいは低くする。この第2実施形態において調整する消去電圧VERAの初期電圧値は、初回の消去ループにおける消去電圧VERAの電圧値である。
2.1.1 消去動作の第1例
第1例では、消去動作後において、消去対象ブロック内の測定対象のワード線WL及びストリングユニットSUに含まれるメモリセルの消去結果に基づいて、消去電圧VERAの初期電圧値を更新する。ここでは、メモリセルの消去結果に基づいて、消去電圧VERAの初期電圧値を高くする例を示す。
第1例では、消去動作後において、消去対象ブロック内の測定対象のワード線WL及びストリングユニットSUに含まれるメモリセルの消去結果に基づいて、消去電圧VERAの初期電圧値を更新する。ここでは、メモリセルの消去結果に基づいて、消去電圧VERAの初期電圧値を高くする例を示す。
図23は、第2実施形態のメモリシステム1における消去動作の第1例を示すフローチャートである。図24は、メモリコントローラ20と半導体記憶装置10間で行われる動作のやり取りを示す図である。図25は、メモリコントローラ20のメモリ22内に設けられる電圧値管理テーブル22B_2の一例を示す図である。電圧値管理テーブル22B_2は、消去電圧VERAの初期電圧値を管理する。電圧値管理テーブル22B_2には、ブロックBLKr(rは0以上m以下の整数)に、そのブロックBLKrの消去動作に用いる初期電圧値PArが対応付けられている。図23に示す処理は、メモリコントローラ20(あるいは、CPU21)により命令され、制御される。
図23及び図24に示すように、消去動作が開始すると、まず、メモリコントローラ20は、電圧値管理テーブル22B_2内の消去対象ブロックBLKrに対応する消去電圧VERAの初期電圧値PArを、半導体記憶装置10に送信し、半導体記憶装置10のレジスタ15D_2に設定する。詳述すると、メモリコントローラ20は、電圧値管理テーブル22B_2から消去対象ブロックBLKrに対応する消去電圧VERAの初期電圧値PArを取得し、半導体記憶装置10に送信し、レジスタ15D_2に記憶させる(ステップS31)。例えば、消去対象ブロックがブロックBLK0のとき、ブロックBLK0に対応する初期電圧値PA0を半導体記憶装置10に送信し、レジスタ15D_2に記憶させる。
次に、メモリコントローラ20は、半導体記憶装置10に消去動作を命令する(ステップS32)。半導体記憶装置10のシーケンサ16は、レジスタ15D_2に記憶された消去電圧VERAの初期電圧値PArを用いて、消去対象ブロックBLKrに対して消去動作を実行する。
次に、メモリコントローラ20は、消去動作によるメモリセルの消去結果を半導体記憶装置10から取得する。メモリコントローラ20は、半導体記憶装置10から取得したメモリセルの消去結果に基づいて、消去電圧VERAの初期電圧値PArを更新するか否かを判断する(以下、「消去電圧VERAの初期電圧値を判断」とも記す)(ステップS33)。例えば、このステップS33の「消去電圧VERAの初期電圧値を判断」の処理は、消去動作を行う毎に、または予め設定された書き込み動作/消去動作の実行回数毎に、または書き込み動作/消去動作の実行回数が予め設定された回数に達したときに実行される。ステップS33の「消去電圧VERAの初期電圧値を判断」の処理の詳細については後述する。
次に、メモリコントローラ20は、ステップS33の「消去電圧VERAの初期電圧値を判断」による判断結果に基づいて、メモリ22の電圧値管理テーブル22B_2内の消去対象ブロックBLKrに対応する初期電圧値PArを更新する、あるいは更新せず、そのまま維持する(ステップS34)。以上により、消去動作が終了する。
次に、図23に示したフローチャートにおけるステップS33の「消去電圧VERAの初期電圧値を判断」の処理について詳述する。図26は、ステップS33の「消去電圧VERAの初期電圧値を判断」の処理を示すフローチャートである。図26に示す処理は、メモリコントローラ20(あるいは、CPU21)により命令され、制御される。
図26に示すステップS11~S14までの処理は、前述の図11Aに示したステップS11~S14までの処理と同様である。
図26のステップS11に示すように、メモリコントローラ20は、読み出し電圧を、ステート“A”の読み出し電圧ARに設定し、さらに読み出し電圧ARからシフトさせるシフト値を設定する。ここで、読み出し電圧ARからシフト値だけシフトさせた読み出し電圧を判定レベルAR2と定義する。判定レベルAR2は、消去動作後におけるメモリセルの消去深さを判断する電圧レベルである。メモリコントローラ20は、読み出し電圧ARからシフト値だけシフトさせた判定レベルAR2を半導体記憶装置10に設定する。さらに、メモリコントローラ20は、半導体記憶装置10に消去対象ブロック内の測定対象のワード線WL及びストリングユニットSUを指定する(ステップS11)。
次に、メモリコントローラ20は、半導体記憶装置10にステート“A”の“ワンレベルリード”を命令する(ステップS12)。ステート“A”の“ワンレベルリード”の命令を受けると、半導体記憶装置10のシーケンサ16は、測定対象のメモリセルに対して、設定された判定レベルAR2で読み出し動作を実行する。シーケンサ16は、判定レベルAR2で読み出した結果RA2Rを半導体記憶装置10からメモリコントローラ20に出力する。消去動作後の消去結果として、メモリコントローラ20は、読み出した結果RA2Rからオフビット数をカウントする。オフビット数は、メモリ22内のバッファ22Aに記憶される。
次に、メモリコントローラ20は、判定レベルAR2での読み出し結果に基づいて、消去動作後のメモリセルの消去深さを判断する。すなわち、メモリコントローラ20は、取得したオフビット数から、消去動作後のメモリセルの消去深さを判断する(ステップS13)。詳述すると、メモリコントローラ20は、消去動作後にメモリセルの消去深さを判断する場合に、判定レベルAR2での読み出し動作を実行する。読み出し動作が回数Xに達すると、メモリコントローラ20は、回数Xのオフビット数の平均値が基準値Y1を超えているか否かを判断する(ステップS14)。
ステップS14の判断において、オフビット数の平均値が基準値Y1を超えている場合(Yes)、メモリコントローラ20は、消去電圧VERAの初期電圧値PArを所定値だけ高くする(ステップS18)。一方、オフビット数の平均値が基準値Y1を超えていない場合(No)、メモリコントローラ20は、「消去電圧VERAの初期電圧値を判断」の処理を終了する。
ステップS14におけるオフビット数が基準値Y1を超えているか否かの判断の具体例については、第1実施形態と同様である。バッファ22Aのt-3、t-2、t-1、t-0に記憶されたオフセット数の平均値が基準値30を超えていない場合、メモリコントローラ20は、消去電圧VERAの初期電圧値PArを変更せず、そのまま処理を終了する。一方、バッファ22Aのt-3、t-2、t-1、t-0に記憶されたオフセット数の平均値が基準値30を超えている場合、メモリコントローラ20は、消去電圧VERAの初期電圧値PArを所定値だけ高くし、その後、処理を終了する。
次に、第2実施形態の消去動作の第1例におけるメモリコントローラ20と半導体記憶装置10間のコマンド、アドレス、及びデータの入出力について説明する。
図27は、第2実施形態の消去動作の第1例におけるコマンドシーケンスを示す図である。以下に説明するメモリコントローラ20から半導体記憶装置10へのコマンド及びアドレスの出力、及びメモリコントローラ20と半導体記憶装置10間のデータの入出力は、I/O信号DQ0~DQ7を用いて行われる。図27に示されるコマンドシーケンスは、コマンド、アドレス、データ入出力サイクルからなる。コマンドは六角形で表現し、アドレスは角丸四角形(または、長円形)で表現し、データ入出力サイクルは四角形で表現する。
図27に示すように、コマンドシーケンスは、「消去電圧VERAの初期電圧値を設定(ステップS21)」に対応するフェーズP11、「消去動作を命令(ステップS22)」に対応するフェーズP2、ワンレベルリードのシフトリードにおける「判定レベルAR2を設定(ステップS11)」に対応するフェーズP3、及び前記シフトリードにおける「ワンレベルリードを命令(ステップS12)」に対応するフェーズP3、P4を有する。なお、フェーズP2、P3、P4は、前述の図15に示したフェーズP2、P3、P4と同様である。
先ず、消去電圧VERAの初期電圧値を設定するフェーズP11では、メモリコントローラ20は、コマンド“0Xh”、アドレス“01h”、及びデータ“PAr”を半導体記憶装置10に順に出力する。コマンド“0Xh”は、消去モードを指定するコマンドである。アドレス“01h”は、消去電圧VERAの初期電圧値を設定するアドレスである。データ“PAr”は、消去対象ブロックBLKrに対応する消去電圧VERAの初期電圧値を示すデータである。これにより、メモリコントローラ20は、半導体記憶装置10に消去モードを指定すると共に、消去対象ブロックBLKrへの消去動作で用いる消去電圧VERAの初期電圧値PArを半導体記憶装置10のレジスタ15D_2に設定する。
次に、消去動作を命令するフェーズP2では、メモリコントローラ20は、イレーズセットアップコマンド“60h”、消去対象ブロックBLKrのアドレス“ADD”、及びイレーズ実行コマンド“D0h”を半導体記憶装置10に順に出力する。イレーズ実行コマンド“D0h”を受けて、半導体記憶装置10のシーケンサ16は、初期電圧値PArの消去電圧VERAをウェル配線CPWELLに印加して、消去対象ブロックBLKrに対する消去動作を実行する。
その後、メモリコントローラ20は、半導体記憶装置10にステータスリードコマンド“70h”を出力する。ステータスリードコマンド“70h”を受けて、半導体記憶装置10は、消去動作にパスしたか、あるいはフェイルしたかを示すデータをメモリコントローラ20に出力する。ここでは例えば、半導体記憶装置10は、消去動作にパスしたことを示すデータ“PASS”をメモリコントローラ20に出力する。
次に、判定レベルAR2を設定するフェーズP3では、メモリコントローラ20は、ステート“A”のワンレベルリードコマンド“X1h”、及びステート“A”の読み出し電圧ARを示すアドレス“01h”を半導体記憶装置10に順に出力する。さらに、メモリコントローラ20は、シフトリードコマンド“X2h”、アドレス“01h”、及び読み出し電圧ARからのシフト値を示すデータ“SHIFT”を半導体記憶装置10に順に出力する。これにより、メモリコントローラ20は、ワンレベルリードのシフトリードで用いる判定レベルAR2を半導体記憶装置10に設定する。
次に、リードを命令するフェーズP4では、メモリコントローラ20は、リードセットアップコマンド“00h”、測定対象のアドレス“ADD1~ADD5”、及びリード実行コマンド“30h”を半導体記憶装置10に順に出力する。リード実行コマンド“30h”を受けて、半導体記憶装置10のシーケンサ16は、アドレス“ADD1~ADD5”にて指定された測定対象のメモリセルに対して、判定レベルAR2での読み出し動作を実行する。その後、シーケンサ16は、判定レベルAR2での読み出し動作で得られた読み出し結果RA2Rを半導体記憶装置10からメモリコントローラ20に出力する。メモリコントローラ20は、読み出し結果RA2Rからオン状態とならずにオフ状態のままのオフビット数“DO2”をカウントする。
前述したように、第1例では、消去電圧VERAの初期電圧値PArを高くする例について説明したが、第1実施形態の第1例の変形例に示したのと同様に、メモリセルの消去結果に基づいて、消去電圧VERAの初期電圧値PArを高くあるいは低くすることも可能である。
第1例では、消去動作後の読み出し動作により、半導体記憶装置10は、消去対象ブロックBLKr内の測定対象のメモリセル中におけるオフビット数をメモリコントローラ20に出力する。メモリコントローラ20は、オフビット数に基づいて、消去電圧VERAの初期電圧値PArを更新する、あるいは更新せずに維持する。
2.1.2 消去動作の第2例
第2例では、消去動作後の書き込み動作後において、消去対象ブロック内の測定対象のワード線WL及びストリングユニットSUに含まれるメモリセルの消去結果に基づいて、消去電圧VERAの初期電圧値を更新する。ここでは、メモリセルの消去結果に基づいて、消去電圧VERAの初期電圧値を高くする例を示す。第2例においては、消去動作と、初期電圧値を更新するか否かの判断との間に、書き込み動作が追加される。
第2例では、消去動作後の書き込み動作後において、消去対象ブロック内の測定対象のワード線WL及びストリングユニットSUに含まれるメモリセルの消去結果に基づいて、消去電圧VERAの初期電圧値を更新する。ここでは、メモリセルの消去結果に基づいて、消去電圧VERAの初期電圧値を高くする例を示す。第2例においては、消去動作と、初期電圧値を更新するか否かの判断との間に、書き込み動作が追加される。
図28は、第2実施形態のメモリシステム1における消去動作の第2例を示すフローチャートである。図28に示す処理は、メモリコントローラ20(あるいは、CPU21)により命令され、制御される。
第1例と同様に、メモリコントローラ20は、電圧値管理テーブル22B_2内の消去対象ブロックBLKrに対応する消去電圧VERAの初期電圧値PArを、半導体記憶装置10に送信し、半導体記憶装置10のレジスタ15D_2に記憶させる(ステップS31)。さらに、メモリコントローラ20は、半導体記憶装置10に消去動作を命令する(ステップS32)。消去動作の命令を受けて、半導体記憶装置10のシーケンサ16は、消去対象ブロックBLKrに対して消去動作を実行する。
消去対象ブロックBLKrに対して消去動作が実行された後、メモリコントローラ20は、半導体記憶装置10に書き込み動作を命令する(ステップS35)。書き込み動作の命令を受けて、半導体記憶装置10のシーケンサ16は、消去対象ブロックBLKr内の書き込み対象のメモリセルに対して書き込み動作を実行する。
次に、メモリコントローラ20は、書き込み動作後におけるメモリセルの消去状態に基づいて、消去電圧VERAの初期電圧値PArを更新するか否かを判断する(以下、「消去電圧VERAの初期電圧値を判断」とも記す)(ステップS33A)。例えば、このステップS33Aの「消去電圧VERAの初期電圧値を判断」の処理は、第1例と同様に、消去動作後に書き込み動作を行う毎に、または予め設定された書き込み動作/消去動作の実行回数毎に、または書き込み動作/消去動作の実行回数が予め設定された回数に達したときに実行される。ステップS33Aの「消去電圧VERAの初期電圧値を判断」の処理の詳細については後述する。
次に、メモリコントローラ20は、ステップS33Aの「消去電圧VERAの初期電圧値を判断」による判断結果に基づいて、メモリ22の電圧値管理テーブル22B_2内の消去対象ブロックBLKrに対応する初期電圧値PArを更新する、あるいは更新せず、そのまま維持する(ステップS34)。以上により、消去動作が終了する。
次に、図28に示したフローチャートにおけるステップS33Aの「消去電圧VERAの初期電圧値を判断」の処理について詳述する。図29は、ステップS33Aの「消去電圧VERAの初期電圧値を判断」の処理を示すフローチャートである。なお、図29に示す処理は、メモリコントローラ20(あるいは、CPU21)により命令され、制御される。
図29に示すステップS21~S27までの処理は、前述の図18に示したステップS21~S27までの処理と同様である。
図29に示すように、メモリコントローラ20は、読み出し電圧を、ステート“A”の読み出し電圧ARに設定し、さらに読み出し電圧ARからシフトさせるシフト値を設定する。ここで、読み出し電圧ARからシフト値だけシフトさせた読み出し電圧を判定レベルAR3と定義する。判定レベルAR3は、消去動作後におけるメモリセルの消去深さを判断する電圧レベルである。メモリコントローラ20は、読み出し電圧ARからシフト値だけシフトさせた判定レベルAR3を半導体記憶装置10に設定する。さらに、メモリコントローラ20は、半導体記憶装置10に消去対象ブロック内の測定対象のワード線WL及びストリングユニットSUを指定する(ステップS21)。
次に、メモリコントローラ20は、半導体記憶装置10に“下位ページリード”を命令する(ステップS22)。“下位ページリード”の命令を受けて、半導体記憶装置10のシーケンサ16は、例えば、測定対象のメモリセルに対して、設定された判定レベルAR3と読み出し電圧ERで読み出し動作を実行し、誤り訂正前の下位ページデータRLPを得る。下位ページデータRLPは、判定レベルAR3と読み出し電圧ERを用いて読み出した直後のデータであり、誤り訂正を施していないデータである。
次に、メモリコントローラ20は、誤り訂正前の下位ページデータRLPを半導体記憶装置10から受け取る。メモリコントローラ20は、ECC回路24により誤り訂正前の下位ページデータRLPのエラーを訂正し、誤り訂正後の下位ページデータCLPを得る(ステップS23)。
次に、メモリコントローラ20は、ステート“C”の読み出し電圧CRを半導体記憶装置10に設定する。さらに、メモリコントローラ20は、半導体記憶装置10に消去対象ブロックBLKr内の測定対象のワード線WL及びストリングユニットSUを指定する(ステップS24)。
次に、メモリコントローラ20は、半導体記憶装置10にステート“C”の“ワンレベルリード”を命令する(ステップS25)。ステート“C”の“ワンレベルリード”の命令を受けて、シーケンサ16は、例えば、測定対象のメモリセルに対して、設定された読み出し電圧CRで読み出し動作を実行し、ステート“C”の読み出し結果RCRを取得して、メモリコントローラ20に出力する。
メモリコントローラ20は、ステップS22で得られた誤り訂正前の下位ページデータRLPに論理否定演算を施したデータRLP2と、ステップS23、S25にて得られた2つのデータCLP、RCRとの論理積演算を行い、消去深さを判断するためのオフビット数を取得する。メモリコントローラ20は、取得したオフビット数をメモリ22内のバッファ22Aに記憶する。
次に、メモリコントローラ20は、書き込み動作後におけるメモリセルの消去状態に基づいて、書き込み動作後における消去対象メモリセルの消去深さを判断する。すなわち、メモリコントローラ20は、バッファ22Aに記憶されたオフビット数から、書き込み動作後における消去対象メモリセルの消去深さを判断する(ステップS26)。詳述すると、メモリコントローラ20は、消去動作後の書き込み動作後にメモリセルの消去深さを判断する場合に、測定対象のメモリセルに対するステップS22、S23、S25の処理を実行する。ステップS22、S23、S25の処理が回数Xに達すると、メモリコントローラ20は、回数Xのオフビット数の平均値が基準値Y1を超えているか否かを判断する(ステップS27)。回数Xのオフビット数の平均値が基準値Y1を超えている場合(Yes)、メモリコントローラ20は、消去電圧VERAの初期電圧値PArを所定値だけ高くする(ステップS29)。一方、回数Xのオフビット数の平均値が基準値Y1を超えていない場合(No)、メモリコントローラ20は、「消去電圧VERAの初期電圧値を判断」の処理を終了する。
前述のステップS27におけるオフビット数が基準値Y1を超えている否かの判断の具体例については、第1実施形態と同様である。
次に、第2実施形態の消去動作の第2例におけるメモリコントローラ20と半導体記憶装置10間のコマンド、アドレス、及びデータの入出力について説明する。
図30は、第2実施形態の消去動作の第2例におけるコマンドシーケンスを示す図である。以下に説明するメモリコントローラ20から半導体記憶装置10へのコマンド及びアドレスの出力、及びメモリコントローラ20と半導体記憶装置10間のデータの入出力は、I/O信号DQ0~DQ7を用いて行われる。図30に示されるコマンドシーケンスは、コマンド、アドレス、データ入出力サイクルからなる。コマンドは六角形で表現し、アドレスは角丸四角形(または、長円形)で表現し、データ入出力サイクルは四角形で表現する。
図30に示すように、コマンドシーケンスは、「消去電圧VERAの初期電圧値を設定(ステップS31)」に対応するフェーズP11、「消去動作を命令(ステップS32)」に対応するフェーズP2、「書き込み動作を命令(ステップS35)」に対応するフェーズP5、下位ページリードのシフトリードにおける「判定レベルAR3を設定(ステップS21)」に対応するフェーズP3A、前記シフトリードにおける「下位ページリードを命令(ステップS22)」に対応するフェーズP4A、及び「ワンレベルリードを命令(ステップS25)」に対応するフェーズP6を有する。なお、フェーズP11は前述の図27に示したフェーズP11と同様であり、フェーズP2、P5、P3A、P4A、P6は前述の図20に示したフェーズP2、P5、P3A、P4A、P6と同様である。
先ず、消去電圧VERAの初期電圧値を設定するフェーズP11では、メモリコントローラ20は、消去モードを指定するコマンド“0Xh”、アドレス“00h”、及びデータ“PAr”を半導体記憶装置10に順に出力する。これにより、メモリコントローラ20は、半導体記憶装置10に消去モードを指定すると共に、消去対象ブロックBLKrへの消去動作で用いる消去電圧VERAの初期電圧値PArを半導体記憶装置10のレジスタ15D_2に設定する。
次に、消去動作を命令するフェーズP2では、メモリコントローラ20は、イレーズセットアップコマンド“60h”、消去対象ブロックBLKrのアドレス“ADD”、及びイレーズ実行コマンド“D0h”を半導体記憶装置10に順に出力する。イレーズ実行コマンド“D0h”を受けて、半導体記憶装置10のシーケンサ16は、初期電圧値PArの消去電圧VERAをウェル配線CPWELLに印加して、消去対象ブロックBLKrに対する消去動作を実行する。続いて、メモリコントローラ20は、半導体記憶装置10にステータスリードコマンド“70h”を出力する。ステータスリードコマンド“70h”を受けて、半導体記憶装置10は、ここでは例えば、消去動作にパスしたことを示すデータ“PASS”をメモリコントローラ20に出力する。
次に、書き込み動作を命令するフェーズP5では、メモリコントローラ20は、ライトセットアップコマンド“80h”、書き込み対象のアドレス“ADD1~ADD5”、書き込みデータ“DI”、及びライト実行コマンド“10h”を半導体記憶装置10に順に出力する。ライト実行コマンド“10h”を受けて、半導体記憶装置10のシーケンサ16は、アドレス“ADD1~ADD5”にて指定された書き込み対象のメモリセルに対して、書き込みデータ“DI”に応じた書き込み動作を実行する。なお、フェーズP5は、ブロック内の特定アドレスに対しての書き込み動作である。メモリコントローラ20は、ブロック内の一部のアドレスもしくは全てのアドレスへの書き込み動作を行うために、フェーズP5を繰り返し実施してもよい。
次に、判定レベルAR3を設定するフェーズP3Aでは、メモリコントローラ20は、シフトリードコマンド“X2h”、読み出し電圧ARを示すアドレス“01h”、及び読み出し電圧ARからのシフト値を示すデータ“SHIFT”を半導体記憶装置10に順に出力する。これにより、メモリコントローラ20は、下位ページリードのシフトリードで用いる判定レベルAR3を半導体記憶装置10に設定する。
次に、下位ページリードを命令するフェーズP4Aでは、メモリコントローラ20は、下位ページを示すコマンド“01h”、リードセットアップコマンド“00h”、測定対象のアドレス“ADD1~ADD5”、及びリード実行コマンド“30h”を半導体記憶装置10に順に出力する。リード実行コマンド“30h”を受けて、半導体記憶装置10のシーケンサ16は、アドレス“ADD1~ADD5”にて指定された測定対象のメモリセルに対して、判定レベルAR3での読み出し動作と、読み出し電圧ERでの読み出し動作を実行する。その後、シーケンサ16は、判定レベルAR3と読み出し電圧ERでの読み出し動作によって得られた誤り訂正前の下位ページデータ“RLP”をメモリコントローラ20に出力する。メモリコントローラ20は、受け取った誤り訂正前の下位ページデータ“RLP”に対してECC回路24によりエラー訂正を行い、誤り訂正後の下位ページデータCLPを算出する。
次に、ワンレベルリードを命令するフェーズP6では、メモリコントローラ20は、ワンレベルリードコマンド“X1h”、ステート“C”の読み出し電圧CRを示すアドレス“03h”、リードセットアップコマンド“00h”、測定対象のアドレス“ADD1~ADD5”、及びリード実行コマンド“30h”を半導体記憶装置10に順に出力する。リード実行コマンド“30h”を受けて、半導体記憶装置10のシーケンサ16は、アドレス“ADD1~ADD5”にて指定された測定対象のメモリセルに対して、読み出し電圧CRでの読み出し動作を実行する。その後、半導体記憶装置10は、読み出し電圧CRでの読み出し動作によって得られた読み出し結果RCRをメモリコントローラ20に出力する。
その後、メモリコントローラ20は、上述したように、誤り訂正前の下位ページデータRLPに論理否定演算を施したデータRLP2と、2つのデータCLP、RCRとの論理積演算を行い、消去深さを判断するためのオフビット数を算出する。
第2例では、書き込み動作後の読み出し動作により、メモリコントローラ20は、消去対象ブロックBLKr内の測定対象のメモリセル中におけるオフビット数を取得する。メモリコントローラ20は、オフビット数に基づいて、消去電圧VERAの初期電圧値PArを更新する、あるいは更新せずに維持する。
2.2 第2実施形態の効果
第2実施形態によれば、消去動作後あるいは書き込み動作後において、初回の消去ループにおける消去電圧VERAの初期電圧値を調整あるいは更新することにより、消去動作によるメモリセルに対する消去を最適化することができる。言い換えると、初回の消去ループにおける消去電圧VERAの初期電圧値を調整あるいは更新することにより、消去動作によってメモリセルが消去不足状態あるいは過消去状態に遷移するのを回避することができる。
第2実施形態によれば、消去動作後あるいは書き込み動作後において、初回の消去ループにおける消去電圧VERAの初期電圧値を調整あるいは更新することにより、消去動作によるメモリセルに対する消去を最適化することができる。言い換えると、初回の消去ループにおける消去電圧VERAの初期電圧値を調整あるいは更新することにより、消去動作によってメモリセルが消去不足状態あるいは過消去状態に遷移するのを回避することができる。
消去動作によるメモリセルの過消去状態への遷移を回避することで、消去動作によってメモリセルに生じるダメージを低減できる。さらに、消去動作によるメモリセルの消去不足状態への遷移を回避することで、例えばステートAの読み出しを含むページリードにおけるリードエラーを低減できる。その他の構成及び効果は第1実施形態と同様である。
3.第3実施形態
以下に、第3実施形態のメモリシステム1における消去動作について説明する。第3実施形態のメモリシステム1が備える構成は、第1実施形態の構成と同様である。第3実施形態では、主に第1及び第2実施形態と異なる点について説明する。
以下に、第3実施形態のメモリシステム1における消去動作について説明する。第3実施形態のメモリシステム1が備える構成は、第1実施形態の構成と同様である。第3実施形態では、主に第1及び第2実施形態と異なる点について説明する。
3.1 第3実施形態の消去動作
第3実施形態の消去動作では、消去動作後のメモリセルの消去結果に基づいて、あるいは消去動作後の書き込み動作後におけるメモリセルの消去結果に基づいて、消去電圧VERAの初期電圧値あるいはパルス時間の少なくとも1つを調整(または、変更)する。この第3実施形態において調整する消去電圧VERAの初期電圧値は、初回の消去ループにおける消去電圧VERAの電圧値である。
第3実施形態の消去動作では、消去動作後のメモリセルの消去結果に基づいて、あるいは消去動作後の書き込み動作後におけるメモリセルの消去結果に基づいて、消去電圧VERAの初期電圧値あるいはパルス時間の少なくとも1つを調整(または、変更)する。この第3実施形態において調整する消去電圧VERAの初期電圧値は、初回の消去ループにおける消去電圧VERAの電圧値である。
3.1.1 消去動作の第1例
第1例では、消去動作後において、消去対象ブロック内の測定対象のワード線WL及びストリングユニットSUに含まれるメモリセルの消去結果に基づいて、消去電圧VERAの初期電圧値あるいはパルス時間の少なくとも1つを更新する。ここでは、消去電圧VERAの初期電圧値が基準値を超えていない場合、消去電圧VERAの初期電圧値を更新するか否かを判断し、消去電圧VERAの初期電圧値が基準値を超えている場合、消去電圧VERAのパルス時間を更新するか否かを判断する例を示す。
第1例では、消去動作後において、消去対象ブロック内の測定対象のワード線WL及びストリングユニットSUに含まれるメモリセルの消去結果に基づいて、消去電圧VERAの初期電圧値あるいはパルス時間の少なくとも1つを更新する。ここでは、消去電圧VERAの初期電圧値が基準値を超えていない場合、消去電圧VERAの初期電圧値を更新するか否かを判断し、消去電圧VERAの初期電圧値が基準値を超えている場合、消去電圧VERAのパルス時間を更新するか否かを判断する例を示す。
図31は、第3実施形態のメモリシステム1における消去動作の第1例を示すフローチャートである。図32は、メモリコントローラ20と半導体記憶装置10間で行われる動作のやり取りを示す図である。図33は、メモリコントローラ20のメモリ22内に設けられるパルス時間及び電圧値管理テーブル22B_3の一例を示す図である。管理テーブル22B_3は、消去電圧VERAのパルス時間及び初期電圧値を管理する。管理テーブル22B_3には、ブロックBLKr毎に、そのブロックBLKrの消去動作に用いるパルス時間PDr及び初期電圧値PArが対応付けられている。図31に示す処理は、メモリコントローラ20(あるいは、CPU21)により命令され、制御される。
図31及び図32に示すように、消去動作が開始すると、まず、メモリコントローラ20は、管理テーブル22B_3内の消去対象ブロックBLKrに対応する消去電圧VERAのパルス時間PDrを、半導体記憶装置10に送信し、半導体記憶装置10のレジスタ15D_1に記憶させる(ステップS41)。
次に、メモリコントローラ20は、管理テーブル22B_3内の消去対象ブロックBLKrに対応する消去電圧VERAの初期電圧値PArを、半導体記憶装置10に送信し、半導体記憶装置10のレジスタ15D_2に記憶させる(ステップS42)。
次に、メモリコントローラ20は、半導体記憶装置10に消去動作を命令する(ステップS43)。消去動作の命令を受けて、半導体記憶装置10のシーケンサ16は、レジスタ15D_1及び15D_2に記憶されたパルス時間PDr及び初期電圧値PArを用いて、消去対象ブロックBLKrに対して消去動作を実行する。
次に、メモリコントローラ20は、消去動作に用いた消去電圧VERAの初期電圧値PArが基準値Yを超えているか否かを判断する(ステップS44)。初期電圧値PArが基準値Yを超えていない場合(No)、メモリコントローラ20は、「消去電圧VERAの初期電圧値を判断」(ステップS45)に移行する。このステップS45の処理は、前述の図23に示したステップS33の処理と同様である。
続いて、メモリコントローラ20は、ステップS45の「消去電圧VERAの初期電圧値を判断」による判断結果に基づいて、メモリ22の管理テーブル22B_3内の消去対象ブロックBLKrに対応する初期電圧値PArを更新する(ステップS46)。
一方、ステップS44の判断において、消去電圧VERAの初期電圧値PArが基準値Yを超えている場合(Yes)、メモリコントローラ20は、「消去電圧VERAのパルス時間を判断」(ステップS47)に移行する。このステップS47の処理は、前述の図8に示したステップS3の処理と同様である。
続いて、メモリコントローラ20は、ステップS47の「消去電圧VERAのパルス時間を判断」による判断結果に基づいて、メモリ22の管理テーブル22B_3内の消去対象ブロックBLKrに対応するパルス時間PDrを更新する(ステップS48)。以上により、消去動作が終了する。
次に、第3実施形態の消去動作の第1例におけるメモリコントローラ20と半導体記憶装置10間のコマンド、アドレス、及びデータの入出力について説明する。
図34は、第3実施形態の消去動作の第1例におけるコマンドシーケンスを示す図である。以下に説明するメモリコントローラ20から半導体記憶装置10へのコマンド及びアドレスの出力、及びメモリコントローラ20と半導体記憶装置10間のデータの出力は、I/O信号DQ0~DQ7を用いて行われる。図34に示されるコマンドシーケンスは、コマンド、アドレス、データ入出力サイクルからなる。コマンドは六角形で表現し、アドレスは角丸四角形(または、長円形)で表現し、データ入出力サイクルは四角形で表現する。
図34に示すように、コマンドシーケンスは、「消去電圧VERAのパルス時間を設定(ステップS41)」に対応するフェーズP1、「消去電圧VERAの初期電圧値を設定(ステップS42)」に対応するフェーズP11、「消去動作を命令(ステップS43)」に対応するフェーズP2、「判定レベルAR2を設定(ステップS11)」に対応するフェーズP3、及び「ワンレベルリードを命令(ステップS12)」に対応するフェーズP4を有する。なお、フェーズP1、P11、P2、P3、P4は、前述の図15及び図27に示したフェーズフェーズP1、P11、P2、P3、P4と同様である。
先ず、消去電圧VERAのパルス時間を設定するフェーズP1では、メモリコントローラ20は、コマンド“0Xh”、アドレス“00h”、及びデータ“PDr”を半導体記憶装置10に順に出力する。コマンド“0Xh”は、消去モードを指定するコマンドである。アドレス“00h”は、消去電圧VERAのパルス時間を設定するアドレスである。データ“PDr”は、消去対象ブロックBLKrに対応する消去電圧VERAのパルス時間を示すデータである。これにより、メモリコントローラ20は、半導体記憶装置10に消去モードを指定すると共に、消去対象ブロックBLKrへの消去動作で用いる消去電圧VERAのパルス時間PDrを半導体記憶装置10のレジスタ15D_1に設定する。
次に、消去電圧VERAの初期電圧値を設定するフェーズP11では、メモリコントローラ20は、コマンド“0Xh”、アドレス“01h”、及び“PAr”を半導体記憶装置10に順に出力する。コマンド“0Xh”は、消去モードを指定するコマンドである。アドレス“01h”は、消去電圧VERAの初期電圧値を設定するアドレスである。データ“PAr”は、消去対象ブロックBLKrに対応する消去電圧VERAの初期電圧値を示すデータである。これにより、メモリコントローラ20は、半導体記憶装置10に消去モードを指定すると共に、消去対象ブロックBLKrへの消去動作で用いる消去電圧VERAの初期電圧値PArを半導体記憶装置10のレジスタ15D_2に設定する。
次に、消去動作を命令するフェーズP2では、メモリコントローラ20は、イレーズセットアップコマンド“60h”、消去対象ブロックBLKrのアドレス“ADD”、及びイレーズ実行コマンド“D0h”を半導体記憶装置10に順に出力する。イレーズ実行コマンド“D0h”を受けて、半導体記憶装置10のシーケンサ16は、パルス時間PDr及び初期電圧値PArの消去電圧VERAをウェル配線CPWELLに印加して、消去対象ブロックBLKrに対する消去動作を実行する。
その後、メモリコントローラ20は、半導体記憶装置10にステータスリードコマンド“70h”を出力する。ステータスリードコマンド“70h”を受けて、半導体記憶装置10は、ここでは例えば、消去動作にパスしたことを示すデータ“PASS”をメモリコントローラ20に出力する。
次に、判定レベルAR2を設定するフェーズP3では、メモリコントローラ20は、ステート“A”のシングルステートコマンド“X1h”、ステート“A”の読み出し電圧ARを示すアドレス“01h”、シフトリードコマンド“X2h”、アドレス“01h”、及び読み出し電圧ARからのシフト値を示すデータ“SHIFT”を半導体記憶装置10に順に出力する。これにより、メモリコントローラ20は、ワンレベルリードのシフトリードで用いる判定レベルAR2を半導体記憶装置10に設定する。
次に、リードを命令するフェーズP4では、メモリコントローラ20は、リードセットアップコマンド“00h”、アドレス“ADD1~ADD5”、及びリード実行コマンド“30h”を半導体記憶装置10に順に出力する。リード実行コマンド“30h”を受けて、半導体記憶装置10のシーケンサ16は、アドレス“ADD1~ADD5”にて指定された測定対象のメモリセルに対して、判定レベルAR2での読み出し動作を実行する。その後、シーケンサ16は、判定レベルAR2での読み出し動作で読み出した結果RA2Rを半導体記憶装置10からメモリコントローラ20に出力する。メモリコントローラ20は、読み出した結果RA2Rからオフビット数“DO3”をカウントする。
第1例では、消去動作後において、メモリコントローラ20は、消去電圧VERAの初期電圧値が基準値を超えていない場合、消去電圧VERAの初期電圧値を更新するか否かを判断し、消去電圧VERAの初期電圧値が基準値を超えている場合、消去電圧VERAのパルス時間を更新するか否かを判断する。
なお、第1例においては、メモリコントローラ20は、先に、消去電圧VERAの初期電圧値が基準値を超えているか否かを判断し、初期電圧値が基準値を超えている場合、消去電圧VERAのパルス時間を更新するか否かを判断したが、これに限るわけではない。初期電圧値とパルス時間とを入れ換えて、先に、消去電圧VERAのパルス時間が基準値を超えているか否かを判断し、パルス時間が基準値を超えている場合、消去電圧VERAの初期電圧値を更新するか否かを判断するようにしてもよい。
3.1.2 消去動作の第2例
第2例では、消去動作後の書き込み動作後において、消去対象ブロック内の測定対象のワード線WL及びストリングユニットSUに含まれるメモリセルの消去結果に基づいて、消去電圧VERAの初期電圧値あるいはパルス時間の少なくとも1つを更新する。第2例においては、消去動作と、消去電圧VERAの初期電圧値が基準値を超えているか否かの判断との間に、書き込み動作が追加される。
第2例では、消去動作後の書き込み動作後において、消去対象ブロック内の測定対象のワード線WL及びストリングユニットSUに含まれるメモリセルの消去結果に基づいて、消去電圧VERAの初期電圧値あるいはパルス時間の少なくとも1つを更新する。第2例においては、消去動作と、消去電圧VERAの初期電圧値が基準値を超えているか否かの判断との間に、書き込み動作が追加される。
図35は、第3実施形態のメモリシステム1における消去動作の第2例を示すフローチャートである。図35に示す処理は、メモリコントローラ20(あるいは、CPU21)により命令され、制御される。
第1例と同様に、メモリコントローラ20は、管理テーブル22B_3内の消去対象ブロックBLKrに対応する消去電圧VERAのパルス時間PDrを、半導体記憶装置10に送信し、半導体記憶装置10のレジスタ15D_1に設定する(ステップS41)。
次に、メモリコントローラ20は、管理テーブル22B_3内の消去対象ブロックBLKrに対応する消去電圧VERAの初期電圧値PArを、半導体記憶装置10に送信し、半導体記憶装置10のレジスタ15D_2に設定する(ステップS42)。
さらに、メモリコントローラ20は、半導体記憶装置10に消去動作を命令する(ステップS43)。消去動作の命令を受けて、半導体記憶装置10のシーケンサ16は、消去対象ブロックBLKrに対して消去動作を実行する。
消去対象ブロックBLKrに対して消去動作が実行された後、メモリコントローラ20は、半導体記憶装置10に書き込み動作を命令する(ステップS49)。書き込み動作の命令を受けて、半導体記憶装置10のシーケンサ16は、消去対象ブロックBLKr内の書き込み対象のメモリセルに対して書き込み動作を実行する。
その後のステップS44、S45、S46、及びステップS44、S47、S48の処理は、図31に示した第1例と同様である。すなわち、メモリコントローラ20は、消去動作に用いた消去電圧VERAの初期電圧値PArが基準値Yを超えているか否かを判断し(ステップS44)、初期電圧値PArが基準値Yを超えていない場合(No)、初期電圧値PArを更新するか否かを判断する(ステップS45)。この判断結果に従って、メモリコントローラ20は、消去電圧VERAの初期電圧値PArを更新する、あるいは更新せずに維持する(ステップS46)。
一方、ステップS44において初期電圧値PArが基準値Yを超えている場合(Yes)、メモリコントローラ20は、消去電圧VERAのパルス時間PDrを更新するか否かを判断する(ステップS47)。この判断結果に従って、メモリコントローラ20は、消去電圧VERAのパルス時間PDrを更新する、あるいは更新せずに維持する(ステップS48)。以上により、消去動作が終了する。
次に、第3実施形態の消去動作の第2例におけるメモリコントローラ20と半導体記憶装置10間のコマンド、アドレス、及びデータの入出力について説明する。
図36は、第3実施形態の消去動作の第2例におけるコマンドシーケンスを示す図である。以下に説明するメモリコントローラ20から半導体記憶装置10へのコマンド及びアドレスの出力、及びメモリコントローラ20と半導体記憶装置10間のデータの入出力は、I/O信号DQ0~DQ7を用いて行われる。図36に示されるコマンドシーケンスは、コマンド、アドレス、データ入出力サイクルからなる。コマンドは六角形で表現し、アドレスは角丸四角形(または、長円形)で表現し、データ入出力サイクルは四角形で表現する。
図36に示すように、コマンドシーケンスは、「消去電圧VERAのパルス時間を設定(ステップS41)」に対応するフェーズP1、「消去電圧VERAの初期電圧値を設定(ステップS42)」に対応するフェーズP11、「消去動作を命令(ステップS43)」に対応するフェーズP2、「書き込み動作を命令(ステップS49)」に対応するフェーズP5、下位ページリードのシフトリードにおける「判定レベルAR3を設定(ステップS21)」に対応するフェーズP3A、前記シフトリードにおける「下位ページリードを命令(ステップS22)」に対応するフェーズP4A、及び「ワンレベルリードを命令(ステップS25)」に対応するフェーズP6を有する。なお、フェーズP1、P11、P2、P5、P3A、P4A、P6は、前述の図15、図20及び図27に示したフェーズP1、P11、P2、P5、P3A、P4A、P6と同様である。
第1例と同様に、先ず、消去電圧VERAのパルス時間を設定するフェーズP1では、メモリコントローラ20は、コマンド“0Xh”、アドレス“00h”、及びパルス時間を示すデータ“PDr”を半導体記憶装置10に順に出力する。これにより、メモリコントローラ20は、消去電圧VERAのパルス時間PDrを半導体記憶装置10のレジスタ15D_1に設定する。
次に、消去電圧VERAの初期電圧値を設定するフェーズP11では、メモリコントローラ20は、コマンド“0Xh”、アドレス“01h”、及び初期電圧値を示すデータ“PAr”を半導体記憶装置10に順に出力する。これにより、メモリコントローラ20は、消去電圧VERAの初期電圧値PArを半導体記憶装置10のレジスタ15D_2に設定する。
次に、消去動作を命令するフェーズP2では、メモリコントローラ20は、イレーズセットアップコマンド“60h”、消去対象ブロックBLKrのアドレス“ADD”、及びイレーズ実行コマンド“D0h”を半導体記憶装置10に順に出力する。イレーズ実行コマンド“D0h”を受けて、半導体記憶装置10のシーケンサ16は、パルス時間PDr及び初期電圧値PArの消去電圧VERAをウェル配線CPWELLに印加して、消去対象ブロックBLKrに対する消去処理を実行する。
その後、メモリコントローラ20は、半導体記憶装置10にステータスリードコマンド“70h”を出力する。ステータスリードコマンド“70h”を受けて、半導体記憶装置10は、ここでは例えば、消去動作にパスしたことを示すデータ“PASS”をメモリコントローラ20に出力する。
次に、書き込み動作を命令するフェーズP5では、メモリコントローラ20は、ライトセットアップコマンド“80h”、書き込み対象のアドレス“ADD1~ADD5”、書き込みデータ“DI”、及びライト実行コマンド“10h”を半導体記憶装置10に順に出力する。ライト実行コマンド“10h”を受けて、半導体記憶装置10のシーケンサ16は、アドレス“ADD1~ADD5”にて指定された書き込み対象のメモリセルに対して、書き込みデータ“DI”に応じた書き込み動作を実行する。なお、フェーズP5は、ブロック内の特定アドレスに対しての書き込み動作である。メモリコントローラ20は、ブロック内の一部のアドレスもしくは全てのアドレスへの書き込み動作を行うために、フェーズP5を繰り返し実施してもよい。
次に、判定レベルAR3を設定するフェーズP3Aでは、メモリコントローラ20は、シフトリードコマンド“X2h”、読み出し電圧ARを示すアドレス“01h”、及び読み出し電圧ARからのシフト値を示すデータ“SHIFT”を半導体記憶装置10に順に出力する。これにより、メモリコントローラ20は、下位ページリードのシフトリードで用いる判定レベルAR3を半導体記憶装置10に設定する。
次に、下位ページリードを命令するフェーズP4Aでは、メモリコントローラ20は、下位ページを示すコマンド“01h”、リードセットアップコマンド“00h”、測定対象のアドレス“ADD1~ADD5”、及びリード実行コマンド“30h”を半導体記憶装置10に順に出力する。リード実行コマンド“30h”を受けて、半導体記憶装置10のシーケンサ16は、アドレス“ADD1~ADD5”にて指定された測定対象のメモリセルに対して、判定レベルAR3での読み出し動作と、ステート“E”の読み出し電圧ERでの読み出し動作を実行する。シーケンサ16は、この読み出し動作の実行中、レディ/ビジー信号R/Bnをレディ状態からビジー状態(R/Bn=“L”)に遷移させる。その後、シーケンサ16は、判定レベルAR3と読み出し電圧ERでの読み出し動作によって得られた誤り訂正前の下位ページデータRLPをメモリコントローラ20に出力する。メモリコントローラ20は、受け取った誤り訂正前の下位ページデータRLPに対してECC回路24によりエラー訂正を行い、誤り訂正後の下位ページデータCLPを算出する。
次に、ワンレベルリードを命令するフェーズP6では、メモリコントローラ20は、ワンレベルリードコマンド“X1h”、ステート“C”の読み出し電圧CRを示すアドレス“03h”、リードセットアップコマンド“00h”、測定対象のアドレス“ADD1~ADD5”、及びリード実行コマンド“30h”を半導体記憶装置10に順に出力する。リード実行コマンド“30h”を受けて、半導体記憶装置10のシーケンサ16は、アドレス“ADD1~ADD5”にて指定された測定対象のメモリセルに対して、読み出し電圧CRでの読み出し動作を実行する。シーケンサ16は、この読み出し動作の実行中、レディ/ビジー信号R/Bnをレディ状態からビジー状態(R/Bn=“L”)に遷移させる。その後、半導体記憶装置10は、読み出し電圧CRでの読み出し動作によって得られた読み出し結果RCRをメモリコントローラ20に出力する。
その後、メモリコントローラ20は、上述したように、誤り訂正前の下位ページデータRLPに論理否定演算を施したデータRLP2と、2つのデータCLP、RCRとの論理積演算を行い、消去深さを判断するためのオフビット数を算出する。
第2例では、消去動作後の書き込み動作後において、メモリコントローラ20は、消去電圧VERAの初期電圧値が基準値を超えていない場合、消去電圧VERAの初期電圧値を更新するか否かを判断し、消去電圧VERAの初期電圧値が基準値を超えている場合、消去電圧VERAのパルス時間を更新するか否かを判断する。
なお、第2例においても、メモリコントローラ20は、先に、消去電圧VERAの初期電圧値が基準値を超えているか否かを判断し、初期電圧値が基準値を超えている場合、消去電圧VERAのパルス時間を更新するか否かを判断したが、これに限るわけではない。初期電圧値とパルス時間とを入れ換えて、先に、消去電圧VERAのパルス時間が基準値を超えているか否かを判断し、パルス時間が基準値を超えている場合、消去電圧VERAの初期電圧値を更新するか否かを判断するようにしてもよい。
3.2 第3実施形態の効果
第3実施形態によれば、消去動作後あるいは書き込み動作後において、初回の消去ループにおける消去電圧VERAの初期電圧値あるいはパルス時間の少なくとも1つを調整あるいは更新することにより、消去動作によるメモリセルに対する消去を最適化することができる。言い換えると、初回の消去ループにおける消去電圧VERAの初期電圧値あるいはパルス時間の少なくとも1つを調整あるいは更新することにより、消去動作によってメモリセルが消去不足状態あるいは過消去状態に遷移するのを回避することができる。
第3実施形態によれば、消去動作後あるいは書き込み動作後において、初回の消去ループにおける消去電圧VERAの初期電圧値あるいはパルス時間の少なくとも1つを調整あるいは更新することにより、消去動作によるメモリセルに対する消去を最適化することができる。言い換えると、初回の消去ループにおける消去電圧VERAの初期電圧値あるいはパルス時間の少なくとも1つを調整あるいは更新することにより、消去動作によってメモリセルが消去不足状態あるいは過消去状態に遷移するのを回避することができる。
消去動作によるメモリセルの過消去状態への遷移を回避することで、消去動作によってメモリセルに生じるダメージを低減できる。さらに、消去動作によるメモリセルの消去不足状態への遷移を回避することで、例えばステートAの読み出しを含むページリードにおけるリードエラーを低減できる。その他の構成及び効果は第1実施形態と同様である。
4.第4実施形態
以下に、第4実施形態のメモリシステム1における消去動作について説明する。第4実施形態のメモリシステム1が備える構成は、第1実施形態の構成と同様である。第4実施形態では、主に第1実施形態と異なる点について説明する。
以下に、第4実施形態のメモリシステム1における消去動作について説明する。第4実施形態のメモリシステム1が備える構成は、第1実施形態の構成と同様である。第4実施形態では、主に第1実施形態と異なる点について説明する。
4.1 第4実施形態の消去動作
第4実施形態の消去動作では、半導体記憶装置10内で消去動作後のメモリセルの消去深さを判断し、判断結果をメモリコントローラ20に通知する第1例と、読み出し動作における複数の判定レベルで得られた消去結果に基づいて、消去電圧VERAのパルス時間を調整する第2例について説明する。
第4実施形態の消去動作では、半導体記憶装置10内で消去動作後のメモリセルの消去深さを判断し、判断結果をメモリコントローラ20に通知する第1例と、読み出し動作における複数の判定レベルで得られた消去結果に基づいて、消去電圧VERAのパルス時間を調整する第2例について説明する。
4.1.1 消去動作の第1例
第1例では、消去動作後において、消去対象ブロック内の測定対象のワード線WL及びストリングユニットSUに含まれるメモリセルの消去深さを半導体記憶装置10内で判断し、判断結果をメモリコントローラ20に通知する。メモリコントローラ20は、受け取った判断結果に従って、消去電圧VERAのパルス時間を更新する。
第1例では、消去動作後において、消去対象ブロック内の測定対象のワード線WL及びストリングユニットSUに含まれるメモリセルの消去深さを半導体記憶装置10内で判断し、判断結果をメモリコントローラ20に通知する。メモリコントローラ20は、受け取った判断結果に従って、消去電圧VERAのパルス時間を更新する。
以下に、第4実施形態の消去動作の第1例におけるメモリコントローラ20と半導体記憶装置10間のコマンド、アドレス、及びデータの入出力について説明する。
図37は、第4実施形態の消去動作の第1例におけるコマンドシーケンスを示す図である。以下に説明するメモリコントローラ20から半導体記憶装置10へのコマンド及びアドレスの出力、及びメモリコントローラ20と半導体記憶装置10間のデータの入出力は、I/O信号DQ0~DQ7を用いて行われる。なおここでは、オフビット数を取得するための判定レベルとして、通常の消去ベリファイ処理で用意された判定レベルを用いる。図37に示されるコマンドシーケンスは、コマンド、アドレス、データ入出力サイクルからなる。コマンドは六角形で表現し、アドレスは角丸四角形(または、長円形)で表現し、データ入出力サイクルは四角形で表現する。
図37に示すように、コマンドシーケンスは、「消去電圧VERAのパルス時間を設定」に対応するフェーズP1、「消去動作を命令」に対応するフェーズP21、及び「消去深さ(判断結果)を出力」に対応するフェーズP22を有する。
フェーズP21が含むコマンド“Y0h”は、消去動作からオフビット数のカウントまでの動作を半導体記憶装置10に命ずるコマンドである。コマンド“Y0h”は、判定レベルAR2を設定(ステップS11)」に対応するフェーズP3、「下位ページリードを命令(ステップS22)」に対応するフェーズP4もしくはP4A、及び「ワンレベルリードを命令(ステップS25)」に対応するフェーズP6を含む。さらに本実施例では、これまでメモリコントローラ20が処理していたオフビット数のカウントを半導体記憶装置10で実施する処理を含む。このため、メモリコントローラ20は、半導体記憶装置10に、これらフェーズP3、P4(もしくはP4A)、及びP6を指定せず、フェーズP21を指定するだけで、メモリセルの消去深さを示すオフビット数を取得できる。
先ず、消去電圧VERAのパルス時間を設定するフェーズP1では、メモリコントローラ20は、コマンド“0Xh”、アドレス“00h”、及びデータ“PDr”を半導体記憶装置10に順に出力する。コマンド“0Xh”は、消去モードを指定するコマンドである。アドレス“00h”は、消去電圧VERAのパルス時間を設定するアドレスである。データ“PDr”は、消去対象ブロックBLKrに対応する消去電圧VERAのパルス時間を示すデータである。これにより、メモリコントローラ20は、半導体記憶装置10に消去モードを指定すると共に、消去電圧VERAのパルス時間PDrを半導体記憶装置10のレジスタ15D_1に設定する。
次に、消去動作を命令するフェーズP21では、メモリコントローラ20は、消去動作時のオフビット数を算出することを含めた消去コマンド“Y0h” 、イレーズセットアップコマンド“60h”、消去対象ブロックBLKrのアドレス“ADD”、及びイレーズ実行コマンド“D0h”を半導体記憶装置10に順に出力する。コマンド“Y0h”を受けて、半導体記憶装置10のシーケンサ16は、「判定レベルAR2を設定(ステップS11)」に対応するフェーズP3、「下位ページリードを命令(ステップS22)」に対応するフェーズP4もしくはP4A、及び「ワンレベルリードを命令(ステップS25)」に対応するフェーズP6を実行する。その後、イレーズ実行コマンド“D0h”を受けて、半導体記憶装置10のシーケンサ16は、パルス時間PDrの消去電圧VERAをウェル配線CPWELLに印加して、消去対象ブロックBLKrに対する消去処理を実行する。
さらに、シーケンサ16は、消去対象ブロックBLKrに対する消去ベリファイ処理を実行し、オフビット数を取得する。すなわち、シーケンサ16は、消去対象ブロックBLKr内のメモリセルに対して、消去ベリファイ処理で用いる判定レベルで読み出し動作を実行し、オフビット数を取得する。シーケンサ16は、取得したオフビット数から、消去動作後のメモリセルの消去深さ(即ち、消去不足状態、あるいは消去適正状態、過消去状態)を判断する。
次に、メモリコントローラ20は、半導体記憶装置10にステータスリードコマンド“70h”を出力する。ステータスリードコマンド“70h”を受けて、半導体記憶装置10は、ここでは例えば、消去動作にパスしたことを示すデータ“PASS”をメモリコントローラ20に出力する。
次に、フェーズP22に示すように、メモリコントローラ20は、消去深さを示すデータを出力するためのステータスリードコマンド“7Xh”を半導体記憶装置10に出力する。ステータスリードコマンド“7Xh”を受けて、半導体記憶装置10のシーケンサ16は、消去深さを示すデータ“DO5”をメモリコントローラ20に出力する。
その後、メモリコントローラ20は、消去深さを示すデータ“DO5”を、予め設定された閾値と比較し、比較結果に応じて、消去電圧VERAのパルス時間PDrを更新する。例えば、消去深さを示すデータ“DO5”が過消去状態である場合、メモリコントローラ20は、消去電圧VERAのパルス時間PDrを所定時間だけ短くする。また、消去深さを示すデータ“DO5”が消去適正状態である場合、メモリコントローラ20は、消去電圧VERAのパルス時間PDrを更新せず、そのまま維持する。消去深さを示すデータ“DO5”が消去不足状態である場合、メモリコントローラ20は、消去電圧VERAのパルス時間PDrを所定時間だけ長くする。
第1例では、消去動作後に、消去対象ブロックBLKr内のメモリセルに対する読み出し動作で取得したオフビット数に基づいて、半導体記憶装置10内のシーケンサ16がメモリセルの消去深さを判断し、消去深さを示すデータをメモリコントローラ20に通知する。メモリコントローラ20は、消去深さを示すデータに基づいて、消去電圧VERAのパルス時間PDrを更新する、あるいは更新せずに維持する。
なお、第1例においては、メモリコントローラ20は、消去深さを示すデータに基づいて、消去電圧VERAのパルス時間を更新するか否かを判断し、パルス時間を更新したが、これに換えて、消去深さを示すデータに基づいて、消去電圧VERAの初期電圧値を更新するか否かを判断し、初期電圧値を更新してもよい。
4.1.2 消去動作の第2例
第2例では、消去動作後において、複数の判定レベルを用いた読み出し動作で取得した消去結果に基づいて、消去電圧VERAのパルス時間を更新する例を示す。
第2例では、消去動作後において、複数の判定レベルを用いた読み出し動作で取得した消去結果に基づいて、消去電圧VERAのパルス時間を更新する例を示す。
図38は、第4実施形態のメモリシステム1における消去動作の第2例を示すフローチャートである。この消去動作の第2例を示すフローチャートは、「消去電圧VERAのパルス時間を判断」(ステップS3B)を除いて、図8に示した第1実施形態の消去動作の第1例のフローチャートと同様である。以下に、図38に示すステップS3Bの「消去電圧VERAのパルス時間を判断」の処理について説明する。
図39は、図38におけるステップS3Bの「消去電圧VERAのパルス時間を判断」の処理を示すフローチャートである。図39に示す処理は、メモリコントローラ20(あるいは、CPU21)により命令され、制御される。図40は、ステップS3Bの判断で用いられる判定レベルAR1~AR4に対するメモリセルの閾値電圧分布を示す図である。図41は、判定レベルAR1~AR4にて取得したオフビット数と消去状態との関係を示す図である。なお、判定レベルAR1~AR4の大小関係は、AR4<AR3<AR2<AR1である。また、消去状態にあるメモリセルの閾値電圧分布の裾が、判定レベルAR3とAR2間に存在する場合に、消去深さが適正であると判断されるものとする。
図39に示すように、先ず、メモリコントローラ20は、読み出し電圧を、ステート“A”の読み出し電圧ARに設定し、さらに読み出し電圧ARからシフトさせるシフト値F3を設定する。ここで、読み出し電圧ARからシフト値F3だけシフトさせた読み出し電圧を判定レベルAR3と定義する。判定レベルAR3は、消去動作後におけるメモリセルの消去深さを判断する電圧レベルである。メモリコントローラ20は、読み出し電圧ARからシフト値F3だけシフトさせた判定レベルAR3(図40参照)を、半導体記憶装置10に設定する。さらに、メモリコントローラ20は、半導体記憶装置10に消去対象ブロックBLKr内の測定対象のワード線WL及びストリングユニットSUを指定する(ステップS51)。
次に、メモリコントローラ20は、半導体記憶装置10に“ワンレベルリード”を命令する(ステップS52)。“ワンレベルリード”の命令を受けて、半導体記憶装置10のシーケンサ16は、測定対象のメモリセルに対して、設定された判定レベルAR3で読み出し動作を実行する。この読み出し動作では、閾値電圧が判定レベルAR3より高いメモリセルは、オン状態とならず、オフ状態のままである。シーケンサ16は、判定レベルAR3での読み出し結果RA3Rを半導体記憶装置10からメモリコントローラ20に出力する。メモリコントローラ20は、読み出し結果RA3Rから、オン状態とならずにオフ状態のままのメモリセルの数(以下、第1オフビット数と記す)をカウントする。メモリコントローラ20は、第1オフビット数をメモリ22内のバッファ22Aに記憶する。
次に、メモリコントローラ20は、判定レベルAR3での読み出し結果に基づいて、消去動作後のメモリセルの消去深さを判断する。すなわち、判定レベルAR3での読み出し動作によって取得した第1オフビット数に基づいて、消去動作後のメモリセルの消去深さを判断する。具体的には、メモリコントローラ20は、第1オフビット数が基準値Y3を超えているか否かを判断する(ステップS53)。
ステップS53において、第1オフビット数が基準値Y3を超えている場合(Yes)、メモリコントローラ20は、読み出し電圧を、ステート“A”の読み出し電圧ARに設定し、さらに読み出し電圧ARからシフトさせるシフト値F2を設定する。ここで、読み出し電圧ARからシフト値F2だけシフトさせた読み出し電圧を判定レベルAR2と定義する。判定レベルAR2は、消去動作後におけるメモリセルの消去深さを判断する電圧レベルである。メモリコントローラ20は、読み出し電圧ARからシフト値F2だけシフトさせた判定レベルAR2(図40参照)を、半導体記憶装置10に設定する。さらに、メモリコントローラ20は、半導体記憶装置10に、消去対象ブロックBLKr内の測定対象のワード線WL及びストリングユニットSUを指定する(ステップS54)。
次に、メモリコントローラ20は、半導体記憶装置10にステート“A”の“ワンレベルリード”を命令する(ステップS55)。ステート“A”の“ワンレベルリード”の命令を受けて、半導体記憶装置10のシーケンサ16は、測定対象のメモリセルに対して、設定された判定レベルAR2で読み出し動作を実行する。この読み出し動作では、閾値電圧が判定レベルAR2より高いメモリセルは、オン状態とならず、オフ状態のままである。シーケンサ16は、判定レベルAR2での読み出し結果RA2Rを半導体記憶装置10からメモリコントローラ20に出力する。メモリコントローラ20は、読み出し結果RA2Rから、オン状態とならずにオフ状態のままのメモリセルの数(以下、第2オフビット数と記す)をカウントする。メモリコントローラ20は、第2オフビット数をメモリ22内のバッファ22Aに記憶する。
次に、メモリコントローラ20は、判定レベルAR2での読み出し結果に基づいて、メモリセルの消去深さを判断する。すなわち、判定レベルAR2での読み出し動作によって取得した第2オフビット数に基づいて、メモリセルの消去深さを判断する。具体的には、メモリコントローラ20は、第2オフビット数が基準値Y2を超えているか否かを判断する(ステップS56)。
ステップS56において、第2オフビット数が基準値Y2を超えていない場合(No)、メモリコントローラ20は、メモリセルの消去深さが消去適正状態であると判断し、パルス時間の判断処理を終了する。
一方、ステップS56において、第2オフビット数が基準値Y2を超えている場合(Yes)、メモリコントローラ20は、読み出し電圧を、ステート“A”の読み出し電圧ARに設定し、さらに読み出し電圧ARからシフトさせるシフト値F1を設定する。ここで、読み出し電圧ARからシフト値F1だけシフトさせた読み出し電圧を判定レベルAR1と定義する。判定レベルAR1は、消去動作後におけるメモリセルの消去深さを判断する電圧レベルである。メモリコントローラ20は、読み出し電圧ARからシフト値F1だけシフトさせた判定レベルAR1(図40参照)を、半導体記憶装置10に設定する。さらに、メモリコントローラ20は、半導体記憶装置10に、消去対象ブロックBLKr内の測定対象のワード線WL及びストリングユニットSUを指定する(ステップS57)。
次に、メモリコントローラ20は、半導体記憶装置10に“ワンレベルリード”を命令する(ステップS58)。“ワンレベルリード”の命令を受けて、半導体記憶装置10のシーケンサ16は、測定対象のメモリセルに対して、設定された判定レベルAR1で読み出し動作を実行する。この読み出し動作では、閾値電圧が判定レベルAR1より高いメモリセルは、オン状態とならず、オフ状態のままである。シーケンサ16は、判定レベルAR1での読み出し結果RA1Rを半導体記憶装置10からメモリコントローラ20に出力する。メモリコントローラ20は、読み出し結果RA1Rから、オン状態とならずにオフ状態のままのメモリセルの数(以下、第3オフビット数と記す)をカウントする。メモリコントローラ20は、第3オフビット数をメモリ22内のバッファ22Aに記憶する。
次に、メモリコントローラ20は、判定レベルAR1での読み出し結果に基づいて、メモリセルの消去深さを判断する。すなわち、判定レベルAR1での読み出し動作によって取得した第3オフビット数に基づいて、メモリセルの消去深さを判断する。具体的には、メモリコントローラ20は、第3オフビット数が基準値Y1を超えているか否かを判断する(ステップS59)。
ステップS59において、第3オフビット数が基準値Y1を超えていない場合(No)、メモリコントローラ20は、メモリセルの消去深さが、やや消去不足状態であると判断し、消去電圧VERAのパルス時間PDrを1ステップ長くする(ステップS60)。その後、パルス時間の判断処理を終了する。
一方、ステップS59において、第3オフビット数が基準値Y1を超えている場合(Yes)、メモリコントローラ20は、メモリセルの消去深さが、消去不足状態であると判断し、消去電圧VERAのパルス時間PDrを2ステップ長くする(ステップS61)。その後、パルス時間の判断処理を終了する。
また、ステップS53において、第1オフビット数が基準値Y3を超えていない場合(No)、メモリコントローラ20は、読み出し電圧を、ステート“A”の読み出し電圧ARに設定し、さらに読み出し電圧ARからシフトさせるシフト値F4を設定する。ここで、読み出し電圧ARからシフト値F4だけシフトさせた読み出し電圧を判定レベルAR4と定義する。判定レベルAR4は、消去動作後におけるメモリセルの消去深さを判断する電圧レベルである。メモリコントローラ20は、読み出し電圧ARからシフト値F4だけシフトさせた判定レベルAR4(図40参照)を、半導体記憶装置10に設定する。さらに、メモリコントローラ20は、半導体記憶装置10に、消去対象ブロックBLKr内の測定対象のワード線WL及びストリングユニットSUを指定する(ステップS62)。
次に、メモリコントローラ20は、半導体記憶装置10にステート“A”の“ワンレベルリード”を命令する(ステップS63)。ステート“A”の“ワンレベルリード”の命令を受けて、半導体記憶装置10のシーケンサ16は、測定対象のメモリセルに対して、設定された判定レベルAR4で読み出し動作を実行する。この読み出し動作では、閾値電圧が判定レベルAR4より高いメモリセルは、オン状態とならず、オフ状態のままである。シーケンサ16は、判定レベルAR4での読み出し結果RA4Rを半導体記憶装置10からメモリコントローラ20に出力する。メモリコントローラ20は、読み出し結果RA4Rから、オン状態とならずにオフ状態のままのメモリセルの数(以下、第4オフビット数と記す)をカウントする。メモリコントローラ20は、第4オフビット数をメモリ22内のバッファ22Aに記憶する。
次に、メモリコントローラ20は、判定レベルAR4での読み出し結果に基づいて、メモリセルの消去深さを判断する。すなわち、判定レベルAR4での読み出し動作によって取得した第4オフビット数に基づいて、メモリセルの消去深さを判断する。具体的には、メモリコントローラ20は、第4オフビット数が基準値Y4を超えているか否かを判断する(ステップS64)。
ステップS64において、第4オフビット数が基準値Y4を超えている場合(Yes)、メモリコントローラ20は、メモリセルの消去深さが、やや過消去状態であると判断し、消去電圧VERAのパルス時間PDrを1ステップ短くする(ステップS65)。その後、パルス時間の判断処理を終了する。
一方、ステップS64において、第4オフビット数が基準値Y4を超えていない場合(No)、メモリコントローラ20は、メモリセルの消去深さが、過消去状態であると判断し、消去電圧VERAのパルス時間PDrを2ステップ短くする(ステップS66)。その後、パルス時間の判断処理を終了する。
第2例では、メモリコントローラ20は、消去動作後に、消去対象ブロック内の測定対象のメモリセルに対する複数の判定レベルを用いた読み出し動作で取得したオフビット数に基づいて、メモリセルに対する消去が、過消去状態、あるいはやや過消去状態、消去適正状態、やや消去不足状態、消去不足状態のいずれの状態であるかを判断する。メモリコントローラ20は、これらの判断結果に基づいて、消去電圧VERAのパルス時間PDrを4段階のステップで更新する、あるいは更新せずに維持する。
なお、第2例においては、メモリコントローラ20は、消去深さの判断結果に基づいて、消去電圧VERAのパルス時間PDrを更新するか否かを判断し、パルス時間PDrを更新したが、これに換えて、消去電圧VERAの初期電圧値PArを更新するか否かを判断し、初期電圧値PArを更新してもよい。
4.1.3 消去動作の第3例
第3例は第2例の他の態様である。この第3例では、消去動作後において、複数の判定レベルを用いた読み出し動作で取得した消去結果に基づいて、消去電圧VERAのパルス時間を更新する他の例を示す。
第3例は第2例の他の態様である。この第3例では、消去動作後において、複数の判定レベルを用いた読み出し動作で取得した消去結果に基づいて、消去電圧VERAのパルス時間を更新する他の例を示す。
消去動作の第3例を示すフローチャートは、「消去電圧VERAのパルス時間を判断」(ステップS3B)を除いて、図38に示した第2例のフローチャートと同様である。
以下に、図42を用いて、第2例と異なる「消去電圧VERAのパルス時間を判断」の処理について説明する。図42は、消去動作の第3例の「消去電圧VERAのパルス時間を判断」の処理を示すフローチャートである。図42に示す処理は、メモリコントローラ20(あるいは、CPU21)により命令され、制御される。
図42に示すように、先ず、メモリコントローラ20は、読み出し電圧を、ステート“A”の読み出し電圧ARに設定し、さらに読み出し電圧ARからシフトさせるシフト値F3を設定する。ここで、読み出し電圧ARからシフト値F3だけシフトさせた読み出し電圧を判定レベルAR3と定義する。判定レベルAR3は、消去動作後におけるメモリセルの消去深さを判断する電圧レベルである。メモリコントローラ20は、読み出し電圧ARからシフト値F3だけシフトさせた判定レベルAR3を、半導体記憶装置10に設定する。さらに、メモリコントローラ20は、半導体記憶装置10に、消去対象ブロックBLKr内の測定対象のワード線WL及びストリングユニットSUを指定する(ステップS71)。
次に、メモリコントローラ20は、半導体記憶装置10にステート“A”の“ワンレベルリード”を命令する(ステップS72)。ステート“A”の“ワンレベルリード”の命令を受けて、半導体記憶装置10のシーケンサ16は、測定対象のメモリセルに対して、設定された判定レベルAR3で読み出し動作を実行する。シーケンサ16は、判定レベルAR3での読み出し結果RA3Rを半導体記憶装置10からメモリコントローラ20に出力する。メモリコントローラ20は、読み出し結果RA3Rから、オフ状態のメモリセルの数(第1オフビット数)をカウントする。
次に、メモリコントローラ20は、読み出し電圧を、ステート“A”の読み出し電圧ARに設定し、さらに読み出し電圧ARからシフトさせるシフト値F4を設定する。ここで、読み出し電圧ARからシフト値F4だけシフトさせた読み出し電圧を判定レベルAR4と定義する。判定レベルAR4は、消去動作後におけるメモリセルの消去深さを判断する電圧レベルである。メモリコントローラ20は、読み出し電圧ARからシフト値F4だけシフトさせた判定レベルAR4を、半導体記憶装置10に設定する。さらに、メモリコントローラ20は、半導体記憶装置10に、消去対象ブロックBLKr内の測定対象のワード線WL及びストリングユニットSUを指定する(ステップS73)。
次に、メモリコントローラ20は、半導体記憶装置10にステート“A”の“ワンレベルリード”を命令する(ステップS74)。ステート“A”の“ワンレベルリード”の命令を受けて、シーケンサ16は、測定対象のメモリセルに対して、設定された判定レベルAR4で読み出し動作を実行する。シーケンサ16は、判定レベルAR4での読み出し結果RA4Rを半導体記憶装置10からメモリコントローラ20に出力する。メモリコントローラ20は、読み出し結果RA4Rから、オフ状態のメモリセルの数(第2オフビット数)をカウントする。
次に、メモリコントローラ20は、読み出し電圧を、ステート“A”の読み出し電圧ARに設定し、さらに読み出し電圧ARからシフトさせるシフト値F2を設定する。ここで、読み出し電圧ARからシフト値F2だけシフトさせた読み出し電圧を判定レベルAR2と定義する。判定レベルAR2は、消去動作後におけるメモリセルの消去深さを判断する電圧レベルである。メモリコントローラ20は、読み出し電圧ARからシフト値F2だけシフトさせた判定レベルAR2を、半導体記憶装置10に設定する。さらに、メモリコントローラ20は、半導体記憶装置10に、消去対象ブロックBLKr内の測定対象のワード線WL及びストリングユニットSUを指定する(ステップS75)。
次に、メモリコントローラ20は、半導体記憶装置10にステート“A”の“ワンレベルリード”を命令する(ステップS76)。ステート“A”の“ワンレベルリード”の命令を受けて、シーケンサ16は、測定対象のメモリセルに対して、設定された判定レベルAR2で読み出し動作を実行する。シーケンサ16は、判定レベルAR2での読み出し結果RA2Rを半導体記憶装置10からメモリコントローラ20に出力する。メモリコントローラ20は、読み出し結果RA2Rから、オフ状態のメモリセルの数(第3オフビット数)をカウントする。
次に、メモリコントローラ20は、読み出し電圧を、ステート“A”の読み出し電圧ARに設定し、さらに読み出し電圧ARからシフトさせるシフト値F1を設定する。ここで、読み出し電圧ARからシフト値F1だけシフトさせた読み出し電圧を判定レベルAR1と定義する。判定レベルAR1は、消去動作後におけるメモリセルの消去深さを判断する電圧レベルである。メモリコントローラ20は、読み出し電圧ARからシフト値F1だけシフトさせた判定レベルAR1を、半導体記憶装置10に設定する。さらに、メモリコントローラ20は、半導体記憶装置10に、消去対象ブロックBLKr内の測定対象のワード線WL及びストリングユニットSUを指定する(ステップS77)。
次に、メモリコントローラ20は、半導体記憶装置10にステート“A”の“ワンレベルリード”を命令する(ステップS78)。ステート“A”の“ワンレベルリード”の命令を受けて、シーケンサ16は、測定対象のメモリセルに対して、設定された判定レベルAR1で読み出し動作を実行する。シーケンサ16は、判定レベルAR1での読み出し結果RA1Rを半導体記憶装置10からメモリコントローラ20に出力する。メモリコントローラ20は、読み出し結果RA1Rから、オフ状態のメモリセルの数(第4オフビット数)をカウントする。
次に、メモリコントローラ20は、読み出し電圧AR1~AR4での読み出し動作で得られた第1~第4オフビット数が基準値を超えているか否かによって、メモリセルの消去深さを判断する。さらに、メモリコントローラ20は、消去深さの判断結果に基づいて、パルス時間PDrを更新する(ステップS79)。以上により、パルス時間の判断処理を終了する。
第3例では、第2例と同様に、メモリコントローラ20は、複数の判定レベルを用いた読み出し動作で取得したオフビット数に基づいて、メモリセルに対する消去が、過消去状態、あるいはやや過消去状態、消去適正状態、やや消去不足状態、消去不足状態のいずれの状態であるかを判断する。さらに、メモリコントローラ20は、これらの判断結果に基づいて、消去電圧VERAのパルス時間PDrを更新する、あるいは更新せずに維持する。
なお、第3例においては、メモリコントローラ20は、消去深さの判断結果に基づいて、消去電圧VERAのパルス時間PDrを更新するか否かを判断し、パルス時間PDrを更新したが、これに換えて、消去電圧VERAの初期電圧値PArを更新するか否かを判断し、初期電圧値PArを更新してもよい。
4.2 第4実施形態の効果
第4実施形態によれば、消去動作後において、消去電圧VERAのパルス時間を調整あるいは更新することにより、消去動作によるメモリセルに対する消去を最適化することができる。言い換えると、消去電圧VERAのパルス時間を調整あるいは更新することにより、消去動作によってメモリセルが消去不足状態あるいは過消去状態に遷移するのを回避することができる。
第4実施形態によれば、消去動作後において、消去電圧VERAのパルス時間を調整あるいは更新することにより、消去動作によるメモリセルに対する消去を最適化することができる。言い換えると、消去電圧VERAのパルス時間を調整あるいは更新することにより、消去動作によってメモリセルが消去不足状態あるいは過消去状態に遷移するのを回避することができる。
消去動作によるメモリセルの過消去状態への遷移を回避することで、消去動作によってメモリセルに生じるダメージを低減できる。さらに、消去動作によるメモリセルの消去不足状態への遷移を回避することで、例えばステートAの読み出しを含むページリードにおけるリードエラーを低減できる。その他の構成及び効果は第1実施形態と同様である。
5.その他変形例等
更に、上記実施形態では半導体記憶装置としてNAND型フラッシュメモリを例に説明したが、NAND型フラッシュメモリに限らず、その他の半導体記憶装置全般に適用でき、更には半導体記憶装置以外の種々の記憶装置に適用できる。また、上記実施形態で説明したフローチャートは、その処理の順番を可能な限り入れ替えることができる。
更に、上記実施形態では半導体記憶装置としてNAND型フラッシュメモリを例に説明したが、NAND型フラッシュメモリに限らず、その他の半導体記憶装置全般に適用でき、更には半導体記憶装置以外の種々の記憶装置に適用できる。また、上記実施形態で説明したフローチャートは、その処理の順番を可能な限り入れ替えることができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
1…メモリシステム、2…ホスト装置、10…半導体記憶装置、10_0~10_n…メモリチップ、11…メモリセルアレイ、12…入出力回路、13…ロジック制御回路、14…レディ/ビジー回路、15…レジスタ群、15A…ステータスレジスタ、15B…アドレスレジスタ、15C…コマンドレジスタ、15D…レジスタ、16…シーケンサ、17…電圧生成回路、18…ドライバ、19…ロウデコーダモジュール、20…メモリコントローラ、21…CPU、22…メモリ、22A…バッファ、22B_1…パルス時間管理テーブル、22B_2…電圧値管理テーブル、22B_3…パルス時間及び電圧値管理テーブル、23…ホストインターフェース、24…ECC回路、25…NANDインターフェース、26…RAMインターフェース、30…バッファメモリ、31…カラムデコーダ、32…センスアンプモジュール、BL0~BLi…ビット線、BLK0~BLKm…ブロック、MT0~MT7…メモリセルトランジスタ、PD0~PDm…パルス時間、PA0~PAm…初期電圧値、SGD0~SGD3…セレクトゲート線、ST1…セレクトトランジスタ、ST2…セレクトトランジスタ、SU0~SU3…ストリングユニット、WL0~WL7…ワード線。
Claims (18)
- データを記憶可能なメモリセルを含む半導体記憶装置と、
前記メモリセルに対する消去動作で用いるパラメータと、前記消去動作を命ずるコマンドを出力するコントローラと、
を具備し、
前記コントローラは、前記半導体記憶装置に、前記パラメータを出力した後、前記コマンドを出力するメモリシステム。 - 前記パラメータは、前記消去動作の実行時に、前記メモリセルに印加される消去電圧のパルス時間あるいは電圧値の少なくとも1つを含む請求項1に記載のメモリシステム。
- 前記半導体記憶装置は、前記メモリセルを含む複数の第1メモリセルを有するブロックを備え、
前記コントローラは、前記ブロックに対して前記消去動作を実行する請求項1に記載のメモリシステム。 - 前記コントローラは、前記ブロックに対して第1電圧を用いた読み出し動作を行い、
前記読み出し動作において、前記ブロック内の前記複数の第1メモリセルのうちのオフ状態のメモリセル数を取得し、
前記コントローラは、前記メモリセル数が第1値以上であるとき、前記パラメータを更新し、前記メモリセル数が前記第1値より少ないとき、前記パラメータを更新しない請求項3に記載のメモリシステム。 - 前記半導体記憶装置は、前記消去動作による前記メモリセルの消去結果を前記コントローラに出力し、
前記コントローラは、前記パラメータを記憶する第1メモリを備え、
前記コントローラは、前記メモリセルの前記消去結果に基づいて、前記第1メモリに記憶された前記パラメータを更新する請求項1に記載のメモリシステム。 - 前記コントローラは第1メモリを備え、
前記第1メモリは、前記メモリセルと、前記メモリセルに対応する前記パラメータとを含むテーブルを記憶する請求項1に記載のメモリシステム。 - 前記消去動作は、前記メモリセルに対して消去電圧を印加する消去処理と、前記消去処理の後に、前記メモリセルへの前記消去処理がパスかあるいはフェイルかを検証する消去ベリファイ処理とを含む消去ループを有し、
前記コントローラは、前記メモリセルへの前記消去処理がフェイルであるとき、前記消去ループを繰り返し、前記メモリセルへの前記消去処理がパスであるとき、前記消去動作を終了する請求項1に記載のメモリシステム。 - 前記コントローラが出力する前記パラメータは、前記消去動作における初回の前記消去ループで用いられる請求項7に記載のメモリシステム。
- 前記メモリセルに対する前記消去動作は複数回実行され、前記消去動作が実行される毎に、前記コントローラは、前記消去動作による前記メモリセルの消去結果に基づいて、前記パラメータを更新する請求項7に記載のメモリシステム。
- 前記メモリセルに対する前記消去動作は複数回実行され、前記消去動作が所定回数実行される毎に、前記コントローラは、前記消去動作による前記メモリセルの消去結果に基づいて、前記パラメータを更新する請求項7に記載のメモリシステム。
- 前記消去動作が実行された後、前記メモリセルに対する書き込み動作が実行され、前記書き込み動作後に、前記コントローラは、前記消去動作による前記メモリセルの消去結果に基づいて、前記パラメータを更新する請求項7に記載のメモリシステム。
- 前記ブロック内の前記複数の第1メモリセルに接続された第1ワード線を備え、
前記コントローラは、前記第1ワード線に接続された前記複数の第1メモリセルに対して、第1電圧を用いた読み出し動作を行い、
前記読み出し動作において、前記第1ワード線に接続された前記複数の第1メモリセルのうちのオフ状態のメモリセル数を取得し、
前記メモリセル数が第1値以上であるとき、前記パラメータを更新し、前記メモリセル数が第1値より少ないとき、前記パラメータを更新しない請求項3に記載のメモリシステム。 - 前記ブロック内の前記複数の第1メモリセルに接続された複数の第2ワード線を備え、
前記コントローラは、前記複数の第2ワード線に接続された前記複数の第1メモリセルに対して、第1電圧を用いた読み出し動作を行い、
前記読み出し動作において、前記複数の第2ワード線における1つのワード線毎に、前記複数の第1メモリセルのうちのオフ状態のメモリセル数を取得し、
前記複数の第2ワード線における1つのワード線に対する前記メモリセル数の平均値が第1値以上であるとき、前記パラメータを更新し、前記メモリセル数の前記平均値が前記第1値より少ないとき、前記パラメータを更新しない請求項3に記載のメモリシステム。 - 前記ブロック内の前記複数の第1メモリセルに接続された複数の第2ワード線を備え、
前記コントローラは、前記複数の第2ワード線に接続された前記複数の第1メモリセルに対して、第1電圧を用いた読み出し動作を行い、
前記読み出し動作において、前記複数の第2ワード線における1つのワード線毎に、前記複数の第1メモリセルのうちのオフ状態のメモリセル数を取得し、
前記複数の第2ワード線における1つのワード線毎の前記メモリセル数の最大値が第1値以上であるとき、前記パラメータを更新し、前記メモリセル数の前記最大値が前記第1値より少ないとき、前記パラメータを更新しない請求項3に記載のメモリシステム。 - 前記コントローラは、前記ブロックに対して、第1電圧を用いた第1読み出し動作と、第2電圧を用いた第2読み出し動作と、第3電圧を用いた第3読み出し動作とを行い、
前記第1読み出し動作において、前記ブロック内の前記複数の第1メモリセルのうちのオフ状態の第1メモリセル数を取得し、
前記第2読み出し動作において、前記ブロック内の前記複数の第1メモリセルのうちのオフ状態の第2メモリセル数を取得し、
前記第3読み出し動作において、前記ブロック内の前記複数の第1メモリセルのうちのオフ状態の第3メモリセル数を取得し、
前記第1メモリセル数が第1値以上であるとき、前記第2メモリセル数が第2値以上であるか否かに応じて前記パラメータを更新し、
前記第1メモリセル数が第1値より少ないとき、前記第3メモリセル数が第3値以上であるか否かに応じて前記パラメータを更新する請求項3に記載のメモリシステム。 - 前記半導体記憶装置は、前記メモリセルを含む複数の第1メモリセルを備え、
前記複数の第1メモリセルは、半導体基板の上方に三次元に積層されている請求項1に記載のメモリシステム。 - 前記メモリセルに対する書き込み動作の回数あるいは消去動作の回数のいずれかの回数に応じて前記第1値が変更される請求項4に記載のメモリシステム。
- データを記憶可能なメモリセルと、
前記メモリセルに対して消去動作を行う制御回路と、
を具備し、
前記制御回路は、前記消去動作で用いるパラメータを受け取り、その後、前記消去動作を命ずるコマンドを受け取って、前記消去動作を開始する半導体記憶装置。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020124259A JP2022020957A (ja) | 2020-07-21 | 2020-07-21 | メモリシステム及び半導体記憶装置 |
US17/202,627 US11514986B2 (en) | 2020-07-21 | 2021-03-16 | Memory system and semiconductor memory device |
TW110116155A TWI803866B (zh) | 2020-07-21 | 2021-05-05 | 記憶體系統及半導體記憶裝置 |
CN202110823819.8A CN113963737A (zh) | 2020-07-21 | 2021-07-21 | 存储系统以及半导体存储装置 |
US17/976,566 US20230047861A1 (en) | 2020-07-21 | 2022-10-28 | Memory system and semiconductor memory device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020124259A JP2022020957A (ja) | 2020-07-21 | 2020-07-21 | メモリシステム及び半導体記憶装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022020957A true JP2022020957A (ja) | 2022-02-02 |
Family
ID=79460398
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020124259A Pending JP2022020957A (ja) | 2020-07-21 | 2020-07-21 | メモリシステム及び半導体記憶装置 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11514986B2 (ja) |
JP (1) | JP2022020957A (ja) |
CN (1) | CN113963737A (ja) |
TW (1) | TWI803866B (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022020957A (ja) * | 2020-07-21 | 2022-02-02 | キオクシア株式会社 | メモリシステム及び半導体記憶装置 |
US11644981B2 (en) * | 2020-09-25 | 2023-05-09 | Micron Technology, Inc. | Semiconductor devices with security lock and associated methods and systems |
US11475954B2 (en) | 2020-11-15 | 2022-10-18 | Macronix International Co., Ltd. | Fast interval read setup for 3D NAND flash |
US11488657B1 (en) | 2021-04-19 | 2022-11-01 | Macronix International Co., Ltd. | Fast interval read setup for 3D memory |
US11803326B2 (en) | 2021-04-23 | 2023-10-31 | Macronix International Co., Ltd. | Implementing a read setup burst command in 3D NAND flash memory to reduce voltage threshold deviation over time |
US11385839B1 (en) * | 2021-04-27 | 2022-07-12 | Macronix International Co., Ltd. | Implementing a read setup in 3D NAND flash memory to reduce voltage threshold deviation over time |
US11574690B2 (en) | 2021-06-01 | 2023-02-07 | Micron Technology, Inc. | Sequential wordline erase verify schemes |
US11663074B1 (en) * | 2021-11-17 | 2023-05-30 | Macronix International Co., Ltd. | Determining read voltages for memory systems |
US12119037B2 (en) * | 2022-03-04 | 2024-10-15 | Changxin Memory Technologies, Inc. | Refresh circuit, memory, and refresh method |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7200708B1 (en) * | 2003-12-31 | 2007-04-03 | Intel Corporation | Apparatus and methods for storing data which self-compensate for erase performance degradation |
US7679961B2 (en) | 2007-04-25 | 2010-03-16 | Micron Technology, Inc. | Programming and/or erasing a memory device in response to its program and/or erase history |
JP5142692B2 (ja) | 2007-12-11 | 2013-02-13 | 株式会社東芝 | 不揮発性半導体記憶装置 |
JP2009238874A (ja) | 2008-03-26 | 2009-10-15 | Toshiba Corp | 半導体メモリ及びその製造方法 |
JP2009252255A (ja) * | 2008-04-01 | 2009-10-29 | Renesas Technology Corp | 不揮発性半導体記憶装置 |
JP2009266944A (ja) | 2008-04-23 | 2009-11-12 | Toshiba Corp | 三次元積層不揮発性半導体メモリ |
JP5283960B2 (ja) | 2008-04-23 | 2013-09-04 | 株式会社東芝 | 三次元積層不揮発性半導体メモリ |
JP2010199235A (ja) | 2009-02-24 | 2010-09-09 | Toshiba Corp | 不揮発性半導体記憶装置 |
JP2012069205A (ja) | 2010-09-22 | 2012-04-05 | Toshiba Corp | 不揮発性半導体記憶装置 |
JP2012252740A (ja) | 2011-06-02 | 2012-12-20 | Toshiba Corp | 不揮発性半導体記憶装置 |
KR20140045168A (ko) | 2012-10-08 | 2014-04-16 | 삼성전자주식회사 | 불휘발성 메모리 장치, 메모리 시스템 및 불휘발성 메모리 장치의 동작방법 |
KR20150094129A (ko) * | 2014-02-10 | 2015-08-19 | 에스케이하이닉스 주식회사 | 반도체 장치 및 이의 동작 방법 |
KR20160005264A (ko) | 2014-07-04 | 2016-01-14 | 삼성전자주식회사 | 저장 장치 및 그것의 읽기 방법들 |
KR102235516B1 (ko) * | 2014-09-30 | 2021-04-05 | 삼성전자주식회사 | 이레이즈 컨트롤 유닛을 포함하는 메모리 시스템 및 동작 방법 |
US9502129B1 (en) | 2015-09-10 | 2016-11-22 | Kabushiki Kaisha Toshiba | Memory system and method of controlling nonvolatile memory |
US9824758B2 (en) * | 2015-10-07 | 2017-11-21 | SK Hynix Inc. | Semiconductor memory device and operating method thereof |
US9589651B1 (en) * | 2015-11-18 | 2017-03-07 | Kabushiki Kaisha Toshiba | Semiconductor memory device and controlling method thereof |
KR20180059208A (ko) * | 2016-11-25 | 2018-06-04 | 삼성전자주식회사 | 리클레임 제어부를 갖는 메모리 콘트롤러 및 그에 따른 동작 제어 방법 |
KR102395196B1 (ko) * | 2017-10-17 | 2022-05-06 | 삼성전자주식회사 | 파라미터 교정 기능을 갖는 스토리지 장치 및 상기 스토리지 장치의 동작 방법 |
JP7158965B2 (ja) | 2018-09-14 | 2022-10-24 | キオクシア株式会社 | メモリシステム |
JP2022020957A (ja) * | 2020-07-21 | 2022-02-02 | キオクシア株式会社 | メモリシステム及び半導体記憶装置 |
-
2020
- 2020-07-21 JP JP2020124259A patent/JP2022020957A/ja active Pending
-
2021
- 2021-03-16 US US17/202,627 patent/US11514986B2/en active Active
- 2021-05-05 TW TW110116155A patent/TWI803866B/zh active
- 2021-07-21 CN CN202110823819.8A patent/CN113963737A/zh active Pending
-
2022
- 2022-10-28 US US17/976,566 patent/US20230047861A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220028460A1 (en) | 2022-01-27 |
TWI803866B (zh) | 2023-06-01 |
US11514986B2 (en) | 2022-11-29 |
CN113963737A (zh) | 2022-01-21 |
TW202205266A (zh) | 2022-02-01 |
US20230047861A1 (en) | 2023-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2022020957A (ja) | メモリシステム及び半導体記憶装置 | |
US10573394B2 (en) | Memory system | |
US10573378B2 (en) | Methods of programming memory devices | |
US11139007B2 (en) | Semiconductor storage device and memory system | |
KR102192910B1 (ko) | 반도체 장치, 메모리 시스템 및 이의 동작 방법 | |
TWI602187B (zh) | Semiconductor memory devices and memory systems | |
KR100884234B1 (ko) | 프로그램 성능을 향상시킬 수 있는 플래시 메모리 장치 및그것의 프로그램 방법 | |
JP2013143155A (ja) | 不揮発性半導体記憶装置とその書き込み方法 | |
KR20160028076A (ko) | 불휘발성 메모리 장치 및 그것의 프로그램 방법 | |
JP2019053805A (ja) | メモリシステム | |
US10860251B2 (en) | Semiconductor memory device | |
US10978165B2 (en) | Memory system and non-volatile semiconductor memory | |
KR20190050487A (ko) | 반도체 메모리 장치 및 그것의 동작 방법 | |
JP2020047330A (ja) | 半導体記憶装置 | |
JP2020071843A (ja) | メモリシステム | |
JP2020009509A (ja) | 半導体記憶装置 | |
CN112306397A (zh) | 存储控制器、包括存储控制器的存储系统及其操作方法 | |
JP2017168165A (ja) | 半導体記憶装置 | |
KR20180132357A (ko) | 반도체 메모리 장치 및 이의 동작 방법 | |
US10679705B2 (en) | Controller and operating method thereof | |
JP2014132512A (ja) | 不揮発性半導体記憶装置とその書き込み方法 | |
KR102528274B1 (ko) | 비휘발성 메모리 장치 및 그 구동 방법 | |
US20230197159A1 (en) | Memory system and semiconductor storage device | |
JP2019149220A (ja) | 半導体記憶装置及びメモリシステム | |
KR101184830B1 (ko) | 반도체 메모리 장치 및 이의 동작 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20230106 |