[go: up one dir, main page]

JP2018163724A - メモリシステム - Google Patents

メモリシステム Download PDF

Info

Publication number
JP2018163724A
JP2018163724A JP2017060481A JP2017060481A JP2018163724A JP 2018163724 A JP2018163724 A JP 2018163724A JP 2017060481 A JP2017060481 A JP 2017060481A JP 2017060481 A JP2017060481 A JP 2017060481A JP 2018163724 A JP2018163724 A JP 2018163724A
Authority
JP
Japan
Prior art keywords
voltage
read
data
word line
controller
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
Application number
JP2017060481A
Other languages
English (en)
Inventor
司 徳冨
Tsukasa Tokutomi
司 徳冨
白川 政信
Masanobu Shirakawa
政信 白川
万里江 高田
Marie Takada
万里江 高田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kioxia Corp
Original Assignee
Toshiba Memory Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Memory Corp filed Critical Toshiba Memory Corp
Priority to JP2017060481A priority Critical patent/JP2018163724A/ja
Priority to US15/698,141 priority patent/US10325664B2/en
Publication of JP2018163724A publication Critical patent/JP2018163724A/ja
Priority to US16/397,241 priority patent/US11017863B2/en
Priority to US17/126,649 priority patent/US11367489B2/en
Priority to US17/743,998 priority patent/US20220270687A1/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital 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/5621Digital 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/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3427Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/562Multilevel memory programming aspects
    • G11C2211/5621Multilevel programming verification

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)

Abstract

【課題】閾値電圧分布の谷位置における読出し電圧を高速かつ高精度に検出する。【解決手段】一実施形態の半導体記憶装置は、第1メモリセルを含む半導体メモリと、第1及び第2命令を発行可能なコントローラとを備える。半導体メモリは、第1命令を受信した際には、第1ワード線に第1及び第2範囲内の電圧を印加して第1ビットを読み出す。第2命令を受信した際には、第3範囲内の電圧を印加して第2ビットを読み出す。コントローラは、第1命令を複数回発行し、第1ワード線に印加される電圧をそれぞれ変化させる。そして、第1ビットに基づき第1範囲内において第1電圧を特定し、第2範囲内において第2電圧を特定する。更に、第1電圧に基づいて第3範囲内において第3電圧を推定し、第2命令が発行された際に第1ワード線に印加される電圧は第3電圧である。【選択図】図10

Description

