JP2020038738A - 不揮発性メモリ及びメモリシステム - Google Patents

不揮発性メモリ及びメモリシステム Download PDF

Info

Publication number
JP2020038738A
JP2020038738A JP2018164450A JP2018164450A JP2020038738A JP 2020038738 A JP2020038738 A JP 2020038738A JP 2018164450 A JP2018164450 A JP 2018164450A JP 2018164450 A JP2018164450 A JP 2018164450A JP 2020038738 A JP2020038738 A JP 2020038738A
Authority
JP
Japan
Prior art keywords
memory
state
voltage
memory cell
data
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
JP2018164450A
Other languages
English (en)
Inventor
理気 鈴木
Riki Suzuki
理気 鈴木
白川 政信
Masanobu Shirakawa
政信 白川
小島 慶久
Yoshihisa Kojima
慶久 小島
万里江 高田
Marie Takada
万里江 高田
司 徳冨
Tsukasa Tokutomi
司 徳冨
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
Kioxia 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 Kioxia Corp filed Critical Kioxia Corp
Priority to JP2018164450A priority Critical patent/JP2020038738A/ja
Priority to US16/429,588 priority patent/US10796776B2/en
Publication of JP2020038738A publication Critical patent/JP2020038738A/ja
Priority to US17/007,596 priority patent/US11004523B2/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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3431Circuits or methods to detect disturbed nonvolatile memory cells, e.g. which still read as programmed but with threshold less than the program verify threshold or read as erased but with threshold greater than the erase verify threshold, and to reverse the disturbance via a refreshing programming or erasing step
    • 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/08Address circuits; Decoders; Word-line control circuits
    • 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
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/30Power supply circuits
    • 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/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
    • 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
    • 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
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/06Sense amplifiers; Associated circuits, e.g. timing or triggering circuits
    • G11C7/08Control thereof
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/106Data output latches
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1063Control signal output circuits, e.g. status or busy flags, feedback command signals
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1087Data input latches
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/109Control signal input 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/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Abstract

【課題】レイテンシの増加を抑制できるメモリシステムを提供する。【解決手段】一実施形態の不揮発性メモリは、各々が複数のメモリセルを含む複数のグループを含むメモリセルアレイと、第1コマンドセットを受けると、第1リフレッシュ処理を実行するよう構成された制御回路と、を備える。第1リフレッシュ処理は、複数のグループのうちの第1グループにおける書込み済みの複数の第1メモリセルのうち、少なくとも1つの第2メモリセルを上書きすることを含む。制御回路は、第1リフレッシュ処理において、第2メモリセルが第1状態に属する第1電圧を使用して書込まれた場合、第1補正量を使用して複数の第1メモリセルから第2メモリセルを特定し、第2メモリセルが第2状態に属する第2電圧を使用して書込まれた場合、第2補正量を使用して複数の第1メモリセルから第2メモリセルを特定するように構成される。【選択図】図22

Description

