JP6196199B2 - 半導体記憶装置 - Google Patents

半導体記憶装置 Download PDF

Info

Publication number
JP6196199B2
JP6196199B2 JP2014187040A JP2014187040A JP6196199B2 JP 6196199 B2 JP6196199 B2 JP 6196199B2 JP 2014187040 A JP2014187040 A JP 2014187040A JP 2014187040 A JP2014187040 A JP 2014187040A JP 6196199 B2 JP6196199 B2 JP 6196199B2
Authority
JP
Japan
Prior art keywords
program
control circuit
data
memory cell
string unit
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.)
Active
Application number
JP2014187040A
Other languages
English (en)
Other versions
JP2016062619A (ja
Inventor
白川 政信
政信 白川
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 JP2014187040A priority Critical patent/JP6196199B2/ja
Priority to US14/633,033 priority patent/US9679651B2/en
Priority to TW104106894A priority patent/TWI604452B/zh
Priority to CN201910994616.8A priority patent/CN110867202B/zh
Priority to CN201510100759.1A priority patent/CN105448335B/zh
Publication of JP2016062619A publication Critical patent/JP2016062619A/ja
Application granted granted Critical
Publication of JP6196199B2 publication Critical patent/JP6196199B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/10Programming or data input 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/5628Programming or writing circuits; Data 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)
  • Semiconductor Memories (AREA)
  • Non-Volatile Memory (AREA)

Description