実施形態は、メモリシステムに関する。
半導体記憶装置としてのNAND型フラッシュメモリと、当該NAND型フラッシュメモリを制御するコントローラと、を備えるメモリシステムが知られている。
米国特許第5,361,603号明細書
閾値電圧分布の谷位置における読出し電圧を高速かつ高精度に検出する。
実施形態の半導体記憶装置は、第1ワード線に結合され、データを保持可能な第1メモリセルを含む半導体メモリと、第1命令と第2命令とを発行可能なコントローラとを具備する。第1メモリセルの保持可能なデータは、第1ビットと第2ビットとを含む多ビットデータである。半導体メモリは、第1命令を受信した際には、第1ワード線に第1範囲内の電圧及び第2範囲内の電圧を印加して前記第1メモリセルから前記第1ビットを読み出す。第2命令を受信した際には、第1ワード線に第3範囲内の電圧を印加して第1メモリセルから第2ビットを読み出す。コントローラは、第1命令を複数回発行し、且つ複数回の第1命令に応じて、第1ワード線に印加される電圧を第1範囲内及び第2範囲内でそれぞれ変化させ、複数回の第1命令の度に第1メモリセルから読み出された第1ビットに基づき、第1範囲内において第1電圧を特定し、第2範囲内において第2電圧を特定する。更に、少なくとも第1電圧に基づいて、第3範囲内において第3電圧を推定する。そして、第2命令が発行された際に第2ビットを読み出すために第1ワード線に印加される電圧は、推定された第3電圧である。
第1実施形態に係るメモリシステムの構成を説明するためのブロック図。 第1実施形態に係るメモリセルアレイの構成を説明するための回路図。 第1実施形態に係るメモリセルアレイの構成を説明するための断面図。 第1実施形態に係るセンスアンプの構成を説明するためのブロック図。 第1実施形態に係るメモリセルトランジスタの閾値電圧の分布を説明するためのダイアグラム。 第1実施形態に係るメモリシステムのテストリード動作を説明するためのタイミングチャート。 第1実施形態に係るメモリシステムのノーマルリード動作を説明するためのタイミングチャート。 第1実施形態に係る閾値電圧分布の変動を説明するための模式図。 第1実施形態に係るメモリシステムのVthトラッキング動作を説明するための模式図。 第1実施形態に係るメモリシステムのMポイントVthトラッキング動作を説明するための模式図。 第1実施形態に係るメモリシステムのMポイントVthトラッキング動作を含む動作を説明するためのフローチャート。 第1実施形態に係るメモリシステムのMポイントVthトラッキング動作を説明するためのフローチャート。 第1実施形態に係るメモリシステムの分離データを説明するためのテーブル。 第1実施形態に係るメモリシステムの谷位置検出動作を説明するためのフローチャート。 第1実施形態に係るメモリシステムの谷位置検出動作を説明するためのダイアグラム。 第1実施形態に係るメモリシステムのMポイントVthトラッキング動作を説明するためのタイミングチャート。 第1実施形態に係るメモリシステムの谷位置推定動作を説明するためのダイアグラム。 第1実施形態に係るメモリシステムのシーケンシャルリード動作を説明するためのフローチャート。 第1実施形態に係るメモリシステムのシーケンシャルリード動作を説明するためのフローチャート。 第2実施形態に係るメモリシステムのMポイントVthトラッキング動作を含む動作を説明するためのフローチャート。 第2実施形態に係るメモリシステムの谷位置推定動作を説明するための模式図。 第3実施形態に係るメモリシステムのMポイントVthトラッキング動作を含む動作を説明するためのフローチャート。 第3実施形態に係るメモリシステムのMポイントVthトラッキング動作を説明するためのフローチャート。 第3実施形態に係るメモリシステムの分離データを説明するためのテーブル。 第3実施形態に係るメモリシステムのMポイントVthトラッキング動作を説明するためのフローチャート。 第3実施形態に係るメモリシステムの分離データを説明するためのテーブル。 第3実施形態に係るメモリシステムのシーケンシャルリード動作を説明するためのフローチャート。 比較例に係るメモリシステムの谷位置検出動作を説明するための模式図。 第4実施形態に係るメモリシステムの誤検出抑制動作を説明するための模式図。 第4実施形態に係るメモリシステムの誤検出抑制動作を説明するためのフローチャート。 第4実施形態に係るメモリシステムの誤検出抑制動作を説明するための模式図。 第4実施形態に係るメモリシステムの誤検出抑制動作を説明するためのテーブル。 第4実施形態に係るメモリシステムの誤検出抑制動作を説明するための模式図。 第4実施形態に係るメモリシステムの誤検出抑制動作を説明するためのテーブル。 第4実施形態に係るメモリシステムの誤検出抑制動作を説明するための模式図。 第4実施形態に係るメモリシステムの誤検出抑制動作を説明するためのテーブル。 第5実施形態に係るセル間干渉効果を説明するための模式図。 第5実施形態に係るメモリシステムのVthトラッキング動作を説明するためのフローチャート。 第5実施形態に係るメモリシステムのVthトラッキング動作を説明するためのコマンドシーケンス。 第5実施形態に係るメモリシステムのシフトリードの補正値を説明するためのテーブル。 第5実施形態に係るメモリシステムのVthトラッキング動作を説明するためのタイミングチャート。 第5実施形態の変形例に係るメモリシステムのVthトラッキング動作を説明するためのフローチャート。 第5実施形態の変形例に係るメモリシステムのVthトラッキング動作を説明するためのコマンドシーケンス。 第5実施形態の変形例に係るメモリシステムのVthトラッキング動作を説明するためのタイミングチャート。 第5実施形態の変形例に係るメモリシステムのVthトラッキング動作を説明するためのタイミングチャート。
以下、図面を参照して実施形態について説明する。なお、以下の説明において、同一の機能及び構成を有する構成要素については、共通する参照符号を付す。また、共通する参照符号を有する複数の構成要素を区別する場合、当該共通する参照符号に添え字を付して区別する。なお、複数の構成要素について特に区別を要さない場合、当該複数の構成要素には、共通する参照符号のみが付され、添え字は付さない。
1. 第1実施形態
第1実施形態に係るメモリシステムについて説明する。以下では、半導体記憶装置としてNAND型フラッシュメモリを備えたメモリシステムを例に挙げて説明する。
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インターフェースに従った信号の送受信を行う。この信号の具体例は、チップイネーブル信号CEn、アドレスラッチイネーブル信号ALE、コマンドラッチイネーブル信号CLE、ライトイネーブル信号WEn、リードイネーブル信号REn、レディ・ビジー信号RBn、及び入出力信号I/Oである。
信号CEnは、NAND型フラッシュメモリ100をイネーブルにするための信号であり、lowレベルでアサートされる。信号CLE及びALEは、NAND型フラッシュメモリ100への入力信号I/Oがそれぞれコマンド及びアドレスであることをNAND型フラッシュメモリ100に通知する信号である。信号WEnはlowレベルでアサートされ、入力信号I/OをNAND型フラッシュメモリ100に取り込ませるための信号である。信号REnもlowレベルでアサートされ、NAND型フラッシュメモリ100から出力信号I/Oを読み出すための信号である。レディ・ビジー信号RBnは、NAND型フラッシュメモリ100がレディ状態(コントローラ200からの命令を受信出来る状態)であるか、それともビジー状態(コントローラ200からの命令を受信出来ない状態)であるかを示す信号であり、lowレベルがビジー状態を示す。入出力信号I/Oは、例えば8ビットの信号である。そして入出力信号I/Oは、NAND型フラッシュメモリ100とコントローラ200との間で送受信されるデータの実体であり、コマンド、アドレス、書き込みデータ、及び読み出しデータ等である。
1.1.2 コントローラの構成について
引き続き図1を用いて、コントローラ200の構成の詳細について説明する。図示するようにコントローラ200は、ホストインターフェース回路210、メモリ(RAM)220、プロセッサ(CPU)230、バッファメモリ240、NANDインターフェース回路250、及びECC回路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との通信を司る。そして、プロセッサ230から受信した命令に基づき、信号CEn、ALE、CLE、WEn、及びREnをNAND型フラッシュメモリ100へ出力する。また書き込み時には、プロセッサ230で発行された書き込みコマンド、及びバッファメモリ240内の書き込みデータを、入出力信号I/OとしてNAND型フラッシュメモリ100へ転送する。更に読み出し時には、プロセッサ230で発行された読み出しコマンドを、入出力信号I/OとしてNAND型フラッシュメモリ100へ転送し、更にNAND型フラッシュメモリ100から読み出されたデータを入出力信号I/Oとして受信し、これをバッファメモリ240へ転送する。
バッファメモリ240は、書き込みデータや読み出しデータを一時的に保持する。
メモリ220は、例えばDRAM等の半導体メモリであり、プロセッサ230の作業領域として使用される。そしてメモリ220は、NAND型フラッシュメモリ100を管理するためのファームウェアや、各種の管理テーブル等を保持する。
ECC回路260は、NAND型フラッシュメモリ100に記憶されるデータに関する誤り検出及び誤り訂正処理を行う。すなわちECC回路260は、データの書き込み時には誤り訂正符号を生成して、これを書き込みデータに付与し、データの読み出し時にはこれを復号する。誤り訂正符号としては、BCH符号やRS(Reed-Solomon)符号等の硬判定復号符号と、LDPC(Low-Density Parity-Check)符号等の軟判定復号符号とを用いることが出来る。
1.1.3 NAND型フラッシュメモリの構成について
1.1.3.1 NAND型フラッシュメモリの全体構成について
次に、NAND型フラッシュメモリ100の構成について説明する。図1に示すようにNAND型フラッシュメモリ100は、メモリセルアレイ110、ロウデコーダ120、ドライバ回路130、カラム制御回路140、アドレスレジスタ150、コマンドレジスタ160、及びシーケンサ170を備える。
メモリセルアレイ110は、ロウ及びカラムに対応付けられた複数の不揮発性のメモリセルを含む複数のブロックBLKを備えている。図1では一例として4つのブロックBLK0〜BLK3が図示されている。そしてメモリセルアレイ110は、コントローラ200から与えられたデータを記憶する。
ロウデコーダ120は、ブロックBLK0〜BLK3のいずれかを選択し、更に選択したブロックBLKにおけるロウ方向を選択する。
ドライバ回路130は、選択されたブロックBLKに対して、ロウデコーダ120を介して電圧を供給する。
カラム制御回路140は、データの読み出し時には、メモリセルアレイ110から読み出されたデータをセンスし、必要な演算を行う。そして、このデータDATをコントローラ200に出力する。データの書き込み時には、コントローラ200から受信した書き込みデータDATを、メモリセルアレイ110に転送する。
アドレスレジスタ150は、コントローラ200から受信したアドレスADDを保持する。コマンドレジスタ160は、コントローラ200から受信したコマンドCMDを保持する。
シーケンサ170は、コマンドレジスタ160に保持されたコマンドCMDに基づき、NAND型フラッシュメモリ100全体の動作を制御する。
1.1.3.2 ブロックの構成について
次に、上記ブロックBLKの構成について、図2を用いて説明する。図2は、いずれかのブロックBLKの回路図である。
図示するようにブロックBLKは、例えば4つのストリングユニットSU(SU0〜SU3)を含む。そして各々のストリングユニットSUは、複数のNANDストリング6を含む。メモリセルアレイ110内のブロック数及びブロック内のストリングユニット数は任意である。
NANDストリング6の各々は、例えば8個のメモリセルトランジスタMT(MT0〜MT7)及び選択トランジスタST1、ST2を含んでいる。メモリセルトランジスタMTは、制御ゲートと電荷蓄積層とを備え、データを不揮発に保持する。そしてメモリセルトランジスタMTは、選択トランジスタST1のソースと選択トランジスタST2のドレインとの間に直列接続されている。
ストリングユニットSU0〜SU3の各々における選択トランジスタST1のゲートは、それぞれセレクトゲート線SGD0〜SGD3に接続される。これに対してストリングユニットSU0〜SU3の各々における選択トランジスタST2のゲートは、例えばセレクトゲート線SGSに共通接続される。もちろん、ストリングユニット毎に異なるセレクトゲート線SGS0〜SGS3に接続されても良い。また、同一のブロックBLK内にあるメモリセルトランジスタMT0〜MT7の制御ゲートは、それぞれワード線WL0〜WL7に共通接続される。
また、メモリセルアレイ110内において同一列にあるNANDストリング6の選択トランジスタST1のドレインは、ビット線BL(BL0〜BL(L−1)、但しLは2以上の自然数)に共通接続される。すなわちビット線BLは、複数のブロックBLK間でNANDストリング6を共通に接続する。更に、複数の選択トランジスタST2のソースは、ソース線SLに共通に接続されている。
つまりストリングユニットSUは、異なるビット線BLに接続され、且つ同一のセレクトゲート線SGDに接続されたNANDストリング6の集合体である。またブロックBLKは、ワード線WLを共通にする複数のストリングユニットSUの集合体である。そしてメモリセルアレイ110は、ビット線BLを共通にする複数のブロックBLKの集合体である。
図3は、ブロックBLKの一部領域の断面図である。図示するように、p型ウェル領域10上に、複数のNANDストリング6が形成されている。すなわち、ウェル領域10上には、セレクトゲート線SGSとして機能する例えば4層の配線層11、ワード線WL0〜WL7として機能する8層の配線層12、及びセレクトゲート線SGDとして機能する例えば4層の配線層13が、順次積層されている。積層された配線層間には、図示せぬ絶縁膜が形成されている。
そして、これらの配線層13、12、11を貫通してウェル領域10に達するピラー状の導電体14が形成されている。導電体14の側面には、ゲート絶縁膜15、電荷蓄積層(絶縁膜または導電膜)16、及びブロック絶縁膜17が順次形成され、これらによってメモリセルトランジスタMT、並びに選択トランジスタST1及びST2が形成されている。導電体14は、NANDストリング6の電流経路として機能し、各トランジスタのチャネルが形成される領域となる。そして導電体14の上端は、ビット線BLとして機能する金属配線層18に接続される。
ウェル領域10の表面領域内には、n型不純物拡散層19が形成されている。拡散層19上にはコンタクトプラグ20が形成され、コンタクトプラグ20は、ソース線SLとして機能する金属配線層21に接続される。更に、ウェル領域10の表面領域内には、p型不純物拡散層22が形成されている。拡散層22上にはコンタクトプラグ23が形成され、コンタクトプラグ23は、ウェル配線CPWELLとして機能する金属配線層24に接続される。ウェル配線CPWELLは、ウェル領域10を介して導電体14に電位を印加するための配線である。
以上の構成が、図3を記載した紙面の奥行き方向に複数配列されており、奥行き方向に並ぶ複数のNANDストリング6の集合によってストリングユニットSUが形成される。
本例では、1つのメモリセルトランジスタMTが例えば3ビットデータを保持可能である。この3ビットデータを、下位ビットからそれぞれ下位(Lower)ビット、中位(Middle)ビット、及び上位(Upper)ビットと呼ぶことにする。そして、同一のワード線に接続されたメモリセルの保持する下位ビットの集合を下位ページと呼び、中位ビットの集合を中位ページと呼び、上位ビットの集合を上位ページと呼ぶ。つまり、1本のワード線WLには3ページが割り当てられ、8本のワード線WLを含むブロックBLKは24ページ分の容量を有することになる。あるいは言い換えるならば、「ページ」とは、同一ワード線に接続されたメモリセルによって形成されるメモリ空間の一部、と定義することも出来る。データの書き込み及び読み出しは、このページ毎に行っても良い(この読み出し方法をpage-by-page readingと呼ぶ)。
またデータの消去は、ブロック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 カラム制御回路の構成について
次に、カラム制御回路140の構成について図4を用いて説明する。図4は、第1実施形態に係るカラム制御回路140とストリングユニットSU0の回路図である。
図示するようにカラム制御回路140は、ビット線BL毎に設けられたセンスユニットSAU(SAU0〜SAU(L−1))を備えている。
センスユニットSAUの各々は、センスアンプSA、演算部OP、並びにラッチ回路ADL、BDL、CDL、及びXDLを備えている。
センスアンプSAは、対応するビット線BLに読み出されたデータをセンスし、また書き込みデータに応じてビット線BLに電圧を印加する。すなわちセンスアンプSAは、ビット線BLを直接的に制御するモジュールである。そしてセンスアンプSAには、読み出し時には例えばシーケンサ170によってストローブ信号STBが与えられる。センスアンプSAは、その内部にノードSEN及びラッチ回路(図4には図示せず)を含む。ノードSENは、選択ワード線に接続されたメモリセルトランジスタMTがオン状態となるかオフ状態となるかにより、その電位が変動する。そして、信号STBがアサートされるタイミングおけるノードSENの電位に応じて、メモリセルトランジスタMTがオンしたかオフしたかが確定され、その結果が“0”または“1”データとして、内部のラッチ回路に保持される。そして、内部のラッチ回路に保持されたデータは、更にラッチ回路ADL、BDL、CDL、及びXDLのいずれかに転送される。
ラッチ回路ADL、BDL、及びCDLは、読み出しデータ及び書き込みデータを一時的に保持する。演算部OPは、センスアンプSA、並びにラッチ回路ADL、BDL、CDL、及びXDLに保持されているデータにつき、否定(NOT)演算、論理和(OR)演算、論理積(AND)演算、排他的論理和(XOR)演算、否定排他的論理和(XNOR)演算など、種々の論理演算を行う。例えば演算部OPは、センスアンプ内部のラッチ回路から転送されたデータについての演算を行うことで、ページデータを生成する。
これらのセンスアンプSA、ラッチ回路ADL、BDL、CDL、及びXDL、並びに演算部OPは、互いにデータを送受信可能なようにバスによって接続されている。そしてこのバスは、更にラッチ回路XDLに接続されている。
カラム制御回路140におけるデータの入出力は、ラッチ回路XDLを介して行われる。すなわち、コントローラ200から受信したデータは、ラッチ回路XDLを介して、ラッチ回路ADL、BDL、及びCDL、またはセンスアンプSAに転送される。またラッチ回路ADL、BDL、及びCDL、またはセンスアンプSAのデータは、ラッチ回路XDLを介してコントローラ200へ送信される。そしてラッチ回路XDLは、NAND型フラッシュメモリ100のキャッシュメモリとして機能する。従って、ラッチ回路ADL、BDL、及びCDLが使用中であったとしても、ラッチ回路XDLが空いていれば、NAND型フラッシュメモリ100はレディ状態となることが出来る。
1.2 読出し動作について
次に、第1実施形態に係るメモリシステムの読み出し動作について説明する。
1.2.1 メモリセルトランジスタの保持データと閾値電圧について
はじめに、メモリセルトランジスタMTの保持データ、閾値電圧、及び各データの読み出しレベルにつき、図5を用いて説明する。図5は、各メモリセルトランジスタ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をオンさせる電圧である。電圧VA〜VGは、総称して電圧VCGRVとも言う。
また上記閾値電圧分布は、前述の下位ビット、中位ビット、及び上位ビットからなる3ビット(3ページ)データを書き込むことで実現される。すなわち、上記“Er”状態から“G”状態と、下位ビット、中位ビット、及び上位ビットとの関係は、次の通りである。
“Er”状態:“111”(“上位/中位/下位”の順で表記)
“A”状態:“110”
“B”状態:“100”
“C”状態:“000”
“D”状態:“010”
“E”状態:“011”
“F”状態:“001”
“G”状態:“101”
このように、閾値電圧分布において隣り合う2つの状態に対応するデータ間では、3ビットのうちの1ビットのみが変化する。
従って、下位ビットを読み出す際には、下位ビットの値(“0” or “1”)が変化する境界に相当する電圧を用いれば良く、このことは中位ビット及び上位ビットでも同様である。
すなわち、図5に示すように、下位ページ読み出しは、“Er”状態と“A”状態とを区別する電圧VA、及び“D”状態と“E”状態とを区別する電圧VEを読み出しレベルとして用いる。電圧VA及びVEを用いた読み出し動作を、それぞれ読み出し動作AR及びERと呼ぶ。
読み出し動作ARは、メモリセルトランジスタMTの閾値電圧が電圧VA未満か否かを判定する。つまり、読み出し動作ARにより、消去状態のメモリセルトランジスタMTが特定される。読み出し動作ERは、メモリセルトランジスタMTの閾値電圧が電圧VE未満か否かを判定する。
中位ページ読み出しは、“A”状態と“B”状態とを区別する電圧VB、“C”状態と“D”状態とを区別する電圧VD、及び“E”状態と“F”状態との間の電圧VFを読み出しレベルとして用いる。電圧VB、VD、及びVFを用いた読み出し動作を、それぞれ読み出し動作BR、DR、及びFRと呼ぶ。
読み出し動作BRは、メモリセルトランジスタMTの閾値電圧が電圧VB未満か否かを判定する。読み出し動作DRは、メモリセルトランジスタMTの閾値電圧が電圧VD未満か否かを判定する。読み出し動作FRは、メモリセルトランジスタMTの閾値電圧が電圧VF未満か否かを判定する。
そして上位ページ読み出しは、“B”状態と“C”状態とを区別する電圧VC、及び“F”状態と“G”状態とを区別する電圧VGを読み出しレベルとして用いる。電圧VC及びVGを用いた読み出し動作を、それぞれ読み出し動作CR及びGRと呼ぶ。
読み出し動作CRは、メモリセルトランジスタMTの閾値電圧が電圧VC未満か否かを判定する。読み出し動作GRは、メモリセルトランジスタMTの閾値電圧が電圧VG未満か否かを判定する。つまり、読み出し動作GRにより、“G”状態のメモリセルトランジスタMTが特定される。
1.2.2 読出し方式について
次に、第1実施形態における読出し方式について説明する。第1実施形態における読出し方式は、例えば、テストリード(test reading)、ノーマルリード(normal reading)、及びシフトリード(shift reading)を含む。
1.2.2.1 テストリードについて
まず、第1実施形態におけるテストリード動作について説明する。テストリードとは、例えば、単一の特別な読出し電圧を用いて読出し動作を実行するものである。以下の説明では、テストリードに用いられる読出し電圧に対しては、読出し電圧の末尾に“t”を付して、他の読出し動作における読出し電圧と区別する。
図6は、第1実施形態におけるテストリード動作の概要を示すための、NAND型フラッシュメモリ100内の非選択ワード線、選択ワード線、ノードSEN、及び信号STBのタイミングチャートである。
図6に示すように、テストリードでは、ロウデコーダ120は、選択ワード線WLに、時刻T1において或る電圧Vtを印加する。またこの間、ロウデコーダ120は、非選択ワード線に電圧VREADを印加し、センスアンプSA内のノードSENは、電圧VSSより高い電位VSENに充電される。そして、シーケンサ170は、選択ワード線WLに電圧Vtが印加されている間である時刻T2において、信号STBをアサート(図6の例では“H”レベル)する。
例えば、選択ワード線WLに電圧Vtが印加されることによってメモリセルトランジスタMTがオンした場合には、ビット線BLからソース線SLに電流が流れる。この結果、ノードSENの電荷も放電され、ノードSENの電位が低下する。センスアンプSAは、時刻T2において信号STBをアサートして、ノードSENの状態を、内部のラッチ回路に取り込む。つまり、ノードSENの電位が低下していればラッチ回路にデータ“0”または“1”のいずれか一方が格納され、一定電位以上を維持していればラッチ回路にデータ“0”または“1”の他方が保持される。
以上のように、テストリードでは、単一の特別な読出しレベル(電圧Vt)によってデータが確定する。
1.2.2.2 ノーマルリードについて
次に、第1実施形態におけるノーマルリード動作について説明する。「ノーマルリード」とは、「テストリード」とは異なり、データを読み出す際に予め定められた(デフォルトの)読出し電圧によってデータを読み出す動作を意味する。
図7は、第1実施形態におけるノーマルリード動作の概要を示すための、NAND型フラッシュメモリ100内の非選択ワード線、選択ワード線、ノードSEN、及び信号STBのタイミングチャートである。図7では、一例として、中位ページを読み出す場合を示している。
図7に示すように、中位ページ読出しでは、ロウデコーダ120は、選択ワード線WLに、時刻T3において電圧VBdefを、時刻T5において電圧VDdefを、時刻T7において電圧VFdefを、それぞれ印加する。またこの間、ロウデコーダ120は、非選択ワード線に電圧VREADを印加し、センスアンプSA内のノードSENは、電圧VSSより高い電位VSENに充電される。そして、シーケンサ170は、選択ワード線WLに電圧VBdef、VDdef、及びVFdefの各々が印加されている間に1回ずつ、すなわち時刻T4、T6、及びT8においてそれぞれ、信号STBをアサートする。
例えば、選択ワード線WLに電圧VBが印加されることによってメモリセルトランジスタMTがオンした場合には、センスアンプSAは、時刻T4において信号STBをアサートして、ノードSENの状態をラッチ回路に取り込む。選択ワード線WLに電圧VDdef又はVFdefが印加される場合も同様であり、時刻T6及びT8で信号STBをアサートして、ノードSENの電位に基づくデータをラッチ回路に保持させる。
演算部OPは、ラッチ回路に保持された3つの読出しレベルに基づくデータを用いて演算処理を行い、1ページ分の読み出しデータを生成する。
以上のように、中位データ読出しでは、3つの読出しレベル(電圧VBdef、VDdef、及びVFdef)によってデータが確定する。
なお、下位データ読出し及び上位データ読出しでは、2つの読出しレベル(下位データ読出しの場合は電圧VAdef及びVEdef、上位データ読出しの場合は電圧VCdef及びVGdef)によってデータが確定する。
1.2.2.3 シフトリードについて
次に、第1実施形態におけるシフトリード動作について説明する。シフトリードは、例えば、ノーマルリードでは正しくデータを読み出せない場合に実行される。
先に説明した図5では、各データの閾値電圧分布は互いに独立している。よって、読出し電圧として電圧VCGRVを各データの閾値電圧分布の間に設定することで、ノーマルリードは正しいデータを読み出すことができる。
しかしながら、種々の要因により、メモリセルトランジスタMTの閾値電圧は変動し得る。その結果、図5における各データの閾値電圧分布は、その分布幅が広がり、又は分布が移動することにより、隣接する分布同士が重なる場合がある。この様子を図8に示す。例えば、書込み直後において、”A”状態及び”B”状態の閾値電圧分布が図8(A)に示す通りであったとする。しかし、ディスターブ等の要因により、図8(B)に示すように閾値電圧の分布が広がったとする。すると、当初設定されていた読出し電圧VBdefで読出しを行うと、斜線部分の領域に相当するメモリセルトランジスタMTの読出しデータがエラーとなる。そして、エラービット数がECC回路260のエラー訂正可能ビット数を超えていれば、データを正しく訂正することができない。
このような場合、エラービット数が少なくなるように、より2つのレベルの閾値電圧分布の重なりが小さくなる電圧(例えば、閾値電圧分布の重なりが最も小さくなる電圧VB’)が新たな読出し電圧として設定されることが望ましい。このように、ノーマルリードにおいて予め定められた電圧(例えば電圧VBdef)から或る値(「シフト量」とも言う。)だけシフトさせた電圧(例えば電圧VB’)を読出し電圧に設定して行う読出し動作を、シフトリードと言う。このように、シフトリードは、ノーマルリードに対して読出し電圧を変化させた読出し方式である。シフトリードは、予め定められた電圧と異なる読出し電圧が使用されはするものの、対象のページのデータが読み出される点で、ノーマルリードと同じである。
1.2.3 MポイントVthトラッキング動作について
データ読出しの際にエラービット数を最少とするためには、2つのレベルの閾値電圧分布の重なりが最小となる谷位置における電圧(例えば、図8(B)における電圧VB’)でシフトリードを行うことが望ましい。以下の説明では、谷位置電圧に対しては、各レベルの読出し電圧の末尾に「’」を付して、他の読出し動作における読出し電圧と区別する。そして、以下では、谷位置電圧VCGRV’を検出及び推定するための動作(MポイントVthトラッキング動作)について説明する。
1.2.3.1 Vthトラッキング動作について
第1実施形態に係るMポイントVthトラッキング動作を含む動作を説明する前に、Vthトラッキングについて説明する。Vthトラッキングは、MポイントVthトラッキング動作を構成する基本的な概念である。
図9は、Vthトラッキングを説明するための模式図である。図9(A)は、メモリセルトランジスタMT群の閾値電圧の分布の一例として、”A”状態及び”B”状態の閾値電圧分布を示したグラフである。図9(B)は、或る読出し電圧に対してオン状態となるメモリセル数(オンセル数)の推移を示したグラフである。図9(C)は、読出し電圧の範囲におけるオンセル数変化量を示したヒストグラムである。なお、図9(B)及び図9(C)は、図9(A)の閾値電圧分布を有するメモリセルトランジスタMT群に対応してプロットされたものである。
図9(B)に示すように、読出し電圧を上昇させていくと、”A”状態の中央値である電圧VAmidよりわずかに小さい電圧でオンセル数が急激に増大し、dM/dVが最大となる。ここで、中央値とは、図9(A)において最も閾値電圧の分布確率が高い電圧であり、Mはオンセル数で、Vは選択ワード線WLに印加する読出し電圧である。更に読出し電圧を大きくしていくと、オンセル数の増加率は小さくなり、或る値において最小値となる。この読出し電圧における増加率は、”A”状態の閾値電圧分布と、”B”状態の閾値電圧の分布とが重ならない場合にはゼロとなる。他方で重なる場合には、或る一定のゼロではない最小値(>0)となる。そして更に読出し電圧を大きくしていくと、再びオンセル数の増加率が大きくなり、”B”状態の中央値である電圧VBmidよりわずかに小さい電圧で再びdM/dVが最大となる。
上述のオンセル数の累積値の変化によって、2つのレベル間の谷位置、すなわち2つのレベルの閾値電圧分布の重なりが最も小さくなる読出し電圧の位置を検出することができる。例えば、まず、読出し電圧V1を用いて読出し動作が行われる。この時のオンセル数をM1とする。次に、電圧V1よりΔVだけ大きい電圧V2を用いて読出し動作が行われる。この時のオンセル数をM2とする。すると、選択ワード線WLに印加する読出し電圧がV1からV2に上昇した際に新たにオンするメモリセルトランジスタMTの数は、(M2−M1)個である。
引き続き、電圧V2よりΔVだけ大きい電圧V3を用いて読出し動作を行う。この時のオンセル数をM3とする。すると、選択ワード線WLに印加する読出し電圧がV2からV3に上昇した際に新たにオンするメモリセルトランジスタMTの数は、(M3−M2)個である。そして、(M2−M1)>(M3−M2)であったとすれば、dM/dVが最小となる電圧は、少なくとも電圧V2より高いと考えられる。
引き続き、電圧V3よりΔVだけ大きい電圧V4を用いて読出し動作を行う。この時のオンセル数がM4であり、(M3−M2)<(M4−M3)であったとすれば、図9(C)のようなヒストグラムが得られる。
以上の結果、オンセル数変化量によって、図9(C)における一点鎖線で示されるような閾値電圧分布を推測することができ、”A”状態と”B”状態の間の谷位置が電圧V2と電圧V3との間にあることが推定できる。
オンセル数変化量(ビットカウント)は、例えば、読出し電圧を変化させることによって1ページ当たりの読出しデータ内のビット数が変化する様子を追跡することにより抽出される。これらの動作を総称してVthトラッキングという。
1.2.3.2 MポイントVthトラッキング動作の概要について
次に、第1実施形態に係るMポイントVthトラッキング動作の概要について説明する。図10に示すように、第1実施形態では、MポイントVthトラッキング動作によって、”A”状態と”B”状態との間、”C”状態と”D”状態との間、及び”E”状態と”F”状態との間の谷位置をそれぞれ検出する。そして、検出された谷位置に関する情報に基づき、その他の谷位置を推定する。
図11は、第1実施形態のMポイントVthトラッキング動作を含む動作を説明するためのフローチャートである。
図11に示すように、ステップST1において、コントローラ200は、既定の読出し電圧VCGRVを適用したノーマルリードコマンドをNAND型フラッシュメモリ100に発行する。
ステップST2において、NAND型フラッシュメモリ100は、ノーマルリードを実行し、読出しデータをコントローラ200に送信する。
ステップST3において、ECC回路260は、ノーマルリードの読出しデータに基づいてECCを実行する。コントローラ200は、ノーマルリードの読出しデータがECCをパスした場合(ステップST3;パス)、ステップST9に進み、フェイルした場合、(ステップST3;フェイル)、ステップST4に進む。
ステップST4及びST5によって、コントローラ200及びNAND型フラッシュメモリ100は、MポイントVthトラッキング動作を行う。第1実施形態におけるMポイントVthトラッキング動作は、谷位置検出動作と、谷位置推定動作と、を含む。
具体的には、ステップST4において、コントローラ200及びNAND型フラッシュメモリ100は、中位ページに係る谷位置の谷位置電圧VB’、VD’、及びVF’を検出する。谷位置検出動作の詳細については、後述する。
ステップST5において、コントローラ200は、下位ページ及び上位ページの谷位置の谷位置電圧VA’、VC’、VE’、及びVG’を推定する。谷位置電圧VA’、VC’、VE’、及びVG’は、ステップST4において検出された谷位置電圧VB’、VD’、及びVF’と、読出し電圧VBdef、VDdef、及びVFdefとの間のシフト量に基づいて推定される。谷位置推定動作の詳細については、後述する。
ステップST6において、コントローラ200は、検出及び推定された谷位置電圧VCGRV’を適用したシフトリードコマンドをNAND型フラッシュメモリ100に発行する。
ステップST7において、NAND型フラッシュメモリ100は、シフトリードを実行し、最適な読出しデータをコントローラ200に送信する。
ステップST8において、ECC回路260は、シフトリードの読出しデータに基づいてECCを実行する。コントローラ200は、シフトリードの読出しデータがECCをパスした場合(ステップST8;パス)、ステップST9に進み、フェイルした場合、(ステップST8;フェイル)、ステップST10に進む。
ステップST9において、コントローラ200は、ECCパスのステータスを取得し、動作を終了する。ステップST10において、コントローラ200は、ECC結果に基づいてデータを正しく訂正できないと判定し、動作を終了する。
以上で、MポイントVthトラッキングを含む動作が終了する。
1.2.3.3 谷位置検出動作について
次に、谷位置検出動作について説明する。
1.2.3.3.1 フローチャートについて
図12は、第1実施形態の谷位置検出動作を示すフローチャートである。図12は、図11におけるステップST4に対応する。
図12に示すように、ステップST11において、コントローラ200は、第1テストリードコマンドをNAND型フラッシュメモリ100に発行する。
ステップST12において、NAND型フラッシュメモリ100は、第1テストリードを実行し、読出しデータTM1を読み出す。NAND型フラッシュメモリ100は、読出しデータTM1を、ラッチ回路ADL、BDL、及びCDLのいずれかに保持する。
ステップST13において、コントローラ200は、第2テストリードコマンドをNAND型フラッシュメモリ100に発行する。
ステップST14において、NAND型フラッシュメモリ100は、第2テストリードを実行し、読出しデータTM2を読み出す。NAND型フラッシュメモリ100は、読出しデータTM2をラッチ回路ADL、BDL、及びCDLのいずれかに保持する。ここで使用されるラッチ回路は、データTM1を保持していないラッチ回路である。従って、この時点においてカラム制御回路140には、データTM1とTM2とが保持される。
ステップST15において、コントローラ200は、以降のステップST16〜ST23で実行されるループ処理の初期化を行う(m=0、Flag=false)。すなわち、値mは、谷位置検出動作におけるループ処理の進行状況を示す“0”以上の整数である(m≧0)。以下の説明では、値mにm0が設定されたループ処理を、便宜的に「(m0)回目のループ処理」又は「m=m0のループ処理」と言う。
また、フラグ“Flag”は、ループ処理における読出し電圧の探索方向を切替えるためである。具体的には、例えば、フラグ“Flag”が“false”の場合、読出し電圧の探索方向は、ループ処理が進むにつれて読出し電圧が減少(単調減少)するように設定される。一方、フラグ“Flag”が“true”の場合、ループ処理が進むにつれて読出し電圧が増加(単調増加)するように設定される。
ステップST16において、コントローラ200は、中位ページのシフトリードコマンドをNAND型フラッシュメモリ100に発行する。
ステップST17において、NAND型フラッシュメモリ100は、中位ページのシフトリードを実行し、m回目のループ処理において読出しデータBRm/DRm/FRm(BR0/DR0/FR0、BR1/DR1/FR1、…)を読出す。NAND型フラッシュメモリ100は、読出しデータBRm/DRm/FRmをラッチ回路に保持する。m回目のループ処理における読出しデータBRm/DRm/FRmは、電圧VBm、VDm、及びVFmを用いた中位ページのシフトリードの結果に相当する。このため、読出しデータBRm/DRm/FRmは、各ビットにおいて、対応するメモリセルトランジスタMTの閾値電圧と電圧VBm、VDm、及びVFmとの関係に基づいてデータ“0”又は“1”を有する。
ステップST18において、NAND型フラッシュメモリ100は、ラッチ回路に保持された読出しデータTM1、TM2、及びBRm/DRm/FRmに基づき、分離データBRsm(BRs0、BRs1、…)、DRsm(DRs0、DRs1、…)、及びFRsm(FRs0、FRs1、…)を演算する。そして、NAND型フラッシュメモリ100は、分離データBRsm、DRsm、及びFRsmをコントローラ200に送信する。分離データBRsm、DRsm、及びFRsmは、読出しデータBRm/DRm/FRmにおける部分的な情報を有する。分離データBRsm、DRsm、及びFRsmの詳細については後述する。
ステップST19(ST19−1、ST19−2、及びST19−3)において、コントローラ200はそれぞれ、分離データBRsm、DRsm、及びFRsmの各々に基づくビットカウントΔBm、ΔDm、及びΔFmを算出する。
ステップST20において、コントローラ200は、谷位置検出判定動作を実行する。具体的には、ステップST20(ST20−1、ST20−2、及びST20−3)において、コントローラ200はそれぞれ、”A”状態と”B”状態との間の谷位置、”C”状態と”D”状態との間の谷位置、及び”E”状態と”F”状態との間の谷位置が検出されたか否かを判定する。コントローラ200は、谷位置が検出されなかったと判定した場合、(ステップST20;no)、ステップST21(ST21−1、ST21−2、及びST21−3)に進んで(m+1)回目のループ処理におけるシフトリードに適用されるシフト量を設定した後、ステップST22に進む。また、谷位置が検出されたと判定した場合(ステップST20;yes)、ステップST22に進む。
ステップST22において、コントローラ200は、中位データに係る全ての谷位置が検出されたか否かを判定する。中位データに係る全ての谷位置が検出されていないと判定した場合(ステップST22;no)、ステップST23に進み、ループ数をインクリメントしてステップST16に進む。中位データに係る全ての谷位置が検出されたと判定した場合(ステップST22;yes)、引き続き下位ページ及び上位ページの谷位置推定を行うためにステップST5に進む。
以上で、谷位置検出動作が終了する。
1.2.3.3.2 分離データについて
次に、第1実施形態の谷位置検出動作において用いられる分離データについて図13を用いて説明する。図13では、第1テストリードの読出しデータTM1、第2テストリードの読出しデータTM2、シフトリードの読出しデータBRm/DRm/FRm及びBR(m+1)/DR(m+1)/FR(m+1)、並びに分離データBRsm、BRs(m+1)、DRsm、DRs(m+1)、FRsm、及びFRs(m+1)が示される。すなわち、図13は、図12におけるステップST12、ST14、ST17、及びST18に対応する。
図13に示すように、読出しデータTM1は、メモリセルトランジスタMTの閾値電圧が電圧Vt1未満の場合には、本例であるとデータ“1”となり、電圧Vt1以上の場合にはデータ“0”となる。また、読出しデータTM2は、メモリセルトランジスタMTの閾値電圧が電圧Vt2未満の場合にはデータ“1”となり、電圧Vt2以上の場合にはデータ“0”となる。
読出しデータBRm/DRm/FRmは、メモリセルトランジスタMTの閾値電圧が電圧VBm未満の場合にはデータ“1”となり、電圧VBm以上電圧VDm未満の場合にはデータ“0”となり、電圧VDm以上電圧VFm未満の場合にはデータ“1”となり、電圧VFm以上の場合にはデータ“0”となる。読出しデータBR(m+1)/DR(m+1)/FR(m+1)についても同様である。
分離データBRsm及びBRs(m+1)はそれぞれ、例えば、メモリセルトランジスタMTの閾値電圧が電圧VBm未満、及び電圧VB(m+1)未満の場合にはデータ“1”となり、電圧VBm以上、及び電圧VB(m+1)以上の場合にはデータ“0”となる。つまり、分離データBRsmのうち、データ“1”であるものの数は、閾値電圧が電圧VBm未満であるメモリセルトランジスタMTの数に相当する。
分離データDRsmは、メモリセルトランジスタMTの閾値電圧が電圧Vt1以上電圧VDm未満の場合にはデータ“1”となり、電圧Vt1未満又は電圧VDm以上の場合にはデータ“0”となる。分離データDRs(m+1)は、メモリセルトランジスタMTの閾値電圧が電圧Vt1以上電圧VD(m+1)未満の場合にはデータ“1”となり、電圧Vt1未満又は電圧VD(m+1)以上の場合にはデータ“0”となる。つまり、分離データDRsmのうち、データ“1”であるものの数は、閾値電圧が電圧Vt1以上電圧VDm未満であるメモリセルトランジスタMTの数に相当する。
分離データFRsmは、メモリセルトランジスタMTの閾値電圧が電圧Vt2以上電圧VFm未満の場合にはデータ“1”となり、電圧Vt2未満又は電圧VFm以上の場合にはデータ“0”となる。分離データFRs(m+1)は、メモリセルトランジスタMTの閾値電圧が電圧Vt2以上電圧VF(m+1)未満の場合にはデータ“1”となり、電圧Vt2未満又は電圧VF(m+1)以上の場合にはデータ“0”となる。つまり、分離データFRsmのうち、データ“1”であるものの数は、閾値電圧が電圧Vt2以上電圧VFm未満であるメモリセルトランジスタMTの数に相当する。
このため、図12のステップST19において、コントローラ200は、分離データBRsm及びBRs(m+1)を比較することにより、電圧VBmと電圧VB(m+1)との間の閾値電圧を有するメモリセル数をビットカウントΔB(m+1)としてモニタすることができる。同様に、コントローラ200は、分離データDRsm及びDRs(m+1)を比較することにより、電圧VDmと電圧VD(m+1)との間の閾値電圧を有するメモリセル数をビットカウントΔD(m+1)としてモニタすることができる。同様に、コントローラ200は、分離データFRsm及びFRs(m+1)を比較することにより、電圧VFmと電圧VF(m+1)との間の閾値電圧を有するメモリセル数をビットカウントΔF(m+1)としてモニタすることができる。
なお、分離データBRsmは、例えば、読出しデータTM1及びBRm/DRm/FRmに基づいて演算される。演算部OPは、例えば、読出しデータTM1と、読出しデータBRm/DRm/FRmとの論理積演算を行うことにより、分離データBRsmを生成可能である(BRsm=TM1 AND (BRm/DRm/FRm))。
また、分離データDRsmは、例えば、読出しデータTM1、TM2、及びBRm/DRm/FRmに基づいて演算される。演算部OPは、例えば、読出しデータTM1の否定演算結果 ̄TM1と読出しデータTM2との論理積演算結果( ̄TM1 AND TM2)と、読出しデータBRm/DRm/FRmの否定演算結果( ̄BRm/DRm/FRm)との論理積演算を行うことにより、分離データDRsmを生成可能である(DRsm=( ̄TM1 AND TM2) AND ( ̄BRm/DRm/FRm)))。
また、分離データFRsmは、例えば、読出しデータTM2及びBRm/DRm/FRmに基づいて演算される。演算部OPは、例えば、読出しデータTM2の否定演算結果 ̄TM2と、読出しデータBRm/DRm/FRmとの論理積演算を行うことにより、分離データFRsmを生成可能である(FRsm= ̄TM2 AND (BRm/DRm/FRm))。
なお、上述した演算部OPによる分離データBRsm、DRsm、及びFRsmの定義の仕方は一例であり、任意の定義の仕方を適用可能である。
1.2.3.3.3 谷位置検出判定動作について
次に、第1実施形態における谷位置検出判定動作について説明する。図14は、第1実施形態における谷位置の検出判定動作を説明するためのフローチャートである。当該検出判定動作は、谷位置電圧VB’、VD’、VF’のいずれを検出する場合にも適用されるが、図14では、一例として、谷位置電圧VB’の検出が判定される場合が示される。すなわち、図14の各ステップのうち、ステップST31、ST33、ST37〜ST40、及びST42〜ST43は、図12のステップST20−1に対応し、ステップST32、ST34〜ST36、ST41、及びST43は、図12のステップST21−1に対応する。以下では、図14の各ステップに先立ち、ステップST18−1においてm回目のループ処理におけるビットカウントΔBmが算出されたものとして、当該ステップST18−1に後続するステップST31〜ST40について説明する。
図14に示すように、ステップST31において、コントローラ200は、値mが“2”以上であるか否かを判定する。判定の結果、値mが“2”以上でない(m=0又は1)と判定された場合(ステップST31;no)、谷位置は検出されないと判定してステップST32に進み、値mが“2”以上である(m≧2)と判定された場合(ステップST31;yes)、ステップST33に進む。
ステップST32において、コントローラ200は、m回目のループ処理では谷位置は検出されないと判定し、(m+1)回目のループ処理における中位ページシフトリードに適用される読出し電圧VB(m+1)のシフト量を設定する。当該シフト量は、読出し電圧VB(m+1)がm回目のループ処理に適用される読出し電圧VBmよりも小さくなる(VB(m+1)<VBm)ように設定される。ステップST32におけるシフト量の設定が完了すると、ステップST22に進む。
ステップST33において、コントローラ200は、値mが“2”であるか否かを判定する。判定の結果、値mが“2”である(m=2)と判定された場合(ステップST33;no)、ステップST34に進み、値mが“2”でない(m>2)と判定された場合(ステップST33;yes)、ステップST36に進む。
ステップST34において、コントローラ200は、ビットカウントΔB2がビットカウントΔB1以上か否かを判定する。判定の結果、ビットカウントΔB2がビットカウントΔB1未満である(ΔB2<ΔB1)と判定された場合(ステップST34;no)、ステップST32に進む。また、ビットカウントΔB2がビットカウントΔB1以上である(ΔB2≧ΔB1)と判定された場合(ステップST34;yes)、ステップST35に進む。
ステップST35において、コントローラ200は、以後のループ処理における読出し電圧の探索方向を単調減少から単調増加に切替えるためのフラグFlagを“true”に設定する。
ステップST36において、コントローラ200は、m=2回目のループ処理では谷位置は検出されないと判定し、m=3回目のループ処理における中位ページシフトリードに適用される読出し電圧VB3のシフト量を設定する。当該シフト量は、読出し電圧VB3がm=0回目のループ処理に適用される読出し電圧VB0よりも大きくなる(VB3>VB0)ように設定される。ステップST36におけるシフト量の設定が完了すると、ステップST22に進む。
ステップST37において、コントローラ200は、m回目のループ処理において設定されているフラグFlagが“true”であるか否かを判定する。判定の結果、フラグFlagが“false”である場合(ステップST37;no)、ステップST38に進み、“true”である場合(ステップST37;yes)、ステップST39に進む。
ステップST38において、コントローラ200は、ビットカウントΔBmがビットカウントΔB(m−1)以上であるか否かを判定する。判定の結果、ビットカウントΔBmがビットカウントΔB(m−1)未満である(ΔBm<ΔB(m−1))と判定された場合(ステップST38;no)、ステップST32に進む。また、ビットカウントΔBmがビットカウントΔB(m−1)以上である(ΔBm≧ΔB(m−1))と判定された場合(ステップST38;yes)、ステップST43に進む。
ステップST39において、コントローラ200は、値mが“3”であるか否かを判定する。判定の結果、値mが“3”である(m=3)と判定された場合(ステップST39;no)、ステップST40に進み、値mが“3”でない(m>3)と判定された場合(ステップST39;yes)、ステップST42に進む。
ステップST40において、コントローラ200は、ビットカウントΔB3がビットカウントΔB1以上か否かを判定する。判定の結果、ビットカウントΔB3がビットカウントΔB1未満である(ΔB3<ΔB1)と判定された場合(ステップST40;no)、ステップST41に進む。また、ビットカウントΔB3がビットカウントΔB1以上である(ΔB3≧ΔB1)と判定された場合(ステップST40;yes)、ステップST43に進む。
ステップST41において、コントローラ200は、m回目のループ処理では谷位置は検出されないと判定し、(m+1)(≧4)回目のループ処理における中位ページシフトリードに適用される読出し電圧VB(m+1)のシフト量を設定する。当該シフト量は、読出し電圧VB(m+1)がm(≧3)回目のループ処理に適用される読出し電圧VBmよりも大きくなる(VB(m+1)>VBm)ように設定される。ステップST41におけるシフト量の設定が完了すると、ステップST22に進む。
ステップST42において、コントローラ200は、ビットカウントΔBmがビットカウントΔB(m−1)以上であるか否かを判定する。判定の結果、ビットカウントΔBmがビットカウントΔB(m−1)未満である(ΔBm<ΔB(m−1))と判定された場合(ステップST42;no)、ステップST41に進む。また、ビットカウントΔBmがビットカウントΔB(m−1)以上である(ΔBm≧ΔB(m−1))と判定された場合(ステップST42;yes)、ステップST43に進む。
ステップST43において、コントローラ200は、m回目のループ処理において谷位置が検出されたと判定し、ステップST22に進む。
図15は、図14において説明した谷位置電圧VB’の検出動作の際に印加される読出し電圧VBと、ビットカウントΔBとの関係を示すダイアグラムである。図15(A)、図15(B)、図15(C)ではそれぞれ、図14におけるステップST40、ST38、及びST42を経て谷位置検出された場合が示される。また、図15(B)では、フラグFlagが“false”から“true”に変更されない場合、すなわち読出し電圧VB0より大きい読出し電圧VBmが設定されることなく谷位置が検出される場合が示され、図15(A)及び図15(C)では、フラグFlagが“false”から“true”に変更される場合、すなわち読出し電圧VB0より大きいVBmが設定されて谷位置が検出される場合が示される。
図15(A)に示すように、谷位置が読出し電圧VB0及びVB1の間にある場合、m=3回目のループ処理においてΔB2>ΔB1<ΔB3となる。つまり、図15(A)の場合、合計4回のシフトリードが実行されて、谷位置が検出される。
また、図15(B)に示すように、フラグFlagが最終的に“false”であり、かつ谷位置が読出し電圧VB(m−2)及びVB(m−1)の間にある場合、m≧3回目のループ処理においてΔBm>ΔB(m−1)<ΔB(m−2)となる。つまり、図15(B)の場合、合計4回以上の単調減少のシフトリードが実行されて、谷位置が検出される。
また、図15(C)に示すように、フラグFlagが最終的に“true”であり、かつ谷位置が読出し電圧VB(m−2)又はVB0、及びVB(m−1)の間にある場合、m≧4回目のループ処理においてΔBm>ΔB(m−1)<(ΔB(m−2)又はΔB1)となる。つまり、図15(C)の場合、合計5回以上のシフトリードが実行されて、谷位置が検出される。
なお、”A”状態と”B”状態の間の谷位置電圧VB’は、例えば、以下の式(1)に従って算出することができる。
VB’=VBmin+(VBgap/2){(ΔBlow−ΔBhigh)/(ΔBlow−ΔBmin)+(ΔBhigh−ΔBmin)} …(1)
ここで、ΔBminは、読出し動作BRにおいて算出されたビットカウントΔBの最小値であり、ΔBlow及びΔBhighはそれぞれ、ΔBminに隣り合うビットカウントであり、ΔBlow>ΔBmin<ΔBhighの関係を有する。VBgap及びVBminはそれぞれ、ΔBminが(m−1)回目のループ処理における読出し電圧VB(m−1)及びm回目のループ処理における読出し電圧VBmに基づいて算出された場合、例えば、以下の式(2)及び(3)で算出される。
VBgap=|VB(m−1)−VBm| …(2)
VBmin=(VB(m−1)+VBm)/2 …(3)
式(1)〜(3)によれば、谷位置電圧VB’は、読出し電圧VB(m−1)及びVBmの間を(ΔBlow−ΔBmin):(ΔBhigh−ΔBmin)の比で内分する値として検出される。
なお、上述の谷位置電圧検出動作は、谷位置電圧VB’を検出する場合について説明したが、中位ページのその他の谷位置電圧VD’及VF’についても同様の動作によって検出することができる。つまり、図14において示したステップST31〜ST42は、図12におけるステップST20−2及びST21−2、並びにST20−3及びST21−3についても同様に適用可能である。この場合、谷位置電圧VD’及びVF’は、上述の式(1)〜(3)において、読出し電圧VBをそれぞれVD及びVFと読み替え、ビットカウントΔBをそれぞれΔD及びΔFと読み替えることによって、算出することができる。
1.2.3.3.4 タイミングチャートについて
上述した谷位置の検出判定動作によれば、m回目のループ処理において、3つの谷位置電圧VB’、VD’、及びVF’は、互いに独立に検出される。これに伴い、(m+1)回目のループ処理において適用される読出し電圧VB(m+1)、VD(m+1)、及びVF(m+1)を決定するシフト量は、独立に設定される。
図16は、第1実施形態における谷位置検出動作を説明するためのタイミングチャートの一例である。図16の例では、谷位置電圧VB’、VD’、及びVF’はそれぞれ、図15(C)、図15(A)、及び図15(B)に示される検出パターンに従って探索され、m=4でループ処理が終了する場合が示される。
なお、図16は、図12におけるステップST12、ST14、及びST17に対応する。すなわち、図16では、時刻T11から時刻T14の間に対応するテストリード期間、及び時刻T15_mから時刻T18_mの間に対応するm回目のループ処理期間を含む。
図16に示すように、時刻T11から時刻T12の間において、ロウデコーダ120は、選択ワード線WLに電圧Vt1を印加し、非選択ワード線WLに電圧VREADを印加する。なお、電圧Vt1は、読出し動作BRにおける読出し電圧VBより大きく、読出し動作DRにおける読出し電圧VDより小さい。
続いて、時刻T13から時刻T14の間において、ロウデコーダ120は、選択ワード線WLに電圧Vt2を印加し、非選択ワード線WLに電圧VREADを印加する。なお、電圧Vt2は、読出し電圧VDより大きく、読出し動作FRにおける読出し電圧VFより小さい。
続いて、ロウデコーダ120は、m=0回目のループ処理動作で、選択ワード線WLに対して、時刻T15‐0から時刻T16‐0の間、時刻T16‐0から時刻T17‐0の間、及び時刻T17‐0から時刻T18‐0の間において、それぞれ電圧VB0、VD0、及びVF0を印加する。また、ロウデコーダ120は、非選択ワード線WLに対して、時刻T15‐0から時刻T18‐0の間において電圧VREADを印加する。
続いて、ロウデコーダ120は、m=1回目のループ処理動作で、選択ワード線WLに対して、時刻T15‐1から時刻T16‐1の間、時刻T16‐1から時刻T17‐1の間、及び時刻T17‐1から時刻T18‐1の間において、それぞれ電圧VB1、VD1、及びVF1を印加する。また、ロウデコーダ120は、非選択ワード線WLに対して、時刻T15‐1から時刻T18‐1の間において電圧VREADを印加する。
このように、ロウデコーダ27は、m回目のループで、選択ワード線WLに対して、時刻T15‐mから時刻T16‐mの間、時刻T16‐mから時刻T17‐mの間、及び時刻T17‐mから時刻T18‐mの間において、それぞれ電圧VBm、VDm、及びVFmを印加する。また、ロウデコーダ120は、非選択ワード線WLに対して、時刻T15‐mから時刻T18‐mの間において電圧VREADを印加する。
上述の通り、m=2のループ処理までは、読出し電圧VBm、VDm、及びVFmはそれぞれ、前のループ処理における読出し電圧VB(m−1)、VD(m−1)、及びVF(m−1)より小さくなるように設定される(VB2<VB1<VB0、VD2<VD1<VD0、VF2<VF1<VF0)。
m=2のループ処理において、谷位置電圧VF’の検出動作のステップST34では、ΔF2<ΔF1となるため、フラグFlagは、“false”から“true”に変更されない。このため、読出し電圧VF3は、読出し電圧VF2より小さな値が設定される(VF3<VF2)。一方、谷位置電圧VB’及びVD’の検出動作のステップST34ではそれぞれ、ΔB2≧ΔB1、及びΔD2≧ΔD1となるため、フラグFlagが“false”から“true”に変更される。このため、読出し電圧VB3及びVD3はそれぞれ、読出し電圧VB0及びVD0より大きな値が設定される(VB3>VB0、VD3>VD0)。
m=3のループ処理において、谷位置電圧VF’の検出動作のステップST38では、ΔF3<ΔF2となる。このため、読出し電圧VF4は、読出し電圧VF3より小さな値が設定される(VF4<VF3)。谷位置電圧VD’の検出動作のステップST40では、ΔD3≧ΔD1となるため、谷位置が検出されたと判定される。このため、読出し電圧VD4は、例えば、読出し電圧VD3から変更されない(VD4=VD3)。谷位置電圧VB’の検出動作のステップST40では、ΔB3<ΔB1となる。このため、読出し電圧VB4は、読出し電圧VB3より大きな値が設定される(VB4<VB3)。
m=4のループ処理において、谷位置電圧VF’の検出動作のステップST38では、ΔF4≧ΔF3となるため、谷位置が検出されたと判定される。谷位置電圧VB’の検出動作のステップST42では、ΔB4≧ΔB3となるため、谷位置が検出されたと判定される。このため、ステップST21において全ての谷位置が検出されたと判定され、ループ処理が終了する。
1.2.3.4 谷位置推定動作について
次に、第1実施形態の谷位置推定動作について説明する。図17に示すように、上位ページ及び下位ページの谷位置電圧のシフト量Yは、中位ページの谷位置電圧のシフト量Xに対して、例えば、以下の式(4)で対応付けられる。
Y=aX+b …(4)
ここで、シフト量Xは、ノーマルリードにおける読出し電圧と、谷位置電圧の検出値との差であり、XB(=VB’−VBdef)、XD(=VD’−VDdef)、及びXF(=VF’−VFdef)を含む。シフト量Yは、ノーマルリードにおける読出し電圧と、谷位置電圧の推定値との差であり、YA(=VA’−VAdef)、YC(=VC’−VCdef)、YE(=VE’−VEdef)、及びYG(=VG’−VGdef)を含む。係数a、bは、シフト量Xに基づきシフト量Yを算出するために予め設定された値である。
このように、シフト量Xと、シフト量Yとは、互いに相関があるため、中位ページの谷位置電圧を検出することにより、上位ページ及び下位ページの谷位置電圧を推定することができる。シフト量X及びYの相関の強さは、例えば、互いに近いレベル同士であるほど強い場合がある。このため、第1実施形態では、図10において示したように、シフト量YAは、シフト量XBから推定され、シフト量YC及びYEは、シフト量XDから推定され、シフト量YGは、シフト量XFから推定される。しかしながら、これに限らず、シフト量YAは、シフト量XD及びXFから推定されてもよく、シフト量YC及びYEは、シフト量XB及びXFから推定されてもよく、シフト量YGは、シフト量XB及びXDから推定されてもよい。
また、式(4)は、シフト量X及びYが一次関数で対応付けられた場合について説明したが、これに限られない。例えば、シフト量X及びYは、任意の多項式で対応付けられてもよい。
1.2.4 シーケンシャルリード動作との関係について
次に、同一のメモリセルトランジスタMTにおいて、異なるページからの読出しが連続して実行する場合(これをシーケンシャルリード(Sequential reading)動作と呼ぶ)と、MポイントVthトラッキング動作との関係について説明する。
1.2.4.1 谷位置電圧を流用できる場合
まず、或るページからの読出しの際に実行されたMポイントVthトラッキング動作によって検出及び推定された谷位置電圧の値を、他のページからの読出しの際に流用できる場合について説明する。このような動作は、例えば、コントローラ200が、MポイントVthトラッキング動作によって検出及び推定された谷位置電圧の値を、当該或るページからの読出し動作の後も保持できる場合の動作として想定される。
図18は、谷位置電圧が流用できる場合におけるシーケンシャルリード動作のフローチャートである。図18の例では、下位/中位/上位ページの順にノーマルリードが実行され、いずれの読出しデータもECCフェイルする場合が示される。
図18に示すように、ステップST51において、コントローラ200は、ノーマルリードを実行し、NAND型フラッシュメモリ100から下位ページのデータを読出す。そして、ECC回路260は、当該読出しデータに基づいてECCを実行し、誤り訂正処理に失敗する。
ステップST52において、コントローラ200及びNAND型フラッシュメモリ100は、ECCフェイルのステータスを取得し、MポイントVthトラッキング動作を実行する。コントローラ200は、図12のステップST11〜ST22を実行し、中位ページの谷位置電圧VB’、VD’、及びVF’を検出し、シーケンシャルリード動作の間保持する。
ステップST53において、コントローラ200は、図11のステップST5を実行し、上位ページ及び下位ページの谷位置電圧VA’、VC’、VE’、及びVG’を推定し、シーケンシャルリード動作の間保持する。
ステップST54において、コントローラ200は、推定された谷位置電圧VA’及びVE’に基づくシフトリードを実行し、NAND型フラッシュメモリ100から再度下位ページのデータを読み出す。そして、ECC回路260は、当該読出しデータに基づいてECCを実行し、誤り訂正処理に成功する。
続いて、ステップST55において、コントローラ200は、ノーマルリードを実行し、NAND型フラッシュメモリ100から中位ページのデータを読出す。そして、ECC回路260は、当該読出しデータに基づいてECCを実行し、誤り訂正処理に失敗する。
ステップST56において、コントローラ200は、ステップST52において検出された谷位置電圧VB’、VD’、及びVF’に基づくシフトリードを実行し、NAND型フラッシュメモリ100から再度中位ページのデータを読み出す。そして、ECC回路260は、当該読出しデータに基づいてECCを実行し、誤り訂正処理に成功する。
続いて、ステップST57において、コントローラ200は、ノーマルリードを実行し、NAND型フラッシュメモリ100から上位ページのデータを読出す。そして、ECC回路260は、当該読出しデータに基づいてECCを実行し、誤り訂正処理に失敗する。
ステップST58において、コントローラ200は、ステップST53において推定された谷位置電圧VC’及びVG’に基づくシフトリードを実行し、NAND型フラッシュメモリ100から再度上位ページのデータを読み出す。そして、ECC回路260は、当該読出しデータに基づいてECCを実行し、誤り訂正処理に成功する。
以上により、シーケンシャルリード動作が終了する。
このように、シーケンシャルリード動作の間MポイントVthトラッキング動作の結果を保持できる場合、1回のMポイントVthトラッキング動作によって検出及び推定された谷位置電圧を、下位/中位/上位ページの読出しの各々に対して適用することができる。
なお本例においては、ステップST55及びST57のノーマルリードを省略してステップST56及びST58が実行されても良い。なぜなら、ノーマルリードよりも、ステップST53で推定された電圧を用いた方が、データを正しく読み出せる可能性が高いと考えられるからである。
1.2.4.2 谷位置電圧を流用できない場合
次に、或るページからの読出しの際に実行されたMポイントVthトラッキング動作によって検出及び推定された谷位置電圧の値を、他のページからの読出しの際に流用できない場合について説明する。このような動作は、例えば、コントローラ200が、MポイントVthトラッキング動作によって検出及び推定された谷位置電圧の値を、当該或るページからの読出し動作の後に保持できない場合の動作として想定される。
図19は、谷位置電圧が流用できない場合におけるシーケンシャルリード動作のフローチャートである。図19の例では、図18と同様、下位/中位/上位ページの順にノーマルリードが実行され、いずれの読出しデータもECCフェイルする場合が示される。
図19に示すように、ステップST61〜ST64は、図18におけるステップST51〜ST54と同様であるため、説明を省略する。
続いて、ステップST65において、コントローラ200は、ノーマルリードを実行し、NAND型フラッシュメモリ100から中位ページのデータを読出す。そして、ECC回路260は、当該読出しデータに基づいてECCを実行し、誤り訂正処理に失敗する。
ステップST66おいて、コントローラ200及びNAND型フラッシュメモリ100は、ECCフェイルのステータスを取得し、MポイントVthトラッキング動作を実行する。コントローラ200は、図12のステップST11〜ST22を実行し、中位ページの谷位置電圧VB’、VD’、及びVF’を検出する。
ステップST67において、コントローラ200は、検出された谷位置電圧VB’、VD’、及びVF’に基づくシフトリードを実行し、NAND型フラッシュメモリ100から再度中位ページのデータを読み出す。そして、ECC回路260は、当該読出しデータに基づいてECCを実行し、誤り訂正処理に成功する。
続いて、ステップST68において、コントローラ200は、ノーマルリードを実行し、NAND型フラッシュメモリ100から上位ページのデータを読出す。そして、ECC回路260は、当該読出しデータに基づいてECCを実行し、誤り訂正処理に失敗する。
ステップST69において、コントローラ200及びNAND型フラッシュメモリ100は、ECCフェイルのステータスを取得し、MポイントVthトラッキング動作を実行する。コントローラ200は、図12のステップST11〜ST22を実行し、中位ページの谷位置電圧VB’、VD’、及びVF’を検出する。
ステップST70において、コントローラ200は、図11のステップST5を実行し、上位ページの谷位置電圧VC’及びVG’を推定する。
ステップST71において、コントローラ200は、推定された谷位置電圧VC’及びVG’に基づくシフトリードを実行し、NAND型フラッシュメモリ100から再度上位ページのデータを読み出す。そして、ECC回路260は、当該読出しデータに基づいてECCを実行し、誤り訂正処理に成功する。
以上により、シーケンシャルリード動作が終了する。
このように、シーケンシャルリード動作の間MポイントVthトラッキング動作の結果を保持できない場合、下位/中位/上位ページの読出しの各々に対して、その都度MポイントVthトラッキング動作が実行される。
1.3 本実施形態に係る効果
以上のように、本実施形態に係る構成であると高速な読み出し動作を可能とし、メモリシステムの読み出し性能を向上出来る。本効果につき、以下説明する。
すなわち、本実施形態では、各メモリセルが複数ビットを保持する場合、言い換えれば1本のワード線WLに複数ページが割り当てられる場合、この複数ページのいずれかのページにおいてVthトラッキングを行う。この際、Vthトラッキングの対象ページの読み出し電圧が2種類以上であった場合に、それらの全てにつき、MポイントVthトラッキングを実行している。より具体的には、上記実施形態では図10で説明したように、中位ページにおいて、読み出し電圧VB、VD、及びVFを対象に、Vthトラッキングが実行される。従って、中位ページの読み出し精度を向上出来る。
更に中位ページの3つの読み出し電圧の全てにつきVthトラッキングを行い、その結果から、他のページの読み出し電圧(図10の例であると、VA、VC、VE、VG)を推定している。従って、1つの読み出し電圧だけにつきVthトラッキングを行う場合に比べて、推定精度が向上される。その結果、下位ページ及び上位ページの読み出し精度も向上される。
また、Vthトラッキング対象となる読み出し電圧VB、VD、及びVFは、図16で説明したように、並行してトラッキングされ、且つ各読み出し電圧毎に最適なアルゴリズム(読み出し電圧のシフト方向)により、トラッキングされる。従って、1つの読み出し電圧だけにつきVthトラッキングを行う場合と、トラッキングに要する時間をほぼ同等とすることが出来る。更に、図18で説明したように、中位ページのトラッキング結果が他のページに流用出来れば、各ページでVthトラッキングを行う場合に比べて読み出し動作全体としての速度を向上出来る。
2. 第2実施形態
次に、第2実施形態に係るメモリシステムについて説明する。第2実施形態では、谷位置推定動作が第1実施形態と異なる。より具体的には、第1実施形態では、谷位置推定動作において、シフト量XB、XD、XFのいずれかと、シフト量YA、YC、YE、及びYGのいずれかと、を対応付ける式(4)を用いることにより、谷位置電圧VA’、VC’、VE’、及びVG’を推定した。一方、第2実施形態では、谷位置電圧VA’、VC’、VE’、及びVG’は、シフト量X及びYを介することなく、谷位置電圧VB’、VD’、及びVF’と直接対応付けられる。
以下の説明では、第1実施形態と同一の構成及び動作については説明を省略し、第1実施形態と異なる構成及び動作について説明する。
2.1 谷位置推定動作について
図20は、第2実施形態のMポイントVthトラッキング動作を含む動作を説明するためのフローチャートである。図20は、第1実施形態において説明した図11に対応する。
図20に示すように、第2実施形態では、谷位置推定に係るステップST5Aを除くその他のステップST1〜ST4、及びST6〜10は、第1実施形態と同様である。
ステップST5Aにおいて、コントローラ200は、検出された中位ページの谷位置電圧VB’、VD’、及びVF’の間の差に基づき、下位ページ及び上位ページの谷位置を推定する。
より具体的には、図21に示すように、谷位置電圧VA’、VC’、VE’、及びVG’は、以下の式(5)〜(8)に従って推定される。
VA’=VB’−(VD’−VB’)/2 …(5)
VC’=(VB’+VD’)/2 …(6)
VE’=(VD’+VF’)/2 …(7)
VG’=VF’+(VF’−VD’)/2 …(8)
このように、各谷位置は互いに均等な間隔で隣り合うと仮定することにより、検出された中位ページの谷位置電圧から、下位ページ及び上位ページの谷位置電圧を直接推定することができる。
2.2 本実施形態に係る効果
上記のように、本実施形態によれば、Vthトラッキングの対象とされた読み出し電圧の中間電圧を、他のページ読み出し電圧であると推定する。従って、上記第1実施形態に比べて推定方法が非常に容易であり、処理が簡略化される結果、読み出し速度を向上出来る。
3. 第3実施形態
次に、第3実施形態に係るメモリシステムについて説明する。第3実施形態では、MポイントVthトラッキング動作において検出される谷位置電圧が第1実施形態と異なる場合がある。より具体的には、第1実施形態では、ノーマルリードでECCフェイルしたページが下位/中位/上位ページのいずれの場合においても、中位ページの谷位置電圧VB’、VD’、及びVF’が検出された。一方、第3実施形態では、ノーマルリードでECCフェイルしたページに応じて、検出される谷位置電圧の組が変更される。
以下の説明では、第1実施形態と同一の構成及び動作については説明を省略し、第1実施形態と異なる構成及び動作について説明する。
3.1 MポイントVthトラッキング動作について
3.1.1 MポイントVthトラッキング動作の概要について
図22は、第3実施形態のMポイントVthトラッキング動作を含む動作を説明するためのフローチャートである。図22は、第1実施形態において説明した図11に対応する。
図22に示すように、第3実施形態では、MポイントVthトラッキング動作に係るステップST4Bが、第1実施形態において説明した図11のステップST4と異なる。また、第3実施形態では、図11の谷位置推定に係るステップST5が実行されない。そして、その他のステップST1〜ST3、及びST6〜10は、第1実施形態と同様である。
ステップST4Bにおいて、コントローラ200及びNAND型フラッシュメモリ100は、MポイントVthトラッキング動作を行い、谷位置を検出する。検出される谷位置は、ステップST1において実行されたノーマルリードによって読み出されたページに対応する。すなわち、ステップST1において下位ページが読み出された場合、ステップST4Bにおいて下位ページの谷位置電圧VA’及びVE’が検出される。ステップST1において中位ページが読み出された場合、ステップST4Bにおいて中位ページの谷位置電圧VB’、VD’、及びVF’が検出される。ステップST1において上位ページが読み出された場合、ステップST4Bにおいて上位ページの谷位置電圧VC’及びVG’が検出される。
なお、中位ページの谷位置電圧VB’、VD’、及びVF’が検出される場合のステップST4Bの動作は、図11のステップST4と同等の動作である。以下では、下位ページの谷位置電圧VA’及びVE’が検出される場合、及び上位ページの谷位置電圧VC’及びVG’が検出される場合のステップST4Bの動作の詳細について説明する。
3.1.2 下位ページの谷位置検出動作について
図23は、第3実施形態の下位ページの谷位置検出を行うMポイントVthトラッキング動作の詳細を示すフローチャートである。
図23に示すように、ステップST81において、コントローラ200は、テストリードコマンドをNAND型フラッシュメモリ100に発行する。
ステップST82において、NAND型フラッシュメモリ100は、テストリードを実行し、読出しデータTLを読み出す。NAND型フラッシュメモリ100は、読出しデータTLをラッチ回路に保持する。
ステップST83において、コントローラ200は、以降のステップST84〜ST91で実行されるループ処理の初期化を行う(m=0、Flag=false)。
ステップST84において、コントローラ200は、下位ページのシフトリードコマンドをNAND型フラッシュメモリ100に発行する。
ステップST85において、NAND型フラッシュメモリ100は、下位ページのシフトリードを実行し、m回目のループ処理において読出しデータARm/ERm(AR0/ER0、AR1/ER1、…)を読出す。NAND型フラッシュメモリ100は、読出しデータARm/ERmをラッチ回路に保持する。m回目のループ処理における読出しデータARm/ERmは、電圧VAm及びVEmを用いた下位ページのシフトリードの結果に相当する。このため、読出しデータARm/ERmは、各ビットにおいて、対応するメモリセルトランジスタMTの閾値電圧と電圧VAm及びVEmとの関係に基づいてデータ“0”又は“1”を有する。
ステップST86において、NAND型フラッシュメモリ100は、ラッチ回路に保持された読出しデータTL及びARm/ERmに基づき、分離データARsm(ARs0、ARs1、…)、及びERsm(ERs0、ERs1、…)を演算する。そして、NAND型フラッシュメモリ100は、分離データARsm、及びERsmをコントローラ200に送信する。分離データARsm、及びERsmは、読出しデータARm/ERmにおける部分的な情報を有する。分離データARsm及びERsmの詳細については後述する。
ステップST87(ST87−1及びST87−2)において、コントローラ200はそれぞれ、分離データARsm及びERsmの各々に基づくビットカウントΔAm及びΔEmを算出する。
ステップST88(ST88−1及びST88−2)において、コントローラ200はそれぞれ、“Er”レベルと”A”状態との間の谷位置、及び”D”状態と”E”状態との間の谷位置が検出されたか否かを判定する。コントローラ200は、谷位置が検出されなかったと判定した場合、(ステップST88;no)、ステップST89(ST89−1及びST89−2)に進んで(m+1)回目のループにおけるシフトリードに適用されるシフト量を設定した後、ステップST90に進む。また、谷位置が検出されたと判定した場合(ステップST88;yes)、ステップST90に進む。
ステップST90において、コントローラ200は、下位データに係る全ての谷位置が検出されたか否かを判定する。下位データに係る全ての谷位置が検出されていないと判定した場合(ステップST90;no)、ステップST91に進み、ループ数をインクリメントしてステップST84に進む。下位データに係る全ての谷位置が検出されたと判定した場合(ステップST90;yes)、引き続き検出された谷位置電圧に基づくシフトリードを行うためにステップST6に進む。
以上で、下位ページの谷位置を検出するMポイントVthトラッキング動作が終了する。
次に、下位ページの谷位置検出において用いられる分離データについて説明する。図24は、第3実施形態の下位ページシフトリードによって生成される分離データを説明するためのテーブルであり、図23におけるステップST82、ST85、及びST86に対応する。図24では、テストリードの読出しデータTL、シフトリードの読出しデータARm/ERm及びAR(m+1)/ER(m+1)、並びに分離データARsm、ARs(m+1)、ERsm、及びERs(m+1)が示される。
図24に示すように、読出しデータTLは、メモリセルトランジスタMTの閾値電圧が電圧Vt1未満の場合にはデータ“1”となり、電圧Vt1以上の場合にはデータ“0”となる。
読出しデータARm/ERmは、メモリセルトランジスタMTの閾値電圧が電圧VAm未満の場合にはデータ“1”となり、電圧VAm以上電圧VEm未満の場合にはデータ“0”となり、電圧VEm以上の場合にはデータ“1”となる。読出しデータAR(m+1)/ER(m+1)についても同様である。
分離データARsm及びARs(m+1)はそれぞれ、例えば、メモリセルトランジスタMTの閾値電圧が電圧VAm未満、及び電圧VA(m+1)未満の場合にはデータ“1”となり、電圧VAm以上、及び電圧VA(m+1)以上の場合にはデータ“0”となる。つまり、分離データARsmのうち、データ“1”であるものの数は、閾値電圧が電圧VAm未満であるメモリセルトランジスタMTの数に相当する。
分離データERsmは、メモリセルトランジスタMTの閾値電圧が電圧Vt1以上電圧VEm未満の場合にはデータ“1”となり、電圧Vt1未満又は電圧VEm以上の場合にはデータ“0”となる。分離データERs(m+1)は、メモリセルトランジスタMTの閾値電圧が電圧Vt1以上電圧VE(m+1)未満の場合にはデータ“1”となり、電圧Vt1未満又は電圧VE(m+1)以上の場合にはデータ“0”となる。つまり、分離データERsmのうち、データ“1”であるものの数は、閾値電圧が電圧Vt1以上電圧VEm未満であるメモリセルトランジスタMTの数に相当する。
このため、図23のステップST87において、コントローラ200は、分離データARsm及びARs(m+1)を比較することにより、電圧VAmと電圧VA(m+1)との間に閾値電圧を有するメモリセル数をビットカウントΔA(m+1)としてモニタすることができる。同様に、コントローラ200は、分離データERsm及びERs(m+1)を比較することにより、電圧VEmと電圧VE(m+1)との間の閾値電圧を有するメモリセル数をビットカウントΔE(m+1)としてモニタすることができる。
なお、分離データARsm及びERsmは、例えば、読出しデータTL及びARm/ERmに基づいて演算される。演算部OPは、例えば、読出しデータTLと、読出しデータARm/ERmとの論理積演算を行うことにより、分離データARsmを生成可能である(ARsm=TL AND (ARm/ERm))。また、演算部OPは、例えば、読出しデータTLの否定演算 ̄TLと、読出しデータARm/ERmの否定演算 ̄(ARm/ERm)との論理積演算を行うことにより、分離データERsmを生成可能である(ERsm= ̄TL AND  ̄(ARm/ERm))。
なお、上述した演算部OPによる分離データARsm及びERsmの定義の仕方は一例であり、任意の定義の仕方を適用可能である。
3.1.3 上位ページの谷位置検出動作について
図25は、第3実施形態の上位ページの谷位置検出を行うMポイントVthトラッキング動作の詳細を示すフローチャートである。
図25に示すように、ステップST101において、コントローラ200は、テストリードコマンドをNAND型フラッシュメモリ100に発行する。
ステップST102において、NAND型フラッシュメモリ100は、テストリードを実行し、読出しデータTUを読み出す。NAND型フラッシュメモリ100は、読出しデータTUをラッチ回路に保持する。
ステップST103において、コントローラ200は、以降のステップST104〜ST111で実行されるループ処理の初期化を行う(m=0、Flag=false)。
ステップST104において、コントローラ200は、上位ページのシフトリードコマンドをNAND型フラッシュメモリ100に発行する。
ステップST105において、NAND型フラッシュメモリ100は、上位ページのシフトリードを実行し、m回目のループ処理において読出しデータCRm/GRm(CR0/GR0、CR1/GR1、…)を読出す。NAND型フラッシュメモリ100は、読出しデータCRm/GRmをラッチ回路に保持する。m回目のループ処理における読出しデータCRm/GRmは、電圧VCm及びVGmを用いた上位ページのシフトリードの結果に相当する。このため、読出しデータCRm/GRmは、各ビットにおいて、対応するメモリセルトランジスタMTの閾値電圧と電圧VCm及びVGmとの関係に基づいてデータ“0”又は“1”を有する。
ステップST106において、NAND型フラッシュメモリ100は、ラッチ回路に保持された読出しデータTU及びCRm/GRmに基づき、分離データCRsm(CRs0、CRs1、…)、及びGRsm(GRs0、GRs1、…)を演算する。そして、NAND型フラッシュメモリ100は、分離データCRsm、及びGRsmをコントローラ200に送信する。分離データCRsm、及びGRsmは、読出しデータCRm/GRmにおける部分的な情報を有する。分離データCRsm及びGRsmの詳細については後述する。
ステップST107(ST107−1及びST107−2)において、コントローラ200はそれぞれ、分離データCRsm及びGRsmの各々に基づくビットカウントΔCm及びΔGmを算出する。
ステップST108(ST108−1及びST108−2)において、コントローラ200はそれぞれ、”B”状態と”C”状態との間の谷位置、及び”F”状態と”G”状態との間の谷位置が検出されたか否かを判定する。コントローラ200は、谷位置が検出されなかったと判定した場合、(ステップST108;no)、ステップST109(ST109−1及びST109−2)に進んで(m+1)回目のループにおけるシフトリードに適用されるシフト量を設定した後、ステップST110に進む。また、谷位置が検出されたと判定した場合(ステップST108;yes)、ステップST110に進む。
ステップST110において、コントローラ200は、上位データに係る全ての谷位置が検出されたか否かを判定する。上位データに係る全ての谷位置が検出されていないと判定した場合(ステップST110;no)、ステップST111に進み、ループ数をインクリメントしてステップST104に進む。上位データに係る全ての谷位置が検出されたと判定した場合(ステップST110;yes)、引き続き検出された谷位置電圧に基づくシフトリードを行うためにステップST6に進む。
以上で、上位ページの谷位置を検出するMポイントVthトラッキング動作が終了する。
次に、上位ページの谷位置検出において用いられる分離データについて説明する。図26は、第3実施形態の上位ページシフトリードによって生成される分離データを説明するためのテーブルであり、図25におけるステップST102、ST105、及びST106に対応する。図26では、テストリードの読出しデータTU、シフトリードの読出しデータCRm/GRm及びCR(m+1)/GR(m+1)、並びに分離データCRsm、CRs(m+1)、GRsm、及びGRs(m+1)が示される。
図26に示すように、読出しデータTUは、メモリセルトランジスタMTの閾値電圧が電圧Vt2未満の場合にはデータ“1”となり、電圧Vt2以上の場合にはデータ“0”となる。
読出しデータCRm/GRmは、メモリセルトランジスタMTの閾値電圧が電圧VCm未満の場合にはデータ“1”となり、電圧VCm以上電圧VGm未満の場合にはデータ“0”となり、電圧VGm以上の場合にはデータ“1”となる。読出しデータCR(m+1)/GR(m+1)についても同様である。
分離データCRsm及びGRs(m+1)はそれぞれ、例えば、メモリセルトランジスタMTの閾値電圧が電圧VCm未満、及び電圧VC(m+1)未満の場合にはデータ“1”となり、電圧VCm以上、及び電圧VC(m+1)以上の場合にはデータ“0”となる。つまり、分離データCRsmのうち、データ“1”であるものの数は、閾値電圧が電圧VCm未満であるメモリセルトランジスタMTの数に相当する。
分離データGRsmは、メモリセルトランジスタMTの閾値電圧が電圧Vt2以上電圧VGm未満の場合にはデータ“1”となり、電圧Vt2未満又は電圧VGm以上の場合にはデータ“0”となる。分離データGRs(m+1)は、メモリセルトランジスタMTの閾値電圧が電圧Vt2以上電圧VG(m+1)未満の場合にはデータ“1”となり、電圧Vt2未満又は電圧VG(m+1)以上の場合にはデータ“0”となる。つまり、分離データGRsmのうち、データ“1”であるものの数は、閾値電圧が電圧Vt2以上電圧VGm未満であるメモリセルトランジスタMTの数に相当する。
このため、図25のステップST107において、コントローラ200は、分離データCRsm及びCRs(m+1)を比較することにより、電圧VCmと電圧VC(m+1)との間に閾値電圧を有するメモリセル数をビットカウントΔC(m+1)としてモニタすることができる。同様に、コントローラ200は、分離データGRsm及びGRs(m+1)を比較することにより、電圧VGmと電圧VG(m+1)との間の閾値電圧を有するメモリセル数をビットカウントΔG(m+1)としてモニタすることができる。
なお、分離データCRsm及びGRsmは、例えば、読出しデータTU及びCRm/GRmに基づいて演算される。演算部OPは、例えば、読出しデータTUと、読出しデータCRm/GRmとの論理積演算を行うことにより、分離データCRsmを生成可能である(CRsm=TU AND (CRm/GRm))。また、演算部OPは、例えば、読出しデータTUの否定演算 ̄TUと、読出しデータCRm/GRmの否定演算 ̄(CRm/GRm)との論理積演算を行うことにより、分離データGRsmを生成可能である(GRsm= ̄TU AND  ̄(CRm/GRm))。
なお、上述した演算部OPによる分離データCRsm及びGRsmの定義の仕方は一例であり、任意の定義の仕方を適用可能である。
3.2 シーケンシャルリード動作との関係について
上述の通り、第3実施形態では、ノーマルリードにおいて或るページのデータが読み出された場合、当該或るページの谷位置電圧が検出される。このため、シーケンシャルリード動作の間、コントローラ200が谷位置電圧の値を保持できるか否かに関わらず、下位/中位/上位ページの読出しの各々に対して、その都度MポイントVthトラッキング動作が実行される。
図27は、第3実施形態におけるシーケンシャルリード動作のフローチャートである。図27の例では、下位/中位/上位ページの順にノーマルリードが実行され、いずれの読出しデータもECCフェイルする場合が示される。
図27に示すように、ステップST121において、コントローラ200は、ノーマルリードを実行し、NAND型フラッシュメモリ100から下位ページのデータを読出す。そして、ECC回路260は、当該読出しデータに基づいてECCを実行し、誤り訂正処理に失敗する。
ステップST122において、コントローラ200及びNAND型フラッシュメモリ100は、ECCフェイルのステータスを取得し、MポイントVthトラッキング動作を実行する。コントローラ200は、図23のステップST81〜ST91を実行し、下位ページの谷位置電圧VA’及びVE’を検出する。
ステップST123において、コントローラ200は、検出された谷位置電圧VA’及びVE’に基づくシフトリードを実行し、NAND型フラッシュメモリ100から再度下位ページのデータを読み出す。そして、ECC回路260は、当該読出しデータに基づいてECCを実行し、誤り訂正処理に成功する。
続いて、ステップST124において、コントローラ200は、ノーマルリードを実行し、NAND型フラッシュメモリ100から中位ページのデータを読出す。そして、ECC回路260は、当該読出しデータに基づいてECCを実行し、誤り訂正処理に失敗する。
ステップST125において、コントローラ200及びNAND型フラッシュメモリ100は、ECCフェイルのステータスを取得し、MポイントVthトラッキング動作を実行する。コントローラ200は、図12のステップST11〜ST23を実行し、中位ページの谷位置電圧VB’、VD’、及びVF’を検出する。
ステップST126において、コントローラ200は、検出された谷位置電圧VB’、VD’、及びVF’に基づくシフトリードを実行し、NAND型フラッシュメモリ100から再度中位ページのデータを読み出す。そして、ECC回路260は、当該読出しデータに基づいてECCを実行し、誤り訂正処理に成功する。
続いて、ステップST127において、コントローラ200は、ノーマルリードを実行し、NAND型フラッシュメモリ100から上位ページのデータを読出す。そして、ECC回路260は、当該読出しデータに基づいてECCを実行し、誤り訂正処理に失敗する。
ステップST128において、コントローラ200及びNAND型フラッシュメモリ100は、ECCフェイルのステータスを取得し、MポイントVthトラッキング動作を実行する。コントローラ200は、図25のステップST101〜ST111を実行し、上位ページの谷位置電圧VC’及びVG’を検出する。
ステップST129において、コントローラ200は、検出された谷位置電圧VC’及びVG’に基づくシフトリードを実行し、NAND型フラッシュメモリ100から再度上位ページのデータを読み出す。そして、ECC回路260は、当該読出しデータに基づいてECCを実行し、誤り訂正処理に成功する。
以上により、シーケンシャルリード動作が終了する。
3.3 本実施形態に係る効果
本実施形態によれば、上記第1実施形態で説明したVthトラッキングを、読み出しフェイルしたページ毎に行っている。すなわち、下位ページ読み出しにフェイルした場合には、当該下位ページにつきVthトラッキングを行い、中位ページ読み出しにフェイルした場合には、当該中位ページにつきVthトラッキングを行い、上位ページ読み出しにフェイルした場合には、当該上位ページにつきVthトラッキングを行う。従って、推定動作が必要無く、各ページにつき最適な読み出し電圧を用いてデータを読み出すことが出来る。よって、読み出し精度が向上される。
4. 第4実施形態
次に、第4実施形態に係るメモリシステムについて説明する。第4実施形態では、第1実施形態〜第3実施形態の各々において実行される谷位置検出動作において、検出すべき谷位置と隣り合う谷位置を、当該検出すべき谷位置として誤って検出することを抑制するための誤検出抑制動作が更に実行される。以下の説明では、誤検出抑制動作が第1実施形態及び第2実施形態に係る谷位置検出動作に適用される場合について主に説明し、必要に応じて第3実施形態に係る谷位置検出動作に適用される場合についても適宜補足説明する。
4.1 誤検出抑制動作の概要
図28及び図29はそれぞれ、比較例及び第4実施形態に係るメモリシステムの谷位置検出動作を説明するための模式図である。図28では、谷位置電圧VB’を検出しようとして、誤って隣の谷位置の谷位置電圧VA’及びVC’が誤検出される場合が示される。図29では、誤検出抑制動作によって、正しく谷位置電圧VB’が検出される場合が示される。また、図28(A)及び図29(A)は、”A”状態及び”B”状態の閾値電圧分布が大きく右側(閾値電圧が上昇する側)にシフトした場合が示され、図28(B)及び図29(B)は、”A”状態及び”B”状態の閾値電圧分布が大きく左側(閾値電圧が減少する側)にシフトした場合が示される。
図28(A)に示すように、閾値電圧分布が大きく右側にシフトすると、谷位置検出動作におけるm=0のループ処理の読出し電圧VB0が、電圧VAmidよりも小さくなり得る。かかる場合、読出し電圧VB0、VB1、…は、”A”状態の閾値電圧分布の左半分を探索する。そして、最終的に、“Er”レベルと”A”状態との間の谷位置における谷位置電圧VA’が谷位置電圧VB’として誤検出される。
また、図28(B)に示すように、閾値電圧分布が大きく左側(閾値電圧が減少する側)にシフトすると、読出し電圧VB0が、電圧VBmidよりも大きくなり得る。かかる場合、読出し電圧VB0、VB1、VB2、…は、”B”状態の閾値電圧分布の右半分を探索する。そして、最終的に、”B”状態と”C”状態との間の谷位置における谷位置電圧VC’が谷位置電圧VB’として誤検出される。
このように、VBm<VAmid又はVBm>VBmidとなる場合、谷位置電圧VB’の誤検出が発生し得る。つまり、閾値電圧分布の変動に依らず、電圧VAmidより大きく、電圧VBmidより小さい範囲に読出し電圧VBmを設定することができれば(VAmid<VBm<VBmid)、誤検出を抑制することができる。
このため、図29に示すように、誤検出抑制動作では、VBm<VAmid又はVBm>VBmidとなる場合、VAmid<VB(m+1)<VBmidとなるように、読出し電圧VB(m+1)をシフトさせる。
具体的には、例えば、図29(A)に示すように、VB0<VAmidの場合、読出し電圧VB1を、VB0よりも閾値電圧の増加する側にシフトさせる。これにより、以降のループ処理において、VAmid<VB(m+1)<VBmidの範囲で谷位置検出動作を行うことができ、谷位置電圧VB’を正しく検出できる。
また、例えば、図29(B)に示すように、VBm>VBmidの場合、読出し電圧VB1を、VB0よりも閾値電圧の減少する側にシフトさせる。これにより、以降のループ処理において、VAmid<VB(m+1)<VBmidの範囲で谷位置検出動作を行うことができ、谷位置電圧VB’を正しく検出できる。
図30は、第4実施形態の誤検出抑制動作を含む谷位置検出動作を説明するためのフローチャートである。図30では、図12において谷位置検出動作として示されたステップST19−1、ST20−1、及びST21−1に加えて、誤検出抑制動作としてステップST24−1、ST25−1、及びST26−1が更に実行される例が示される。
図30に示すように、m回目のループ処理のステップST19−1においてビットカウントΔBmが算出された後、ステップST24−1において、コントローラ200は、分離データBRsmがデータ“1”となるメモリセル数Bmを算出する。上述の通り、メモリセル数Bmは、閾値電圧が読出し電圧VBm未満のメモリセル数に対応する。
ステップST25−1において、コントローラ200は、メモリセル数Bmと閾値Bmin及びBmaxとの大小関係を比較する。コントローラ200は、メモリセル数Bmが閾値Bmin以下、又は閾値Bmax以上である(Bm≦Bmin又はBm≧Bmax)と判定された場合(ステップST25−1;no)、誤検出が発生する可能性があるとみなし、ステップST26−1に進む。また、コントローラ200は、メモリセル数Bmが閾値Bminより大きく閾値Bmaxより小さい(Bmin<Bm<Bmax)と判定された場合(ステップST25−1;yes)、誤検出が発生する可能性は少ないとみなし、ステップST20−1に進む。閾値Bmin及びBmaxはそれぞれ、例えば、誤検出が発生しないメモリセル数Bmの下限値及び上限値である。閾値Bmin及びBmaxの詳細については後述する。
ステップST26−1において、コントローラ200は、(m+1)回目のループ処理の際の読出し電圧VB(m+1)に対応するシフト量を設定する。具体的には、コントローラ200は、1レベル分の閾値電圧の分布範囲の半分に相当するシフト量を設定する。そして、当該シフト量が設定された後、ステップST22に進む。なお、本例におけるシフト量は一例に過ぎず、誤検知対策に用いるシフト量は任意に設定可能である。
以上で、誤検出抑制動作が終了する。
なお、上述の誤検出抑制動作は、谷位置電圧VB’の検出動作に適用される例について説明したが、その他の谷位置電圧の検出動作の際にも、同様に適用される。具体的には、例えば、中位ページのその他の谷位置電圧VD’及びVF’についてはそれぞれ、ステップST24−1において、分離データDRsm及びFRsmがデータ“1”となるメモリセル数Dm及びFmが算出される。そして、ステップST25−1において、閾値Dmin、Dmax、Fmin、及びFmaxを用いて、Dmin<Dm<Dmaxであるか否か、及びFmin<Fm<Fmaxであるか否か、が判定される。
また、第4実施形態が第3実施形態に適用される場合、上述の誤検出抑制動作は、下位ページ及び上位ページの谷位置検出動作にも適用可能である。具体的には、下位ページの谷位置電圧VA’及びVE’についてはそれぞれ、ステップST24−1において、分離データARsm及びARsmがデータ“1”となるメモリセル数Am及びEmが算出される。そして、ステップST25−1において、閾値Amin、Amax、Emin、及びEmaxを用いて、Amin<Am<Amaxであるか否か、及びEmin<Em<Emaxであるか否か、が判定される。上位ページの谷位置電圧VC’及びVG’についてはそれぞれ、ステップST24−1において、分離データCRsm及びGRsmがデータ“1”となるメモリセル数Cm及びGmが算出される。そして、ステップST25−1において、閾値Cmin、Cmax、Gmin、及びGmaxを用いて、Cmin<Cm<Cmaxであるか否か、及びGmin<Gm<Gmaxであるか否か、が判定される。
4.2 中位ページの谷位置検出動作における閾値の設定について
次に、第1実施形態〜第3実施形態において共通して実行される動作である、中位ページの谷位置検出動作において設定される閾値の詳細について説明する。図31(A)では、閾値電圧分布のうち、中位ページの谷位置検出動作において誤検出が発生しない範囲が示される。図31(B)では、図31(A)の閾値電圧分布において生成される分離データと、当該分離データがデータ“1”となるメモリセル数との関係が示される。
上述の通り、閾値電圧分布の変動に依らず、電圧VAmidから電圧VBmidまでの間に読出し電圧BRmが設定される場合、谷位置電圧VB’は正しく検出される。また、図31(A)に示すように、他の谷位置についても同様に、”C”状態の中央値の電圧VCmidから”D”状態の中央値の電圧VDmidまでの間に読出し電圧DRmが設定される場合、谷位置電圧VD’が正しく検出される。また、”E”状態の中央値の電圧VEmidから、”F”状態の中央値の電圧VFmidまでの間に読出し電圧FRmが設定される場合、谷位置電圧VF’が正しく検出される。
一方、図31(B)に示すように、分離データBRsmがデータ“1”となるメモリセル数は、電圧Vt1まで単調増加する。このため、電圧VAmidにおいて分離データBRsmがデータ“1”となるメモリセル数NAmidと、電圧VBmidにおいて分離データBRsmがデータ“1”となるメモリセル数NBmidとの大小関係は、電圧VAmidと電圧VBmidとの大小関係と1対1に対応する。つまり、メモリセル数BmがNAmid<Bm<NBmidを満たす場合、読出し電圧VBmは、VAmid<VBm<VBmidとなる。したがって、Bmin=NAmid、及びBmax=NBmidとなるように閾値Bmin及びBmaxを設定することにより、谷位置電圧VB’が誤検出されるか否かを判定することができる。
また、分離データDRsmがデータ“1”となるメモリセル数は、電圧Vt1から電圧Vt2まで単調増加する。このため、電圧VCmidにおいて分離データDRsmがデータ“1”となるメモリセル数NCmidと、電圧VDmidにおいて分離データDRsmがデータ“1”となるメモリセル数NDmidとの大小関係は、電圧VCmidと電圧VDmidとの大小関係と1対1に対応する。つまり、メモリセル数DmがNCmid<Dm<NDmidを満たす場合、読出し電圧VDmは、VCmid<VDm<VDmidとなる。したがって、Dmin=NCmid、及びDmax=NDmidとなるように閾値Dmin及びDmaxを設定することにより、谷位置電圧VD’が誤検出されるか否かを判定することができる。
また、分離データFRsmがデータ“1”となるメモリセル数は、電圧Vt2から単調増加する。このため、電圧VEmidにおいて分離データFRsmがデータ“1”となるメモリセル数NEmidと、電圧VFmidにおいて分離データFRsmがデータ“1”となるメモリセル数NFmidとの大小関係は、電圧VEmidと電圧VFmidとの大小関係と1対1に対応する。つまり、メモリセル数FmがNEmid<Fm<NFmidを満たす場合、読出し電圧VFmは、VEmid<VFm<VFmidとなる。したがって、Fmin=NEmid、及びFmax=NFmidとなるように閾値Fmin及びFmaxを設定することにより、谷位置電圧VF’が誤検出されるか否かを判定することができる。
なお、データ書込みの際、閾値電圧が全てのレベルに均等に分布するようにデータが書込まれる(ランダマイズされる)場合、1つのレベルに分布するメモリセル数(N)は、ほぼ均一になることが期待される。かかる場合、当該メモリセル数Nを基準とすると、メモリセル数NCmid及びNEmidは“0.5N”と表せ、メモリセル数NAmid、NDmid、及びNFmidは“1.5N”と表せ、メモリセル数NBmidは“2.5N”と表せる。
つまり、図32に示すように、閾値Bmin及びBmaxはそれぞれ、メモリセル数Nに対して“1.5N”及び“2.5N”となる値が設定されることが望ましい。また、閾値Dmin及びDmaxはそれぞれ、メモリセル数Nに対して“0.5N”及び“1.5N”となる値が設定されることが望ましい。また、閾値Fmin及びFmaxはそれぞれ、メモリセル数Nに対して“0.5N”及び“1.5N”となる値が設定されることが望ましい。
4.3 下位ページの谷位置検出動作における閾値の設定について
次に、第3実施形態において特に実行される動作である、下位ページの谷位置検出動作において設定される閾値の詳細について説明する。下位ページにおける閾値は、上述の中位ページにおける閾値と同様に設定可能である。
図33(A)では、閾値電圧分布のうち、下位ページの谷位置検出動作において誤検出が発生しない範囲が示される。図33(B)では、図33(A)の閾値電圧分布において生成される分離データと、当該分離データがデータ“1”となるメモリセル数との関係が示される。
図33(A)に示すように、下位ページの谷位置検出動作では、“Er”レベルの中央値の電圧VErmidから電圧VAmidまでの間に読出し電圧VAmが設定される場合、谷位置電圧VA’は正しく検出される。また、電圧VDmidから電圧VEmidまでの間に読出し電圧VEmが設定される場合、谷位置電圧VE’が正しく検出される。
一方、図33(B)に示すように、分離データARsmがデータ“1”となるメモリセル数は、電圧0から電圧Vt1まで単調増加する。このため、電圧VErmidにおいて分離データARsmがデータ“1”となるメモリセル数NErmidと、電圧VAmidにおいて分離データARsmがデータ“1”となるメモリセル数NAmidとの大小関係は、電圧VErmidと電圧VAmidとの大小関係と1対1に対応する。つまり、メモリセル数AmがNErmid<Am<NAmidを満たす場合、読出し電圧VAmは、VErmid<VAm<VAmidとなる。したがって、Amin=NErmid、及びAmax=NAmidとなるように閾値Amin及びAmaxを設定することにより、谷位置電圧VA’が誤検出されるか否かを判定することができる。
また、分離データERsmがデータ“1”となるメモリセル数は、電圧Vt1から単調増加する。このため、電圧VDmidにおいて分離データERsmがデータ“1”となるメモリセル数NDmidと、電圧VEmidにおいて分離データERsmがデータ“1”となるメモリセル数NEmidとの大小関係は、電圧VDmidと電圧VEmidとの大小関係と1対1に対応する。つまり、メモリセル数EmがNDmid<Em<NEmidを満たす場合、読出し電圧VEmは、VDmid<VEm<VEmidとなる。したがって、Emin=NDmid、及びEmax=NEmidとなるように閾値Emin及びEmaxを設定することにより、谷位置電圧VE’が誤検出されるか否かを判定することができる。
なお、NAND型フラッシュメモリ100へのデータ書込みがランダマイズされる場合、1つのレベルに分布すると考えられるメモリセル数Nを基準とすると、メモリセル数NErmidは“0.5N”と表せ、メモリセル数NAmid、及びNDmidは“1.5N”と表せ、メモリセル数NEmidは“2.5N”と表せる。
つまり、図34に示すように、閾値Amin及びAmaxはそれぞれ、メモリセル数Nに対して“0.5N”及び“1.5N”となる値が設定されることが望ましい。また、閾値Emin及びEmaxはそれぞれ、メモリセル数Nに対して“1.5N”及び“2.5N”となる値が設定されることが望ましい。
4.4 上位ページの谷位置検出動作における閾値の設定について
次に、第3実施形態において特に実行される動作である、上位ページの谷位置検出動作において設定される閾値の詳細について説明する。上位ページにおける閾値は、上述の中位及び下位ページにおける閾値と同様に設定可能である。
図35(A)では、閾値電圧分布のうち、上位ページの谷位置検出動作において誤検出が発生しない範囲が示される。図35(B)では、図35(A)の閾値電圧分布において生成される分離データと、当該分離データがデータ“1”となるメモリセル数との関係が示される。
図35(A)に示すように、上位ページの谷位置検出動作では、電圧VBmidから電圧VCmidまでの間に読出し電圧VCmが設定される場合、谷位置電圧VC’は正しく検出される。また、電圧VFmidから”G”状態の中央値の電圧VGmidまでの間に読出し電圧VGmが設定される場合、谷位置電圧VG’が正しく検出される。
一方、図35(B)に示すように、分離データCRsmがデータ“1”となるメモリセル数は、電圧0から電圧Vt2まで単調増加する。このため、電圧VBmidにおいて分離データCRsmがデータ“1”となるメモリセル数NBmidと、電圧VCmidにおいて分離データCRsmがデータ“1”となるメモリセル数NCmidとの大小関係は、電圧VBmidと電圧VCmidとの大小関係と1対1に対応する。つまり、メモリセル数CmがNBmid<Cm<NCmidを満たす場合、読出し電圧VCmは、VBmid<VCm<VCmidとなる。したがって、Cmin=NBmid、及びCmax=NCmidとなるように閾値Cmin及びCmaxを設定することにより、谷位置電圧VC’が誤検出されるか否かを判定することができる。
また、分離データGRsmがデータ“1”となるメモリセル数は、電圧Vt2から単調増加する。このため、電圧VFmidにおいて分離データGRsmがデータ“1”となるメモリセル数NFmidと、電圧VGmidにおいて分離データGRsmがデータ“1”となるメモリセル数NGmidとの大小関係は、電圧VFmidと電圧VGmidとの大小関係と1対1に対応する。つまり、メモリセル数GmがNFmid<Gm<NGmidを満たす場合、読出し電圧VGmは、VFmid<VGm<VGmidとなる。したがって、Gmin=NFmid、及びGmax=NGmidとなるように閾値Gmin及びGmaxを設定することにより、谷位置電圧VG’が誤検出されるか否かを判定することができる。
なお、NAND型フラッシュメモリ100へのデータ書込みがランダマイズされる場合、1つのレベルに分布すると考えられるメモリセル数Nを基準とすると、メモリセル数NFmidは“1.5N”と表せ、メモリセル数NBmid、及びNGmidは“2.5N”と表せ、メモリセル数NCmidは“3.5N”と表せる。
つまり、図36に示すように、閾値Cmin及びCmaxはそれぞれ、メモリセル数Nに対して“2.5N”及び“3.5N”となる値が設定されることが望ましい。また、閾値Gmin及びGmaxはそれぞれ、メモリセル数Nに対して“1.5N”及び“2.5N”となる値が設定されることが望ましい。
4.5 本実施形態に係る効果について
上記のように、本実施形態によれば、閾値分布が大幅にシフトした場合であっても、適正な範囲内でのトラッキングが可能となり、読み出し電圧の誤検知を抑制出来る。
5. 第5実施形態
次に、第5実施形態に係るメモリシステムについて説明する。第5実施形態では、Vthトラッキングによって検出及び推定されたワード線WLnに接続されたメモリセルトランジスタMTの谷位置電圧に対して、隣り合うワード線WL(n+1)に接続されたメモリセルトランジスタMTの閾値変動量からの影響(これをセル間干渉効果と呼ぶ)を考慮した補正値を適用する。なお、nは選択ワード線の番号であり、本例の場合、0〜6のいずれかとなる。なぜなら、本例の場合、1つのNANDストリングに含まれるメモリセルトランジスタ数は8個であり、最もドレイン側に位置するワード線WL7(n=7)に接続されたメモリセルトランジスタMTに関しては、上記セル間干渉効果を考慮する必要が無いからである(言い換えれば、本例に係るワード線WL7については、更にドレイン側で隣り合うWL(n+1)が存在しない)。
以下では、図37に示すように、隣り合うワード線WL(n+1)に接続されたメモリセルトランジスタMTを3つのグループGr1〜Gr3に分ける。そして、グループGr1に“Er”レベル及び“A”レベルが属し、これらではセル間干渉効果がほぼ無いものと考える。またグループGr2に“B”〜“E”レベルが属し、これらは中程度の影響があるものとする。そしてグループGr3に“F”レベル及び“G”レベルが属し、これらのセル間干渉効果が最大であるものと扱う。
5.1 フローチャートについて
次に、第5実施形態に係るVthトラッキング動作を含む動作について、図38に示すフローチャートを用いて説明する。
図38に示すように、ステップST131において、コントローラ200は、既定の読出し電圧VCGRVをワード線WLnに接続されたメモリセルトランジスタMTに対して適用したノーマルリードコマンドをNAND型フラッシュメモリ100に発行する。
ステップST132において、NAND型フラッシュメモリ100は、ワード線WLnに接続されたメモリセルトランジスタMTに対してノーマルリードを実行し、読出しデータをコントローラ200に送信する。
ステップST133において、ECC回路260は、ノーマルリードの読出しデータに基づいてECCを実行する。コントローラ200は、ノーマルリードの読出しデータがECCをパスした場合(ステップST133;パス)、ステップST140に進み、フェイルした場合、(ステップST133;フェイル)、ステップST134に進む。
ステップST134において、コントローラ200及びNAND型フラッシュメモリ100は、シフトリードを伴うVthトラッキングを実行し、谷位置電圧VCGRV’を検出する。具体的には、例えば、中位ページのデータが読出し対象の場合、谷位置電圧VB’、VD’、及びVF’が検出される。なお、シフトリードを伴うVthトラッキングは、例えば、第1実施形態〜第4実施形態において説明したMポイントVthトラッキングを含むが、これに限られない。
ステップST135において、コントローラ200は、ステップST134において検出された谷位置の谷位置電圧VCGRV’を補正するためのコマンドをNAND型フラッシュメモリ100に発行する。
ステップST136において、コントローラ200は、ワード線WL(n+1)に接続されたメモリセルトランジスタMTに対する事前読出しと、ワード線WLnに接続されたメモリセルトランジスタMTに対する本読出しと、を含む動作を指示するコマンドをNAND型フラッシュメモリ100に発行する。なお、当該本読出し動作では、ステップST134において検出された谷位置に対して、ステップST135の補正がされた谷位置に基づく読出しが実行される。
ステップST137において、NAND型フラッシュメモリ100は、ワード線WL(n+1)に接続されたメモリセルトランジスタMTに対して事前読出しを実行し、例えば、読出しデータをラッチ回路に保持する。
ステップST138において、NAND型フラッシュメモリ100は、ワード線WLnに接続されたメモリセルトランジスタMTに対して本読出しを実行する。本読出しによる読出しデータは、ステップST137において読み出された事前読出しデータに基づいて決定される。NAND型フラッシュメモリ100は、本読出しデータをコントローラ200に送信する。
ステップST139において、ECC回路260は、本読出しデータに基づいてECCを実行する。コントローラ200は、本読出しデータがECCをパスした場合(ステップST139;パス)、ステップST140に進み、フェイルした場合、(ステップST139;フェイル)、ステップST141に進む。
ステップST140において、コントローラ200は、ECCパスのステータスを取得し、動作を終了する。ステップST141において、コントローラ200は、ECC結果に基づいてデータを正しく訂正できないと判定し、動作を終了する。
以上で、Vthトラッキングを含む動作が終了する。
5.2 コマンドシーケンスについて
次に、第5実施形態の事前読出し及び本読出しを含む動作について、図39に示すコマンドシーケンスを用いて説明する。図39は、図38において示されたステップST135〜ST138に相当する。
図39に示すように、コントローラ200は、まずプリフィックスコマンド“xxh”を発行する。コマンド“xxh”は、コントローラ200がNAND型フラッシュメモリ100に対して、以後に実行される本読出しに対応するシフトリードのシフト量を設定するためのコマンドである。引き続きコントローラ200は、例えば1サイクルにわたってアドレスを発行する。その後、コントローラ200は、例えば4サイクルにわたって電圧VCGRVdefのシフト量に対応する値ΔDAC1〜ΔDAC4を発行する。DAC(D/A converter)値は、例えば、コントローラ200がNAND型フラッシュメモリ100に読出し電圧VCGRVを指定する際の指示値である。例えば、値ΔDAC1〜ΔDAC4の各々は、シフトリードにおいて選択ワード線WLに印加されるレベルの読出し電圧VCGRVdefからのシフト量Δに対応する。
NAND型フラッシュメモリ100は、シフト量Δを設定する間、信号RBnを“H”レベルにして、NAND型フラッシュメモリ100がレディ状態であることをコントローラ200に知らせる。
なお、第5実施形態では、シフト量Δは、例えば、谷位置電圧VCGRV’及び補正値ΔVCGRVを用いて、以下の式(9)に従って決定される。
Δ=(VCGRV’−VCGRVdef)+ΔVCGRV …(9)
つまり、以後の本読出しの際にワード線WLnに印加される補正後の谷位置電圧VCGRV”は、図38におけるステップST134において検出された谷位置電圧VCGRV’と、補正値ΔVCGRVとを用いて、以下の式(10)で表わされる。
VCGRV”=VCGRVdef+Δ=VCGRV’+ΔVCGRV …(10)
なお、補正値ΔVCGRVは、例えば、予め定められた値であり、例えば、図40に示すようなルックアップテーブルとしてコントローラ200内のメモリ220保持される。図40に示すように、補正値ΔVCGRVは、閾値電圧分布の状態に応じた値が設定される。具体的には、“A”状態、“B”状態、“C”状態、“D”状態、“E”状態、“F”状態、及び“G”状態のメモリセルトランジスタMTに対してそれぞれ、補正値ΔVA、ΔVB、ΔVC、ΔVD、ΔVE、ΔVF、及びΔVGが適用される。なお、補正値ΔVA〜ΔVGは、互いに独立な値が設定可能である。すなわち、補正値ΔVA〜ΔVGは、互いに等しくてもよく、異なっていてもよい。また、補正値ΔVA〜ΔVGは、“0”が設定されてもよい。すなわち、補正後の谷位置電圧VCGRV”は、補正前の谷位置電圧VCGRV’と等しくてもよく、異なっていてもよい。
図40には、VCGRV”、VCGRV’、及びΔVCGRVの関係も合わせて示している。図示するように、書き込み直後の閾値分布では、分布間の谷位置は、VA〜VGである。しかし、時間の経過と共に、閾値分布は低電圧側にシフトする傾向がある。その結果、分布間の谷位置は、VA〜VGからVA’〜VG ’にシフトする。これが上記VCGRV’である。これに加えて更にワード線WL(n+1)からのセル間干渉効果を考慮した谷位置がVA”〜VG”であり、これが上記VCGRV”である。そして、VA’〜VG ’とVA”〜VG”との差分が、補正値ΔVA〜VGである。セル間干渉効果を考慮しないVthトラッキングによって見つかる谷位置は、上記VCGRV’である。そこで本実施形態では、このVCGRV’に補正値ΔVCGRVを適用することで上記VCGRV”を得て、これを用いて再度読み出しを行い、セル間干渉効果の影響を低減しようとするものである。
図39に戻って、続くコマンドシーケンスについて説明する。コントローラ200は、NAND型フラッシュメモリ100がレディ状態になると、コマンド“yyh”を発行する。コマンド“yyh”は、読出し対象であるワード線WLnに隣り合うワード線WL(n+1)に接続されたメモリセルトランジスタMTへの事前読出しと、ワード線WLnに接続されたメモリセルトランジスタMTへの本読出しと、を実行する旨を宣言するためのコマンドである。
続けて、コントローラ200は、コマンド“zzh”を発行する。コマンド“zzh”は、変数であり、例えば“zzh”=“01h”の場合には下位ページ読出しを命令し、“zzh”=“02h”の場合には中位ページ読出しを命令し、“zzh”=“03h”の場合には上位ページ読出しを命令する。
その後は、コントローラ200は、第1読出しコマンド“00h”を発行し、引き続き例えば5サイクルにわたってアドレス(カラムアドレス、ブロックアドレス、ページアドレスを含む)を発行する。その後、コントローラ200は、第2読出しコマンド“30h”を発行する。
コマンド“30h”がコマンドレジスタ160に格納されると、シーケンサ170は、ロウデコーダ120、及びカラム制御回路140等を制御して、読出し動作を開始する。NAND型フラッシュメモリ100は、信号RBnを“L”レベルにして、NAND型フラッシュメモリ100がビジー状態であることをコントローラ200に知らせる。まず、NAND型フラッシュメモリ100は、事前読出しにおいて、ワード線WL(n+1)に接続されたメモリセルトランジスタMTから、セル間干渉効果の影響を考慮した読み出しレベル(1レベルであっても良いし、2レベル以上であっても良い)を用いてデータを読出し、ラッチ回路に保持させる。次に、NAND型フラッシュメモリ100は、本読出しにおいて、ワード線WLnに接続されたメモリセルトランジスタMTから1ページ分のデータを事前読出しの結果に基づいて読出し、ラッチ回路に保持させる。NAND型フラッシュメモリ100は、信号RBnを“H”レベルにして、NAND型フラッシュメモリ100がレディ状態であることをコントローラ200に知らせる。
コントローラ200は、NAND型フラッシュメモリ100がレディ状態になると、コマンド“05h”を発行する。コマンド“05h”は、NAND型フラッシュメモリ100において読み出しデータを保持するキャッシュメモリ等からのデータの読み出しの実行を宣言するコマンドであり、本例では、上記本読み出し結果を保持するラッチ回路からの読み出しの命令を宣言するものである。引き続きコントローラ200は、例えば5サイクルにわたってアドレスを発行する。このアドレスは5サイクルに限らず、例えばカラムアドレスのみを指定するための2サイクルであっても良い。その後、コントローラ200はコマンド“E0h”を発行する。コマンド“E0h”は、上記アドレスによって指定されるラッチ回路からのデータ出力をNAND型フラッシュメモリ100に命令するコマンドである。そしてコントローラ200は、信号REnを繰り返しアサートする。信号REnがトグルされるたびに、ラッチ回路に保持された本読出しのデータがコントローラ200へ送信される。
5.3 タイミングチャートについて
次に、第5実施形態の事前読出し及び本読出しを含む動作について、図41に示すタイミングチャートを用いて説明する。図41は、図38において示されたステップST137及びST138に相当する。
図41に示すように、時刻T21〜T23までの期間は事前読出し期間を含み、時刻T24〜T33までの期間は本読出し期間を含む。
まず、シーケンサ170は、事前読出しを行う。ロウデコーダ120は、ワード線WL(n+1)に対して、時刻T21において電圧Vpre1を印加し、時刻T22において電圧Vpre2を印加する。また、ロウデコーダ120は、ワード線WLnに対して、時刻T21からT23の間、電圧VREADを印加する。この結果、選択ストリングユニットSUにおいてワード線WL(n+1)に接続されたメモリセルトランジスタMTのデータがいずれのグループに属するかが事前読出し結果として確定する。シーケンサ170は、当該事前読出し結果をラッチ回路に保持させる。
続いて、ロウデコーダ120は、読出し動作BRの間(時刻T24からT27の間)、ワード線WLnに対して電圧VB”=VB’+ΔVBを印加する。ロウデコーダ120は、ワード線WL(n+1)に対して、時刻T24から電圧VREADを印加し、時刻T25から電圧VREADLA1を印加し、時刻T26から電圧VREADLA2を印加する。電圧VREAD、VREADLA1、及びVREADLA2は、例えば、VREAD<VREADLA1<VREADLA2である。その他の非選択ワード線WLには、電圧VREADが印加される。カラム制御回路140は、事前読出し結果がグループGr1であったカラム(ビット線BL)については、時刻T24から時刻T25の間で信号STBがアサートされるタイミングでデータを確定させる。また、事前読出し結果がグループGr2であったカラムについては、時刻T25から時刻T26の間で信号STBがアサートされるタイミングでデータを確定させる。また、事前読出し結果がグループGr3であったカラムについては、時刻T26から時刻T27の間で信号STBがアサートされるタイミングで読み出しデータを確定させる。
続いて、ロウデコーダ120は、読出し動作DRの間(時刻T27からT30の間)、ワード線WLnに対して電圧VD”=VD’+ΔVDを印加する。ロウデコーダ120は、ワード線WL(n+1)に対して、時刻T27から電圧VREADを印加し、時刻T28から電圧VREADLA1を印加し、時刻T29から電圧VREADLA2を印加する。その他の非選択ワード線WLには、電圧VREADが印加される。カラム制御回路140は、事前読出し結果がグループGr1であったカラムについては、時刻T27から時刻T28の間で信号STBがアサートされるタイミングでデータを確定させる。また、事前読出し結果がグループGr2であったカラムについては、時刻T28から時刻T29の間で信号STBがアサートされるタイミングでデータを確定させる。また、事前読出し結果がグループGr3であったカラムについては、時刻T29から時刻T30の間で信号STBがアサートされるタイミングで読み出しデータを確定させる。
続いて、ロウデコーダ120は、読出し動作FRの間(時刻T30からT33の間)、ワード線WLnに対して電圧VF”=VF’+ΔVFを印加する。ロウデコーダ120は、ワード線WL(n+1)に対して、時刻T30から電圧VREADを印加し、時刻T31から電圧VREADLA1を印加し、時刻T32から電圧VREADLA2を印加する。その他の非選択ワード線WLには、電圧VREADが印加される。カラム制御回路140は、事前読出し結果がグループGr1であったカラムについては、時刻T30から時刻T31の間で信号STBがアサートされるタイミングでデータを確定させる。また、事前読出し結果がグループGr2であったカラムについては、時刻T31から時刻T32の間で信号STBがアサートされるタイミングでデータを確定させる。また、事前読出し結果がグループGr3であったカラムについては、時刻T32から時刻T33の間で信号STBがアサートされるタイミングで読み出しデータを確定させる。
以上により、事前読出し及び本読出しを含む動作が終了する。
5.4 本実施形態に係る効果について
メモリセルトランジスタMTの閾値は、隣り合うメモリセルトランジスタMTの閾値変動量の影響によって変動する場合がある(セル間干渉効果)。そこで本実施形態では、事前読み出しにより隣り合うワード線WL(n+1)のデータを読み出し、この結果に基づく本読み出しによって読み出しデータを確定させる。従って、セル間干渉効果の影響を抑制し、読み出し精度を向上出来る。但し、セル間干渉効果を考慮せずにVthトラッキングを行った場合に見つかった谷位置は、セル間干渉効果を考慮してデータを読み出した場合の谷位置とずれる場合があり得る。そこで本実施形態では、このずれ量を、予め用意された補正値ΔVによって補正している。このようにして、最適な谷位置を用いてセル間干渉効果を考慮したデータの読み出しを行うことで、高精度なデータの読み出しが可能となる。
5.5 変形例について
上述の第5実施形態は、Vthトラッキングによって検出された谷位置電圧VCGRV’に対して、セル間干渉効果の影響を考慮した場合に生じる谷位置のずれ分を補正値ΔVとして適用する場合について説明したが、これに限られない。例えば、Vthトラッキングの際に実行されるシフトリードに対してセル間干渉効果の影響を考慮することにより、上述の補正値ΔVに相当する補正が考慮された谷位置電圧VCGRV”が検出されるようにしてもよい。以下では、第5実施形態と同一の部分については説明を省略し、第5実施形態と異なる部分について説明する。
5.5.1 フローチャートについて
まず、第5実施形態の変形例に係るVthトラッキング動作を含む動作について、図42に示すフローチャートを用いて説明する。図42は、図38に対応する。
図42に示すように、ステップST151〜ST153は、図38において示したステップST131〜ST133と同等であるため、その説明を省略する。
ステップST154において、コントローラ200は、ワード線WL(n+1)に接続されたメモリセルトランジスタMTに対する事前読出しを含む動作を指示するコマンドをNAND型フラッシュメモリ100に発行する。
ステップST155において、NAND型フラッシュメモリ100は、ワード線WL(n+1)に接続されたメモリセルトランジスタMTに対して事前読出しを実行し、読出しデータをラッチ回路に保持する。
ステップST156において、コントローラ200及びNAND型フラッシュメモリ100は、シフトリードを伴うVthトラッキングを実行し、谷位置を検出する。ここで、ステップST156におけるシフトリードは、ステップST155における事前読出しの結果に基づく本読出しに対応する。このため、コントローラ200は、Vthトラッキングの結果、図38のステップST134において検出される谷位置電圧VCGRV’と異なり得る谷位置電圧VCGRV”を検出する。具体的には、例えば、中位ページのデータが読出し対象の場合、谷位置電圧VB”、VD”、及びVF”が検出される。
ステップST157において、コントローラ200は、ワード線WLnに接続されたメモリセルトランジスタMTに対する本読出しを含む動作を指示するコマンドをNAND型フラッシュメモリ100に発行する。なお、当該本読出し動作では、ステップST156において検出された谷位置に基づく読出しが実行される。
ステップST158において、NAND型フラッシュメモリ100は、ワード線WLnに接続されたメモリセルトランジスタMTに対して本読出しを実行する。本読出しによる読出しデータは、ステップST155において読み出された事前読出しデータに基づいて決定される。NAND型フラッシュメモリ100は、本読出しデータをコントローラ200に送信する。
ステップST159〜ST161は、図38において示したステップST139〜ST141と同等であるため、その説明を省略する。
以上で、Vthトラッキングを含む動作が終了する。
5.5.2 コマンドシーケンスについて
次に、第5実施形態の変形例の事前読出し及び本読出しを含む動作について、図43に示すコマンドシーケンスを用いて説明する。図43(A)は、図42において示されたステップST155に相当し、図43(B)は、ステップST156及びST157の各々に共通するシーケンスである。
図43(A)に示すように、コントローラ200は、事前読出し動作を実行するために、コマンド“yyh”及び“zzh”を続けて発行する。そして、コントローラ200は、第1読出しコマンド“00h”を発行し、引き続き例えば5サイクルにわたってアドレス(カラムアドレス、ブロックアドレス、ページアドレスを含む)を発行した後、第2読出しコマンド“30h”を発行する。
コマンド“30h”がコマンドレジスタ160に格納されると、シーケンサ170は、ロウデコーダ120、及びカラム制御回路140等を制御して、読出し動作を開始する。NAND型フラッシュメモリ100は、信号RBnを“L”レベルにして、NAND型フラッシュメモリ100がビジー状態であることをコントローラ200に知らせる。まず、NAND型フラッシュメモリ100は、事前読出しにおいて、ワード線WL(n+1)に接続されたメモリセルトランジスタMTから、セル間干渉効果の影響を考慮した読み出しレベルを用いてデータを読出し、ラッチ回路に保持させる。次に、NAND型フラッシュメモリ100は、本読出しにおいて、ワード線WLnに接続されたメモリセルトランジスタMTから1ページ分のデータを事前読出しの結果に基づいて読出す。しかしながら、以後の動作では、事前読出しデータが保持されていればよく、本読出しデータは不要である。このため、当該動作において読み出された本読出しデータは、破棄してもよい。NAND型フラッシュメモリ100は、信号RBnを“H”レベルにして、NAND型フラッシュメモリ100がレディ状態であることをコントローラ200に知らせる。
以上で、事前読出し動作が終了する。
図43(B)に示すように、コントローラ200は、本読出し動作を実行するために、プリフィックスコマンド“xxh”を発行し、引き続き1サイクルにわたってアドレスを発行する。その後、コントローラ200は、例えば4サイクルにわたって電圧VCGRVdefのシフト量に対応する値ΔDAC1〜ΔDAC4を発行し、シフト量Δを設定する。NAND型フラッシュメモリ100は、シフト量ΔVを設定する間、信号RBnを“H”レベルにして、NAND型フラッシュメモリ100がレディ状態であることをコントローラ200に知らせる。
なお、シフト量Δは、ステップST156におけるシフトリードと、ステップST157におけるシフトリードとで異なる。例えば、ステップST156におけるシフトリードでは、シフト量Δは、m回目のループ処理における読出し電圧VCGRVmを用いて、以下の式(11)に従って決定される。
Δ=(VCGRVm−VCGRVdef) …(11)
また、例えば、ステップST157におけるシフトリードでは、シフト量Δは、ステップST156において検出された谷位置電圧VCGRV”を用いて、以下の式(12)に従って決定される。
Δ=(VCGRV”−VCGRVdef) …(12)
コントローラ200は、NAND型フラッシュメモリ100がレディ状態になると、プリフィックスコマンド“vvh”を発行する。コマンド“vvh”は、新たに事前読出しを行わずに、データラッチ内に保存されている事前読み出しデータに基づいて本読出しを実行する旨を宣言するためのコマンドである。
続けて、コントローラ200は、コマンド“zzh”、及び第1読出しコマンド“00h”を続けて発行する。コントローラ200は、引き続き例えば5サイクルにわたってアドレス(カラムアドレス、ブロックアドレス、ページアドレスを含む)を発行する。その後、コントローラ200は、第2読出しコマンド“30h”を発行する。
コマンド“30h”がコマンドレジスタ160に格納されると、シーケンサ170は、ロウデコーダ120、及びカラム制御回路140等を制御して、読出し動作を開始する。NAND型フラッシュメモリ100は、信号RBnを“L”レベルにして、NAND型フラッシュメモリ100がビジー状態であることをコントローラ200に知らせる。NAND型フラッシュメモリ100は、本読出しにおいて、ワード線WLnに接続されたメモリセルトランジスタMTから1ページ分のデータを事前読出しの結果に基づいて読出し、ラッチ回路に保持させる。NAND型フラッシュメモリ100は、信号RBnを“H”レベルにして、NAND型フラッシュメモリ100がレディ状態であることをコントローラ200に知らせる。
その後は、図39で説明したようにコントローラ200はコマンド“05h”、アドレス、及びコマンドE0h“を発行した後、信号REnを繰り返しアサートする。信号REnがトグルされるたびに、ラッチ回路に保持された本読出しのデータがコントローラ200へ送信される。
5.5.3 タイミングチャートについて
次に、第5実施形態の変形例の事前読出し及び本読出しを含む動作について、図44及び図45に示すタイミングチャートを用いて説明する。図44は、図42において示されたステップST155及びST156に相当し、図45は、ステップST158に相当する。なお、図44では、事前読出し期間に形式的に実行される本読出し動作については省略されている。
図示するように、本例ではVthトラッキングを行う際にもセル間干渉効果の影響を考慮した読み出し動作が行われる。すなわち図44において、時刻T41〜T43の期間において事前読み出しが行われ、時刻T44−0〜T47−0までの本読み出しの期間では、選択ワード線WLに電圧VB0、VD0、VF0が印加される3期間において、ワード線WL(n+1)の電圧がVREAD、VREADLA1、及びVREADLA2の3段階にステップアップされる。このように、ワード線WL(n+1)の電圧をステップアップさせた読み出し動作を繰り返すことによって、谷位置を探索する。この結果見つかる谷位置は、図40で説明した電圧VCGRV”である。
従って図45に示すようにステップST158の読み出し動作では、図44のトラッキングで見つかった電圧VB”、電圧VD”、及び電圧VF”を用いてデータが読み出される。もちろん、ワード線WL(n+1)には電圧VREAD、VREADLA1、及びVREADLA2が順次印加される。
上記のように、谷位置を精度良く探索するという点では、本例のように谷位置検出のためのVthトラッキング動作において、セル間干渉効果を考慮することが望ましい。しかし、読み出し動作全体の速度の観点からは、図38で説明したように補正値を用いた方が好ましい場合もあり得る。なお本例のVthトラッキングにおいては、先読み動作と本読み動作の両方を繰り返しても良い。つまり、m=0において先読み動作と本読み動作とが実行され、m=1において先読み動作と、読み出し電圧をシフトさせた本読み動作とが実行され、m=2において先読み動作と、読み出し電圧を更にシフトさせた本読み動作とが実行され、以下同様である。しかし、上記図44で説明したように、最初の一番初めの読み出し時のみ、つまりm=0においてのみ先読み動作と本読み動作との組み合わせを実行し、m=1以降は、m=0での先読み動作結果を流用して、先読み動作自体は行わなくても良い。本方法によれば、1度のVthトラッキング動作において先読み動作は1回で良く、読み出し動作の速度を向上出来る。但し、m=0で得られた先読み結果は、その後もリセットされずに、Vthトラッキングを実行している期間、いずれかのラッチ回路に保持しておく必要がある。
6.その他の変形例等
以上のように、上記実施形態に係るメモリシステムは、第1ワード線に結合され、データを保持可能な第1メモリセルを含む半導体メモリと、第1命令と第2命令とを発行可能なコントローラとを備える。第1メモリセルの保持可能なデータは、第1ビットと第2ビットとを含む多ビットデータである。半導体メモリは、第1命令を受信した際には、第1ワード線に第1範囲内の電圧(ex. BR in FIG5)及び第2範囲内の電圧(ex. DR in FIG5)を印加して第1メモリセルから第1ビット(ex. middle bit in FIG5)を読み出す。また第2命令を受信した際には、第1ワード線に第3範囲内の電圧(ex. CR in FIG5)を印加して第1メモリセルから前記第2ビット(ex. upper bit in FIG5)を読み出す。コントローラは、第1命令を複数回発行し、且つ複数回の第1命令に応じて、第1ワード線に印加される電圧を第1範囲内及び第2範囲内でそれぞれ変化させる(Vth tracking in FIG16)。また、複数回の第1命令の度に第1メモリセルから読み出された前記第1ビットに基づき、第1範囲内において第1電圧を特定し、第2範囲内において第2電圧を特定する(Vth cross point)。更に、少なくとも第1電圧(ex. VB, VD, or VF in FIG10)に基づいて、第3範囲内において第3電圧(ex. VA, VC, VE, or VG in FIG10)を推定する。そして、第2命令が発行された際に第2ビットを読み出すために第1ワード線に印加される電圧は、推定された第3電圧である(ST54, ST58 in FIG18)。
また、一実施形態によれば、ページ単位でデータを読み出し可能な半導体メモリと、第1命令及び第2命令を発行可能なコントローラと備える。半導体メモリは、第1ワード線と、第1ワード線に接続された第1メモリセルとを備え、第1ワード線には、少なくとも第1ページ(middle page)及び第2ページ(upper or lower page)が関連付けられている。第1命令を受信した際に半導体メモリは、第1ワード線に3ステップの電圧(VB, VD, VF in FIG16)を印加して第1ページ(middle page)を読み出す第1読み出し動作を、該第1ページ(middle page)を対象に少なくとも4回実行する(4-point Vth tracking)。そして、4回の読み出し動作(m=0-3 in FIG16)において、3ステップの電圧(VB, VD, VF in FIG16)が変動され、該3ステップの電圧(VB, VD, VF in FIG16)の変動の上下の仕方が互いに異なる(VB, VD, VF in FIG16)。
上記3ステップの電圧(VB, VD, VF in FIG16)のいずれかは、前記4回の読み出し動作の間、単調減少し、または単調増加し、またはいずれかのタイミングで、減少から増加、または増加から減少に変化する。
実施形態は、上述の第1実施形態〜第5実施形態で述べた形態に限らず、種々の変形が可能である。上述の第1実施形態〜第5実施形態では、NAND型フラッシュメモリ100において分離データを演算し、コントローラ200においてビットカウントを算出するようにしているが、これに限られない。例えば、分離データは、コントローラ200において演算されてもよいし、ビットカウントは、NAND型フラッシュメモリ100において算出されてもよい。このように、NAND型フラッシュメモリ100は、テストリード結果やシフトリード結果等を全てコントローラ200へ送信し、コントローラ200において分離データの演算やビットカウント算出及び谷位置検出等の演算を行っても良い。つまり、NAND型フラッシュメモリ100はコントローラ200の要求に応じてメモセルアレイからデータを読み出し、読み出されたデータを用いた種々の演算はコントローラ200で行っても良い。
更に上記第5実施形態では、セル間干渉効果として、ワード線WL(n+1)のみからの影響を考慮する場合について説明した。しかし、ワード線WL(n−1)からのセル間干渉効果を考慮しても良い。通常、データはソース側から順番に書き込まれる。つまり、ワード線WLnにデータを書き込む際には、既にワード線WL(n−1)へのデータの書き込みが行われている。従って、ワード線WLnにデータを書き込むことで、ワード線WL(n−1)からのセル間干渉効果による閾値変動は無視出来る。しかし、ワード線WLnへの書き込みデータが“Er”レベルであった場合、つまり、メモリセルトランジスタMTの電荷蓄積層への電子の注入が禁止されて、閾値電圧が消去レベルを維持する場合には、ワード線WL(n−1)へのデータの書き込み時に受けたセル間干渉効果の影響が残っている。つまり、特に“Er”レベルを保持するメモリセルトランジスタMTについては、ワード線WL(n−1)からのセル間干渉効果の影響を考慮することが望ましい。この場合には、上記実施形態で説明した事前読み出しにおいて、ワード線WL(n+1)とは別に、ワード線WL(n−1)からもデータを読み出す。そして本読み出し時には、ワード線(n+1)だけでなくワード線WL(n−1)にも適切な電圧VREADLAを印加し、非選択ワード線WL(n−1)及び(n+1)のデータの組み合わせに応じて適切なタイミングでストローブされたデータを採用する。なお、ワード線WLnが“Er”レベルの場合のみを考慮するならば、上記動作は読み出し動作ARにおいてのみ行えばよく、その他の読み出し動作はワード線WL(n+1)のみからのセル間干渉効果を考慮すれば良い。しかし、その他の読み出し動作でも、ワード線WL(n−1)からのセル間干渉効果を合わせて考慮しても良い。
また、上述の各実施形態では、1つのメモリセルトランジスタMTあたり3ビットを保持可能な場合(TLC:Triple Level Cell)について説明したが、これに限られない。例えば、メモリセルトランジスタMTは、2ビットを保持可能(MLC:Multi Level Cell)でもよく、4ビット以上を保持可能でもよい。
その他、各実施形態及び各変形例において、以下の事項が適用されることが可能である。
多値レベルの読み出し動作(リード)において、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.75V〜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.7V、及び3.7V〜4.0Vのいずれかの間にしてもよい。
読み出し動作の時間(tR)としては、例えば25μs〜38μs、38μs〜70μs、及び70μs〜80μsのいずれかの間にしてもよい。
書き込み動作は、プログラム動作及びベリファイ動作を含む。書き込み動作では、プログラム動作時に選択されたワード線に最初に印加される電圧は、例えば13.7V〜14.3Vの間である。これに限定されることなく、例えば13.7V〜14.0V、及び14.0V〜14.7Vのいずれかの間としてもよい。
奇数番目のワード線を書き込む際の、選択されたワード線に最初に印加される電圧と、偶数番目のワード線を書き込む際の、選択されたワード線に最初に印加される電圧とを変えてもよい。
プログラム動作をISPP(Incremental Step Pulse Program)方式としたとき、ステップアップの電圧として、例えば0.5V程度が挙げられる。
非選択のワード線に印加される電圧としては、例えば7.0V〜7.3Vの間としてもよい。この場合に限定されることなく、例えば7.3V〜8.4Vの間としてもよく、7.0V以下としてもよい。
非選択のワード線が奇数番目のワード線であるか、又は偶数番目のワード線であるかによって印加するパス電圧を変えてもよい。
書き込み動作の時間(tProg)としては、例えば1700μs〜1800μs、1800μs〜1900μs、及び1900μs〜2000μsのいずれかの間にしてもよい。
消去動作では、半導体基板上部に形成され、かつ、メモリセルが上方に配置されたウェルに最初に印加する電圧は、例えば12V〜13.7Vの間である。この場合に限定されることなく、例えば13.7V〜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〜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…メモリシステム、100…NAND型フラッシュメモリ、110…メモリセルアレイ、120…ロウデコーダ、130…ドライバ、140…カラム制御回路、150…アドレスレジスタ、160…コマンドレジスタ、170…シーケンサ、200…コントローラ、210…ホストインターフェース回路、220…メモリ、230…プロセッサ、240…バッファメモリ、250…NANDインターフェース回路、260…ECC回路、300…ホスト機器。