実施形態は、不揮発性メモリ及びメモリシステムに関する。
不揮発性メモリとしてのNANDフラッシュメモリと、当該NANDフラッシュメモリを制御するメモリコントローラと、を備えるメモリシステムが知られている。
米国特許出願公開第2010/157671号明細書 国際公開第2016/84497号 米国特許出願公開第2014/59396号明細書 米国特許第9502129号明細書
レイテンシの増加を抑制できるメモリシステムを提供する。
実施形態の不揮発性メモリは、各々が複数のメモリセルを含む複数のグループを含むメモリセルアレイと、第1コマンドセットを受けると、第1リフレッシュ処理を実行するよう構成された制御回路と、を備える。上記第1リフレッシュ処理は、上記複数のグループのうちの第1グループにおける書込み済みの複数の第1メモリセルのうち、少なくとも1つの第2メモリセルを上書きすることを含む。上記制御回路は、上記第1リフレッシュ処理において、上記第2メモリセルが第1状態に属する第1電圧を使用して書込まれた場合、第1補正量を使用して上記複数の第1メモリセルから上記第2メモリセルを特定し、上記第2メモリセルが第2状態に属する第2電圧を使用して書込まれた場合、第2補正量を使用して上記複数の第1メモリセルから上記第2メモリセルを特定するように構成される。
第1実施形態に係るメモリシステムの構成を説明するためのブロック図。 第1実施形態に係るメモリセルアレイの構成を説明するための回路図。 第1実施形態に係るメモリセルアレイの構成を説明するための断面図。 第1実施形態に係るメモリセルトランジスタの閾値分布を説明するための模式図。 第1実施形態に係るセンスアンプモジュールの構成を説明するためのブロック図。 第1実施形態に係るメモリコントローラに保持されるシフトテーブルを説明するための概念図。 第1実施形態に係るメモリコントローラに保持される履歴テーブルを説明するための概念図。 第1実施形態の変形例に係るメモリセルアレイの構成を説明するための断面図。 第1実施形態に係るメモリコントローラに保持されるフラグテーブルを説明するための概念図。 第1実施形態に係るメモリシステムにおける読出し動作を説明するためのフローチャート。 第1実施形態に係るメモリシステムにおける読出し動作の際に使用されるパラメタが保持されるレジスタ内の情報を説明するための概念図。 第1実施形態に係るメモリシステムにおける読出し動作の際に使用されるパラメタが保持されるレジスタ内の情報を説明するための概念図。 第1実施形態に係るメモリシステムにおける上書きリフレッシュ処理の前後間の閾値分布の変化を説明するためのダイアグラム。 第1実施形態に係るメモリシステムにおけるリフレッシュ処理及び上書きリフレッシュ処理の各々の予約可否の判定動作の一例を説明するためのフローチャート。 第1実施形態に係るメモリシステムにおけるリフレッシュ処理及び上書きリフレッシュ処理の各々の予約可否の判定動作の一例を説明するためのフローチャート。 第1実施形態に係るメモリシステムにおけるリフレッシュ処理及び上書きリフレッシュ処理の各々の予約可否の判定動作の一例を説明するためのフローチャート。 第1実施形態に係るメモリシステムにおけるリフレッシュ処理及び上書きリフレッシュ処理の各々の予約可否の判定動作の一例を説明するためのフローチャート。 第1実施形態に係るメモリシステムにおける上書きリフレッシュ処理の概要を説明するためのフローチャート。 第1実施形態に係るメモリシステムにおける上書きリフレッシュ処理における期待データ取得のための読出し処理を説明するためのコマンドシーケンス。 第1実施形態に係るメモリシステムにおける上書きリフレッシュ処理のための設定処理を説明するためのコマンドシーケンス。 第1実施形態に係るメモリシステムにおける上書きリフレッシュ処理の際に設定されるフィーチャテーブルを説明するための概念図。 第1実施形態に係るメモリシステムにおける上書きリフレッシュ処理を説明するためのコマンドシーケンス。 第1実施形態に係るメモリシステムにおける上書きリフレッシュ処理におけるプリベリファイ処理を説明するためのタイミングチャート。 第1実施形態に係るメモリシステムにおける上書きリフレッシュにおける上書き処理を説明するためのタイミングチャート。 第2実施形態に係るメモリシステムにおける上書きリフレッシュ処理の際に設定されるフィーチャテーブルを説明するための概念図。 第2実施形態に係るメモリシステムにおける上書きリフレッシュ処理の際に設定されるフィーチャテーブルを説明するための概念図。 第2実施形態に係るメモリシステムにおける上書きリフレッシュ処理の一例を説明するためのタイミングチャート。 第2実施形態に係るメモリシステムにおける上書きリフレッシュ処理の一例を説明するためのタイミングチャート。 第3実施形態に係るメモリシステムにおける上書きリフレッシュ処理の概要を説明するためのフローチャート。 第3実施形態に係るメモリシステムにおける上書きリフレッシュ処理におけるパラメタオーバロード処理を説明するためのコマンドシーケンス。 第3実施形態に係るメモリシステムにおける上書きリフレッシュ処理のシーケンスの一例を説明するための概念図。 第3実施形態に係るメモリシステムにおける上書きリフレッシュ処理の一例を説明するためのタイミングチャート。 第3実施形態に係るメモリシステムにおける上書きリフレッシュ処理のシーケンスの一例を説明するための概念図。 第3実施形態に係るメモリシステムにおける上書きリフレッシュ処理の一例を説明するためのタイミングチャート。
以下、図面を参照して実施形態について説明する。なお、以下の説明において、同一の機能及び構成を有する構成要素については、共通する参照符号を付す。また、共通する参照符号を有する複数の構成要素を区別する場合、当該共通する参照符号に添え字を付して区別する。なお、複数の構成要素について特に区別を要さない場合、当該複数の構成要素には、共通する参照符号のみが付され、添え字は付さない。
1.第1実施形態
第1実施形態に係るメモリシステムについて説明する。以下では、不揮発性メモリとしてのNANDフラッシュメモリと、当該NANDフラッシュメモリを備えたメモリシステムを例に挙げて説明する。
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インタフェース、SAS(Serial attached SCSI(small computer system interface))、SATA(Serial ATA(advanced technology attachment))、PCIe(Peripheral component interconnect express)、又はNVMe(Non‐volatile memory express)に従ったバスである。NANDバスは、NANDインタフェースに従った信号の送受信を行う。
NANDインタフェースの信号の具体例は、チップイネーブル信号CEn、アドレスラッチイネーブル信号ALE、コマンドラッチイネーブル信号CLE、ライトイネーブル信号WEn、リードイネーブル信号REn、レディ・ビジー信号RBn、及び入出力信号DQである。
信号CEnは、NANDフラッシュメモリ100をイネーブルにするための信号であり、“L(Low)”レベルでアサートされる。信号CLE及びALEは、NANDフラッシュメモリ100への入力信号DQがそれぞれコマンド及びアドレスであることをNANDフラッシュメモリ100に通知する信号である。信号WEnは“L”レベルでアサートされ、入力信号DQをNANDフラッシュメモリ100に取り込ませるための信号である。信号REnも“L”レベルでアサートされ、NANDフラッシュメモリ100から出力信号DQを読み出すための信号である。レディ・ビジー信号RBnは、NANDフラッシュメモリ100がレディ状態(メモリコントローラ200からの命令を受信出来る状態)であるか、それともビジー状態(メモリコントローラ200からの命令を受信出来ない状態)であるかを示す信号であり、“L”レベルがビジー状態を示す。入出力信号DQは、例えば8ビットの信号である。そして入出力信号DQは、NANDフラッシュメモリ100とメモリコントローラ200との間で送受信されるデータの実体であり、コマンドCMD、アドレスADD、並びに書き込みデータ及び読出しデータ等のデータDATである。
1.1.2 メモリコントローラの構成
引き続き図1を用いて、メモリコントローラ200の構成の詳細について説明する。
メモリコントローラ200は、例えば、SoC(System on a chip)であり、ホストインタフェース回路210、メモリ(RAM)220、プロセッサ(CPU)230、バッファメモリ240、NANDインタフェース回路250、及びECC回路260を備えている。なお、以下に説明されるメモリコントローラ200の各部210−260の機能は、ハードウェア構成、又はハードウェア資源とファームウェアとの組合せ構成のいずれでも実現可能である。
ホストインタフェース回路210は、ホストバスを介してホスト機器300と接続され、ホスト機器300から受信した命令及びデータを、それぞれプロセッサ230及びバッファメモリ240に転送する。またプロセッサ230の命令に応答して、バッファメモリ240内のデータをホスト機器300へ転送する。
メモリ220は、例えばDRAM等の半導体メモリであり、プロセッサ230の作業領域として使用される。そしてメモリ220は、NANDフラッシュメモリ100を管理するためのファームウェアや、シフトテーブル、履歴テーブル、及びフラグテーブル等の、各種の管理テーブル等を保持する。
プロセッサ230は、メモリコントローラ200全体の動作を制御する。例えば、プロセッサ230は、ホスト機器300から書き込み命令を受信した際には、それに応答して、NANDインタフェース回路250に対して書き込み命令を発行する。読出し処理及び消去処理の際も同様である。またプロセッサ230は、NANDフラッシュメモリ100を管理するための様々な処理を実行する。例えば、プロセッサ230は、ガベージコレクション(コンパクション)処理、リフレッシュ処理、ウェアレベリング処理等のメモリシステム1内における内部処理の一環として、消去処理を含む処理を実行し得る。
バッファメモリ240は、書込みデータや読出しデータを一時的に保持する。
NANDインタフェース回路250は、NANDバスを介してNANDフラッシュメモリ100と接続され、NANDフラッシュメモリ100との通信を司る。そして、プロセッサ230から受信した命令に基づき、信号CEn、ALE、CLE、WEn、及びREnをNANDフラッシュメモリ100へ出力する。また書込み処理時には、プロセッサ230で発行された書込みコマンド、及びバッファメモリ240内の書込みデータを、入出力信号DQとしてNANDフラッシュメモリ100へ転送する。更に読出し処理時には、プロセッサ230で発行された読出しコマンドを、入出力信号DQとしてNANDフラッシュメモリ100へ転送し、更にNANDフラッシュメモリ100から読み出されたデータを入出力信号DQとして受信し、これをバッファメモリ240へ転送する。
ECC回路260は、NANDフラッシュメモリ100に記憶されるデータに関する誤り検出及び誤り訂正処理を行う。すなわちECC回路260は、データの書き込み時には誤り訂正符号を生成して、これを書込みデータに付与し、データの読出し処理時にはこれを復号し、誤りビットの有無を検出する。そして誤りビットが検出された際には、その誤りビットの位置を特定し、誤りを訂正する。誤り訂正の方法は、例えば、硬判定復号(Hard bit decoding)及び軟判定復号(Soft bit decoding)を含む。硬判定復号に用いられる硬判定復号符号としては、例えば、BCH(Bose‐Chaudhuri‐Hocquenghem)符号やRS(Reed‐Solomon)符号等を用いることができ、軟判定復号に用いられる軟判定復号符号としては、例えば、LDPC(Low Density Parity Check)符号等を用いることができる。
1.1.3 NANDフラッシュメモリの構成
次に、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を用いて説明する。図2は、いずれかのブロックBLKの回路図である。
図2に示すように、ブロックBLKは、例えば4つのストリングユニットSU(SU0〜SU3)を含む。そして各々のストリングユニットSUは、複数のNANDストリングNSを含む。メモリセルアレイ110内のブロック数及びブロックBLK内のストリングユニット数は任意である。
NANDストリングNSの各々は、例えば64個のメモリセルトランジスタMT(MT0〜MT63)並びに選択トランジスタST1及びST2を含んでいる。メモリセルトランジスタMTは、制御ゲートと電荷蓄積層とを備え、データを不揮発に保持する。そしてメモリセルトランジスタMTは、選択トランジスタST1のソースと選択トランジスタST2のドレインとの間に直列接続されている。
ストリングユニットSU0〜SU3の各々における選択トランジスタST1のゲートは、それぞれセレクトゲート線SGD0〜SGD3に接続される。これに対してストリングユニットSU0〜SU3の各々における選択トランジスタST2のゲートは、例えばセレクトゲート線SGSに共通接続される。あるいは、ストリングユニット毎に異なるセレクトゲート線SGS0〜SGS3に接続されても良い。また、同一のブロックBLK内にあるメモリセルトランジスタMT0〜MT63の制御ゲートは、それぞれワード線WL0〜WL63に共通接続される。
また、メモリセルアレイ110内において同一列にあるNANDストリングNSの選択トランジスタST1のドレインは、ビット線BL(BL0〜BL(m−1)、但しmは2以上の自然数)に共通接続される。すなわちビット線BLは、複数のブロックBLK間で同一列にあるNANDストリングNSを共通に接続する。更に、複数の選択トランジスタST2のソースは、ソース線SLに共通に接続されている。
つまりストリングユニットSUは、異なるビット線BLに接続され、かつ同一のセレクトゲート線SGDに接続されたNANDストリングNSの集合体である。ストリングユニットSUのうち、同一のワード線WLに共通接続されたメモリセルトランジスタMTの集合体を、セルユニットCU(又はメモリグループ)とも言う。またブロックBLKは、ワード線WLを共通にする複数のストリングユニットSUの集合体である。そしてメモリセルアレイ110は、ビット線BLを共通にする複数のブロックBLKの集合体である。
図3は、ブロックBLKの一部領域の断面図である。図3に示すように、p型ウェル領域10上に、複数のNANDストリングNSが形成されている。すなわち、p型ウェル領域10上には、セレクトゲート線SGSとして機能する例えば4層の配線層11、ワード線WL0〜WL63として機能する64層の配線層12、及びセレクトゲート線SGDとして機能する例えば4層の配線層13が、順次積層されている。積層された配線層間には、図示せぬ絶縁膜が形成されている。
そして、これらの配線層13、12、11を通過してp型ウェル領域10に達するピラー状の導電体14が形成されている。導電体14の側面には、ゲート絶縁膜15、電荷蓄積層(絶縁膜または導電膜)16、及びブロック絶縁膜17が順次形成され、これらによってメモリセルトランジスタMT、並びに選択トランジスタST1及びST2が形成されている。導電体14は、NANDストリングNSの電流経路として機能し、各トランジスタのチャネルが形成される領域となる。そして導電体14の上端は、ビット線BLとして機能する金属配線層18に接続される。
p型ウェル領域10の表面領域内には、n型不純物拡散層19が形成されている。n型不純物拡散層19上にはコンタクトプラグ20が形成され、コンタクトプラグ20は、ソース線SLとして機能する金属配線層21に接続される。更に、p型ウェル領域10の表面領域内には、p型不純物拡散層22が形成されている。p型不純物拡散層22上にはコンタクトプラグ23が形成され、コンタクトプラグ23は、ウェル配線CPWELLとして機能する金属配線層24に接続される。ウェル配線CPWELLは、p型ウェル領域10を介して導電体14に電位を印加するための配線である。
以上の構成が、図3を記載した紙面の奥行き方向に複数配列されており、奥行き方向に並ぶ複数のNANDストリングNSの集合によってストリングユニットSUが形成される。
本例では、1つのメモリセルトランジスタMTが例えば3ビットデータを保持可能である。この3ビットデータを、下位ビットからそれぞれ下位(Lower)ビット、中位(Middle)ビット、及び上位(Upper)ビットと呼ぶことにする。そして、同一のセルユニットCUに属するメモリセルの保持する下位ビットの集合を下位ページと呼び、中位ビットの集合を中位ページと呼び、上位ビットの集合を上位ページと呼ぶ。つまり、1つのストリングユニットSU内における1本のワード線WL(1つのセルユニットCU)には3ページが割当てられ、64本のワード線WLを含むストリングユニットSUは192ページ分の容量を有することになる。あるいは言い換えるならば、「ページ」とは、セルユニットCUに形成されるメモリ空間の一部、と定義することも出来る。データの書き込み及び読出しは、このページ毎又はセルユニットCU毎に行っても良い。一方、データの消去は、ブロックBLK単位に行われる。
図4は、各メモリセルトランジスタMTの取り得るデータ、閾値電圧分布、並びに読出し時及び書込み時に用いる電圧について示したダイアグラムである。
上述の通り、メモリセルトランジスタMTは、3ビットデータを保持可能である。すなわち、メモリセルトランジスタ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”状態が、閾値電圧の最も高い状態である。電圧VA〜VGは、総称して電圧VCGRとも言う。電圧VREADは、例えば、読出し動作時において読出し対象でないワード線WLに印加される電圧であり、保持データにかかわらずメモリセルトランジスタMTをオンさせる電圧であり、電圧VPGMより小さい。電圧VPGMは、書込み動作時において書込み対象のワード線WLに印加される電圧の総称である。
なお、書込み直後において、メモリセルトランジスタMTの閾値電圧は低電圧側にシフトしやすい。このため、書込み動作時(ベリファイ動作時)において、“A”状態〜“G”状態の各々のメモリセルトランジスタMTの閾値電圧はそれぞれ、電圧VA〜VGよりも大きい電圧Avfy〜Gvfy以上となる様に設定され得る。
また上記閾値電圧分布は、前述の下位ビット、中位ビット、及び上位ビットからなる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”)が変化する境界に相当する電圧を用いれば良く、このことは中位ビット及び上位ビットでも同様である。
すなわち、図4に示すように、下位ページ読出しは、“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と呼ぶ。
また、データの消去は、ブロック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 センスアンプモジュールの構成について
次に、第1実施形態に係る不揮発性メモリのセンスアンプモジュールの構成について説明する。図5は、第1実施形態に係る不揮発性メモリのセンスアンプモジュールの構成の一例を説明するための回路図である。図5に示すように、センスアンプモジュール140は、ビット線BL毎に設けられたセンスアンプユニットSAU(SAU0、SAU1、…、SAU(m−1))を備えている。
センスアンプユニットSAUの各々は、センスアンプSA、演算部OP、及び例えば5つのラッチ回路ADL、BDL、CDL、SDL、並びにXDLを備えている。
センスアンプSAは、対応するビット線BLの電圧又は電流をセンスすることでデータを読み出し、又書込みデータに応じてビット線BLに電圧を印加する。すなわちセンスアンプSAは、ビット線BLを直接的に制御するモジュールである。そしてセンスアンプSAには、読出し時には、例えばシーケンサ170によってストローブ信号STBが与えられる。センスアンプSAは、ストローブ信号STBがアサートされるタイミングで読出しデータを確定させる。そして、内部に有するラッチ回路(図示せず)にこのデータを保持し、更にラッチ回路ADL、BDL、CDL、SDL、及びXDLのいずれかに転送する。
ラッチ回路ADL、BDL、CDL、及びSDLは、読出しデータ及び書込みデータを一時的に保持する。演算部OPは、センスアンプSA、ラッチ回路ADL、BDL、CDL、SDL、及びXDLに保持されているデータに対して、否定(NOT)演算、論理和(OR)演算、論理積(AND)演算、否定論理積(NAND)演算、否定論理和(NOR)演算、排他的論理和(XOR)演算等、種々の論理演算を行う。
これらのセンスアンプSA、ラッチ回路ADL、BDL、CDL、及びSDL、並びに演算部OPは、互いにデータを送受信可能なようにバスによって接続されている。そしてこのバスは、更にラッチ回路XDLに接続されている。
センスアンプモジュール140におけるデータの入出力は、ラッチ回路XDLを介して行われる。すなわち、メモリコントローラ200から受信したデータは、ラッチ回路XDLを介して、ラッチ回路ADL、BDL、CDL、SDL、又はセンスアンプSAに転送される。また、ラッチ回路ADL、BDL、CDL、SDL又はセンスアンプSAのデータは、ラッチ回路XDLを介して、信号DQ<7:0>のいずれかの信号としてメモリコントローラ200へ送信される。ラッチ回路XDLは、NANDフラッシュメモリ100のキャッシュメモリとして機能する。したがって、ラッチ回路ADL、BDL、CDL、及びSDLが使用中であったとしても、ラッチ回路XDLが空いていれば、NANDフラッシュメモリ100はレディ状態となることができる。
なお、図5の例では、ビット線BL0は、信号DQ<0>を通信する信号線に接続され、ビット線BL1は、信号DQ<1>を通信する信号線に接続され、ビット線BL(m−1)に接続されたラッチ回路XDLは、信号DQ<7>を通信する信号線に接続されている。このように、ビット線BLとメモリコントローラ200との間を接続する信号線は、信号DQ<7:0>のいずれかに対応している。すなわち、或るビット線BLに接続されたNANDストリングNSは、信号DQ<7:0>のいずれかに対応付けられる。
1.1.4 シフトテーブルについて
次に、シフトテーブルについて説明する。上述の通り、メモリコントローラ200は、例えば、メモリ220においてシフトテーブルを保持する。シフトテーブルの概念について、図6を用いて説明する。図6は、シフトテーブルの一例を示す概念図である。
図6に示すように、シフトテーブルは、複数(図6の例では、5個)のエントリを有する。各エントリには、“0”〜“5”のシフトインデックスが順番に割当てられている。そして、各エントリは、読出し動作AR、BR、CR、…、及びGRにおいて読出し対象のワード線WLに印加される読出し電圧のシフト量を示す情報が保持される。
このシフト量について、以下に説明する。図4で説明した“Er”状態、“A”状態、…、及び“G”状態に対応する閾値分布は、互いに分離している。したがって、電圧VA、VB、…、及びVGによって、各状態を区別することができる。しかし、データを書き込んだ後に時間が経過すると、隣接セルとの干渉等により閾値分布が低電圧側又は高電圧側にシフトする場合がある(これを「データリテンションエラー」と呼ぶ)。具体的には、“A”状態〜“G”状態に対応する閾値分布は、電荷蓄積層16に蓄積された電荷が時間の経過と共にリークしていくことにより、低電圧側にシフトする場合がある。“Er”状態に対応する閾値分布は、隣り合うメモリセルトランジスタMTからリークした電荷が電荷蓄積層16に蓄積されることにより、時間の経過と共に高電圧にシフトする場合がある。また、閾値分布は、書込み処理や、読出し処理によっても変動し得る(これを、それぞれ「プログラムディスターブ」、及び「リードディスターブ」と呼ぶ)。このような種々の変動要因(以下、単に「変動要因」とも呼ぶ)に伴う閾値分布のシフト量は、書込み完了からの経過時間が長いほど大きく、また読出し回数の多いブロックBLKほど大きい。そして、各状態の閾値分布の分布幅が拡大し、隣り合う閾値分布が重なってしまうことがある。
このように、閾値分布が変動すると、上記の電圧VA、VB、…、及びVGではデータを正しく読み出せないことがある。すなわち、読出しデータに含まれるエラービット数が、ECC回路260の訂正可能ビット数を超え、メモリコントローラ200は、NANDフラッシュメモリ100からの正しいデータの読出しに失敗する。
このような場合に、メモリコントローラ200は、読出し電圧を通常リード処理における読出し電圧VA、VB、…、及びVG(以降の説明では、これを「デフォルトの読出し電圧」とも呼ぶ)からシフトさせて、再度データの読出しを試みる。これをシフトリードと呼ぶ。この際のデフォルトの読出し電圧からのシフト量ΔVを示す情報を保持しているのが、図6に示すシフトテーブルである。
本例におけるシフトテーブルでは、シフトインデックス=0の状態が、デフォルトの読出し電圧に対応する。そして、読出し動作AR、BR、…、及びGRのそれぞれについて、シフト量ΔVAj、ΔVBj、…、及びΔVGjが用意されている(jは、シフトインデックス、すなわち、1〜5のいずれかの自然数であり、これらを区別しない場合にはΔVと総称する)。あるシフトインデックスjに相当するシフト量ΔVAj、ΔVBj、…、及びΔVGjは、全てが異なる値である場合であってもよいし、一部が同じ値を有する場合であってもよいし、全てが同じ値を有する場合であってもよい。これらのシフト量ΔVは、例えばメモリコントローラ200によって適宜、適切な値に設定される。
また、本例におけるシフトテーブルでは、シフトインデックスの値が小さいものほど、変動要因の影響が小さい。すなわち、シフトインデックス=1に対応するシフト量ΔV(すなわちシフト量ΔVA1、ΔVB1、…、及びΔVG1)は、シフトインデックス=0の状態の次に変動要因の影響が小さい場合に対応している。これに対して、シフトインデックス=5に対応するシフト量ΔV(すなわちシフト量ΔVA5、ΔVB5、…、及びΔVG5)は、変動要因の影響が最も大きい場合に対応している。
なお、変動要因から受ける影響の程度は、閾値分布が“Er”状態〜“G”状態のいずれにあるかによって異なる場合がある。例えば、本実施形態で着目している、閾値分布が低電圧側にシフトする変動要因の場合、その影響は閾値電圧の高い状態ほど大きくなり得る。つまり、変動要因は、読出し動作GRやFRに比較的大きな影響を与え得る。他方で、読出し動作CRやDRではそれほど大きくない、という傾向を有し得る。したがって、例えば下記の関係が成り立ち得る。
|ΔVG5|>|ΔVG1|
|ΔVG5|>|ΔVC5|、|ΔVD5|
なお、この関係は一例に過ぎず、またこのような場合に限定されるものではない。また、絶対値で表記している理由は、変動要因による影響が負電圧側への閾値変動だとすれば、シフト量ΔVは負の値を有するからである。もちろん、各シフト量ΔVは、負の値を有してもよいし、正の値を有してもよく、シフトリード処理に適切な値であればよい。
以上のように構成されたシフトテーブルは、例えば、NANDフラッシュメモリ100のいずれかのブロックBLKに保持される。そして、例えば、電源投入直後等に、メモリコントローラ200によって読み出され、メモリ220等に保持される。
1.1.5 履歴テーブル
メモリコントローラ200は、更に履歴テーブルを保持する。履歴テーブルについて、図7を用いて説明する。図7は、履歴テーブルの一例を示す概念図である。
図7に図示するように、履歴テーブルは、ブロックBLKにおけるワード線WL0〜WL63と、これらのワード線WL0〜WL63に適用される、シフトテーブルにおけるシフトインデックスとの関係を保持する。
履歴テーブルは、上記ブロックBLKの各ワード線WLに適用すべき、読出し電圧のシフト量ΔVに関する情報を、例えばシフトインデックスを用いて保持する。メモリコントローラ200は、この履歴テーブルを参照することにより、読出し対象のワード線WLに印加すべき読出し電圧を決定する。
図7の例では、ブロックBLK0のワード線WL0には、シフトインデックス=1が割当てられている。これは、ブロックBLK0のワード線WL0に読出し電圧を印加する際には、デフォルトの値に対して、図6に示すシフトテーブルにおけるシフトインデックス=1に対応するシフト量ΔV(ΔVA1、ΔVB1、…、及びΔVG1)が適用されることを意味する。また、ブロックBLK0のワード線WL1〜WL7には、シフトインデックス=0が共通して割当てられている。これは、ブロックBLK0のワード線WL1〜WL7に読出し電圧を印加する際には、デフォルトの値が適用されることを意味する。このように、ワード線WLに割当てられるシフトインデックスは、1つのワード線WLに対して割当てられてもよく、一群のワード線WLに対して共通に割当てられてもよい。
履歴テーブルで指定されるシフト量ΔVは、例えば、セットフィーチャコマンド等を用いて、メモリコントローラ200によりNANDフラッシュメモリ100に設定される。よって、読出し動作の度に毎回シフト量ΔVを指定する必要はない。しかし、履歴テーブルにおいてシフトインデックスが更新された際には、メモリコントローラ200は、NANDフラッシュメモリ100に対してシフト量ΔVを設定し直す。なお、セットフィーチャコマンドは、NANDフラッシュメモリ100に印加される電圧やタイミング等、種々の設定を変更可能なコマンドである。
変動要因から受ける影響の程度は、メモリセルトランジスタMTがいずれのワード線WLに対応するかによって異なる場合がある。例えば、変動要因の影響は、NANDストリングNSの端部に位置するメモリセルトランジスタMTに対して特に大きい。つまり、変動要因は、ワード線WL0及びWL63、並びにこれらに比較的近い数本のワード線WL(以下、説明の便宜上、これらを単に「端部のワード線WL」とも言う。)に対応するメモリセルトランジスタMTに対して比較的大きな影響を与える。他方で、上記したワード線WL以外のワード線WLに対応するメモリセルトランジスタMTに対しては、それほど大きくない、という傾向にある。したがって、大半の期間において、例えば下記の関係が成り立ち得る。
(NANDストリングNSの端部に位置するワード線WLのシフトインデックス)≧(その他のワード線WLのシフトインデックス)
なお、この関係は一例に過ぎず、またこのような場合に限定されるものではない。例えば、図8に示すように、NANDストリングNSを構成する下段部LNSと上段部HNSとが、接合部JTを介して導電体11〜13の積層方向に接合されている場合、ワード線WLの端部には、当該接合部JT近傍のワード線WLも含まれ得る。すなわち、図9の例では、端部のワード線WLには、ワード線WL0及びWL63に加え、ワード線WL31及びWL32、並びにこれらに比較的近い数本のワード線WLが含まれ得る。
以上のように構成された履歴テーブルが、メモリ220等に保持される。履歴テーブルは、メモリシステム1の電源断時には、例えば、NANDフラッシュメモリ100や、図示しないEEPROM(登録商標)(Electrically erasable programmable ROM)等の不揮発メモリに保持されてもよく、電源投入直後等には、メモリコントローラ200によって読み出されてもよい。
1.1.6 フラグテーブルについて
メモリコントローラ200は、更にフラグテーブルを保持する。フラグテーブルについて、図9を用いて説明する。図9は、フラグテーブルの一例を説明するための概念図である。
図9に示すように、フラグテーブルは、ブロックBLK毎にブロックリフレッシュフラグを保持すると共に、ワード線WL毎に上書きリフレッシュフラグを保持する。上書きリフレッシュフラグ及びブロックリフレッシュフラグはそれぞれ、例えば、メモリコントローラ200によって上書きリフレッシュ処理及びブロックリフレッシュ処理が予約された際に、“1”とされる。また、上書きリフレッシュフラグは、例えば、対応するブロックBLKのブロックリフレッシュフラグが“1”となった場合、リセットされ得る。
上書きリフレッシュ処理は、上述した変動要因による影響を低減するための処理である。より具体的には、例えば、上書きリフレッシュ処理は、一部のワード線WLにデータが書込まれたブロックBLKのうち、リフレッシュ対象と判定されたデータ書込み済みのワード線WLに対応するメモリセルトランジスタMTへ、更なる書込み処理(上書き処理)を行う。また、例えば、上書きリフレッシュ処理は、全てのワード線WLにデータが書込まれたブロックBLKに対しても、同様に実行し得る。そして、このような上書きリフレッシュ処理は、消去処理を伴わずに実行される。これにより、変動要因の影響を強く受けた特定のワード線WL(例えば、端部のワード線WL)に対応するメモリセルトランジスタMTの閾値分布を高電圧側へシフトさせ、理想の閾値分布の状態に近づける。これが、上書きリフレッシュ処理である。
また、ブロックリフレッシュ処理(「書き直しリフレッシュ処理」とも言う。)は、上書きリフレッシュ処理や他の手段によっても、正しいデータを読み出すことが困難になった場合に、当該ブロックBLK内の有効データを、消去処理済みのブロックBLKに書き写す処理である。或いは、ブロックリフレッシュ処理は、消去処理を伴い、リフレッシュ対象ブロックBLK内の有効データを同一ブロックBLKに書き戻す処理も含む。
このように、上書きリフレッシュ処理及びブロックリフレッシュ処理は、いずれも、変動した閾値分布を理想の閾値分布の状態に近づける動作である点において共通する。上書きリフレッシュ処理及びブロックリフレッシュ処理は、例えば、「リフレッシュ処理」と総称され得る。
以上のように構成されたフラグテーブルは、例えば、NANDフラッシュメモリ100のいずれかのブロックBLKに保持される。そして、履歴テーブルと同様に、例えば、メモリシステム1への電源投入直後等にメモリコントローラ200によって読み出され、メモリ220等に保持される。また、メモリシステム1の電源が遮断される際には、メモリ220等に保持されるフラグテーブルが、NANDフラッシュメモリ100のいずれかのブロックBLKに書込まれる。
1.2 動作
次に、第1実施形態に係るメモリシステムの動作について説明する。
1.2.1 読出し動作について
まず、メモリコントローラ200による読出し動作の流れについて、図10を用いて説明する。図10は、第1実施形態に係るメモリシステムにおける読出し動作を説明するためのフローチャートの一例である。なお、図10におけるメモリコントローラ200の動作は、例えば、ホスト機器300からの指示によって実行されてもよいし、プロセッサ230の制御によって定期的に実行されてもよい。例えば、以下に示す読出し動作が定期的に実行されることにより、メモリ220に保持される履歴テーブルを最新の状態に保つことができる。
メモリコントローラ200はまず、ステップST10において、メモリ220内のシフトテーブルと履歴テーブルとを参照することにより、図11に示すような情報のうち、読出し対象のブロックBLKにおける読出し対象のワード線WLのシフト量ΔVを把握する。そして、NANDフラッシュメモリ100に対してリードコマンドを発行する際、又はそれ以前に、メモリコントローラ200は、例えば、セットフィーチャによって、当該把握した読出し対象のワード線WLのシフト量ΔVをNANDフラッシュメモリ100に設定する。
この結果、NANDフラッシュメモリ100のドライバ130は、読出し処理時におけるデフォルトの電圧VA、VB、…、及びVGに対して、シフト量ΔVを加えた値の電圧を読出し電圧VCGRとして、ロウデコーダ120を介して、読出し対象のワード線WLに印加する。つまり、当初の電圧VA、VB、…、及びVGの代わりに、電圧(VA+ΔVA)、(VB+ΔVB)、…、及び(VG+ΔVG)が、読出し電圧VCGRとして印加される。
図10に戻り、ステップST11において、メモリコントローラ200は、ホスト機器300からデータの要求命令を受信すると、通常リードコマンドを発行する。通常リードコマンドは、読出し電圧のシフト量ΔVに関する情報を含まない。よって、NANDフラッシュメモリ100は、デフォルトの読出し電圧を用いてデータを読み出し、これをメモリコントローラ200に送信する。すなわち、例えば、ブロックBLK0のワード線WL63が選択される場合には、読出し電圧VCGRとして(VA+ΔVA3)、(VB+ΔVB3)、…、及び(VG+ΔVG3)が用いられる。
ステップST12において、NANDフラッシュメモリ100から読出しデータを受信したメモリコントローラ200では、ECC回路260が誤りを検出する。読出しデータに誤りが含まれない場合、又はECC回路260により誤りを訂正(硬判定復号)できた場合(ステップST12;yes)、データの読出し動作は完了する。一方、読出しデータに含まれるエラービット数がECC回路260で訂正可能なビット数を超えており、ECC回路260による誤りの訂正ができない場合(ステップST12;no)、処理はステップST13に進む。
ステップST13において、メモリコントローラ200は、履歴テーブルを参照し、読出し対象のワード線WLに対応するシフトインデックスがシフトテーブル内に設定されたシフトインデックスの最大値(最終シフトインデックスとも言う。図6の例では最終シフトインデックス=5である。)に達したか否かを判定する。
読出し対象のワード線WLに対応するシフトインデックスが最終シフトインデックスに達していない場合(ステップST13;no)、処理はステップST14に進む。ステップST14において、メモリコントローラ200は、シフトテーブルにおける次のシフトインデックスを選択する。続いて、ステップST15において、メモリコントローラ200は、選択したシフトインデックスに基づいてシフトリードコマンドを発行する。この際、例えば、メモリコントローラ200の発行するコマンドシーケンスがシフト量ΔVを示す情報を含み、当該情報に基づいてNANDフラッシュメモリ100は、読出し電圧VCGRを決定する。先の例であると、ブロックBLK0のワード線WL63が選択される場合には、読出し電圧VCGRとして(VA+ΔVA4)、(VB+ΔVB4)、…、及び(VG+ΔVG4)が用いられる。続いて、ステップST16において、メモリコントローラ200では、シフトリードによる読出しデータに対して、ECC回路260が再度誤りを検出する。読出しデータに誤りが含まれない場合、又はECC回路260により誤りを訂正できた場合(ステップST16;yes)、処理はステップST20に進む。一方、ECC回路260による誤りの訂正ができない場合(ステップST16;no)、処理はステップST13に進む。すなわち、メモリコントローラ200は、選択したシフトインデックスが最終値に達するか(ステップST13;yes)、又は誤りの訂正に成功するまで(ステップST16;yes)、シフトインデックスをインクリメントしつつシフトリードを繰り返す。
一方、読出し対象のワード線WLに対応するシフトインデックスが最終シフトインデックスに達している場合(ステップST13;yes)、処理はステップST17に進む。ステップST17において、メモリコントローラ200は、データを正しく読み出すための何らかの処理を実行する。その一例は、Vthトラッキング処理である。Vthトラッキング処理は、読出し対象のワード線WLに印加する電圧を細かく変化させつつオンセル(又はオフセル)の数を計測することにより、重なった閾値分布の交点を探索し、当該交点に近いと予想される点に対応する電圧(最適な読出し電圧と予想される電圧)を決定する処理である。そして、当該最適な読出し電圧と予想される電圧を用いて、再度の読出し動作が行われる。続いて、ステップST18において、メモリコントローラ200では、ECC回路260が再度誤りを検出する。具体的には、例えば、Vthトラッキング動作の際には、決定された最適な読出し電圧に対して硬判定復号が実行される。ECC回路260により誤りを訂正できた場合(ステップST18;yes)、処理はステップST20に進む。一方、ECC回路260による誤りの訂正ができない場合(ステップST18;no)、処理はステップST19に進む。ステップST19において、メモリコントローラ200は、例えば、ECC結果に基づいてデータを正しく訂正できない(ECCフェイル)と判定し、訂正失敗を通知する。
ステップST16又はST18のいずれかでECC回路260による誤りが訂正できた場合、ステップST20において、メモリコントローラ200は、メモリ220内の履歴テーブルを更新する。すなわち、履歴テーブルにおいて、読出し対象となったブロックBLKのワード線WLに関するシフトインデックスを、直近のステップST16で選択された値に変更する。図12は、ワード線WL63に対するシフトリードが、シフトインデックス=3の際には誤り訂正が失敗し、シフトインデックス=4の際に成功した例を示している。図12に示すように、ワード線WL63に対するシフト量ΔVA3、ΔVB3、…、及びΔVG3が、それぞれシフト量ΔVA4、ΔVB4、…、及びΔVG4に更新される。
続いて、ステップST21において、メモリコントローラ200は、読出し対象のワード線WLがリフレッシュ処理の発動条件を満たすか否かを判定する。読出し対象のワード線WLがリフレッシュ処理の発動条件を満たさないと判定された場合(ステップST21;no)、メモリコントローラ200は、当該ワード線WLに対するリフレッシュを予約することなく、読出し動作を終了する。より具体的には、メモリコントローラ200は、読出し対象のワード線WLに対する上書きリフレッシュ処理、又は当該読出し対象のワード線WLを含むブロックBLKに対するブロックリフレッシュ処理のいずれについても予約をすることなく、読出し動作を終了する。一方、読出し対象のワード線WLがリフレッシュ処理の発動条件を満たすと判定された場合(ステップST21;yes)、メモリコントローラ200は、当該ワード線WLに対するリフレッシュ処理の実行を決定し、処理はステップST22に進む。
ステップST22において、メモリコントローラ200は、リフレッシュ処理の実行が決定されたワード線WLに対して、上書きリフレッシュ処理の適用条件を満たすか否かを判定する。読出し対象のワード線WLが上書きリフレッシュ処理の適用条件を満たさないと判定された場合(ステップST22;no)、メモリコントローラ200は、読出し対象のワード線WLを含むブロックBLKに対するブロックリフレッシュ処理の実行を決定し、処理はステップST23に進む。ステップST23において、メモリコントローラ200は、ブロックリフレッシュ処理を予約する。すなわち、プロセッサ230は、例えば、メモリ220内のフラグテーブルにおいて、ステップST22においてブロックリフレッシュ処理の実行が決定されたブロックBLKにブロックリフレッシュフラグを立てる。以上で、読出し処理は終了し、後続するブロックリフレッシュ処理を実行するため、処理は引き続きステップST24に進む。
ステップST24において、メモリコントローラ200は、フラグテーブルを参照し、ブロックリフレッシュフラグの立っているブロックBLKに対してブロックリフレッシュ処理を実行する。
ステップST25において、メモリコントローラ200は、ブロックリフレッシュ処理が終了したブロックBLKに対して立っていたブロックリフレッシュフラグをリセットすることにより、フラグテーブルを更新する。
なお、ステップST24及びST25は、ステップST23における予約処理の直後に行う必要はなく、バックグラウンドで適切なタイミングに行えばよい。
一方、読出し対象のワード線WLが上書きリフレッシュ処理の適用条件を満たすと判定された場合(ステップST22;yes)、メモリコントローラ200は、当該ワード線WLに対する上書きリフレッシュ処理の実行を決定し、処理はステップST26に進む。ステップST26において、メモリコントローラ200は、上書きリフレッシュ処理を予約する。すなわち、プロセッサ230は、例えば、メモリ220内のフラグテーブルにおいて、ステップST22において上書きリフレッシュ処理の実行が決定されたワード線WLに上書きリフレッシュフラグを立てる。以上で、読出し処理は終了し、後続する上書きリフレッシュ処理を実行するため、処理は引き続きステップST27に進む。
ステップST27において、メモリコントローラ200は、フラグテーブルを参照し、上書きリフレッシュフラグの立っているワード線WLに対して上書きリフレッシュ処理を実行する。
ステップST28において、メモリコントローラ200は、上書きリフレッシュ処理が終了したブロックBLKに対して立っていた上書きリフレッシュフラグをリセットすることにより、フラグテーブルを更新する。
なお、ステップST27及びST28は、ステップST26における予約処理の直後に行う必要はなく、バックグラウンドで適切なタイミングに行えばよい。
以上のように動作することにより、リフレッシュ処理を行うか否かと、上書きリフレッシュ処理を適用するか否かと、を互いに異なる条件に基づいて判定することができる。
1.2.2 リフレッシュ処理の発動条件について
次に、リフレッシュ処理の発動条件について具体的に説明する。
上述の通り、リフレッシュ処理は、変動した閾値分布を理想の状態に近づけるために実行される。このため、リフレッシュ処理は、現状の閾値分布の、理想の閾値分布からの変動幅が所定の大きさに達した場合に実施するように、発動条件及び適用条件が設定されることが望ましい。
1.2.2.1 誤り訂正条件
例えば、閾値分布の変動幅は、読出しデータに含まれるエラービットが訂正可能な条件(誤り訂正条件)に基づいて評価することができる。誤り訂正条件は、例えば、ECC回路260に適用される誤り訂正符号の種類、及び符号化率を含むECC回路260の訂正能力と、ECC回路260に入力される読出しデータの読出し条件と、を含む。なお、誤り訂正条件は、必ずしも誤り訂正符号の訂正能力及び読出し条件のいずれも含んでいる必要はなく、少なくとも1つが含まれていればよいし、その他の条件が含まれていてもよい。
誤り訂正符号の種類には、BCH符号やRS符号を含む任意の硬判定復号符号、並びにLDPC符号を含む任意の軟判定復号符号を適用可能である。また、読出し条件には、シフトリード処理、及びVthトラッキング処理等の任意の読出し条件を適用可能である。なお、シフトリード処理が読出し条件に適用される場合、シフトインデックスが読出し条件として更に付加されてもよい。
誤り訂正条件に基づいて設定されるリフレッシュ処理の発動条件の具体例としては、例えば、以下の条件が一例として挙げられる。
(例1‐1a)「或るシフトインデックスのシフトリード処理による読出しデータ、及びBCH符号に基づく誤り訂正処理に失敗した場合、リフレッシュ処理を発動する。」
(例1‐1b)「Vthトラッキング処理によって決定された最適な読出し電圧による読出しデータ、及びBCH符号に基づく誤り訂正処理に失敗した場合、リフレッシュ処理を発動する。」
1.2.2.2 エラービット数
また、例えば、閾値分布の変動幅は、或る読出し電圧で読み出されたデータに含まれるエラービット数によって評価することができる。すなわち、リフレッシュ処理の発動条件は、誤り訂正に成功した場合のエラービット数(又はエラービットレート)に基づいて設定され得る。エラービットレートは、例えば、誤り訂正処理が実行された読出しデータ内のビット数に対する、エラービット数の割合である。
エラービット数に基づいて設定されるリフレッシュ処理の発動条件の具体例としては、例えば、以下の条件が一例として挙げられる。
(例1‐2)「エラービット数が閾値を超えた場合、リフレッシュ処理を発動する。」
なお、エラービット数は、読出し電圧の大きさに応じて変化する。例えば、デフォルトの読出し電圧(シフトインデックス=0の読出し電圧)で読出した場合よりも、より大きなシフトインデックスのシフト量ΔVが適用されたシフトリード処理や、Vthトラッキング処理によって決定された最適な読出し電圧で読出した場合の方が、エラービット数は小さくなり得る。このため、エラービット数をリフレッシュ処理の発動条件に適用する場合、読出し電圧の大きさに応じて、予約の可否を決定するエラービット数の閾値が異なるように設定されてもよい。
1.2.2.3 シフト量
また、例えば、閾値電圧の変動幅は、履歴テーブル内のシフトインデックス、又はVthトラッキング処理によって決定された最適な読出し電圧の、デフォルトの読出し電圧からのシフト量ΔVの大きさによって評価することができる。すなわち、リフレッシュ処理の発動条件は、シフトリード処理のシフトインデックス、又はVthトラッキング処理によって決定されたシフト量ΔVの大きさに基づいて設定され得る。なお、Vthトラッキング処理におけるシフト量ΔVは、メモリコントローラ200側、及びNANDフラッシュメモリ100側のいずれで算出されてもよい。
シフト量ΔVに基づいて設定されるリフレッシュ処理の発動条件の具体例としては、例えば、以下の条件が一例として挙げられる。
(例1‐3a)「履歴テーブル内のシフトインデックスが閾値を超えた場合、リフレッシュ処理を発動する。」
(例1‐3b)「Vthトラッキング処理によって決定された最適な読出し電圧の、デフォルトの読出し電圧からのシフト量ΔVが閾値を超えた場合、リフレッシュ処理を発動する。」
なお、シフト量ΔVに関する閾値は、例えば、各状態を区別する電圧VA〜VGの各々について個別に異なる値が設定されてもよい。この場合、電圧VA〜VGのいずれかに対して閾値を超えた場合に、リフレッシュ処理を発動すると判定されてもよい。
1.2.2.4 経過時間
また、例えば、閾値電圧の変動幅は、書込み完了からの経過時間が長いほど大きくなり得る。このため、リフレッシュ処理の発動条件は、読出し対象のワード線WLに接続されたメモリセルトランジスタMTへデータが書き込まれてからの経過時間に基づいて設定され得る。書込み処理完了からの経過時間は、例えば、メモリコントローラ200内のメモリ220に保持、管理される。
書込み完了からの経過時間に基づいて設定されるリフレッシュ処理の発動条件の具体例としては、例えば、以下の条件が一例として挙げられる。
(例1‐4)「書込み処理完了からの経過時間が閾値を超えた場合、リフレッシュ処理を発動する。」
なお、メモリコントローラ200は、書込み処理完了からの経過時間を、ワード線WL単位に限らず、ブロックBLK単位等の任意の単位で管理可能である。
1.2.2.5 読出し回数
また、例えば、閾値電圧の変動幅は、読出し回数が多いほど大きくなり得る。このため、リフレッシュ処理の発動条件は、読出し対象のブロックBLK内の任意のワード線WLからの読出し動作の実行回数に基づいて設定され得る。読出し動作の実行回数は、例えば、当該ブロックBLKに対して実行された直近の消去動作後に書込まれたデータに対する読出し回数をカウントし、メモリコントローラ200内のメモリ220に保持、管理される。
読出し動作の実行回数に基づいて設定されるリフレッシュ処理の発動条件の具体例としては、例えば、以下の条件が一例として挙げられる。
(例1‐5)「読出し動作の実行回数が閾値を超えた場合、リフレッシュ処理を発動する。」
なお、メモリコントローラ200は、読出し動作の実行回数を、ブロックBLK単位に限らず、ワード線WL単位等の任意の単位で管理可能である。
以上のようにリフレッシュ処理の発動条件を設定することにより、リフレッシュ処理を実行する必要があるか否かを適切に判定することができる。
1.2.3 上書きリフレッシュ処理の適用条件について
次に、上書きリフレッシュ処理の適用条件について説明する。
1.2.3.1 上書きリフレッシュ処理による閾値分布の変化について
上述の通り、上書きリフレッシュ処理は、既にデータが書き込まれたメモリセルトランジスタMTに上書き処理を行うことにより、閾値分布を高電圧側へシフトさせる動作である。このため、上書きリフレッシュ処理は、上書き対象のメモリセルトランジスタMTへのデータの上書き処理に伴い、隣り合う他のトランジスタMTに対しても予期しない電荷の注入を発生させ、閾値電圧を上昇させる可能性がある。これにより、上書きリフレッシュ処理を実行しても、隣り合う閾値分布間の幅(又は重なり)が書込み当初と同程度まで改善しない可能性がある。
図13は、上書きリフレッシュ処理の前後における閾値分布の変動を説明するためのダイアグラムである。図13では、一例として、上書きリフレッシュ処理の前後における“Er”状態、及び“A”状態に対応する閾値分布が示され、“B”状態〜“G”状態に対応する閾値分布は便宜上省略されている。具体的には、図13(A)では、書込み処理直後の閾値分布が示され、図13(B)では、図13(A)の状態から所定の時間が経過した後の閾値分布が示され、図13(C)では、図13(B)の状態から上書きリフレッシュ処理が実行された後の閾値分布が示される。
図13(A)に示すように、書込み処理直後では、“Er”状態、及び“A”状態に対応する閾値分布は、互いに分離している(又は、重なる部分が非常に小さい)。具体的には、“A”状態に対応する閾値分布のうちの最低電圧Va_lと、“Er”状態に対応する閾値分布のうちの最高電圧Ve_hとは、差分Δ(=Va_l−Ve_h)だけ離れている。
データの書込み処理から時間が経過すると共に、閾値分布は、変動要因による影響を受ける。具体的には、図13(B)に示すように、“A”状態に対応する閾値分布のうちの最小電圧は、変動要因によって時間の経過と共に低電圧側にシフトし、電圧Va_l’となる。一方、“Er”状態に対応する閾値分布のうちの最大電圧は、変動要因によって時間の経過と共に高電圧側にシフトし、電圧Ve_h’となる。
このため、データの書込み処理から時間が経過すると、“A”状態に対応する閾値分布のうちの最低電圧Va_l’と、“Er”状態に対応する閾値分布のうちの最高電圧Ve_h’との差分Δ’(=Va_l’−Ve_h’)は、差分Δより小さくなる(Δ’<Δ)。すなわち、差分Δ’は、時間の経過と共に悪化する。
続いて、低電圧側にシフトした閾値分布のうちの最低電圧近傍に対応するワード線WLに対して、上書きリフレッシュ処理が実行される。図13(C)に示すように、“A”状態に対応する閾値分布のうちの最低電圧は、上書きリフレッシュ処理によって再度高電圧側にシフトし、電圧Va_l”となる。これにより、“A”状態に対応する閾値分布は、書込み直後の状態に近づけられる。
一方、上書きリフレッシュ処理は、閾値分布のうちの最低電圧近傍を高電圧側にシフトさせる処理のため、“Er”状態に対応する閾値分布のうちの最高電圧近傍を低電圧側にシフトさせることはできない。加えて、“Er”状態のメモリセルトランジスタMTは、隣り合うメモリセルトランジスタMTに対して上書きリフレッシュが実行されることによって、閾値電圧が上昇し得る。このため、“Er”状態に対応する閾値分布のうちの最高電圧は、更に高電圧側にシフトし、電圧Ve_h”となる。
このため、上書きリフレッシュ処理後において、“A”状態に対応する閾値分布のうちの最低電圧Va_l”と、“Er”状態に対応する閾値分布のうちの最高電圧Ve_h”との差分Δ”(=Va_l”−Ve_h”)は、差分Δ’より大きくなる(Δ”>Δ’)。すなわち、上書きリフレッシュ処理を実行することによって、変動要因による影響を緩和することができる。しかしながら、“Er”状態に対応する閾値分布のうちの最高電圧近傍が高電圧側にシフトするため、差分Δ”は、差分Δより小さくなる(Δ”<Δ)。以後同様に、差分Δ”は、上書きリフレッシュ処理を実行していく毎に、前回上書きリフレッシュ処理が実施された直後の差分Δ”に対して、徐々に低下していく可能性がある。差分Δ”が小さくなると(例えば、差分Δ’に漸近すると)、再度上書きリフレッシュ処理を実行しても、隣り合う2つの状態の識別性を改善できなくなるため、好ましくない。したがって、上書きリフレッシュの適用条件は、差分Δ”のような、隣り合う2つの状態を識別できるか否かを定量的に示す指標(以下、「マージン」とも言う)に基づいて設定されることが望ましい。
図13の例では、“Er”状態及び“A”状態について説明したが、これに限られない。すなわち、上書きリフレッシュの適用条件は、“Er”状態及び“A”状態間のマージンに限らず、隣り合う任意の2つの状態間のマージンに基づいて設定され得る。補足すると、上述したように、“Er”状態は、時間の経過に伴って閾値分布の上裾が高電圧側にシフトする傾向があるが、他の状態は、時間の経過に伴って閾値分布の上裾が低電圧側にシフトする傾向がある。このため、マージンの変動を評価するに際し、最もマージンの悪化が顕著にみられるのは、“Er”状態と“A”状態の間で有り得る。
いずれにしても、上書きリフレッシュ処理の実行可否を判定するに際しては、例えば、マージンを用いると、以下のような条件が設定され得る。
「マージンが閾値を超える場合、上書きリフレッシュ処理の適用を決定し、マージンが閾値以下の場合、上書きリフレッシュ処理では効果が薄いため、ブロックリフレッシュ処理の適用を決定する。」
なお、実際には、差分Δ”を直接算出する代わりに、種々の方法を用いてマージンが定量的に評価される。以下に、マージンの具体例と、当該マージンに基づく上書きリフレッシュ処理の適用条件について説明する。ただし、以下に説明する上書きリフレッシュ処理の適用条件は、上述したリフレッシュ処理の発動条件を満たすことが前提であることに留意すべきである。
1.2.3.2 所定範囲内に閾値電圧を有するメモリセル数
例えば、マージンは、所定範囲内に閾値電圧を有するメモリセル数に基づいて評価し得る。所定範囲は、例えば、隣り合う2つの状態に対応する閾値分布のピーク間に設定される。より具体的には、例えば、所定範囲をVs1以上Vs2以下(Vs1<Vs2)とした時、当該所定範囲は、一方の閾値分布のピークに対応する電圧VP1と他方の閾値分布のピークに対応する電圧VP2(>VP1)に対して、VP1<Vs1<Vs2<VP2の関係を有する範囲に設定される。また、当該所定範囲は、例えば、一方の閾値分布と他方の閾値分布とが交差し得る範囲を包含するように設定される。これにより、当該所定範囲内に閾値電圧を有するメモリセル数の増加と、マージンの低下とを関連づけることができる。
所定範囲内に閾値電圧を有するメモリセル数に基づいて設定される上書きリフレッシュ処理の適用条件の具体例としては、例えば、以下の条件が一例として挙げられる。
(例2‐1)「所定範囲内に閾値電圧を有するメモリセル数が閾値以下である場合、上書きリフレッシュ処理の適用を決定し、閾値を超える場合、ブロックリフレッシュ処理の適用を決定する。」
1.2.3.3 高電圧側エラービット数
また、例えば、マージンは、所定の状態を、より高電圧側の状態と誤って読出したビット数(以下、便宜的に「高電圧側エラービット数」とも呼ぶ。)に基づいて評価し得る。例えば、“Er”状態を“A”状態と誤って読出されたビット数が増加すれば、“Er”状態に対応する閾値分布のうちの最高電圧近傍が、“A”状態に対応する閾値分布のうちの最低電圧近傍よりも相当程度高電圧側にシフトしていると考えられる。このように、当該高電圧側エラービット数の増加と、マージンの低下とを関連付けることができる。
高電圧側エラービット数に基づいて設定される上書きリフレッシュ処理の適用条件の具体例としては、例えば、以下の条件が一例として挙げられる。
(例2‐2)「所定の状態に対する高電圧側エラービット数が閾値以下である場合、上書きリフレッシュ処理の適用を決定し、閾値を超える場合、ブロックリフレッシュ処理の適用を決定する。」
なお、高電圧側エラービット数は、例えば、図10におけるステップST15で読み出された誤りを含むデータと、ステップST16における誤り訂正後のデータと、を比較することによって特定することができる。より具体的には、例えば、“Er”状態において発生した高電圧側エラービット数を特定する場合、メモリコントローラ200は、まず、誤り訂正後のデータにおいて“Er”状態と判定された(“Er”状態であることが期待される)メモリセルトランジスタMTを抽出する。そして、メモリコントローラ200は、“Er”状態であることが期待されるメモリセルトランジスタMTのうち、誤りを含むデータにおいて“Er”状態でないと判定されたメモリセルトランジスタMTを抽出し、計上する。これにより、メモリコントローラ200は、“Er”状態に対する高電圧側エラービット数を特定することができる。
1.2.3.4 シフト量
また、例えば、マージンは、シフトリード処理又はVthトラッキング処理の際に適用された、電圧VA〜VGのうちの所定の1つに対するシフト量ΔVに基づいて評価し得る。すなわち、シフト量ΔVの増加と、マージンの低下とを関連付けることができる。なお、シフトリード処理のシフト量ΔVは、履歴テーブルに記憶されたシフトインデックスに置き換えてもよい。
シフト量ΔVに基づいて設定される上書きリフレッシュ処理の適用条件の具体例としては、例えば、以下の条件が一例として挙げられる。
(例2‐3a)「履歴テーブル内のシフトインデックスが閾値以下である場合、上書きリフレッシュ処理の適用を決定し、閾値を超える場合、ブロックリフレッシュ処理の適用を決定する。」
(例2‐3b)「Vthトラッキング処理により求めた読出し電圧の、デフォルトの読出し電圧からのシフト量が閾値以下である場合、上書きリフレッシュ処理の適用を決定し、閾値を超える場合、ブロックリフレッシュ処理の適用を決定する。」
1.2.3.5 誤り訂正条件
また、例えば、マージンは、誤り訂正条件に基づいて評価し得る。すなわち、誤り訂正に成功した際の誤り訂正条件の程度がマージンの低下と関連付けられ、上書きリフレッシュ処理の適用条件に採用されてもよい。
誤り訂正条件に基づいて設定される上書きリフレッシュ処理の適用条件の具体例としては、例えば、以下の条件が一例として挙げられる。
(例2‐4)「所定のシフトインデックス以下のいずれかのシフトインデックスを適用したシフトリード処理による読出しデータに基づく誤り訂正処理に成功した場合、上書きリフレッシュ処理の適用を決定する。当該所定のシフトインデックス以下のいずれかのシフトインデックスを適用したシフトリード処理によっても読出しデータに基づく誤り訂正処理に失敗した場合、ブロックリフレッシュ処理の適用を決定する。」
なお、上述の(例2‐4)の条件における「所定のシフトインデックス以下のいずれかのシフトインデックス」の値は、例えば、下記に示す値に対応し得る。
1)シフト量ΔVを変更しながら訂正成功するまで試行するリトライリードシーケンスにおいて、訂正成功するまでのリトライリード処理の回数に応じた値
2)リトライリードシーケンスによって訂正成功した際のシフト量ΔVに応じた値
1.2.3.6 上書きリフレッシュ処理の実行回数
また、上述の通り、上書きリフレッシュ処理は、実行回数が増えるにつれて、マージンが低下し得る。このため、マージンは、上書きリフレッシュ処理の実行回数に基づいて評価し得る。すなわち、同一のブロックBLK又は同一のワード線WLに対して実行された上書きリフレッシュ処理の、直近に実行されたブロックリフレッシュ処理からの実行回数の増加がマージンの低下と関連付けられ、上書きリフレッシュ処理の適用条件に採用されてもよい。
上書きリフレッシュ処理の実行回数に基づいて設定される上書きリフレッシュ処理の適用条件の具体例としては、例えば、以下の条件が一例として挙げられる。
(例2‐5a)「同一のブロックBLKに対して実行された上書きリフレッシュ処理の、直近に実行されたブロックリフレッシュ処理からの実行回数が閾値以下である場合、上書きリフレッシュ処理の適用を決定し、閾値を超える場合、ブロックリフレッシュ処理の適用を決定する。」
(例2‐5b)「同一のワード線WLに対して実行された上書きリフレッシュ処理の、直近に実行されたブロックリフレッシュ処理からの実行回数が閾値以下である場合、上書きリフレッシュ処理の適用を決定し、閾値を超える場合、ブロックリフレッシュ処理の適用を決定する。」
なお、ブロックリフレッシュ処理が実行された場合、閾値分布はデータの書込み処理直後と同等の状態(例えば、カウント値が“0”の状態)にリセットされるため、これに伴って上書きリフレッシュ処理の実行回数も“0”にリセットされる。
1.2.3.7 上書きリフレッシュ処理による閾値分布の改善率
また、上述の通り、上書きリフレッシュ処理は、実行回数が増えるにつれて、マージンの改善率が低下し得る。このため、上書きリフレッシュ処理の適用条件は、前回の上書きリフレッシュ処理によるマージンの改善率に基づいて設定され得る。マージンの改善率とは、例えば、上書きリフレッシュ処理の実行の直前のマージンと直後のマージンとの比較結果(図13の例では、例えば、(Δ”−Δ’)等に相当)を示す。すなわち、マージンの改善率の低下と、マージンの低下とが関連付けられる。
マージンの改善率に基づいて設定される上書きリフレッシュ処理の適用条件の具体例としては、例えば、以下の条件が一例として挙げられる。
(例2‐6a)「前回の上書きリフレッシュ処理の前後における履歴テーブル内のシフトインデックスの差が閾値を超える場合、上書きリフレッシュ処理の適用を決定し、閾値以下である場合、ブロックリフレッシュ処理の適用を決定する。」
(例2‐6b)「前回の上書きリフレッシュ処理の前後におけるエラービット数の差が閾値を超える場合、上書きリフレッシュ処理の適用を決定し、閾値以下である場合、ブロックリフレッシュ処理の適用を決定する。」
(例2‐6c)「前回の上書きリフレッシュ処理の前後におけるエラービット数の減少率が閾値を超える場合、上書きリフレッシュ処理の適用を決定し、閾値以下である場合、ブロックリフレッシュ処理の適用を決定する。」
1.2.3.8 上書きリフレッシュ処理の実行頻度
また、上述の通り、上書きリフレッシュ処理は、実行回数が増えるにつれてマージンが低下していく傾向にある。これにより、上書きリフレッシュ処理の実行回数が増えると、リフレッシュ処理の発動条件が満たされるまでの時間が短くなり得る。すなわち、上書きリフレッシュ処理の実行回数が増えるにつれて、リフレッシュ処理の実行頻度が増加し得る。このため、上書きリフレッシュ処理の実行回数と、マージンの低下とが関連付けられる。
上書きリフレッシュ処理の実行頻度に基づいて設定される上書きリフレッシュ処理の適用条件の具体例としては、例えば、以下の条件が一例として挙げられる。
(例2‐7a)「単位時間当たりに実行された上書きリフレッシュ処理の回数が閾値以下の場合、上書きリフレッシュ処理の適用を決定し、閾値を超える場合、ブロックリフレッシュ処理の適用を決定する。」
(例2‐7b)「所定の処理の実行回数当たりに実行された上書きリフレッシュ処理の回数が閾値以下の場合、上書きリフレッシュ処理の適用を決定し、閾値を超える場合、ブロックリフレッシュ処理の適用を決定する。」
なお、(例2‐7b)における「所定の処理」とは、定期、又は不定期に繰り返し実行される処理であり、例えば、リフレッシュ処理の発動条件の判定処理や、履歴テーブルの更新処理等を含む。
1.2.3.9 ワード線アドレス
また、上述の通り、マージンを悪化させる要因となる変動要因は、ワード線WLに依存する。具体的には、NANDストリングNSの端部に位置する数本のワード線WLに対応するメモリセルトランジスタMTの閾値分布は、マージンが低下しやすいのに対し、その他の多数のワード線WLに対応するメモリセルトランジスタMTの閾値分布は、マージンが低下しにくい。すなわち、端部に位置する数本のワード線WLに対応するマージンが低下している場合は、ワード線WL単位で行う上書きリフレッシュ処理が有効であるが、その他の多数のワード線WLに対応するマージンが低下している場合は、ブロックBLK単位で行うブロックリフレッシュ処理の方が有効である可能性がある。このため、上書きリフレッシュ処理の適用条件は、ワード線WLのアドレスに基づいて設定され得る。
ワード線WLのアドレスに基づいて設定される上書きリフレッシュ処理の適用条件の具体例としては、例えば、以下の条件が一例として挙げられる。
(例2‐8)「リフレッシュ処理の発動条件を満たすワード線WLが端部のワード線WLの場合、上書きリフレッシュ処理の適用を決定し、端部のワード線WLでない場合、ブロックリフレッシュ処理の適用を決定する。」
以上のように上書きリフレッシュの適用条件を設定することにより、リフレッシュ処理を実行する必要があるブロックBLKに対して、ワード線WL単位の上書きリフレッシュ処理と、ブロックBLK単位のブロックリフレッシュ処理のいずれを実行した方が効率がよいかを適切に判定することができる。
なお、上述した上書きリフレッシュ処理の適用条件の各々は、任意のリフレッシュ処理の発動条件に対して、独立に設定可能である。また、上述した上書きリフレッシュ処理の適用条件は、複数の条件を組み合わせて用いてもよい。
1.2.4 予約条件のフローチャートについて
次に、上述したリフレッシュ処理の発動条件、及び上書きリフレッシュ処理の適用条件を採用した場合の具体的なフローチャートのいくつかの例を示す。
1.2.4.1 第1例
図14は、リフレッシュ処理の発動条件としてシフト量ΔVに基づく条件(例1‐3a)が適用され、上書きリフレッシュ処理の適用条件としてシフト量ΔVに基づく条件(例2‐3a)が適用された場合のフローチャートの一例である。具体的には、図14に示されるフローチャートは、図10におけるステップST21〜ST28に対応する。
図14に示すように、ステップST21aにおいて、メモリコントローラ200は、ステップST20で更新された履歴テーブルを参照し、読出し対象のワード線WLに対応するシフトインデックスが閾値X(例えば“3”)を超えるか否かを判定する。シフトインデックスが閾値X以下の場合(ステップST21a;no)、メモリコントローラ200は、上書きリフレッシュ処理及びブロックリフレッシュ処理を予約することなく、読出し動作を終了する。一方、シフトインデックスが閾値Xを超える場合(ステップST21a;yes)、メモリコントローラ200は、当該ワード線WLに対するリフレッシュ処理の実行を決定し、処理はステップST22aに進む。
ステップST22aにおいて、メモリコントローラ200は、再度履歴テーブルを参照し、リフレッシュ処理の実行が決定したワード線WLに対応するシフトインデックスが閾値Y(例えば“4”)を超える否かを判定する。シフトインデックスが閾値Yを超える場合(ステップST22a;yes)、処理はステップST23〜ST25に進み、図10において説明したようにブロックリフレッシュ処理の予約、実行、及びブロックリフレッシュフラグのリセット等の処理を行う。一方、シフトインデックスが閾値Y以下の場合(ステップST22a;no)、処理はステップST26〜ST28に進み、図10において説明したように上書きリフレッシュ処理の予約、実行、及び上書きリフレッシュフラグのリセット等の処理を行う。
なお、図10において上述したように、ステップST24及びST25、並びにステップST27及びST28はそれぞれ、ステップST23及びST26の直後に行う必要はなく、バックグラウンドで適切なタイミングで実行してもよい。
このように、リフレッシュ処理の発動条件と、上書きリフレッシュ処理の適用条件とが同じ評価対象(図14の例では、シフトインデックス)である場合、ステップST22aにおける閾値Yは、ステップST21aにおける閾値Xよりも大きい値が設定される。
以上のように動作することにより、履歴テーブルのシフトインデックスに基づいて、まず、リフレッシュ処理を実行するか否かを判定することができる。そして、次に、リフレッシュ処理を実行することが決定した場合、上書きリフレッシュ処理又はブロックリフレッシュ処理のいずれを実行するかを、シフトインデックスに基づいて更に判定することができる。
1.2.4.2 第2例
図15は、リフレッシュ処理の発動条件としてシフト量ΔVに基づく条件(例1‐3a)が適用され、上書きリフレッシュ処理の適用条件としてシフト量ΔVに基づく条件(例2‐3a)、及びワード線WLのアドレスに基づく条件(例2‐8)が併せて適用された場合のフローチャートの一例である。具体的には、図15に示されるフローチャートは、図14において示されたフローチャートに更にステップST29が追加されたものである。
図15に示すように、ステップST21aにおける動作は、図14の場合と同様であるため、説明を省略する。
ステップST22aにおいて、メモリコントローラ200は、リフレッシュ処理の実行が決定したワード線WLに対応するシフトインデックスが閾値Y(例えば“4”)を超えるか否かを判定する。シフトインデックスが閾値Yを超える場合(ステップST22a;yes)、処理はステップST23に進む。一方、シフトインデックスが閾値Y以下の場合(ステップST22a;no)、処理はステップST29に進む。
ステップST29において、メモリコントローラ200は、ステップST21a及びST22aにおける判定の結果、閾値Xを超え、かつ閾値Y以下であるシフトインデックスに対応するワード線WLが、端部のワード線WL(例えば、選択トランジスタST1及びST2、又は接合部JTの近傍のワード線WL)であるか否かを判定する。当該ワード線WLが端部のワード線WLでない場合(ステップST29;no)、処理はステップST23に進み、ブロックリフレッシュ処理が予約される。端部のワード線WLである場合(ステップST25;yes)、処理はステップST26に進み、上書きリフレッシュ処理が予約される。
ステップST23〜ST25、及びステップST26〜ST28の処理は、図14の場合と同様であるため、説明を省略する。
以上のように動作することにより、図14では上書きリフレッシュ処理を実行すると判定される場合について、「対象のワード線WLがNANDストリングNSの端部に位置すること」という条件を更に課すことができる。このため、NANDストリングNSの端部のみのマージンが低下している場合には上書きリフレッシュ処理を実行し、NANDストリングNS全体のマージンが低下している場合にはブロックリフレッシュ処理を実行することができる。
1.2.4.3 第3例
図16は、リフレッシュ処理の発動条件としてシフト量ΔVに基づく条件(例1‐3a)が適用され、上書きリフレッシュ処理の適用条件として上書きリフレッシュ処理の実行回数に基づく条件(例2‐5)が適用された場合のフローチャートの一例である。具体的には、図16に示されるフローチャートは、図14において示されたフローチャートにおけるステップST22aに代えてステップST22bが設定され、更にステップST30及びST31が追加されたものである。
図16に示すように、ステップST21aにおける動作は、図14の場合と同様であるため、説明を省略する。
ステップST22bにおいて、メモリコントローラ200は、リフレッシュ処理の実行が決定したワード線WLに対して実行された上書きリフレッシュ処理の回数が閾値Zを超えるか否かを判定する。
判定の結果、上書きリフレッシュ処理の回数が閾値Zを超える場合(ステップST22b;yes)、処理はステップST23〜ST25に進む。ステップST23〜ST25の処理は、図14の場合と同様であるため、説明を省略する。続いて、ステップST30において、メモリコントローラ200は、ブロックリフレッシュ処理の実行が完了したブロックBLK内のワード線WLに対応付けて記憶された上書きリフレッシュ処理の回数を“0”にリセットし、読出し動作を終了する。
一方、上書きリフレッシュ処理の回数が閾値Z以下である場合(ステップST22b;no)、処理はステップST26に進む。ステップST26〜ST28の処理は、図14の場合と同様であるため、説明を省略する。続いて、ステップST31において、メモリコントローラ200は、対象のワード線WLに対する上書きリフレッシュ処理の回数をインクリメントし、読出し動作を終了する。
以上のように動作することにより、直近のブロックリフレッシュ処理以降において、上書きリフレッシュ処理が何度実行されたかに基づいて、上書きリフレッシュ処理の実行可否を判定することができる。
1.2.4.4 第4例
図17は、リフレッシュ処理の発動条件としてシフト量ΔVに基づく条件(例1‐3a)が適用され、上書きリフレッシュ処理の適用条件として所定範囲内に閾値電圧を有するメモリセル数に基づく条件(例2‐1)が適用された場合のフローチャートの一例である。具体的には、図17に示されるフローチャートは、図14において示されたフローチャートにおけるステップST22aに代えてステップST22cが設定され、更にステップST32、ST33、及びST34が追加されたものである。
図17に示すように、ステップST21aにおける動作は、図14の場合と同様であるため、説明を省略する。
続いて、ステップST32において、メモリコントローラ200は、ステップST21aにおいてリフレッシュ処理の実行が決定したワード線WLに対して、電圧V1によるシングルレベルリードコマンドを発行する。シングルレベルリード処理は、複数の読出しレベル(例えば、下位データの読出しであれば、電圧VA及びVE)を用いてデータの読出しを行う通常リード処理と異なり、指定された単一の読出しレベルのみを用いてデータの読出しを行う。NANDフラッシュメモリ100は、電圧V1を用いてデータを読み出し、これをメモリコントローラ200に送信する。
続いて、ステップST33において、メモリコントローラ200は、ステップST21aにおいてリフレッシュ処理の実行が決定したワード線WLに対して、電圧V2によるシングルレベルリードコマンドを発行する。NANDフラッシュメモリ100は、電圧V2を用いてデータを読み出し、これをメモリコントローラ200に送信する。
“Er”状態と“A”状態との間のマージンを評価する場合、電圧V1及びV2は、例えば、“Er”状態に対応する閾値分布のピークと、“A”状態に対応する閾値分布のピークと、の間に設定される。より具体的には、例えば、電圧V1及びV2は、図10におけるステップST16又はST18において誤り訂正処理に成功した際の読出し電圧AV+ΔVを挟むように設定されてもよい。また、例えば、電圧V1及びV2は、0Vとデフォルトの読出し電圧VAとにそれぞれ設定されてもよい。いずれにしても、電圧V1及びV2は、2つの閾値電圧の間において、“Er”状態から高電圧側に有意にシフトしたメモリセルトランジスタMTの数が評価できるように設定される。
ステップST34において、メモリコントローラ200は、ステップST32及びST33において読み出された2つの読出しデータに対して論理演算(例えば、排他的論理和XOR)を実行することで、電圧V1と電圧V2との間において閾値電圧を有するメモリセルを特定し、更に、排他的論理和XORの結果に含まれる“1”のビット数をカウントすることで、当該特定されたメモリセルの数M0を算出する。
なお、NANDフラッシュメモリ100は、ステップST32及びST33において、読出したデータをメモリコントローラ200に送信することなく、センスアンプモジュール140内のラッチ回路ADL〜SDLに保持してもよい。また、NANDフラッシュメモリ100は、ステップST34において、センスアンプモジュール140内の演算部OPによって上述の論理演算(XOR)を実行し、その結果をメモリコントローラ200に送信してもよい。
続いて、ステップST22cにおいて、メモリコントローラ200は、ステップST34において算出されたメモリセル数M0が閾値Mを超えるか否かを判定する。
閾値電圧が電圧V1及びV2間のメモリセル数M0が閾値Mを超える場合(ステップST22c;yes)、処理はステップST23に進み、ブロックリフレッシュ処理が予約される。一方、メモリセル数M0が閾値M以下である場合(ステップST22c;no)、処理はステップST24に進み、上書きリフレッシュ処理が予約される。
以上のように動作することにより、2回のシングルレベルリード処理の結果を用いてマージンを評価し、上書きリフレッシュ処理を実行すべきか、ブロックリフレッシュ処理を実行すべきか、を適切に判定することができる。
1.2.5 上書きリフレッシュ処理について
次に、第1実施形態に係るメモリシステムにおける上書きリフレッシュ処理について説明する。
1.2.5.1 上書きリフレッシュ処理の概要
まず、第1実施形態に係るメモリシステムにおける上書きリフレッシュ処理の概要について図18に示すフローチャートを用いて説明する。以下の説明では、上書きリフレッシュ処理の実行対象であるワード線WLを選択ワード線WLと呼び、その他のワード線WLを非選択ワード線WLと呼ぶ。
上書きリフレッシュ処理は、ベリファイ処理及び上書き処理の2つの動作を含む。ベリファイ処理は、選択ワード線WLに接続されたメモリセルトランジスタMTのうち、上書きリフレッシュ処理を実行すべき程度に閾値電圧が低下しているものを特定するための処理である。このベリファイ処理は、上書き処理の前に実行されるため、「プリベリファイ処理」とも呼ぶ。上書き処理は、プリベリファイ処理によって検出されたメモリセルトランジスタMTに対してプログラム処理(すなわち電荷蓄積層へ電荷をトラップさせる処理)を実行し、閾値電圧を上昇させるための処理である。
図18に示すように、ステップST240において、メモリコントローラ200は、NANDフラッシュメモリ100内の上書きリフレッシュ処理対象であるワード線WLに接続されたメモリセルトランジスタMTに対してリード処理を行い、誤り訂正を行う。これにより、メモリコントローラ200は、上書きリフレッシュ処理の対象であるワード線WLに接続されたメモリセルトランジスタMTが保持することを期待されるデータ(「期待データ」とも呼ぶ。)を取得する。なお、ステップST240における期待データは、図11において説明したステップST16によって誤り訂正されたデータを流用してもよい。
続いて、ステップST241において、メモリコントローラ200は、NANDフラッシュメモリ100に対して、プリベリファイ処理に適用されるパラメタの設定コマンドを発行する。これに伴い、NANDフラッシュメモリ100には、プリベリファイ処理に適用されるパラメタが設定される。プリベリファイ処理に適用されるパラメタは、例えば、ベリファイ電圧を含む。
続いて、ステップST242において、メモリコントローラ200は、NANDフラッシュメモリ100に対して、上書き処理に適用されるパラメタの設定コマンドを発行する。これに伴い、NANDフラッシュメモリ100には、上書き処理に適用されるパラメタが設定される。上書き処理に適用されるパラメタは、例えば、プログラム電圧を含む。
続いて、ステップST243において、メモリコントローラ200は、NANDフラッシュメモリ100に対して、上書きリフレッシュ処理の実行コマンドを発行する。この際、メモリコントローラ200は、期待データをNANDフラッシュメモリ100に転送する。NANDフラッシュメモリ100は、当該コマンド受けると、ステップST244及びST245において、上書きリフレッシュ処理を実行する。
具体的には、ステップST244において、NANDフラッシュメモリ100は、選択ワード線WLに接続されたメモリセルトランジスタMTに対して、ステップST241におけるパラメタにしたがってプリベリファイ処理を実行する。これにより、上書き処理を実行すべきメモリセルトランジスタMT、すなわち、閾値電圧がベリファイ電圧を下回るメモリセルトランジスタMTが特定される。
ステップST245において、NANDフラッシュメモリ100は、ステップST244において特定されたメモリセルトランジスタMTに対して、ステップST242において設定されたパラメタにしたがって上書き処理を実行する。これにより、閾値電圧の分布のうち、電圧が低い方の分布を高電圧側にシフトさせることができる。
ステップST246において、NANDフラッシュメモリ100は、上書きリフレッシュ処理の完了をメモリコントローラ200に通知する。
以上により、上書きリフレッシュ処理が終了する。
1.2.5.2 コマンドシーケンス
次に、メモリコントローラ200から発行される上書きリフレッシュ処理のコマンドシーケンスについて説明する。
まず、第1実施形態に係るメモリシステムの上書きリフレッシュ処理における、期待データを取得するためのコマンドシーケンスについて図19を用いて説明する。具体的には、図19では、上書きリフレッシュ処理の実行対象であるワード線WLから期待データを取得するために、シフトリード処理によってデータを読み出すためのコマンドシーケンスが示される。なお、図20以降に示されるコマンドシーケンスでは、連続する一連のコマンドシーケンスが、複数行にわたって示される場合がある。この場合、一連のコマンドシーケンスは、ある行に示されたコマンドシーケンスから、当該行の末尾に付されたローマ数字(I,II等)と同一のローマ数字が先頭に付された行に向かって、連続して実行されるものとする。
図19に示すように、まず、メモリコントローラ200は、コマンド“EFh”をNANDフラッシュメモリ100へ送信する。コマンド“EFh”は、設定変更の旨をNANDフラッシュメモリ100に宣言するセットフィーチャコマンドである。引き続き、メモリコントローラ200は、1サイクルにわたってアドレスADDを送信した後、データを4サイクルにわたって送信する(“D0”〜“D3”)。このデータ“D0”〜“D3”が、セットフィーチャコマンドにより変更される設定値に関する情報であり、ここではシフトリード処理に適用されるシフト量ΔVA〜ΔVGを含む。これにより、NANDフラッシュメモリ100において、シフト量ΔVA〜ΔVGがアドレスADDにセットされ、以降のシフトリード処理に適用される。
続いて、メモリコントローラ200は、コマンド“01h”及び読出しコマンド“00h”を発行し、NANDフラッシュメモリ100に送信する。コマンド“00h”は、NANDフラッシュメモリ100からのデータの読出しを命令するコマンドである。NANDフラッシュメモリ100は、連続するコマンド“01h”及びコマンド“00h”を受け取ると、下位データの読出し命令であることを認識する。
メモリコントローラ200は、例えば5サイクルにわたってアドレスADDを発行し、NANDフラッシュメモリ100に送信する。続いてメモリコントローラ200は、コマンド“30h”を発行し、NANDフラッシュメモリ100に送信する。コマンド“30h”によって、シーケンサ170は、読出し処理を開始し、信号RBnを“L”レベルにして、NANDフラッシュメモリ100がビジー状態であることをメモリコントローラ200に知らせる。下位データの読出しが完了した後、シーケンサ170は、信号RBnを“H”レベルにして、NANDフラッシュメモリ100がレディ状態であることをメモリコントローラ200に知らせる。NANDフラッシュメモリ100は、読み出した下位データをメモリコントローラ200に転送する。以下の説明では、データの「読出し」は、NANDフラッシュメモリ100におけるデータの読出し、及び当該読み出したデータのメモリコントローラ200への転送を含むものとする。
続いて、メモリコントローラ200は、中位データの読出し、及び上位データの読出しを実行する。中位データ及び上位データの読出しに際しては、コマンド“00h”に代えて、コマンド“02h”及び“03h”がそれぞれ発行される。これにより、NANDフラッシュメモリ100は、連続するコマンド“02h”及びコマンド“00h”を受け取ると、中位データの読出し命令であることを認識し、連続するコマンド“03h”及びコマンド“00h”を受け取ると、上位データの読出し命令であることを認識する。
各データの読出しが完了した後、ECC回路260は、読み出したデータの誤り訂正を実行し、期待データを得る。なお、ECC回路260は、各データの読出しが完了したら、各々のデータについて順次誤り訂正を実行してもよい。以上で、上書きリフレッシュ処理が終了する。
続いて、第1実施形態に係るメモリシステムにおける上書きリフレッシュ処理に際して実行される、パラメタを設定するためのコマンドシーケンスについて、図20を用いて説明する。具体的には、図20では、上書きリフレッシュ処理の実行対象であるワード線WLに印加される電圧を設定するためのコマンドシーケンスが示される。
図20に示すように、メモリコントローラ200は、例えば、4回にわたりセットフィーチャのコマンドセットを発行する。図20の例では、セットフィーチャのコマンドセットは、コマンド“EFh”、アドレス(“X1h”、“X2h”、“X3h”、又は“X4h”)、及び4サイクルにわたるデータ“D0”〜“D3”の組を示す。
具体的には、まず、メモリコントローラ200は、コマンド“EFh”をNANDフラッシュメモリ100へ送信する。コマンド“EFh”は、設定変更の旨をNANDフラッシュメモリ100に宣言するセットフィーチャコマンドである。引き続き、メモリコントローラ200は、アドレス“X1h”を送信する。アドレス“X1h”は、NANDフラッシュメモリ100において、セットフィーチャコマンドにより変更対象となる設定値を保持するフィーチャテーブル内のレジスタを指定するアドレスである。その後、メモリコントローラ200は、データを4サイクルにわたって送信する(“D0”〜“D3”)。このデータ“D0”〜“D3”が、セットフィーチャコマンドにより変更される設定値に関する情報を含む。これにより、NANDフラッシュメモリ100において、データ“D0”〜“D3”に含まれる情報がアドレス“X1h”にセットされ、以降の上書きリフレッシュ処理に適用される。そして、上述と同様の動作が、アドレス“X2h”、“X3h”、及び“X4h”についても実行される。
図21は、第1実施形態に係るメモリシステムにおけるフィーチャテーブルの一例を説明するための模式図である。図21では、図20において示されたアドレス“X1h”、“X2h”、“X3h”、及び“X4h”に保持される設定値の例が示される。
図21に示すように、アドレス“X1h”及び“X2h”には、例えば、プリベリファイ処理に適用されるベリファイ電圧のシフト量が補正量として保持される。より具体的には、アドレス“X1h”には、データ“D0”〜“D3”に対応する情報としてそれぞれ、“A”状態、“B”状態、“C”状態、及び“D”状態のメモリセルトランジスタMTに印加されるベリファイ電圧のシフト量ΔAvfy、ΔBvfy、ΔCvfy、及びΔDvfyが保持される。アドレス“X2h”には、データ“D0”〜“D2”に対応する情報としてそれぞれ、“E”状態、“F”状態、及び“G”状態のメモリセルトランジスタMTに印加されるベリファイ電圧のシフト量ΔEvfy、ΔFvfy、及びΔGvfyが保持される。シフト量ΔAvfy、ΔBvfy、…、及びΔGvfyは、例えば、通常の書込み動作時において各状態に適用される(デフォルト値の)ベリファイ電圧Avfy、Bvfy、…、及びGvfyからのマイナス側のシフト量として定義される。すなわち、プリベリファイ処理時におけるベリファイ電圧Avfy1、Bvfy1、…、及びGvfy1はそれぞれ、セットフィーチャ処理によって、Avfy−ΔAvfy、Bvfy−ΔBvfy、…、及びGvfy−ΔGvfyが適用される。これは、上述したように、消去状態からデータを書込んだ直後では閾値電圧が低電圧側にシフトしやすいが、上書き時にはこのような低電圧側へのシフトが発生しにくいと考えられるため、プリベリファイ処理時におけるベリファイ電圧は、デフォルト値のベリファイ電圧よりも低く設定し得るためである。また、上書きリフレッシュ処理によって、当初の書込み直後における理想の閾値分布の状態にまで必ずしも近づける必要が無いと判断される場合においても、プリベリファイ時におけるベリファイ電圧は、デフォルト値のベリファイ電圧よりも低い値が設定され得る。
なお、上述の設定例はあくまで一例であり、ベリファイ電圧のシフト量ΔAvfy〜ΔGvfyは、プラス側のシフト量として定義されてもよい。また、シフト量ΔAvfy〜ΔGvfyは、同一の値となるものがあってもよいが、互いに異なる値が設定可能となっている。
同様に、アドレス“X3h”及び“X4h”には、上書き処理に適用されるプログラム電圧のシフト量が補正量として保持される。より具体的には、アドレス“X3h”には、データ“D0”〜“D3”に対応する情報としてそれぞれ、“A”状態、“B”状態、“C”状態、及び“D”状態のメモリセルトランジスタMTに印加されるプログラム電圧のシフト量ΔApgm、ΔBpgm、ΔCpgm、及びΔDpgmが保持される。アドレス“X4h”には、データ“D0”〜“D2”に対応する情報としてそれぞれ、“E”状態、“F”状態、及び“G”状態のメモリセルトランジスタMTに印加されるベリファイ電圧のシフト量ΔEpgm、ΔFpgm、及びΔGpgmが保持される。シフト量ΔApgm、ΔBpgm、…、及びΔGpgmは、例えば、通常のプログラム処理時における1回目のループに適用されるプログラム電圧VPGM0からのシフト量として定義される。すなわち、上書き時におけるプログラム電圧VPGM_A、VPGM_B、…、及びVPGM_Gはそれぞれ、VPGM0+ΔApgm、VPGM0+ΔBpgm、…、及びVPGM0+ΔGpgmが適用される。上書き時におけるプログラム電圧VPGM_A〜VPGM_Gは、例えば、状態に対応する閾値電圧が高い状態ほど高い電圧値となるように設定される(VPGM_A≦VPGM_B≦…≦VPGM_G)。このように、シフト量ΔApgm、ΔBpgm、…、及びΔGpgmは、同一の値となるものがあってもよいが、互いに異なる値が設定可能となっている。
次に、第1実施形態に係るメモリシステムにおける上書きリフレッシュ処理をNANDフラッシュメモリに実行させるためのコマンドシーケンスについて、図22を用いて説明する。図22に示されるコマンドシーケンスは、図20に示された設定変更に係るコマンドシーケンスに続いて発行される。
図22に示すように、メモリコントローラ200は、まずプリフィックスコマンド“XXh”を発行する。コマンド“XXh”は、メモリコントローラ200がNANDフラッシュメモリ100に対して、上書きリフレッシュ処理を実行する旨を宣言するためのコマンドである。引き続きメモリコントローラ200は、例えば、コマンド“01h”及び書込みコマンド“80h”を発行し、NANDフラッシュメモリ100に送信する。コマンド“80h”は、NANDフラッシュメモリ100へのデータの書込みを命令するコマンドである。NANDフラッシュメモリ100は、連続するコマンド“01h”及びコマンド“80h”を受け取ると、後続する書込みデータDATが下位データであることを認識する。
メモリコントローラ200は、例えば5サイクルにわたってアドレスADDを発行し、NANDフラッシュメモリ100に送信する。このアドレスADDは、例えば、図10のステップST21及びST22において、上書きリフレッシュ処理の対象と判定されたブロックBLK内の特定のワード線WLに接続されたメモリセルトランジスタMT(例えば、ストリングユニットSU内の特定のセルユニットCU)のアドレスを指定する。続いてメモリコントローラ200は、下位データを示す書込みデータDATをNANDフラッシュメモリ100に送信する。当該書込みデータDATには、例えば、図10に示されるステップST16又はST18において誤り訂正されたデータ(すなわち、期待データ)が用いられる。
メモリコントローラ200は、コマンド“1Ah”を発行し、NANDフラッシュメモリ100に送信する。コマンド“1Ah”によって、シーケンサ170は、信号RBnを“L”レベルにし、直前に受信したデータDAT(すなわち、下位データに対応する期待データ)が選択センスアンプユニットSAU内のラッチ回路(例えばラッチ回路ADL)へ入力される。下位データの入力が完了した後、シーケンサ170は、信号RBnを“H”レベルにして、NANDフラッシュメモリ100がレディ状態であることをメモリコントローラ200に知らせる。
続いて、メモリコントローラ200は、コマンド“02h”及び“80h”を発行し、NANDフラッシュメモリ100に送信する。NANDフラッシュメモリ100は、連続するコマンド“02h”及びコマンド“80h”を受け取ると、後続する書込みデータDATが中位データであることを認識する。メモリコントローラ200は、5サイクルにわたってアドレスADDを発行した後、中位データを示す書込みデータDATをNANDフラッシュメモリ100に送信する。
メモリコントローラ200は、コマンド“1Ah”を発行し、NANDフラッシュメモリ100に送信する。コマンド“1Ah”によって、シーケンサ170は、信号RBnを“L”レベルにし、直前に受信したデータDAT(すなわち、中位データに対応する期待データ)が選択センスアンプユニットSAU内のラッチ回路(例えばラッチ回路BDL)へ入力される。中位データの入力が完了した後、シーケンサ170は、信号RBnを“H”レベルにして、NANDフラッシュメモリ100がレディ状態であることをメモリコントローラ200に知らせる。
続いて、メモリコントローラ200は、コマンド“03h”及び“80h”を発行し、NANDフラッシュメモリ100に送信する。NANDフラッシュメモリ100は、連続するコマンド“03h”及びコマンド“80h”を受け取ると、後続する書込みデータDATが上位データであることを認識する。メモリコントローラ200は、5サイクルにわたってアドレスADDを発行した後、上位データを示す書込みデータDATをNANDフラッシュメモリ100に送信する。
メモリコントローラ200は、コマンド“10h”を発行し、NANDフラッシュメモリ100に送信する。コマンド“10h”によって、シーケンサ170は、信号RBnを“L”レベルにし、直前に受信したデータDAT(すなわち、上位データに対応する期待データ)が選択センスアンプユニットSAU内のラッチ回路(例えばラッチ回路CDL)へ入力される。上位データの入力が完了した後、NANDフラッシュメモリ100は、入力されたデータに基づく上書きリフレッシュ処理(すなわち、プリベリファイ処理及び上書き処理)を実行する。上書きリフレッシュ処理が終了すると、シーケンサ170は、信号RBnを“H”レベルにして、上書きリフレッシュ処理が完了したことをメモリコントローラ200に知らせる。
以上で、上書きリフレッシュ処理が終了する。
1.2.5.3 タイミングチャート
次に、上書きリフレッシュ処理の際のタイミングチャートついて説明する。
まず、第1実施形態に係るメモリシステムにおける上書きリフレッシュ処理に際して実行されるプリベリファイ処理のタイミングチャートについて、図23を用いて説明する。すなわち、図23は、図18において示されたステップST244に対応する。図23では、プリベリファイ処理時にNANDフラッシュメモリ100内のビット線BL、セレクトゲート線SGD及びSGS、選択ワード線WL、非選択ワード線WL、及び信号STBに印加される電圧の推移が示される。
ビット線BLの電圧は、例えば、センスアンプSA内に含まれるセンスノード(図示せず)に転送される。これにより、センスノードの電圧は、選択ワード線に接続されたメモリセルトランジスタMTがオン状態となるかオフ状態となるかに応じて変動する。そして、センスノードの電圧の変動量に応じてデータが“0”か“1”かが判定される。本例では、センスノードの電圧が或る閾値を下回った際には、センスアンプSAはメモリセルトランジスタMTがオン状態であると判定し、内部のラッチ回路にデータ“0”を保持する。逆に、センスノードの電圧が当該閾値以上を維持すれば、センスアンプSAはメモリセルトランジスタMTがオフ状態であると判定し、データ“1”を保持する。
図23に示すように、NANDフラッシュメモリ100は、プリベリファイ処理において、上書き処理を実行するメモリセルトランジスタMTを特定する処理を、“A”状態〜“G”状態についてそれぞれ実行する。具体的には、時刻T1〜T18がプリベリファイ処理の全体期間であり、そのうちの時刻T3〜T5の期間DpvfyA、T5〜T7の期間DpvfyB、T7〜T9の期間DpvfyC、T9〜T11の期間DpvfyD、T11〜T13の期間DpvfyE、T13〜T15の期間DpvfyF、及びT15〜T17の期間DpvfyGがそれぞれ“A”状態〜“G”状態用のプリベリファイ処理に相当する。
時刻T1において、ロウデコーダ120は、ワード線WLに電圧VREADを印加し、セレクトゲート線SGS及び選択ストリングユニットSUに対応するセレクトゲート線SGD(選択SGD)に電圧VSGを印加する。電圧VSGは、選択トランジスタST1及びST2をオン状態とする電圧である。なお、非選択ストリングユニットSUに対応するセレクトゲート線SGD(非選択SGD)には、電圧VSS(例えば、0V)が印加される。これにより、選択ストリングユニットSUが選択される。
時刻T2において、ロウデコーダ120は、選択ワード線WLに電圧VSSを印加し、センスアンプSAは、ビット線BLに電圧VSSより高い電圧VSENを印加する。
時刻T3において、ロウデコーダ120は、選択ワード線WLに電圧Avfy1を印加する。そして、シーケンサ170は、選択ワード線WLに電圧Avfy1が印加されている間である時刻T4において、信号STBをアサート(図23の例では、“H”レベルに)する。
例えば、選択ワード線WLに電圧Avfy1が印加されることによってメモリセルトランジスタMTがオンした場合には、ビット線BLからソース線SLに電流が流れる。この結果、センスノードの電荷も放電され、センスノードの電位が低下する。シーケンサ170は、時刻T4において信号STBをアサートして、センスノードの状態をラッチ回路(例えば、ラッチ回路SDL)に取り込む。つまり、メモリセルトランジスタMTがオンしていればプリベリファイ処理にフェイルしたとしてラッチ回路SDLにデータ“0”が格納され、オフしていればプリベリファイ処理にパスしたとしてラッチ回路SDLにデータ“1”が保持される。これにより、ラッチ回路SDLには、電圧Avfy1によるプリベリファイ処理の結果が保持される。
シーケンサ170は、期待データが“A”状態であり、かつ電圧Avfy1によってオフ状態となった(“A”状態用のプリベリファイ処理にパスした)メモリセルトランジスタMTを抽出する。そして、シーケンサ170は、“A”状態用のプリベリファイ処理にパスしたメモリセルトランジスタMTに接続されたビット線BLが、後続する上書きの際に上書き処理禁止(インヒビット)状態となるように、ラッチ回路に対してマスク処理を施す。具体的には、センスアンプSA内の演算部OPは、抽出されたメモリセルトランジスタMTに対応するラッチ回路ADL〜CDLに期待データとして保持された“A”状態に対応するデータ“110”を、“Er”状態に対応するデータ“111”に変更する。これにより、期待データが“A”状態のメモリセルトランジスタMTは、閾値電圧が電圧Avfy1以上のものに対しては上書き処理が禁止される一方、閾値電圧が電圧Avfy1未満のものに対しては上書き処理が許可される。
続いて、時刻T5において、ロウデコーダ120は、選択ワード線WLに電圧Bvfy1を印加する。そして、シーケンサ170は、選択ワード線WLに電圧Bvfy1が印加されている間である時刻T6において、信号STBをアサートして、センスノードの状態をラッチ回路SDLに取り込む。これにより、ラッチ回路SDLには、電圧Bvfy1によるプリベリファイ処理の結果が保持される。
シーケンサ170は、期待データが“B”状態であり、かつ電圧Bvfy1によってオフ状態となった(“B”状態用のプリベリファイ処理にパスした)メモリセルトランジスタMTを抽出する。そして、シーケンサ170は、“B”状態用のプリベリファイ処理にパスしたメモリセルトランジスタMTに接続されたビット線BLが、後続する上書きの際に上書き禁止状態となるように、ラッチ回路に対してマスク処理を施す。具体的には、センスアンプSA内の演算部OPは、抽出されたメモリセルトランジスタMTに対応するラッチ回路ADL〜CDLに期待データとして保持された“B”状態に対応するデータ“100”を、“Er”状態に対応するデータ“111”に変更する。これにより、期待データが“B”状態のメモリセルトランジスタMTは、閾値電圧が電圧Bvfy1以上のものに対しては上書き処理が禁止される一方、閾値電圧が電圧Bvfy1未満のものに対しては上書き処理が許可される。
以下同様にして、シーケンサ170は、期待データが“C”状態〜“G”状態のメモリセルトランジスタMTはそれぞれ、閾値電圧が電圧Cvfy1〜Gvfy1以上のものに対しては上書き処理が禁止される一方、閾値電圧が電圧Cvfy1〜Gvfy1未満のものに対しては上書き処理が許可される。
“A”状態〜“G”状態までの状態に対する全てのプリベリファイ処理が完了した後、時刻T17において、ビット線BLは、電圧VSSに放電される。時刻T18において、ロウデコーダ120は、ワード線WL、並びにセレクトゲート線SGS及びSGDに電圧VSSを印加し、プリベリファイ処理が終了する。
以上のように動作することにより、プリベリファイ処理によって上書き処理が実行されるメモリセルトランジスタMTが特定される。
次に、第1実施形態に係るメモリシステムにおける上書きリフレッシュ処理に際して実行される上書き処理のタイミングチャートについて、図24を用いて説明する。すなわち、図24は、図18において示されたステップST245に対応する。図24では、上書き処理時にNANDフラッシュメモリ100内のビット線BL、セレクトゲート線SGD及びSGS、選択ワード線WL、非選択ワード線WL、及びソース線SLに印加される電圧の推移が示される。
図24に示すように、NANDフラッシュメモリ100は、上書き処理において、“A”状態〜“G”状態の各々について個別に1つの上書き用のプログラム電圧を使用する。具体的には、時刻Ta1〜Ta8の期間DrpgmA、時刻Tb1〜Tb8の期間DrpgmB、時刻Tc1〜Tc8の期間DrpgmC、時刻Td1〜Td8の期間DrpgmD、時刻Te1〜Te8の期間DrpgmE、時刻Tf1〜Tf8の期間DrpgmF、及び時刻Tg1〜Tg8の期間DrpgmGがそれぞれ“A”状態〜“G”状態用の上書き処理に相当する。
時刻Ta1において、ロウデコーダ120は、選択SGDに電圧VSGを印加し、セレクトゲート線SGSに電圧VSGSを印加する。また、ソース線SLには電圧VDDが印加される。電圧VSGSは、電圧VSSより大きく、選択トランジスタST2をオフ状態とする電圧である。なお、非選択SGDには、電圧VSSが印加される。これにより、選択ストリングユニットSUが選択される。
時刻Ta2において、センスアンプSAは、ラッチ回路ADL〜CDLに“A”状態に対応するデータ“110”が保持された(すなわち、期待データが“A”状態に対応し、かつ“A”状態に対応するプリベリファイ処理にフェイルした)メモリセルトランジスタMTを抽出する。そして、センスアンプSAは、当該抽出されたメモリセルトランジスタMTを上書き処理の対象とみなし、当該メモリセルトランジスタMTに接続されたビット線BLに電圧VSSを印加して上書き許可状態にする。一方、センスアンプSAは、その他のメモリセルトランジスタMTを上書き処理の対象でないとみなし、当該メモリセルトランジスタMTに接続されたビット線BLに電圧VDDを印加して上書き禁止状態にする。
時刻Ta3において、ロウデコーダ120は、ワード線WLに電圧VPASSを印加する。電圧VPASSは、上書き処理が許可されたNANDストリングNSでは非選択ワード線WLに接続されたメモリセルトランジスタMTの閾値電圧上昇を抑制しつつ、上書き処理が禁止されたNANDストリングNSではメモリセルトランジスタMTの閾値上昇を抑制できる程度にカップリングによりチャネルを上昇させることのできる大きさを有する。
時刻Ta4において、ロウデコーダ120は、選択SGDに電圧VSGDを印加する。電圧VSGDは、上書き処理が許可されたNANDストリングNSにおける選択トランジスタST1をオン状態とし、かつ上書き処理が禁止されたNANDストリングNSにおける選択トランジスタST1をオフ状態とする電圧である。
時刻Ta5において、ロウデコーダ120は、選択ワード線WLに電圧VPGM_Aを印加し、非選択ワード線WLには引き続き電圧VPASSを印加する。これにより、選択ワード線WLに接続されたメモリセルトランジスタMTのうち、時刻Ta2において“A”状態用の上書き処理の対象であるメモリセルトランジスタMTの閾値電圧が上昇する。
時刻Ta6において、ロウデコーダ120は、選択ワード線WLに電圧VPASSを印加する。時刻Ta7において、ロウデコーダ120は、選択SGDに電圧VSSを印加し、センスアンプSAは、ビット線BLに電圧VSSを印加する。時刻Ta8において、ロウデコーダ120は、ワード線WLに電圧VSSを印加する。
以上により、“A”状態を対象とする上書き処理が終了する。
以降の期間DrpgmB、DrpgmC、…、及びDrpgmGにおいても、セレクトゲート線SGD及びSGS,並びにソース線SLは、期間DrpgmAと同様に動作する。また、センスアンプSAは、期間DrpgmB〜DrpgmGにおいて、ラッチ回路ADL〜CDLにそれぞれ“B”状態〜“G”状態に対応するデータが保持された(すなわち、期待データがそれぞれ“B”状態〜“G”状態に対応し、かつそれぞれ“B”状態〜“G”状態に対応するプリベリファイ処理にフェイルした)メモリセルトランジスタMTを抽出する。そして、センスアンプSAは、“B”状態〜“G”状態それぞれついて抽出されたメモリセルトランジスタMTを、期間DrpgmB〜DrpgmGにおいてそれぞれ上書き処理の対象とみなし、対応するビット線BLに電圧VSSを印加して上書き許可状態にする。一方、センスアンプSAは、その他のメモリセルトランジスタMTを上書き処理の対象でないとみなし、当該メモリセルトランジスタMTに接続されたビット線BLに電圧VDDを印加して上書き禁止状態にする。ロウデコーダ120は、期間DrpgmB〜DrpgmGにおいて、選択ワード線WLにそれぞれ電圧VPGM_B、VPGM_C、…、及びVPGM_Gを印加し、上書き処理対象のメモリセルトランジスタMTの閾値電圧を上昇させる。
以上のように動作することにより、“A”状態〜“G”状態の各々に対して個別に用意されたプログラム電圧を用いて上書き処理を実行することができる。これにより、各状態に対応する閾値分布のうちの最低電圧近傍を個別に高電圧側にシフトさせることができる。
1.3 本実施形態に係る効果
第1実施形態によれば、メモリコントローラ200は、メモリセルトランジスタMTからデータを読出した際、当該メモリセルトランジスタMTの閾値電圧の分布が変動要因によってどの程度変動しているかを判定し、ワード線WL単位で管理する。判定の結果、共通のワード線WLに接続された複数のメモリセルトランジスタMTが第1条件を満たすと判定された場合、メモリコントローラ200は、上書きリフレッシュ処理及びブロックリフレッシュ処理等のいずれかのリフレッシュ処理を実行することを決定する。更なる判定の結果、第1条件を満たすと判定された複数のメモリセルトランジスタMTが第2条件を満たすと判定された場合、メモリコントローラ200は、ワード線WL単位で上書きリフレッシュ処理の実行を決定する。一方、第2条件を満たさないと判定された場合、メモリコントローラ200は、当該ワード線WLを含むブロックBLK単位でリフレッシュ処理の実行を決定する。これにより、メモリセルトランジスタMTの閾値分布を理想の状態に近づける際に、ブロックリフレッシュ処理と、上書きリフレッシュ処理と、を適切に使い分けることができる。
補足すると、上書きリフレッシュ処理は、既にデータが書込まれているブロックBLKのうち、特定のワード線WLに対してのみ上書き処理を実行する。このため、上書きリフレッシュ処理は、ブロックBLK内の全データを他のブロックBLKに書き換えるブロックリフレッシュ処理よりも短時間で実行可能である。また、上書きリフレッシュ処理は、既にデータが書込まれているワード線WLに対して上書き処理を実行する。このため、消去状態からの書込みよりもプログラムループ数が少なくて済み、より短時間で実行可能である。このように、上書きリフレッシュ処理は、ホスト機器300からの指示による他の動作に与える影響を軽減することができ、ひいては、リフレッシュ処理に伴うレイテンシの悪化を抑制できる。一方、上書きリフレッシュ処理は、データを上書きするため、上書き対象と隣り合うメモリセルトランジスタMTの閾値電圧を上昇させ得る。これにより、上書きリフレッシュ処理を何度も実行することにより、隣り合う2つの閾値分布のうちの一方の最高電圧近傍と他方の最低電圧近傍とが重なりやすくなり、閾値分布を理想の状態に近づける効果が小さくなり得る。
第1実施形態では、メモリコントローラ200は、第1条件として、ECC回路260の誤り訂正条件、エラービット数、読出し電圧のシフト量、書込み完了からの経過時間、同一ページからの総読出し回数等を、ワード線WL又はブロック単位BLK等で管理し、評価する。これにより、メモリコントローラ200は、第1条件によって、メモリセルトランジスタMTが何らかのリフレッシュ処理によって閾値分布を改善させる必要があるか否かを判定できる。また、メモリコントローラ200は、第2条件として、所定範囲内に閾値電圧を有するメモリセル数、高電圧側エラービット数、Vthトラッキング処理によって決定された読出し電圧のデフォルトの読出し電圧からのシフト量、ECC回路260の誤り訂正条件、エラービット数の減少率、上書きリフレッシュの実行回数又は実行頻度、及び第1条件を満たすワード線WLのNANDストリング上の位置等を、ワード線WL単位で管理し、評価する。これにより、メモリコントローラ200は、第2条件によって、第1条件を満たすメモリセルトランジスタMTの閾値分布に対して、上書きリフレッシュの有効性を評価することができる。具体的には、例えば、所定範囲内に閾値電圧を有するメモリセル数や高電圧側エラービット数、Vthトラッキング処理によって決定された読出し電圧のデフォルトの読出し電圧からのシフト量等は、特に、“Er”状態と“A”状態とに対応する閾値分布間で増加し易く、上書きリフレッシュ処理によって改善しにくい。また、例えば、上書きリフレッシュ処理の実行頻度は、上書きリフレッシュ処理の実行回数が増加するほど、高頻度となりやすい。また、例えば、第1条件を満たすワード線WLの位置がNANDストリングNS上の端部に位置する場合、その他のワード線WLに対応するメモリセルトランジスタMTの閾値分布は正常範囲内であり得る(すなわち第1条件を満たさない)。しかしながら、第1条件を満たすワード線WLの位置が端部以外の位置である場合、その他のワード線WLに対応するメモリセルトランジスタMTの閾値分布も同様に正常範囲外で有り得る(すなわち第1条件を満たす)。このように、第1条件と第2条件とを適切に組み合わせることにより、何らかのリフレッシュ処理の実行が必要なメモリセルトランジスタMTに対して、上書きリフレッシュ処理又はブロックリフレッシュ処理のいずれが適切かを判定できる。したがって、リフレッシュ処理によってデータを読出し可能な状態に閾値分布を維持することによって読出しの失敗に伴うレイテンシの悪化を抑制すると共に、適切なリフレッシュ処理を選択することよってリフレッシュ処理の実行に伴うレイテンシの悪化を抑制することができる。
また、上述した第1条件及び第2条件の具体的な要件は、各条件に対して1つずつである必要はなく、複数の要件を組み合わされてもよい。これにより、より適切な条件を設定することができる。
また、メモリコントローラ200は、上書きリフレッシュ処理の実行を決定した後、NANDフラッシュメモリ100に対して、上書きリフレッシュ処理のための各種設定を指示するセットフィーチャコマンドと、プリベリファイ処理及び上書き処理を指示するコマンドと、を含む、一連のコマンドセットを発行する。これにより、NANDフラッシュメモリ100は、プリベリファイ処理及び上書き処理の際に選択ワード線WLに印加される電圧の、デフォルト値からの補正量を設定することができ、当該設定された補正量に基づき、プリベリファイ処理及び上書き処理を実行することができる。補正量は、(“A”状態〜“G”状態に対応する)期待データの各々に応じて個別に設定可能である。すなわち、NANDフラッシュメモリ100は、各状態に対して個別のベリファイ電圧及び上書き電圧を印加することができる。これにより、閾値電圧の大きさに応じてより適切な電圧を印加することができ、ひいては、閾値分布をより理想の状態に近づけることができる。
2. 第2実施形態
次に、第2実施形態に係るメモリシステムについて説明する。第2実施形態は、上書きリフレッシュ処理を実行することが決定したワード線WLに接続されたメモリセルトランジスタMTのうち、特定の状態を有するものに対してのみ上書きリフレッシュ処理を実行する点において、第1実施形態と異なる。以下では、第1実施形態と同等の構成及び動作についてはその説明を省略し、第1実施形態と異なる構成及び動作について主に説明する。
2.1 コマンドシーケンスについて
第2実施形態に係るメモリシステムにおける上書きリフレッシュ処理に際して実行される、パラメタを設定するためのコマンドシーケンスについて説明する。第2実施形態におけるパラメタ設定のためのコマンドシーケンスは、第1実施形態において示された図21と同様である。
図25は、第2実施形態に係るメモリシステムにおけるフィーチャテーブルの一例を説明するための概念図である。図25では、図20において示されたアドレス“X1h”、“X2h”、“X3h”、及び“X4h”に保持される設定値の例が示される。
図25に示すように、アドレス“X1h”〜“X4h”に保持される情報は、アドレス“X2h”内のデータ“D3”に対応する情報を除いて、第1実施形態において説明した図21と同様である。
アドレス“X2h”のデータ“D3”に対応する部分には、“A”状態〜“G”状態にのうち、いずれの状態に対してプリベリファイ処理を実施するかを示す情報が保持される。
図26は、第2実施形態に係るメモリシステムにおけるフィーチャテーブルの一例を説明するための概念図である。図26では、図25において示された概念図のうち、アドレス“X2h”の内のデータ“D3”に対応する部分に保持される設定値の例が更に詳細に示される。
図26に示すように、アドレス“X2h”内のデータ“D3”の1ビット目には、“A”状態用のプリベリファイ処理を許可するか否かを示す情報が保持される。より具体的には、例えば、データ“D3”の1ビット目に“1”が保持されれば“A”状態用のプリベリファイ処理が許可され、“0”が保持されれば禁止される。
同様に、データ“D3”の2ビット目〜7ビット目にはそれぞれ、“B”状態〜“G”状態用のプリベリファイ処理を許可するか否かを示す情報が保持される。より具体的には、データ“D3”の2ビット目〜7ビット目に“1”が保持されれば、それぞれ“B”状態〜“G”状態用のプリベリファイ処理が許可され、“0”が保持されれば禁止される。
例えば、“A”状態〜“C”状態を期待値として有するメモリセルトランジスタMTのみを上書きリフレッシュ処理の対象とする場合、アドレス“X2h”のデータ“D3”の1ビット目〜3ビット目に“1”が保持され、4ビット目〜7ビット目に“0”が保持される。また、例えば、“F”状態及び“G”状態を期待値として有するメモリセルトランジスタMTのみを上書きリフレッシュ処理の対象とする場合、アドレス“X2h”のデータ“D3”の6ビット目及び7ビット目に“1”が保持され、1ビット目〜5ビット目に“0”が保持される。
これにより、全ての状態のメモリセルトランジスタMTを対象としてプリベリファイ処理を実施するのでなく、特定の状態の期待データを有するメモリセルトランジスタMTに対してのみプリベリファイ処理を実行することができる。これにより、上書きリフレッシュ処理の実行範囲を特定の状態に限定することができる。
2.2 タイミングチャートについて
第2実施形態に係るメモリシステムにおける上書きリフレッシュ処理の際のタイミングチャートについて、いくつかの例を用いて説明する。
2.2.1 “A”状態〜“C”状態が指定される場合
まず、“A”状態〜“C”状態の期待値を有するメモリセルトランジスタMTが上書きリフレッシュ処理の対象範囲として指定された場合について、図27を用いて説明する。
図27は、第2実施形態に係るメモリシステムにおける上書きリフレッシュ処理を説明するためのタイミングチャートである。すなわち、図27は、プリベリファイ処理及び上書き処理の各々のタイミングチャートを含み、第1実施形態において示された図23及び図24に対応する。なお、図27では、ビット線BL、セレクトゲート線SGD及びSGS、選択ワード線WL、非選択ワード線WL、及びソース線SLに印加される電圧の推移が示され、信号STBについては便宜上省略されている。
図27に示すように、まず、NANDフラッシュメモリ100は、プリベリファイ処理において、上書き処理を実行するメモリセルトランジスタMTを特定する動作を、“A”状態〜“C”状態についてそれぞれ実行する。
プリベリファイ処理の期間は、“A”状態〜“C”状態用のプリベリファイ処理が実行される期間DpvfyA、DpvfyB、及びDpvfyCを含む。このため、図23の場合と同様に、シーケンサ170は、期間DpvfyA〜DpvfyC毎にそれぞれ、期待データが“A”状態であり、かつ“A”状態用のプリベリファイ処理にパスしたメモリセルトランジスタMT、期待データが“B”状態であり、かつ“B”状態用のプリベリファイ処理にパスしたメモリセルトランジスタMT、及び期待データが“C”状態であり、かつ“C”状態用のプリベリファイ処理にパスしたメモリセルトランジスタMTを抽出する。そして、シーケンサ170は、“A”状態〜“C”状態用のプリベリファイ処理にパスしたメモリセルトランジスタMTに接続されたビット線BLが、後続する上書きの際に上書き禁止状態となる様に、ラッチ回路に対してマスク処理を施す。
また、図27に示されるプリベリファイ処理の期間には、その他の状態用のプリベリファイ処理が実行される期間(例えば、期間DpvfyD〜DpvfyG)は含まれない。このため、シーケンサ170は、プリベリファイ処理の期間が終了すると、プリベリファイが実行されなかった“D”状態〜“G”状態の期待データを有するメモリセルトランジスタMTに接続された全てのビット線BLが後続する上書き処理の際に上書き禁止状態となるように、ラッチ回路に対してマスク処理を施す。これにより、上書き処理の対象を、“A”状態〜“C”状態用のプリベリファイ処理にフェイルしたメモリセルトランジスタMTに限定することができる。
引き続き、図27に示すように、NANDフラッシュメモリ100は、上書きにおいて、“A”状態〜“C”状態の各々について個別に1つの上書き処理用のプログラム電圧を使用する。
上書き処理の期間は、“A”状態〜“C”状態用の上書き処理がそれぞれ実行される期間DrpgmA、DrpgmB、及びDrpgmCを含む。このため、図24の場合と同様に、シーケンサ170は、期間DrpgmA〜DrpgmCにおいて、ラッチ回路ADL〜CDLにそれぞれ“A”状態〜“C”状態に対応するデータが保持されたメモリセルトランジスタMTを抽出する。そして、シーケンサ170は、“A”状態〜“C”状態それぞれついて抽出されたメモリセルトランジスタMTを、期間DrpgmA〜DrpgmCにおいてそれぞれ上書き処理の対象とみなし、対応するビット線BLに電圧VSSを印加して上書き許可状態にする。一方、センスアンプSAは、その他のメモリセルトランジスタMTを上書き処理の対象でないとみなし、当該メモリセルトランジスタMTに接続されたビット線BLに電圧VDDを印加して上書き禁止状態にする。ロウデコーダ120は、期間DrpgmA〜DrpgmCにおいて、選択ワード線WLにそれぞれ電圧VPGM_A、VPGM_B、及びVPGM_Cを印加し、上書き処理の対象のメモリセルトランジスタMTの閾値電圧を上昇させる。
以上のように動作させることにより、“A”状態〜“C”状態のみを対象として、上書きリフレッシュ処理を実行することができる。
2.2.2 “F”状態及び“G”状態が指定される場合
次に、“F”状態及び“G”状態の期待値を有するメモリセルトランジスタMTが上書きリフレッシュ処理の対象範囲として指定された場合について、図28を用いて説明する。
図28は、第2実施形態に係るメモリシステムにおける上書きリフレッシュ処理を説明するためのタイミングチャートである。図28の基本的な構成は、図27と同様である。
図28に示すように、まず、NANDフラッシュメモリ100は、プリベリファイ処理において、上書き処理を実行するメモリセルトランジスタMTを特定する動作を、“F”状態及び“G”状態についてそれぞれ実行する。
プリベリファイ処理の期間は、“F”状態及び“G”状態用のプリベリファイ処理が実行される期間DpvfyF、及びDpvfyGを含む。このため、図23の場合と同様に、シーケンサ170は、期間DpvfyF及びDpvfyG毎にそれぞれ、期待データが“F”状態であり、かつ“F”状態用のプリベリファイ処理にパスしたメモリセルトランジスタMT、及び期待データが“G”状態であり、かつ“G”状態用のプリベリファイ処理にパスしたメモリセルトランジスタMTを抽出する。そして、シーケンサ170は、“F”状態及び“G”状態用のプリベリファイ処理にパスしたメモリセルトランジスタMTに接続されたビット線BLが、後続する上書き処理の際に上書き禁止状態となる様に、ラッチ回路に対してマスク処理を施す。
また、図28に示されるプリベリファイ処理の期間には、その他の状態用のプリベリファイ処理が実行される期間(例えば、期間DpvfyA〜DpvfyE)は含まれない。このため、シーケンサ170は、プリベリファイ処理の期間が終了すると、プリベリファイ処理が実行されなかった“A”状態〜“E”状態の期待データを有するメモリセルトランジスタMTに接続された全てのビット線BLが後続する上書きの際に上書き禁止状態となるように、ラッチ回路に対してマスク処理を施す。これにより、上書き対象を、“F”状態及び“G”状態用のプリベリファイ処理にフェイルしたメモリセルトランジスタMTに限定することができる。
引き続き、図27に示すように、NANDフラッシュメモリ100は、上書き処理において、“F”状態及び“G”状態の各々について個別に1つの上書き処理用のプログラム電圧を使用する。
上書き処理の期間は、“F”状態及び“G”状態用の上書き処理がそれぞれ実行される期間DrpgmF及びDrpgmGを含む。このため、図24の場合と同様に、シーケンサ170は、期間DrpgmF及びDrpgmGにおいて、ラッチ回路ADL〜CDLにそれぞれ“F”状態及び“G”状態に対応するデータが保持されたメモリセルトランジスタMTを抽出する。そして、シーケンサ170は、“F”状態及び“G”状態それぞれついて抽出されたメモリセルトランジスタMTを、期間DrpgmF〜DrpgmGにおいてそれぞれ上書き処理の対象とみなし、対応するビット線BLに電圧VSSを印加して上書き許可状態にする。一方、センスアンプSAは、その他のメモリセルトランジスタMTを上書き処理の対象でないとみなし、当該メモリセルトランジスタMTに接続されたビット線BLに電圧VDDを印加して上書き禁止状態にする。ロウデコーダ120は、期間DrpgmF及びDrpgmGにおいて、選択ワード線WLにそれぞれ電圧VPGM_F、及びVPGM_Gを印加し、上書き処理対象のメモリセルトランジスタMTの閾値電圧を上昇させる。
以上のように動作させることにより、“F”状態及び“G”状態のみを対象として、上書きリフレッシュ処理を実行することができる。
2.3 本実施形態に係る効果
第2実施形態によれば、メモリコントローラ200は、セットフィーチャコマンドによって、“A”状態〜“G”状態のうち、上書きリフレッシュ処理を実行する状態を指定することができる。これにより、閾値分布に対してより細やかな修正を施すことができる。
例えば、閾値分布のうちの最低電圧の近傍は、変動要因によって、“F”状態や“G”状態等の高電圧側において、より大きく低電圧側にシフトし得る。この場合、メモリコントローラ200は、“F”状態及び“G”状態に対して上書きリフレッシュ処理を実行する旨をNANDフラッシュメモリ100に指示し得る。これにより、変動要因の影響を強く受ける状態に対して集中的に上書きリフレッシュ処理を実行することにより、少ない上書きパルスの印加によって高い改善効果を得ることができる。
また、上書きリフレッシュ処理は、データの上書き処理を伴う。このため、高電圧側の状態に対応する閾値電圧を有するメモリセルトランジスタMTへの上書きリフレッシュ処理は、例えば、同一ブロックBLK内の非選択ワード線WLに接続されたセルへの予期しない書込みの程度が大きくなり得る。この場合、メモリコントローラ200は、“A”状態〜“C”状態等に対して上書きリフレッシュ処理を実行する旨をNANDフラッシュメモリ100に指示し得る。これにより、上書き処理に伴う他セルへの予期しない書込みの影響を低減しつつ、閾値分布も改善させることができる。
なお、このように、“A”状態〜“G”状態の全ての状態に対して上書きリフレッシュ処理を実行しない場合でも、メモリセルトランジスタMTから読み出される複数のページに対してエラービット数の低減効果が期待できる。例えば、上書き処理の対象が“A”状態〜“C”状態の場合、“A”状態は下位ページ、“B”状態は中位ページ、“C”状態は上位ページにそれぞれ対応するため、全てのページに対してエラービット数の改善効果が期待できる。
3. 第3実施形態
次に、第3実施形態に係るメモリシステムについて説明する。第3実施形態は、上書きリフレッシュ処理の際に、上書き処理を複数回ループさせる点において、第1実施形態及び第2実施形態と異なる。以下では、第2実施形態と同等の構成及び動作についてはその説明を省略し、第2実施形態と異なる構成及び動作について主に説明する。
3.1 上書きリフレッシュ処理のフローチャートについて
まず、第3実施形態に係るメモリシステムにおける上書きリフレッシュ処理の概要について図29に示すフローチャートを用いて説明する。図29は、第1実施形態において示した図18に対応する。図29では、図18におけるステップST241及びST242に代えて、ステップST247が実行されると共に、ステップST245とステップST246との間にステップST248〜ST251が追加される。
図29に示すように、ステップST240は、図18の場合と同様であるため、その説明を省略する。続いて、ステップST247において、メモリコントローラ200は、NANDフラッシュメモリ100に対して、上書きリフレッシュ処理に適用される1又は複数のパラメタ(プリベリファイ処理及び上書き処理のいずれに適用されるパラメタも含む)を一括して設定するためのコマンドを発行する。すなわち、当該コマンドによって、NANDフラッシュメモリ100には、上書きリフレッシュ処理の際に設定変更すべき全てのパラメタが一括して設定される。このようなパラメタの一括設定の手法を、例えば、パラメタオーバロード処理とも呼ぶ。
パラメタオーバロード処理によって設定されるパラメタは、図25に示された各種情報に限らず、その他の種々のパラメタが設定可能である。
具体的には、本実施形態では、上書きの際に、同一のメモリセルトランジスタMTに対して、通常のプログラム処理と同様に、複数回のプログラムパルスが印加され得る。これにより、特にパラメタを設定しない場合、上書き処理の際においても、通常のプログラム処理と同様の回数のループ処理が実行される可能性があり、好ましくない。このため、パラメタオーバロード処理では、例えば、通常のプログラム処理の際に設定されるループ数の上限値よりも少ない上限値を設定することにより、上書き処理の際に印加されるプログラムパルスの回数を通常のプログラム処理よりも少なくする。これにより、意図しない過書込みを抑制することができる。
なお、通常のプログラム処理の際に設定されるループ数の上限値よりも少ない上限値を設定することによって、上書き処理が通常よりも少ないループ数で強制的に終了するため、最終的に閾値電圧がベリファイ電圧まで上昇しない(プログラム処理のステータスがフェイルとなる)メモリセルトランジスタMTが発生し得る。本実施形態では、このようなプログラム処理のステータスがフェイルとなるメモリセルトランジスタMTを許容するため、上書きリフレッシュ処理の終了後に、当該ステータスフェイルが解除されることが望ましい。このため、パラメタオーバロード処理では、例えば、上書きリフレッシュ処理後にプログラムフェイルを強制的に解除する設定を行ってもよい。
以下の説明では、ステップST247におけるパラメタオーバロード処理によって、上述のループ数の上限値、及びプログラム処理のステータスフェイルの解除等が一括して設定される場合について説明する。
ステップST243〜ST245は、図18の場合と同様であるため、その説明を省略する。
ステップST246において、NANDフラッシュメモリ100は、上書き処理のループ数が上限値に達したか否かを判定する。ループ数が上限値に達していない場合(ステップST248;no)、引き続き上書き処理を実行すると判定し、処理はステップST249に進む。一方、ループ数が上限値に達している場合(ステップST248;yes)、これ以上上書き処理を実行しないと判定し、処理はステップST251に進む。
ステップST249において、NANDフラッシュメモリ100は、ステップST245において上書き処理が実行されたメモリセルトランジスタMTに対して、ベリファイ処理を実行する。ベリファイ処理は、プログラム処理の後に書込み対象のメモリセルトランジスタMTの閾値電圧がベリファイ電圧に達したか否かを判定することによって、当該メモリセルトランジスタMTへのプログラムが完了したか否かを判定する処理である。これにより、次のループにおいて上書き処理が実行されるメモリセルトランジスタMTが特定される。引き続き、ステップST250において、NANDフラッシュメモリ100は、ループ数をインクリメントした後、処理をステップST245に戻し、次のループに進む。
ステップST251において、NANDフラッシュメモリ100は、上書き処理の対象のメモリセルトランジスタMTのプログラム処理のステータスフェイルを解除し、全てのメモリセルトランジスタMTのプログラム処理がパスしたとみなす。後述するように、ベリファイ処理を省略しない場合は、ステータスフェイルが発生する場合に限り、ステータスフェイルを解除してもよい。
ステップST246において、NANDフラッシュメモリ100は、上書きリフレッシュ処理の完了をメモリコントローラ200に通知する。
以上により、上書きリフレッシュ処理が終了する。
3.2 コマンドシーケンスについて
次に、メモリコントローラ200から発行されるパラメタオーバロード処理のコマンドシーケンスについて説明する。
図30は、第3実施形態に係るメモリシステムにおけるパラメタオーバロード処理を説明するためのコマンドシーケンスである。
図30に示すように、メモリコントローラ200は、コマンド“YYh”をNANDフラッシュメモリ100へ送信する。コマンド“YYh”は、パラメタオーバロード処理をNANDフラッシュメモリ100に宣言するためのコマンドである。引き続き、メモリコントローラ200は、アドレス“Y1h”を送信する。アドレス“Y1h”は、NANDフラッシュメモリ100において、パラメタオーバロードコマンドにより変更される各々が1又は複数の設定値を含む複数の組を保持するレジスタを指定するアドレスである。NANDフラッシュメモリ100は、当該設定値の組を予めレジスタ内に保持しておくことにより、指定されたアドレスに応じて、1個の組に含まれる1又は複数のパラメタを一括して設定変更することができる。設定変更が完了すると、シーケンサ170は、信号RBnを“H”レベルにして、NANDフラッシュメモリ100がレディ状態であることをメモリコントローラ200に知らせる。
続いて、メモリコントローラ200は、コマンド“ZZh”を発行し、NANDフラッシュメモリ100へ送信する。コマンド“ZZh”は、NANDフラッシュメモリ100の設定変更が正常終了したか否かを示すステータスの出力を指示するコマンドである。コマンド“ZZh”を受けると、NANDフラッシュメモリ100は、パラメタオーバロード処理によるパラメタの組の設定変更が正常に終了したか否かを示すステータス信号STSoutをメモリコントローラ200に送信する。
メモリコントローラ200は、ステータス信号STSoutが正常であることを確認した後、コマンド“WWh”を発行し、NANDフラッシュメモリ100に送信する。コマンド“WWh”は、設定変更されたパラメタの組が保持されるレジスタのアドレスの出力を指示するコマンドである。コマンド“WWh”を受けると、NANDフラッシュメモリ100は、パラメタオーバロード処理によって現在適用されているパラメタの組が保持されるレジスタのアドレスADDoutをメモリコントローラ200に送信する。
メモリコントローラ200は、アドレスADDoutと、先に自身がパラメタオーバロード処理を指示した際に指定したアドレス“Y1h”と、を比較し、両者が一致しているか否かを確認する。そして、両者が一致していることが確認できた場合、パラメタオーバロード処理が成功したと判定し、以降の動作を実行する。
以上で、パラメタオーバロード処理が終了する。
3.3 タイミングチャートについて
次に、第3実施形態に係るメモリシステムにおける上書きリフレッシュ処理の際のタイミングチャートについて、いくつかの例を用いて説明する。
3.3.1 “A”状態〜“C”状態が指定される場合
まず、“A”状態〜“C”状態の期待値を有するメモリセルトランジスタMTが上書きリフレッシュ処理の対象範囲として指定された場合について説明する。
図31は、第3実施形態に係るメモリシステムにおける“A”状態〜“C”状態を対象とする上書きリフレッシュ処理のシーケンスを説明するための概念図である。図31では、上書きのループ数の上限値として“4”ループ目が設定される場合が示される。また、図31では、プリベリファイ処理及びベリファイ処理が実行される際に、選択ワード線WLに印加される電圧レベルの一例が示される。
図31に示すように、プリベリファイ処理では、上書きリフレッシュ処理の対象範囲として指定された全ての状態に対応するベリファイ電圧が印加される。すなわち、図31の例では、プリベリファイ処理の際に、“A”状態〜“C”状態に対応するベリファイ電圧が印加される。
続いて、1回目のループでは、例えば、“A”状態を対象にしたベリファイ処理が実行される。2回目のループでは、例えば、“A”状態及び“B”状態を対象にしたベリファイ処理が実行される。3回目のループでは、例えば、“B”状態及び“C”状態を対象にしたベリファイ処理が実行される。4回目のループでは、例えば、ループ数の上限に達しているため、上書き処理のみが実行され、ベリファイ処理は実行されない。また、“D”状態〜“G”状態については、上書きリフレッシュ処理の対象範囲ではないため、全てのループにわたってベリファイ処理は実行されない。
このように、“A”状態を含む低電圧側の状態を上書きリフレッシュ処理の対象とする場合、ループ毎のベリファイ処理の対象となる状態は、通常のプログラムループ時と同様に設定され得る。なお、図31の例は、あくまで一例であり、ループ毎のベリファイ処理の対象となる状態は、例えば、パラメタオーバロード処理によって任意に設定可能である。
図32は、第3実施形態に係るメモリシステムにおける“A”状態〜“C”状態を対象とする上書きリフレッシュ処理を説明するためのタイミングチャートである。図32は、図31に示した上書きリフレッシュ処理のシーケンスのうち、プリベリファイ処理、1ループ目の上書き処理及びベリファイ処理、並びに2ループ目の上書き処理までに相当するタイミングチャートが示される。
図32に示すように、まず、NANDフラッシュメモリ100は、プリベリファイ処理において、上書き処理を実行するメモリセルトランジスタMTを特定する動作を、“A”状態〜“C”状態についてそれぞれ実行する。
プリベリファイ処理は、第2実施形態の図27において示されたプリベリファイ処理と同様であるため、その説明を省略する。
続いて、NANDフラッシュメモリ100は、複数回のループを含む上書き処理を実行する。上書き処理では、“A”状態〜“C”状態のメモリセルトランジスタMTに共通して適用されるプログラム電圧が、複数回のループ毎にステップアップして使用される。
1ループ目の上書き期間において、センスアンプSAは、ラッチ回路ADL〜CDL内のデータが“Er”状態に対応するデータ“111”にマスクされていない場合、対応するビット線BLに電圧VSSを印加し、上書き許可状態にする。また、センスアンプSAは、ラッチ回路ADL〜CDL内のデータがデータ“111”にマスクされている場合、対応するビット線BLに電圧VDDを印加し、上書き禁止状態にする。続いて、ロウデコーダ120は、選択ワード線WLに電圧VPGM_Aを印加する。これにより、プリベリファイ処理にフェイルした全てのメモリセルトランジスタMTに対して、共通の電圧VPGM_Aを使用した上書き処理が実行される。
続いて、1ループ目のベリファイ処理が実行される。1ループ目のベリファイ処理期間において、ロウデコーダ120は、例えば、選択ワード線WLに電圧Avfy(すなわち、“A”状態に対応するデフォルトのベリファイ電圧)を印加する。シーケンサ170は、選択ワード線WLに電圧Avfyが印加されている間においてデータをストローブし、ラッチ回路ADL〜CDL内に“A”状態に対応するデータ“110”を保持するメモリセルトランジスタMTがベリファイ処理にパスしたか、フェイルしたか、を判定する。そして、シーケンサ170は、ベリファイ処理にパスしたメモリセルトランジスタMTに接続されたビット線BLが後続する上書き処理の際に上書き禁止状態となる様に、対応するラッチ回路ADL〜CDLに対してマスク処理を施す。
続いて、2ループ目の上書き処理が実行される。2ループ目の上書き処理期間において、センスアンプSAは、ラッチ回路ADL〜CDL内のデータが“Er”状態に対応するデータ“111”にマスクされていない場合、対応するビット線BLに電圧VSSを印加し、上書き許可状態にする。また、センスアンプSAは、ラッチ回路ADL〜CDL内のデータがデータ“111”にマスクされている場合、対応するビット線BLに電圧VDDを印加し、上書き禁止状態にする。続いて、ロウデコーダ120は、選択ワード線WLに電圧VPGM_A+ΔVPGMを印加する。電圧ΔVPGMは、例えば、通常のプログラム処理の際にループ数に応じて加算される電圧と同等の電圧である。これにより、プリベリファイ処理にフェイルした全てのメモリセルトランジスタMTに対して、電圧VPGM_A+ΔVPGMを使用した上書き処理が実行される。
このように、NANDフラッシュメモリ100は、プリベリファイ処理を実行した後、上書き処理とベリファイ処理のループを繰り返し、最終ループでは上書き処理のみを実行する。
なお、上述の通り、最終ループではベリファイ処理が実行されないため、ベリファイ処理のステータスがフェイルのままのメモリセルトランジスタMTが存在し得る。このため、シーケンサ170は、最終ループの上書き処理が終了した後、ベリファイ処理のフェイルのステータスを解除する。以上で、上書きリフレッシュ処理が終了する。
3.3.2 “F”状態及び“G”状態が指定される場合
次に、“F”状態及び“G”状態の期待値を有するメモリセルトランジスタMTが上書きリフレッシュ処理の対象範囲として指定された場合について説明する。
図33は、第3実施形態に係るメモリシステムにおける“F”状態及び“G”状態を対象とする上書きリフレッシュ処理を説明するためのテーブルである。図33では、図31の場合と同様、上書き処理のループ数の上限値として“4”ループ目が設定される場合が示される。また、図33では、プリベリファイ処理及びベリファイ処理が実行される際に、選択ワード線WLに印加される電圧レベルの一例が示される。
図33に示すように、プリベリファイ処理では、上書きリフレッシュ処理の対象範囲として指定された全ての状態に対応するベリファイ電圧が印加される。すなわち、図33の例では、プリベリファイ処理の際に、“F”状態及び“G”状態に対応するベリファイ電圧が印加される。
続いて、1回目〜3回目のループにわたって、例えば、“F”状態及び“G”状態を対象にしたベリファイ処理が実行される。4回目のループでは、例えば、ループ数の上限に達しているため、上書き処理のみが実行され、ベリファイ処理は実行されない。また、“A”状態〜“E”状態については、上書きリフレッシュ処理の対象範囲ではないため、全てのループにわたってベリファイ処理は実行されない。
上述の通り、“F”状態や“G”状態のような高電圧側の閾値分布は、変動要因によって、“A”状態等の様な低電圧側の閾値分布よりも閾値分布が大きく変動している可能性がある。このため、図33に示すように、高電圧側の閾値分布を上書きリフレッシュ処理の対象とする場合、各ループにおいて、上書き処理対象の全ての状態に対してベリファイ処理が実行され得る。なお、図33の例は、あくまで一例であり、ループ毎のベリファイ処理対象となる状態は、パラメタオーバロード処理によって任意に設定可能である。
図34は、第3実施形態に係るメモリシステムにおける“F”状態及び“G”状態を対象とする上書きリフレッシュ処理を説明するためのタイミングチャートである。図34は、図33に示した上書きリフレッシュ処理のシーケンスのうち、プリベリファイ処理、1ループ目の上書き処理及びベリファイ処理、並びに2ループ目の上書き処理までに相当するタイミングチャートが示される。
図34に示すように、まず、NANDフラッシュメモリ100は、プリベリファイ処理において、上書き処理を実行するメモリセルトランジスタMTを特定する動作を、“F”状態及び“G”状態についてそれぞれ実行する。
プリベリファイ処理は、第2実施形態の図28において示されたプリベリファイ処理と同様である。すなわち、シーケンサ170は、プリベリファイ処理によって、期待データが“F”状態であり、かつ“F”状態用のプリベリファイ処理にパスしたメモリセルトランジスタMT、及び期待データが“G”状態であり、かつ“G”状態用のプリベリファイ処理にパスしたメモリセルトランジスタMTを抽出する。そして、シーケンサ170は、“F”状態及び“G”状態用のプリベリファイ処理にパスしたメモリセルトランジスタMTに接続されたビット線BLが、後続する上書き処理の際に上書き禁止状態となる様に、ラッチ回路に対してマスク処理を施す。また、シーケンサ170は、“A”状態〜“E”状態の期待データを有するメモリセルトランジスタMTに接続された全てのビット線BLが後続する上書きの際に上書き禁止状態となるように、ラッチ回路に対してマスク処理を施す。これにより、上書き対象を、期待データが“F”状態であり、かつ“F”状態用のプリベリファイ処理にフェイルしたメモリセルトランジスタMT、及び期待データが“G”状態であり、かつ“G”状態用のプリベリファイ処理にフェイルしたメモリセルトランジスタMTに限定することができる。
続いて、NANDフラッシュメモリ100は、複数回のループを含む上書き処理を実行する。上書き処理では、“F”状態及び“G”状態のメモリセルトランジスタMTに共通して適用されるプログラム電圧が、複数回のループ毎にステップアップして使用される。
1ループ目の上書き処理期間において、センスアンプSAは、ラッチ回路ADL〜CDL内のデータが“Er”状態に対応するデータ“111”にマスクされていない場合、対応するビット線BLに電圧VSSを印加し、上書き許可状態にする。また、センスアンプSAは、ラッチ回路ADL〜CDL内のデータがデータ“111”にマスクされている場合、対応するビット線BLに電圧VDDを印加し、上書き禁止状態にする。続いて、ロウデコーダ120は、選択ワード線WLに電圧VPGM_Fを印加する。これにより、“F”状態又は“G”状態を期待データとして有するメモリセルトランジスタMTのうち、それぞれのプリベリファイ処理にフェイルした全てのメモリセルトランジスタMTに対して、共通の電圧VPGM_Fを使用した上書きが実行される。
続いて、1ループ目のベリファイが実行される。1ループ目のベリファイ期間において、ロウデコーダ120は、例えば、選択ワード線WLに電圧Fvfy(すなわち、“F”状態に対応するデフォルトのベリファイ電圧)を印加する。シーケンサ170は、選択ワード線WLに電圧Fvfyが印加されている間においてデータをストローブし、ラッチ回路ADL〜CDL内に“F”状態に対応するデータ“001”を保持するメモリセルトランジスタMTがベリファイ処理にパスしたか、フェイルしたか、を判定する。同様に、シーケンサ170は、選択ワード線WLに電圧Gvfyが印加されている間においてデータをストローブし、ラッチ回路ADL〜CDL内に“G”状態に対応するデータ“101”を保持するメモリセルトランジスタMTがベリファイ処理にパスしたか、フェイルしたか、を判定する。そして、シーケンサ170は、ベリファイ処理にパスしたメモリセルトランジスタMTに接続されたビット線BLが後続する上書き処理の際に上書き禁止状態となる様に、対応するラッチ回路ADL〜CDLに対してマスク処理を施す。
続いて、ロウデコーダ120は、選択ワード線WLに電圧Gvfy(すなわち、“G”状態に対応するデフォルトのベリファイ電圧)を印加する。シーケンサ170は、ラッチ回路ADL〜CDL内に“G”状態に対応するデータを有するメモリセルトランジスタMTに対してデータをストローブし、ベリファイ処理にパスしたか、フェイルしたか、を判定する。そして、シーケンサ170は、ベリファイ処理にパスしたメモリセルトランジスタMTに接続されたビット線BLが後続する上書き処理の際に上書き禁止状態となる様に、対応するラッチ回路ADL〜CDLに対してマスク処理を施す。
続いて、2ループ目の上書きが実行される。2ループ目の上書き処理期間において、センスアンプSAは、ラッチ回路ADL〜CDL内のデータが“Er”状態に対応するデータ“111”にマスクされていない場合、対応するビット線BLに電圧VSSを印加し、上書き許可状態にする。また、センスアンプSAは、ラッチ回路ADL〜CDL内のデータがデータ“111”にマスクされている場合、対応するビット線BLに電圧VDDを印加し、上書き禁止状態にする。続いて、ロウデコーダ120は、選択ワード線WLに電圧VPGM_F+ΔVPGMを印加する。これにより、“F”状態又は“G”状態を期待データとして有するメモリセルトランジスタMTのうち、それぞれのプリベリファイ処理にフェイルした全てのメモリセルトランジスタMTに対して、電圧VPGM_F+ΔVPGMを使用した上書き処理が実行される。
このように、NANDフラッシュメモリ100は、プリベリファイ処理を実行した後、上書き処理とベリファイ処理のループを繰り返し、最終ループでは上書き処理のみを実行する。
なお、上述の通り、最終ループではベリファイ処理が実行されないため、ベリファイ処理のステータスがフェイルのままのメモリセルトランジスタMTが存在し得る。このため、シーケンサ170は、最終ループの上書き処理が終了した後、ベリファイ処理のフェイルのステータスを解除する。以上で、上書きリフレッシュ処理が終了する。
上述の例では、最終ループでベリファイ処理が実行されない場合について説明したが、これに限られない。すなわち、NANDフラッシュメモリ100は、通常のプログラム処理からの変更点を少なくするため、最終ループにおいても上書き処理の後にベリファイ処理を実行してもよい。
3.4 本実施形態に係る効果
第3実施形態によれば、メモリコントローラ200は、プリベリファイ処理や上書き処理の際に選択ワード線WLに印加される電圧の補正量に加え、上書き処理のループ回数の上限値や、ベリファイ処理のフェイルのステータスを解除する旨の設定などを更にNANDフラッシュメモリ100に対して指示する。これにより、NANDフラッシュメモリ100は、1つのメモリセルトランジスタMTに対して上書き処理のための複数のパルスをステップアップさせながら印加することができる。このため、NANDフラッシュメモリ100は、メモリセルトランジスタMT毎の書込み特性のばらつき等を考慮した上書き処理を実行でき、ひいては、上書き処理の精度を向上させることができる。
また、NANDフラッシュメモリ100へ設定すべきパラメタが多岐にわたる場合、メモリコントローラ200は、パラメタオーバロードコマンドを発行することによって、一括してパラメタの設定を行うことができる。これにより、設定すべきパラメタが増加した場合においても、セットフィーチャコマンドを発行する回数の増加を抑制することができ、メモリコントローラ200の負荷を低減させることができる。
4.その他
以上、種々の実施形態について説明したが、第1実施形態、第2実施形態、及び第3実施形態は、これに限られず、種々の変形が適宜適用可能である。
例えば、第1実施形態及び第2実施形態では、セットフィーチャコマンドによって上書きリフレッシュ処理に使用するパラメタをNANDフラッシュメモリ100に設定したが、これに限らず、パラメタオーバロードコマンドが使用されてもよい。また、第3実施形態出は、パラメタオーバロードコマンドが使用されたが、これに限らず、セットフィーチャコマンドが使用されてもよく、パラメタオーバロードコマンド及びセットフィーチャコマンドが併用されてもよい。なお、設定されるパラメタは、第3実施形態で説明したパラメタに限らず、非選択ワード線WLや、p型ウェル領域10に印加する電圧の補正量等が適宜設定可能である。
また、例えば、第2実施形態及び第3実施形態では、“A”状態〜“G”状態のうち、隣り合う複数の状態に対して上書きリフレッシュ処理が実行される場合について説明したが、これに限られない。例えば、メモリコントローラ200は、“A”状態と“E”状態、又は“C”状態と“G”状態等、間に他の閾値分布を挟む複数の状態に対して、上書きリフレッシュ処理の実行を指示してもよい。より具体的には、例えば、上述の複数の状態の組は、図4に示される上位/中位/下位のいずれの特定のページに対応していてもよい。すなわち、下位ページに対応する場合には“A”状態及び“E”状態が、中位ページに対応する場合には“B”状態、“D”状態、及び“F”状態が、上位ページに対応する場合には“C”状態及び“G”状態が上書きリフレッシュ処理の対象として選択されてもよい。
また、第3実施形態では、ベリファイ処理の際にはデフォルトのベリファイ電圧(例えば、電圧Avfy)が印加される場合について説明したが、これに限られない。例えば、ベリファイ処理の際におけるベリファイ電圧は、第1実施形態でプリベリファイ処理の際に印加されるベリファイ電圧をシフトしたのと同様に、デフォルト値からシフトしてもよい。その際のシフト量は、プリベリファイ処理の際と同等のシフト量でもよく、ベリファイ処理の際のベリファイ電圧が、プリベリファイ処理の際のベリファイ電圧と同様の値になってもよい。
また、第3実施形態では、最終ループのベリファイ処理が実行されない場合について説明したが、これに限らず、最終ループにおいてもベリファイ処理が実行されてもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
1…メモリシステム、100…NANDフラッシュメモリ、110…メモリセルアレイ、120…ロウデコーダ、130…ドライバ、140…センスアンプモジュール、150…アドレスレジスタ、160…コマンドレジスタ、170…シーケンサ、200…メモリコントローラ、210…ホストインタフェース回路、220…メモリ、230…プロセッサ、240…バッファメモリ、250…NANDインタフェース回路、260…ECC回路、300…ホスト機器。

