(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-19
(45)【発行日】2024-04-30
(54)【発明の名称】半導体記憶装置
(51)【国際特許分類】
G11C 16/34 20060101AFI20240422BHJP
G11C 16/04 20060101ALI20240422BHJP
【FI】
G11C16/34 140
G11C16/04 170
G11C16/34 163
(21)【出願番号】P 2020154630
(22)【出願日】2020-09-15
【審査請求日】2023-03-20
(73)【特許権者】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】110002907
【氏名又は名称】弁理士法人イトーシン国際特許事務所
(72)【発明者】
【氏名】草加 拓也
(72)【発明者】
【氏名】有薗 大介
(72)【発明者】
【氏名】原田 佳和
【審査官】小林 紀和
(56)【参考文献】
【文献】特表2007-500411(JP,A)
【文献】特開2012-203692(JP,A)
【文献】特開2009-283117(JP,A)
【文献】特開2014-175025(JP,A)
【文献】特開2021-044042(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G11C 16/34
G11C 16/04
(57)【特許請求の範囲】
【請求項1】
複数のメモリセルを備えたメモリセルアレイと、
前記複数のメモリセルのゲートにそれぞれ接続された複数のワード線と、
前記複数のメモリセルにデータを書き込み時、前記ワード線にプログラム電圧を印加するワード線ドライバと、
前記複数のメモリセルの一端にそれぞれ接続された複数のビット線と、
前記複数のビット線にビット線電圧を印加して、前記複数のビット線を介して前記複数のメモリセルのデータを検出するビット線ドライバと、
前記ワード線ドライバ及びビット線ドライバを制御して、前記メモリセルにデータを書き込むプログラム動作と、前記メモリセルに書き込まれた前記データを検証するプログラムベリファイ動作とを含むループを、前記プログラム電圧を所定のステップアップ電圧だけ増加させながら複数回繰り返す書き込みシーケンスを実行すると共に、前記書き込みシーケンスにおいて前記メモリセルに書き込まれた前記データを検証するリードベリファイを実行可能な制御回路と、を有し、
前記制御回路は、ディスターブの要因となる特性の特性変動を検出し、検出結果に基づいて前記リードベリファイの実施の可否を判定する半導体記憶装置。
【請求項2】
前記制御回路は、前記書き込み時に前記ディスターブの要因となる特性の特性変動を検出し、検出結果に基づいて前記リードベリファイの実施の可否を判定する請求項1に記載の半導体記憶装置。
【請求項3】
前記制御回路は、前記ディスターブの要因となる特性の特性変動として前記プログラム動作とプログラムベリファイ動作のループ数の変動を検出する請求項2に記載の半導体記憶装置。
【請求項4】
前記制御回路は、ループ数の変動が工場出荷時の基準値を超えたか否かにより前記リードベリファイの実施の可否を決定する請求項3に記載の半導体記憶装置。
【請求項5】
前記制御回路は、前記書き込みシーケンスにおいてワード線を複数のグループに分けてプログラム電圧の制御を行い、前記ループ数の変動を前記グループ毎に設定された工場出荷時の基準と比較して前記リードベリファイの実施の可否を決定する請求項4に記載の半導体記憶装置。
【請求項6】
前記制御回路は、前記書き込みシーケンスにおけるページ単位の前記ループ数を求め、ページ毎のループ数の変動を基準値と比較することで前記リードベリファイの実施の可否を決定する請求項3に記載の半導体記憶装置。
【請求項7】
前記制御回路は、前記書き込みシーケンスにおいてワード線を複数のグループに分けてプログラム電圧の制御を行い、前記ページ毎のループ数の変動を前記グループ毎に設定された基準値と比較して前記リードベリファイの実施の可否を決定する請求項6に記載の半導体記憶装置。
【請求項8】
前記制御回路は、前記書き込みシーケンスにおけるワード線単位の前記ループ数を求め、ワード線毎のループ数の変動を基準値と比較することで前記リードベリファイの実施の可否を決定する請求項3に記載の半導体記憶装置。
【請求項9】
前記メモリセルアレイ、前記複数のワード線と、前記ワード線ドライバ、前記複数のビット線及び前記ビット線ドライバは、それぞれ複数設けられてマルチプレーン構成であり、
前記制御回路は、前記マルチプレーン構成の一方のプレーンにおける前記ループ数と他方のプレーンにおける前記ループ数との比較に基づいて前記リードベリファイの実施の可否を決定する請求項3に記載の半導体記憶装置。
【請求項10】
前記制御回路は、前記メモリセルに3値以上のレベルのデータを書き込む場合において、所定レベルの書き終わり時におけるループ数に基づいて前記リードベリファイの実施の可否を決定す
る請求項3に記載の半導体記憶装置。
【請求項11】
前記制御回路は、
前記書き込みシーケンスにおいてワード線を複数のグループに分けてプログラム電圧の制御を行い、前記書き込みシーケンスの所定のループ数に到達後における前記プログラムベリファイ
動作のフェイルセル数の変動を前記グループ毎に設定された工場出荷時の基準と比較して前記リードベリファイの実施の可否を決定する請求項2に記載の半導体記憶装置。
【請求項12】
前記メモリセルアレイ、前記複数のワード線と、前記ワード線ドライバ、前記複数のビット線及び前記ビット線ドライバは、それぞれ複数設けられてマルチプレーン構成であり、
前記制御回路は、前記マルチプレーン構成の一方のプレーンにおいて前記メモリセルへのデータの書き込みの失敗が生じた場合には、他方のプレーンにおいて前記リードベリファイを実施する請求項2に記載の半導体記憶装置。
【請求項13】
前記制御回路は、前記メモリセルに書き込まれたデータを消去するイレーズ動作と前記データが消去されたことを検証するイレーズベリファイとを含むイレーズループを繰り返すイレーズ時に、前記ディスターブの要因となる特性の特性変動を検出し、検出結果に基づいて前記リードベリファイの実施の可否を判定する請求項1に記載の半導体記憶装置。
【請求項14】
前記制御回路は、前記ディスターブの要因となる特性の特性変動として前記イレーズループ
の繰り返し回数の変動を検出する請求項13に記載の半導体記憶装置。
【請求項15】
前記制御回路は、前記イレーズループ
の繰り返し回数の変動が工場出荷時の基準値を超えたか否かにより前記リードベリファイの実施の可否を決定する請求項14に記載の半導体記憶装置。
【請求項16】
前記制御回路は、前記メモリセルアレイの同一ブロックに対するイレーズのイレーズループ
の繰り返し回数の変動を基準値と比較することで前記リードベリファイの実施の可否を決定する請求項14に記載の半導体記憶装置。
【請求項17】
前記制御回路は、前記メモリセルアレイの異なるブロックに対する連続したイレーズのイレーズループ
の繰り返し回数の差を基準値と比較することで前記リードベリファイの実施の可否を決定する請求項14に記載の半導体記憶装置。
【請求項18】
前記メモリセルアレイ、前記複数のワード線と、前記ワード線ドライバ、前記複数のビット線及び前記ビット線ドライバは、それぞれ複数設けられてマルチプレーン構成であり、
前記制御回路は、前記マルチプレーン構成の一方のプレーンにおける前記イレーズループ
の繰り返し回数と他方のプレーンにおける前記イレーズループ
の繰り返し回数との比較に基づいて前記リードベリファイの実施の可否を決定する請求項14に記載の半導体記憶装置。
【請求項19】
前記制御回路は、前記イレーズベリファイにおけるフェイルセル数の変動を工場出荷時の基準と比較して前記リードベリファイの実施の可否を決定する請求項14に記載の半導体記憶装置。
【請求項20】
前記メモリセルアレイ、前記複数のワード線と、前記ワード線ドライバ、前記複数のビット線及び前記ビット線ドライバは、それぞれ複数設けられてマルチプレーン構成であり、
前記制御回路は、前記マルチプレーン構成の一方のプレーンの前記イレーズベリファイにおけるフェイルセル数と他方のプレーンの
前記イレーズベリファイにおけるフェイルセル数との比較に基づいて前記リードベリファイの実施の可否を決定する請求項14に記載の半導体記憶装置。
【請求項21】
前記制御回路は、偶数ワード線と奇数ワード線とで前記イレーズベリファイを別々に行う場合には、偶数ワード線についてのフェイルセル数と奇数ワード線についてのフェイルセル数との比較に基づいて前記リードベリファイの実施の可否を決定する請求項14に記載の半導体記憶装置。
【請求項22】
前記メモリセルアレイ、前記複数のワード線と、前記ワード線ドライバ、前記複数のビット線及び前記ビット線ドライバは、それぞれ複数設けられてマルチプレーン構成であり、
前記制御回路は、前記マルチプレーン構成の一方のプレーンにおいて前記メモリセルへのデータのイレーズの失敗が生じた場合には、他方のプレーンにおいて前記リードベリファイを実施する請求項14に記載の半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、半導体記憶装置に関する。
【背景技術】
【0002】
近年、NAND型FLASHメモリ等の半導体記憶装置においては、微細化、大容量化の要求から、3次元構造化が図られるようになってきた。また、NAND型FLASHメモリでは、メモリセルを、1ビット(2値)のデータを保持可能なSLC(Single Level Cell)とする場合だけでなく、2ビット(4値)のデータを保持可能なMLC(Multi Level Cell)、3ビット(8値)のデータを保持可能なTLC(Triple Level Cell)または4ビット(16値)のデータを保持可能なQLC(Quad Level Cell)として構成する場合がある。
【0003】
このようにメモリセルを多値化した場合、メモリセルの閾値電圧を高精度に制御することが要求される。しかしながから、メモリセルの3次元構造化により、メモリホールリークが生じやすく、書き込み動作時のディスターブによる閾値電圧の浮き上がり不良(意図しない閾値電圧の上昇による誤書き込み)が生じることがある。
【0004】
そこで、書き込み動作後にリード動作を行い、正常な書き込みができていることを確認するリードベリファイが実施される。
【0005】
しかしながら、この場合、リードベリファイに要する時間だけ書き込み動作の動作時間が長くなってしまい、パフォーマンスが劣化するという問題がある。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
本実施形態は、必要に応じてリードベリファイを実施することによりパフォーマンスを向上させることができる半導体記憶装置を提供する。
【課題を解決するための手段】
【0008】
実施形態の半導体記憶装置は、複数のメモリセルを備えたメモリセルアレイと、前記複数のメモリセルのゲートにそれぞれ接続された複数のワード線と、前記複数のメモリセルにデータを書き込み時、前記ワード線にプログラム電圧を印加するワード線ドライバと、前記複数のメモリセルの一端にそれぞれ接続された複数のビット線と、前記複数のビット線にビット線電圧を印加して、前記複数のビット線を介して前記複数のメモリセルのデータを検出するビット線ドライバと、前記ワード線ドライバ及びビット線ドライバを制御して、前記メモリセルにデータを書き込むプログラム動作と、前記メモリセルに書き込まれた前記データを検証するプログラムベリファイ動作とを含むループを、前記プログラム電圧を所定のステップアップ電圧だけ増加させながら複数回繰り返す書き込みシーケンスを実行すると共に、前記書き込みシーケンスにおいて前記メモリセルに書き込まれた前記データを検証するリードベリファイを実行可能な制御回路と、を有し、前記制御回路は、ディスターブの要因となる特性の特性変動を検出し、検出結果に基づいて前記リードベリファイの実施の可否を判定する。
【図面の簡単な説明】
【0009】
【
図1】実施形態に関わるメモリシステムの構成例を示すブロック図。
【
図2】本実施形態の不揮発性メモリの構成例を示すブロック図。
【
図3】3次元構造のNANDメモリセルアレイ(以下、メモリセルアレイという)23のブロックBLKの構成例を示す図。
【
図4】横軸に閾値電圧をとり縦軸にメモリセル数(セル数)をとって、メモリセルアレイの閾値分布を示す図。
【
図5】標準書き込みシーケンスの一例を説明するための図。
【
図6】ベリファイ動作における判定を行うビット線ドライバ24の内部回路の一例を模式的に示す回路図。
【
図7】横軸に閾値電圧をとり縦軸にメモリセル数をとって、各ターゲットレベルの閾値分布を示すグラフの模式図。
【
図8】横軸に閾値電圧をとり縦軸にメモリセル数をとって、各ターゲットレベルの閾値分布を示すグラフの模式図。
【
図9】第1の実施の形態の動作を説明するためのフローチャート。
【
図10】比較例の動作を説明するためのフローチャート。
【
図12】
図9のステップS11における特性変動判定の具体的な処理の例を示すフローチャート。
【
図13】特性変動判定の他の具体的な手法を説明するためのフローチャート。
【
図14】本発明の第2の実施の形態において採用される動作フローを示すフローチャート。
【発明を実施するための形態】
【0010】
以下、図面を参照して本発明の実施の形態について詳細に説明する。
【0011】
(第1の実施の形態)
本実施の形態は、ディスターブが生じる可能性やディスターブによる悪影響の程度についての判定(以下、特性変動判定という)を行い、判定結果に基づいてリードベリファイの実施の可否を判定して、必要な場合にのみリードベリファイを実施することで、パフォーマンスを向上させるものである。
【0012】
(メモリシステムの構成)
図1は、実施形態に関わるメモリシステムの構成例を示すブロック図である。本実施形態のメモリシステムは、メモリコントローラ1と不揮発性メモリ2とを備える。メモリシステムは、ホストと接続可能である。ホストは、例えば、パーソナルコンピュータ、携帯端末などの電子機器である。
【0013】
不揮発性メモリ2は、データを不揮発に記憶する半導体記憶装置であり、例えば、NANDフラッシュメモリを備えている。本実施形態では、不揮発性メモリ2は、メモリセルあたり3bitを記憶可能なメモリセルを有するNANDメモリ、すなわち3bit/Cell(TLC:Triple Level Cell)のNANDメモリであるとして説明するが、これに限定されるものではない。不揮発性メモリ2は、3次元化されている。
【0014】
メモリコントローラ1は、ホストからの書き込みリクエストに従って不揮発性メモリ2へのデータの書き込みを制御する。また、メモリコントローラ1は、ホストからの読み出しリクエストに従って不揮発性メモリ2からのデータの読み出しを制御する。メモリコントローラ1は、RAM(Random Access Memory)11、プロセッサ12、ホストインターフェイス13、ECC(Error Check and Correct)回路14およびメモリインターフェイス15を備える。RAM11、プロセッサ12、ホストインターフェイス13、ECC回路14およびメモリインターフェイス15は、互いに内部バス16により接続される。
【0015】
ホストインターフェイス13は、ホストから受信したリクエスト、ユーザデータである書き込みデータなどを内部バス16に出力する。また、ホストインターフェイス13は、不揮発性メモリ2から読み出されたユーザデータ、プロセッサ12からの応答などをホストへ送信する。
【0016】
メモリインターフェイス15は、プロセッサ12の指示に基づいてユーザデータ等を不揮発性メモリ2へ書き込む処理および不揮発性メモリ2から読み出す処理を制御する。
【0017】
プロセッサ12は、メモリコントローラ1を統括的に制御する。プロセッサ12は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)等である。プロセッサ12は、ホストからホストインターフェイス13経由でリクエストを受けた場合に、そのリクエストに従った制御を行う。例えば、プロセッサ12は、ホストからのリクエストに従って、不揮発性メモリ2へのユーザデータおよびパリティの書き込みをメモリインターフェイス15へ指示する。また、プロセッサ12は、ホストからのリクエストに従って、不揮発性メモリ2からのユーザデータおよびパリティの読み出しを、メモリインターフェイス15へ指示する。
【0018】
プロセッサ12は、RAM11に蓄積されるユーザデータに対して、不揮発性メモリ2上の格納領域(以下、メモリ領域という)を決定する。ユーザデータは、内部バス16経由でRAM11に格納される。プロセッサ12は、メモリ領域の決定を、書き込み単位であるページ単位のデータ、すなわちページデータ、に対して実施する。本明細書では、不揮発性メモリ2の1ページに格納されるユーザデータをユニットデータと定義する。ユニットデータは、例えば、符号化されて符号語として不揮発性メモリ2に格納される。
【0019】
なお、符号化は必須ではない。メモリコントローラ1は、符号化せずにユニットデータを不揮発性メモリ2に格納してもよいが、
図1では、一構成例として符号化を行う構成を示している。メモリコントローラ1が符号化を行わない場合には、ページデータはユニットデータと一致する。また、1つのユニットデータに基づいて1つの符号語が生成されてもよいし、ユニットデータが分割された分割データに基づいて1つの符号語が生成されてもよい。また、複数のユニットデータを用いて1つの符号語が生成されてもよい。
【0020】
プロセッサ12は、ユニットデータごとに書き込み先の不揮発性メモリ2のメモリ領域を決定する。不揮発性メモリ2のメモリ領域には物理アドレスが割当てられている。プロセッサ12は、ユニットデータの書き込み先のメモリ領域を、物理アドレスを用いて管理する。プロセッサ12は、決定したメモリ領域の物理アドレスを指定してユーザデータを不揮発性メモリ2へ書き込むようメモリインターフェイス15へ指示する。プロセッサ12は、ユーザデータの論理アドレス(ホストが管理する論理アドレス)と物理アドレスとの対応を管理する。プロセッサ12は、ホストからの論理アドレスを含む読み出しリクエストを受信した場合は、論理アドレスに対応する物理アドレスを特定し、物理アドレスを指定してユーザデータの読み出しをメモリインターフェイス15へ指示する。
【0021】
ECC回路14は、RAM11に格納されたユーザデータを符号化して符号語を生成する。また、ECC回路14は、不揮発性メモリ2から読み出された符号語を復号する。
RAM11は、ホストから受信したユーザデータを不揮発性メモリ2へ記憶するまで一時格納したり、不揮発性メモリ2から読み出したデータをホストへ送信するまで一時格納する。RAM11は、例えば、SRAM(Static Random Access Memory)やDRAM(Dynamic Random Access Memory)などの汎用メモリである。
【0022】
図1では、メモリコントローラ1が、ECC回路14とメモリインターフェイス15をそれぞれ備える構成例を示した。しかしながら、ECC回路14がメモリインターフェイス15に内蔵されていてもよい。また、ECC回路14が、不揮発性メモリ2に内蔵されていてもよい。
【0023】
ホストから書き込みリクエストを受信した場合、メモリコントローラ1は次のように動作する。プロセッサ12は、書き込みデータをRAM11に一時記憶させる。プロセッサ12は、RAM11に格納されたデータを読み出し、ECC回路14に入力する。ECC回路14は、入力されたデータを符号化し、符号語をメモリインターフェイス15に与える。メモリインターフェイス15は、入力された符号語を不揮発性メモリ2に書き込む。
【0024】
ホストから読み出しリクエストを受信した場合、メモリコントローラ1は次のように動作する。メモリインターフェイス15は、不揮発性メモリ2から読み出した符号語をECC回路14に与える。ECC回路14は、入力された符号語を復号し、復号されたデータをRAM11に格納する。プロセッサ12は、RAM11に格納されたデータを、ホストインターフェイス13を介してホストに送信する。
【0025】
(不揮発性メモリの構成)
図2は、本実施形態の不揮発性メモリの構成例を示すブロック図である。不揮発性メモリ2は、ロジック制御回路21、入出力回路22、メモリセルアレイ23、ビット線ドライバ24、ワード線ドライバ25、レジスタ26、シーケンサ27、電圧生成回路28、入出力用パッド群32、ロジック制御用パッド群34、及び、電源入力用端子群35を備えている。
【0026】
メモリセルアレイ23は、複数のブロックBLKを備える。複数のブロックBLKの各々は、複数のメモリセルトランジスタ(メモリセル)を備える。メモリセルアレイ23には、メモリセルトランジスタに印加する電圧を制御するために、複数のビット線、複数のワード線、及びソース線などが配設される。ブロックBLKの具体的な構成については後述する。
【0027】
入出力用パッド群32は、メモリコントローラ1との間でデータを含む各信号の送受信を行うため、信号DQ<7:0>、及び、データストローブ信号DQS、/DQSに対応する複数の端子(パッド)を備えている。
【0028】
ロジック制御用パッド群34は、メモリコントローラ1との間で各信号の送受信を行うため、チップイネーブル信号/CE、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、ライトイネーブル信号/WE、リードイネーブル信号RE、/RE、及びライトプロテクト信号/WPに対応する複数の端子(パッド)を備えている。
【0029】
信号/CEは、不揮発性メモリ2の選択を可能にする。信号CLEは、信号DQとして送信されるコマンドをコマンドレジスタにラッチすることを可能にする。信号ALEは、信号DQとして送信されるアドレスをアドレスレジスタにラッチすることを可能にする。信号WEは、書き込みを可能にする。信号REは、読み出しを可能にする。信号WPは、書き込み及び消去を禁止する。信号R/Bは、不揮発性メモリ2がレディー状態(外部からの命令を受け付けることが可能である状態)であるか、ビジー状態(外部からの命令を受け付けることができない状態)であるかを示す。メモリコントローラ1は、信号R/Bを受けることで、不揮発性メモリ2の状態を知ることができる。
【0030】
電源入力用端子群35は、外部から不揮発性メモリ2に、種々の動作電源を供給するため、電源電圧Vcc、VccQ、Vppと、接地電圧Vssを入力する複数の端子を備えている。電源電圧Vccは、動作電源として一般的に外部から与えられる回路電源電圧であり、例えば3.3V程度の電圧が入力される。電源電圧VccQは、例えば1.2Vの電圧が入力される。電源電圧VccQは、メモリコントローラ1と不揮発性メモリ2との間で信号を送受信する際に用いられる。電源電圧Vppは、電源電圧Vccよりも高圧の電源電圧であり、例えば12Vの電圧が入力される。
【0031】
ロジック制御回路21及び入出力回路22は、NANDバスを介して、メモリコントローラ1に接続される。入出力回路22は、メモリコントローラ1との間でNANDバスを介して、信号DQ(例えばDQ0~DQ7)を送受信する。
【0032】
ロジック制御回路21は、メモリコントローラ1からNANDバスを介して、外部制御信号(例えば、チップイネーブル信号/CE、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、書き込みイネーブル信号/WE、読み出しイネーブル信号RE,/RE、及びライトプロテクト信号/WP)を受信する。信号名に付記された"/"は、アクティブ・ローを示す。また、ロジック制御回路21は、NANDバスを介して、メモリコントローラ1にレディー/ビジー信号/RBを送信する。
【0033】
レジスタ26は、コマンドレジスタ、アドレスレジスタ、及びステータスレジスタなどを備える。コマンドレジスタは、コマンドを一時的に保持する。アドレスレジスタは、アドレスを一時的に保持する。ステータスレジスタは、不揮発性メモリ2の動作に必要なデータを一時的に保持する。レジスタ26は、例えばSRAMから構成される。
【0034】
シーケンサ27は、レジスタ26からコマンドを受け、このコマンドに基づくシーケンスに従って不揮発性メモリ2を制御する。
【0035】
電圧生成回路28は、不揮発性メモリ2の外部から電源電圧を受け、この電源電圧を用いて、書き込み動作、読み出し動作、及び消去動作に必要な複数の電圧を生成する。電圧生成回路28は、生成した電圧を、メモリセルアレイ23、ビット線ドライバ24、及びワード線ドライバ25などに供給する。
【0036】
ワード線ドライバ25は、レジスタ26からロウアドレスを受け、このロウアドレスをデコードする。ワード線ドライバ25は、デコードされたロウアドレスに基づいて、ワード線の選択動作を行う。そして、ワード線ドライバ25は、選択されたブロックBLKに、書き込み動作、読み出し動作、及び消去動作に必要な複数の電圧を転送する。
【0037】
ビット線ドライバ24は、レジスタ26からカラムアドレスを受け、このカラムアドレスをデコードする。ビット線ドライバ24は、各ビット線に接続され、デコードされたカラムアドレスに基づいて、いずれかのビット線を選択する。また、ビット線ドライバ24は、データの読み出し時には、メモリセルトランジスタからビット線に読み出されたデータを検知及び増幅する。また、ビット線ドライバ24は、データの書き込み時には、書き込みデータをビット線に転送する。
【0038】
ビット線ドライバ24は、データの読み出し時には、検出したデータを一時的に保持し、これをシリアルに入出力回路22へ転送する。また、ビット線ドライバ24は、データの書き込み時には、入出力回路22からシリアルに転送されたデータを一時的に保持する。
【0039】
(マルチプレーン)
なお、1つのメモリセルアレイ23を用いた単一プレーン構成の不揮発性メモリについて説明したが、2つ以上のプレーンが配置されたマルチプレーン構成の不揮発性メモリを採用してもよい。
【0040】
マルチプレーン構成では、複数のメモリセルアレイ23が配置され、各メモリセルアレイ23は、それぞれの駆動に必要なビット線ドライバ24及びワード線ドライバ25を有する。各メモリセルアレイ23は、それぞれ独立して読み出し動作、書き込み動作、及び消去動作を実行することが可能である。即ち、マルチプレーン構成では、同一構造のブロックBLKを有し、異なるデータを各プレーンの同一ページに同時に書き込むことが可能である。
【0041】
(NANDメモリセルアレイの構成)
図3は、3次元構造のNANDメモリセルアレイ(以下、メモリセルアレイという)23のブロックBLKの構成例を示す図である。
図3はメモリセルアレイ23を構成する複数のブロックBLKのうちの1つのブロックBLKを示している。メモリセルアレイの他のブロックBLKも
図3と同様の構成を有する。なお、本実施形態は、2次元構造のメモリセルアレイにも適用可能である。
【0042】
図示するように、ブロックBLKは、例えば4つのストリングユニット(SU0~SU3)を含む。また各々のストリングユニットSUは、複数のNANDストリングNSを含む。NANDストリングNSの各々は、ここでは8個のメモリセルMT(MT0~MT7)と、選択トランジスタST1,ST2とを含む。なお、NANDストリングNSに含まれるメモリセルMTの個数は、ここでは8個であるが、8個に限られず、例えば、32個、48個、64個、96個等でもよい。選択トランジスタST1,ST2は、電気回路上は1つのトランジスタとして示しているが、構造上はメモリセルトランジスタと同じでもよい。また、例えばカットオフ特性を高めるために、選択トランジスタST1,ST2として、それぞれ複数の選択トランジスタを用いてもよい。 さらに、メモリセルMTと選択トランジスタST1,ST2との間には、ダミーセルトランジスタが設けられていてもよい。
【0043】
メモリセルMTは、選択トランジスタST1,ST2間において、直列接続されるようにして配置されている。一端側のメモリセルMT7が、選択トランジスタST1に接続され、他端側のメモリセルMT0が、選択トランジスタST2に接続されている。
【0044】
ストリングユニットSU0~SU3の各々の選択トランジスタST1のゲートは、それぞれセレクトゲート線SGD0~SGD3に接続される。他方で、選択トランジスタST2のゲートは、同一のブロックBLK内にある複数のストリングユニットSU間で同一のセレクトゲート線SGSに共通接続される。また、同一のブロックBLK内にあるメモリセルMT0~MT7のゲートは、それぞれワード線WL0~WL7に共通接続される。すなわち、ワード線WL0~WL7及びセレクトゲート線SGSは、同一ブロックBLK内の複数のストリングユニットSU0~SU3間で共通に接続されているのに対し、セレクトゲート線SGDは、同一ブロックBLK内であってもストリングユニットSU0~SU3毎に独立している。
【0045】
NANDストリングNSを構成するメモリセルMT0~MT7のゲートには、それぞれワード線WL0~WL7が接続されている。ブロックBLK内において同一行にあるメモリセルMTiのゲートは、同一のワード線WLiに接続される。なお、以下の説明では、NANDストリングNSを単に「ストリング」という場合がある。
【0046】
各NANDストリングNSは、対応するビット線に接続されている。従って、各メモリセルMTは、NANDストリングNSに含まれる選択トランジスタSTや他のメモリセルMTを介して、ビット線に接続されている。上述した通り、同一のブロックBLK内にあるメモリセルMTのデータは、一括して消去される。一方、データの読み出し及び書き込みは、メモリセルグループMG(以下、ページという)単位で行われる。本明細書では、1つのワード線WLiに接続され、かつ1つのストリングユニットSUに属する複数のメモリセルMTをメモリセルグループMGと定義する。本実施形態では、不揮発性メモリ2は3ビット(8値)のデータを保持可能なTLCのNANDメモリである。従って、1つのメモリセルグループMGが、データ量としては3ページ分のデータを保持することができる。各メモリセルMTが保持することができる3ビットは、それぞれこの3ページに対応する。
【0047】
メモリセルMTへのデータの書き込み動作は、大まかにはプログラム動作とベリファイ動作とを含む。プログラム動作は、電子を電荷蓄積膜に注入することによりメモリセルMTの閾値電圧を上昇させる(または注入を禁止することで閾値電圧を維持させる)動作のことである。プログラム動作時には、制御部22は、ワード線ドライバ25を制御して対象のメモリセルMTに接続されたワード線WLにプログラム電圧VPGMを印加し、ビット線ドライバ24を制御して対象のメモリセルMTに接続されたビット線BLに、書き込むデータに対応したビット線電圧を印加する。なお、ビット線電圧及びプログラム電圧VPGMは、電圧発生回路26により発生されてビット線ドライバ24、ワード線ドライバ25に供給される。
【0048】
(閾値分布)
多値のデータをメモリセルMTに書き込む場合には、メモリセルMTの閾値電圧をデータの値に応じた値にする。メモリセルMTにプログラム電圧VPGM及びビット線電圧Vbl_Lを印加すると、電子が電荷蓄積膜に注入されて閾値電圧が上昇する。プログラム電圧VPGMを大きくすることで電子の注入量を増加させて、メモリセルMTの閾値電圧を高くすることができる。しかし、メモリセルMTのばらつきにより同一のプログラム電圧VPGMを印加したとしても電子の注入量はメモリセルMT毎に異なる。一旦注入された電子は、消去動作が行われるまで保持される。そこで、各メモリセルMTに設定すべき閾値電圧として許容できる閾値電圧の範囲(以下、ターゲット領域という)を超えないように、書き込み動作を複数回に分けプログラム電圧VPGMを徐々に上昇させるようになっている。
【0049】
そして、プログラム動作の後、データを読み出すことで、メモリセルの閾値電圧がターゲット領域まで達したか否かを判定するベリファイ動作が行われる。以上のプログラム動作とベリファイ動作の組み合わせを繰り返すことで、メモリセルの閾値電圧がターゲット領域まで上昇される。ベリファイ動作により閾値電圧がターゲット領域まで達した、即ち、ターゲット領域の最低値であるターゲットレベルを超えたと判定されたメモリセルは、その後、書き込み禁止とされる。
【0050】
図4は横軸に閾値電圧をとり縦軸にメモリセル数(セル数)をとって、メモリセルアレイの閾値分布を示す図である。
図4では、3bit/Cellの不揮発性メモリ2の閾値分布例を示している。不揮発性メモリ2において、メモリセルMTに記憶する多値データの各データ値に応じて、メモリセルMTの閾値電圧が設定される。電荷蓄積膜(電荷保持領域)への電荷量の注入は、確率的であるため、
図4に示すように、各メモリセルMTの閾値電圧も統計的に分布する。
【0051】
図4は閾値分布をDEr,DA,DB,DC,・・・,DGの8個の山型の領域にて示しており、これらの各領域の閾値電圧の幅が各ターゲット領域に対応する。
図4の例では、8個のターゲット領域内のいずれかにメモリセルMTの閾値電圧を設定することで、メモリセルMTに8値のデータ(3ビットデータ)を記憶させることが可能である。
【0052】
本実施形態では、閾値電圧Vthが
図4の電圧VrA以下となるターゲット領域をErレベルとよび、閾値電圧が電圧VrAより大きく電圧VrB以下となるターゲット領域をAレベルとよび、閾値電圧が電圧VrBより大きく電圧VrC以下となるターゲット領域をBレベルとよび、閾値電圧が電圧VrCより大きく電圧VrD以下となるターゲット領域をCレベルとよぶ。以下同様に、
図4に示すように、DレベルからGレベルが、それぞれの電圧に応じて設定される。
【0053】
すなわち、レベルは、各メモリセルMTに記憶させるデータ値に対応したいずれのターゲット領域であるかを示すものであり、3ビット8値の場合にはターゲット領域は、Er,A~Gレベルの8個のレベルに分けられる。なお、各Er,A,B,・・・,F,Gレベルにそれぞれ対応する閾値分布をそれぞれ分布DEr,DA,DB,・・・,DF,DGと呼ぶ。電圧VrA~VrGは、各ターゲット領域の境界となる基準電圧である。なお、ベリファイ動作においては、ワード線WLに電圧VrA~VrGをベリファイレベル(電圧)として印加して読み出し行い、対象のメモリセルMTがオフになることによりレベルに対応した閾値電圧に到達したことを判定してもよい。なお、以下の説明では、A~Gレベルのベリファイに用いるベリファイ電圧VrA~VrGをそれぞれA~Gベリファイレベルともいう。
【0054】
(標準書き込みシーケンス)
図5は標準書き込みシーケンスの一例を説明するための図である。
図5ではプログラム動作とベリファイ(プログラムベリファイ)動作との組み合わせが18回繰り返されることによって、データが書き込まれる場合を例に示している。この繰り返し動作を「ループ」と呼ぶ。1回目のループにおけるプログラム電圧VPGMは最も低い電圧値に設定され、2回目、3回目・・・とループが進むにつれて、次第にプログラム電圧VPGMを大きな電圧値に設定するようになっている。また、
図5中の丸印はプログラムベリファイ動作を行うことが可能なループを示している。また、各A~Gレベルにおいて、プログラム動作は、1回目のループから最大でそれぞれ丸印が含まれるループまで行われる。以下、1回目から18回目までのループのうちn回目のループを第nループという。
【0055】
例えば、Bレベルに設定するメモリセルMTについては、第1ループから最大で第8ループまでプログラム電圧VPGMを次第に増加させながらプログラム動作が行われる可能性がある。プログラムベリファイ動作は丸印のループのみ行われ、プログラムベリファイ動作によって、設定されているターゲット領域に閾値電圧が到達したと判定されたメモリセルMTについては、その後、書き込み禁止とされる。
【0056】
(ビット線ドライバ)
図6はベリファイ動作における判定を行うビット線ドライバ24の内部回路の一例を模式的に示す回路図である。ビット線ドライバ24は、メモリセルアレイ23内に設けられたビット線BLに接続されている。ビット線ドライバ24中のセンスアンプ回路32は、ビット線BLの電位変動を検知及び増幅し、メモリセルに記憶されたデータを判別する。
【0057】
ビット線ドライバ24は、カラムデコーダ31、センスアンプ回路32、ビットスキャン回路33及び演算ユニット34を含む。カラムデコーダ31は 、制御部22から転送されたカラムアドレスに基づいてメモリセルアレイ23のビット線BLを選択して、センスアンプ回路32を駆動する。
【0058】
センスアンプ回路32は、複数のカラムユニットCUを含んでいる。各カラムユニットCUは、各ビット線BLにそれぞれ対応するように、設けられている。各カラムユニットCUは、1つのセンスユニット(SU)321及び1つのラッチ回路325を含んでいる。センスユニット321及びラッチ回路325は、メモリセルアレイ23のビット線BLに対応するように、1つのビット線に対して1つずつ設けられている。つまり、1つのセンスユニット321と1つのラッチ回路325が、1つのビット線BL及びそのビット線BLに接続されたNANDストリングNSに対応している。1つのセンスユニット321は、1本のビット線BLに接続される。1つのラッチ回路325は、センスユニット321を経由して、ビット線BLに接続される。
【0059】
センスユニット321は、データの書き込み時、カラムデコーダ31及び制御部22の制御によって、ビット線BLを充電したり放電したりする。センスユニット321は、データの読み出し時、ビット線BLの電位変動を検知し、データを判別する。
【0060】
ラッチ回路325は、メモリセルに書き込むデータ、メモリセルから読み出されたデータ及びメモリセルに対する動作を示す設定情報(以下、フラグとよぶ)などを、一時的に保持する。また、ラッチ回路325によって、センスユニット321からの信号又は外部からの信号が増幅される。
【0061】
ラッチ回路325は、複数のラッチ(LAT)90を有する。本実施形態において、データを保持するラッチ90のことを、データラッチ90とよび、フラグを保持するラッチ90のことを、フラグラッチ90と呼ぶ。ラッチ回路325内のデータラッチ90は、データの書き込み時において、そのラッチ回路325に対応しているメモリセルグループMGに書き込むべきデータ(外部からのデータ)を保持する。また、ラッチ回路325内のデータラッチ90は、データの読み出し時において、そのラッチ回路325に対応しているメモリセルグループMGから読み出されたデータ(メモリセルからのデータ)を保持する。1つのデータラッチ90は、1ビットのデータを保持する。
【0062】
例えば、プログラムベリファイ時、プログラムベリファイ結果に基づいて、所定のデータの書き込みが完了したメモリセル(ベリファイパスしたメモリセル)に対応するカラムユニットCUのラッチ回路325に、書き込み完了を示す情報が保持される。これによって、書き込みが完了したメモリセルに対してデータの書き込みが継続されるのを抑制される。
【0063】
ラッチ回路325内のフラグラッチ90が保持するフラグは、例えば、入力されたデータが2値(1ビット)のデータであるか多値(2ビット以上)のデータであるかを示す情報、或いは、どのような書き込みモードでデータを書き込むべきかを示す情報である。例えば、1つのメモリセルが4値(2ビット)のデータを記憶する場合、ラッチ回路325は、2つのデータラッチ90を有する。ラッチ回路325内に設けられた2つのデータラッチのうち、一方のデータラッチ90は、2ビットのうち上位の1ビットを保持し、他方の下位データラッチ90は、2ビットのうち下位の1ビットを保持する。ラッチ回路325は、1つ以上のフラグラッチ90を有する。また、ラッチ回路325は、ベリファイ結果を保持するラッチ90を有する。但し、ベリファイ結果(ベリファイ情報ともよばれる)は、フラグラッチなどに書き込まれてもよい。
【0064】
なお、4値のデータの場合には、少なくとも2つのデータラッチと少なくとも1つのフラグラッチが、ラッチ回路325内に設けられているが、データのビット数が増加すると、データラッチの個数は、増大する。例えば、メモリセルMCが8値(3ビット)のデータを記憶する場合、ラッチ回路325は3つのデータラッチを有する。つまり、ラッチ回路325は、最上位の1ビットを保持するデータラッチと、最下位の1ビットを保持するデータラッチと、最上位と最下位との間の1ビットを保持するデータラッチとを有する。これと同様に、データが16値(4ビット)の場合、ラッチ回路325内のデータラッチの個数は4個となり、データが32値(5ビット)の場合、ラッチ回路325内のデータラッチの個数は5個となる。フラグラッチの個数は、メモリの仕様に応じて、1個でもよいし、2個以上でもよい。
【0065】
本実施の形態においては、ラッチ90は、ベリファイパスしたメモリセル数(以下、パスセル数という)の情報及びベリファイフェイルしたメモリセル数(以下、フェイルセル数という)の情報のうちの少なくとも一方の情報を記憶するようになっている。また、ラッチ90は、後述する各種ビット数の情報も記憶するようになっている。
【0066】
(ベリファイ動作)
次に、ベリファイ動作の一例について説明する。まず、ワード線ドライバ25は、選択ワード線に、目標レベルに対応したベリファイレベル(電圧)Vrを印加し、非選択ワード線に、ベリファイ電圧Vrよりも高い非選択読み出し電圧VPASS(例えば、5~7V)を印加する。ベリファイ動作時には、制御部22は、ビット線ドライバ24を制御して、ビット線BLを一定の電圧(例えば、0.5V)に固定すると共に、センスユニット321内部の図示しないセンスノードSENをビット線BLの電圧よりも高い所定のプリチャージ電圧Vpreに充電する。この状態で、制御部22は、センスノードSENをビット線BLに接続する。そうすると、センスノードSENからビット線BLに電流が流れ、センスノードSENの電圧は次第に低下する。
【0067】
センスノードSENの電圧は、ベリファイ対象のメモリセル(選択メモリセル)の閾値電圧の状態に応じて変化する。即ち、選択メモリセルの閾値電圧がベリファイ電圧Vrよりも低いときは、選択メモリセルはオン状態であり、選択メモリセルに大きなセル電流が流れ、センスノードSENの電圧が低下する速度は速くなる。また、選択メモリセルの閾値電圧がベリファイ電圧Vrよりも高いときは、選択メモリセルはオフ状態であり、選択メモリセルに流れるセル電流は、小さいか、又は、選択メモリセルにセル電流が流れず、センスノードSENの電圧が低下する速度は遅くなる。
【0068】
このようなセンスノードSENの電圧低下の速度の差を利用して、選択メモリセルの書き込みの状態が判定されて、ベリファイ結果がラッチ90に記憶される。例えば、センスノードSENの電荷を放電し始める放電開始時から所定の第1期間が経過した第1時点で、センスノードSENの電圧がローレベル(以下、"L")であるかハイレベル(以下、"H")であるかが判定される。例えば、選択メモリセルが書き込み不足セルであるときは、その閾値電圧がベリファイ電圧Vrよりも低く、かつ、両者の差が大きいため、選択メモリセルは完全オン状態であり、選択メモリセルに大きなセル電流が流れる。このため、センスノードSENの電圧は、急速に低下し、電圧降下量は比較的大きく、第1時点において、センスノードSENが“L”になる。
【0069】
また、選択メモリセルが書き込み完了セルであるときは、その閾値電圧がベリファイ電圧Vrよりも高いため、選択メモリセルはオフ状態であり、選択メモリセルに流れるセル電流は、非常に小さいか、又は、選択メモリセルにセル電流が流れない。このため、センスノードSENの電圧は、非常に緩やかに低下し、電圧降下量は比較的小さく、第1時点において、センスノードSENは、“H”のままとなる。
【0070】
このように、ワード線ドライバ25により選択ワード線にベリファイ電圧Vrを印加しながら、センスアンプ回路32がセンスノードSENの状態を監視することで、選択メモリセルが書き込み不足セルであるか、選択メモリセルが書き込み完了セルであるかが判定される。
【0071】
制御部22は、書き込み不足セル、又は書き込み完了セルのいずれであるかの判定結果に基づいて、書き込み対象のメモリセルMTのレベル、ループ等に応じたプログラム電圧を発生させるようになっている。
【0072】
(ディスターブ)
次に、
図7及び
図8を参照してディスターブについて説明する。
図7及び
図8は横軸に閾値電圧をとり縦軸にメモリセル数をとって、各ターゲットレベルの閾値分布を示すグラフの模式図であり、
図7は正常時の分布を示し、
図8は閾値電圧の浮き上がり不良が生じた場合の分布を示している。
図7及び
図8は下層から上層まで複数のワード線のうちの1つのワード線に対応するメモリセルの閾値分布を示している。
【0073】
浮き上がり不良は、書き込み完了後のメモリセルの閾値電圧が、ターゲット領域を超えて上昇する不良である。例えば、浮き上がり不良は、書き込み完了によって書き込み禁止とされたメモリセルが、他のメモリセルへの書き込みの影響を受けて、メモリホールリーク等に起因して閾値電圧が上昇することにより生じる場合がある。また、このような浮き上がり不良は、イレーズ時に、メモリホールリーク等に起因して十分なイレーズ電圧を印加できないことにより生じるイレーズ不良が原因の場合もある。
【0074】
図7の例は、Erレベル及びA~Gレベルの8つの分布について、ワード線によって多少分布が異なるものの、おおよそ、閾値電圧がターゲット領域に存在することを示している。これに対し、
図8の例は丸印で囲った部分において、Erレベルに分布されるべきメモリセルの閾値電圧が上昇して浮き上がり不良が生じていることを示している。
【0075】
なお、
図8の例はErレベルについての浮き上がり不良の例を示したが、いずれのターゲットレベルについても浮き上がり不良が生じることがある。このようなディスターブによる浮き上がり不良の発生により、読み出し時にエラー訂正不能となることがある。
【0076】
上述したプログラムベリファイは、メモリセルの閾値電圧が、設定されているターゲット領域に到達したか否かを判定するものであり、ターゲット領域への到達後におけるメモリセルの閾値電圧の変化を検出することはできない。従って、
図8のような浮き上がり不良(閾値電圧が変化するような不良)を判定するためには、プログラムループ終了後(例えば、
図5における18ループの終了後)に、書き込みが正常に行われたか否かを確認するためリードベリファイを行う必要がある。リードベリファイは、メモリセルの読み出しを行いメモリセルの閾値電圧がどのターゲット領域にあるか検出する。しかし、リードベリファイにより書き込み動作の動作時間が長くなり、パフォーマンス劣化の要因となる。
【0077】
(特性変動判定)
そこで、本実施の形態においては、ディスターブの問題が発生するか否かを、書き込み時の現象によって判定する。即ち、メモリホールリーク等の理由からイレーズ不良や浮き上がり不良(以下、これらを浮き上がり不良等という)が発生する場合には、書き込み時にも書き込みに関する不良が生じる可能性がある。また、浮き上がり不良等が発生する場合には、イレーズ時にもイレーズに関する不良が生じる可能性がある。書き込みに関する不良及びイレーズに関する不良(以下、これらをディスターブの要因となる不良という)は、製品出荷時には生じていない場合でも、経年劣化等により実使用時に発生し始めることがある。
【0078】
そこで、本実施の形態においては、製品の出荷時の状態ではディスターブの要因となる不良は生じていないものと想定し、所望のプログラム動作が行われなくなった場合には、何らかの劣化により書き込みに関する不良が生じて、ディスターブが生じる可能性が高くなったと判定する。本実施の形態においては、ディスターブの要因となる不良を生じさせることとなった特性(以下、ディスターブの要因となる特性という)を判定する特性変動判定を実施し、特性変動判定により、特性が変動した、即ち、ディスターブが生じる可能性が発生したという判定結果が得られた場合にのみ、リードベリファイを実施するようになっている。
【0079】
本実施の形態においては、ディスターブの要因となる特性として、例えば、プログラムループのループ数、フェイルセル数(後述する書き残りビット数又は消し残りビット数)、後述するステート(状態)等を考える。これらの特性を特性変動判定の判定対象として、プログラム時やイレーズ時に特性変動判定を実行し、判定結果に基づいてリードベリファイを実施する。
【0080】
ロジック制御回路21は、特性変動判定を実施すると共に、その判定結果に従って、リードベリファイを制御する。即ち、ロジック制御回路21は、上述した判定対象についての情報(以下、特性情報という)を取得すると共に、その変動を求め、特性変動を判定する。
【0081】
例えば、ロジック制御回路21は、書き込み動作におけるプログラムループ数を検出し、ビット線ドライバ24は、フェイルセル数を検出する。ビット線ドライバ24が検出したフェイルセル数の情報は、ロジック制御回路21に転送される。また、ロジック制御回路21は、ステート情報についても検出する。
【0082】
本実施の形態においては、ロジック制御回路21は、取得されたプログラムループ数、ビット数及びステート情報等の特性情報をデータラッチ90やメモリセルアレイ23の所定の記録領域に記録してもよい。特性情報を例えばブロックBLK単位で比較することで特性変動を判定する場合には、ロジック制御回路21は、メモリセルアレイ23の特定の領域、例えば、SLCによる特定の記録領域(以下、パラメータ領域という)に特性情報を記録すると共に読み出すことで、特性変動判定を実施してもよい。また、例えば、ワード線毎あるいはページ単位で特性変動を判定する場合には、ロジック制御回路21は、データラッチ90に特性情報を記録すると共に読み出すことで、特性変動判定を実施してもよい。また、ロジック制御回路21は、パラメータ領域及びデータラッチ90以外の他のメモリ領域に特性情報を記録するようになっていてもよい。
また、本実施の形態においては、特性変動判定のための基準となる情報をメモリセルアレイ23のパラメータ領域等に記録するようになっていてもよい。
【0083】
(作用)
次に、このように構成された実施の形態の動作について
図9から
図13を参照して説明する。
図9は第1の実施の形態の動作を説明するためのフローチャートであり、
図10は比較例の動作を説明するためのフローチャートである。
【0084】
図9は本実施の形態における書き込み動作の概略を示しており、
図10の比較例は本実施の形態における特徴である特性変動判定を実施しない場合の書き込み動作を示している。なお、
図9及び
図10において同一の手順には同一符号を付し、同一手順については重複する説明を省略するものとする。
【0085】
図11は書き込み単位を示す説明図である。書き込みは、ページ単位で行われる。
図11においては、
図3のストリングユニットSU0に含まれる各NANDストリングをストリングString0と呼び、ストリングユニットSU1に含まれる各NANDストリングをストリングString1と呼び、ストリングユニットSU2に含まれる各NANDストリングをストリングString2と呼び、ストリングユニットSU3に含まれる各NANDストリングをストリングString3と呼ぶものとする。
【0086】
図11は1ブロックBLKを4つのストリングユニットSUにて構成する例を示している。各ストリングユニットの各ワード線WL0,WL1,…によって書き込まれる範囲がページである。即ち、1つのワード線WLは、ストリングユニット毎に4つのページを構成する。なお、書き込みは、例えば、ページ0,1,2,…の順に行われる。
【0087】
図10の比較例においては、ステップS1において書き込み対象のページに対応するワード線にプログラム電圧VPGM(プログラムパルス)を印加することでプログラム動作を行う。プログラム動作の後、閾値電圧が所望のターゲット電圧に到達したか否かを判定するプログラムベリファイが実行される。ステップS2においてプログラムベリファイの結果がベリファイパス(OK)かベリファイフェイル(NG)かが判定される。ベリファイフェイルの場合には処理をステップS1に戻し、プログラム動作とプログラムベリファイとのループが複数回実行され、ベリファイパスになると、次のステップS3において、書き込み対象のページに対するループが終了したか否かが判定される。
【0088】
書き込み対象のページに対するループが終了していない場合には、処理をステップS1に戻してプログラム動作とプログラムベリファイとのループを繰り返す。書き込み対象のページに対するループが終了すると、ステップS4において、リードベリファイが実施される。ステップS5ではリードベリファイの結果がベリファイパスであるか否かが判定され、ベリファイパスの場合には書き込み成功(プログラムステータスパス)と判定され(ステップS6)、ベリファイフェイルの場合には書き込み不成功(プログラムステータスフェイル)と判定される(ステップS7)。
【0089】
このように比較例では、リードベリファイの実施により書き込み動作の動作時間が長くなってしまい、パフォーマンスが劣化する。
【0090】
これに対し、本実施の形態においては、ロジック制御回路21は、ステップS3において書き込み対象のページに対するループが終了したものと判定すると、次のステップS11において特性変動判定を実施する。ロジック制御回路21は、ステップS12において、特性変動判定の結果に基づいて特性変動が生じているか否かを判定する。ロジック制御回路21は、特性変動が生じていないと判定した場合には、書き込み成功とする(ステップS6)。即ち、この場合には、リードベリファイは実施されない。
【0091】
一方、ロジック制御回路21は、特性変動が生じていると判定した場合には、ステップS4に処理を移行して、リードベリファイを実行する。ロジック制御回路21は、リードベリファイの結果がベリファイパスであった場合にはステップS5からステップS6に移行して書き込み成功とし、ベリファイフェイルの場合にはステップS5からステップS7に移行して書き込み不成功(プログラムステータスフェイル)とする。
【0092】
このように、本実施の形態においては、リードベリファイは、特性変動判定による特性変動が生じていると判定された場合にのみ実施されることから、書き込み動作のパフォーマンスを向上させることができる。また、浮き上がり不良等の発生を特性変動判定によって検出することができ、プログラムベリファイパス後に浮き上がり不良等が発生した場合でも、書き込みの成功、不成功を確実に判定することができる。
【0093】
(具体例)
次に、
図12を参照して、書き込み時における特性変動判定の具体的な手法について説明する。
図12は
図9のステップS11における特性変動判定の具体的な処理の例を示すフローチャートである。
【0094】
(ループ数)
図12の例においては、例えばデータラッチ90やメモリセルアレイ23のパラメータ領域に特性変動判定の基準となるループ数(以下、基準ループ数という)の情報を記録しておく。なお、この基準ループ数の情報は、工場出荷時に記録するようになっていてもよく、また、メモリコントローラ1によって、変更可能に構成されていてもよい。ロジック制御回路21は、
図9のステップS1からステップS3のループにおいて、ページのループが終了するまでのループ数をカウントし、ループ数のカウント値をデータラッチ90に記憶する。
【0095】
ロジック制御回路21は、
図9のステップS3においてページのループが終了したことを判定すると、
図12のステップS21において、メモリセルアレイ23から基準ループ数の情報を読み出す。ロジック制御回路21は、ステップS22において、データラッチ90に記憶した実際のループ数と基準ループ数とを比較する。ロジック制御回路21は、実際のループ数が基準ループ数の範囲を超えたか否かを判定する(ステップS23)。ロジック制御回路21は、実際のループ数が基準ループ数以内の場合には特性変動なしと判定し(ステップS24)、基準ループ数を超えた場合には特性変動ありと判定する(ステップS25)。
【0096】
(例1)
例えば、ページのプログラム動作及びベリファイ動作のループの最大ループ数が26ループに設定されている場合においては、浮き上がり不良等が生じていなければ、例えば20ループくらいでループが終了することが想定される。この場合には、基準ループ数として、例えば17~23ループが設定される。即ち、ロジック制御回路21は、プログラム動作及びベリファイの実際のループ数が17~23ループの範囲内であった場合には、実際のループ数は基準ループ数の範囲内であるものとして、特性変動なしと判定する。また、ロジック制御回路21は、プログラム動作及びベリファイの実際のループ数が16ループ以下又は24ループ以上であった場合には、実際のループ数は基準ループ数の範囲外であるものとして、特性変動ありと判定する。
【0097】
(例2)
例えば、浮き上がり不良等が発生していなければ、各ページのプログラム動作及びベリファイ動作のループ数の変化は比較的小さいものと考えられる。逆に、前回書き込みが行われたページのプログラム動作及びベリファイ動作のループ数と今回書き込みが行われたページのプログラム動作及びベリファイ動作のループ数との差が比較的大きい場合には、浮き上がり不良等が発生しているものと判定可能である。この判定を行う場合には、前回書き込み時のループ数と今回書き込み時のループ数の差のループ数を、データラッチ90に記録しておく。
【0098】
例えば、最大ループ数が26ループに設定されている場合においては、ページ毎のループ数の差は、浮き上がり不良等が生じていなければ、3ループ以内であると想定されるものとする。この場合には、工場出荷時に基準ループ数として3ループを設定してメモリセルアレイ23のパラメータ領域に記録する。ロジック制御回路21は、データラッチ90に記録したループ数の差と基準ループ数とを比較し、プログラム動作及びベリファイの前回のループ数との差が3ループ以内であった場合には今回の書き込みは基準ループ数の範囲内であるものとして、特性変動なしと判定する。また、ロジック制御回路21は、プログラム動作及びベリファイの前回のループ数との差が±4ループ以上であった場合には今回の書き込みは基準ループ数の範囲外であるものとして、特性変動ありと判定する。
【0099】
(例3)
メモリセルアレイ23は、3次元構造のメモリホールを有する。メモリホールは、p型ウェル領域に向かって細径となるテーパ形状を有する。また、製造工程によっては、メモリホールは、テーパ形状の途中で拡径して再びp型ウェル領域に向かって細径となる複数段のテーパ形状を有することもある。この3次元構造のため、メモリホールの径はワード線毎に異なり、このため書き込み特性もワード線毎に異なる。このようにワード線毎に書き込みの特性が異なることを考慮して、ワード線を複数のグループに分け、このグループ毎に書き込み電圧の設定が行うことがある。
【0100】
そこで、特性変動についても、グループ毎に基準ループ数の設定を変更することが考えられる。なお、グループ毎の基準ループ数についても、工場出荷時にメモリセルアレイ23のパラメータ領域に記録する。
【0101】
例えば、ワード線WL0~WL10については、基準ループ数を±4ループに設定し、±4ループ以上差があった場合には特性変動ありと判定し、ワード線WL11~WL20については、基準ループ数を±6ループに設定し、±6ループ以上差があった場合には特性変動ありと判定する、等の制御が可能である。
【0102】
(例4)
更に、基準ループ数をプログラム電圧によって変更するようになっていてもよい。例えば、プログラム電圧が比較的高いグループと比較的低いグループに分け、プログラム電圧が比較的高い場合には、基準ループ数を±4ループに設定し、±4ループ以上差があった場合には特性変動ありと判定し、プログラム電圧が比較的低い場合には、基準ループ数を±6ループに設定し、±6ループ以上差があった場合には特性変動ありと判定する、等の制御が可能である。
【0103】
なお、グループ毎の基準ループ数及びグループの分類の仕方については、工場出荷時だけでなく、メモリコントローラ1によって変更可能に構成してもよい。
【0104】
(例5)
上記(例2)では、前回のページと今回のページとにおけるプログラム動作及びベリファイ動作のループ数の差を、基準ループ数と比較する例を説明したが、同一ストリングの隣接するワード線に対応するページ同士でループ数の差を基準ループ数と比較してもよい。
【0105】
例えば、ロジック制御回路21は、同一ストリングに属する隣接するページp,(p+4)同士のループ数の差を基準ループ数(例えば3)と比較し、その差が基準ループ数(3)以内であった場合には基準ループ数の範囲内であるものとして、特性変動なしと判定する。また、ロジック制御回路21は、ページp,(p+4)同士のループ数の差が基準ループ数(3)を超える(±4ループ以上)であった場合には、基準ループ数の範囲外であるものとして、特性変動ありと判定する。なお、ワード線WL0及びページ0については、所定のROMに記録された値との比較を行えばよい。
【0106】
(例6)
上述したように、マルチプレーン構成の場合、対応するプレーンにおいて、同時に対応するページへの書き込みが行われる。この場合には、対応する各プレーンには電圧生成回路28から同一の電圧が供給される。このため、一方のプレーンの書き込みが終了したとしても、他方のプレーンの書き込み時の印加電圧により、書き込み済のプレーンが影響を受けることがある。
【0107】
そこで、ロジック制御回路21は、対応するプレーンの対応するページへの書き込みに要するループ数同士の差と基準ループ数(例えば3)とを比較し、その差が例えば基準ループ数(3)以内であった場合には基準ループ数の範囲内であるものとして、特性変動なしと判定する。また、ロジック制御回路21は、対応するプレーンの書き込みに要するループ数同士の差が基準ループ数を超える場合には、基準ループ数の範囲外であるものとして、特性変動ありと判定する。
【0108】
(例7)
図9では、各ページの書き込み終了後に、特性変動判定する例を示したが、特定のレベルでの書き込み終了後に特性変動を判定するようになっていてもよい。例えば、A~Gの各レベルの書き込み終了毎に、上記(例1)から(例6)の判定を行ってもよく、また、所定の1つのレベルの書き込み終了時に、上記(例1)から(例6)の判定を行ってもよい。例えば、特性変動の判定を正確に行えるレベルが存在する場合には、そのレベルについての情報を工場出荷時にメモリセルアレイ23に記録しておき、当該レベルの書き込み終了後に、上記(例1)から(例6)の判定を行ってもよい。
【0109】
(ビット数)
図13は特性変動判定の他の具体的な手法を説明するためのフローチャートである。
図13において
図9と同一の手順には同一符号を付して説明を省略する。
図13のフローは、
図9のステップS11に代えて、ステップS31~S33を採用したものである。
【0110】
図13の手法は、例えば、マルチプレーン動作時において、同時に書き込んでいる2つページについて、書き残りのビット数の差によって特性変動の有無を判定するものである。この例においても、例えば、工場出荷時に、特性変動判定のための判定条件をメモリセルアレイ23のパラメータ領域に記録する。
【0111】
書き込み動作時において、ロジック制御回路21は、判定条件を読み出し(ステップS31)、判定条件によって規定されているループに到達したか否かを判定する(ステップS32)。ロジック制御回路21は、規定ループに到達していない場合には、ステップS1に処理を移行する。一方、規定ループに到達している場合には、処理をステップS33に移行して、特性変動判定を行った後、処理をステップS1に移行する。
【0112】
例えば、規定ループが20ループであるものとすると、20ループ目に到達すると、ステップS33の特性変動判定が実行される。ロジック制御回路21は、マルチプレーンの一方のブロックBLKの書き残りと他方のブロックBLKの書き残りのビット数の差が所定の閾値以上の場合には特性変動ありと判定し、書き残りのビット数の差が所定の閾値よりも小さい場合には特性変動なしと判定する。
【0113】
例えば、所定の閾値が1000ビットであるものとすると、マルチプレーンの一方のブロックBLKの書き残りが500ビットで他方のブロックBLKの書き残りが1500ビット以上の場合には、書き残りのビット数の差が1000ビット以上であり、特性変動ありと判定される。
【0114】
なお、
図13の例では、規定ループに到達することで特性変動判定を実施する例を説明した。しかし、書き込みが終了していない場合でも、書き残りのビット数が規定ビット数以内の場合には当該レベルの書き込みを終了させるビット無視機能を採用することで、対象ページの書き込みの終了後に、特性変動判定を実施することも可能である。即ち、この場合には、
図9と同様のフローによって、書き残りビット数に基づく特性変動判定が可能である。
【0115】
(ステータスフェイル)
マルチプレーンにおいて、一方のプレーンのブロックBLKの書き込み時に、書き込みを完了させることができずに書き込み不良であることを示すプログラムステータスフェイルが生じることがある。ロジック制御回路21は、
図9のステップS11の特性変動判定において、一方のプレーンのブロックBLKに、プログラムステータスフェイルが発生したか否かを判定する。プログラムステータスフェイルが発生した場合には、ロジック制御回路21は、次のステップS12において、変動有りと判定し、処理をステップS4に移行し、プログラムステータスフェイルが発生していないプレーンについてのリードベリファイを実施する。
【0116】
このように、上記各例においても、リードベリファイは、特性変動判定による特性変動が生じていると判定された場合にのみ実施されることから、書き込み動作のパフォーマンスを向上させることができる。
【0117】
なお、上記説明では、ロジック制御回路21が特性変動判定を実施する例を説明したが、他のブロックBLKが実施してもよく、また、メモリコントローラ1において実施してもよい。
【0118】
(第2の実施の形態)
図14は本発明の第2の実施の形態において採用される動作フローを示すフローチャートである。
図14において
図9と同一の手順には同一符号を付して説明を省略する。本実施の形態におけるハードウェア構成は第1の実施の形態と同様である。本実施の形態は、イレーズ時における特性変動判定を利用して、書き込み時のリードベリファイの実施の可否を判定するものである。なお、本実施の形態はイレーズ直後に書き込み動作が行われることが前提である。
【0119】
図14のフローは、ステップS11に代えて、ステップS41~S43を採用したものである。ステップS41においては、イレーズが実行され、ステップS42においてイレーズベリファイが実行される。
【0120】
イレーズ時には、ソース線に所定の高電圧パルス(以下、イレーズパルスという)を印加する。これにより、ストリングString0~String3の各メモリセルトランジスタMTの電荷蓄積膜に蓄積された電荷を排出させて、全メモリセルトランジスタMTの閾値電圧をErレベル(イレーズレベル)に戻す。
【0121】
メモリセルトランジスタMTがErレベルになったか否かを検証するために、イレーズベリファイが行われる。イレーズベリファイは、Erレベルよりも高い、例えば電圧VrAに相当するイレーズベリファイ電圧を各メモリセルトランジスタMTのゲートに印加することで行われる。選択トランジスタST2のゲートには、選択ゲートトランジスタST2をオンにするための電圧が印加される。一方、選択トランジスタST1には、ベリファイ対象のNANDストリングを構成する選択ゲートトランジスタST1のゲートにのみオンにする電圧が印加され、他の選択ゲートトランジスタST1のゲートにはオフにする電圧が印加され、ストリング毎にイレーズベリファイが実施される。イレーズベリファイの結果、ベリファイ対象のメモリセルトランジスタMTがイレーズレベルに戻っていない場合にはイレーズパルスを再度印加して、イレーズ及びイレーズベリファイのループ(イレーズループ)が繰り返される。
【0122】
ロジック制御回路21は、ステップS42においてイレーズ対象(書き込み対象)のページに対するループが終了したものと判定すると、次のステップS43において特性変動判定を実施する。次に、ロジック制御回路21は、ステップS1~S3において、書き込み動作を行う。
【0123】
次に、ロジック制御回路21は、ステップS12において、特性変動判定の結果に基づいて特性変動が生じているか否かを判定する。イレーズ時におけるループ数の増大等の特性変動が生じた場合には、書き込み動作時においても浮き上がり不良等生じる可能性が高いと考えられる。ロジック制御回路21は、ステップS4からS7において、特性変動が生じている場合にのみリードベリファイを実施する。他の作用は、第1の実施の形態と同様である。
【0124】
(具体例)
(ループ数)
本実施の形態においても
図12のフローを採用することができる。即ち、例えばデータラッチ90やメモリセルアレイ23のパラメータ領域に特性変動判定の基準となる基準ループ数の情報を記録しておく。なお、この場合の基準ループ数の情報は、イレーズ時に関するものであり、工場出荷時にメモリセルアレイ23に記録する。ロジック制御回路21は、
図14のステップS41,S42のループにおいて、イレーズのループが終了するまでのループ数をカウントし、ループ数のカウント値をデータラッチ90又はメモリセルアレイ23のパラメータ領域に記録する。
【0125】
ロジック制御回路21は、
図14のステップS42においてページのループが終了したことを判定すると、
図12のステップS21において、メモリセルアレイ23から基準ループ数の情報を読み出す。ロジック制御回路21は、ステップS22において、イレーズに要した実際のループ数と基準ループ数とを比較する。ロジック制御回路21は、実際のループ数が基準ループ数の範囲を超えたか否かを判定する(ステップS23)。ロジック制御回路21は、実際のループ数が基準ループ数以内の場合には特性変動なしと判定し(ステップS24)、基準ループ数を超えた場合には特性変動ありと判定する(ステップS25)。
【0126】
(例1)
ロジック制御回路21は、同一ブロックBLKの前回のイレーズ動作時の実際のループ数と基準ループ数とを比較し、実施のループ数が所定の閾値よりも大きい場合には特性変動ありと判定し、所定の閾値以下の場合には特性変動なしと判定する。
【0127】
(例2)
イレーズは、ブロックBLK単位で実施されることから、ワード線毎のループ数の比較はできない。そこで、ロジック制御回路21は、所定のブロックBLKのイレーズに要したループ数と、その次のブロックBLKのイレーズに要したループ数とを比較し、ループ数の差が所定の閾値を超えた場合には特性変動ありと判定し、所定の閾値以下の場合には特性変動なしと判定する。なお、パワーオン直後においては、ループ数の初期値を基準ループ数としてメモリセルアレイ23のパラメータ領域に記録し、この基準ループ数と実際のループ数との比較により、特性変動の有無を判定する。
【0128】
(例3)
マルチプレーン構成の場合には、イレーズに要した実際のループ数を対応するプレーン同士で比較する。対応するプレーンのイレーズループ数同士の差と基準ループ数とを比較し、その差が例えば基準ループ数以内であった場合には基準ループ数の範囲内であるものとして、特性変動なしと判定する。また、ロジック制御回路21は、対応するプレーンのイレーズループ数同士の差が基準ループ数を超える場合には、基準ループ数の範囲外であるものとして、特性変動ありと判定する。
【0129】
(ビット数)
(例1)
イレーズ処理においても、イレーズレベルに戻らないセル(以下、消し残りビットという)が存在することがある。この場合に、所定数の消し残りビット数を許容してイレーズベリファイに成功したと判定する場合がある。この場合を考慮して、リードベリファイ実施の判定のための消し残りビット数の基準値(基準消し残りビット数)を工場出荷時に、メモリセルアレイ23のパラメータ領域に記録してもよい。この基準消し残りビット数と実際の消し残りビット数とを比較し、消し残りビット数が基準消し残りビット数を超える場合には特性変動ありと判定し、基準消し残りビット数以下の場合には特性変動なしと判定する。
【0130】
(例2)
ロジック制御回路21は、マルチプレーンの一方のブロックBLKの消し残りビット数と他方のブロックBLKの消し残りのビット数の差が所定の閾値以上の場合には特性変動ありと判定し、消し残りビット数の差が所定の閾値よりも小さい場合には特性変動なしと判定する。
【0131】
(例3)
イレーズベリファイを偶数ワード線と奇数ワード線とで別々に行う場合がある。そこで、偶数ワード線についての消し残りビット数と奇数ワード線についての消し残りビット数とを比較し、両者の差が所定の閾値以上の場合には特性変動ありと判定し、消し残りビット数の差が所定の閾値よりも小さい場合には特性変動なしと判定する。
【0132】
(ステータスフェイル)
マルチプレーンにおいて、一方のプレーンのブロックBLKのイレーズ時に、イレーズを完了させることができずにイレーズ不良であることを示すイレーズステータスフェイルが生じることがある。ロジック制御回路21は、
図14のステップS43の特性変動判定において、一方のプレーンのブロックBLKに、イレーズステータスフェイルが発生したか否かを判定する。イレーズステータスフェイルが発生した場合には、ロジック制御回路21は、ステップS12において、変動有りと判定し、ステップS4において、イレーズステータスフェイルが発生していないプレーンについてのリードベリファイを実施する。
【0133】
このように、上記各例においても、リードベリファイは、特性変動判定による特性変動が生じていると判定された場合にのみ実施されることから、書き込み動作のパフォーマンスを向上させることができる。
【0134】
なお、上記説明では、ロジック制御回路21が特性変動判定を実施する例を説明したが、他のブロックBLKが実施してもよく、また、メモリコントローラ1において実施してもよい。
【0135】
このように、本実施の形態においても、第1の実施の形態と同様の効果を得ることができる。
【0136】
なお、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適当な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【符号の説明】
【0137】
1 メモリコントローラ、2 不揮発性メモリ、11 RAM、12 プロセッサ、13 ホストインターフェイス、14 ECC回路、15 メモリインターフェイス、21 NAND I/Oインターフェイス、22 制御部、23 メモリセルアレイ、24 ビット線ドライバ、25 ワード線ドライバ。