Claims (14)

  1. 第1ワード線に結合され、データを保持可能な第1メモリセルを含む半導体メモリと、
    第1命令と第2命令とを発行可能なコントローラと
    を具備し、前記第1メモリセルの保持可能な前記データは、第1ビットと第2ビットとを含む多ビットデータであり、
    前記半導体メモリは、
    前記第1命令を受信した際には、前記第1ワード線に第1範囲内の電圧及び第2範囲内の電圧を印加して前記第1メモリセルから前記第1ビットを読み出し、
    前記第2命令を受信した際には、前記第1ワード線に第3範囲内の電圧を印加して前記第1メモリセルから前記第2ビットを読み出し、
    前記コントローラは、
    前記第1命令を複数回発行し、且つ前記複数回の前記第1命令に応じて、第1ワード線に印加される電圧を前記第1範囲内及び第2範囲内でそれぞれ変化させ、
    前記複数回の前記第1命令の度に前記第1メモリセルから読み出された前記第1ビットに基づき、前記第1範囲内において第1電圧を特定し、前記第2範囲内において第2電圧を特定し、
    少なくとも前記第1電圧に基づいて、前記第3範囲内において第3電圧を推定し、
    前記第2命令が発行された際に前記第2ビットを読み出すために前記第1ワード線に印加される電圧は、前記推定された第3電圧である、メモリシステム。
  2. 前記コントローラは、前記第1範囲内の第4電圧と、前記第1電圧との差に基づき、前記第3電圧を推定する、請求項1記載のメモリシステム。
  3. 前記コントローラは、前記第1電圧と、前記第2電圧との差に基づき、前記第3電圧を推定する、請求項1記載のメモリシステム。
  4. 前記第3電圧は、前記第1電圧と、前記第2電圧との中間電圧を含む、請求項3記載のメモリシステム。
  5. 前記コントローラは、前記第1及び第2命令と異なる第3命令を発行可能であり、
    前記半導体メモリは、前記第3命令を受信した際に、前記第1範囲と前記第2範囲との間の電圧を印加して、前記第1メモリセルから第3ビットを読み出し、
    前記コントローラは、前記複数回にわたって読み出された前記第1ビットの各々と前記第3ビットとに基づいて生成された第1ビットカウントに基づいて、前記第1電圧を特定する、請求項1記載のメモリシステム。
  6. 前記半導体メモリは、
    第2ワード線に結合され、前記第1メモリセルに隣り合い、データを保持可能な第2メモリセルを更に含み、
    前記第2命令を受信した際に、前記第1ワード線に前記第3電圧が印加されている期間、前記第2ワード線に前記第1乃至第3電圧と異なる第4電圧と第5電圧を順次印加する、
    請求項1記載のメモリシステム。
  7. 前記第3電圧は、前記第1電圧に基づいて推定された値と、予め定められた補正値とに基づいて得られる、請求項6記載のメモリシステム。
  8. 前記半導体メモリは、
    第2ワード線に結合され、前記第1メモリセルに隣り合い、データを保持可能な第2メモリセルを更に含み、
    前記第1命令を受信した際に、前記第1ワード線に前記第1範囲内の電圧が印加されている期間、前記第2ワード線には前記第1乃至第3電圧と異なる第4電圧と第5電圧を順次印加する、
    請求項1記載のメモリシステム。
  9. 前記半導体メモリは、前記第2ワード線に前記第4電圧と第5電圧とが印加されている期間にそれぞれデータをストローブする、請求項6乃至8いずれか1項記載のメモリシステム。
  10. ページ単位でデータを読み出し可能な半導体メモリと、
    第1命令及び第2命令を発行可能なコントローラと
    を具備し、前記半導体メモリは、第1ワード線と、前記第1ワード線に接続された第1メモリセルとを備え、前記第1ワード線には、少なくとも第1ページ及び第2ページが関連付けられており、
    前記第1命令を受信した際に前記半導体メモリは、
    前記第1ワード線に3ステップの電圧を印加して前記第1ページを読み出す第1読み出し動作を、該第1ページを対象に少なくとも4回実行し、
    前記4回の読み出し動作において、前記3ステップの電圧が変動され、該3ステップの電圧の変動の上下の仕方が互いに異なる、メモリシステム。
  11. 前記3ステップの電圧のいずれかは、前記4回の読み出し動作の間、単調減少する、請求項10記載のメモリシステム。
  12. 前記前記3ステップの電圧のいずれかは、前記4回の読み出し動作の間、単調増加する、請求項10または11記載のメモリシステム。
  13. 前記前記3ステップの電圧のいずれかは、前記4回の読み出し動作の間、いずれかのタイミングで、減少から増加、または増加から減少に変化する、請求項10乃至12いずれか1項記載のメモリシステム。
  14. 前記第2命令を受信した際に前記半導体メモリは、
    前記第1ワード線に少なくとも第1電圧及び第2電圧を順次印加して前記第2ページを読み出す第2読み出し動作を実行し、
    前記第1電圧及び第2電圧は、前記第1命令に基づく前記第1ページの読み出し結果に基づいて推測される、請求項10乃至13いずれか1項記載のメモリシステム。