Claims (24)

  1. 各々が複数のメモリセルを含む複数のグループを含むメモリセルアレイと、
    第1コマンドセットを受けると、第1リフレッシュ処理を実行するよう構成された制御回路と、
    を備え、
    前記第1リフレッシュ処理は、前記複数のグループのうちの第1グループにおける書込み済みの複数の第1メモリセルのうち、少なくとも1つの第2メモリセルを上書きすることを含み、
    前記制御回路は、前記第1リフレッシュ処理において、
    前記第2メモリセルが第1状態に属する第1電圧を使用して書込まれた場合、第1補正量を使用して前記複数の第1メモリセルから前記第2メモリセルを特定し、
    前記第2メモリセルが第2状態に属する第2電圧を使用して書込まれた場合、第2補正量を使用して前記複数の第1メモリセルから前記第2メモリセルを特定する
    ように構成された、
    不揮発性メモリ。
  2. 前記第1コマンドセットは、前記第1補正量及び前記第2補正量に対応付けられたデータを含む第1情報を特定し、
    前記制御回路は、前記第1情報を使用して、前記複数の第1メモリセルから前記第2メモリセルを特定するように構成された、
    請求項1記載の不揮発性メモリ。
  3. 前記第1コマンドセットは、
    前記複数の第1メモリセルのアドレスを含む第2情報と、
    前記複数の第1メモリセルに書込まれたデータを含む第3情報と、
    を更に特定し、
    前記制御回路は、
    前記第2情報に基づいて、前記メモリセルアレイ内における前記複数の第1メモリセルの位置を特定し、
    前記第3情報を使用して、前記第2メモリセルへの前記第1リフレッシュ処理を実行する
    ように構成された、
    請求項2記載の不揮発性メモリ。
  4. 前記制御回路は、前記第1リフレッシュ処理において、
    前記第2メモリセルが前記第1電圧を使用して書込まれた場合、第3補正量を使用して前記第2メモリセルを上書きし、
    前記第2メモリセルが前記第2電圧を使用して書込まれた場合、第4補正量を使用して前記第2メモリセルを上書きする
    ように構成された、
    請求項3記載の不揮発性メモリ。
  5. 前記第1コマンドセットは、前記第3補正量及び前記第4補正量に対応付けられたデータを含む第4情報を更に特定し、
    前記制御回路は、前記第3情報及び前記第4情報を使用して、少なくとも1つの前記第2メモリセルへの前記第1リフレッシュ処理を実行するように構成された、
    請求項4記載の不揮発性メモリ。
  6. 前記第1コマンドセットは、前記第2メモリセルに印加されるプログラムパルスの数の上限値に対応付けられたデータを含む第5情報を更に特定し、
    前記制御回路は、前記第1リフレッシュ処理において、前記第5情報に基づいて、前記第2メモリセルに前記上限値を超える回数のプログラムパルスが印加されることを禁止するように構成された、
    請求項3記載の不揮発性メモリ。
  7. 前記制御回路は、前記第1リフレッシュ処理において、
    前記第1状態及び前記第2状態と異なる第3状態に属する第3電圧を使用して書込まれた少なくとも1つのメモリセルを第3メモリセルとして特定し、
    前記複数の第1メモリセルのうち、前記特定された第3メモリセルを除く複数のメモリセルから、前記第2メモリセルを特定する
    ように構成された、
    請求項1記載の不揮発性メモリ。
  8. 前記第1リフレッシュ処理は、前記複数の第1メモリセルのうち、少なくとも前記第3メモリセルを上書きしないことを含む、
    請求項7記載の不揮発性メモリ。
  9. 前記複数のグループの各々は、データの書込み単位である、請求項1記載の不揮発性メモリ。
  10. 各々が複数のグループを含む複数のブロックであって、前記複数のグループの各々が複数のメモリセルを含む複数のブロックと、制御回路と、を含む不揮発性メモリと、
    第1リフレッシュ処理を実行するために前記不揮発性メモリに第1コマンドセットを出力するように構成されたメモリコントローラと、
    を備え、
    前記第1リフレッシュ処理は、第1ブロック内の第1グループにおける書込み済みの複数の第1メモリセルのうち、少なくとも1つの第2メモリセルを上書きすることを含み、
    前記制御回路は、前記第1リフレッシュ処理において、
    前記第2メモリセルが第1状態に属する第1電圧を使用して書込まれた場合、第1補正量を使用して前記複数の第1メモリセルから前記第2メモリセルを特定し、
    前記第2メモリセルが第2状態に属する第2電圧を使用して書込まれた場合、第2補正量を使用して前記複数の第1メモリセルから前記第2メモリセルを特定する
    ように構成された、
    メモリシステム。
  11. 前記メモリコントローラは、
    前記第1グループが第1条件を満たし、かつ第2条件を満たす場合、前記第1リフレッシュ処理を実行することを決定し、
    前記第1グループが前記第1条件を満たし、かつ前記第2条件を満たさない場合、前記第1ブロックのデータを、第2ブロックに書き直すことを含む第2リフレッシュ処理を実行することを決定する
    ように構成された、
    請求項10記載のメモリシステム。
  12. 前記第2ブロックは、データ消去済みのブロックである、
    請求項11記載のメモリシステム。
  13. 前記第2ブロックは、前記第1ブロックと異なる、
    請求項11記載のメモリシステム。
  14. 前記メモリコントローラは、
    前記第1グループが第1条件を満たし、かつ第2条件を満たす場合、前記第1リフレッシュ処理を実行することを決定し、
    前記第1グループが前記第1条件を満たし、かつ第2条件を満たさない場合、前記第1ブロックのデータを読み出した後、前記第1ブロックからデータを消去し、前記第1ブロックに前記読み出したデータを書込むことを含む第2リフレッシュ処理を実行することを決定する
    ように構成された、
    請求項10記載のメモリシステム。
  15. 前記第1条件を満たすことは、前記第1グループの第1値が第1閾値を超えることを含み、
    前記第2条件を満たすことは、前記第1グループの前記第1値が前記第1閾値より大きい第2閾値以下であることを含む、
    請求項11記載のメモリシステム。
  16. 前記第1条件を満たすことは、前記第1グループの第1値が第1閾値を超えることを含み、
    前記第2条件を満たすことは、前記第1グループの第2値が第3閾値以下であることを含む、
    請求項11記載のメモリシステム。
  17. 前記第2値は、前記複数の第1メモリセルからのデータの読出しに際して、誤り訂正されるまでに実行された読出し処理の回数を含む、
    請求項16記載のメモリシステム。
  18. 前記第2値は、前記複数の第1メモリセルのうちの、所定の範囲内に閾値電圧を有するメモリセルの数を含む、
    請求項16記載のメモリシステム。
  19. 前記所定の範囲は、前記複数の第1メモリセルにより形成される閾値電圧の複数の状態のうち、前記閾値電圧に関して隣り合う2つの状態の各々のピーク間に含まれる範囲に設定される、
    請求項18記載のメモリシステム。
  20. 前記第2値は、前記複数の第1メモリセルから読み出されたデータのエラービット数、又は誤り訂正結果を含む、
    請求項16記載のメモリシステム。
  21. 前記エラービット数は、前記複数の第1メモリセルにより形成される閾値電圧の複数の状態のうち、前記閾値電圧に関して隣り合う2つの状態間において検出される、
    請求項20記載のメモリシステム。
  22. 前記第2値は、前記第1グループに対して実行された前記第1リフレッシュ処理の回数を含む、
    請求項16記載のメモリシステム。
  23. 前記複数のグループの各々は、データの書込み単位である、請求項10記載のメモリシステム。
  24. 前記複数のグループの各々は、データの消去単位より小さい、請求項10記載のメモリシステム。
