JP2019164865A - メモリシステム - Google Patents
メモリシステム Download PDFInfo
- Publication number
- JP2019164865A JP2019164865A JP2018052646A JP2018052646A JP2019164865A JP 2019164865 A JP2019164865 A JP 2019164865A JP 2018052646 A JP2018052646 A JP 2018052646A JP 2018052646 A JP2018052646 A JP 2018052646A JP 2019164865 A JP2019164865 A JP 2019164865A
- Authority
- JP
- Japan
- Prior art keywords
- voltage
- read
- word line
- memory cell
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/5642—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/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- 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/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/26—Sensing or reading circuits; Data output circuits
- G11C16/28—Sensing or reading circuits; Data output circuits using differential sensing or reference cells, e.g. dummy cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- 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
-
- 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
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5646—Multilevel memory with flag bits, e.g. for showing that a "first page" of a word line is programmed but not a "second page"
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/021—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/028—Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- 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
- H10B41/00—Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates
- H10B41/30—Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates characterised by the memory core region
- H10B41/35—Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates characterised by the memory core region with a cell select transistor, e.g. NAND
-
- 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
-
- 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/30—EEPROM devices comprising charge-trapping gate insulators characterised by the memory core region
- H10B43/35—EEPROM devices comprising charge-trapping gate insulators characterised by the memory core region with cell select transistors, e.g. NAND
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
Abstract
【課題】動作信頼性を向上出来るメモリシステムを提供する。【解決手段】一実施形態のメモリシステムは、半導体メモリとコントローラとを具備し、第1動作と第2動作とを実行可能である。第1ワード線に第1電圧VCGRVを印加し第2ワード線に第2電圧VREADを印加することにより第1メモリセルからデータを読み出し、該読み出されたデータがコントローラに送信される。第2動作では、第1ワード線に第3電圧VREADを印加し第2ワード線に第4電圧VREADを印加し、メモリセルアレイに保持されるデータはコントローラに送信されない。第2動作は、第1動作後に第1メモリセルへの書き込み動作及び消去動作を介することなく実行される。第3電圧VREADは第1メモリセルをオンさせ、第2及び第4電圧VREADは第2メモリセルをオンさせる。【選択図】図13
Description
実施形態は、メモリシステムに関する。
メモリセルが三次元に配列された半導体メモリが知られている。
動作信頼性を向上出来るメモリシステムを提供する。
本実施形態のメモリシステムは、データを保持可能であり、第1ワード線及び第2ワード線にそれぞれ接続された第1メモリセル及び第2メモリセルを含むメモリセルアレイを備えた半導体メモリと、半導体メモリを制御するコントローラとを具備し、第1動作と、該第1動作後の第2動作とを実行可能である。第1動作では、コントローラが第1コマンドシーケンスを発行し、半導体メモリは第1コマンドシーケンスに応答して、第1ワード線に第1電圧を印加し第2ワード線に第2電圧を印加することにより第1メモリセルからデータを読み出し、読み出されたデータが半導体メモリからコントローラに送信される。また第2動作では、コントローラが第2コマンドシーケンスを発行し、半導体メモリは第2コマンドシーケンスに応答して、第1ワード線に第3電圧を印加し、前記第2ワード線に第4電圧を印加し、メモリセルアレイに保持されるデータはコントローラに送信されない。第2動作は、第1動作後に、第1メモリセルへの書き込み動作及び消去動作を介することなく実行される。そして、第3電圧は保持データにかかわらず第1メモリセルをオンさせ、第2電圧及び第4電圧は保持データにかかわらず第2メモリセルをオンさせる。
以下、図面を参照して実施形態について説明する。なお、以下の説明において、同一の機能及び構成を有する構成要素については、共通する参照符号を付す。
1.第1実施形態
第1実施形態に係るメモリシステムについて説明する。以下では、半導体記憶装置としてNAND型フラッシュメモリを備えたメモリシステムを例に挙げて説明する。
第1実施形態に係るメモリシステムについて説明する。以下では、半導体記憶装置としてNAND型フラッシュメモリを備えたメモリシステムを例に挙げて説明する。
1.1 構成について
1.1.1 メモリシステムの全体構成について
まず、本実施形態に係るメモリシステムの大まかな全体構成について、図1を用いて説明する。
1.1.1 メモリシステムの全体構成について
まず、本実施形態に係るメモリシステムの大まかな全体構成について、図1を用いて説明する。
図示するようにメモリシステム1は、NAND型フラッシュメモリ100とコントローラ200とを備えている。NAND型フラッシュメモリ100とコントローラ200とは、例えばそれらの組み合わせにより一つの半導体装置を構成しても良く、その例としてはSDTMカードのようなメモリカードや、SSD(solid state drive)等が挙げられる。
NAND型フラッシュメモリ100は複数のメモリセルを備え、データを不揮発に記憶する。コントローラ200は、NANDバスによってNAND型フラッシュメモリ100に接続され、ホストバスによってホスト機器300に接続される。そしてコントローラ200は、NAND型フラッシュメモリ100を制御し、またホスト機器300から受信した命令に応答して、NAND型フラッシュメモリ100にアクセスする。ホスト機器300は、例えばデジタルカメラやパーソナルコンピュータ等であり、ホストバスは、例えばSDTMインターフェースに従ったバスである。NANDバスは、NANDインターフェースに従った信号の送受信を行う。
1.1.2 コントローラ200の構成について
引き続き図1を用いて、コントローラ200の構成の詳細について説明する。図1に示すようにコントローラ200は、ホストインターフェース回路210、内蔵メモリ(RAM)220、プロセッサ(CPU)230、バッファメモリ240、NANDインターフェース回路250、及びECC(Error Checking and Correcting)回路260を備えている。
引き続き図1を用いて、コントローラ200の構成の詳細について説明する。図1に示すようにコントローラ200は、ホストインターフェース回路210、内蔵メモリ(RAM)220、プロセッサ(CPU)230、バッファメモリ240、NANDインターフェース回路250、及びECC(Error Checking and Correcting)回路260を備えている。
ホストインターフェース回路210は、ホストバスを介してホスト機器300と接続され、ホスト機器300から受信した命令及びデータを、それぞれプロセッサ230及びバッファメモリ240に転送する。またプロセッサ230の命令に応答して、バッファメモリ240内のデータをホスト機器300へ転送する。
プロセッサ230は、コントローラ200全体の動作を制御する。例えばプロセッサ230は、ホスト機器300から読み出し命令を受信した際には、それに応答して、NANDインターフェース回路250に対して読み出しコマンドを発行する。書き込み及び消去の際も同様である。またプロセッサ230は、ウェアレベリング等、NAND型フラッシュメモリ100を管理するための様々な処理を実行する。
NANDインターフェース回路250は、NANDバスを介してNAND型フラッシュメモリ100と接続され、NAND型フラッシュメモリ100との通信を司る。そしてNANDインターフェース回路250は、プロセッサ230から受信した命令に基づき、種々の信号をNAND型フラッシュメモリ100へ送信し、またNAND型フラッシュメモリ100から受信する。
バッファメモリ240は、書き込みデータや読み出しデータを一時的に保持する。
内蔵メモリ220は、例えばDRAMやSRAM等の半導体メモリであり、プロセッサ230の作業領域として使用される。そして内蔵メモリ220は、NAND型フラッシュメモリ100を管理するためのファームウェアや、後述するシフトテーブル、履歴テーブル、フラグテーブル等の、各種の管理テーブル等を保持する。
ECC回路260は、NAND型フラッシュメモリ100に記憶されるデータに関する誤り検出及び誤り訂正処理を行う。すなわちECC回路260は、データの書き込み時には誤り訂正符号を生成して、これを書き込みデータに付与し、データの読み出し時にはこれを復号する。
1.1.3 NAND型フラッシュメモリ100の構成について
次に、NAND型フラッシュメモリ100の構成について説明する。図1に示すようにNAND型フラッシュメモリ100は、メモリセルアレイ110、ロウデコーダ120、ドライバ回路130、センスアンプ140、アドレスレジスタ150、コマンドレジスタ160、及びシーケンサ170を備える。
次に、NAND型フラッシュメモリ100の構成について説明する。図1に示すようにNAND型フラッシュメモリ100は、メモリセルアレイ110、ロウデコーダ120、ドライバ回路130、センスアンプ140、アドレスレジスタ150、コマンドレジスタ160、及びシーケンサ170を備える。
メモリセルアレイ110は、ロウ及びカラムに対応付けられた複数の不揮発性のメモリセルを含む複数のブロックBLKを備えている。図1では一例として4つのブロックBLK0〜BLK3が図示されている。そしてメモリセルアレイ110は、コントローラ200から与えられたデータを記憶する。
ロウデコーダ120は、アドレスレジスタ150内のブロックアドレスBAに基づいてブロックBLK0〜BLK3のいずれかを選択し、更に選択したブロックBLKにおけるロウ方向を選択する。
ドライバ回路130は、アドレスレジスタ150内のページアドレスPAに基づいて、選択されたブロックBLKに対して、ロウデコーダ120を介して電圧を供給する。
センスアンプ140は、データの読み出し時には、メモリセルアレイ110から読み出されたデータをセンスし、必要な演算を行う。そして、このデータDATをコントローラ200に出力する。データの書き込み時には、コントローラ200から受信した書き込みデータDATを、メモリセルアレイ110に転送する。
アドレスレジスタ150は、コントローラ200から受信したアドレスADDを保持する。このアドレスADDには、前述のブロックアドレスBAとページアドレスPAとが含まれる。コマンドレジスタ160は、コントローラ200から受信したコマンドCMDを保持する。
シーケンサ170は、コマンドレジスタ160に保持されたコマンドCMDに基づき、NAND型フラッシュメモリ100全体の動作を制御する。
次に、上記ブロックBLKの構成について図2を用いて説明する。図示するように、ブロックBLKは例えば4つのストリングユニットSU(SU0〜SU3)を含む。また各々のストリングユニットSUは、複数のNANDストリング10を含む。
NANDストリング10の各々は、例えば8個のメモリセルトランジスタMT(MT0〜MT7)、2個のダミートランジスタDT(DTD、DTS)、及び2個の選択トランジスタST1、ST2を含んでいる。メモリセルトランジスタMTは、制御ゲートと電荷蓄積層とを備え、データを不揮発に保持する。そしてメモリセルトランジスタMTは、選択トランジスタST1のソースと選択トランジスタST2のドレインとの間に、ダミートランジスタDTD及びDTSをそれぞれ介して、直列接続されている。
ダミートランジスタDTは、メモリセルトランジスタMTと同様に制御ゲートと電荷蓄積層を備える。しかし、ダミートランジスタDTはメモリセルトランジスタMTと異なり、データを保持するためのものではなく、NANDストリング10内においては単なる電流経路として機能する。すなわち、ダミートランジスタDTの閾値は、読み出し動作時や書き込み動作時に常にオン状態となるよう、低い値に設定されている。このダミートランジスタDTの閾値は、ダミートランジスタDTに対して書き込み動作を行い、電荷蓄積層内の電荷量を制御することによって、所定の値に設定できる。
ストリングユニットSU0〜SU3の各々における選択トランジスタST1のゲートは、それぞれセレクトゲート線SGD0〜SGD3に接続される。これに対してストリングユニットSU0〜SU3の各々における選択トランジスタST2のゲートは、例えばセレクトゲート線SGSに共通接続される。もちろん、ストリングユニット毎に異なるセレクトゲート線SGS0〜SGS3に接続されても良い。また、同一のブロックBLK内にあるメモリセルトランジスタMT0〜MT7の制御ゲートはそれぞれワード線WL0〜WL7に共通接続され、ダミートランジスタDTD及びDTSの制御ゲートはそれぞれダミーワード線WLDD及びWLDSに共通接続される。
また、メモリセルアレイ110内において同一列にあるNANDストリング10の選択トランジスタST1のドレインは、ビット線BL(BL0〜BL(L−1)、但し(L−1)は2以上の自然数)に共通接続される。すなわちビット線BLは、複数のブロックBLK間でNANDストリング10を共通に接続する。更に、複数の選択トランジスタST2のソースは、ソース線SLに共通に接続されている。
つまりストリングユニットSUは、異なるビット線BLに接続され、且つ同一のセレクトゲート線SGDに接続されたNANDストリング10を複数含む。またブロックBLKは、ワード線WLを共通にする複数のストリングユニットSUを複数含む。そしてメモリセルアレイ110は、ビット線BLを共通にする複数のブロックBLKを複数含む。
図3は、ブロックBLKの一部領域の断面図である。図示するように、p型ウェル領域20上に、複数のNANDストリング10が形成されている。すなわち、ウェル領域20上には、セレクトゲート線SGSとして機能する例えば3層の配線層27、ダミーワード線WLDS、ワード線WL0〜WL7、及びダミーワード線WLDDとして機能する10層の配線層23、並びにセレクトゲート線SGDとして機能する例えば3層の配線層25が、順次積層されている。積層された配線層間には、図示せぬ絶縁膜が形成されている。
そして、これらの配線層25、23、27を貫通してウェル領域20に達するピラー状の導電体31が形成されている。導電体31の側面には、ゲート絶縁膜30、電荷蓄積層(絶縁膜)29、及びブロック絶縁膜28が順次形成され、これらによってメモリセルトランジスタMT、ダミートランジスタDT、並びに選択トランジスタST1及びST2が形成されている。導電体31は、NANDストリング10の電流経路として機能し、各トランジスタのチャネルが形成される領域となる。そして導電体31の上端は、ビット線BLとして機能する金属配線層32に接続される。
ウェル領域20の表面領域内には、n+型不純物拡散層33が形成されている。拡散層33上にはコンタクトプラグ35が形成され、コンタクトプラグ35は、ソース線SLとして機能する金属配線層36に接続される。更に、ウェル領域20の表面領域内には、p+型不純物拡散層34が形成されている。拡散層34上にはコンタクトプラグ37が形成され、コンタクトプラグ37は、ウェル配線CPWELLとして機能する金属配線層38に接続される。ウェル配線CPWELLは、ウェル領域20を介して導電体31に電位を与えるための配線である。
以上の構成が、図3を記載した紙面の奥行き方向に複数配列されており、奥行き方向に並ぶ複数のNANDストリング10の集合によってストリングユニットSUが形成される。
本例では、1つのメモリセルトランジスタMTが例えば3ビットデータを保持可能である。この3ビットデータを、下位ビットからそれぞれlowerビット、middleビット、及びupperビットと呼ぶことにする。そして、同一のワード線に接続されたメモリセルの保持するlowerビットの集合をlowerページと呼び、middleビットの集合をmiddleページと呼び、upperビットの集合をupperページと呼ぶ。つまり、1本のワード線WLには3ページが割り当てられ、8本のワード線WLを含むブロックBLKは24ページ分の容量を有することになる。あるいは言い換えるならば、「ページ」とは、同一ワード線に接続されたメモリセルによって形成されるメモリ空間の一部、と定義することも出来る。データの書き込み及び読み出しは、このページ毎に行っても良い。
図4は、各メモリセルトランジスタMTの取り得るデータ、閾値分布、及び読み出し時に用いる電圧について示したダイアグラムである。
図示するようにメモリセルトランジスタMTは、閾値電圧に応じて8個の状態を取ることが出来る。この8個の状態を、閾値電圧の低いものから順に、“Er”状態、“A”状態、“B”状態、“C”状態、…及び“G”状態と呼ぶことにする。
“Er”状態のメモリセルトランジスタMTの閾値電圧は、電圧VA未満であり、データの消去状態に相当する。“A”状態のメモリセルトランジスタMTの閾値電圧は、電圧VA以上であり且つVB(>VA)未満である。“B”状態のメモリセルトランジスタMTの閾値電圧は、電圧VB以上であり且つVC(>VB)未満である。“C”状態のメモリセルトランジスタMTの閾値電圧は、電圧VC以上であり且つVD(>VC)未満である。“D”状態のメモリセルトランジスタMTの閾値電圧は、電圧VD以上であり且つVE(>VD)未満である。“E”状態のメモリセルトランジスタMTの閾値電圧は、電圧VE以上であり且つVF(>VE)未満である。“F”状態のメモリセルトランジスタMTの閾値電圧は、電圧VF以上であり且つVG(>VF)未満である。“G”状態のメモリセルトランジスタMTの閾値電圧は、電圧VG以上であり且つVREAD未満である。このように分布する8個の状態のうちで、“G”状態が、閾値電圧の最も高い状態である。なおVREADは、読み出し動作時において非選択ワード線に印加される電圧であり、保持データにかかわらずメモリセルトランジスタMTをオンさせる電圧である。
また上記閾値分布は、前述のlowerビット、middleビット、及びupperビットからなる3ビット(3ページ)データを書き込むことで実現される。すなわち、上記8つの状態と、lowerビット、middleビット、及びupperビットとの関係は、次の通りである。
“Er”状態:“111”(“upper/middle/lower”の順で表記)
“A”状態:“110”
“B”状態:“100”
“C”状態:“000”
“D”状態:“010”
“E”状態:“011”
“F”状態:“001”
“G”状態:“101”
このように、閾値分布において隣り合う2つの状態に対応するデータ間では、3ビットのうちの1ビットのみが変化する。
“Er”状態:“111”(“upper/middle/lower”の順で表記)
“A”状態:“110”
“B”状態:“100”
“C”状態:“000”
“D”状態:“010”
“E”状態:“011”
“F”状態:“001”
“G”状態:“101”
このように、閾値分布において隣り合う2つの状態に対応するデータ間では、3ビットのうちの1ビットのみが変化する。
従って、lowerビットを読み出す際には、lowerビットの値(“0” or “1”)が変化する境界に相当する電圧を用いれば良く、このことはmiddleビット及びupperビットでも同様である。
すなわち、図4に示すようにlowerページ読み出しは、“Er”状態と“A”状態とを区別する電圧VA、及び“D”状態と“E”状態とを区別する電圧VEを読み出し電圧として用いる。電圧VA及びVEを用いた読み出し動作を、それぞれ読み出し動作AR及びERと呼ぶ。
middleページ読み出しは、“A”状態と“B”状態とを区別する電圧VB、“C”状態と“D”状態とを区別する電圧VD、及び“E”状態と“F”状態との間の電圧VFを読み出し電圧として用いる。電圧VB、VD、及びVFを用いた読み出し動作を、それぞれ読み出し動作BR、DR、及びFRと呼ぶ。
そしてupperページ読み出しは、“B”状態と“C”状態とを区別する電圧VC、及び“F”状態と“G”状態とを区別する電圧VGを読み出し電圧として用いる。電圧VC及びVGを用いた読み出し動作を、それぞれ読み出し動作CR及びGRと呼ぶ。
また、データの消去はブロックBLK単位、またはブロックBLKよりも小さい単位で行うことが出来る。消去方法に関しては、例えば“NONVOLATILE SEMICONDUCTOR MEMORY DEVICE”という2011年9月18日に出願された米国特許出願13/235,389号に記載されている。また、“NON-VOLATILE SEMICONDUCTOR STORAGE DEVICE”という2010年1月27日に出願された米国特許出願12/694,690号に記載されている。更に、“NONVOLATILE SEMICONDUCTOR MEMORY DEVICE AND DATA ERASE METHOD THEREOF”という2012年5月30日に出願された米国特許出願13/483,610号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
更に、メモリセルアレイ110の構成についてはその他の構成であっても良い。すなわちメモリセルアレイ110の構成については、例えば、“THREE DIMENSIONAL STACKED NONVOLATILE SEMICONDUCTOR MEMORY”という2009年3月19日に出願された米国特許出願12/407,403号に記載されている。また、“THREE DIMENSIONAL STACKED NONVOLATILE SEMICONDUCTOR MEMORY”という2009年3月18日に出願された米国特許出願12/406,524号、“NON-VOLATILE SEMICONDUCTOR STORAGE DEVICE AND METHOD OF MANUFACTURING THE SAME”という2010年3月25日に出願された米国特許出願12/679,991号、及び“SEMICONDUCTOR MEMORY AND METHOD FOR MANUFACTURING SAME”という2009年3月23日に出願された米国特許出願12/532,030号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
1.1.4 シフトテーブルについて
次に、シフトテーブルについて説明する。前述の通りコントローラ200は、例えばメモリ220においてシフトテーブルを保持する。シフトテーブルの概念につき、図5を用いて説明する。図5はシフトテーブルの一例の概念図である。
次に、シフトテーブルについて説明する。前述の通りコントローラ200は、例えばメモリ220においてシフトテーブルを保持する。シフトテーブルの概念につき、図5を用いて説明する。図5はシフトテーブルの一例の概念図である。
図示するようにシフトテーブルは、複数(図5の例では12個)のエントリを有する。各エントリには、“1”〜“12”のインデックスが順番に割り当てられている。そして各エントリは、読み出し動作AR、BR、CR、…及びGRにおいて選択ワード線WLに印加される読み出し電圧のシフト量を示す情報が保持される。
このシフト量につき、以下説明する。図4で説明した“Er”状態、“A”状態、…、及び“G”状態に対応する閾値分布は、互いに分離している。従って、電圧VA、VB、…及びVGによって、各状態を区別することができる。しかし、データを書き込んだ後に時間が経過すると、隣接セルとの干渉により(これをセル間干渉効果と呼ぶ)閾値分布が低電圧側にシフトする場合がある。このシフト量は、経過時間が長いほど大きく、また書き込み回数の多いブロックほど大きい。そして、各状態の閾値分布の分布幅が拡がり、隣り合う閾値分布が重なってしまうことがある。
このようにセル間干渉効果により閾値分布が変動すると、上記の電圧VA、VB、…及びVGではデータを正しく読み出せないことがある。すなわち、読み出しデータに含まれるエラービット数が、ECC回路260の訂正可能ビット数を超え、この場合、データの読み出しは失敗となる。
このような場合にコントローラ200は、読み出し電圧を電圧VA、VB、…及びVG(これをデフォルトの電圧と呼ぶ)からシフトさせて、再度データの読み出しを試みる。これをシフトリードと呼ぶ。この際のデフォルトの電圧からのシフト量ΔVを示す情報を保持しているのが、図5に示すシフトテーブルである。
本例におけるシフトテーブルでは、読み出し動作AR、BR、…及びGRのそれぞれにつき、シフト量ΔVAj、ΔVBj、…及びΔVGjが用意されている(jはインデックス、すなわち1〜12のいずれかの自然数であり、これらを区別しない場合にはΔVと総称する)。あるインデックスjに相当するシフト量ΔVAj、ΔVBj、…及びΔVGjは、全てが異なる値である場合であっても良いし、一部が同じ値を有する場合であっても良いし、全てが同じ値を有する場合であっても良い。これらのシフト量ΔVは、例えばコントローラ200によって適宜、適切な値に設定される。
また、本例おけるシフトテーブルでは、インデックスの値が小さいものほど、セル間干渉効果の影響が小さい。すなわち、インデックス=1に対応するシフト量ΔV(すなわちΔVA1、ΔVB2、…及びΔVG1)は、セル間干渉効果の影響が最も小さい場合に最適化されている。これに対してインデックス=12に対応するシフト量ΔV(すなわちΔVA12、ΔVB12、…及びΔVG12)は、セル間干渉効果の影響が最も大きい場合に最適化されている。
セル間干渉効果から受ける影響の程度は、閾値分布が“Er”〜“G”状態のいずれにあるかによって異なる場合がある。例えば、本実施形態で着目している、時間の経過と共に閾値分布が低電圧側にシフトするセル間干渉効果の場合、その影響は閾値電圧の高い状態ほど大きい。つまり、読み出し動作GR、FRに大きな影響を与える。他方で、読み出し動作CRやDRではそれほど大きくない、という傾向にある。従って、例えば下記の関係が成り立ち得る。
|ΔVG12|>|ΔVG1|
|ΔVG12|>|ΔVC12|、|ΔVD12|
この関係は一例に過ぎず、またこのような場合に限定されるものではない。また、絶対値で表記している理由は、セル間干渉効果による影響が負電圧側への閾値変動だとすれば、シフト量ΔVは負の値を有するからである。もちろん、各シフト量ΔVは、負の値を有しても良いし、正の値を有しても良く、シフトリードに適切な値であれば良い。
|ΔVG12|>|ΔVG1|
|ΔVG12|>|ΔVC12|、|ΔVD12|
この関係は一例に過ぎず、またこのような場合に限定されるものではない。また、絶対値で表記している理由は、セル間干渉効果による影響が負電圧側への閾値変動だとすれば、シフト量ΔVは負の値を有するからである。もちろん、各シフト量ΔVは、負の値を有しても良いし、正の値を有しても良く、シフトリードに適切な値であれば良い。
またコントローラ200は、インデックスのいずれかを第1基準値として記憶し、別のいずれかのインデックスを第2基準値として記憶する。第2基準値となるインデックスは、第1基準値となるインデックスよりも、セル間干渉効果の影響が大きいシフト量に対応する。図5の例であると、インデックス=7が第1基準値とされ、インデックス=10が第2基準値とされる。第1基準値はリフレッシュリードを行うか否かの判断基準として用いられ、第2基準値はブロックコピー動作を行うか否かの判断基準として用いられる。リフレッシュリード及びブロックコピーについては、後に詳細に説明する。
上記構成のシフトテーブル、並びにいずれのインデックスが第1基準値及び第2基準値となるかに関する情報は、例えばNAND型フラッシュメモリ100のいずれかのブロックBLKに保持される。そして、例えば電源投入直後等に、コントローラ200によって読み出され、メモリ220等に保持される。
1.1.5 履歴テーブルについて
コントローラ200は、更に履歴テーブルを保持する。履歴テーブルにつき、図6を用いて説明する。図6は履歴テーブルの一例の概念図である。
コントローラ200は、更に履歴テーブルを保持する。履歴テーブルにつき、図6を用いて説明する。図6は履歴テーブルの一例の概念図である。
図示するように履歴テーブルは、論理ブロックLBにおけるワード線WL0〜WL7と、これらのワード線WL0〜WL7に適用される、シフトテーブルにおけるインデックスとの関係を保持する。以下、論理ブロックLBと区別するために、NAND型フラッシュメモリ100のメモリセルアレイ110に含まれる各ブロックBLKを物理ブロックと呼ぶことがある。但し、本明細書において単に「ブロックBLK」と呼ぶ際には、それは物理ブロックを指す。
物理ブロックBLKには、それぞれ固有のアドレスが割り当てられている。これを物理アドレスと呼ぶ。これに対してホスト機器300は、物理アドレスと異なる論理アドレスを用いてコントローラ200にアクセスする。この論理アドレスによって指定される物理ブロックBLKが論理ブロックLBであり、例えば複数の物理ブロックBLKの集合である。論理ブロックLBと物理ブロックBLKとの関係は、常に変化し得る。例えば、ある時点での論理ブロックLB0が、物理ブロックBLK0〜BLK3に対応していたとすると、その後のある時点では、論理ブロックLB0は別の物理ブロックBLK4〜BLK7に対応する。従ってコントローラ200の例えばバッファメモリ240、論理アドレスと物理アドレスとの対応関係を、論理/物理アドレス変換テーブルとして保持する。
そして履歴テーブルは、上記論理ブロックLBの各ワード線WLに適用すべき、読み出し電圧のシフト量ΔVに関する情報を、例えばインデックスを用いて保持する。そしてコントローラ200は、この履歴テーブルを参照することにより、選択ワード線WLに印加すべき読み出し電圧を決定する。
例えば図6の例であると、論理ブロックLB0のワード線WL0にはインデックス=1が割り当てられている。これは、論理ブロックLB0に対応する物理ブロックBLKのワード線WL0に読み出し電圧を印加する際には、デフォルトの値に対して、図5に示すシフトテーブルにおけるインデックス=1に対応するシフト量(ΔVA1、ΔVB、…及びΔVG1)が適用されることを意味する。
履歴テーブルで指定されるシフト量は、例えばset featureコマンド等を用いて、コントローラ200によりNAND型フラッシュメモリ100に設定される。よって、読み出し動作の度に毎回シフト量ΔVを指定する必要はない。しかし、履歴テーブルにおいてインデックスが更新された際には、コントローラ200はNAND型フラッシュメモリ100に対してシフト量を設定し直す。なおSet featureコマンドは、NAND型フラッシュメモリ100における電圧やタイミング等、種々の設定を変更可能なコマンドである。
上記構成の履歴テーブルは、例えばNAND型フラッシュメモリ100のいずれかのブロックBLKに保持される。そして、例えばメモリシステム1への電源投入直後等に、コントローラ200によって読み出され、メモリ220等に保持される。また、メモリシステム1の電源が遮断される際には、メモリ220等に保持される履歴テーブルが、NAND型フラッシュメモリ100のいずれかのブロックBLKに書き込まれる。すなわち、NAND型フラッシュメモリ100内の履歴テーブルが更新される。
1.1.6 フラグテーブルについて
コントローラ200は、更にフラグテーブルを保持する。フラグテーブルにつき、図7を用いて説明する。図7はフラグテーブルの一例の概念図である。
コントローラ200は、更にフラグテーブルを保持する。フラグテーブルにつき、図7を用いて説明する。図7はフラグテーブルの一例の概念図である。
図示するようにフラグテーブルは、論理ブロックLB毎にリフレッシュリードフラグ及びブロックコピーフラグを保持する。リフレッシュリードフラグ及びブロックコピーフラグは、例えばコントローラ200によりリフレッシュリード及びブロックコピーがそれぞれ予約された際に“1”とされる。
リフレッシュリードは、1.1.4の項で説明したセル間干渉効果による影響を低減するための動作である。より具体的には、例えば読み出し動作と類似した動作を行って、ワード線WLに電圧を印加する。これにより、メモリセルトランジスタMTにリードディスターブを生じさせ、セル間干渉効果の影響を受けた閾値分布を高電圧側へシフトさせる。つまり、閾値分布を理想の状態に近づけることを試みる。これがリフレッシュリードである。なお、本実施形態では本動作を「リフレッシュリード」と呼ぶが、何らかのデータがNAND型フラッシュメモリ100からコントローラ200に読み出されるわけではない。すなわち、リフレッシュリードにおいては、NAND型フラッシュメモリ100からコントローラ200への読み出しデータの転送は行われない。
またブロックコピーは、リフレッシュリードや他の手段によっても、データを正しく読むことが困難になった場合に、当該論理ブロックLBに対応する全物理ブロックBLK内の有効データを、別の物理ブロックBLKに書き写す動作である。そして、コピー元の物理ブロックBLK内のデータは全て消去される。
コントローラ200は、各論理ブロックLBにつき、適用される履歴テーブルのインデックスが第1基準値(図5の例では“7”)を超えた際にリフレッシュリードを予約し、第2基準値(図5の例では“10”)を超えた際にブロックコピーを予約する。
上記構成のフラグテーブルは、例えばNAND型フラッシュメモリ100のいずれかのブロックBLKに保持される。そして履歴テーブルと同様に、例えばメモリシステム1への電源投入直後等にコントローラ200によって読み出され、メモリ220等に保持される。また、メモリシステム1の電源が遮断される際には、メモリ220等に保持されるフラグテーブルが、NAND型フラッシュメモリ100のいずれかのブロックBLKに書き込まれる。
1.2 読み出し動作及びリフレッシュリード動作について
次に、本実施形態に係るデータの読み出し動作及びリフレッシュリード動作について説明する。
次に、本実施形態に係るデータの読み出し動作及びリフレッシュリード動作について説明する。
1.2.1 読み出し動作について
まず、コントローラ200による読み出し動作の流れについて、図8を用いて説明する。図8は読み出し動作のフローチャートである。なお図8におけるコントローラ200の動作は、例えばプロセッサ230の制御によって実行される。
まず、コントローラ200による読み出し動作の流れについて、図8を用いて説明する。図8は読み出し動作のフローチャートである。なお図8におけるコントローラ200の動作は、例えばプロセッサ230の制御によって実行される。
コントローラ200はまず、メモリ220内のシフトテーブルと履歴テーブルとを参照する(ステップS10)。これによりコントローラ200は、各物理ブロックBLKの各ワード線WLに対するシフト量を把握する。そして、いずれかのタイミングにおいてコントローラ200は、Set featureコマンドを発行して、把握したシフト量を、NAND型フラッシュメモリ100に設定する。この様子を図9及び図10に示す。図9はset featureのコマンドシーケンスであり、図10はset featureによってNAND型フラッシュメモリ100に設定される情報の一例を示している。
以下では、論理ブロックLB0に着目し、更に論理ブロックLB0が4つの物理ブロックBLK0〜BLK3に対応する場合を例に説明する。コントローラ200は、例えばメモリ220内の論理/物理アドレス変換テーブルに基づき、論理ブロックLB0が物理ブロックBLK0〜BLK3に対応することを認識する。またコントローラ200は履歴テーブルに基づき、論理ブロックLB0に適用されるインデックスを把握し、このインデックスと履歴テーブルとに基づいて、論理ブロックLB0で使用すべきシフト量を認識する。
そしてコントローラ200は、上記論理ブロックLB0に対応する物理ブロックBLK0〜BLK3に適用すべきシフト量を、set featureコマンドによりNAND型フラッシュメモリ100に設定する。すなわち図9に示すようにコントローラ200は、まずコマンド“EFh”をNAND型フラッシュメモリ100へ送信する。“EFh”は、設定変更の旨をNAND型フラッシュメモリ100に宣言するコマンドである。引き続きコントローラ200は、アドレス“ZZh”を送信する。“ZZh”は、NAND型フラッシュメモリ100において、set featureコマンドにより変更対象となる設定値を保持するレジスタを指定するアドレスである。その後、コントローラ200はデータを4サイクルにわたって送信する(データ“D0”〜“D3”)。このデータ“D0”〜“D3”が、物理ブロックBLK0〜BLK3に適用すべきシフト量に関する情報を含む。
この結果、NAND型フラッシュメモリ100において指定されたレジスタには、図10に示すような情報が保持される。すなわちレジスタは、物理ブロックBLK0〜BLK3のワード線WL0〜WL7に対して読み出し動作AR、BR、…及びGRを行う際に用いるシフト量ΔVを保持する。そしてNAND型フラッシュメモリ100のドライバ130は、読み出し時におけるデフォルトの電圧VA、VB、…及びVGに対して、レジスタに保持されたシフト量を加えた値の電圧を読み出し電圧VCGRVとして、ロウデコーダ120を介して、選択ワード線WLに印加する。つまり、当初の電圧VA、VB、…及びVGの代わりに、電圧(VA+ΔVA)、(VB+ΔVB)、…及び(VG+ΔVG)が、読み出し電圧VCGRVのデフォルト値となる。
なお、NAND型フラッシュメモリ100から読み出された履歴テーブルにそのまま従ってシフト量が設定される場合には、必ずしもset featureコマンドを使用する必要はない。例えば、電源投入時等において、NAND型フラッシュメモリ100自らが(例えばシーケンサ170が)、メモリセルアレイ110から読み出された履歴テーブル及びシフトテーブルに基づいて、図10に示すシフト量をレジスタに設定しても良い。
そしてコントローラ200は、ホスト機器300からデータの要求命令を受信すると、通常リードコマンドを発行する(ステップS11)。通常リードコマンドは、読み出し電圧のシフト量に関する情報を含まない。よってNAND型フラッシュメモリ100は、デフォルトの読み出し電圧を用いてデータを読み出し、これをコントローラ200に送信する。すなわち、例えばブロックBLK0のワード線WL2が選択される場合には、読み出し電圧VCGRVとして(VA+ΔVA7)、(VB+ΔVB7)、(VC+ΔVC7)、…及び(VG+ΔVG7)が用いられる。
NAND型フラッシュメモリ100から読み出しデータを受信したコントローラ200では、ECC回路260がエラーを検出する。そして、読み出しデータにエラーが含まれない場合、またはECC回路260によりエラーを訂正(ハードビットデコード)できた場合(ステップS12、YES)、データの読み出し動作は完了する。
読み出しデータに含まれるエラービット数がECC回路260で訂正可能なビット数を超えており(ステップS12、NO)、履歴テーブルが最終インデックス(図5の例であると“12”)を指定する場合(ステップS13、YES)、コントローラ200は、論理ブロックのコピー動作を予約する(ステップS14)。すなわち、例えばメモリ220内のフラグテーブルにおいて、読み出し対象の物理ブロックBLKが対応する論理ブロックLBに、ブロックコピーフラグを立てる。ステップS14の後、コントローラ200は、データを正しく読み出すための何らかの動作を実行する(ステップS15)。その一例は、Vthトラッキング動作である。Vthトラッキング動作は、選択ワード線WLに印加する電圧を細かく変化させつつオンセル(またはオフセル)の数を計測することにより、重なった閾値分布の交点に対応する電圧を探索する動作である。そして、この交点に基づいて最適な読み出し電圧が決定され、再度の読み出し動作が行われる。
ステップS13において最終インデックスでない場合(ステップS13、NO)、コントローラ200は、シフトテーブルにおける次のインデックスを選択する(ステップS16)。そしてコントローラ200は、選択したインデックスに基づいてシフトリードコマンドを発行する(ステップS17)。この際、例えばコントローラ200の発行するコマンドシーケンスがシフト量ΔVを示す情報を含み、この情報に基づいてNAND型フラッシュメモリ100は読み出し電圧VCGRVを決定する。先の例であると、ブロックBLK0のワード線WL2が選択される場合には、読み出し電圧VCGRVとして(VA+ΔVA8)、(VB+ΔVB8)、(VC+ΔVC8)、…及び(VG+ΔVG8)が用いられる。
そしてコントローラ200は、選択したインデックスが最終値に達するか(ステップS13、YES)、またはエラーの訂正に成功するまで(ステップS18、YES)、シフトリードを繰り返す(ステップS16、S17)。
ECC回路260がエラーの訂正に成功すると(ステップS18、YES)、コントローラ200は、メモリ220内の履歴テーブルを更新する(ステップS19)。すなわち、履歴テーブルにおいて、読み出し対象となった論理ブロックLBのワード線WLに関するインデックス値を、直近のステップS16で選択された値に変更する。またコントローラ200は、例えばset featureコマンド等によりレジスタ内の情報を図11のように更新する。図11は、ワード線WL2に対するシフトリードが、インデックス=“8”で成功した例を示している。図示するように、ワード線WL2に対するシフト量ΔVA7、ΔVB7、…及びΔVG7が、それぞれΔVA8、VB8、…及びΔVG8に更新される。
引き続きコントローラ200は、ステップS16で選択されたインデックスと、図5で説明した第2基準値とを比較する(ステップS20)。そして、インデックスが第2基準値を超えていれば(ステップS20、YES)、コントローラ200はステップS14と同様に論理ブロックのコピーを予約し(ステップS21)、読み出し動作を終了する。
他方で、インデックスが第2基準値以下であれば(ステップS20、NO)、コントローラ200は、インデックスと、図5で説明した第1基準値とを比較する(ステップS22)。インデックスが第1基準値を超えていれば(ステップS22、YES)、コントローラ200はリフレッシュリード動作を予約する(ステップS23)。すなわち、メモリ220内のフラグテーブルにおいて、読み出し対象の物理ブロックBLKが対応する論理ブロックLBに、リフレッシュリードフラグを立てる。そして、読み出し動作を終了する。インデックスが第1基準値以下であれば(ステップS22、NO)、コントローラ200はリフレッシュリードフラグを立てることなく、読み出し動作を終了する。
1.2.2 リフレッシュリード動作について
次に、コントローラ200によるリフレッシュリード動作の流れについて、図12を用いて説明する。図12はリフレッシュリード動作のフローチャートである。なお図12におけるコントローラ200の動作は、例えば主にプロセッサ230の制御によって実行される。
次に、コントローラ200によるリフレッシュリード動作の流れについて、図12を用いて説明する。図12はリフレッシュリード動作のフローチャートである。なお図12におけるコントローラ200の動作は、例えば主にプロセッサ230の制御によって実行される。
コントローラ200は、図8で説明したデータの読み出し直後、または読み出し後であって、コントローラ200の処理の空き時間に、メモリ220内のフラグテーブルを確認する。そして、リフレッシュリードフラグが“1”とされている論理ブロックLBに対してリフレッシュリード動作を実行する。
すなわち図12に示すように、コントローラ200は、リフレッシュリード回数を初期化する(RD_count=0)(ステップS30)。引き続きコントローラ200は、リフレッシュリード回数と、リフレッシュリード回数最大値とを比較する(ステップS31)。リフレッシュリード回数最大値は1またはそれ以上の値である。そしてリフレッシュリード回数最大値も、シフトテーブルや履歴テーブルと同様に、例えばNAND型フラッシュメモリ100から読み出され、メモリ220に保持される。
そしてリフレッシュリード回数がリフレッシュリード回数最大値未満であれば(ステップS31、YES)、コントローラ200はリフレッシュリードコマンドを発行し、これをNAND型フラッシュメモリ100へ送信する(ステップS32)。また、コントローラ200はリフレッシュリード回数をカウントアップする(RD_count=RD_count+1)(ステップS33)。そしてステップS31の処理に戻る。
ステップS31においてリフレッシュリード回数がリフレッシュリード回数最大値に達していれば(ステップS31、NO)、コントローラ200は履歴テーブルを更新して(ステップS34)、リフレッシュリード動作を終了する。ステップS34では、ステップS19と異なり、プロセッサ230は、履歴テーブルにおけるインデックスをより小さい値に更新する。換言すれば、よりシフト量の小さいインデックス、更に言い換えれば、より小さいセル間干渉効果に対応するインデックスに更新する。一例としては、第1基準値よりも1つ前のインデックス等である。
図13は、通常リード動作とリフレッシュリード動作時のデータ信号DQ及びレディ/ビジー信号RBのタイミングチャートである。信号DQは、コントローラ200とNAND型フラッシュメモリ100との間で送受信される信号であり、コマンド、アドレス、及びデータ等が信号DQとして送受信される。信号RBは、NAND型フラッシュメモリ100からコントローラ200に送信される信号であり、NAND型フラッシュメモリ100がコントローラ200からコマンドを受信可能な状態で“H”レベル(レディ状態)となり、コマンドを受信できない動作状態で“L”レベル(ビジー状態)となる。
図示するように、通常リードを命令する下記のコマンドシーケンスが、時刻t0においてコントローラ200からNAND型フラッシュメモリ100へ送信される。
<00h><ADD><ADD><ADD><ADD><ADD><30h>
すなわち、コマンド“00h”によってアドレス入力が宣言され、5サイクルにわたってアドレスADDが入力される。このアドレスADDによって、読み出し対象となる物理ブロックBLKとページが指定される。そして、コマンド“30h”が入力されることでシーケンサ170はメモリセルからのデータの読み出しを開始し、NAND型フラッシュメモリ100はビジー状態となる。
<00h><ADD><ADD><ADD><ADD><ADD><30h>
すなわち、コマンド“00h”によってアドレス入力が宣言され、5サイクルにわたってアドレスADDが入力される。このアドレスADDによって、読み出し対象となる物理ブロックBLKとページが指定される。そして、コマンド“30h”が入力されることでシーケンサ170はメモリセルからのデータの読み出しを開始し、NAND型フラッシュメモリ100はビジー状態となる。
メモリセルからのデータの読み出しが完了すると、NAND型フラッシュメモリ100はレディ状態となる。そして、コントローラ200から送信されるクロック(図示せず)に同期して、読み出しデータがコントローラ200に送信される。
なお、通常リードの代わりにシフトリードを命令する場合には、例えば下記のコマンドシーケンスがコントローラ200からNAND型フラッシュメモリへ送信される。
<X0h><DAC><00h><ADD><ADD><ADD><ADD><ADD><30h>
すなわち、コマンド“X0h”によって読み出し電圧の指定が宣言され、データ“DAC”により読み出し電圧VCGRVが指定される。“DAC”は、読み出し電圧VCGRVそのものを示していても良いし、デフォルト値からのシフト量を示していても良い。その後は通常リードと同様のコマンドシーケンスが送信される。
<X0h><DAC><00h><ADD><ADD><ADD><ADD><ADD><30h>
すなわち、コマンド“X0h”によって読み出し電圧の指定が宣言され、データ“DAC”により読み出し電圧VCGRVが指定される。“DAC”は、読み出し電圧VCGRVそのものを示していても良いし、デフォルト値からのシフト量を示していても良い。その後は通常リードと同様のコマンドシーケンスが送信される。
ここで、時刻t0〜t1においてデータの読み出し対象とされた論理ブロックLBに対して、リフレッシュリードが予約されたとする。すると、読み出しデータがNAND型フラッシュメモリ100からコントローラ200に送信された後、リフレッシュリードを命令する下記のコマンドシーケンスが、時刻t2でコントローラ200からNAND型フラッシュメモリ200に送信される。
<XXh><00h><ADD><ADD><ADD><ADD><ADD><30h>
このコマンドシーケンスは、時刻t0における通常リードを命令するコマンドシーケンスの前にprefixコマンド“XXh”を付加したものである。コマンド“XXh”は、その後に続くアドレスで指定されるメモリセル(ブロックBLLK)に対するリフレッシュリードの実行を命令する。よって、5サイクルのアドレス“ADD”は、直前の通常リードまたはシフトリードのコマンドシーケンス内のアドレス“ADD”と同じアドレスを指定する。
<XXh><00h><ADD><ADD><ADD><ADD><ADD><30h>
このコマンドシーケンスは、時刻t0における通常リードを命令するコマンドシーケンスの前にprefixコマンド“XXh”を付加したものである。コマンド“XXh”は、その後に続くアドレスで指定されるメモリセル(ブロックBLLK)に対するリフレッシュリードの実行を命令する。よって、5サイクルのアドレス“ADD”は、直前の通常リードまたはシフトリードのコマンドシーケンス内のアドレス“ADD”と同じアドレスを指定する。
このコマンドシーケンスに応答して、シーケンサ170はリフレッシュリードを開始し、NAND型フラッシュメモリ100はビジー状態となる。その後、NAND型フラッシュメモリ100がレディ状態に復帰する度に、コントローラ200はリフレッシュリード回数最大値に達するまでリフレッシュリードを繰り返すよう、NAND型フラッシュメモリ100に命令する。なお、図13に示すように、リフレッシュリードでは、通常リードと異なり、読み出しデータはコントローラ200に送信されない。
1.2.3 NAND型フラッシュメモリの動作
次に、上記通常リード及びシフトリード時、並びにリフレッシュリード時のNAND型フラッシュメモリ100の動作につき、特にメモリセルアレイ110に着目して説明する。
次に、上記通常リード及びシフトリード時、並びにリフレッシュリード時のNAND型フラッシュメモリ100の動作につき、特にメモリセルアレイ110に着目して説明する。
まず、通常リード及びシフトリード時につき、図14を用いて説明する。図14は一例として、物理ブロックBLK0のストリングユニットSU0におけるメモリセルトランジスタMT2からデータが読み出される場合を示している。
図示するように、セレクトゲート線SGD0及びSGS0には電圧VSG(例えば4.3V)が印加される。電圧VSGは、選択トランジスタST1及びST2をオン状態とする電圧である。
ダミーワード線WLDD及びWLDSには、電圧VREAD_DD及びVREAD_DS(例えば7.8V)がそれぞれ印加される。電圧VREAD_DD及びVREAD_DSはそれぞれ、ダミートランジスタDTD及びDTSをオン状態とする電圧である。
選択ワード線WL2に隣接しない非選択ワード線WL0、WL4、WL5、…及びWL7には、電圧VREAD(例えば8.0V)が印加される。また選択ワード線WL2に隣接する非選択ワード線WL1及びWL3には、電圧VREADK(例えば8.2V)が印加される。電圧VREAD及びVREADKは、保持データにかかわらずメモリセルトランジスタMTをオン状態とする電圧である。
選択ワード線WL2には読み出し電圧VCGRVが印加される。例えばLowerページが読み出される際には、電圧VCGRVが(VA+ΔVA)及び(VE+ΔVE)とされる。ΔVAとΔVEは、デフォルト値からのシフト量である。
ビット線BLにはプリチャージ電圧Vpre(例えば0.7V)が印加され、ソース線SLは0Vとされる。これにより、電圧VCGRVが(VA+ΔVA)とされている期間に読み出し動作ARが行われ、電圧VCGRVが(VE+ΔVE)とされている期間に読み出し動作ERが行われる。
すなわち、メモリセルトランジスタMT2がオン状態となればビット線BLからソース線SLにセル電流が流れ、オフ状態であればセル電流は流れない(リーク電流が僅かに流れるに過ぎない)。このビット線BLに流れる電流、またはビット線の電位をセンスアンプ140がセンスし、メモリセルトランジスタMT2の保持データが“0”であるか“1”であるかを判定し、内部のラッチ回路に保持する。そして、センスアンプ140が読み出しデータに対して必要な演算を行った後、当該データがコントローラ200に送信される。
なお、非選択ストリングユニットSU1〜SU3ではセレクトゲート線SGD1〜SGD3及びSGS1〜SGS3には0Vが印加され、選択トランジスタST1及びST2がオフ状態とされる。
次に、リフレッシュリードにつき図15を用いて説明する。図示するように、リフレッシュリードでは、ワード線WL0〜WL7の全てに電圧VREADが印加される。これにより、保持データにかかわらずブロックBLK0内のメモリセルトランジスタMT0〜MT7は全てオン状態とされる。その他は、通常リード及びシフトリード時と同様である。但し、リフレッシュリードは、メモリセルトランジスタMTからデータを読み出すための動作ではないので、ビット線BLの電位変動を読み出しデータとしてセンスアンプ140がセンスする必要はない。また、リフレッシュリードでは、メモリセルトランジスタMTにリードディスターブ類似の電圧ストレスを与えることができればよいので、ビット線BLは必ずしもプリチャージ電位にする必要はなく、例えば0Vとされてもよいし、あるいはその他の一定電圧とされてもよい。
1.2.4 具体例
次に、図8においてリフレッシュリードを実行する場合とブロックコピーを行う場合の具体例につき、簡単に説明する。
次に、図8においてリフレッシュリードを実行する場合とブロックコピーを行う場合の具体例につき、簡単に説明する。
<リフレッシュリード>
まず、リフレッシュリードを行う場合につき、図16を用いて説明する。以下では論理ブロックLB0に対応する物理ブロックBLK0のメモリセルトランジスタMT2からlowerページデータが読み出される場合を例に挙げる。
まず、リフレッシュリードを行う場合につき、図16を用いて説明する。以下では論理ブロックLB0に対応する物理ブロックBLK0のメモリセルトランジスタMT2からlowerページデータが読み出される場合を例に挙げる。
まず、NAND型フラッシュメモリ100は、コントローラ200からの通常リードコマンドに応答して、通常リードを行う(ステップS11)。この際、図6及び図7で説明したように、論理ブロックLB0のワード線WL2に対するインデックスは“7”であるから、シフトテーブルに保持されたシフト量ΔVA7及びΔVE7が選択される。すなわち、NAND型フラッシュメモリ100においてドライバ回路130は、選択ワード線WL2に対し、読み出し動作ARでは(VA+ΔVA7)を印加し、読み出し動作ERでは(VE+ΔVE7)を印加する。
ステップS11における読み出しデータがコントローラ200に送信されると、ECC回路260がエラーの訂正を試みる。ECC回路260がエラーの訂正に失敗すると(ステップS12)、コントローラ200は次のインデックス、すなわち(7+1)=8を選択する(ステップS16)。そしてコントローラ200は、シフトリードコマンドを発行し、NAND型フラッシュメモリ100はシフトリードを実行する(ステップS17)。この際、コントローラ200は、シフトテーブルにおけるインデックス値=8に対応するシフト量ΔVA8及びΔVE8を使用するよう、NAND型フラッシュメモリ100に命令する。これに従い、NAND型フラッシュメモリ100では、ドライバ回路130は、選択ワード線WL2に対し、読み出し動作ARでは(VA+ΔVA8)を印加し、読み出し動作ERでは(VE+ΔVE8)を印加する。
ステップS17における読み出しデータがコントローラ200に送信されると、ECC回路260が再度、エラーの訂正を試みる。ECC回路260がエラーの訂正に成功すると(ステップS18)、コントローラ200は、メモリ220内の履歴テーブルを更新する(ステップS19)。すなわち、ワード線WL2に対応するインデックスを、それまでの“7”から“8”に更新する。つまり、今後はインデックス=8に対応するシフト量だけシフトされた値が読み出し電圧VCGRVのデフォルト値として用いられる。
引き続きコントローラ200は、インデックスと第2基準値とを比較する(ステップS20)。インデックスはステップS19で“7”から“8”に更新されている。そして第2基準値は“10”である。従って、インデックス<第2基準値である。よって、ブロックコピーは行われない。
引き続きコントローラ200は、インデックスと第1基準値とを比較する(ステップS22)。インデックスは前述の通り“8”であり、第1基準値は“7”である。従って、インデックス>第1基準値である。よってコントローラ200は、メモリ220内のフラグテーブルにおいて、論理ブロックLB0につきリフレッシュリードフラグを立てる(ステップS23)。
その後、処理の空き時間においてコントローラ200はリフレッシュリードコマンドを発行し、これに応答してNAND型フラッシュメモリ100は、リフレッシュリード回数最大値に達するまで、リフレッシュリードを実行する(ステップS32)。すなわち、選択ブロックBLKにおいて、全ワード線WLに電圧VREADが印加される。またコントローラ200は、メモリ220内の履歴テーブルを更新する(ステップS34)。すなわちインデックスは“8”から、第1基準値よりも例えば1つ前のインデックスである“6”に更新される。
<ブロックコピー>
次に、ブロックコピーを行う場合につき、図17を用いて説明する。以下では論理ブロックLB1に対応する物理ブロックBLK4〜BLK7のいずれかにおけるメモリセルトランジスタMT7からlowerページデータが読み出される場合を例に挙げる。
次に、ブロックコピーを行う場合につき、図17を用いて説明する。以下では論理ブロックLB1に対応する物理ブロックBLK4〜BLK7のいずれかにおけるメモリセルトランジスタMT7からlowerページデータが読み出される場合を例に挙げる。
図16と同様に、NAND型フラッシュメモリ100はまず通常リードを行う(ステップS11)。この際、図6及び図7で説明したように、論理ブロックLB1のワード線WL7に対するインデックスは“10”であるから、シフトテーブルに保持されたシフト量ΔVA10及びΔVE10が選択される。
ステップS11において読み出しデータエラー訂正に失敗すると(ステップS12)、コントローラ200は次のインデックス、すなわち(10+1)=11を選択する(ステップS16)。そしてコントローラ200は、シフトリードコマンドを発行し、NAND型フラッシュメモリ100はシフトリードを実行する(ステップS17)。この際に使用されるシフト量は、インデックス=11に対応するシフト量ΔVA11及びΔVE11である。
ステップS17における読み出しデータのエラー訂正に成功すると(ステップS18)、コントローラ200は、メモリ220内の履歴テーブルを更新する(ステップS19)。すなわち、ワード線WL7に対応するインデックスを、それまでの“10”から“11”に更新する。
引き続きコントローラ200は、インデックスと第2基準値とを比較する(ステップS20)。インデックスはステップS19で“10”から“11”に更新されている。そして第2基準値は“10”である。従って、インデックス>第2基準値である。よってコントローラ200は、メモリ220内のフラグテーブルにおいて、論理ブロックLB1につきブロックコピーフラグを立てる(ステップS21)。
その後、処理の空き時間においてコントローラ200はブロックコピーコマンドを発行し、これに応答してNAND型フラッシュメモリ100はブロックコピーを実行する(ステップS40)。すなわち、NAND型フラッシュメモリ100は、論理ブロックLB1に対応する物理ブロックBLK4〜BLK7に保持される有効データを、消去済みの物理ブロックBLK8〜BLK11にコピーする。そして、NAND型フラッシュメモリ100は物理ブロックBLK4〜BLK7内のデータを全て消去し、コントローラ200は以後、物理ブロックBLK8〜BLK11を論理ブロックLB1に割り当てる。
またコントローラ200は、履歴テーブルを更新する(ステップS41)。すなわち、論理ブロックLB1に対応するインデックスを初期化する。図17の例であると、全ワード線WL0〜WL7のインデックス値は“0”とされる。“0”は、例えばシフト値=“0”を示す。または、全ワード線WL0〜WL7のインデックスが、最小値の“1”とされる場合であっても良い。
1.3 本実施形態に係る効果
本実施形態によれば、メモリシステムの動作信頼性を向上できる。本効果につき、図18を用いて説明する。図18は、メモリセルの閾値分布の変化を示している。
本実施形態によれば、メモリシステムの動作信頼性を向上できる。本効果につき、図18を用いて説明する。図18は、メモリセルの閾値分布の変化を示している。
図中の第1の状態は、データの書き込み直後の閾値分布である。図18では、各閾値分布が互いに離隔した理想的な状態を示している。この第1の状態から、ある一定期間が経過した後の閾値分布が第2の状態である。図示するように、前述したセル間干渉効果により、閾値分布が低電圧側へシフトする。この理由は、例えば電荷蓄積層に注入した電子がメモリセルトランジスタ間の領域に移動して、メモリセルトランジスタMTの電荷蓄積層内の電子数が実質的に減少するからである。従ってコントローラ200は、シフトリードによって、このセル間干渉効果に対応する。
この点、本実施形態では読み出し電圧VCGRVのシフト量(すなわちインデックス)が第1基準値を超えた場合に、リフレッシュリードを行う。リフレッシュリードは、図15で説明したように、全ワード線WLに電圧VREADを印加する動作である。これによりメモリセルトランジスタMTに電圧ストレスがかかり、図18の第3の状態に示すように閾値分布は高電圧側へシフトする。すなわち、第1の状態から第2の状態への閾値分布の変動量の少なくとも一部を、リフレッシュリードにより打ち消すことができる。
以上のように本実施形態によれば、メモリセルトランジスタMTの閾値分布(すなわち保持データの信頼性)を、インデックスに基づいて判断する。そして、閾値分布が一定の基準値を下回った際にリフレッシュリードを行う。これにより、メモリセルトランジスタMTの保持データの信頼性が向上され、読み出し時におけるエラービット数を低減できる。なお、前述の通り、リフレッシュリード動作では、メモリセルアレイ110からセンスアンプ140へのデータの読み出しは不要であるし、仮に読み出されたとしても、そのデータがコントローラ200へ送信されることはない。なぜなら、リフレッシュリード動作は、データを読み出す動作、というよりも、メモリセルトランジスタMTに電圧ストレスを与えて閾値分布をシフトさせるための動作だからである。よってリフレッシュリード動作は、例えば閾値分布シフト動作、閾値補正動作、ストレス印加動作、またはリードディスターブ印加動作等と呼ぶことができる。
また、エラービット数が非常に大きくなり、ECC回路260による訂正が不可能になりそうな状態になると、コントローラ200は論理ブロックLBのコピー動作を行う。しかし、このコピー動作は一般的に、非常に多くの物理ブロックBLKが対象となり(例えば128個のブロックBLK)、メモリシステム1にとって大きな負担となる。
しかし本実施形態によれば、上記リフレッシュリードにより閾値分布が補正される。従って、コピー動作の発生頻度を低減することができ、メモリシステムの動作信頼性を向上できる。
なお本実施形態では、セル間干渉効果として、閾値分布が低電圧側にシフトする場合を例に説明した。しかし、セル間干渉効果には他の要素もあり得る。例えば、あるメモリセルトランジスタMTi(iは0以上の整数)がプログラムベリファイにパスした後に、隣接する別のメモリセルトランジスタMT(i−1)及び/またはMT(i+1)の閾値変動量によって受ける効果であり、その結果として、メモリセルトランジスタMTiの閾値電圧は高電圧方向にシフトする。そして読み出し対象のメモリセルトランジスタMTiの閾値電圧が低い程(“Er”レベル)、また、隣接するメモリセルトランジスタMT(i−1)及び/またはMT(i+1)の閾値電圧が高いほど、メモリセルトランジスタMTiの閾値電圧の変動量は大きくなる傾向にある。
また上記実施形態では、図8のステップS23においてリフレッシュリードが予約されてから実際にリフレッシュ動作が行われる間に、ステップS11及びS17で読み出し対象とされたページに対してデータの書き込み動作及び消去動作は実行されない。なぜなら、データの書き込みは消去状態のメモリセルトランジスタMTに対して行われるので、既にデータが書き込まれている当該ページにはデータは書き込まれない。また、消去動作が実行されるのであれば、もはや当該ページ(及び当該ページを含むブロックBLK)につきリフレッシュリードを行う必要性はないからである。すなわち、リフレッシュリードが予約された後、当該ページに対する消去動作及び書き込み動作(これはすなわちデータの消去動作も含む)が実行されなければ、リフレッシュリードが行われる、と言い換えることができる。しかし、当該ページ及びブロックBLKに対する読み出し動作は行われても良い。また、他のブロックBLKへの書き込み動作及び消去動作が行われても良いし、他のストリングユニットSUへの書き込み動作は行われても良い。
よって、シフトテーブルは、このようなセル間干渉効果を考慮しても良い。例えばインデックスのいくつかは、上記実施形態で説明した高電圧側へのシフトに特に着目し、他のいくつかは低電圧側へのシフトに特に着目し、更に別のいくつかは両方に着目した場合のシフト量を保持していてもよい。
2.第2実施形態
次に、第2実施形態に係るメモリシステムについて説明する。本実施形態は、上記第1実施形態において、リフレッシュリード後に履歴テーブルを更新した後、所望のインデックスを設定し、且つ当該インデックスによりデータが読み出し可能であることを確認するものである。以下では、第1実施形態と異なる点についてのみ説明する。
次に、第2実施形態に係るメモリシステムについて説明する。本実施形態は、上記第1実施形態において、リフレッシュリード後に履歴テーブルを更新した後、所望のインデックスを設定し、且つ当該インデックスによりデータが読み出し可能であることを確認するものである。以下では、第1実施形態と異なる点についてのみ説明する。
2.1 リフレッシュリード動作について
本実施形態に係るリフレッシュリード動作につき、図19を用いて説明する。図19はリフレッシュリード動作のフローチャートであり、第1実施形態で説明した図12に対応する。図12と同様に、図19におけるコントローラ200の動作は、例えば主にプロセッサ230の制御によって実行される。
本実施形態に係るリフレッシュリード動作につき、図19を用いて説明する。図19はリフレッシュリード動作のフローチャートであり、第1実施形態で説明した図12に対応する。図12と同様に、図19におけるコントローラ200の動作は、例えば主にプロセッサ230の制御によって実行される。
図示するようにコントローラ200は、ステップS30においてリフレッシュリード回数を初期化すると共に(RD_count=0)、シフトリードのリピート回数を初期化する(Repeat_count=0)(ステップS35)。引き続きコントローラ200は、シフトリードのリピート回数と、シフトリード回数最大値とを比較する(ステップS36)。シフトリード回数最大値は1または複数の値であり、シフトテーブルや履歴テーブルと同様に、例えばNAND型フラッシュメモリ100から読み出され、メモリ220に保持される。
ステップS36においてシフトリードのリピート回数がシフトリード回数最大値に達していれば(ステップS36、NO)、コントローラ200はリフレッシュリード動作を終了する。
他方で、ステップS36においてリピート回数がシフトリード回数最大値未満であれば(ステップS36、YES)、コントローラ200はリフレッシュリード回数とリフレッシュリード回数最大値とを比較する(ステップS31)。
リフレッシュリード回数がリフレッシュリード回数最大値未満であれば(ステップS31、YES)、第1実施形態と同様に、リフレッシュリード回数が最大値に達するまでリフレッシュリードが繰り返される(ステップS32、S33)。
ステップS31においてリフレッシュリード回数がリフレッシュリード回数最大値に達していれば(ステップS31、NO)、コントローラ200はターゲットインデックスによるシフトリードをNAND型フラッシュメモリ100に命令する(ステップS37)。ターゲットインデックスは第1基準値以下の値であり、ステップS37では、ターゲットインデックスに対応するシフト量を用いてシフトリードが実行される。
ステップS37で読み出されたデータにつき、ECC回路260がエラーの訂正に成功すると(ステップS38、YES)、プロセッサ230は履歴テーブルにおけるインデックス値をステップS37で使用されたターゲットインデックスに更新して(ステップS34)、リフレッシュリード動作を終了する。
他方で、エラーの訂正に失敗した場合には(ステップS38、NO)、コントローラ200はシフトリードのリピート回数をカウントアップして(Repeat_count=Repeat_count+1)(ステップS39)、ステップS36の処理に戻る。
2.2 具体例
次に、本実施形態に係るリフレッシュ動作の具体例につき、図20を用いて説明する。図20は第1実施形態で説明した図16に対応し、論理ブロックLB0に対応する物理ブロックBLKにおけるメモリセルトランジスタMT2からlowerページデータが読み出す場合について示している。
次に、本実施形態に係るリフレッシュ動作の具体例につき、図20を用いて説明する。図20は第1実施形態で説明した図16に対応し、論理ブロックLB0に対応する物理ブロックBLKにおけるメモリセルトランジスタMT2からlowerページデータが読み出す場合について示している。
図示するように、ステップS23までの処理は、第1実施形態で説明した図16と同様である。すなわち、論理ブロックLB0のワード線WL0についてのインデックスが“8”となって第1基準値を上回り、リフレッシュリードが予約される。
そしてステップS32において、リフレッシュリード回数最大値に達するまで、リフレッシュリードが行われ(ステップS32)、その後、ステップS37においてシフトリードが行われる。ここで、例えばプロセッサ230はターゲットインデックスとして“3”を選択したとする。するとNAND型フラッシュメモリ100では、ドライバ回路130が選択ワード線WL2に対し、読み出し動作ARでは(VA+ΔVA3)を印加し、読み出し動作ERでは(VE+ΔVE3)を印加する。すなわち、この時点においては、履歴テーブル内の情報(インデックス=“8”)と、NAND型フラッシュメモリ100で使用されるインデックス(ターゲットインデックス=“3”)とは一致していない。
そして、ステップS32のリフレッシュリードとステップS37のシフトリードとの組み合わせが1回または複数回行われた結果、ECC回路260によるエラー訂正に成功する(ステップS38)。すると、プロセッサ230が履歴テーブルにおけるインデックス値を“8”からターゲットインデックスである“3”に更新して(ステップS34)、リフレッシュリード動作が完了する。
2.3 本実施形態に係る効果
本実施形態によれば、メモリシステムの動作信頼性を更に向上できる。すなわち、本実施形態によれば、リフレッシュリード後にシフトリードを行い、データが正しく読み出せることを確認した上で、履歴テーブルのインデックスを更新する。従って、ステップS34で更新された履歴テーブルの信頼度を向上できる。
本実施形態によれば、メモリシステムの動作信頼性を更に向上できる。すなわち、本実施形態によれば、リフレッシュリード後にシフトリードを行い、データが正しく読み出せることを確認した上で、履歴テーブルのインデックスを更新する。従って、ステップS34で更新された履歴テーブルの信頼度を向上できる。
更に、ターゲットインデックスで正しくデータを読み出せなかった場合には、履歴テーブルは更新されない。従って、コントローラ200がターゲットインデックスを第1基準値よりも大幅に小さい値に設定することを期待する場合、すなわち、セル間干渉効果による影響を補正するためのシフト量を、比較的小さな値に更新したい場合に、本実施形態が適用されることが好ましい。
なお、ターゲットインデックスを第1基準値よりも大幅に小さい値としてエラー訂正に失敗した場合であっても、リフレッシュリードにより閾値分布が一定程度は高電圧側へシフトしていることが期待される。よって、履歴テーブルにおいて、第1実施形態のように第1基準値に等しい値(“7”)またはそれに近い値(例えば“5”〜“6”)にインデックスを更新しても良い。
3.第3実施形態
次に、第3実施形態に係るメモリシステムについて説明する。本実施形態は、上記第2実施形態で説明したリフレッシュリード動作を、データの読み出し動作の直後に実行するものである。以下では、第1及び第2実施形態と異なる点についてのみ説明する。
次に、第3実施形態に係るメモリシステムについて説明する。本実施形態は、上記第2実施形態で説明したリフレッシュリード動作を、データの読み出し動作の直後に実行するものである。以下では、第1及び第2実施形態と異なる点についてのみ説明する。
3.1 読み出し動作及びリフレッシュリード動作について
図21は、本実施形態に係る読み出し動作及びリフレッシュリード動作のフローチャートである。図示するように本実施形態に係るリフレッシュリード動作は、読み出し動作の一部として実行される。言い換えれば、シフトリードに失敗する度にリフレッシュリードが行われる。
図21は、本実施形態に係る読み出し動作及びリフレッシュリード動作のフローチャートである。図示するように本実施形態に係るリフレッシュリード動作は、読み出し動作の一部として実行される。言い換えれば、シフトリードに失敗する度にリフレッシュリードが行われる。
すなわち、図21に示すように、ステップS17におけるシフトリードでエラー訂正に失敗した場合に(ステップS18、NO)、コントローラ200はインデックスと第1基準値とを比較する(ステップS22)。インデックスが第1基準値以下であれば(ステップS22、NO)、処理はステップS13の判断に戻る。他方でインデックスが第1基準値を超えていれば(ステップS22、YES)、コントローラ200はリフレッシュリード動作を実行する(ステップS50)。
リフレッシュリード動作S50は、第2実施形態で説明した図19とほぼ同じであるが、以下の点で第2実施形態と異なる。すなわち、
・ステップS36において、ターゲットインデックスによるシフトリードのリピート回数が最大値に達すると(ステップS36、NO)、ステップS13の処理に戻る。
・ステップS37におけるターゲットインデックスによるシフトリードにおいてエラー訂正に成功すると(ステップS38、YES)、ステップS19に進み、履歴テーブルにおけるインデックスをターゲットインデックスに更新する。
・ステップS36において、ターゲットインデックスによるシフトリードのリピート回数が最大値に達すると(ステップS36、NO)、ステップS13の処理に戻る。
・ステップS37におけるターゲットインデックスによるシフトリードにおいてエラー訂正に成功すると(ステップS38、YES)、ステップS19に進み、履歴テーブルにおけるインデックスをターゲットインデックスに更新する。
そして、ステップS19の後、ステップS20において、インデックス値と第2基準値とが比較され、比較結果に応じて論理ブロックのコピーが予約されて(ステップS21)、読み出し動作が完了する。
3.2 本実施形態に係る効果
本実施形態によれば、シフトリードに失敗し(ステップS17、ステップS18、NO)、且つインデックスが第1基準値を超えていれば、シフトリード直後にリフレッシュリードを実行する。このように、データの読み出し動作の一部としてリフレッシュリード動作が行われても良い。
本実施形態によれば、シフトリードに失敗し(ステップS17、ステップS18、NO)、且つインデックスが第1基準値を超えていれば、シフトリード直後にリフレッシュリードを実行する。このように、データの読み出し動作の一部としてリフレッシュリード動作が行われても良い。
なお、第2実施形態のステップS37におけるシフトリードは、ターゲットインデックスが適切か否かを確認するための動作に過ぎない。ホスト機器300へは、ステップS17で読み出されてエラー訂正されたデータが送信される。
これに対して本実施形態であると、ステップS17におけるシフトリードに失敗し、且つステップS37のシフトリードに成功した場合には、ステップS37、S38でエラー訂正されたデータがホスト機器300に送信される。なお、ステップS36で比較されるリピート回数は、ステップS17で実行されるシフトリードのリピート回数ではなく、ステップS37で実行されるシフトリードのリピート回数である。
4.変形例等
以上のように、上記実施形態に係るメモリシステム1は、データを保持可能であり、第1ワード線及び第2ワード線にそれぞれ接続された第1メモリセル及び第2メモリセルを含むメモリセルアレイを備えた半導体メモリと、半導体メモリを制御するコントローラとを具備し、第1動作(読み出し動作)と、該第1動作後の第2動作(リフレッシュリード動作)とを実行可能である。そして第1動作(読み出し動作)では、コントローラが第1コマンドシーケンス(00h-ADD-30h)を発行し、半導体メモリは、第1コマンドシーケンスに応答して、第1ワード線(WL2 in FIG14)に第1電圧(VCGRV)を印加し第2ワード線(WL4-7 in FIG14)に第2電圧(VREAD)を印加することにより第1メモリセル(MT1 in FIG14)からデータを読み出す。読み出されたデータは、半導体メモリからコントローラに送信される(通常リードまたはシフトリード)。第2動作(リフレッシュリード動作)では、コントローラが第2コマンドシーケンス(XXh+1st sequence)を発行し、半導体メモリは、第2コマンドシーケンスに応答して、第1ワード線(WL2 in FIG15)に第3電圧(VREAD or VREADK or plus α)を印加し、第2ワード線(WL4-7 in FIG15)に第4電圧(VREAD or VREAD plus α)を印加する。しかし、メモリセルアレイに保持されるデータはコントローラに送信されない(リフレッシュリード)。第2動作(リフレッシュリード動作)は、第1動作(読み出し動作)後に、第1メモリセルへの書き込み動作及び消去動作を介することなく実行される。そして、第3電圧(VREAD)は保持データにかかわらず第1メモリセルをオンさせ、第2電圧(VREAD or VREADK)及び第4電圧(VREAD)は保持データにかかわらず第2メモリセルをオンさせる。
以上のように、上記実施形態に係るメモリシステム1は、データを保持可能であり、第1ワード線及び第2ワード線にそれぞれ接続された第1メモリセル及び第2メモリセルを含むメモリセルアレイを備えた半導体メモリと、半導体メモリを制御するコントローラとを具備し、第1動作(読み出し動作)と、該第1動作後の第2動作(リフレッシュリード動作)とを実行可能である。そして第1動作(読み出し動作)では、コントローラが第1コマンドシーケンス(00h-ADD-30h)を発行し、半導体メモリは、第1コマンドシーケンスに応答して、第1ワード線(WL2 in FIG14)に第1電圧(VCGRV)を印加し第2ワード線(WL4-7 in FIG14)に第2電圧(VREAD)を印加することにより第1メモリセル(MT1 in FIG14)からデータを読み出す。読み出されたデータは、半導体メモリからコントローラに送信される(通常リードまたはシフトリード)。第2動作(リフレッシュリード動作)では、コントローラが第2コマンドシーケンス(XXh+1st sequence)を発行し、半導体メモリは、第2コマンドシーケンスに応答して、第1ワード線(WL2 in FIG15)に第3電圧(VREAD or VREADK or plus α)を印加し、第2ワード線(WL4-7 in FIG15)に第4電圧(VREAD or VREAD plus α)を印加する。しかし、メモリセルアレイに保持されるデータはコントローラに送信されない(リフレッシュリード)。第2動作(リフレッシュリード動作)は、第1動作(読み出し動作)後に、第1メモリセルへの書き込み動作及び消去動作を介することなく実行される。そして、第3電圧(VREAD)は保持データにかかわらず第1メモリセルをオンさせ、第2電圧(VREAD or VREADK)及び第4電圧(VREAD)は保持データにかかわらず第2メモリセルをオンさせる。
本構成によれば、時間の経過に伴うメモリセルの閾値変動を補正し、これによりメモリシステム1の動作信頼性を向上できる。なお、上記で説明した実施形態は一例に過ぎず、種々の変形が可能である。例えば、上記実施形態では、リフレッシュリード時に全ワード線WLを非選択として電圧VREADを印加する場合を例に挙げて説明した。しかし、例えばダミーワード線が選択される場合であっても良い。このような例を図22及び図23に示す。図22及び図23は、リフレッシュリード時におけるブロックBLKの回路図である。
図22の例であるとドレイン側のダミーワード線WLDDが選択されて電圧VCGRVが印加され、図23の例であるとソース側のダミーワード線WLDSが選択されて電圧VCGRVが印加される。その他の配線の電位は図15で説明した通りである。なお、電圧VCGRVの値は特に限定されない。メモリセルトランジスタMTにリードディスターブを与えることができれば良いので、VCGRVの値は、例えば電圧VA、VB、…及びVGのいずれかとされても良いし、通常のページデータの読み出しのように、複数の値(例えばlowerページ読み出し用のVA及びVE、middleページ用のVB、VD、及びVF、またはupperページ用のVC及びVG)とされても良い。この場合、コントローラ200は例えば下記のようなコマンドシーケンスを発行する。
<YYh><00h><ADD><ADD><ADD><ADD><ADD><30h>
すなわち、通常の読み出しシーケンスの先頭に、prefixコマンド“YYh”が付加される。この“YYh”が、ダミーワード線の選択を命令する。この際、アドレス“ADD”は、上記実施形態と同様に、直近の通常リードまたはシフトリードで指定されたブロックBLKを示す。あるいは、このブロックBLKに加えて、ドレイン側のダミーワード線WL_DDかソース側のダミーワード線WL_DSであるかを示す情報を含んでも良い。
<YYh><00h><ADD><ADD><ADD><ADD><ADD><30h>
すなわち、通常の読み出しシーケンスの先頭に、prefixコマンド“YYh”が付加される。この“YYh”が、ダミーワード線の選択を命令する。この際、アドレス“ADD”は、上記実施形態と同様に、直近の通常リードまたはシフトリードで指定されたブロックBLKを示す。あるいは、このブロックBLKに加えて、ドレイン側のダミーワード線WL_DDかソース側のダミーワード線WL_DSであるかを示す情報を含んでも良い。
またリフレッシュリードは、図14に示すような通常の読み出し動作と同様の動作であっても良い。すなわち、いずれかのワード線WLが選択されて電圧VCGRVが印加され、その他の非選択ワード線WLに電圧VREADが印加される場合であっても良い。この場合のVCGRVの値も、電圧VA、VB、…及びVGのいずれか(またはこれらにシフトテーブルで指定されたシフト量が加えられた値)とされても良いし、通常のページデータの読み出しのように複数の値とされても良い。この場合、コントローラ200は例えば下記のようなコマンドシーケンスを発行する。
<XYh><00h><ADD><ADD><ADD><ADD><ADD><30h>
すなわち、通常の読み出しシーケンスの先頭に、prefixコマンド“XYh”が付加される。この“XYh”が、リフレッシュリードを宣言する。この際、アドレス“ADD”は、上記実施形態と同様に、直近の通常リードまたはシフトリードで指定されたブロックBLK及びページを示す。従って、このコマンドシーケンスを受信したNAND型フラッシュメモリ100は、通常リードまたはシフトリードと同じようにワード線WLに電圧を印加するが、センスアンプ140によるデータのセンス動作やコントローラ200へのデータ転送は行われない。
<XYh><00h><ADD><ADD><ADD><ADD><ADD><30h>
すなわち、通常の読み出しシーケンスの先頭に、prefixコマンド“XYh”が付加される。この“XYh”が、リフレッシュリードを宣言する。この際、アドレス“ADD”は、上記実施形態と同様に、直近の通常リードまたはシフトリードで指定されたブロックBLK及びページを示す。従って、このコマンドシーケンスを受信したNAND型フラッシュメモリ100は、通常リードまたはシフトリードと同じようにワード線WLに電圧を印加するが、センスアンプ140によるデータのセンス動作やコントローラ200へのデータ転送は行われない。
更に、リフレッシュリードは複数のストリングユニットSUを選択した状態で実行しても良い。図24は、第1実施形態で説明した図14のリフレッシュリード時において、選択ブロックBLK内の全ストリングユニットSU0〜SU3が選択される場合を例に示している。図示するように、セレクトゲート線SGD0だけでなく、セレクトゲート線SGD1〜SGD3にも電圧VSGが印加されて、ストリングユニットSU1〜SU3内の選択トランジスタST1がオン状態とされる。この場合、例えば下記のコマンドシーケンスがコントローラ200からNAND型フラッシュメモリ200に送信される。
<XXh><YZh><00h><ADD><ADD><ADD><ADD><ADD><30h>
すなわち、第1実施形態で説明したリフレッシュリードのコマンドシーケンスにおける例えば2サイクル目に、複数ストリングユニットSUを選択するコマンド“YZh”が送信される。もちろん、本シーケンスに限らず、例えば“XXh”を別のコマンドに置き換えて、同様の命令を送信しても良い。
<XXh><YZh><00h><ADD><ADD><ADD><ADD><ADD><30h>
すなわち、第1実施形態で説明したリフレッシュリードのコマンドシーケンスにおける例えば2サイクル目に、複数ストリングユニットSUを選択するコマンド“YZh”が送信される。もちろん、本シーケンスに限らず、例えば“XXh”を別のコマンドに置き換えて、同様の命令を送信しても良い。
このことは、図22及び図23で説明したダミーワード線WLDDまたはWLDSが選択される場合や、いずれかのワード線WLが選択される場合にも適用可能である。この場合も、例えば2サイクル目にコマンド“YZh”を発行すれば良い。また、図24ではブロックBLK内の全てのストリングユニットSU0〜SU3の全てが選択される場合を示したが、必ずしも全てである必要はなく、いずれか複数のストリングユニットSUが選択される場合であってもよい。この場合には、例えば“YZh”コマンドの代わりに別のコマンドを用意するか、またはいずれのストリングユニットSUを選択するかを指定するコマンドを“YZh”コマンドの次に発行しても良い。
また、同一の論理ブロックLBに属する他の物理ブロックBLKに対してもリフレッシュリードが行われても良い。これは、上記実施形態の例(図6)であると、論理ブロックLBを基準にしてインデックスが割り当てられているからである。しかし、インデックスは1つまたは複数の物理ブロックBLKを基準にインデックスが割り当てられても良く、必ずしも論理ブロックLBを基準にする必要はない。
また、図6の例であると1本のワード線WL毎にインデックスが割り当てられる。しかし、例えば物理ブロックBLKに1つのインデックスを割り当てても良いし、または複数のワード線WLをグループ化して、このグループ毎にインデックスを割り当てても良い。このような例を図25及び図26に示す。図25及び図26は履歴テーブルの概念図である。図25の例であると、隣り合う2本のワード線WLがグループ化されている。そして、この4グループに対して、それぞれインデックスが割り当てられている。また図26の例であると、ワード線WLは、NANDストリング10の下層の2本(WL0及びWL1)、上層の2本(WL6及びWL7)、並びにこれらの間の4本(WL2〜WL5)の3グループに分けられている。そして、これらの3グループのそれぞれに対してインデックスが割り当てられる。
また上記実施形態では、リフレッシュリード時のワード線WLに、通常リード及びシフトリード時の非選択ワード線WLと同じ電圧(例えばVREAD)が印加される場合を例に説明した。しかし、リフレッシュリード時にワード線WLに印加される電圧は、通常リード及びシフトリード時よりも大きくされてもよい。このような例につき、図27及び図28を用いて説明する。図27及び図28は、通常リードまたはシフトリード時とリフレッシュリード時における選択ワード線WLi、非選択ワード線WL(i±1)、その他の非選択ワード線WL、ダミーワード線WLDD、WLDS、及びセレクトゲート線SGD、SGSのタイミングチャートであり、図27は非選択ストリングユニットに対してリフレッシュリードが行われない場合を示し、図28は非選択ストリングユニットに対してもリフレッシュリードが行われる場合を示している。
図示するように、通常リードまたはシフトリード時には、非選択ワード線WL(i±1)には電圧VREADKが印加され、その他の非選択ワード線WLには電圧VREADが印加され、ダミーワード線WLDD及びWLDSには電圧VREAD_DD及びVREAD_DSが印加される。これに対して、リフレッシュリード時には、全ワード線WLに電圧(VREAD+ΔVREAD)が印加される。ΔVREADは正の値であり、例えば1.0Vである。これにより、メモリセルトランジスタの閾値をより効率的に高電圧側へシフトさせることができる。
なお、ワード線WLi及びWL(i±1)に印加する電圧は、(VREAD+ΔVREAD)の代わりに(VREADK+ΔVREADK)としてもよい。ΔVREADKは正の値であり、(VREADK+ΔVREADK)は(VREAD+ΔVREAD)と同じ値であっても異なる値であっても良い。同様に、セレクトゲート線SGD及びSGSに印加する電圧は、(VREAD_DD+ΔVREAD_DD)及び(VREAD_DS+ΔVREAD_DS)としてもよい。ΔVREAD_DD及びΔVREAD_DSは正の値であり、(VREAD_DD+ΔVREAD_DD)及び(VREAD_DS+ΔVREAD_DS)は(VREAD+ΔVREAD)と同じ値であっても異なる値であっても良い。
また、図27及び図28のように印加電圧を大きくする代わりに、電圧の印加期間を長くしても良い。図29及び図30は、図27及び図28と同様に各配線に印加される電圧のタイミングチャートであり、図29は非選択ストリングユニットに対してリフレッシュリードが行われない場合を示し、図30は非選択ストリングユニットに対してもリフレッシュリードが行われる場合を示している。
図示するように、本例におけるリフレッシュリード時には、通常リードまたはシフトリード時と同様に、ワード線WL(i±1)には電圧VREADKが印加され、その他のワード線WLには電圧VREADが印加され、ダミーワード線WLDD及びWLDSには電圧VREAD_DD及びVREAD_DSが印加される。しかし、これらの電圧VREAD、VREADK、VREAD_DD、及びVREAD_DSが印加される期間は、リフレッシュリード時の方(Δt2)が通常リードまたはシフトリード時(Δt1)よりも長くされ、例えばΔt2はΔt1の2倍以上の長さである。本方法によっても、図27及び図28の場合と同様の効果が得られる。
もちろん、図27及び図28の方法と、図29及び図30の方法とを組み合わせても良い。すなわち、Δt2>Δt1としつつ、リフレッシュリード時にワード線に印加する電圧を通常リード時及びシフトリード時よりも大きくしても良い。すなわち、印加電圧を大きくすると共に印加期間を長くすることにより、より効率的に閾値分布を補正できる。また、リフレッシュリード時にワード線に印加する電圧を通常リード時及びシフトリード時よりも大きくする代わりに、Δt2<Δt1としても良い。すなわち、印加電圧を大きくすることで、リフレッシュリードに要する時間を短くすることができる。
上記のリフレッシュリード時にワード線に印加する電圧の大きさ及び印加期間の長さは、リフレッシュリードのコマンドシーケンス内で指定しても良いし、set featureコマンドによって設定しても良い。下記は、コマンドシーケンスの一例である。
<XXh><ZXh><VALUE><00h><ADD><ADD><ADD><ADD><ADD><30h>
先に説明したprefixコマンド“XXh”に続き、コマンド“ZXh”及びデータ“VALUE”がコントローラ200からNAND型フラッシュメモリ100に送信される。コマンド“ZXh”は、リフレッシュリード時における電圧を大きくする、または電圧印加期間を長くすることを指定し、“VALUE”は電圧の値または印加期間を示す。
<XXh><ZXh><VALUE><00h><ADD><ADD><ADD><ADD><ADD><30h>
先に説明したprefixコマンド“XXh”に続き、コマンド“ZXh”及びデータ“VALUE”がコントローラ200からNAND型フラッシュメモリ100に送信される。コマンド“ZXh”は、リフレッシュリード時における電圧を大きくする、または電圧印加期間を長くすることを指定し、“VALUE”は電圧の値または印加期間を示す。
また上記実施形態では、シフトリードでの電圧シフト量をコマンドシーケンス内で指定する場合を例に説明したが、予めset featureコマンドでNAND型フラッシュメモリ100に設定しても良い。また上記実施形態では、メモリセルトランジスタMTの各々が3ビットデータを保持する場合を例に説明した。しかし、2ビットや4ビット以上のデータを保持する場合にも適用できる。
なお、本発明に関する各実施形態において、
(1)メモリセルが2ビットデータ(“Er”、“A”、“B”、及び“C”)を保持する場合に、Aレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば0V〜0.55Vの間である。これに限定されることなく、0.1V〜0.24V, 0.21V〜0.31V, 0.31V〜0.4V, 0.4V〜0.5V, 0.5V〜0.55Vいずれかの間にしてもよい。
Bレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば1.5V〜2.3Vの間である。これに限定されることなく、1.65V〜1.8V, 1.8V〜1.95V, 1.95V〜2.1V, 2.1V〜2.3Vいずれかの間にしてもよい。
Cレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば3.0V〜4.0Vの間である。これに限定されることなく、3.0V〜3.2V, 3.2V〜3.4V, 3.4V〜3.5V, 3.5V〜3.6V, 3.6V〜4.0Vいずれかの間にしてもよい。
読み出し動作の時間(tR)としては、例えば25μs〜38μs, 38μs〜70μs, 70μs〜80μsの間にしてもよい。
(2)書き込み動作は、プログラム動作とベリファイ動作を含む。書き込み動作では、
プログラム動作時に選択されたワード線に最初に印加される電圧は、例えば13.7V〜14.3Vの間である。これに限定されることなく、例えば13.7V〜14.0V, 14.0V〜14.6Vいずれかの間としてもよい。
奇数番目のワード線を書き込む際の、選択されたワード線に最初に印加される電圧と、偶数番目のワード線を書き込む際の、選択されたワード線に最初に印加される電圧を変えてもよい。
プログラム動作をISPP方式(Incremental Step Pulse Program)としたとき、ステップアップの電圧として、例えば0.5V程度が挙げられる。
非選択のワード線に印加される電圧としては、例えば6.0V〜7.3Vの間としてもよい。この場合に限定されることなく、例えば7.3V〜8.4Vの間としてもよく、6.0V以下としてもよい。
非選択のワード線が奇数番目のワード線であるか、偶数番目のワード線であるかで、印加するパス電圧を変えてもよい。
書き込み動作の時間(tProg)としては、例えば1700μs〜1800μs, 1800μs〜1900μs, 1900μs〜2000μsの間にしてもよい。
(3)消去動作では、
半導体基板上部に形成され、かつ、上記メモリセルが上方に配置されたウェルに最初に印加する電圧は、例えば12V〜13.6Vの間である。この場合に限定されることなく、例えば13.6V〜14.8V, 14.8V〜19.0V, 19.0〜19.8V, 19.8V〜21Vの間であってもよい。
消去動作の時間(tErase)としては、例えば3000μs〜4000μs, 4000μs〜5000μs, 4000μs〜9000μsの間にしてもよい。
(4)メモリセルの構造は、
半導体基板(シリコン基板)上に膜厚が4〜10nmのトンネル絶縁膜を介して配置された電荷蓄積層を有している。この電荷蓄積層は膜厚が2〜3nmのSiN、またはSiONなどの絶縁膜と膜厚が3〜8nmのポリシリコンとの積層構造にすることができる。また、ポリシリコンにはRuなどの金属が添加されていても良い。電荷蓄積層の上には絶縁膜を有している。この絶縁膜は、例えば、膜厚が3〜10nmの下層High−k膜と膜厚が3〜10nmの上層High−k膜に挟まれた膜厚が4〜10nmのシリコン酸化膜を有している。High−k膜はHfOなどが挙げられる。また、シリコン酸化膜の膜厚はHigh−k膜の膜厚よりも厚くすることができる。絶縁膜上には膜厚が3〜10nmの仕事関数調整用の材料を介して膜厚が30nm〜70nmの制御電極が形成されている。ここで仕事関数調整用の材料はTaOなどの金属酸化膜、TaNなどの金属窒化膜である。制御電極にはWなどを用いることができる。
また、メモリセル間にはエアギャップを形成することができる。
(1)メモリセルが2ビットデータ(“Er”、“A”、“B”、及び“C”)を保持する場合に、Aレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば0V〜0.55Vの間である。これに限定されることなく、0.1V〜0.24V, 0.21V〜0.31V, 0.31V〜0.4V, 0.4V〜0.5V, 0.5V〜0.55Vいずれかの間にしてもよい。
Bレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば1.5V〜2.3Vの間である。これに限定されることなく、1.65V〜1.8V, 1.8V〜1.95V, 1.95V〜2.1V, 2.1V〜2.3Vいずれかの間にしてもよい。
Cレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば3.0V〜4.0Vの間である。これに限定されることなく、3.0V〜3.2V, 3.2V〜3.4V, 3.4V〜3.5V, 3.5V〜3.6V, 3.6V〜4.0Vいずれかの間にしてもよい。
読み出し動作の時間(tR)としては、例えば25μs〜38μs, 38μs〜70μs, 70μs〜80μsの間にしてもよい。
(2)書き込み動作は、プログラム動作とベリファイ動作を含む。書き込み動作では、
プログラム動作時に選択されたワード線に最初に印加される電圧は、例えば13.7V〜14.3Vの間である。これに限定されることなく、例えば13.7V〜14.0V, 14.0V〜14.6Vいずれかの間としてもよい。
奇数番目のワード線を書き込む際の、選択されたワード線に最初に印加される電圧と、偶数番目のワード線を書き込む際の、選択されたワード線に最初に印加される電圧を変えてもよい。
プログラム動作をISPP方式(Incremental Step Pulse Program)としたとき、ステップアップの電圧として、例えば0.5V程度が挙げられる。
非選択のワード線に印加される電圧としては、例えば6.0V〜7.3Vの間としてもよい。この場合に限定されることなく、例えば7.3V〜8.4Vの間としてもよく、6.0V以下としてもよい。
非選択のワード線が奇数番目のワード線であるか、偶数番目のワード線であるかで、印加するパス電圧を変えてもよい。
書き込み動作の時間(tProg)としては、例えば1700μs〜1800μs, 1800μs〜1900μs, 1900μs〜2000μsの間にしてもよい。
(3)消去動作では、
半導体基板上部に形成され、かつ、上記メモリセルが上方に配置されたウェルに最初に印加する電圧は、例えば12V〜13.6Vの間である。この場合に限定されることなく、例えば13.6V〜14.8V, 14.8V〜19.0V, 19.0〜19.8V, 19.8V〜21Vの間であってもよい。
消去動作の時間(tErase)としては、例えば3000μs〜4000μs, 4000μs〜5000μs, 4000μs〜9000μsの間にしてもよい。
(4)メモリセルの構造は、
半導体基板(シリコン基板)上に膜厚が4〜10nmのトンネル絶縁膜を介して配置された電荷蓄積層を有している。この電荷蓄積層は膜厚が2〜3nmのSiN、またはSiONなどの絶縁膜と膜厚が3〜8nmのポリシリコンとの積層構造にすることができる。また、ポリシリコンにはRuなどの金属が添加されていても良い。電荷蓄積層の上には絶縁膜を有している。この絶縁膜は、例えば、膜厚が3〜10nmの下層High−k膜と膜厚が3〜10nmの上層High−k膜に挟まれた膜厚が4〜10nmのシリコン酸化膜を有している。High−k膜はHfOなどが挙げられる。また、シリコン酸化膜の膜厚はHigh−k膜の膜厚よりも厚くすることができる。絶縁膜上には膜厚が3〜10nmの仕事関数調整用の材料を介して膜厚が30nm〜70nmの制御電極が形成されている。ここで仕事関数調整用の材料はTaOなどの金属酸化膜、TaNなどの金属窒化膜である。制御電極にはWなどを用いることができる。
また、メモリセル間にはエアギャップを形成することができる。
更に、上記実施形態では半導体記憶装置としてNAND型フラッシュメモリを例に説明したが、NAND型フラッシュメモリに限らず、その他の半導体メモリ全般に適用出来、更には半導体メモリ以外の種々の記憶装置に適用出来る。また、上記実施形態で説明したフローチャートは、その処理の順番を可能な限り入れ替えることが出来る。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
1…メモリシステム、100…NAND型フラッシュメモリ、110…メモリセルアレイ、120…ロウデコーダ、130…ドライバ回路、140…センスアンプ、150、160…レジスタ、170…シーケンサ、200…コントローラ、210、250…インターフェース回路、220、240…メモリ、230…プロセッサ、260…ECC回路、300…ホスト機器
Claims (10)
- データを保持可能であり、第1ワード線及び第2ワード線にそれぞれ接続された第1メモリセル及び第2メモリセルを含むメモリセルアレイを備えた半導体メモリと、
前記半導体メモリを制御するコントローラと
を具備し、第1動作と、該第1動作後の第2動作とを実行可能であり、
前記第1動作では、前記コントローラが第1コマンドシーケンスを発行し、前記半導体メモリは前記第1コマンドシーケンスに応答して、前記第1ワード線に第1電圧を印加し前記第2ワード線に第2電圧を印加することにより前記第1メモリセルからデータを読み出し、該読み出されたデータが前記半導体メモリから前記コントローラに送信され、
前記第2動作では、前記コントローラが第2コマンドシーケンスを発行し、前記半導体メモリは前記第2コマンドシーケンスに応答して、前記第1ワード線に第3電圧を印加し、前記第2ワード線に第4電圧を印加し、前記メモリセルアレイに保持されるデータは前記コントローラに送信されず、
前記第2動作は、前記第1動作後に、前記第1メモリセルへの書き込み動作及び消去動作を介することなく実行され、
前記第3電圧は保持データにかかわらず前記第1メモリセルをオンさせ、
前記第2電圧及び前記第4電圧は保持データにかかわらず前記第2メモリセルをオンさせる、メモリシステム。 - 前記メモリセルアレイは、データの消去単位となるブロックを備え、
前記ブロックは、直列接続された、前記第1メモリセル及び前記第2メモリセルを含む複数のメモリセルを含み、
前記複数のメモリセルは、前記第1ワード線及び前記第2ワード線を含む複数のワード線にそれぞれ接続され、
前記第2動作において、前記複数のワード線の全てに前記第3電圧と前記第4電圧のいずれかが印加される、請求項1記載のメモリシステム。 - 前記第3電圧と前記第4電圧の値は、前記第2電圧と同じ、またはそれ以上である、請求項1記載のメモリシステム。
- 前記第1ワード線及び前記第2ワード線に前記第3電圧と前記第4電圧とがそれぞれ印加されている期間は、前記第2ワード線に前記第2電圧が印加されている期間と同じ、またはそれ以上である、請求項1記載のメモリシステム。
- 前記コントローラは、前記第2コマンドシーケンスの前に第3コマンドシーケンスを発行することにより、前記第3電圧と前記第4電圧の値、または前記第1ワード線及び前記第2ワード線に前記第3電圧と前記第4電圧とがそれぞれ印加されている期間のいずれかを前記半導体メモリに通知する、請求項1記載のメモリシステム。
- 前記第2コマンドシーケンスは、前記第1コマンドシーケンスに、更に第1コマンドを付加したものである、請求項1記載のメモリシステム。
- 前記第1コマンドシーケンスは、前記メモリセルアレイにおいて、前記第1メモリセルを含む第1領域を指定する第1アドレスを含み、
前記第2コマンドシーケンスは、前記第1アドレスと同じ領域を指定する第2アドレスを含む、請求項1記載のメモリシステム。 - 前記コントローラは、前記第1メモリセルからデータを読み出す際に前記第1ワード線に印加すべき電圧のシフト量に関する情報を保持し、
前記シフト量に大きさに応じて前記第2動作を実行するか否かを決定する、請求項1記載のメモリシステム。 - 前記情報は、前記第1ワード線に印加すべき電圧についての複数のシフト値と、前記複数のシフト値の適用優先順位との関係を保持する第1テーブルと、
適用すべきシフト値を保持する第2テーブルと
を含み、前記コントローラは、前記第2テーブルに保持される第1シフト値に従って前記第1ワード線に電圧を印加して前記第1メモリセルからデータを読み出し、
前記読み出したデータについてのエラー訂正に失敗した場合、前記第1テーブルにおける前記適用優先順位に従って、次に優先される第2シフト値に従って前記第1ワード線に電圧を印加して前記第1メモリセルからデータを読み出し、
前記読み出したデータについてのエラー訂正に成功した場合、前記第2テーブルにおけるシフト値を、前記第1シフト値から前記第2シフト値に更新する、請求項8記載のメモリシステム。 - 前記コントローラは、前記第2シフト値が第1基準値を超えていた場合に、前記第2動作を実行する、請求項9記載のメモリシステム。
Priority Applications (7)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2018052646A JP2019164865A (ja) | 2018-03-20 | 2018-03-20 | メモリシステム |
| US16/118,543 US10635354B2 (en) | 2018-03-20 | 2018-08-31 | Memory system |
| US16/826,595 US11086573B2 (en) | 2018-03-20 | 2020-03-23 | Memory system |
| US17/370,535 US11561736B2 (en) | 2018-03-20 | 2021-07-08 | Memory system |
| US18/082,759 US11875063B2 (en) | 2018-03-20 | 2022-12-16 | Memory system |
| US18/522,343 US12340124B2 (en) | 2018-03-20 | 2023-11-29 | Memory system |
| US19/212,375 US20250278216A1 (en) | 2018-03-20 | 2025-05-19 | Memory system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2018052646A JP2019164865A (ja) | 2018-03-20 | 2018-03-20 | メモリシステム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2019164865A true JP2019164865A (ja) | 2019-09-26 |
Family
ID=67985187
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2018052646A Pending JP2019164865A (ja) | 2018-03-20 | 2018-03-20 | メモリシステム |
Country Status (2)
| Country | Link |
|---|---|
| US (6) | US10635354B2 (ja) |
| JP (1) | JP2019164865A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114556303A (zh) * | 2019-10-30 | 2022-05-27 | 国际商业机器公司 | 更新非易失性随机存取存储器中的校正读取电压偏移 |
| US11545223B2 (en) | 2020-06-02 | 2023-01-03 | Kioxia Corporation | Memory system and memory controller |
| US12229005B2 (en) | 2023-03-14 | 2025-02-18 | Kioxia Corporation | Memory system and nonvolatile memory |
Families Citing this family (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2019164865A (ja) * | 2018-03-20 | 2019-09-26 | 東芝メモリ株式会社 | メモリシステム |
| US10839922B2 (en) * | 2018-05-26 | 2020-11-17 | Sandisk Technologies Llc | Memory disturb detection |
| JP2020155174A (ja) * | 2019-03-19 | 2020-09-24 | キオクシア株式会社 | メモリシステム |
| JP2020202002A (ja) * | 2019-06-11 | 2020-12-17 | キオクシア株式会社 | 半導体記憶装置 |
| JP2021007061A (ja) * | 2019-06-28 | 2021-01-21 | キオクシア株式会社 | メモリシステム |
| US11004534B2 (en) * | 2019-08-06 | 2021-05-11 | Micron Technology, Inc. | Preemptive read refresh in memories with time-varying error rates |
| EP4236650B1 (en) | 2019-10-23 | 2025-05-14 | Yangtze Memory Technologies Co., Ltd. | Method for reading three-dimensional flash memory |
| KR102824298B1 (ko) | 2020-10-28 | 2025-06-25 | 삼성전자주식회사 | 불휘발성 메모리 장치, 스토리지 장치, 및 스토리지 장치의 동작 방법 |
| EP3992971B1 (en) * | 2020-10-28 | 2025-10-08 | Samsung Electronics Co., Ltd. | Nonvolatile memory device, storage device including nonvolatile memory device, and operating method of storage device |
| US12327046B2 (en) * | 2021-06-25 | 2025-06-10 | SanDisk Technologies, Inc. | Data retention-specific refresh read |
| JP2023119953A (ja) * | 2022-02-17 | 2023-08-29 | キオクシア株式会社 | メモリシステム |
| WO2023248415A1 (ja) * | 2022-06-23 | 2023-12-28 | ユニサンティス エレクトロニクス シンガポール プライベート リミテッド | 半導体素子を用いたメモリ装置 |
| US12224017B2 (en) * | 2022-09-12 | 2025-02-11 | Micron Technology, Inc. | Read level compensation for partially programmed blocks of memory devices |
Family Cites Families (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP5142692B2 (ja) | 2007-12-11 | 2013-02-13 | 株式会社東芝 | 不揮発性半導体記憶装置 |
| JP2009238874A (ja) | 2008-03-26 | 2009-10-15 | Toshiba 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 | 不揮発性半導体記憶装置 |
| JP5197544B2 (ja) | 2009-10-05 | 2013-05-15 | 株式会社東芝 | メモリシステム |
| JP2012069205A (ja) | 2010-09-22 | 2012-04-05 | Toshiba Corp | 不揮発性半導体記憶装置 |
| JP2012252740A (ja) | 2011-06-02 | 2012-12-20 | Toshiba Corp | 不揮発性半導体記憶装置 |
| KR101913291B1 (ko) * | 2011-09-09 | 2018-12-28 | 삼성전자주식회사 | 비휘발성 메모리 장치, 그 데이터 판독 방법 및 기록 매체 |
| US9645177B2 (en) | 2012-05-04 | 2017-05-09 | Seagate Technology Llc | Retention-drift-history-based non-volatile memory read threshold optimization |
| JP2013254537A (ja) * | 2012-06-06 | 2013-12-19 | Toshiba Corp | 半導体記憶装置及びコントローラ |
| JP6062768B2 (ja) | 2013-03-01 | 2017-01-18 | Necプラットフォームズ株式会社 | メモリ検査装置、メモリ検査方法、およびメモリ検査プログラム |
| US9384815B2 (en) * | 2013-10-08 | 2016-07-05 | Taiwan Semiconductor Manufacturing Co., Ltd. | Mechanisms for preventing leakage currents in memory cells |
| US10430112B2 (en) | 2014-12-22 | 2019-10-01 | Sandisk Technologies Llc | Memory block cycling based on memory wear or data retention |
| JP2019164865A (ja) * | 2018-03-20 | 2019-09-26 | 東芝メモリ株式会社 | メモリシステム |
| US10446239B1 (en) * | 2018-07-11 | 2019-10-15 | Globalfoundries Inc. | Memory array including distributed reference cells for current sensing |
-
2018
- 2018-03-20 JP JP2018052646A patent/JP2019164865A/ja active Pending
- 2018-08-31 US US16/118,543 patent/US10635354B2/en active Active
-
2020
- 2020-03-23 US US16/826,595 patent/US11086573B2/en active Active
-
2021
- 2021-07-08 US US17/370,535 patent/US11561736B2/en active Active
-
2022
- 2022-12-16 US US18/082,759 patent/US11875063B2/en active Active
-
2023
- 2023-11-29 US US18/522,343 patent/US12340124B2/en active Active
-
2025
- 2025-05-19 US US19/212,375 patent/US20250278216A1/en active Pending
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114556303A (zh) * | 2019-10-30 | 2022-05-27 | 国际商业机器公司 | 更新非易失性随机存取存储器中的校正读取电压偏移 |
| JP2023500617A (ja) * | 2019-10-30 | 2023-01-10 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 不揮発性ランダム・アクセス・メモリにおける補正読取り電圧オフセットの更新 |
| US11545223B2 (en) | 2020-06-02 | 2023-01-03 | Kioxia Corporation | Memory system and memory controller |
| US11869601B2 (en) | 2020-06-02 | 2024-01-09 | Kioxia Corporation | Memory system and memory controller |
| US12229005B2 (en) | 2023-03-14 | 2025-02-18 | Kioxia Corporation | Memory system and nonvolatile memory |
Also Published As
| Publication number | Publication date |
|---|---|
| US20230117717A1 (en) | 2023-04-20 |
| US11561736B2 (en) | 2023-01-24 |
| US12340124B2 (en) | 2025-06-24 |
| US20250278216A1 (en) | 2025-09-04 |
| US20240094957A1 (en) | 2024-03-21 |
| US20200218473A1 (en) | 2020-07-09 |
| US11875063B2 (en) | 2024-01-16 |
| US10635354B2 (en) | 2020-04-28 |
| US20190294367A1 (en) | 2019-09-26 |
| US11086573B2 (en) | 2021-08-10 |
| US20210334046A1 (en) | 2021-10-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12340124B2 (en) | Memory system | |
| US11763893B2 (en) | Memory system | |
| US12096628B2 (en) | Semiconductor memory device | |
| US11615850B2 (en) | Semiconductor memory device | |
| CN111243646B (zh) | 半导体存储装置 | |
| US10978157B2 (en) | Memory system having semiconductor memory device that performs verify operations using various verify voltages | |
| JP2018163709A (ja) | メモリシステム | |
| JP2018147535A (ja) | 半導体記憶装置及びメモリシステム | |
| JP2019057346A (ja) | メモリシステム | |
| JP2017208152A (ja) | 半導体記憶装置及びメモリシステム | |
| JP2019053798A (ja) | 半導体記憶装置 | |
| JP2019040655A (ja) | メモリシステム | |
| US9361983B2 (en) | Semiconductor device and method of refresh thereof | |
| JP2018156702A (ja) | 半導体記憶装置及びメモリシステム | |
| JP2017168155A (ja) | 半導体記憶装置 | |
| JP2011141939A (ja) | 不揮発性半導体記憶装置およびその制御方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20180831 |