JP2017060481A 2017-03-27 2017-03-27 メモリシステム Pending JP2018163724A (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2017060481A JP2018163724A (ja) 2017-03-27 2017-03-27 メモリシステム
US15/698,141 US10325664B2 (en) 2017-03-27 2017-09-07 Multi-bit memory system with adaptive read voltage controller
US16/397,241 US11017863B2 (en) 2017-03-27 2019-04-29 Multi-bit memory system with adaptive read voltage controller
US17/126,649 US11367489B2 (en) 2017-03-27 2020-12-18 Multi-bit memory system with adaptive read voltage controller
US17/743,998 US20220270687A1 (en) 2017-03-27 2022-05-13 Multi-bit memory system with adaptive read voltage controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017060481A JP2018163724A (ja) 2017-03-27 2017-03-27 メモリシステム

Publications (1)

Publication Number Publication Date
JP2018163724A true JP2018163724A (ja) 2018-10-18

Family

ID=63582875

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017060481A Pending JP2018163724A (ja) 2017-03-27 2017-03-27 メモリシステム

Country Status (2)

Country Link
US (4) US10325664B2 (ja)
JP (1) JP2018163724A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020047339A (ja) * 2018-09-18 2020-03-26 キオクシア株式会社 メモリシステム
US11211138B2 (en) 2019-09-19 2021-12-28 Kioxia Corporation Memory system
US12300328B2 (en) 2022-06-10 2025-05-13 Kioxia Corporation Memory system and method for controlling semiconductor memory

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11532441B2 (en) * 2017-06-30 2022-12-20 KYOCERA AVX Components Corporation Electrode assembly for an ultracapacitor
US11139035B2 (en) * 2018-12-28 2021-10-05 Micron Technology, Inc. Memory device error detection with improved scanning
JP2021086645A (ja) * 2019-11-26 2021-06-03 キオクシア株式会社 半導体記憶装置
US11355203B2 (en) * 2020-08-07 2022-06-07 Micron Technology, Inc. Determine optimized read voltage via identification of distribution shape of signal and noise characteristics
KR20240097983A (ko) * 2020-08-27 2024-06-27 양쯔 메모리 테크놀로지스 씨오., 엘티디. Nand 플래시 메모리 디바이스의 비파괴 모드 캐시 프로그래밍
KR20220037618A (ko) 2020-09-18 2022-03-25 삼성전자주식회사 시간 분할 샘플링 페이지 버퍼를 이용하여 읽기 동작을 수행하는 스토리지 장치
US11487446B2 (en) 2020-12-03 2022-11-01 Western Digital Technologies, Inc. Overhead reduction in data transfer protocol for NAND memory
US11586384B2 (en) 2021-02-16 2023-02-21 Western Digital Technologies, Inc. Overhead reduction in data transfer protocol for data storage devices
US11756630B2 (en) 2021-08-12 2023-09-12 Western Digital Technologies, Inc. Obtaining threshold voltage measurements for memory cells based on a user read mode
US11663074B1 (en) * 2021-11-17 2023-05-30 Macronix International Co., Ltd. Determining read voltages for memory systems
JP7757180B2 (ja) * 2021-12-24 2025-10-21 キオクシア株式会社 メモリデバイス
US11966277B2 (en) * 2022-01-25 2024-04-23 Dell Products L.P. Storage error identification/reduction system
JP2023130092A (ja) * 2022-03-07 2023-09-20 キオクシア株式会社 積層型3次元半導体メモリ
KR20240109126A (ko) 2023-01-03 2024-07-10 삼성전자주식회사 메모리 장치 및 이의 동작 방법
US11845000B1 (en) 2023-08-08 2023-12-19 Charles M. Curley Card handling apparatus for sustaining casino play rate
US12194371B1 (en) 2023-08-08 2025-01-14 Charles M. Curley Card handling apparatus with faulty deck rejection
WO2025175484A1 (zh) * 2024-02-20 2025-08-28 长江存储科技有限责任公司 存储器装置、存储器系统、存储器控制器及操作方法
CN121219778A (zh) * 2024-02-20 2025-12-26 长江存储科技有限责任公司 存储器装置、存储器系统、存储器控制器及操作方法

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3905990B2 (ja) * 1998-12-25 2007-04-18 株式会社東芝 記憶装置とその記憶方法
JP5142692B2 (ja) 2007-12-11 2013-02-13 株式会社東芝 不揮発性半導体記憶装置
JP2009238874A (ja) 2008-03-26 2009-10-15 Toshiba Corp 半導体メモリ及びその製造方法
JP5283960B2 (ja) 2008-04-23 2013-09-04 株式会社東芝 三次元積層不揮発性半導体メモリ
JP2009266944A (ja) 2008-04-23 2009-11-12 Toshiba Corp 三次元積層不揮発性半導体メモリ
TWI368314B (en) 2008-04-25 2012-07-11 Nanya Technology Corp Recess channel transistor
JP2010199235A (ja) 2009-02-24 2010-09-09 Toshiba Corp 不揮発性半導体記憶装置
JP5361603B2 (ja) 2009-08-13 2013-12-04 株式会社東芝 コントローラ
JP2012069205A (ja) 2010-09-22 2012-04-05 Toshiba Corp 不揮発性半導体記憶装置
US8982586B2 (en) 2010-12-23 2015-03-17 Caterpillar Inc. Method for regulating temperature of transistor-based component
US8498152B2 (en) * 2010-12-23 2013-07-30 Sandisk Il Ltd. Non-volatile memory and methods with soft-bit reads while reading hard bits with compensation for coupling
JP2012252740A (ja) 2011-06-02 2012-12-20 Toshiba Corp 不揮発性半導体記憶装置
JP2013012267A (ja) 2011-06-29 2013-01-17 Toshiba Corp 不揮発性半導体記憶装置
JP2013080450A (ja) 2011-09-22 2013-05-02 Toshiba Corp メモリ装置
JP2013122804A (ja) 2011-12-12 2013-06-20 Toshiba Corp 半導体記憶装置
US9239751B1 (en) * 2012-12-27 2016-01-19 Sandisk Enterprise Ip Llc Compressing data from multiple reads for error control management in memory systems
JP2014225310A (ja) 2013-05-16 2014-12-04 株式会社東芝 不揮発性半導体記憶装置
US9728263B2 (en) * 2013-05-31 2017-08-08 Sandisk Technologies Llc Method and device for iteratively updating read voltages
US20150085571A1 (en) * 2013-09-24 2015-03-26 Sandisk Technologies Inc. Updating read voltages
JP2016062623A (ja) 2014-09-16 2016-04-25 株式会社東芝 半導体記憶装置
US9576665B2 (en) * 2015-03-12 2017-02-21 Kabushiki Kaisha Toshiba Semiconductor memory device and memory system
US9548127B1 (en) * 2015-12-28 2017-01-17 Kabushiki Kaisha Toshiba Memory system

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020047339A (ja) * 2018-09-18 2020-03-26 キオクシア株式会社 メモリシステム
US11211138B2 (en) 2019-09-19 2021-12-28 Kioxia Corporation Memory system
US12300328B2 (en) 2022-06-10 2025-05-13 Kioxia Corporation Memory system and method for controlling semiconductor memory

Also Published As

Publication number Publication date
US20190259459A1 (en) 2019-08-22
US11367489B2 (en) 2022-06-21
US20180277226A1 (en) 2018-09-27
US10325664B2 (en) 2019-06-18
US11017863B2 (en) 2021-05-25
US20220270687A1 (en) 2022-08-25
US20210104282A1 (en) 2021-04-08

Similar Documents

Publication Publication Date Title
JP2018163724A (ja) メモリシステム
US11875063B2 (en) Memory system
JP6783666B2 (ja) 半導体記憶装置及びメモリシステム
US20230282276A1 (en) Semiconductor memory device and memory system
US11742031B2 (en) Memory system including the semiconductor memory and a controller
US20240274217A1 (en) Semiconductor memory device, controller, memory system and method of operating the same
JP2020009511A (ja) メモリシステム及び不揮発性半導体メモリ
US10310942B2 (en) Memory system
JP2018156696A (ja) 半導体記憶装置及びメモリシステム
US9548127B1 (en) Memory system
US10297338B2 (en) Memory system
JP2019040655A (ja) メモリシステム
US10510417B2 (en) Semiconductor memory device and memory system
JP2023137685A (ja) メモリシステム

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20170525

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20180831