JP2018164450A 2018-09-03 2018-09-03 不揮発性メモリ及びメモリシステム Pending JP2020038738A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2018164450A JP2020038738A (ja) 2018-09-03 2018-09-03 不揮発性メモリ及びメモリシステム
US16/429,588 US10796776B2 (en) 2018-09-03 2019-06-03 Nonvolatile memory and memory system
US17/007,596 US11004523B2 (en) 2018-09-03 2020-08-31 Nonvolatile memory and memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018164450A JP2020038738A (ja) 2018-09-03 2018-09-03 不揮発性メモリ及びメモリシステム

Publications (1)

Publication Number Publication Date
JP2020038738A true JP2020038738A (ja) 2020-03-12

Family

ID=69639437

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018164450A Pending JP2020038738A (ja) 2018-09-03 2018-09-03 不揮発性メモリ及びメモリシステム

Country Status (2)

Country Link
US (2) US10796776B2 (ja)
JP (1) JP2020038738A (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020027674A (ja) 2018-08-10 2020-02-20 キオクシア株式会社 半導体メモリ
KR102627873B1 (ko) * 2018-10-25 2024-01-23 에스케이하이닉스 주식회사 메모리 장치, 이를 포함하는 메모리 시스템 및 그것의 동작 방법
KR20210066899A (ko) * 2019-02-20 2021-06-07 양쯔 메모리 테크놀로지스 씨오., 엘티디. 메모리 시스템을 프로그래밍하기 위한 방법
US10847207B2 (en) 2019-04-08 2020-11-24 Micron Technology, Inc. Apparatuses and methods for controlling driving signals in semiconductor devices
US10910027B2 (en) 2019-04-12 2021-02-02 Micron Technology, Inc. Apparatuses and methods for controlling word line discharge
US10910076B2 (en) * 2019-05-16 2021-02-02 Sandisk Technologies Llc Memory cell mis-shape mitigation
US10937476B2 (en) 2019-06-24 2021-03-02 Micron Technology, Inc. Apparatuses and methods for controlling word line discharge
US10854272B1 (en) 2019-06-24 2020-12-01 Micron Technology, Inc. Apparatuses and methods for controlling word line discharge
US10854273B1 (en) 2019-06-24 2020-12-01 Micron Technology, Inc. Apparatuses and methods for controlling word drivers
JP2021044034A (ja) * 2019-09-09 2021-03-18 キオクシア株式会社 メモリシステム
US10854274B1 (en) * 2019-09-26 2020-12-01 Micron Technology, Inc. Apparatuses and methods for dynamic timing of row pull down operations
US10796753B1 (en) * 2019-10-29 2020-10-06 Macronix International Co., Ltd. Method and system to determine quick pass write operation in increment step pulse programming operation
US11205470B2 (en) 2020-04-20 2021-12-21 Micron Technology, Inc. Apparatuses and methods for providing main word line signal with dynamic well
WO2021217386A1 (en) * 2020-04-28 2021-11-04 Yangtze Memory Technologies Co., Ltd. Memory device and erasing and verification method thereof
KR20230096304A (ko) * 2021-12-23 2023-06-30 삼성전자주식회사 비휘발성 메모리 장치의 리프로그램 방법, 프로그램 방법 및 이를 수행하는 비휘발성 메모리 장치
US11837292B2 (en) * 2021-12-23 2023-12-05 San Disk Technologies Llc String or block or die level dependent source line voltage for neighbor drain side select gate interference compensation

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100875292B1 (ko) * 2006-09-19 2008-12-23 삼성전자주식회사 플래시 메모리 장치 및 그것의 리프레쉬 방법
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 株式会社東芝 三次元積層不揮発性半導体メモリ
US7859932B2 (en) 2008-12-18 2010-12-28 Sandisk Corporation Data refresh for non-volatile storage
JP2010199235A (ja) 2009-02-24 2010-09-09 Toshiba Corp 不揮発性半導体記憶装置
JP2012069205A (ja) 2010-09-22 2012-04-05 Toshiba Corp 不揮発性半導体記憶装置
KR101200128B1 (ko) * 2010-12-24 2012-11-12 에스케이하이닉스 주식회사 불휘발성 메모리 장치 및 그 프로그램 방법
JP2012252740A (ja) 2011-06-02 2012-12-20 Toshiba Corp 不揮発性半導体記憶装置
US9189313B2 (en) 2012-08-27 2015-11-17 Kabushiki Kaisha Toshiba Memory system having NAND-type flash memory and memory controller with shift read controller and threshold voltage comparison module
WO2016084497A1 (ja) 2014-11-26 2016-06-02 ソニー株式会社 メモリシステム、記憶装置、および、メモリシステムの制御方法
US9502129B1 (en) * 2015-09-10 2016-11-22 Kabushiki Kaisha Toshiba Memory system and method of controlling nonvolatile memory

Also Published As

Publication number Publication date
US20200402596A1 (en) 2020-12-24
US11004523B2 (en) 2021-05-11
US20200075110A1 (en) 2020-03-05
US10796776B2 (en) 2020-10-06

Similar Documents

Publication Publication Date Title
JP2020038738A (ja) 不揮発性メモリ及びメモリシステム
US11763893B2 (en) Memory system
US9514830B2 (en) Non-volatile memory device, memory system including the same, and method of operating the same
US10971234B2 (en) Page buffer, a memory device having page buffer, and a method of operating the memory device
US20180074896A1 (en) Memory system
US20080219059A1 (en) Method for Cache Page Copy in a Non-Volatile Memory
EP2030205B1 (en) Method for non-real time reprogramming of non-volatile memory to achieve tighter distribution of threshold voltages
KR101464256B1 (ko) 온도 센서를 포함하는 메모리 시스템
US8498160B2 (en) Nonvolatile memory device and related programming method using selective bit line precharging
JP6266479B2 (ja) メモリシステム
US20130159610A1 (en) Non-volatile semiconductor memory device related method of operation
JP2018028956A (ja) 半導体記憶装置及びメモリシステム
TW201911320A (zh) 記憶體裝置及其操作方法
US11967379B2 (en) Memory device
US10014053B2 (en) Methods for backup sequence using three transistor memory cell devices
CN108986861B (zh) 对非易失性存储器装置进行编程的方法
US8780626B2 (en) Sense operation in a memory device
KR101642930B1 (ko) 더미 셀을 갖는 불휘발성 메모리 장치 및 그것의 프로그램 방법
JP2021128810A (ja) 半導体記憶媒体及びメモリシステム
US11817170B2 (en) Storage controller determining error count, method of operating the same, and method of operating storage device including the same
US20150194220A1 (en) Semiconductor device and memory system including the same
US11216208B1 (en) Memory system, memory controller, and operation method of memory system
US10978161B2 (en) Memory system, memory controller and memory device
CN114203214A (zh) 存储器系统
US11307807B2 (en) Memory system, memory controller, and method for operating memory system for determining read biases for read retry operation