本実施形態は、半導体記憶装置に関する。
近年、NAND型フラッシュメモリのビット密度向上に向けたアプローチとして、メモリセルトランジスタが半導体基板の上方に積層された3次元積層型NANDフラッシュメモリ、所謂BiCS(Bit-Cost Scalable)フラッシュメモリのメモリが提案されている。
特開2012−238363号公報
高品質な半導体記憶装置を提供する。
実施形態に係る半導体記憶装置は、メモリセルトランジスタと、複数のメモリセルトランジスタを備えるストリングユニットと、ストリングユニットを複数備えるメモリセルアレイと、複数のメモリセルトランジスタのゲート電極に接続される複数のワード線と、プログラム動作及びベリファイ動作を行う事によってメモリセルトランジスタにデータの書込みを行う制御回路と、ワード線毎に設定されたメモリセルトランジスタのプログラム条件であるフラグデータを格納するレジスタと、を備える。制御回路は、サンプルストリングユニット指定コマンドと共に第一のストリングユニットのアドレスを受信し、その後、書き込みコマンドと第二のストリングユニットのアドレスを受信した場合において、第一のストリングユニットと第二のストリングユニットが一致する場合、フラグデータを取得するキャプチャ動作を実行した後、プログラム電圧を決定し、第一のストリングユニットと第二のストリングユニットが異なる場合、キャプチャ動作を実行せずにプログラム電圧を決定し、書き込みコマンドに基づいて、所定のワード線にプログラム電圧を印加する。
図1は、第1の実施形態に係るメモリシステムを示すブロック図である。 図2は、第1の実施形態に係るメモリセルアレイのブロック図である。 図3は、第1の実施形態に係るブロックBLK0の回路図の一部である。 図4は、第1の実施形態に係るNANDストリングの断面図である。 図5(a)は、第1の実施形態に係るメモリセルトランジスタMTの閾値分布の初期状態を示す。図5(b)は、下位ビット書込み完了後の第1の実施形態に係るメモリセルトランジスタMTの閾値分布を示す。図5(c)は、第1のプログラムの上位ビット書込み、または第2のプログラム完了後の第1の実施形態に係るメモリセルトランジスタMTの閾値分布を示す。 図6は、第1の実施形態に係るページの一例を示す図である。 図7は、第1の実施形態に係る半導体記憶装置のプログラム動作を示すフローチャートである。 図8は、第1の実施形態に係るコマンドシーケンスの一例を示す図である。 図9は、第1の実施形態に係るコマンドシーケンスの一例を示す図である。 図10は、第1の実施形態に係る半導体記憶装置のプログラム動作を示すフローチャートである。 図11は、第1の実施形態に係るキャプチャ動作時を示す図である。 図12は、第1の実施形態に係る半導体記憶装置のプログラム動作を示すフローチャートである。 図13は、第1の実施形態に係る上位ページプログラム動作時を示す図である。 図14は、第1の実施形態に係る上位ページプログラム用の初期プログラム電圧を決定する方法を示す図である。 図15は、第1の実施形態に係る上位ページプログラム用の初期プログラム電圧を決定する方法を示す図である。 図16は、第1の実施形態に係る半導体記憶装置のプログラム動作を示すフローチャートである。 図17は、第1の実施形態に係る下位ページプログラム動作時を示す図である。 図18は、第1の実施形態に係る下位ページプログラム用の初期プログラム電圧を決定する方法を示す図である。 図19は、第1の実施形態に係る下位ページプログラム用の初期プログラム電圧を決定する方法を示す図である。 図20は、第1の実施形態に係る半導体記憶装置のプログラム動作を示すフローチャートである。 図21は、第1の実施形態に係る具体例に係るストリングユニットの概略図である。 図22は、第1の実施形態に係る具体例1及び具体例2のプログラム動作に要する時間を示す図である。 図23は、第2の実施形態に係る半導体記憶装置のプログラム動作を示すフローチャートである。 図24は、第2の実施形態に係るコマンドシーケンスの一例を示す図である。 図25は、第2の実施形態に係るコマンドシーケンスの一例を示す図である。 図26は、第2の実施形態に係る半導体記憶装置のプログラム動作を示すフローチャートである。 図27は、第2の実施形態に係るキャプチャ動作時を示す図である。 図28は、第2の実施形態に係る半導体記憶装置のプログラム動作を示すフローチャートである。 図29は、第2の実施形態に係る半導体記憶装置のプログラム動作を示すフローチャートである。 図30は、第3の実施形態に係るメモリシステムを示すブロック図である。 図31は、第3の実施形態に係るコマンドシーケンスの一例を示す図である。 図32は、第4の実施形態に係るメモリシステムを示すブロック図である。 図33は、第4の実施形態に係るプログラム動作の概要を示す図である。 図34は、第4の実施形態に係る半導体記憶装置のプログラム動作を示すフローチャートである。 図35は、第4の実施形態に係る半導体記憶装置のプログラム動作を示すフローチャートである。 図36は、第4の実施形態に係る半導体記憶装置のプログラム動作を示すフローチャートである。 図37は、第4の実施形態に係る半導体記憶装置のプログラム動作を示すフローチャートである。 図38は、第4の実施形態に係るコマンドシーケンスの一例を示す図である。
以下に、実施形態について図面を参照して説明する。なお、以下の説明において、略同一の機能及び構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。また、以下に示す各実施形態は、この実施形態の技術的思想を具体化するための装置や方法を例示するものであって、実施形態の技術的思想は、構成部品の材質、形状、構造、配置等を下記のものに特定するものでない。実施形態の技術的思想は、特許請求の範囲において、種々の変更を加えることができる。
また、以下ではNANDフラッシュメモリの一例として、3次元積層型NANDフラッシュメモリを例に挙げて各実施形態を説明する。
(第1の実施形態)
<メモリシステム>
図1を用いて、第1の実施形態に係るメモリシステムについて説明する。
第1の実施形態のメモリシステム100は、メモリコントローラ(memory controller)110と、NANDフラッシュメモリ(不揮発性半導体記憶装置)120と、を有する。尚、メモリシステム100は、ホストデバイス200を含んでも良い。
<メモリコントローラ>
メモリコントローラ110は、ホストインタフェース(Host interface)111、RAM(Random Access Memory)112、ECC(Error Correcting Code)回路113、CPU(Central Processing unit)114、ROM(Read Only Memory)115、及びフラッシュメモリインタフェース(Flash memory interface)116を含んでいる。
メモリコントローラ110は、NANDフラッシュメモリ120の動作に必要なコマンドなどをNANDフラッシュメモリ120に出力する。メモリコントローラ110は、当該コマンドをNANDフラッシュメモリ120に出力することでNANDフラッシュメモリ120からのデータの読み出し(リード)、NANDフラッシュメモリ120へのデータの書込み(書込み動作は複数のループを含み、1つのループは、プログラム動作とプログラムベリファイ動作を含む)、またはNANDフラッシュメモリ120のデータの消去等を行う。
ホストインタフェース111は、データバスを介してパーソナルコンピュータ等のホストデバイス(単にホスト等とも称す)200と接続されている。このホストインタフェース111を介して、ホストデバイス200とメモリシステム100との間でデータの送受信等が行われる。
RAM112は、例えば揮発性のメモリであり、例えばCPU114が動作するための動作プログラム等を格納する。
ECC回路113は、ホストデバイス200からデータを受信した場合、受信データにエラー訂正符号を付加する。そして、ECC回路113は、エラー訂正符号を付したデータを、例えばフラッシュメモリインタフェース116に供給する。また、ECC回路113は、NANDフラッシュメモリ120から供給されたデータを、フラッシュメモリインタフェース116を介して受信する。そして、ECC回路113は、NANDフラッシュメモリ120からの受信データに対してエラー訂正符号を用いてエラー訂正を行う。そして、ECC回路113は、ホストインタフェース111に、エラー訂正を行ったデータを供給する。
CPU114は、メモリシステム100の全体の動作を司る。CPU114はRAM112及びROM115に格納されたデータに基づいてNANDフラッシュメモリ120を制御する。尚、上述したように、ホストデバイス200が、メモリシステム100に含まれる場合においても、CPU114は、メモリシステム100全体の動作を司る。
ROM115は、不揮発性のメモリであり、例えばCPU114が動作するための動作プログラム等を格納する。
フラッシュメモリインタフェース116には、データバスを介してNANDフラッシュメモリ120が接続されている。
<NANDフラッシュメモリ>
NANDフラッシュメモリ120は、入出力バッファ(Input / Output buffer)121、制御回路(Control Circuit)122、カラムアドレスバッファ/カラムデコーダ(Column address buffer / Column decoder)123、フェイルビットカウンタ回路(Fail bit counter circuit)124、データラッチ回路(Data Latch Circuit)125、センスアンプ(Sense Amplifier)126、ロウアドレスバッファ(Row Address Buffer)127、ロウデコーダ(Row Decoder)128、及びメモリセルアレイ(Memory Cell Array)130を備えている。
メモリセルアレイ130は、複数の不揮発性のメモリセルトランジスタが、半導体基板に対して垂直方向に積層された3次元不揮発性半導体記憶装置である。メモリセルアレイ130の詳細な構成については後述する。
センスアンプ126は、データの読み出し動作時には、メモリセルトランジスタからビット線に読み出されたデータを、SENノード(不図示)にてセンスする。またセンスアンプ126は、データの書込み動作時には、センスアンプのSENノードにプログラムデータに応じたプログラム電圧をセットする。メモリセルアレイ130へのデータの読み出し及び書込みは、複数のメモリセルトランジスタ単位(後述するページ単位)で行われる。センスアンプ126は、カラムアドレスバッファ/カラムデコーダ123から入力されるビット線選択信号を受信し、ビット線選択トランジスタ(不図示)を介してビット線BLの何れかを選択して駆動する。
尚、書込み動作は、電荷を、メモリセルトランジスタMTの電荷蓄積層に注入して閾値を上昇させるプログラム電圧印加動作(プログラム動作等とも呼ぶ)と、当該プログラム電圧印加動作の結果としての閾値分布の変化を確認するプログラムベリファイ動作とを含んでいる。
データラッチ回路125は、それぞれSRAM等で構成される第1のキャッシュ(cache)125a、第2のキャッシュ125b、及び第3のキャッシュ125cを備えている。第1のキャッシュ125a、第2のキャッシュ125b、及び第3のキャッシュ125cは、それぞれ、メモリコントローラ110から供給されたデータや、センスアンプ126によって検知されたベリファイ結果等を格納する。また、第1のキャッシュ125a、第2のキャッシュ125b、及び第3のキャッシュ125cは、それぞれ、1ページ分のデータを保持する。ページの定義に関しては後述する。
フェイルビットカウンタ回路124は、データラッチ回路125に格納されているベリファイの結果からプログラムが完了していないビット数をカウントする。
カラムアドレスバッファ/カラムデコーダ123は、メモリコントローラ110から入出力バッファ121を介して入力されるカラムアドレス信号を一時的に格納する。そして、カラムアドレス信号に従ってビット線BLの何れかを選択する選択信号をセンスアンプ126に出力する。
ロウデコーダ128は、ロウアドレスバッファ127を介して入力されるロウアドレス信号をデコードし、メモリセルアレイのワード線WL及び選択ゲート線SGD、SGSを選択して駆動する。また、このロウデコーダ128は、メモリセルアレイ130のブロックを選択する部分とページを選択する部分を有する。
なお、第1の実施形態のNANDフラッシュメモリ120は、図示せぬ外部入出力端子I/Oを有し、この外部入出力端子I/Oを介して入出力バッファ121とメモリコントローラ110とのデータの授受が行われる。外部入出力端子I/Oを介して入力されるアドレス信号は、ロウアドレスバッファ127を介してロウデコーダ128及びカラムアドレスバッファ/カラムデコーダ123に出力される。
制御回路122は、メモリコントローラ110を介して供給される各種外部制御信号(チップイネーブル信号CEn、書込みイネーブル信号WEn、読み出しイネーブル信号REn、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE等)とコマンドCMDに基づき、データのプログラム及び消去のシーケンス制御、及びリード動作を制御する。
また、制御回路122は、レジスタ122a、122b、及び122cを備えており、後述するフラグデータ、及びフェイルビットカウンタ回路124によってカウントされた値に関係する値等、制御回路122が演算するために必要な値を格納している。
レジスタ122aは、後述する規定値NCHK_PV等を格納し、レジスタ122bは、規定値NML2V_PV等を格納する。また、レジスタ122cは、後述するサンプルストリング、若しくは下位ページからリードした情報(例えば8ビット情報)等を格納する。
そして、制御回路122は、レジスタ122cに格納されたフラグデータに基づいて、プログラム動作時に用いる初期プログラム電圧を決定する。
また、制御回路122は、プログラムが完了していないビット数と、設定された許容フェイルビット数とを比較して、プログラム動作がパスしたかフェイルであるかの判断を行う。また、制御回路122は、内部にプログラムパルス印加回数をカウントするループカウンタを備えている。
<メモリセルアレイ>
次に、図2〜図4を用いて、第1の実施形態に係るメモリセルアレイ130の構成の詳細について説明する。
図2に示すように、メモリセルアレイ130は、複数の不揮発性メモリセルトランジスタを備えており、それぞれがワード線及びビット線に関連付けられている。また、メモリセルアレイ130は、複数の不揮発性メモリセルトランジスタの集合である複数(図2では3個を図示している)のブロックBLK(BLK0、BLK1、BLK2、…)を備えている。
ブロックBLKの各々は、メモリセルトランジスタが直列接続されたNANDストリング131を備えている。また、メモリセルアレイ130は、NANDストリング131の集合である複数のストリングユニットSU(SU0、SU1、SU2、…)を備えている。もちろん、メモリセルアレイ130内のブロック数や、1ブロックBLK内のストリングユニット数は任意である。
ブロックBLK0においては、図3に示すようなカラムの構成が、紙面垂直方向に複数設けられている。第1の実施形態では、ブロックBLK0は、例えば4つのストリングユニットSU(SU0〜SU3)を含んでいる。また各々のストリングユニットSUは、図3の紙面垂直方向に複数のNANDストリング131を含む。他のブロックBLKもブロックBLK0と同様の構成を有している。
NANDストリング131の各々は、例えば48個のメモリセルトランジスタMT(MT0〜MT47)と、選択トランジスタST1、ST2とを含んでいる。メモリセルトランジスタMTは、制御ゲートと電荷蓄積層とを含む積層ゲートを備え、データを不揮発に保持する。なお、メモリセルトランジスタMTの個数は48個に限られず、8個や、16個や32個、64個、128個等であってもよく、その数は限定されるものではない。また、メモリセルトランジスタMT0〜MT47を区別しない場合には、単にメモリセルトランジスタMTと称す。
複数のメモリセルトランジスタMTは、選択トランジスタST1、ST2間に、直列接続されるようにして配置されている。
ストリングユニットSU0〜SU3の各々の選択トランジスタST1のゲートは、それぞれ選択ゲート線SGD0〜SGD3に接続され、選択トランジスタST2のゲートは、それぞれ選択ゲート線SGS0〜SGS3に接続される。これに対して同一のブロックBLK0内にあるメモリセルトランジスタMT0〜MT47の制御ゲートはそれぞれワード線WL0〜WL47に共通接続される。尚、ワード線WL0〜WL47を区別しない場合には、単にワード線WLと称す。
すなわち、ワード線WL0〜WL47は同一ブロックBLK0内の複数のストリングユニットSU0〜SU3間で共通に接続されているのに対し、選択ゲート線SGD、SGSは、同一ブロックBLK0内であってもストリングユニットSU0〜SU3毎に独立している。
また、メモリセルアレイ130内でマトリクス状に配置されたNANDストリング131のうち、同一行にあるNANDストリング131の選択トランジスタST1の他端は、いずれかのビット線BL(BL0〜BL(L−1)、(L−1)は1以上の自然数)に共通接続される。すなわち、ビット線BLは、複数のブロックBLK間で、NANDストリング131を共通に接続する。また、選択トランジスタST2の電流経路の他端は、ソース線SLに共通に接続されている。ソース線SLは、例えば複数のブロック間で、NANDストリング131を共通に接続する。
前述の通り、同一のブロックBLK内にあるメモリセルトランジスタMTのデータは、一括して消去される。これに対してデータのリード及びプログラムは、いずれかのブロックBLKのいずれかのストリングユニットSUにおける、いずれかのワード線WLに共通に接続された複数のメモリセルトランジスタMTにつき、一括して行われる。このように一括して書込まれる単位を「ページ」と呼ぶ。
続いて、メモリセルアレイ130の断面構造の一例につき、図4を用いて簡単に説明する。図4に示す構造が、図4を記載した紙面の奥行き方向(D2方向)に複数配列され、且つそれらがワード線WL、選択ゲート線SGD及びSGSを共有して、1つのストリングユニットSUが形成される。
図示しない半導体基板上方に、ソース線SL10が形成される。そして、図4に示すように、ソース線SL10の上方には、選択ゲート線SGSとして機能する導電膜21aが形成される。また、導電膜(例えば多結晶シリコン膜)21a上には、ワード線WLとして機能する複数の導電膜(例えば多結晶シリコン膜)25が形成される。更に導電膜25上方には、選択ゲート線SGDとして機能する導電膜(例えば多結晶シリコン膜)21bが形成される。そして、各導電膜21a、21b及び25を、それぞれD3方向において電気的に分離するように、電極間絶縁膜が各導電膜21a、21b及び25間に形成されている。より具体的には、導電膜25と電極間絶縁膜はD3方向において交互に積層されている。
そして、上記導電膜21a、21b、25、及び電極間絶縁膜に、半導体基板表面に対して垂直方向(D3方向:D2方向に直交する方向)に延伸するメモリホールが形成される。本明細書では、D1方向(D2方向、及びD3方向に直交する方向)、及びD2方向に平行な平面におけるメモリホールの直径をMH径と称す。第1の実施形態においては、導電膜21a、21b、25、及び電極間絶縁膜等の多層膜にメモリホールを形成する。この場合、多層膜における上層領域は、下層領域よりも多くエッチングされる。このため、上層領域のメモリホールのMH径は、下層領域のメモリホールのMH径よりも大きい。このMH径の差は、メモリホールのエッチング距離(D3方向)が長くなればなるほど、顕著となることがある。
この選択トランジスタST2となる領域に形成されたメモリホールの内壁には、ゲート絶縁膜22a、及び半導体層20aが順次形成され、柱状構造が形成される。
メモリセルトランジスタとなる領域に形成されたメモリホールの内壁には、ブロック絶縁膜24、電荷蓄積層(絶縁膜)23、及びゲート絶縁膜22b、半導体層20bが順次形成され、柱状構造が形成される。
選択トランジスタST1となる領域に形成されたメモリホールの内壁には、ゲート絶縁膜22c、及び半導体層20cが順次形成され、柱状構造が形成される。
半導体層20bは、メモリセルトランジスタMTの動作時にチャネルが形成される領域である。更に、半導体層20c上にはビット線層30が形成される。
メモリセルアレイ130の構成については、例えば、“三次元積層不揮発性半導体メモリ”という2009年3月19日に出願された米国特許出願12/407,403号に記載されている。また、“三次元積層不揮発性半導体メモリ”という2009年3月18日に出願された米国特許出願12/406,524号、“不揮発性半導体記憶装置及びその製造方法”という2010年3月25日に出願された米国特許出願12/679,991号、“半導体メモリ及びその製造方法”という2009年3月23日に出願された米国特許出願12/532,030号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
<メモリセルトランジスタの閾値分布>
次に、図5(a)、図5(b)、及び図5(c)を用いて、本実施形態に係るメモリセルトランジスタMTの取りうる閾値分布について説明する。
図5(a)、図5(b)、及び図5(c)に示すようにメモリセルトランジスタMTは、その閾値に応じて例えば2ビットのデータを保持可能である。この2ビットデータは、閾値の低いものから順番に、例えば“E”レベル、“A”レベル、“B”レベル、及び“C”レベルである。また、各レベルは、上位ビット及び下位ビットの2ビットのアドレスをもつ。例えば“E”レベルは“11”と番号付けされ、“A”レベルは“01”と番号付けされ、“B”レベルは“00”と番号付けされ、“C”レベルは“10”と番号付けされる。“11”、“01”、“00”、及び“10”は、左側の数字が上位ビット、右側の数字が下位ビットに割り当てられる。ここでは、下位ビットのデータの書込み単位を「下位ページ」と呼ぶ。また、上位ビットのデータの書込み単位を「上位ページ」と呼ぶ。
“E”レベルは、データが消去された状態における閾値であり、例えば負の値を有し(正の値を有していても良い)、消去ベリファイ電圧EVよりも低い。“A”〜“C”レベルは、電荷蓄積層内に電荷が注入された状態の閾値であり、“A”レベルはリードレベル“AR”よりも高く、且つリードレベル“BR”より低い閾値を有する。“B”レベルは、リードレベル“BR”よりも高く、且つリードレベル“CR”より低い閾値を有する。“C”レベルは、リードレベル“CR”よりも高い閾値を有する。
このように、個々のメモリセルトランジスタMTは、4つの閾値レベルを取り得ることにより、2ビットのデータ(4-level data)を記憶出来る。
下位ページプログラム(lower page program)が行われると、図5(a)に示す消去状態(“E”レベル)の閾値分布が、図5(b)に示す2値(Lower-levelと、Middle-level)の閾値分布に変化する。電圧“MR”を選択ワード線に供給してリード動作を行なうことで、メモリセルトランジスタMTの閾値電圧が電圧“MR”よりも高いか低いか判別できる。その結果、2値(Lower-levelと、Middle-level)のデータを読み出すことができる。
下位ページプログラムの後に上位ページプログラム(upper page program)が行われると、図5(b)に示す2値の閾値分布が、図5(c)に示すように、4値の閾値分布に変化する。以上のように、下位ページプログラムを行った後に、上位ページプログラムを行う事で、4値のデータのプログラム動作を行う方法を、第1のプログラム動作と称す。
また、メモリセルトランジスタMTに対して下位ページのデータと上位ページのデータとを併せてプログラムすることで、図5(a)に示す1値の閾値分布を、図5(c)に示すような4値の閾値分布に変化することも可能である。このように、下位ページプログラムと、上位ページプログラムとを分けて行わずに、消去状態から直接2ビット(4値)以上の複数ビットのプログラムを行う方法を第2のプログラム動作と称す。
第1の実施形態では、メモリセルトランジスタMTが4値を保持する場合において、メモリセルトランジスタMTへのプログラム動作として、第1のプログラムを適用するメモリシステム100について説明する。
尚、図5(b)及び図5(c)において、電圧MR及び後述するプログラムベリファイ電圧VCHKは、同様の電圧であるように示されているが、電圧MR及び電圧VCHKは必ずしも同様である必要はなく、それぞれの大小関係は適宜変更可能である。
<ページ>
次に、ページについて説明する。第1の実施形態に係るメモリセルトランジスタMTは、4値を保持する。そのため、図6に示すように、第1の実施形態に係るページには、下位ページと、上位ページとが存在する。
図6に示すように、下位ページ(lower page)132は、通常データ領域(normal data area)132aと、冗長データ領域(redundancy area)132bとを有している。
上位ページ(upper page)133は、通常データ領域133aと、冗長データ領域133bとを有している。
通常データ領域(normal data area)132a、及び133aには、例えばホスト200から供給されたデータが格納される。冗長データ領域(redundancy area)132b、133bには、例えばフラグデータなどが格納される。尚、フラグデータについては、後述で説明する。
<第1の実施形態に係るデータの書込み動作の概要>
ところで、メモリセルアレイ130は、3次元積層型の構造を有しており、メモリセルトランジスタMTのプログラム特性(条件)は、ワード線WLの膜厚等の仕上がり形状に起因するプログラム特性のバラツキと、MH径に起因するプログラム特性のバラツキと、が存在する。
しかしながら、同一ブロック内の同一ワード線であれば、ストリングユニットSU間のバラツキはそれほど大きくないと考えられる。
そこで、例えば、ブロック内の1つのストリングユニットを、“メモリセルトランジスタMTのプログラム特性を取得(キャプチャ)するためのサンプルストリングユニット“とする。そして、サンプルストリングユニットから取得したプログラム特性を、同一ブロック内のサンプルストリングユニット以外のストリングユニットに適用する。これにより、サンプルストリングユニット以外のユニットにおけるプログラムスピードを向上させることが可能となる。
サンプルストリングユニットのそれぞれのワード線WLは、各ブロックにおいて最初にプログラムされることが望ましい。
本実施形態では、ストリングユニットSU0に係るページアドレスは、ストリングユニットSU0以外のストリングユニットに係るページアドレスと比較して小さいものとする。そのため、制御回路122は、ストリングユニットSU0以外のストリングユニットのワード線WLよりも先にストリングユニットSU0のメモリセルトランジスタMTをプログラムする。そして、制御回路122は、特に指定がない場合は、ストリングユニットSU0をサンプルストリングユニットとして取り扱う。
制御回路122は、サンプルストリングユニットに対して、所定のプログラム動作を行い、メモリセルトランジスタMTがオーバープログラムされない、最大の初期プログラム電圧VPGMを導出する。このような動作を、キャプチャ動作とも呼ぶ。第1のプログラム動作において、このキャプチャ動作は、サンプルストリングユニットの所定のワード線WLにおける下位ページプログラムの際、同時に行われる。また、第2のプログラム動作において、このキャプチャ動作は、サンプルストリングユニットの所定のワード線WLへのプログラムの際に行われる。詳細なキャプチャ動作については後述する。
そして、制御回路122は、キャプチャ動作の結果に基づいて、サンプルストリングユニットの所定のワード線WLと同一ワード線の上位ページだけでなく、同一ブロック内の他のストリングユニットSUの同一のワード線WLの下位ページ、及び上位ページの初期プログラム電圧を決定する。制御回路122は、キャプチャ動作を、サンプルストリングユニットのワード線WL毎に行う。
制御回路122は、メモリコントローラ110から受信したコマンド及びアドレスに基づいて、キャプチャ動作を行う。制御回路122は、どのようなコマンド及びアドレスに基づいて、キャプチャ動作を行うか否かについては、後述する他の例で詳細に説明する。
<第1の実施形態に係るデータの書込み動作の詳細>
以下に、図7に示すフローチャートに沿って、第1の実施形態に係る第1のプログラム動作について説明する。尚、下記に示す処理は、主に制御回路122の制御によって実行される。
[S1001]
制御回路122は、メモリコントローラ110から、プログラムコマンド、ブロックアドレス、ページのアドレス(選択ストリングユニットSUP(P:0以上の整数)のアドレス情報を含む)、プログラム開始コマンドを受信する前に、サンプルストリングユニット指定コマンドを受信したか否かを判定する。尚、以下では簡単のために、プログラムコマンド、アドレス、データ、及びプログラム開始コマンドをまとめて「コマンドシーケンス」等と称すことがある。
<<コマンドシーケンス例1>>
ここで、図8を用いて、プログラム開始コマンドを受信する前に、サンプルストリングユニット指定コマンドを受信しない場合の下位ページプログラムに係るコマンドシーケンスについて説明する。
図8に示すように、コマンドシーケンスが、メモリコントローラ110から、NANDフラッシュメモリ120に入力される前は、チップイネーブル信号CEn、アドレスラッチイネーブル信号ALE、コマンドラッチイネーブル信号CLEは、“L(low)”レベルである。また、書込みイネーブル信号WEn、読み出しイネーブル信号REnは、“H(high)”レベルである。また、データラッチ回路125のレディ/ビジー状態を示すレディ/ビジー信号(R/Bn)は“レディ”状態である。
続いて、NANDフラッシュメモリ120は、コマンドラッチイネーブル信号CLEが“H”レベルである期間に、メモリコントローラ110からコマンド“80H”が入力され、書込みイネーブル信号WEnが“L”レベルとなる。
NANDフラッシュメモリ120は、アドレスラッチイネーブル信号ALEが“H”レベルである期間、メモリコントローラ110からアドレスを受信する。このアドレスは、下位ページのアドレスである。
そして、NANDフラッシュメモリ120は、アドレスに続いて、データを受信する。これにより、当該データが第1のキャッシュ125aに格納される。
また、NANDフラッシュメモリ120は、コマンドラッチイネーブル信号CLEが“H”レベルである期間に、メモリコントローラ110からコマンド“10H”が入力される。これにより、下位ページプログラムが実行される。上位ページプログラムの際も、同様のコマンドシーケンスで動作される。
<<コマンドシーケンス例2>>
また、図9を用いて、プログラム開始コマンドを受信する前に、サンプルストリングユニット指定コマンドを受信する場合の下位ページプログラムに係るコマンドシーケンスについて説明する。
図9に示すように、NANDフラッシュメモリ120は、コマンドラッチイネーブル信号CLEが“H”レベルである期間に、メモリコントローラ110からサンプルストリングユニット指定コマンド“ZZH”が入力される。
そして、NANDフラッシュメモリ120は、アドレスラッチイネーブル信号ALEが“H”レベルである期間、メモリコントローラ110からストリングユニットのアドレスを受信する。このアドレスは、指定されたストリングユニット(指定ストリングユニットSUQ(Q:0以上の整数)等と称す)のアドレスである。そして、図8を用いて説明した動作と同様に動作する。これにより、下位ページプログラムが実行される。上位ページプログラムの際も、同様のコマンドシーケンスで動作される。
[S1002]
制御回路122は、ステップS1001において、サンプルストリングユニット指定コマンドを受信しないと判定する場合(S1001、NO)、ストリングユニットSU0をサンプルストリングユニットとして取り扱う。そして、制御回路122は、選択された選択ストリングユニットSUPが、ストリングユニットSU0か否かを判定する。尚、選択ストリングユニットSUPとは、プログラム動作が行われるストリングユニットである。
[S1003]
制御回路122は、ステップS1002において、選択ストリングユニットSUPが、ストリングユニットSU0であると判定する場合(S1002、YES)、受信したページのアドレスが、下位ページのアドレスであるか否かを判定する。
[S1004]
制御回路122は、ステップS1002において、選択ストリングユニットSUPが、ストリングユニットSU0ではないと判定する場合(S1002、NO)、受信したページのアドレスが、下位ページのアドレスであるか否かを判定する。
[S1005]
制御回路122は、ステップS1001において、サンプルストリングユニット指定コマンドを受信すると判定する場合(S1001、YES)、有効なストリングユニットのアドレスが指定されたか否かを判定する。換言すると、制御回路122は、指定ストリングユニットSUQが、例えば、図示しないレジスタに格納されている、ストリング情報と比較し、存在するストリングであるか否かを判定する。
[S1006]
制御回路122は、ステップS1005において、指定ストリングユニットSUQが、有効なアドレス指定ではないと判定する場合(S1005、NO)、受信したページのアドレスが、下位ページのアドレスであるか否かを判定する。
[S1007]
制御回路122は、ステップS1005において、指定ストリングユニットSUQが、有効なアドレス指定であると判定する場合(S1005、YES)、選択ストリングユニットSUPが、指定ストリングユニットSUQと同じか否かを判定する。
[S1008]
制御回路122は、ステップS1007において、指定ストリングユニットSUQが、選択ストリングユニットSUPと同じであると判定する場合(S1007、YES)、受信したページのアドレスが、下位ページのアドレスであるか否かを判定する。
[S1009]
制御回路122は、ステップS1007において、指定ストリングユニットSUQと、選択ストリングユニットSUPとが同じではないと判定する場合(S1007、NO)、受信したページのアドレスが、下位ページのアドレスであるか否かを判定する。
<ステップS1003において、“YES”の場合>
次に、図10を用いて、制御回路122が、図7のステップS1003において、受信したページのアドレスが、下位ページのアドレスであると判定する場合(S1003、YES)について説明する。
第1の実施形態に係るデータのプログラム動作例につき、図10のフローチャートを用いて説明する。下記では、下位ページプログラムの一部として、キャプチャ動作を行う動作例について示している。
[S1101]
まず、制御回路122は、受信した下位ページのデータを第3のキャッシュ125cに格納する。そして、制御回路122は、キャプチャ動作を行う。
ところで、制御回路122は、キャプチャ動作が終了するまで、第3のキャッシュ125cに格納された冗長データ領域132bのフラグデータが格納されるカラムアドレスには、非書込みデータをセットする。
[S1102]
次に、図11に示すように、制御回路122は、下位ページのプログラム動作を開始する。具体的には、制御回路122の命令に応答して、ロウデコーダ128は、選択されたストリングユニットの選択トランジスタをオンさせつつ、選択ワード線WLn(n:0以上の整数)にプログラム電圧VPGMCを印加する。また、制御回路122の命令に応答して、センスアンプ126がビット線BLに下位ページデータに応じた電圧を印加する。
これにより、制御回路122は、第3のキャッシュ125cに格納した下位ページデータをメモリセルトランジスタMTにプログラムする。
[S1103]
次に、制御回路122の命令に応答して、ロウデコーダ128は、キャプチャ動作時のベリファイ用のプログラムベリファイ電圧VCHKを選択ワード線WLnに印加する。
このようにして、制御回路122は、第1のプログラムベリファイ動作を実行する。すなわち、制御回路122の命令に従って、センスアンプ126が選択ページからデータを読み出す。そして制御回路122は、メモリセルトランジスタMTの閾値が所望の値まで上昇しているか否かを、読み出しデータに基づいて確認する。
[S1104]
制御回路122は、キャプチャ動作時のベリファイ用のプログラムベリファイ電圧VCHKを超えたメモリセルトランジスタ数NCHK_PASSが、規定値NCHK_PVを超えているか否かを判定する。尚、この規定値NCHK_PVは、図示しないメモリセルアレイ130のロムヒューズブロックに格納されており、メモリシステム100の起動時に読み出され、予めレジスタ122aに規定値NCHK_PVを格納しておく。
[S1105]
ステップS1104において、制御回路122が、メモリセルトランジスタ数CHK_PASSが、規定値CHK_PVを超えていないと判定する場合(S1104、NO)、制御回路122は、ループ数NWLn_loopをNWLn_loop+1に更新する。尚、ループ数NWLn_loopの初期値は“0”である。
[S1106]
また、制御回路122は、ループ数NWLn_loopを更新した後、プログラム電圧VPGMを、DVPGM_Lだけ増加させる。そして、制御回路122は、更新されたプログラム電圧VPGMを用いてステップS1102の動作を繰り返す。尚、ステップS1105、及びステップS1106の動作の順序は入れ替えても良い。
[S1107]
ステップS1104において、制御回路122が、メモリセルトランジスタ数NCHK_PASSが、規定値NCHK_PVを超えていると判定する場合(S1104、YES)、制御回路122は、信号SV_PASSを“L(Low)”レベルから“H(High)”レベルへと立ち上げる。信号SV_PASSが“L”レベルから“H”レベルに立ち上がると、制御回路122は、電圧ML2Vを超えているメモリセルトランジスタ数NML2V_PASSが、規定値NML2V_PVを超えているか否かの判定を行うために、プログラムベリファイ動作を行う。
より具体的には、ロウデコーダ128は、ベリファイ電圧ML2Vを選択ワード線WLnに印加して、プログラムベリファイ動作を実行する。
[S1108]
続いて、制御回路122は、ステップS1107におけるプログラムベリファイ結果を読み出すと、信号DETECT_CHKを“L”レベルから“H”レベルに立ち上げる。制御回路122は、信号DETECT_CHKが“H”の期間に、電圧ML2Vを超えているメモリセルトランジスタ数NML2V_PASSが、規定値NML2V_PVを超えているか否かの判定を行う。この規定値NML2V_PVは、メモリセルアレイ130の図示しないロムヒューズブロックに格納されており、メモリシステム100の起動時に読み出され、制御回路122はレジスタ122bに規定値NML2V_PVを格納しておく。
ところで、ステップS1102〜S1106の動作の結果、middle levelのベリファイレベルである電圧ML2Vを超えるメモリセルトランジスタ数NML2V_PASSが、規定値NML2V_PVを超えていることがある。この場合における、ステップS1104において“YES”となったプログラム電圧VPGMを、下位ページプログラムの初期プログラム電圧として用いると、middle levelのベリファイレベルに、規定値以上のセルが到達し、オーバープログラムが発生する可能性がある。このような、オーバープログラムを抑制するために、制御回路122は、上述したステップS1107、S1108の動作を行い、メモリセルトランジスタ数NML2V_PASSが、規定値NML2V_PVを超えているか否かを、判定する。上記判定動作が終了することにより、キャプチャ動作の完了となる。
[S1109]
制御回路122は、キャプチャ動作が完了した後に、キャプチャ動作の結果をフラグデータとしてレジスタ122cに格納する。具体的には、制御回路122は、ステップS1107、S1108におけるプログラムベリファイ結果と、ステップS1104をパスするまでに要したループ数と、をフラグデータとして制御回路122のレジスタ122cに格納する。このフラグデータは、例えば8ビットデータである。第1の実施形態では、当該8ビットのデータの内、1ビット分のデータが当該判定結果(電圧ML2Vを超えているメモリセルトランジスタ数NML2V_PASSが、規定値NML2V_PVを超えているか否か)に割り当てられ、7ビット分のデータがループ数に割り当てられる。
具体的には、ループ数NWLn_loop=4の際に、メモリセルトランジスタ数NCHK_PASSが、NCHK_PASS>NCHK_SV且つNML2V_PASS<NML2V_PVとなる場合、8ビットのフラグデータは、{0_000_100}と表わされる。また、ループ数NWLn_loop=4の際に、メモリセルトランジスタ数NCHK_PASSが、NCHK_PASS>NCHK_SV且つNML2V_PASS>NML2V_PVとなる場合、8ビットのデータは、{1_000_100}と表わされる。本実施形態では、フラグデータの最上位ビットをSV_OVERと定義する。つまり、フラグデータのフォーマットは、{SV_OVER、NWLn_loop[6:0]}となる。電圧ML2Vを超えているメモリセルトランジスタ数NML2V_PASSが、規定値NML2V_PVを超えていない場合は、ビットSV_OVERは“0”となり、超えている場合は、ビットSV_OVERは“1”となる。
制御回路122は、レジスタ122cに格納されているフラグデータを、第3のキャッシュ125cに格納されている冗長データ領域132bに上書きし、冗長データ領域132bのフラグデータのプログラム禁止状態を解除する。次のプログラムパルスの印加から、通常データ領域132aと共にフラグデータのプログラム動作を開始する。尚、制御回路122は、この際にループカウンタをリセットする。
[S1110]
続いて、制御回路122は、ループ数NWLn_loopをNWLn_loop+1に更新する。
[S1111]
また、制御回路122は、ループ数NWLn_loopを更新した後、プログラム電圧VPGMを、DVPGM_Lだけ増加させる。
尚、ステップS1110、及びステップS1111の動作の順序は入れ替えても良い。
[S1112]
本例のように、キャプチャ動作が下位ページプログラムの一部として行われる場合、制御回路122は、キャプチャ動作に続いて、下位ページのプログラム動作を続ける。
具体的には、制御回路122の命令に応答して、ロウデコーダ128は、選択されたストリングユニットの選択トランジスタをオンさせつつ、選択ワード線WLnに、プログラム電圧VPGMを印加する。そして、制御回路122の命令に応答して、センスアンプ126は、ビット線BLに下位ページデータに応じた電圧を印加する。
これにより、第3のキャッシュ125cに格納したデータ(通常データ領域132a及び冗長データ領域132b)がメモリセルアレイ130にプログラムされる。
[S1113]
次に、制御回路122の命令に応答して、ロウデコーダ128はプログラムベリファイ電圧ML2Vを選択ワード線WLnに印加する。
これにより、制御回路122は、プログラムベリファイ動作を実行する。以下、所望の値まで上昇していた場合をベリファイに「パスした」、と呼び、上昇していなかった場合を「フェイルした」、と呼ぶ。
[S1114]
制御回路122は、プログラムベリファイがパスしたか否かを判定する。選択ページにおけるプログラムベリファイにパスすれば(ステップS1114、YES)、当該ページに対するプログラム動作は終了する。
[S1115]
制御回路122は、選択ページにおけるプログラムベリファイがパスしていないと判断する場合(ステップS1114、NO)、当該ページに対するプログラム動作のループ数が最大値に達しているか否かを判定する。ループ数が最大値に達している場合(ステップS1115、YES)は、当該ページに対するプログラム動作は終了する。
[S1116]
ステップS1115において、制御回路122が、ループ数が最大値に達していない場合(ステップS1115、NO)は、制御回路122は、ループ数NWLn_loopをNWLn_loop+1に更新する。
[S1117]
また、制御回路122は、ループ数NWLn_loopを更新した後、プログラム電圧VPGMを、DVPGM_Lだけ増加させる。そして、制御回路122は、更新されたプログラム電圧VPGMを用いてステップS1112の動作を繰り返す。尚、ステップS1116、及びステップS1117の動作の順序は入れ替えても良い。
制御回路122は、ステップS1114のベリファイ動作をパスしたと判定する、またはステップS1115において、ループ数が最大値であると判定するまで、ステップS1112〜S1117の動作を繰り返す。
<ステップS1003において、“NO”の場合>
次に、図12に示すフローチャートに沿って、制御回路122が、ステップS1003において、受信したページのアドレスが、下位ページのアドレスでないと判定する場合(S1003、NO)について説明する。
[S1201]
制御回路122は、メモリコントローラ110から受信した上位ページのアドレスに対応する下位ページのアドレスからデータをメモリセルアレイ130からリードする。
より具体的には、制御回路122は、図13に示すように選択ワード線WLnに、例えば電圧MRを印加する。
これにより、制御回路122は、選択ワード線WLnに格納されているデータをリードすることが可能となる。
[S1202]
そして、制御回路122は、下位ページのデータをメモリセルアレイ130からリードして、第1のキャッシュ125aに下位ページのデータを格納する。制御回路122は、下位ページの冗長データ領域に書込まれているフラグデータを制御回路122のレジスタ122cに格納する。
そして、制御回路122は、第2のキャッシュ125bに、上位ページのデータを格納する。
制御回路122は、リードした下位ページ132の冗長データ領域132bのフラグデータを、上位ページ用のフラグデータとして第2のキャッシュ125bに格納されている上位ページ用の冗長データ領域133bに格納する。つまり、上位ページのフラグデータと、下位ページのフラグデータと、は同じとなる。これにより、図5(c)に示すように、上位ページをプログラムした後のフラグデータは、“11(E)”データまたは“00(B)”データとなる。このように、2値のフラグデータ(“11(E)”データまたは“00(B)”データ)は、それぞれの閾値分布が隣接していないので、メモリセルトランジスタMTの劣化などに起因する閾値分布の変動によるデータの変化を抑制することが可能となる。
[S1203]
次に、制御回路122は、レジスタ122cに格納されているフラグデータに基づいて、上位ページ用の初期プログラム電圧VPGM(VPGM=VPGM_SVU)を決定する。
下記に、図14及び図15を用いて、上位ページプログラム用の初期プログラム電圧について説明する。
(i)下位ページのフラグデータが{SV_OVER=0、NWLn_loop=m}の場合
ループ数(プログラムパルス印加回数−1)にDVPGM_Lを乗じた電圧を、初期プログラム電圧VPGMCに加算した電圧(VPGMC+NWLn_loop×DVPGM_L)を、プログラム電圧VPGM_BASEとして取り扱う。
図14(a)及び図14(b)に示すように、本例では、フラグデータが{SV_OVER=0、NWLn_loop=3であるプログラム電圧VPGM_BASEは、VPGMC+3×DVPGM_Lとなる。
(ii)下位ページのフラグデータが{SV_OVER=1、NWLn_loop=m}の場合
初期プログラム電圧VPGMCに、ループ数にDVPGM_Lを乗じた電圧を加算し、更にDVPGM_を2で除算した電圧を、全体から減算した電圧VPGMC+NWLN_LOOP * DVPGM_L - 1/2*DVPGM_L)を、プログラム電圧VPGM_BASEとして取り扱う。
図15(a)及び図15(b)に示すように、本例では、フラグデータが{SV_OVER=1、NWLn_loop=3であるプログラム電圧VPGM_BASEは、VPGMC+2.5×DVPGM_Lとなる。
(iii)上位ページプログラム用の初期プログラム電圧
制御回路122は、上記プログラム電圧VPGM_BASEを、上位ページプログラム用の初期プログラム電圧VPGM_SVUとしても良い。
また、図14(c)、図15(c)に示すように、プログラム電圧VPGM_BASEに対して、オフセット電圧VPGM_OFFUを減じた電圧を、上位ページプログラム用の初期プログラム電圧VPGM_SVU(=VPGM_BASE−VPGM_OFFU)としても良い。
また、図14(d)、図15(d)に示すように、プログラム電圧VPGM_BASEに対して、オフセット電圧VPGM_OFFUを加えた電圧を、上位ページプログラム用の初期プログラム電圧VPGM_SVU(=VPGM_BASE+VPGM_OFFU)としても良い。
以上のようにして、制御回路122は、フラグデータを、上位ページプログラム用の初期プログラム電圧に反映させている。
[S1204]
制御回路122は、ステップS1203において決定した上位ページプログラム用の初期プログラム電圧VPGM_SVUを用いて、上位ページのプログラム動作を開始する。具体的には、制御回路122の命令に応答して、ロウデコーダ128は、選択されたストリングユニットの選択トランジスタをオンさせつつ、選択ワード線WLnに更新されたプログラム電圧VPGM_SVUを印加し、センスアンプ126がビット線BLに上位ページデータに応じた電圧を印加する。
これにより、第3のキャッシュ125cに格納したデータ(通常データ領域132a及び冗長データ領域132b)がメモリセルアレイ130にプログラムされる。
[S1205]
次に、図13に示すように、制御回路122の命令に応答して、ロウデコーダ128はプログラムベリファイ電圧AVL、AV、BVL、BV、CVのいずれかを適宜選択ワード線WLnに印加して、プログラムベリファイ動作を実行する。
[S1206]
制御回路122は、プログラムベリファイがパスしたか否かを判定する。選択ページにおけるプログラムベリファイにパスすれば(ステップS1206、YES)、当該ページに対するプログラム動作は終了する。
[S1207]
制御回路122は、選択ページにおけるプログラムベリファイがパスしていないと判断する場合(ステップS1206、NO)、当該ページに対するプログラム動作のループ回が最大値に達しているか否かを判定する。ループ数が最大値に達している場合は、当該ページに対するプログラム動作は終了する。
[S1208]
ステップS1207において、制御回路122が、ループ数が最大値に達していない場合(ステップS1207、NO)は、制御回路122は、ループ数NWLn_loopをNWLn_loop+1に更新する。
[S1209]
制御回路122は、プログラム電圧VPGM_SVUを、DVPGM_Uだけ増加させる。そして、制御回路122は、更新されたプログラム電圧VPGM_SVUを用いてステップS1204の動作を繰り返す。
制御回路122は、ステップS1206のベリファイ動作をパスしたと判定する、またはステップS1207において、ループ数が最大値であると判定するまで、ステップS1204〜S1209の動作を繰り返す。
<ステップS1004において、“YES”場合>
次に、図16のフローチャートに沿って、制御回路122が、ステップS1004において、受信したページのアドレスが、下位ページのアドレスであると判定する場合(S1004、YES)について説明する。
制御回路122は、コマンドシーケンスを受信する前に、サンプルストリングユニット指定コマンドを受信せず、選択ストリングユニットSUPが、ストリングユニットSU0ではないと判定する場合、ストリングユニットSU0をサンプルストリングユニットとして用いる。つまり、制御回路122は、下位ページプログラムであるが、キャプチャ動作を行わず、サンプルストリングユニットの同一ワード線に登録されたフラグデータを元に、下位ページの初期プログラム電圧を設定する。
[S1301]
まず、制御回路122は、第1のキャッシュ125aに、下位ページのデータを格納する。そして、制御回路122は、サンプルストリングユニットSU0から、フラグデータをリードする。より具体的には、図17に示すように選択ワード線WLnに、Bレベルリード電圧BRを印加する。ここでは、選択ワード線WLnに、Bレベルリード電圧BRではなくてAレベルリード電圧ARを印加しても良い。本ステップS1301のリード動作では、フラグデータをリードすることを目的としている。フラグデータは、下位ページ及び上位ページまでプログラムされている場合、上述したように、“E”レベルまたは“B”レベルのデータとなる。そのため、サンプルストリングユニットからフラグデータをリードする場合は、Bレベルリード、またはAレベルリードのどちらか一方のみを行えば良い。
これにより、選択ワード線WLnに格納されているデータをリードすることが可能となる。
[S1302]
制御回路122は、リードされたサンプルストリングユニットSU0の下位ページの冗長データ領域132bのフラグデータと同一のデータを、第1のキャッシュ125aに格納されている冗長データ領域132bに書込む。
また、制御回路122は、リードしたフラグデータを、レジスタ122cに格納する。
[S1303]
制御回路122は、レジスタ122cに格納されたフラグデータに基づいて、下位ページプログラム用の初期プログラム電圧VPGM(VPGM=VPGM_SVL)を決定する。
下記に、下位ページプログラム用の初期プログラム電圧について説明する。
下記に、図18及び図19を用いて、下位ページプログラム用の初期プログラム電圧について説明する。
(i)下位ページのフラグデータが{SV_OVER=0、NWLn_loop=m}の場合
図14を用いて説明したように、VPGMC+NWLn_loop×DVPGM_Lを、プログラム電圧VPGM_BASEとして取り扱う。
図18(a)及び図18(b)に示すように、本例では、フラグデータが{SV_OVER=0、NWLn_loop=3であるプログラム電圧VPGM_BASEは、VPGMC+3×DVPGM_Lとなる。
(ii)下位ページのフラグデータが{SV_OVER=1、NWLn_loop=m}の場合
図15を用いて説明したように、VPGMC+NWLN_LOOP * DVPGM_L - 1/2*DVPGM_Lを、プログラム電圧VPGM_BASEとして取り扱う。
図19(a)及び図19(b)に示すように、本例では、フラグデータが{SV_OVER=1、NWLn_loop=3であるプログラム電圧VPGM_BASEは、VPGMC+2.5×DVPGM_Lとなる。
(iii)下位ページプログラム用の初期プログラム電圧
制御回路122は、上記プログラム電圧VPGM_BASEを、下位ページプログラム用の初期プログラム電圧VPGM_SVLとしても良い。
また、図18(c)、図19(c)に示すように、プログラム電圧VPGM_BASEに対して、オフセット電圧VPGM_OFFLを減じた電圧を、下位ページプログラム用の初期プログラム電圧VPGM_SVL(=VPGM_BASE−VPGM_OFFL)としても良い。
また、図18(d)、図19(d)に示すように、プログラム電圧VPGM_BASEに対して、オフセット電圧VPGM_OFFLを加えた電圧を、下位ページプログラム用の初期プログラム電圧VPGM_SVL(=VPGM_BASE+VPGM_OFFL)としても良い。
以上のようにして、制御回路122は、フラグデータを、下位ページ用の初期プログラム電圧に反映させている。
[S1304]
図17に示すように、制御回路122は、プログラム電圧VPGM_SVLを用いて、下位ページのプログラム動作を行う。具体的には、制御回路122の命令に応答して、ロウデコーダ128は、選択されたストリングユニットの選択トランジスタをオンさせつつ、選択ワード線WLnに更新されたプログラム電圧VPGM_SVLを印加する。そして、センスアンプ126がビット線BLに書込みデータに応じた電圧を印加する。
これにより、第3のキャッシュ125cに格納したデータ(通常データ領域132a及び冗長データ領域132b)がメモリセルアレイ130にプログラムされる。
[S1305]
次に、図17に示すように、制御回路122の命令に応答して、ロウデコーダ128はプログラムベリファイ電圧VML2Vを選択ワード線WLnに印加する。
このように、制御回路122は、プログラムベリファイ動作を実行する。
[S1306]
制御回路122は、プログラムベリファイがパスしたか否かを判定する。選択ページにおけるプログラムベリファイにパスすれば(ステップS1306、YES)、当該ページに対するプログラム動作は終了する。
[S1307]
制御回路122は、選択ページにおけるプログラムベリファイがパスしていないと判断する場合(ステップS1306、NO)、当該ページに対するプログラム動作のループ数が最大値に達しているか否かを判定する。ループ回が最大値に達している場合は、当該ページに対するプログラム動作は終了する。
[S1308]
ステップS1307において、制御回路122が、ループ数が最大値に達していない場合(ステップS1307、NO)は、制御回路122は、ループ数NWLn_loopをNWLn_loop+1に更新する。
[S1309]
制御回路122は、プログラム電圧VPGM_SVLを、DVPGM_Lだけ増加させる。そして、制御回路122は、更新されたプログラム電圧VPGM_SVLを用いてステップS1304の動作を繰り返す。
制御回路122は、ステップS1306のベリファイ動作をパスしたと判定する、またはステップS1307において、ループ数が最大値であると判定するまで、ステップS1304〜S1309の動作を繰り返す。
<ステップS1004において、“NO”である場合>
次に、制御回路122が、ステップS1004において、受信したページのアドレスが、下位ページのアドレスでないと判定する場合(S1004、NO)制御回路122は、選択ストリングユニットSUに対して、ステップS1201〜S1209で説明した動作と同様の動作を行う。
ところで、選択ストリングユニットSUの上位ページに対応する下位ページの冗長データ領域には、サンプルストリングSU0に格納されているフラグデータが格納されている。そのため、制御回路122は、実質的にサンプルストリングSU0の下位ページの冗長データ領域に格納されているフラグデータを用いて、選択ストリングユニットSUの上位ページ用の初期プログラム電圧を決定していることと同義となる。
<ステップS1006において、“YES”である場合>
次に、図20のフローチャートに沿って、制御回路122が、ステップS1006において、受信したページのアドレスが、下位ページのアドレスであると判定する場合(S1006、YES)について説明する。
制御回路122は、コマンドシーケンスを受信する前に、サンプルストリングユニット指定コマンドを受信し、指定ストリングユニットSUQが存在しないストリングユニットSUである(ストリングユニットがSU0〜SU3までしか存在しない場合において、指定ストリングユニットSUQ=SU4である場合)と判定する場合、レジスタ122cに格納されているフラグデータを用いて、下位ページの初期プログラム電圧を設定する。
[S1401]
まず、制御回路122は、第3のキャッシュ125cに、下位ページのデータを格納する。そして、制御回路122は、制御回路122のレジスタ122cに格納されているフラグデータを、第3のキャッシュ125cに格納されている冗長データ領域132bに上書きする。
[S1402]〜[S1407]
ステップS1402〜S1407の動作は、ステップS1303〜S1308で説明した動作と同様である。
<ステップS1006において、“NO”である場合>
次に、制御回路122が、ステップS1006において、受信したページのアドレスが、下位ページのアドレスでないと判定する場合(S1006、YES)について説明する。制御回路122は、選択ストリングユニットSUに対して、ステップS1201〜S1209で説明した動作と同様の動作を行う。
ところで、選択ストリングユニットSUの上位ページに対応する下位ページの冗長データ領域には、サンプルストリングSU0に格納されているフラグデータが格納されている。そのため、制御回路122は、実質的にサンプルストリングSU0の下位ページの冗長データ領域に格納されているフラグデータを用いて、選択ストリングユニットSUの上位ページ用の初期プログラム電圧を決定していることと同義となる。
<ステップS1008において、“YES”である場合>
次に、制御回路122が、ステップS1008において、受信したページのアドレスが、下位ページのアドレスであると判定する場合(S1008、YES)について説明する。
制御回路122は、コマンドシーケンスを受信する前に、サンプルストリングユニット指定コマンドを受信し、指定ストリングユニットSUQで指定されたストリングユニットSUが存在し、指定ストリングユニットSUQと、選択ストリングユニットSUPと、が一致し、且つ、下位ページのプログラム動作であると判定する場合、指定ストリングユニットSUQに対して、キャプチャ動作を行う。
サンプルストリングユニットSU0が、不良によって使用不可能である場合がある。このような場合、サンプルストリングユニットとして用いるストリングユニットを、この指定ストリングユニットSUQで指定する。
メモリシステム100は、指定ストリングユニットSUQに対して、ステップS1101〜S1117で説明した動作と同様の動作を行う。
<ステップS1008において、“NO”である場合>
次に、メモリシステム100は、ステップS1008において、受信したページのアドレスが、下位ページのアドレスでないと判定する場合(S1008、NO)、サンプルストリングSU0に対して行ったステップS1201〜S1209の動作と同様の動作を、指定ストリングユニットSUQに対して行う。
<ステップS1009において、“YES”である場合>
次に、制御回路122が、ステップS1009において、受信したページのアドレスが、下位ページのアドレスであると判定する場合(S1009、YES)について説明する。
制御回路122は、コマンドシーケンスを受信する前に、サンプルストリングユニット指定コマンドを受信し、指定ストリングユニットSUQが存在するストリングユニットであり、指定ストリングユニットSUQと、選択ストリングユニットSUPと、が不一致であり、且つ、下位ページのプログラム動作であると判定する場合、指定ストリングユニットSUQから、フラグデータをリードする。
メモリシステム100は、サンプルストリングSU0に対して行ったステップS1301〜S1309の動作と同様の動作を、指定ストリングユニットSUQに対して行う。
<ステップS1009において、“NO”である場合>
次に、メモリシステム100は、ステップS1009において、受信したページのアドレスが、下位ページのアドレスでないと判定する場合(S1009、NO)、ストリングユニットSU0の代わりに指定ストリングユニットSUQに対して、ステップS1201〜S1209で説明した動作と同様の動作を行う。
<第1の実施形態に係るデータの書込み動作の作用効果について>
上述した第1の実施形態によれば、制御回路122は、コマンドシーケンスを受信する前に、サンプルストリングユニット指定コマンドを受信するか否か、また、存在するストリングが指定されるか否かを判定することで、
(i)下位ページプログラムの際にキャプチャ動作を行うか、
(ii)サンプルストリングSU0または指定ストリングSUQから、フラグデータをリードして下位ページ用の初期プログラム電圧を決定するか、
(iii)上位ページに対応する下位ページのフラグデータをリードして上位ページ用の初期プログラム電圧を決定するか、または
(iV)制御回路122のレジスタ122cに格納されているフラグデータを用いて、下位ページ用の初期プログラム電圧を決定するか、
を決定する。
連続してプログラムを行う際、プログラムの対象となるメモリセルトランジスタが、互いに同一ブロックの異なるストリングユニットに属する同一ワード線である場合、キャプチャ動作の結果は、制御回路122のレジスタ122cに格納される。そのため、同一ブロックの異なるストリングユニットに属する同一ワード線に属するメモリセルトランジスタにおいて連続してプログラムを行う場合は、キャプチャ動作は少なくとも一回行えば良い。
これにより、メモリシステム100は、下位ページ用、または上位ページ用の初期プログラム電圧の決定を行う際において、キャプチャ動作の回数を抑制しつつ、最適な当該初期プログラム電圧を決定することができる。
また、メモリシステム100は、制御回路122のレジスタ122cに格納されているフラグデータを用いて、下位ページ用の初期プログラム電圧を決定する場合、サンプルストリングユニットからのフラグデータのリード動作を行う必要がない。そのため、メモリシステム100は、サンプルストリングユニットからフラグデータをリードする場合に比べて、より短い時間で、最適な当該初期プログラム電圧を決定することができる。
また、上述した実施形態によれば、制御回路122は、コマンドシーケンスを受信する前に、サンプルストリングユニット指定コマンドを受信することで、サンプルストリングユニットを適宜選択可能としている。そのため、例えば、ストリングユニットSU0が、不良ストリングユニットであるにおいて、ストリングユニットSU0以外のストリングユニットSUQを、サンプルストリングユニットとして指定することが可能となる。
以上のように、第1の実施形態によれば、サンプルストリングユニット指定コマンドを用いることで、メモリシステム100は、上位ページ用の初期プログラム電圧の決定の際に用いるフラグデータの引用先を、適宜選択することができる。これにより、高品質なメモリシステム100を、得ることが可能となる。
<具体例>
次に図21、図22を用いて、第1の実施形態の作用効果の一部を説明するために、本実施形態に係る具体例について説明する。
図21に示すように、簡単のために、二つのストリングユニットと、4本のワード線WLについて、第1のプログラム動作を行う場合について説明する。ここでは、例えば、サンプルストリングユニットを、ストリングユニットSU0とする。そして、本具体例では、制御回路122は、図中のI(SU0、WL0)〜VIII(SU1、WL3)へと順にプログラムを行う。
下記では、制御回路122のレジスタ122cに格納されるフラグデータを活用する例と、しない例について説明する。
<具体例1>
図22(a)に示すように、本実施形態に係る具体例1では、制御回路122は、サンプルストリングユニットSU0の下位ページプログラム時に、キャプチャ動作を行い、サンプルストリングユニットSU0の上位ページプログラム時に、当該キャプチャ動作の結果を用いて、上位ページプログラムを行う。
そして、制御回路122は、ストリングユニットSU1の下位ページプログラムにおいては、レジスタ122cに格納されているフラグデータをリードし、下位ページプログラムを行っている。そして、ストリングユニットSU1の上位ページプログラムにおいては、対応する下位ページのデータをリードし、当該下位ページのフラグデータを利用して上位ページプログラムを行っている。
より具体的には、図22(a)のIに示すように、時刻T0において、制御回路122は、サンプルストリングユニットSU0の下位ページプログラム時に、キャプチャ動作を行う(図10で説明したステップS1101〜S1108と同様の動作)。
そして、時刻T1において、制御回路122は、フラグデータに基づいて、下位ページプログラムを行う(図10で説明したステップS1109〜S1117と同様の動作)。
続いて、時刻T2において、制御回路122は、上位ページプログラムを行うために、ストリングユニットSU0、ワード線WL0の下位ページのデータをリードする(図12で説明したステップS1201、S1202と同様の動作)。
そして、時刻T3において、制御回路122は、下位ページに含まれているフラグデータに基づいて、上位ページプログラム用の初期プログラム電圧を決定する。そして、制御回路122は、当該初期プログラム電圧に基づいて、上位ページプログラムを行う(図12で説明したステップS1203〜S1209と同様の動作)。
また、図22(a)のIIに示すように、時刻T4において、制御回路122は、ストリングユニットSU1のワード線WL0の下位ページプログラム時に、レジスタ122cから、フラグデータをリードする(図20で説明したステップS1401、S1402と同様の動作)。尚、本動作は、他の動作に比べて短い時間で行われる。続いて、制御回路122は、フラグデータに基づいて、下位ページプログラム用の初期プログラム電圧を決定し、下位ページプログラムを行う(図18で説明したステップS1403〜S1408と同様の動作)。ここで、時刻T4から時刻T5までに要する時間を、dT1とする。
また、時刻T5において、制御回路122は、上位ページプログラムを行うために、ストリングユニットSU1、ワード線WL0の下位ページのデータをリードする(図12で説明したステップS1201、S1202と同様の動作)。
時刻T5から時刻T6までに要する時間はdT2とする。
そして、時刻T6において、制御回路122は、リードした下位ページデータのうちのフラグデータに基づいて、上位ページプログラム用の初期プログラム電圧を決定し、上位ページプログラムを行う(図12で説明したステップS1203〜S1209と同様の動作)。ここで、時刻T6から上位ページプログラムが完了する時刻T7までに要する時間を、dT3とする。
以上のように、ストリングユニットSU0のワード線WL0、及びストリングユニットSU1のワード線WL0における下位ページプログラムと、上位ページプログラムと、が行われる。本具体例1では、例えば、このようなプログラム動作が、ストリングユニットSU0及びストリングユニットSU1のワード線WL1〜ワード線WL3(III〜VIII)に対して行われる。
<具体例2>
図22(b)に示すように、本実施形態に係る具体例2では、制御回路122は、ストリングユニットSU1の下位ページプログラムを行う際に、サンプルストリングユニットSU0からフラグデータをリードする。そして、制御回路122は、当該フラグデータに基づいて、下位ページプログラムまたは上位ページプログラム用の初期プログラム電圧を設定し、下位ページプログラムまたは上位ページプログラムを行う。
図22(b)のIに示すように、ストリングユニットSU0のワード線WL0に対するプログラム動作に関しては、図22(a)のIで説明した具体例1における各動作と同様の動作である。
図22(b)のIIに示すように、時刻T4において、制御回路122は、ストリングユニットSU1のワード線WL0の下位ページプログラム時に、サンプルストリングユニットSU0のワード線WL0から、フラグデータをリードする(図16で説明したステップS1301、S1302と同様の動作)。ここで、時刻T4から時刻T8までに要する時間を、dT2とする。
時刻T8において、制御回路122は、フラグデータに基づいて、下位ページプログラム用の初期プログラム電圧を決定し、下位ページプログラムを行う(図16で説明したステップS1303〜S1309と同様の動作)。ここで、時刻T8から時刻T9までに要する時間を、dT1とする。
また、時刻T9において、制御回路122は、ストリングユニットSU1のワード線WL0の上位ページプログラムを行うために、ストリングユニットSU1のワード線WL0の下位ページのデータをリードする(図12で説明したステップS1201、S1202と同様の動作)。ここで、時刻T11から時刻T12までに要する時間を、dT3とする。
そして、時刻T10において、制御回路122は、リードした下位ページデータのうちのフラグデータに基づいて、上位ページプログラム用の初期プログラム電圧を決定する。制御回路122は、上位ページプログラムを行う(図12で説明したステップS1203〜S1209と同様の動作)。ここで、時刻T10から上位ページプログラムが完了する時刻T11までに要する時間を、dT3とする。
以上のように、ストリングユニットSU0のワード線WL0、及びストリングユニットSU0のワード線WL1における下位ページプログラムと、上位ページプログラムと、が行われる。本具体例2では、例えば、このようなプログラム動作が、ストリングユニットSU0及びストリングユニットSU1のワード線WL1〜ワード線WL3(III〜VIII)に対して行われる。
以上のように、具体例1における、ストリングユニットSU1のワード線WL0に係るメモリセルトランジスタのプログラム時間dTA(dT1+dT2+dT3)は、具体例2における、ストリングユニットSU1のワード線WL0に係るメモリセルトランジスタのプログラム時間dTB(dT1+2×dT2+dT3)よりも、dT2だけ短い。
以上のように、具体例1は、既に制御回路122のレジスタ122cに格納されているフラグデータを、他のストリングユニットにおけるプログラム動作に用いることで、サンプルストリングユニットからのリード動作の回数を抑制することが可能となる。
(第2の実施形態)
続いて、第2の実施形態に係るメモリシステム100ついて説明する。第2の実施形態では、制御回路122は、メモリセルアレイ130へのプログラム動作において、上述した第1のプログラムではなく、上述した第2のプログラムを適用する点で、第1の実施形態と異なっている。尚、第2の実施形態において、上述した第1の実施形態と略同一の機能及び構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
<第2の実施形態に係るデータの書込み動作について>
以下に、図23に示すフローチャートに沿って、第2の実施形態に係る第2のプログラム動作について説明する。尚、下記に示す処理は、主に制御回路122の制御によって実行される。
[S2001]
制御回路122は、第2のプログラムを適用してプログラムを行う場合、まず、NANDフラッシュメモリ120は、下位ページに係るコマンドシーケンスを受信する。そして、NANDフラッシュメモリ120は、下位ページに係るコマンドシーケンスに続いて、上位ページに係るコマンドシーケンスを受信する。制御回路122は、メモリコントローラ110から、プログラムコマンド、ブロックアドレス、ページのアドレス(選択ストリングユニットSUPのアドレス情報を含む)、データ及びプログラム開始コマンドを受信する前に、サンプルストリングユニット指定コマンドを受信したか否かを判定する。
<<コマンドシーケンス例3>>
ここで、図24を用いて、プログラム開始コマンドを受信する前に、サンプルストリングユニット指定コマンドを受信しない場合の第2のプログラムに係るコマンドシーケンスについて説明する。
図24に示すように、NANDフラッシュメモリ120に下位ページに係るデータの入力が完了するまでは、図8を用いて説明した動作と同様の動作が行われる。そして、NANDフラッシュメモリ120は、コマンドラッチイネーブル信号CLEが“H”レベルである期間に、メモリコントローラ110からコマンド“YYH”が入力される。これにより、第1のキャッシュ425aに格納されているデータを、他のキャッシュに格納する。これにより、レディ/ビジー信号(R/Bn)は“ビジー”状態になる。
続いて、NANDフラッシュメモリ120に上位ページプログラムに係るコマンドシーケンスが入力される。上位ページに係るデータの入力が完了するまでは、図8を用いて説明した動作と同様の動作が行われる。そして、NANDフラッシュメモリ120は、コマンドラッチイネーブル信号CLEが“H”レベルである期間に、メモリコントローラ110からコマンド“10H”が入力される。これにより、制御回路122は、下位ページに係るデータ、及び上位ページに係るデータを用いて、第2のプログラムを行う。
<<コマンドシーケンス例4>>
また、図25を用いて、プログラム開始コマンドを受信する前に、サンプルストリングユニット指定コマンドを受信する場合の第2のプログラムに係るコマンドシーケンスについて説明する。
図25に示すように、NANDフラッシュメモリ120は、コマンドラッチイネーブル信号CLEが“H”レベルである期間に、メモリコントローラ110からサンプルストリングユニット指定コマンド“ZZH”が入力される。
そして、NANDフラッシュメモリ120は、図24を用いて説明した動作と同様に動作する。
[S2002]
制御回路122は、ステップS2001において、サンプルストリングユニット指定コマンドを受信しないと判定する場合(S2001、NO)、ストリングユニットSU0をサンプルストリングユニットとして取り扱う。そして、制御回路122は、選択された選択ストリングユニットSUPが、ストリングユニットSU0か否かを判定する。
[S2003]
制御回路122は、ステップS2001において、サンプルストリングユニット指定コマンドを受信すると判定する場合(S2001、YES)、サンプルストリングユニット指定コマンドと共に、有効なストリングユニットのアドレスが指定されたか否かを判定する。ここでは、指定されたストリングユニットを指定ストリングユニットSUQ等と称す。
[S2004]
制御回路122は、ステップS2003において、指定ストリングユニットSUQが有効なストリングユニットであると判定する場合(S2003、YES)、選択ストリングユニットSUPが、指定ストリングユニットSUQと同じか否かを判定する。
<ステップS2002において、“YES”である場合>
次に、図26を用いて、制御回路122が、ステップS2002において、選択ストリングユニットSUPが、ストリングユニットSU0であると判定する場合(S2002、YES)について説明する。下記では、第2のプログラム動作の一部として、キャプチャ動作を行う動作例について説明する。
[S2101]
例えば、制御回路122は、第3のキャッシュ125cに下位ページのデータを格納する。また、制御回路122は、第2のキャッシュ125bに上位ページのデータを格納する。そして、制御回路122は、キャプチャ動作を行う。
制御回路122は、キャプチャ動作が終了するまで、冗長データ領域132b、及び133bのフラグデータが格納されるカラムアドレスには、非書込みデータをセットする。
[S2102]
次に、図27に示すように、制御回路122は、プログラム開始コマンドを受信すると、第2のプログラム動作を開始する。具体的には、制御回路122の命令に応答して、ロウデコーダ128は、選択されたストリングユニットの選択トランジスタをオンさせつつ、選択ワード線WLnにプログラム電圧VPGMCを印加する。そして、センスアンプ126がビット線BLにプログラムデータに応じた電圧を印加する。
これにより、制御回路122は、第3のキャッシュ125cに格納したデータをメモリセルトランジスタMTにプログラムする。
[S2103]〜[S2106]
ステップS2103〜S2106の動作は、ステップS1103〜S1106の動作と同様である。
[S2107]
ステップS2104において、制御回路122が、メモリセルトランジスタ数NCHK_PASSが、規定値NCHK_PVを超えていると判定する場合(S2104、YES)、制御回路122は、信号SV_PASSを“L(Low)”レベルから“H(High)”レベルへと立ち上げる。信号SV_PASSが“L”レベルから“H”レベルに立ち上がると、制御回路122は、電圧AVまたはAVLを超えているメモリセルトランジスタ数NAV_PASSが、規定値NAV_PVを超えているか否かの判定を行うために、プログラムベリファイ動作を行う。このプログラムベリファイ動作は、上述のステップS1108にて説明したように、ステップS2104において“YES”となったプログラム電圧を、初期プログラム電圧とする場合に、オーバープログラムとなる恐れがあるか否かを判定するために行われる。より具体的には、ロウデコーダ128は、ベリファイ電圧AVまたはAVLを選択ワード線WLnに印加して、プログラムベリファイ動作を実行する。
尚、このプログラムベリファイ動作の際、選択された選択ゲート線SGD_SELと、選択ゲート線SGS_SELには、電圧VSG(VSGD<VSG)が印加され、非選択の選択ゲート線SGD_USELと、非選択の選択ゲート線SGS_USELには、接地電位VSSが印加される。更に、非選択のワード線WL_USELには、電圧VREAD(VREAD<VPASS<VPGMC)が印加される。
[S2108]
制御回路122は、ステップS2107におけるプログラムベリファイ結果を読み出すと、信号DETECT_CHKを“L”レベルから“H”レベルに立ち上げる。制御回路122は、信号DETECT_CHKが“H”の期間に、電圧AVまたはAVLを超えているメモリセルトランジスタ数NAV_PASSが、規定値NAV_PVを超えているか否かの判定を行う。この規定値NAV_PVは、メモリセルアレイ130に格納されており、メモリシステム100の起動時に読み出され、制御回路122はレジスタ122bに規定値NAV_PVを格納しておく。
[S2109]
制御回路122は、キャプチャ動作が完了した後に、キャプチャ結果をフラグデータとしてレジスタ122cに格納する。このフラグデータは、第1の実施形態で説明したものと同様に8ビットデータである。第2の実施形態では、当該8ビットのデータの内、1ビット分のデータが当該判定結果(電圧AVを超えているメモリセルトランジスタ数NAV_PASSが、規定値NAV_PVを超えているか否か)に割り当てられ、7ビット分のデータがループ数に割り当てられる。
具体的には、ループ数NWLn_loop=4の際に、メモリセルトランジスタ数NCHK_PASSが、NCHK_PASS>NCHK_SV且つNAV_PASS<NAV_PVとなる場合、8ビットのフラグデータは、{0_000_100}と表わされる。また、ループ数NWLn_loop=4の際に、メモリセルトランジスタ数NCHK_PASSが、NCHK_PASS>NCHK_SV且つNAV_PASS>NAV_PVとなる場合、8ビットのデータは、{1_000_100}と表わされる。本実施形態では、フラグデータの最上位ビットをSV_OVERと定義する。つまり、フラグデータのフォーマットは、{SV_OVER、NWLn_loop[6:0]}となる。電圧AVを超えているメモリセルトランジスタ数NAV_PASSが、規定値NAV_PVを超えていない場合は、ビットSV_OVERは“0”となり、超えている場合は、ビットSV_OVERは“1”となる。
制御回路122は、レジスタ122cに格納されているフラグデータを、第3のキャッシュ125cに格納されている冗長データ領域132bに上書きし、冗長データ領域132bのフラグデータのプログラム禁止状態を解除する。次のプログラムパルスの印加から、通常データ領域132aと共にフラグデータのプログラム動作を開始する。尚、制御回路122は、この際にループカウンタをリセットする。
[S2110]、[S2111]
ステップS2110、S2111の動作は、上述したステップS1110、及びS1111と同様の動作である。
[S2112]
本例のように、キャプチャ動作が第2のプログラムの一部として行われる場合、制御回路122は、キャプチャ動作に続いて、第2のプログラム動作を続ける。
具体的には、制御回路122の命令に応答して、ロウデコーダ128は、選択されたストリングユニットの選択トランジスタをオンさせつつ、選択ワード線WLnに、プログラム電圧VPGM(VPGM=VPGM_SVF)を印加する。そして、制御回路122の命令に応答して、センスアンプ126は、ビット線BLに下位ページデータ及び上位ページデータに応じた電圧を印加する。
これにより、第3のキャッシュ125c及び第2のキャッシュ125bに格納したデータがメモリセルアレイ130にプログラムされる。
[S2113]〜[S2116] ステップS2113〜S2116の動作は、ステップS1205〜S1208の動作と同様である。[S2117]
制御回路122は、プログラム電圧VPGMを、DVPGM_Fだけ増加させる。そして、制御回路122は、更新されたプログラム電圧VPGMを用いてステップS2112の動作を繰り返す。
制御回路122は、ステップS2114のベリファイ動作をパスしたと判定する、またはステップS2115において、ループ数が最大値であると判定するまで、ステップS2112〜S2117の動作を繰り返す。
<ステップS2002において、“NO”である場合>
次に、図28を用いて、制御回路122が、ステップS2002において、選択された選択ストリングユニットSUPが、ストリングユニットSU0でないと判定する場合(S2002、NO)について説明する。
制御回路122は、コマンドシーケンスを受信する前に、サンプルストリングユニット指定コマンドを受信せず、選択ストリングユニットSUPが、ストリングユニットSU0ではないと判定する場合、ストリングユニットSU0をサンプルストリングユニットとして用いる。つまり、制御回路122は、キャッシュ動作を行わず、サンプルストリングユニットの同一ワード線に登録されたフラグデータを元に、下位ページの初期プログラム電圧を設定する。
[S2201]
制御回路122は、ステップS2201において、ステップS1301と同様の動作を行う。
[S2202]
制御回路122は、リードされたサンプルストリングユニットSU0の冗長データ領域のフラグデータと同一のデータを、第1のキャッシュ125aに格納されている下位ページの冗長データ領域132b及び第2のキャッシュ125bに格納されている上位ページの冗長データ領域133bに書込む。また、制御回路122は、リードしたフラグデータを、レジスタ122cに格納する。
[S2203]
次に、制御回路122は、レジスタ122cに格納されているフラグデータに基づいて、第2のプログラム用の初期プログラム電圧VPGM(VPGM=VPGM_SVF)を決定する。
下記に、第2のプログラム用の初期プログラム電圧について説明する。
まず、制御回路122は、第1の実施形態で図14及び図15を用いて説明したように、プログラム電圧VPGM_BASEを導出する。そして、制御回路122は、上記プログラム電圧VPGM_BASEを、第2のページプログラム用の初期プログラム電圧VPGM_SVFとしても良い。
また、プログラム電圧VPGM_BASEに対して、オフセット電圧VPGM_OFFFを減じた電圧を、第2のプログラム用の初期プログラム電圧VPGM_SVF(=VPGM_BASE−VPGM_OFFF)としても良い。
また、プログラム電圧VPGM_BASEに対して、オフセット電圧VPGM_OFFFを加えた電圧を、第2のプログラム用の初期プログラム電圧VPGM_SVF(=VPGM_BASE+VPGM_OFFF)としても良い。
[S2204]〜[S2209]
ステップS2204〜S2209の動作は、ステップS2112〜S2117の動作と同様である。
<ステップS2003において、“NO”である場合>
次に、図29を用いて、制御回路122が、ステップS2003において、指定ストリングユニットSUQが、有効なストリングユニットではないと判定する場合(S2003、NO)について説明する。
制御回路122は、レジスタ122cに格納されているフラグデータを用いて、第2のプログラムの初期プログラム電圧を設定する。
[S2301]
まず、制御回路122は、第3のキャッシュ125cに、下位ページのデータを格納し、第2のキャッシュ125bに、上位ページのデータを格納する。そして、制御回路122は、制御回路122のレジスタ122cに格納されているフラグデータを、第3のキャッシュ125cに格納されている冗長データ領域132b、及び第2のキャッシュ125bに格納されている冗長データ領域133bに書込む。
[S2302]〜[S2308]
ステップS2302〜S2308の動作は、ステップS2203〜S2209の動作と同様である。
<ステップS2004において、YESである場合>
制御回路122が、ステップS2004において、指定ストリングユニットSUQが、選択ストリングユニットSUPと同じであると判定する場合(S2004、YES)、制御回路122は、指定ストリングユニットSUQを、サンプルストリングユニットとして置き換えて、図26及び図27を用いて説明した動作と同様の動作を行う。
<ステップS2004において、NOである場合>
制御回路122が、ステップS2004において、指定ストリングユニットSUQが、選択ストリングユニットSUPと同じでないと判定する場合(S2004、NO)、制御回路122は、指定ストリングユニットSUQを、サンプルストリングユニットとして置き換えて、図28を用いて説明した動作と同様の動作を行う。
<第2の実施形態に係るデータの書込み動作の作用効果について>
上述した第2の実施形態によれば、第2のプログラム動作を用いた場合においても、第1の実施形態と同様の効果を得ることが可能である。
(第3の実施形態)
続いて、第3の実施形態に係るメモリシステム100ついて説明する。第3の実施形態では、メモリセルアレイが複数存在するマルチプレーン構造である点で、第1及び第2の実施形態と異なっている。尚、第3の実施形態において、上述した第1及び第2の実施形態と略同一の機能及び構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
<第3の実施形態に係る不揮発性半導体記憶装置>
まず、図30を用いて、マルチプレーン構造であるメモリシステム300について説明する。図30を用いて、第3の実施形態に係わる3次元積層型不揮発性半導体記憶装置について説明する。
第3の実施形態のメモリシステム300は、メモリコントローラ110と、NANDフラッシュメモリ320と、を有する。
<NANDフラッシュメモリ>
NANDフラッシュメモリ320は、入出力バッファ121、制御回路122、カラムアドレスバッファ/カラムデコーダ123、323、フェイルビットカウンタ回路124、324,データラッチ回路125、325、センスアンプ126、326、ロウアドレスバッファ127、ロウデコーダ128、メモリセルアレイ130、及び330を備えている。尚、本明細書では、メモリセルアレイ130、330をそれぞれ第1のプレーンPB0、第2のプレーンPB1と称すことがある。
カラムアドレスバッファ/カラムデコーダ323、フェイルビットカウンタ回路324,データラッチ回路325、センスアンプ326、及びメモリセルアレイ330は、それぞれ、カラムアドレスバッファ/カラムデコーダ123、フェイルビットカウンタ回路124,データラッチ回路125、センスアンプ126、及びメモリセルアレイ130と同様の構成を有している。
そして、カラムアドレスバッファ/カラムデコーダ323、フェイルビットカウンタ回路324,データラッチ回路325、センスアンプ326、及びメモリセルアレイ330は、それぞれ、カラムアドレスバッファ/カラムデコーダ123、フェイルビットカウンタ回路124,データラッチ回路125、センスアンプ126、及びメモリセルアレイ130から独立して動作する。
尚、制御回路122は、メモリセルアレイ130、及び330に対して並列にプログラム動作を行うことが可能である。
<第3の実施形態に係るデータの書込み動作について>
次に、図31及び図32を用いて第3の実施形態に係るメモリシステム300のプログラム動作について説明する。
尚、メモリセルアレイ130における所定のワード線WLnに対するキャプチャ動作が完了するまで(少なくともメモリセルトランジスタ数NCHK_PASSが、規定値NCHK_PVを超えるまで)に要するループ数は、“a”(a:1以上の整数)であり、メモリセルアレイ330における所定のワード線WLnに対するキャプチャ動作に要するループ数は、“b”(b:1以上の整数)であるとする。尚、制御回路122は、メモリセルアレイ130、及び330に対して、同時にキャプチャ動作を行った場合、メモリセルアレイ130、及び330のどちらか一方のキャプチャ動作が終了した時点で、メモリセルアレイ130、及び330のキャプチャ動作を完了する。
また、例えば、第3の実施形態に係る制御回路122は、メモリセルアレイ130(第1のプレーンPB0)及びメモリセルアレイ330(第2のプレーンPB1)へのプログラム動作において、コマンドシーケンスを受信する前に、サンプルストリング指定コマンドを受信することがある。
<<コマンドシーケンス例5>>
ここで、図31を用いて、メモリセルアレイ130(第1のプレーンPB0)及びメモリセルアレイ330(第2のプレーンPB1)に対してプログラム動作を行う場合のコマンドシーケンスについて説明する。
図31に示すように、コマンドシーケンスが、メモリコントローラ110から、NANDフラッシュメモリ120に入力される前は、チップイネーブル信号CEn、アドレスラッチイネーブル信号ALE、コマンドラッチイネーブル信号CLEは、“L(low)”レベルである。また、書込みイネーブル信号WEn、読み出しイネーブル信号REnは、“H(high)”レベルである。また、データラッチ回路125のレディ/ビジー状態を示すレディ/ビジー信号(R/Bn)は“レディ”状態である。
続いて、NANDフラッシュメモリ120は、コマンドラッチイネーブル信号CLEが“H”レベルである期間に、メモリコントローラ110からサンプルストリングユニット指定コマンド“ZZH”が入力される。
NANDフラッシュメモリ120は、アドレスラッチイネーブル信号ALEが“H”レベルである期間、メモリコントローラ110からアドレスを受信する。このアドレスは、指定ストリングユニットSUQ0のアドレスを含んでおり、例えばメモリセルアレイ130(第1のプレーンPB0)のストリングユニットSU0のアドレスである。
そして、NANDフラッシュメモリ120は、コマンドラッチイネーブル信号CLEが“H”レベルである期間に、メモリコントローラ110からコマンド“80H”が入力され、書込みイネーブル信号WEnが“L”レベルとなる。
NANDフラッシュメモリ120は、アドレスラッチイネーブル信号ALEが“H”レベルである期間、メモリコントローラ110からアドレスを受信する。このアドレスは、選択ストリングユニットSUPのアドレスを含んでおり、例えばメモリセルアレイ130(第1のプレーンPB0)のストリングユニットSU3のワード線WL2の下位ページのアドレスである。
そして、NANDフラッシュメモリ120は、アドレスに続いて、データを受信する。これにより、当該データがメモリセルアレイ130(第1のプレーンPB0)に関連するデータラッチ回路125に格納される。そして、NANDフラッシュメモリ120は、コマンドラッチイネーブル信号CLEが“H”レベルである期間に、メモリコントローラ110からコマンド“11H”が入力される。これにより、メモリコントローラ110は、データラッチ回路125へ、メモリセルアレイ130にプログラムするデータの入力が完了した事を表わす。
続いて、NANDフラッシュメモリ120は、コマンドラッチイネーブル信号CLEが“H”レベルである期間に、メモリコントローラ110からサンプルストリングユニット指定コマンド“ZZH”が入力される。
NANDフラッシュメモリ120は、アドレスラッチイネーブル信号ALEが“H”レベルである期間、メモリコントローラ110からアドレスを受信する。このアドレスは、指定ストリングユニットSUQ1のアドレスを含んでおり、例えばメモリセルアレイ330(第2のプレーンPB1)のストリングユニットSU1のアドレスである。
そして、NANDフラッシュメモリ120は、コマンドラッチイネーブル信号CLEが“H”レベルである期間に、メモリコントローラ110からコマンド“80H”が入力され、書込みイネーブル信号WEnが“L”レベルとなる。
NANDフラッシュメモリ120は、アドレスラッチイネーブル信号ALEが“H”レベルである期間、メモリコントローラ110からアドレスを受信する。このアドレスは、選択ストリングユニットSUPのアドレスを含んでおり、例えばメモリセルアレイ330(第2のプレーンPB1)のストリングユニットSU3のワード線WL2の下位ページのアドレスである。
そして、NANDフラッシュメモリ120は、アドレスに続いて、データを受信する。これにより、当該データがメモリセルアレイ330(第2のプレーンPB1)に関連するデータラッチ回路1325に格納される。そして、NANDフラッシュメモリ120は、コマンドラッチイネーブル信号CLEが“H”レベルである期間に、メモリコントローラ110からコマンド“10H”が入力される。これにより、NANDフラッシュメモリ120は、メモリセルアレイ130(第1のプレーンPB0)及びメモリセルアレイ330(第2のプレーンPB1)に対して、図16で説明した動作と同様の動作を行う。
具体的には、メモリセルアレイ130(第1のプレーンPB0)及びメモリセルアレイ330(第2のプレーンPB1)において、それぞれ選択ワード線WL2に対して、Bレベルリード電圧BRを印加し、フラグデータをリードする。
その際に、制御回路122は、メモリセルアレイ130(第1のプレーンPB0)及びメモリセルアレイ330(第2のプレーンPB1)において、リードしたフラグデータ(ループ数)“a”と、“b”とを比較する。そして、制御回路122は、ループ数“a”と、”b“とのうち、どちらが小さいかを導出する。そして、制御回路122は、導出したループ数(フラグデータ)を用いて、メモリセルアレイ130(第1のプレーンPB0)及びメモリセルアレイ330(第2のプレーンPB1)のプログラム用の初期プログラム電圧を決定する。
<第3の実施形態に係るデータの書込み動作の作用効果について>
上述した第3の実施形態によれば、マルチプレーンを用いた不揮発性半導体記憶装置においても、第1及び第2の実施形態と同様の効果を得ることが可能である。 (第4の実施形態)
続いて、第4の実施形態に係るメモリシステム100ついて説明する。第4の実施形態では、NANDフラッシュメモリが3次元積層構造ではなく、平面NANDである点で、第1及び第2の実施形態と異なっている。尚、第3の実施形態において、上述した第1及び第2の実施形態と略同一の機能及び構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
図32を用いて、第4の実施形態に係るNAND型フラッシュメモリ400の構成を概略的に説明する。図32は、第4の実施形態に係るNAND型フラッシュメモリ420の基本的な構成を模式的に示すブロック図である。
第4の実施形態のメモリシステム400は、メモリコントローラ(memory controller)110と、NANDフラッシュメモリ(不揮発性半導体記憶装置)420と、を有する。
<NANDフラッシュメモリ>
NANDフラッシュメモリ420は、入出力バッファ421、制御回路422、カラムアドレスバッファ/カラムデコーダ423、フェイルビットカウンタ回路424,データラッチ回路425、センスアンプ426、ロウアドレスバッファ427、ロウデコーダ428、メモリセルアレイ430を備えている。入出力バッファ421、カラムアドレスバッファ/カラムデコーダ423、フェイルビットカウンタ回路424,データラッチ回路425、センスアンプ426、ロウアドレスバッファ427、ロウデコーダ428は、入出力バッファ121、カラムアドレスバッファ/カラムデコーダ123、フェイルビットカウンタ回路124,データラッチ回路125、センスアンプ126、ロウアドレスバッファ127、ロウデコーダ128は、と同様の構成を有している。
制御回路422は、レジスタ422a、422b、422c、及び422dを備えており、制御回路122が演算するために必要な値を格納している。
レジスタ422aは、後述する規定値NCHK_PV等を格納し、レジスタ422bは、規定値NML2V_PV等を格納する。また、レジスタ422c、及び422dは、後述するサンプルストリング、若しくは下位ページからリードした情報(例えば8ビット情報)を格納する。
そして、制御回路122は、レジスタ122cに格納されたフラグデータに基づいて、プログラム動作時に用いる初期プログラム電圧を決定する。
また、制御回路122は、プログラムが完了していないビット数と、設定された許容フェイルビット数とを比較して、プログラム動作がパスしたかフェイルであるかの判断を行う。また、制御回路122は、内部にプログラムパルス印加回数をカウントするループカウンタを備えている。
メモリセルアレイ430は、複数のビット線BLと、複数のワード線WLと、ソース線SLとを含む。このメモリセルアレイ430は、電気的に書き換えが可能なメモリセルトランジスタ(単にメモリセル等とも称す)MTがマトリクス状に配置された複数のブロックBLKで構成されている。メモリセルトランジスタMTは、例えば、制御ゲート電極及び電荷蓄積層(例えば浮遊ゲート電極)を含む積層ゲートを有し、浮遊ゲート電極に注入された電荷量により定まるトランジスタの閾値の変化によって多値データを記憶する。また、メモリセルトランジスタMTは、窒化膜に電子をトラップするMONOS(Metal - Oxide - Nitride - Oxide - Silicon)構造を有するものであっても良い。
尚、メモリセルアレイ430は、「SEMICONDUCTOR MEMORY DEVICE HAVING PLURALITY OF TYPES OF MEMORIES INTEGRATED ON ONE CHIP」と題された2009年3月3日に出願された発明(No. 12/397711)と、「SEMICONDUCTOR MEMORY DEVICE INCLUDING STACKD GATE HAVING CHARGE ACCUMULATION LAYER AND CONTROL GATE AND METHOD OF WRITING DATA TO SEMICONDUCTOR MEMORY DEVICE」と題された2012年4月19日に出願された発明(No. 13/451185)と、「NONVOLATILE SEMICONDUCTOR MEMORY ELEMENT, NONVOLATILE SEMICONDUCTOR MEMORY, AND METHOD FOR OPERATING NONVOLATILE SEMICONDUCTOR MEMORY ELEMENT」と題された2009年3月21日に出願された発明(No. 12/405626)と、「NONVOLATILE SEMICONDUCTOR MEMORY DEVICE HAVING ELEMENT ISOLATING REGION OF TRENCH TYPE AND METHOD OF MANUFACTURING THE SAME」と題された2001年9月21日に出願された発明(No. 09/956986)と、に開示されている。
尚、本実施形態では、便宜上、メモリセルアレイ430は、一つのブロックにつき、ワード線WL0〜WL127の128本のワード線WLが形成されているものとする。
<第4の実施形態に係るプログラム動作の概要>
ところで、上位ページプログラムを行う方法として、プログラムを行う上位ページに対応する下位ページをリードし、リードした下位ページデータを用いて上位ページプログラムを用いる方法と、外部から、下位ページに既にプログラムされているデータと同様のデータを受信し、外部から受信した下位ページデータを用いて上位ページプログラムを用いる方法とが考えられる。しかしながら、下位ページに既にプログラムされているデータにエラーが存在することがある。
そこで、本実施形態では、制御回路422は、上位ページプログラムを行う際に、上位ページに対応する下位ページのデータのリードは行わず、再度ホスト200から供給される下位ページのデータを用いて、プログラムを行う。そして、レジスタ422cまたは422dに格納されているフラグデータを用いて、上位ページの初期プログラム電圧を決定する。また、本実施形態では、所定のワード線WLの下位ページプログラムから導出されたフラグデータは、同一のワード線WLの上位ページのプログラム動作時に用いられる。
次に、図33を用いて、本実施形態に係るプログラム動作の順序について説明する。図33は、ワード線WLと、下位ページ及び上位ページとに対応する“ページ番号”を示している。また、図33は、所定のプログラム動作時において、レジスタ422c及び422d内に格納されているフラグ情報がどのページに関係しているかを示している。
制御回路422は、下位ページプログラム時のキャプチャ動作によって、フラグデータを取得すると、レジスタ422cに格納されているデータを、レジスタ422dにコピーしてセットする。そして、制御回路422は、取得したフラグデータをレジスタ422cにセットする。制御回路422は、基本的には図中のページ番号に沿ってプログラム動作を行う。本実施形態に係るプログラム動作では、連続的なプログラム動作の途中でブロックアドレスが変更された場合は、レジスタ422c及び422d内のフラグデータが“FF”データにリセットされる。
以下に本実施形態に係るプログラム動作の詳細について説明する。
<第4の実施形態に係るデータの書込み動作の詳細>
図34に示すフローチャートに沿って、第4の実施形態に係る第1のプログラム動作について説明する。尚、下記に示す処理は、主に制御回路422の制御によって実行される。
[S3001]
制御回路422は、メモリコントローラ110から、プログラムコマンド、ブロックアドレス、ページのアドレス、プログラム開始コマンドを受信すると、当該ブロックアドレスと、直前に実行されたプログラム動作に係るプログラムアドレスとが同一か否かを判定する。
[S3002]
制御回路422は、ステップS3001において、当該ブロックアドレスと、直前に実行されたプログラム動作に係るプログラムアドレスとが同一ではないと判定する場合(S3001、NO)、レジスタ422c及び422dに格納されているフラグデータを“FF”にリセットする。
[S3003]
制御回路422は、ステップS3001において、当該ブロックアドレスと、直前に実行されたプログラム動作に係るプログラムアドレスとが同一であると判定する場合(S3001、YES)またはステップS3002の処理が完了した場合、ページのアドレスが下位ページであるか否かを判定する。
[S3004]
制御回路422は、ステップS3003において、ページのアドレスが下位ページではないと判定する場合(S3003、NO)、選択ワード線WLが、同一ブロック内における最大の番号が割り当てられているワード線か否かを判定する。本実施形態では、ワード線WLは128本存在しているので、ここでは、選択ワード線WLがワード線WL127か否かを判定する。
[S3005]
制御回路422は、ステップS3004において、選択ワード線WLがワード線WL127ではないと判定する場合(S3004、NO)、レジスタ422dに“FF”がセットされているか否かを判定する。
[S3006]
制御回路422は、ステップS3004において、選択ワード線WLがワード線WL127であると判定する場合(S3004、YES)、レジスタ422cに“FF”がセットされているか否かを判定する。
<ステップS3003において、“YES”の場合>
次に、図35に示すフローチャートに沿って、制御回路122が、ステップS3003において、受信したページのアドレスが、下位ページのアドレスであると判定する場合(S3003、YES)について説明する。
本実施形態においては、第1の実施形態において図8を用いて説明した方法と同様に下位ページプログラムの一部として、キャプチャ動作を行う。
[S3101]〜[S3108]
ステップS3101〜S3108の動作は、ステップS1101〜S1108の動作と同様である。
[S3109]
次に、図33を用いて、ステップS3109の動作について説明する。
制御回路422は、フラグデータを取得すると、レジスタ422cに格納されているデータを、レジスタ422dにコピーしてセットする。そして、制御回路422は、取得したフラグデータをレジスタ422cにセットする。
例えば、図33に示すように、ワード線WL0の下位ページ(ページ0)に対するプログラム動作の際、例えばレジスタ422cに格納されていた“FF”データが、レジスタ422dにコピーされる。そして、ページ“0”に対応するフラグデータが、レジスタ422cに書込まれる。
また、図33に示すように、ワード線WL1の下位ページ(ページ1)に対するプログラム動作の際、例えばレジスタ422cに格納されていたページ“0” に対応するフラグデータが、レジスタ422dにコピーされる。そして、ページ“1”に対応するフラグデータが、レジスタ422cに書込まれる。
[S3110]〜[S3117]
ステップS3110〜S3117の動作は、ステップS1110〜S1117の動作と同様である。
制御回路422は、ステップS3114のベリファイ動作をパスしたと判定する、またはステップS3115において、ループ数が最大値であると判定するまで、ステップS3112〜S3117の動作を繰り返す。
<ステップS3005において、“NO”の場合>
次に、図36のフローチャートに沿って、制御回路422が、ステップS3005において、レジスタ422cに“FF”が格納されていないと判定する場合(S3005、NO)について説明する。
この上位ページプログラムにおいて、制御回路422は、上位ページデータに対応する下位ページデータのリード動作は行わず、メモリコントローラ110から下位ページデータを受信することで、上位ページプログラムを行う。そして、レジスタ422dに格納されているフラグデータを用いて、上位ページプログラム用の初期プログラム電圧を決定している。
[S3201]
制御回路422は、レジスタ422dからフラグデータをリードする。
制御回路422は、メモリコントローラ110から、上位ページに対応する下位ページのデータを受信し、第1のキャッシュ425aに格納する。また、制御回路422は、メモリコントローラ110から、上位ページのデータを受信し、第2のキャッシュ425bに格納する。そして、制御回路122は、リードしたフラグデータを、第1のキャッシュ425aに格納されている冗長データ領域132bと、第2のキャッシュ425bに格納されている冗長データ領域133bに格納する。
[S3202]
図33に示すように、制御回路422は、レジスタ422dに格納されているフラグデータに基づいて、上位ページ用の初期プログラム電圧VPGM(VPGM=VPGM_SVU)を決定する。
尚、上位ページ用の初期プログラム電圧VPGMの決定方法は、第1の実施形態の図12のステップS1203にて説明した方法と同様の方法で行われる。
[S3203]〜[S3208]
ステップS3203〜S3208の動作は、ステップS1204〜S1209の動作と同様である。
制御回路422は、ステップS3205のベリファイ動作をパスしたと判定する、またはステップS3206において、ループ数が最大値であると判定するまで、ステップS3203〜S3208の動作を繰り返す。
<ステップS3005において、“YES”の場合>
次に、図37のフローチャートに沿って、制御回路422が、ステップS3005において、レジスタ422dに“FF”が格納されていると判定する場合(S3005、YES)について説明する。
上述したように、本実施形態に係る上位ページプログラムにおいて、制御回路422は、レジスタ422dに格納されているフラグデータを用いて、上位ページプログラム用の初期プログラム電圧を決定している。しかし、レジスタ422dに“FF”が格納されている場合、制御回路422は、フラグデータ“FF”を用いて、上位ページプログラム用の初期プログラム電圧を決定しない。“FF”とは、現在プログラムを行っているブロックに係るフラグデータが、レジスタ422dに格納されていない事を意味する。そのため、制御回路422は、上位ページに対応する下位ページデータのリード動作を行い、リードしたデータのうち、フラグデータのみを取得する。そして、制御回路422は、取得したフラグデータを、レジスタ422cに格納する。さらに、御回路422は、取得したフラグデータを用いて、上位ページプログラム用の初期プログラム電圧を決定する。下記に詳細について説明する。
[S3301]
制御回路422は、選択ワード線WLnに、Bレベルリード電圧BRを印加することで、上位ページに対応する下位ページデータをリードする。そして、制御回路422は、リードした下位ページデータのうち、フラグデータのみを取得する。この際、リードした下位ページのデータは、上位ページのプログラムには用いない。
[S3302]
そして、制御回路422は、メモリコントローラ110から受信する下位ページのデータ(既に当該下位ページにプログラムされているデータと同じデータ)を、第1のキャッシュ425aに下位ページのデータを格納する。また、制御回路422は、同時に、リードした下位ページ132の冗長データ領域132bに書込まれているフラグデータを、第1のキャッシュ425aに下位ページの冗長データ領域132bに格納する。
そして、制御回路422は、第2のキャッシュ425bに、上位ページのデータを格納する。
制御回路422は、リードした下位ページ132の冗長データ領域132bのフラグデータを、第2のキャッシュ425bに格納されている上位ページ133の冗長データ領域133bに格納する。更に、制御回路422は、取得したフラグデータを、レジスタ422cに格納する。
[S3303]
次に、制御回路422は、リードした下位ページ132の冗長データ領域132bのフラグデータに基づいて、上位ページ用の初期プログラム電圧VPGM(VPGM=VPGM_SVU)を決定する。
[S3304]〜[S3309]
ステップS3304〜S3309の動作は、ステップS1204〜S1209の動作と同様である。
制御回路422は、ステップS3306のベリファイ動作をパスしたと判定する、またはステップS3307において、ループ数が最大値であると判定するまで、ステップS3304〜S3309の動作を繰り返す。
<ステップS3006において、“NO”の場合>
次に、制御回路422が、ステップS3006において、レジスタ422cに“FF”が格納されていないと判定する場合(S3006、NO)について説明する。
この上位ページプログラムにおいて、制御回路422は、図36を用いて説明したように、上位ページデータに対応する下位ページデータのリード動作は行わず、メモリコントローラ110から下位ページデータを受信することで、上位ページプログラムを行う。そして、上位ページプログラムが行われるワード線WLが、ワード線WL127であるので、レジスタ422dではなく、レジスタ422cに格納されているフラグデータを用いて、上位ページプログラム用の初期プログラム電圧を決定している。
尚、基本的な動作は、図36を用いて説明した動作と同様である。図33に示すように、ステップS3203において、制御回路422は、レジスタ422cに格納されているフラグデータに基づいて、上位ページ用の初期プログラム電圧VPGM(VPGM=VPGM_SVU)を決定する点で、図36で説明した動作と異なる。
図33に示すように、もし、ワード線WL127の上位ページ(ページ“255”)において、レジスタ422dのフラグデータを用いると、本実施形態のプログラム順序の関係上、ワード線WL126の下位ページに係るフラグデータを参照することになってしまい、不適切なフラグデータを用いることになる。そこで、所定のブロックにおける最大の番号が割り当てられているワード線WLの上位ページプログラムを行う場合は、レジスタ422cに格納されているフラグデータに基づいて、上位ページ用の初期プログラム電圧を決定する。
<ステップS3006において、“YES”の場合>
次に、制御回路422が、ステップS3006において、レジスタ422cに“FF”が格納されていると判定する場合(S3006、YES)、制御回路422は、図37を用いて説明した動作と同様の動作を行う。
<コマンドシーケンス例6>
次に、図38を用いて、上位ページプログラムに係るコマンドシーケンスについて説明する。
図38に示すように、NANDフラッシュメモリ420にデータの入力が完了するまでは、図8を用いて説明した動作と同様の動作が行われる。そして、NANDフラッシュメモリ420は、コマンドラッチイネーブル信号CLEが“H”レベルである期間に、メモリコントローラ110からコマンド“XXH”が入力される。これにより、第1のキャッシュ425aに格納されているデータを、他のキャッシュに格納する。これにより、レディ/ビジー信号(R/Bn)は“ビジー”状態になる。
レディ/ビジー信号(R/Bn)は“レディ”状態になると、図33で説明した方法と同様の方法で、上位ページに係るコマンドシーケンスがNANDフラッシュメモリ420に入力される。
<第4の実施形態に係るデータの書込み動作の作用効果について>
上述した第4の実施形態によれば、平面NANDフラッシュメモリを用いた場合においても、第1の実施形態と同様の効果を得ることが可能である。
また、第4の実施形態によれば、上位ページプログラムを実行する際に、下位ページに係るデータを、メモリコントローラ110から受信している。例えば、メモリセルトランジスタに書き込まれた下位ページデータがエラー含んでいる場合、エラーを起こしている下位ページデータを用いて上位ページプログラムを行うのは望ましくない。しかしながら、本実施形態によれば、上位ページプログラムを実行する際は、メモリコントローラ110から上位ページに対応する下位ページデータを受信しているので、そのような問題を抑制することができる。その結果、本実施形態によれば、高品質な半導体記憶装置を提供することが可能となる。
(変形例など)
尚、上述した各実施形態によれば、制御回路122は、第1のプログラム動作時において上位ページプログラムを行う場合には、サンプルストリングユニットまたは、レジスタ122cに格納されたフラグデータをリードして、上位プログラム用の初期プログラム電圧を決定しているが、これに限られない。制御回路122は、上位ページプログラムを行う際には、上位ページに対応する下位ページデータが必要となる。また、上述した各実施形態からもわかるように、下位ページには、既にサンプルストリングユニットのフラグデータがプログラムされている。そのため、上位ページに対応する下位ページデータをリードした段階で、当該下位ページに含まれているフラグデータを、レジスタ122cに格納し、当該フラグデータを用いて、上位ページ用の初期プログラム電圧を決定しても良い。これにより、制御回路122は、サンプルストリングユニットへのフラグデータのリード動作を抑制することが可能となる。
また、上述した第1の実施形態において、下位ページプログラム用の初期プログラム電圧VPGM_SVLにオフセット電圧を加えたもの、若しくは、初期プログラム電圧VPGM_SVLからオフセット電圧を減じた電圧を、上位ページプログラム用の初期プログラム電圧VPGM_SVUとしても良いと記載した。同様に、下位ページプログラム用の初期プログラム電圧VPGM_SVLに、オフセット電圧を加えたもの、若しくは、初期プログラム電圧VPGM_SVLからオフセット電圧を減じた電圧を、下位ページプログラム用の初期プログラム電圧VPGM_SVLとして用いても良い。 また、上述した各実施形態において、メモリセルトランジスタMTが2ビットを保持する場合について説明したが、これに限らない。例えば、メモリセルトランジスタMTが、3ビット以上のデータを保持可能であっても良い。
また、上述した各実施形態では、データラッチ回路125は、3つのキャッシュを備えているが、これに限らず、少なくとも2つ以上のキャッシュを備えていれば良い。
なお、上述した各実施形態において、
(1)読み出し動作では、
Aレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば0V〜0.55Vの間である。これに限定されることなく、0.1V〜0.24V, 0.21V〜0.31V, 0.31V〜0.4V, 0.4V〜0.5V, 0.5V〜0.55Vいずれかの間にしてもよい。
Bレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば1.5V〜2.3Vの間である。これに限定されることなく、1.65V〜1.8V, 1.8V〜1.95V, 1.95V〜2.1V, 2.1V〜2.3Vいずれかの間にしてもよい。
Cレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば3.0V〜4.0Vの間である。これに限定されることなく、3.0V〜3.2V, 3.2V〜3.4V, 3.4V〜3.5V, 3.5V〜3.6V, 3.6V〜4.0Vいずれかの間にしてもよい。
読み出し動作の時間(tR)としては、例えば25μs〜38μs, 38μs〜70μs, 70μs〜80μsの間にしてもよい。
(2)書込み動作は、上述したとおりプログラム動作とベリファイ動作を含む。書込み動作では、プログラム動作時に選択されたワード線に最初に印加される電圧は、例えば13.7V〜14.3Vの間である。これに限定されることなく、例えば13.7V〜14.0V, 14.0V〜14.6Vいずれかの間としてもよい。
奇数番目のワード線を書き込む際の、選択されたワード線に最初に印加される電圧と、偶数番目のワード線を書き込む際の、選択されたワード線に最初に印加される電圧を変えてもよい。
プログラム動作をISPP方式(Incremental Step Pulse Program)としたとき、ステップアップの電圧として、例えば0.5V程度が挙げられる。
非選択のワード線に印加される電圧としては、例えば6.0V〜7.3Vの間としてもよい。この場合に限定されることなく、例えば7.3V〜8.4Vの間としてもよく、6.0V以下としてもよい。
非選択のワード線が奇数番目のワード線であるか、偶数番目のワード線であるかで、印加するパス電圧を変えてもよい。
書込み動作の時間(tProg)としては、例えば1700μs〜1800μs, 1800μs〜1900μs, 1900μs〜2000μsの間にしてもよい。
(3)消去動作では、
半導体基板上部に形成され、かつ、上記メモリセルが上方に配置されたウェルに最初に印加する電圧は、例えば12V〜13.6Vの間である。この場合に限定されることなく、例えば13.6V〜14.8V, 14.8V〜19.0V, 19.0〜19.8V, 19.8V〜21Vの間であってもよい。
消去動作の時間(tErase)としては、例えば3000μs〜4000μs, 4000μs〜5000μs, 4000μs〜9000μsの間にしてもよい。
(4)メモリセルの構造は、
半導体基板(シリコン基板)上に膜厚が4〜10nmのトンネル絶縁膜を介して配置された電荷蓄積層を有している。この電荷蓄積層は膜厚が2〜3nmのSiN、またはSiONなどの絶縁膜と膜厚が3〜8nmのポリシリコンとの積層構造にすることができる。また、ポリシリコンにはRuなどの金属が添加されていても良い。電荷蓄積層の上には絶縁膜を有している。この絶縁膜は、例えば、膜厚が3〜10nmの下層High−k膜と膜厚が3〜10nmの上層High−k膜に挟まれた膜厚が4〜10nmのシリコン酸化膜を有している。High−k膜はHfOなどが挙げられる。また、シリコン酸化膜の膜厚はHigh−k膜の膜厚よりも厚くすることができる。絶縁膜上には膜厚が3〜10nmの仕事関数調整用の材料を介して膜厚が30nm〜70nmの制御電極が形成されている。ここで仕事関数調整用の材料はTaOなどの金属酸化膜、TaNなどの金属窒化膜である。制御電極にはWなどを用いることができる。
また、メモリセル間にはエアギャップを形成することができる。
以上、本発明の実施形態を説明したが、本発明は上記実施形態に限定されるものではなく、その趣旨を逸脱しない範囲内において種々変形して実施することが可能である。さらに、上記実施形態には種々の段階の発明が含まれており、開示された構成要件を適宜組み合わせることによって種々の発明が抽出される。例えば、開示された構成要件からいくつかの構成要件が削除されても、所定の効果が得られるものであれば、発明として抽出され得る。
100…メモリシステム 110…メモリコントローラ
111…ホストインタフェース 112…RAM
113…ECC回路 114…CPU 115…ROM
116…フラッシュメモリインタフェース 120…NANDフラッシュメモリ
121…入出力バッファ 122…制御回路
122a、122b、122c…レジスタ 123…カラムデコーダ
124…フェイルビットカウンタ回路 125…データラッチ回路
125a…第1のキャッシュ 125b…第2のキャッシュ
125c…第3のキャッシュ 126…センスアンプ
127…ロウアドレスバッファ 128…ロウデコーダ
130…メモリセルアレイ 131…NANDストリング
132…下位ページ 132a…通常データ領域
132b…冗長データ領域 133…上位ページ
133a…通常データ領域 133b…冗長データ領域
200…ホストデバイス 300…メモリシステム
320…NANDフラッシュメモリ 323…カラムデコーダ
324…フェイルビットカウンタ回路 325…データラッチ回路
325…データラッチ回路 326…センスアンプ
330…メモリセルアレイ

Claims (5)

  1. メモリセルトランジスタと、
    複数の前記メモリセルトランジスタを備えるストリングユニットと、
    前記ストリングユニットを複数備えるメモリセルアレイと、
    複数の前記メモリセルトランジスタのゲート電極に接続される複数のワード線と、
    プログラム動作及びベリファイ動作を行う事によって前記メモリセルトランジスタにデータの書込みを行う制御回路と、
    前記ワード線毎に設定された前記メモリセルトランジスタのプログラム条件であるフラグデータを格納するレジスタと、
    を備え、
    前記制御回路は、
    サンプルストリングユニット指定コマンドと共に第一のストリングユニットのアドレスを受信し、その後、書き込みコマンドと第二のストリングユニットのアドレスを受信した場合において、前記第一のストリングユニットと第二のストリングユニットが一致する場合、前記フラグデータを取得するキャプチャ動作を実行した後、プログラム電圧を決定し、前記第一のストリングユニットと前記第二のストリングユニットが異なる場合、前記キャプチャ動作を実行せずに前記プログラム電圧を決定し、
    前記書き込みコマンドに基づいて、所定の前記ワード線に前記プログラム電圧を印加する
    ことを特徴とする半導体記憶装置。
  2. 前記制御回路は、
    前記第一のストリングユニットと前記第二のストリングユニットが異なる場合、
    前記第二のストリングユニットから、前記フラグデータをリードし、
    前記レジスタに格納されている前記フラグデータを、前記リードしたフラグデータに更新し、
    前記レジスタに格納されている前記リードしたフラグデータを用いて、前記プログラム電圧を決定する
    ことを特徴とする請求項1に記載の半導体記憶装置。
  3. 前記制御回路は、
    前記第一のストリングユニットと前記第二のストリングユニットが一致する場合に
    前記レジスタ内の前記フラグデータを、前記キャプチャ動作の際に取得したフラグデータに更新し、
    前記レジスタに格納されている前記取得したフラグデータを用いて、前記プログラム電圧を決定する
    ことを特徴とする請求項1または2に記載の半導体記憶装置。
  4. 前記メモリセルトランジスタは、第1ビットデータと第2ビットデータを保持可能であり、
    前記制御回路は、
    前記第1ビットデータをプログラムする際に前記フラグデータを取得し、
    前記レジスタ内の前記フラグデータを、前記取得したフラグデータに更新し、
    前記レジスタに格納されている前記フラグデータを用いて、前記プログラム電圧を印加する
    ことを特徴とする請求項1乃至3のいずれか一項に記載の半導体記憶装置。
  5. 第1のビットデータと第2のビットデータを保持可能な不揮発性のメモリセルトランジスタと、
    複数の前記メモリセルトランジスタを備える複数のブロックと、
    前記ブロックを複数備えるメモリセルアレイと、
    同一の前記ブロック内において、複数の前記メモリセルトランジスタのゲート電極に接続される複数のワード線と、
    プログラム動作及びベリファイ動作を行う事によって前記メモリセルトランジスタにデータの書込みを行う制御回路と、
    前記制御回路内に設けられ、前記ワード線毎に設定された前記メモリセルトランジスタのプログラム条件であるフラグデータを格納する第1及び第2のレジスタと、
    を備え、
    前記制御回路は、
    前記メモリセルトランジスタに前記第1のビットデータをプログラムする第1のプログラム動作の際に、
    前記メモリセルトランジスタのプログラム条件であるフラグデータを取得し、
    前記第1のレジスタに格納されているデータを、前記第2のレジスタに移動し、
    前記第1のレジスタに、前記フラグデータを格納し、
    前記メモリセルトランジスタに前記第2のビットデータをプログラムする第2のプログラム動作の際に、
    前記第2のプログラム動作の対象となるワード線が、第1のワード線ではない場合、
    前記第2のレジスタに格納されている前記フラグデータを用いて、前記メモリセルトランジスタにプログラム電圧を印加し、
    前記第2のプログラム動作の対象となるワード線が、前記第1のワード線である場合、前記第1のレジスタに格納されているフラグデータを用いて、前記メモリセルトランジスタにプログラム電圧を印加し、
    前記第2のプログラム動作の対象となるワード線が、前記第1のワード線ではなく、且つ前記第2のレジスタに前記フラグデータが格納されていない場合、前記第2のビットデータに対応する前記第1のビットデータをリードし、前記第1のビットデータの一部である前記フラグデータを用いて、前記メモリセルトランジスタにプログラム電圧を印加し、
    前記第2のプログラム動作の対象となるワード線が、前記第1のワード線であり、且つ前記第のレジスタに前記フラグデータが格納されていない場合、前記第2のプログラム動作の対象となるワード線から前記第2のビットデータに対応する第1のビットデータをリードし、前記第1のビットデータの一部である前記フラグデータを用いて、前記メモリセルトランジスタにプログラム電圧を印加し、
    前記第2のビットデータに対応する前記第1のビットデータと、前記第2のビットデータとを外部から受信し、
    前記第2のプログラム動作の対象となるワード線に前記印加されたプログラム電圧を印加し、前記メモリセルトランジスタに前記外部から受信した前記第1のビットデータ、及び前記第2のビットデータを、プログラムすることを特徴とする半導体記憶装置。
JP2014187040A 2014-09-12 2014-09-12 半導体記憶装置 Active JP6196199B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2014187040A JP6196199B2 (ja) 2014-09-12 2014-09-12 半導体記憶装置
US14/633,033 US9679651B2 (en) 2014-09-12 2015-02-26 Semiconductor memory device capable of determining an initial program condition for different memory cells
TW104106894A TWI604452B (zh) 2014-09-12 2015-03-04 半導體記憶裝置及記憶體系統
CN201910994616.8A CN110867202B (zh) 2014-09-12 2015-03-06 半导体存储装置
CN201510100759.1A CN105448335B (zh) 2014-09-12 2015-03-06 半导体存储装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014187040A JP6196199B2 (ja) 2014-09-12 2014-09-12 半導体記憶装置

Publications (2)

Publication Number Publication Date
JP2016062619A JP2016062619A (ja) 2016-04-25
JP6196199B2 true JP6196199B2 (ja) 2017-09-13

Family

ID=55455375

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014187040A Active JP6196199B2 (ja) 2014-09-12 2014-09-12 半導体記憶装置

Country Status (4)

Country Link
US (1) US9679651B2 (ja)
JP (1) JP6196199B2 (ja)
CN (2) CN105448335B (ja)
TW (1) TWI604452B (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9847135B2 (en) * 2015-01-30 2017-12-19 Toshiba Memory Corporation Memory device and method of reading data
US10096366B2 (en) 2016-01-28 2018-10-09 Toshiba Memory Corporation Memory system including multi-plane flash memory and controller
JP2018005961A (ja) * 2016-07-01 2018-01-11 東芝メモリ株式会社 記憶装置
US11017838B2 (en) 2016-08-04 2021-05-25 Samsung Electronics Co., Ltd. Nonvolatile memory devices
JP6545649B2 (ja) * 2016-09-16 2019-07-17 東芝メモリ株式会社 メモリデバイス
JP6991084B2 (ja) 2018-03-22 2022-01-12 キオクシア株式会社 不揮発性メモリデバイス及び制御方法
JP2020038746A (ja) * 2018-09-06 2020-03-12 キオクシア株式会社 半導体記憶装置
JP2020047325A (ja) * 2018-09-18 2020-03-26 キオクシア株式会社 半導体記憶装置
JP2020119618A (ja) 2019-01-21 2020-08-06 キオクシア株式会社 メモリシステム
CN112130750B (zh) 2019-06-25 2023-11-07 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
TWI718709B (zh) * 2019-06-25 2021-02-11 慧榮科技股份有限公司 資料儲存裝置以及非揮發式記憶體控制方法
CN112130749B (zh) 2019-06-25 2023-12-22 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
US11495314B2 (en) 2021-01-08 2022-11-08 Taiwan Semiconductor Manufacturing Company Limited Memory repair using optimized redundancy utilization

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2716906B2 (ja) * 1992-03-27 1998-02-18 株式会社東芝 不揮発性半導体記憶装置
JP3866627B2 (ja) * 2002-07-12 2007-01-10 株式会社東芝 不揮発性半導体メモリ
JP2005235287A (ja) * 2004-02-19 2005-09-02 Nec Electronics Corp 不揮発性半導体記憶装置のプログラミング方法、プログラミング装置、及び、不揮発性半導体記憶装置
JP2007164893A (ja) * 2005-12-13 2007-06-28 Toshiba Corp 半導体記憶装置
US7453731B2 (en) 2006-09-12 2008-11-18 Sandisk Corporation Method for non-volatile memory with linear estimation of initial programming voltage
US7606077B2 (en) 2006-09-12 2009-10-20 Sandisk Corporation Non-volatile memory with reduced erase/write cycling during trimming of initial programming voltage
KR101448851B1 (ko) 2008-02-26 2014-10-13 삼성전자주식회사 비휘발성 메모리 장치에서의 프로그래밍 방법
JP5193796B2 (ja) * 2008-10-21 2013-05-08 株式会社東芝 3次元積層型不揮発性半導体メモリ
KR101551449B1 (ko) * 2009-02-25 2015-09-08 삼성전자주식회사 비휘발성 메모리 장치 및 그것을 포함한 메모리 시스템
KR101596830B1 (ko) * 2009-04-02 2016-02-24 삼성전자주식회사 비휘발성 메모리 장치의 쓰기 방법
JP5330421B2 (ja) * 2011-02-01 2013-10-30 株式会社東芝 不揮発性半導体記憶装置
KR101222063B1 (ko) * 2011-02-28 2013-01-15 에스케이하이닉스 주식회사 불휘발성 메모리 장치 및 그 동작방법
JP5542737B2 (ja) * 2011-05-12 2014-07-09 株式会社東芝 不揮発性半導体記憶装置
JP2013058275A (ja) 2011-09-07 2013-03-28 Toshiba Corp 半導体記憶装置
KR20130072668A (ko) * 2011-12-22 2013-07-02 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그의 동작 방법
US8902657B2 (en) * 2012-09-07 2014-12-02 Kabushiki Kaisha Toshiba Semiconductor memory device and controller
JP2014175022A (ja) * 2013-03-06 2014-09-22 Toshiba Corp 半導体記憶装置及びそのデータ書き込み方法

Also Published As

Publication number Publication date
JP2016062619A (ja) 2016-04-25
CN110867202B (zh) 2023-10-27
CN110867202A (zh) 2020-03-06
TWI604452B (zh) 2017-11-01
US9679651B2 (en) 2017-06-13
CN105448335A (zh) 2016-03-30
US20160078948A1 (en) 2016-03-17
CN105448335B (zh) 2019-11-15
TW201611007A (zh) 2016-03-16

Similar Documents

Publication Publication Date Title
JP6196199B2 (ja) 半導体記憶装置
JP6856400B2 (ja) 半導体記憶装置及びメモリシステム
US11804267B2 (en) Memory system having semiconductor memory device that performs verify operations using various verify voltages
CN107818809B (zh) 半导体存储装置及存储器系统
JP5268882B2 (ja) 不揮発性半導体記憶装置
US20190362782A1 (en) Semiconductor memory device
JP2016062624A (ja) 半導体記憶装置
JP2015176623A (ja) 半導体記憶装置及びメモリコントローラ
US9236135B2 (en) Semiconductor storage device having a voltage generator
US20180277231A1 (en) Semiconductor storage device
JP6293692B2 (ja) メモリシステム
JP2017054567A (ja) 半導体記憶装置
JP2013246849A (ja) メモリシステム
JP6226809B2 (ja) 半導体記憶装置
JP2011141939A (ja) 不揮発性半導体記憶装置およびその制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160901

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170523

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20170525

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170707

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170718

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170817

R150 Certificate of patent or registration of utility model

Ref document number: 6196199

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350