JP2006209971A - 半導体不揮発性記憶装置 - Google Patents
半導体不揮発性記憶装置 Download PDFInfo
- Publication number
- JP2006209971A JP2006209971A JP2006130990A JP2006130990A JP2006209971A JP 2006209971 A JP2006209971 A JP 2006209971A JP 2006130990 A JP2006130990 A JP 2006130990A JP 2006130990 A JP2006130990 A JP 2006130990A JP 2006209971 A JP2006209971 A JP 2006209971A
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory cells
- program
- error
- bit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Read Only Memory (AREA)
Abstract
【課題】高速なデータプログラムが可能な半導体不揮発性記憶装置を実現する。
【解決手段】ワード線単位のページプログラムにおいて、所定回数のプログラム/ベリファイ動作を繰り返し行った後にプログラム未終了メモリセルが存在する場合に、当該プログラム未終了メモリセルの個数をカウント回路40で計数し、当該個数がエラー訂正可能な所定個数以内のエラービットである場合に、プログラム未終了メモリセルを残したままデータプログラムを終了し、エラービットは外部のエラー訂正回路によりエラー訂正して救済する。したがって、ごくまれに存在する非常にプログラムの遅いメモリセルに律速されることなく、高速にデータプログラムが可能となる。
【選択図】図1
【解決手段】ワード線単位のページプログラムにおいて、所定回数のプログラム/ベリファイ動作を繰り返し行った後にプログラム未終了メモリセルが存在する場合に、当該プログラム未終了メモリセルの個数をカウント回路40で計数し、当該個数がエラー訂正可能な所定個数以内のエラービットである場合に、プログラム未終了メモリセルを残したままデータプログラムを終了し、エラービットは外部のエラー訂正回路によりエラー訂正して救済する。したがって、ごくまれに存在する非常にプログラムの遅いメモリセルに律速されることなく、高速にデータプログラムが可能となる。
【選択図】図1
Description
本発明は、電気的にデータのプログラムが可能な半導体不揮発性記憶装置に係り、特にデータプログラムおよび消去の高速化に関するものである。
NAND型フラッシュメモリ、DINOR型フラッシュメモリ等の半導体不揮発性記憶装置においては、選択するワード線に接続されたすべてのメモリセル一括にデータプログラムが行われる。
すなわち、ワード線単位でページプログラムが行われる。
すなわち、ワード線単位でページプログラムが行われる。
図7(a)、図7(b)は、それぞれNAND型、DINOR型フラッシュメモリにおける、メモリアレイ構造を示す図である。
図7(a)は、便宜上、1本のビット線に接続されたNAND列1本に4個のメモリセルが接続された場合のNAND型フラッシュメモリアレイを示す図である。
図7(a)において、BLはビット線を示し、ビット線BLに2個の選択トランジスタタST1〜ST2、および4個のメモリセルMT1〜MT4が直列接続されたNAND列が接続されている。
選択トランジスタST1〜ST2はそれぞれ選択ゲート線SL1,SL2により制御され、またメモリセルMT1〜MT4はそれぞれワード線WL1〜WL4により制御される。
図7(a)において、BLはビット線を示し、ビット線BLに2個の選択トランジスタタST1〜ST2、および4個のメモリセルMT1〜MT4が直列接続されたNAND列が接続されている。
選択トランジスタST1〜ST2はそれぞれ選択ゲート線SL1,SL2により制御され、またメモリセルMT1〜MT4はそれぞれワード線WL1〜WL4により制御される。
図7(b)は、便宜上、1本の主ビット線に接続された副ビット線1本に4個のメモリトランジスタが接続された場合のDINOR型フラッシュメモリアレイを示す図である。
図7(b)において、MBLは主ビット線、SBLは副ビット線をそれぞれ示し、主ビット線MBLおよび副ビット線SBLは、選択ゲート線SLにより制御される選択トランジスタST1を介して作動的に接続される。
副ビット線SBLは、4本のワード線WL1〜WL4と交差し、各交差位置には4個のメモリセルMT1〜MT4が配置されている。
図7(b)において、MBLは主ビット線、SBLは副ビット線をそれぞれ示し、主ビット線MBLおよび副ビット線SBLは、選択ゲート線SLにより制御される選択トランジスタST1を介して作動的に接続される。
副ビット線SBLは、4本のワード線WL1〜WL4と交差し、各交差位置には4個のメモリセルMT1〜MT4が配置されている。
また、NOR型フラッシュメモリ等の半導体不揮発性記憶装置においては、データの書き換えは、所定のブロック単位(たとえば64Kバイト程度)でデータの消去を行った後、当該消去ブロックのメモリセルに対してデータプログラムが行われる。
図8は、一般的なNOR型フラッシュメモリにおける、メモリアレイ構造およびデータ消去時のバイアス条件を示す図である。
図8のNOR型フラッシュメモリにおいては、便宜上、4本のワード線WL1〜WL4と4本のビット線BL1〜BL4との格子位置にメモリセルMT11〜MT44がマトリクス配置されている。
次に、図8のNOR型フラッシュメモリにおいて、データ消去動作について説明する。
データ消去は、図8に示すように、消去ブロックメモリアレイ内のすべてのワード線WL1〜WL4を接地レベル(0V)に、すべてのビット線BL1〜BL4をフローティング状態とし、共通ソース線VSSに高電圧(たとえば12V)の消去電圧パルスを印加する。
その結果、データプログラム時に各メモリセルに蓄積されていた電子がソース側からトンネル電流により引き抜かれて、各メモリセルのしきい値電圧Vthは、データプログラム状態の6V〜7Vから消去状態の2V〜3Vに遷移する。
データ消去は、図8に示すように、消去ブロックメモリアレイ内のすべてのワード線WL1〜WL4を接地レベル(0V)に、すべてのビット線BL1〜BL4をフローティング状態とし、共通ソース線VSSに高電圧(たとえば12V)の消去電圧パルスを印加する。
その結果、データプログラム時に各メモリセルに蓄積されていた電子がソース側からトンネル電流により引き抜かれて、各メモリセルのしきい値電圧Vthは、データプログラム状態の6V〜7Vから消去状態の2V〜3Vに遷移する。
ところで、上述したNAND型、DINOR型フラッシュメモリ等のようなワード線セクタを単位としたページプログラムを行う半導体不揮発性記憶装置においては、データのプログラムは選択ワード線に接続されたすべてのメモリセル一括にデータプログラムを行う。
しかし、選択ワード線に接続された各メモリセルは、製造プロセスに起因するサイズ等のバラツキのため、それぞれプログラム速度に差が生じる。
しかし、選択ワード線に接続された各メモリセルは、製造プロセスに起因するサイズ等のバラツキのため、それぞれプログラム速度に差が生じる。
図9は上述した各選択ワード線に接続されたメモリセル間のプログラム速度の差を示す図である。
図9において、横軸はtPROG(プログラム時間)、すなわち各メモリセルのプログラム必要時間を表わしている。
また、縦軸はN(メモリセル個数)、すなわち横軸tPROG(プログラム時間)に対応したメモリセル個数の分布頻度を表わしている。
図9において、横軸はtPROG(プログラム時間)、すなわち各メモリセルのプログラム必要時間を表わしている。
また、縦軸はN(メモリセル個数)、すなわち横軸tPROG(プログラム時間)に対応したメモリセル個数の分布頻度を表わしている。
図9に示すように、NAND型フラッシュメモリ等のようなワード線セクタを単位としたページプログラムを行う半導体不揮発性記憶装置においては、メモリセル間でプログラム必要時間tPROGに分布が生じる。
このようなプログラム速度のバラツキを考慮して、一般的なNAND型フラッシュメモリ等においては、プログラム時のしきい値電圧Vthの分布を狭く抑える観点から、プログラム動作がベリファイ動作を介して行われ、かつ当該プログラム/ベリファイ動作をプログラム終了メモリセルから順次プログラム禁止にしてすべてのメモリセルのプログラムが終了するまで繰り返し行う、いわゆるビット毎ベリファイ動作が行われる。
このようなプログラム速度のバラツキを考慮して、一般的なNAND型フラッシュメモリ等においては、プログラム時のしきい値電圧Vthの分布を狭く抑える観点から、プログラム動作がベリファイ動作を介して行われ、かつ当該プログラム/ベリファイ動作をプログラム終了メモリセルから順次プログラム禁止にしてすべてのメモリセルのプログラムが終了するまで繰り返し行う、いわゆるビット毎ベリファイ動作が行われる。
ところが図9に示すように、一般的なメモリセルの場合、プログラム必要時間tPROGは図中t0であるが、プロセス等のバラツキ要因から非常に長いプログラム必要時間tPROG、たとえば図中t1以上を要するメモリセルがごくまれに存在する場合がある。
このような場合、ごくまれに存在するプログラムの遅いメモリセルのために、上述したプログラム/ベリファイ動作の回数も、たとえば100回以上と非常に多くなり、その結果、ページプログラムを終了するのに要する時間も非常に長くなる。
このような場合、ごくまれに存在するプログラムの遅いメモリセルのために、上述したプログラム/ベリファイ動作の回数も、たとえば100回以上と非常に多くなり、その結果、ページプログラムを終了するのに要する時間も非常に長くなる。
図10は、かかる従来のNAND型フラッシュメモリ等のようなワード線セクタを単位としたページプログラムを行う半導体不揮発性記憶装置における、データプログラム時のシーケンスフローを示す図である。
以下、図10のシーケンスフローについて、順を追って説明する。
以下、図10のシーケンスフローについて、順を追って説明する。
ステップSF1でデータプログラムが開始され、最初にステップSF2でページプログラムデータがメモリアレイ内の各ビット線毎に設けられたデータラッチ回路に転送される。
次に、ステップSF3でプログラムベリファイ回数Kが0にリセットされ、プログラムパルスを印加するプログラム動作(ステップSF4)、およびベリファイ読み出し後に再プログラムデータを自動設定するベリファイ読み出し動作(ステップSF5)が連続して行われる。
次に、ステップSF6ですべてのメモリセルのプログラムが終了したかどうかの終点検出が、再プログラムデータ内に少なくとも1個以上のプログラム未終了メモリセルが残っているか否かを調べることにより行われる。
次に、ステップSF3でプログラムベリファイ回数Kが0にリセットされ、プログラムパルスを印加するプログラム動作(ステップSF4)、およびベリファイ読み出し後に再プログラムデータを自動設定するベリファイ読み出し動作(ステップSF5)が連続して行われる。
次に、ステップSF6ですべてのメモリセルのプログラムが終了したかどうかの終点検出が、再プログラムデータ内に少なくとも1個以上のプログラム未終了メモリセルが残っているか否かを調べることにより行われる。
その結果、全ビットプログラム終了の終点検出ができた場合には、データプログラムを完了する(ステップSF9)。
一方、全ビットプログラム終了の終点検出ができなかった場合には、さらにプログラムベリファイ回数Kがインクリメントされ(ステップSF7)、Kが予め設定された所定回数k0(たとえば100回程度)未満であるかどうかが調べられる(ステップSF8)。
そしてKがk0未満である場合には、上述したステップSF4〜ステップSF8のシーケンスフローが繰り返し行われ、Kがk0に到達した時点でデータプログラム失敗と判断される(ステップSF10)。
一方、全ビットプログラム終了の終点検出ができなかった場合には、さらにプログラムベリファイ回数Kがインクリメントされ(ステップSF7)、Kが予め設定された所定回数k0(たとえば100回程度)未満であるかどうかが調べられる(ステップSF8)。
そしてKがk0未満である場合には、上述したステップSF4〜ステップSF8のシーケンスフローが繰り返し行われ、Kがk0に到達した時点でデータプログラム失敗と判断される(ステップSF10)。
この所定のプログラムベリファイ回数K0は、ごくまれに存在するプログラムの遅いメモリセルのために、従来のNAND型フラッシュメモリ等の場合たとえば100回以上と非常に多くなり、その結果、ページプログラムを終了するのに要する時間も非常に長くなっていた。
また、上述したNOR型フラッシュメモリ等のような半導体不揮発性記憶装置においては、データの書き換えは、所定のブロック単位(たとえば64Kバイト程度)でデータ消去を行った後、当該ブロック単位でデータプログラムを行う。
しかし、消去ブロック単位内の各メモリセルは、製造プロセスに起因するサイズ等のバラツキのため、それぞれ消去速度に差が生じる。
しかし、消去ブロック単位内の各メモリセルは、製造プロセスに起因するサイズ等のバラツキのため、それぞれ消去速度に差が生じる。
図11は上述した消去ブロック内のメモリセル間の消去速度の差を示す図である。
図11において、横軸はterase(消去時間)、すなわち各メモリセルの消去必要時間を表わしている。
また、縦軸はN(メモリセル個数)、すなわち横軸terase(消去時間)に対応したメモリセル個数の分布頻度を表わしている。
図11において、横軸はterase(消去時間)、すなわち各メモリセルの消去必要時間を表わしている。
また、縦軸はN(メモリセル個数)、すなわち横軸terase(消去時間)に対応したメモリセル個数の分布頻度を表わしている。
図11に示すように、NOR型フラッシュメモリ等のような所定のブロック単位でデータ消去を行う半導体不揮発性記憶装置においては、メモリセル間で消去必要時間teraseに分布が生じる。
このような消去速度のバラツキを考慮して、一般的なNOR型フラッシュメモリにおいては、消去動作がベリファイ動作を介して行われ、かつ当該消去/ベリファイ動作を消去ブロック内のすべてのメモリセルのデータ消去が終了するまで繰り返し行われる。
このような消去速度のバラツキを考慮して、一般的なNOR型フラッシュメモリにおいては、消去動作がベリファイ動作を介して行われ、かつ当該消去/ベリファイ動作を消去ブロック内のすべてのメモリセルのデータ消去が終了するまで繰り返し行われる。
ところが図11に示すように、一般的なメモリセルの場合、消去必要時間teraseは図中t0であるが、プロセス等のバラツキ要因から非常に長い消去必要時間terase、たとえば図中t1以上を要するメモリセルがごくまれに存在する場合がある。
このような場合、ごくまれに存在する消去の遅いメモリセルのために、上述した消去/ベリファイ動作の回数も、たとえば100回〜1000回以上と非常に多くなり、その結果、消去動作を終了するのに要する時間も非常に長くなり、ひいてはデータの書き換えに要する時間も長くなる。
さらに、ごくまれに存在する消去の遅いメモリセルのために消去/ベリファイ動作の回数が非常に多くなると、消去の速いメモリセルが過剰消去されて当該メモリセルのしきい値電圧Vthがデプレーション状態(Vth<0)となって、誤動作の原因となる。
このような場合、ごくまれに存在する消去の遅いメモリセルのために、上述した消去/ベリファイ動作の回数も、たとえば100回〜1000回以上と非常に多くなり、その結果、消去動作を終了するのに要する時間も非常に長くなり、ひいてはデータの書き換えに要する時間も長くなる。
さらに、ごくまれに存在する消去の遅いメモリセルのために消去/ベリファイ動作の回数が非常に多くなると、消去の速いメモリセルが過剰消去されて当該メモリセルのしきい値電圧Vthがデプレーション状態(Vth<0)となって、誤動作の原因となる。
図12は、かかる従来のNOR型フラッシュメモリ等のような所定のブロック単位でデータの書き換えを行う半導体不揮発性記憶装置における、データ消去およびその後のデータプログラム時のシーケンスフローを示す図である。
以下、図12のシーケンスフローについて、順を追って説明する。
以下、図12のシーケンスフローについて、順を追って説明する。
ステップSF21でデータ消去が開始され、ステップSF22で消去ベリファイ回数Kを最初の1に設定して消去パルスを印加する消去動作(ステップSF23)、およびベリファイ読み出し動作(ステップSF24)が連続して行われる。
ステップSF24のベリファイ読み出し動作の結果、ブロック内のすべてのメモリセルの消去終了の終点検出ができた場合には(ステップSF25)、データ消去を完了して、ステップSF101のデータプログラム動作が開始される。
ステップSF24のベリファイ読み出し動作の結果、ブロック内のすべてのメモリセルの消去終了の終点検出ができた場合には(ステップSF25)、データ消去を完了して、ステップSF101のデータプログラム動作が開始される。
一方、ステップSF24のベリファイ読み出し動作の結果、ブロック内のすべてのメモリセルの消去終了の終点検出ができなかった場合には(ステップSF25)、ステップSF26において、消去ベリファイ回数Kがあらかじめ設定された所定回数K0(たとえば100〜1000回程度)未満であるか否かが調べられる。
その結果、消去ベリファイ回数Kが設定回数K0未満である場合には、さらに消去ベリファイ回数Kがインクリメントされて(ステップSF27)、上述したステップSF23〜SF27のシーケンスフローが繰り返し行われる。そして、消去ベリファイ回数Kが設定回数K0に到達した時点でデータ消去失敗と判断される(ステップSF28)。
その結果、消去ベリファイ回数Kが設定回数K0未満である場合には、さらに消去ベリファイ回数Kがインクリメントされて(ステップSF27)、上述したステップSF23〜SF27のシーケンスフローが繰り返し行われる。そして、消去ベリファイ回数Kが設定回数K0に到達した時点でデータ消去失敗と判断される(ステップSF28)。
次に、ブロック内のすべてのメモリセルの消去終了の終点検出ができた場合には、引き続いてデータプログラムが開始される。
まず、ステップSF101でメモリセルのアドレス番地Ar−NOを最初の1に設定して、当該メモリセルに対してデータ内容に応じてデータプログラムが行われ(ステップSF102)、アドレス番地Ar−NOが最終アドレス番地があるか否かが調べられる(ステップSF103)。
その結果、アドレス番地Ar−NOが最終アドレス番地でない場合には、さらにアドレス番地Ar−NOがインクリメントされて(ステップSF104)、上述したステップSF102〜SF104のシーケンスフローが繰り返し行われる。そして、アドレス番地Ar−NOが最終アドレス番地に到達した時点でデータプログラムが完了する(ステップSF105)。
まず、ステップSF101でメモリセルのアドレス番地Ar−NOを最初の1に設定して、当該メモリセルに対してデータ内容に応じてデータプログラムが行われ(ステップSF102)、アドレス番地Ar−NOが最終アドレス番地があるか否かが調べられる(ステップSF103)。
その結果、アドレス番地Ar−NOが最終アドレス番地でない場合には、さらにアドレス番地Ar−NOがインクリメントされて(ステップSF104)、上述したステップSF102〜SF104のシーケンスフローが繰り返し行われる。そして、アドレス番地Ar−NOが最終アドレス番地に到達した時点でデータプログラムが完了する(ステップSF105)。
上述したシーケンスフローにおいて、所定の消去ベリファイ回数K0は、ごくまれに存在する消去の遅いメモリセルのために、従来のNOR型フラッシュメモリ等の場合たとえば100回〜1000回程度と非常に多くなり、その結果、消去動作を終了するのに要する時間も非常に長くなり、ひいてはデータの書き換えに要する時間も長くなっていた。
さらには、上記消去の遅いメモリセルのために消去の速いメモリセルが過剰消去されて、誤動作の原因となっていた。
さらには、上記消去の遅いメモリセルのために消去の速いメモリセルが過剰消去されて、誤動作の原因となっていた。
本発明は、かかる事情に鑑みてなされたものであり、その目的は、データプログラムを高速に行うことができ、データの書き換えを高速に行うことが可能で、さらには過剰消去メモリセルの発生を防止でき、信頼性の向上を図れる半導体不揮発性記憶装置を提供することにある。
上記目的を達成するため、本発明の第1の観点は、電気的にデータの処理が行われるメモリセルがマトリクス配置された半導体不揮発性記憶装置であって、複数ビットデータを単位としたデータの処理を当該複数単位のメモリセルに対して行い、データの処理後に当該データ処理未終了メモリセルの個数を計数する手段と、前記データ処理未終了メモリセルの個数がエラー訂正可能な所定個数以内のエラービットである場合に、当該データ処理未終了メモリセルを残したままデータの処理を終了する手段とを備えている。
本発明の第2の観点は、電気的にデータのプログラムが行われるメモリセルがマトリクス配置された半導体不揮発性記憶装置であって、複数ビットデータを単位としたデータプログラムを当該複数単位のメモリセルに対して行い、データプログラム後にプログラム未終了メモリセルの個数を把握する手段と、前記プログラム未終了メモリセルの個数がエラー訂正可能な所定個数以内のエラービットである場合に、当該プログラム未終了メモリセルを残したままデータプログラムを終了する手段とを備えている。
本発明の第3の観点は、セクタ単位のページプログラムデータを各ビット線毎に設けられたデータラッチ回路に転送し、当該データに従って選択されたセクタのメモリセル一括に電気的にデータプログラムが行われるメモリセルがマトリクス配置された半導体不揮発性記憶装置であって、ページプログラムデータに従ったデータプログラムがベリファイ読み出し動作を介して複数回のプログラム動作を繰り返し行うことによりなされ、各プログラム動作毎にプログラム未終了メモリセルが存在するか否かを検知する手段と、所定回数のプログラム動作を繰り返し行った後にプログラム未終了メモリセルが存在する場合に、当該プログラム未終了メモリセルの個数を把握する手段と、前記プログラム未終了メモリセルの個数がエラー訂正可能な所定個数以内のエラービットである場合に、当該プログラム未終了メモリセルを残したままデータプログラムを終了する手段とを備えている。
好適には、上記エラービットは外部のエラー訂正手段によりエラー訂正され救済される。
本発明の第4の観点は、電気的にデータの消去およびプログラムを行うことによりデータの書き換えが可能なメモリセルがマトリクス配置された半導体不揮発性記憶装置であって、少なくとも1単位以上の複数ビットデータ単位のメモリセルに対してデータ消去を行い、データ消去後に当該各複数ビットデータ単位内の消去未終了メモリセルの個数を把握する手段と、前記消去未終了メモリセルの個数がエラー訂正可能な所定個数以内のエラービットである場合に、当該消去未終了メモリセルを残したままデータプログラムを行う手段とを備えている。
本発明の第5の観点は、電気的にデータの消去およびプログラムを行うことによりデータの書き換えが可能なメモリセルがマトリクス配置された半導体不揮発性記憶装置であって、少なくとも1単位以上の複数ビットデータ単位のメモリセルに対するデータ消去を、ベリファイ読み出し動作を介して複数回の消去電圧パルスを繰り返し印加して行い、各消去動作毎に消去未終了メモリセルが存在するか否かを検知する手段と、所定回数の消去動作を繰り返し行った後に消去未終了メモリセルが存在する場合に、各複数ビットデータ単位内の消去未終了メモリセルの個数を把握する手段と、前記消去未終了メモリセルの個数がエラー訂正可能な所定個数以内のエラービットである場合に、当該消去未終了メモリセルを残したままデータプログラムを行う手段とを備えている。
好適には、上記エラービットは、データ読み出し時に外部のエラー訂正手段によりエラー訂正され救済される。
本発明の半導体不揮発性記憶装置によれば、所定回数のデータ処理、たとえばプログラム動作を繰り返し行った後にプログラム未終了メモリセルが存在しても、当該プログラム未終了メモリセルの個数がエラー訂正可能な所定個数以内のエラービットである場合には、プログラム未終了メモリセルを残したままデータプログラムを終了する。
したがって、ごくまれに存在する非常にプログラムの遅いメモリセルに律速されることなく、高速にデータプログラムが可能となる。
したがって、ごくまれに存在する非常にプログラムの遅いメモリセルに律速されることなく、高速にデータプログラムが可能となる。
本発明によれば、高速にデータプログラムを行うことができる。
第1実施形態
図1は、本発明に係る半導体不揮発性記憶装置、たとえばNAND型フラッシュメモリの具体的な構成例を示す図である。
図1は、本発明に係る半導体不揮発性記憶装置、たとえばNAND型フラッシュメモリの具体的な構成例を示す図である。
図1において、10はメモリ本体を示し、メモリ本体10は、メモリアレイ部11、ローデコーダ12、各ビット線毎に設けられたデータラッチ回路群13、カラム選択部14、再プログラムデータ自動設定回路群15および終点検出回路16等から構成されている。
メモリアレイ11は、正規メモリアレイ11aとパリティメモリアレイ11bから構成されている。
正規メモリアレイ11aにはn本(通常は512バイト程度)の正規ビット線B1 〜Bnが配線され、パリティメモリアレイ11bにはj本(通常は10バイト程度)のパリティビット線b1 〜bjが配線されている。
なお、図中はワード線Wmを選択して、正規メモリセルMT1〜MTnおよびパリティメモリセルmT1〜mTjに対してページプログラムを行う場合を図示している。
正規メモリアレイ11aにはn本(通常は512バイト程度)の正規ビット線B1 〜Bnが配線され、パリティメモリアレイ11bにはj本(通常は10バイト程度)のパリティビット線b1 〜bjが配線されている。
なお、図中はワード線Wmを選択して、正規メモリセルMT1〜MTnおよびパリティメモリセルmT1〜mTjに対してページプログラムを行う場合を図示している。
データラッチ回路群13は、正規データラッチ回路SA1〜SAnおよびパリティデータラッチ回路sA1〜sAjから構成され、カラム選択部14は正規カラム選択部14aおよびパリティカラム選択部14bから構成されている。
カラム選択部14はデータ転送クロック信号φCLに同期して作動し、正規データラッチ回路SA1〜SAnおよびパリティデータラッチ回路sA1〜sAjにページプログラムデータをシフト転送し、またデータラッチ回路からページデータの読み出しを行う。
カラム選択部14はデータ転送クロック信号φCLに同期して作動し、正規データラッチ回路SA1〜SAnおよびパリティデータラッチ回路sA1〜sAjにページプログラムデータをシフト転送し、またデータラッチ回路からページデータの読み出しを行う。
再プログラムデータ自動設定回路群15は、各正規データラッチ回路SA1〜SAnおよびパリティデータラッチ回路sA1〜sAj毎に対応して設けられた自動設定回路15S−1〜15S−n、15s−1〜15s−jにより構成されている。
自動設定回路15S−1〜15S−n、15s−1〜15s−jは、各プログラム動作後のベリファイ読み出し動作毎に、プログラムが終了したメモリセルの接続されたデータラッチ回路にラッチされているデータを順次反転させて再プログラムデータを自動設定する。
自動設定回路15S−1〜15S−n、15s−1〜15s−jは、各プログラム動作後のベリファイ読み出し動作毎に、プログラムが終了したメモリセルの接続されたデータラッチ回路にラッチされているデータを順次反転させて再プログラムデータを自動設定する。
終点検出回路16は、各正規データラッチ回路SA1〜SAnおよびパリティデータラッチ回路sA1〜sAj毎に設けられたトランジスタT1〜TnおよびTp1〜Tpj、並びにトランジスタTset、および反転回路INV1により構成されている。
各トランジスタT1〜TnおよびT1〜Tjのゲート電極がそれぞれの正規データラッチ回路SA1〜SAnおよびパリティデータラッチ回路sA1〜sAjの反転出力に、ソース電極が接地電位に、ドレイン電極が共通接続されており、プログラム未終了セルが存在して少なくとも1個以上のデータラッチ回路の反転出力がハイレベルである場合に、共通接続された終点検出電位Vaが接地電位となり、反転回路INV1により終点検出信号ENDoutがハイレベルとして出力される。
またトランジスタTsetは、終点検出電位Vaを予めVCCレベルにプリチャージするために設けられ、終点検出に先だってプリチャージ信号φsetにより駆動される。
各トランジスタT1〜TnおよびT1〜Tjのゲート電極がそれぞれの正規データラッチ回路SA1〜SAnおよびパリティデータラッチ回路sA1〜sAjの反転出力に、ソース電極が接地電位に、ドレイン電極が共通接続されており、プログラム未終了セルが存在して少なくとも1個以上のデータラッチ回路の反転出力がハイレベルである場合に、共通接続された終点検出電位Vaが接地電位となり、反転回路INV1により終点検出信号ENDoutがハイレベルとして出力される。
またトランジスタTsetは、終点検出電位Vaを予めVCCレベルにプリチャージするために設けられ、終点検出に先だってプリチャージ信号φsetにより駆動される。
20はデータ入力部を示し、データ入力部20は、データ入力回路21とエラー検査コード発生回路22とにより構成される。
データ入力回路21は正規入力データ[Din]1 〜n をエラー検査コード発生回路22に入力し、エラー検査コード(パリティ入力データ)[Cin]1 〜j を発生する。正規入力データ[Din]1 〜n およびエラー検査コード[Cin]1 〜j により合成されるページプログラムデータは、データ転送クロック信号φCLに同期して、それぞれ正規データラッチ回路SA1〜SAnおよびパリティデータラッチ回路sA1〜sAjにシフト転送され、対応する正規メモリセルおよびパリティメモリセルにページプログラムされる。
データ入力回路21は正規入力データ[Din]1 〜n をエラー検査コード発生回路22に入力し、エラー検査コード(パリティ入力データ)[Cin]1 〜j を発生する。正規入力データ[Din]1 〜n およびエラー検査コード[Cin]1 〜j により合成されるページプログラムデータは、データ転送クロック信号φCLに同期して、それぞれ正規データラッチ回路SA1〜SAnおよびパリティデータラッチ回路sA1〜sAjにシフト転送され、対応する正規メモリセルおよびパリティメモリセルにページプログラムされる。
30はデータ出力部を示し、データ出力部30は、エラー検査回路31とデータ訂正回路32とにより構成される。
エラー検査回路31は、ページ読み出しした正規出力データ[Dout]1 〜n およびエラー検査コード(パリティ出力データ)[Cout]1 〜j により、データ復調コード[S]1 〜j を発生する。
データ訂正回路32は、正規出力データ[Dout]1 〜n およびデータ復調コード[S]1 〜j により、ページ読み出しデータ内に所定個数(たとえば1ビット)以内のエラービットが存在する場合にこれを訂正し、訂正後の正しい正規出力データ[DATA]1〜n を出力する。
エラー検査回路31は、ページ読み出しした正規出力データ[Dout]1 〜n およびエラー検査コード(パリティ出力データ)[Cout]1 〜j により、データ復調コード[S]1 〜j を発生する。
データ訂正回路32は、正規出力データ[Dout]1 〜n およびデータ復調コード[S]1 〜j により、ページ読み出しデータ内に所定個数(たとえば1ビット)以内のエラービットが存在する場合にこれを訂正し、訂正後の正しい正規出力データ[DATA]1〜n を出力する。
40はカウント回路(計数回路)を示し、カウント回路40は、所定回数のプログラムベリファイ回数(たとえば10回程度)を繰り返した後にプログラム未終了メモリセルが存在して終点検出できなかった場合、つまり少なくとも1個以上のデータラッチ回路の出力がローレベルである場合に、以下のようにプログラム未終了メモリセルの個数を計数する。
すなわち、基本データ転送クロック信号φCLに同期したベリファイページ読み出しデータDATAverの反転回路INV2の出力DATAver’をシフト入力し、最後にチェック信号φCHKの入力に応じてプログラム未終了メモリセルの個数を計数する。
すなわち、基本データ転送クロック信号φCLに同期したベリファイページ読み出しデータDATAverの反転回路INV2の出力DATAver’をシフト入力し、最後にチェック信号φCHKの入力に応じてプログラム未終了メモリセルの個数を計数する。
未終了判定回路50は、メモリ本体10の反転回路INV1の出力信号φCHKをハイレベルで入力すると、プログラム未終了メモリセルがあるものとして、プログラム未終了メモリセルの個数の計数を開始するようにチェック信号φCHKをカウント回路40に出力する。
判定回路60は、カウント回路40の出力チェック信号φCNTがハイレベルに切り換わったならば、プログラム未終了のセルが1つ以上あるものとして、図示しない制御系に出力する。
本実施形態の場合、判定回路60は、たとえばフリップフロップにより構成される。
本実施形態の場合、判定回路60は、たとえばフリップフロップにより構成される。
図2は、図1の半導体不揮発性記憶装置におけるエラー訂正手段において、1ビットエラーに対処できる正規データビット数nとパリティデータビット数(エラー検査ビット数)jとの関係を示す図である。
エラー訂正の原理、エラー検査コード発生回路22、エラー検査回路31、およびデータ訂正回路32については、本発明の骨子と直接関係しないため、ここでは詳述しない。
しかし図2によれば、512ビットの正規データビット数には10ビットのエラー検査ビット数が必要であり、したがって一般的な512ビットの正規入力データ[Din]1
〜n には10ビットのエラー検査コード[Cin]1 〜j を発生させる必要がある。
しかし図2によれば、512ビットの正規データビット数には10ビットのエラー検査ビット数が必要であり、したがって一般的な512ビットの正規入力データ[Din]1
〜n には10ビットのエラー検査コード[Cin]1 〜j を発生させる必要がある。
図3は、図1の半導体不揮発性記憶装置における、データプログラム時のシーケンスフローを示す図である。
以下、図3のシーケンスフローについて、図1の構成例等を参照しながら順を追って説明する。
以下、図3のシーケンスフローについて、図1の構成例等を参照しながら順を追って説明する。
ステップS1でデータプログラムが開始され、最初にデータ入力回路21を介して入力された正規入力データ[Din]1 〜n に基づき、エラー検査コード発生回路22によりエラー検査コード[Cin]1 〜j が発生される(ステップS2)。
そして、正規入力データ[Din]1 〜n およびエラー検査コード[Cin]1 〜j は正規カラム選択14aおよびパリティカラム選択14bに入力され、合成したページプログラムデータがメモリアレイ内の各ビット線毎に設けられた正規データラッチ回路SA1〜SAnおよびパリティデータラッチ回路sA1〜sAjに転送される(ステップS3)。
そして、正規入力データ[Din]1 〜n およびエラー検査コード[Cin]1 〜j は正規カラム選択14aおよびパリティカラム選択14bに入力され、合成したページプログラムデータがメモリアレイ内の各ビット線毎に設けられた正規データラッチ回路SA1〜SAnおよびパリティデータラッチ回路sA1〜sAjに転送される(ステップS3)。
次に、図示しないプログラム制御系によりステップS4でプログラムベリファイ回数Kが0にリセットされ、プログラムパルスを印加するプログラム動作が行われ(ステップS5)、ベリファイ読み出し後に、自動設定回路15S−1〜15S−n、15s−1〜15s−jにおいてプログラム終了メモリセルの正規データラッチ回路SA1〜SAnおよびパリティデータラッチ回路sA1〜sAj内のデータを順次反転させて再プログラムデータを自動設定するベリファイ読み出し動作(ステップS6)が連続して行われる。
次に、ステップS7で終了検出回路16および未終了判定回路50において、すべてのメモリセルのプログラムが終了したかどうかの終点検出が、再プログラムデータ内に少なくとも1個以上のプログラム未終了メモリセルに対応するデータが残っているか否かを調べることにより行われる。
その結果、全ビットプログラム終了の終点検出ができた場合には、データプログラムを完了する(ステップS12)。
しかし、全ビットプログラム終了の終点検出ができなかった場合には、さらにプログラムベリファイ回数Kがインクリメントされて(ステップS8)、Kが予め設定された所定回数k0(たとえば10回程度)未満であるかどうかが調べられる(ステップS9)。
そしてKがk0未満である場合には、上述したステップS5〜S9のシーケンスフローが繰り返し行われ、Kがk0に到達した時点でステップS10に進む。
しかし、全ビットプログラム終了の終点検出ができなかった場合には、さらにプログラムベリファイ回数Kがインクリメントされて(ステップS8)、Kが予め設定された所定回数k0(たとえば10回程度)未満であるかどうかが調べられる(ステップS9)。
そしてKがk0未満である場合には、上述したステップS5〜S9のシーケンスフローが繰り返し行われ、Kがk0に到達した時点でステップS10に進む。
次にステップS10では、データラッチ回路内のデータがページ読み出しされて、プログラム未終了メモリセルの個数がカウント回路40でカウントされる。次に、ステップS11おいて、計数したプログラム未終了メモリセルの個数がエラー訂正可能な所定個数(たとえば1個)以内であるかどうかが調べられる。
その結果、プログラム未終了メモリセルの個数がエラー訂正可能な所定個数以内である場合にはデータプログラムを完了し(ステップS12)、所定個数を超えている場合にはデータプログラム失敗と判断される(ステップS13)。
その結果、プログラム未終了メモリセルの個数がエラー訂正可能な所定個数以内である場合にはデータプログラムを完了し(ステップS12)、所定個数を超えている場合にはデータプログラム失敗と判断される(ステップS13)。
以上のシーケンスフローによりデータプログラムが行われた本発明の半導体不揮発性記憶装置においては、データ読み出し時に、エラー検査回路31およびデータ訂正回路32とによりプログラム未終了メモリセルのエラー訂正がなされ、正しい正規データ[DATA]1 〜n が読み出される。
以上説明したように、本第1の実施形態に係る半導体不揮発性記憶装置によれば、所定回数のプログラム動作を繰り返し行った後にプログラム未終了メモリセルが存在しても、当該プログラム未終了メモリセルの個数がエラー訂正手段により訂正可能な所定個数以内のエラービットである場合には、プログラム未終了メモリセルを残したままデータプログラムを終了する。
したがって、ごくまれに存在する非常にプログラムの遅いメモリセルに律速されることなく、高速にデータプログラムが可能となる。
したがって、ごくまれに存在する非常にプログラムの遅いメモリセルに律速されることなく、高速にデータプログラムが可能となる。
第2実施形態
図4は、本発明に係る半導体不揮発性記憶装置、たとえばNOR型フラッシュメモリの具体的な構成例を示す図である。
図4は、本発明に係る半導体不揮発性記憶装置、たとえばNOR型フラッシュメモリの具体的な構成例を示す図である。
すなわち、図4において、100はメモリ本体を示し、メモリ本体100は、メモリアレイ部111、ローデコーダ112、各ビット線毎に設けられたデータラッチ回路群113、カラム選択部114、再プログラムデータ自動設定回路群115および終点検出回路116等から構成されている。
メモリアレイ111は、正規メモリアレイ111aとパリティメモリアレイ111bとから構成されている。
正規メモリアレイ111aにはn本(通常は512バイト程度)の正規ビット線B1 〜Bnが配線され、パリティメモリアレイ111bにはj本(通常は10バイト程度)のパリティビット線b1 〜bjが配線されている。
なお、図中はワード線Wmを選択して、正規メモリセルMT1〜MTnおよびパリティメモリセルmT1〜mTjに対してページ読み出しを行う場合を図示している。
正規メモリアレイ111aにはn本(通常は512バイト程度)の正規ビット線B1 〜Bnが配線され、パリティメモリアレイ111bにはj本(通常は10バイト程度)のパリティビット線b1 〜bjが配線されている。
なお、図中はワード線Wmを選択して、正規メモリセルMT1〜MTnおよびパリティメモリセルmT1〜mTjに対してページ読み出しを行う場合を図示している。
データラッチ回路群113は、正規データラッチ回路SA1〜SAnおよびパリティデータラッチ回路sA1〜sAjから構成され、カラム選択部114は正規カラム選択部114aおよびパリティカラム選択部114bから構成されている。
カラム選択部114はデータ転送クロック信号φCLに同期して作動し、正規データラッチ回路SA1〜SAnおよびパリティデータラッチ回路sA1〜sAjにページプログラムデータをシフト転送し、またデータラッチ回路からワード線単位のページデータの読み出しを行う。
カラム選択部114はデータ転送クロック信号φCLに同期して作動し、正規データラッチ回路SA1〜SAnおよびパリティデータラッチ回路sA1〜sAjにページプログラムデータをシフト転送し、またデータラッチ回路からワード線単位のページデータの読み出しを行う。
再プログラムデータ自動設定回路群115は、各正規データラッチ回路SA1〜SAnおよびパリティデータラッチ回路sA1〜sAj毎に対応して設けられた自動設定回路115S−1〜115S−n、115s−1〜115s−jにより構成されている。
自動設定回路115S−1〜115S−n、115s−1〜115s−jは、各プログラム動作後のベリファイ読み出し動作毎に、プログラムが終了したメモリセルの接続されたデータラッチ回路にラッチされているデータを順次反転させて再プログラムデータを自動設定する。
自動設定回路115S−1〜115S−n、115s−1〜115s−jは、各プログラム動作後のベリファイ読み出し動作毎に、プログラムが終了したメモリセルの接続されたデータラッチ回路にラッチされているデータを順次反転させて再プログラムデータを自動設定する。
終点検出回路116は、各正規データラッチ回路SA1〜SAnおよびパリティデータラッチ回路sA1〜sAj毎に設けられたトランジスタT1〜TnおよびTp1〜Tpj、並びにトランジスタTset、および反転回路INV100により構成されている。
各トランジスタT1〜TnおよびTp1〜Tpjのゲート電極がそれぞれの正規データラッチ回路SA1〜SAnおよびパリティデータラッチ回路sA1〜sAjの反転出力に、ソース電極が接地電位に、ドレイン電極が共通接続されており、消去未終了セルが存在して少なくとも1個以上のデータラッチ回路の反転出力がハイレベルである場合に、共通接続された終点検出電位Vaが接地電位となり、反転回路INV1により終点検出信号ENDoutがハイレベルとして出力される。
またトランジスタTsetは、終点検出電位Vaを予めVCCレベルにプリチャージするために設けられ、終点検出に先だってプリチャージ信号φsetにより駆動される。
各トランジスタT1〜TnおよびTp1〜Tpjのゲート電極がそれぞれの正規データラッチ回路SA1〜SAnおよびパリティデータラッチ回路sA1〜sAjの反転出力に、ソース電極が接地電位に、ドレイン電極が共通接続されており、消去未終了セルが存在して少なくとも1個以上のデータラッチ回路の反転出力がハイレベルである場合に、共通接続された終点検出電位Vaが接地電位となり、反転回路INV1により終点検出信号ENDoutがハイレベルとして出力される。
またトランジスタTsetは、終点検出電位Vaを予めVCCレベルにプリチャージするために設けられ、終点検出に先だってプリチャージ信号φsetにより駆動される。
120はデータ入力部を示し、データ入力部120は、データ入力回路121とエラー検査コード発生回路122とにより構成される。
データ入力回路121は正規入力データ[Din]1 〜n をエラー検査コード発生回路122に入力し、エラー検査コード(パリティ入力データ)[Cin]1 〜j を発生する。正規入力データ[Din]1 〜n およびエラー検査コード[Cin]1 〜j により合成されるワード線単位のページプログラムデータは、データ転送クロック信号φCLに同期して、それぞれ正規データラッチ回路SA1〜SAnおよびパリティデータラッチ回路sA1〜sAjにシフト転送され、対応する正規メモリセルおよびパリティメモリセルに順次データプログラムされる。
データ入力回路121は正規入力データ[Din]1 〜n をエラー検査コード発生回路122に入力し、エラー検査コード(パリティ入力データ)[Cin]1 〜j を発生する。正規入力データ[Din]1 〜n およびエラー検査コード[Cin]1 〜j により合成されるワード線単位のページプログラムデータは、データ転送クロック信号φCLに同期して、それぞれ正規データラッチ回路SA1〜SAnおよびパリティデータラッチ回路sA1〜sAjにシフト転送され、対応する正規メモリセルおよびパリティメモリセルに順次データプログラムされる。
130はデータ出力部を示し、データ出力部130は、エラー検査回路131とデータ訂正回路132とにより構成される。
エラー検査回路131は、ページ読み出しした正規出力データ[Dout]1 〜n およびエラー検査コード(パリティ出力データ)[Cout]1 〜j により、データ復調コード[S]1 〜j を発生する。
データ訂正回路132は、正規出力データ[Dout]1 〜n およびデータ復調コード[S]1 〜j により、ページ読み出しデータ内に所定個数(たとえば1ビット)以内のエラービットが存在する場合にこれを訂正し、訂正後の正しい正規出力データ[DATA]1 〜n を出力する。
エラー検査回路131は、ページ読み出しした正規出力データ[Dout]1 〜n およびエラー検査コード(パリティ出力データ)[Cout]1 〜j により、データ復調コード[S]1 〜j を発生する。
データ訂正回路132は、正規出力データ[Dout]1 〜n およびデータ復調コード[S]1 〜j により、ページ読み出しデータ内に所定個数(たとえば1ビット)以内のエラービットが存在する場合にこれを訂正し、訂正後の正しい正規出力データ[DATA]1 〜n を出力する。
140はカウント回路(計数回路)を示し、カウント回路140は、所定回数の消去ベリファイ回数(たとえば10回〜数10回程度)を繰り返した後に消去ブロック内の各ページ内に消去未終了メモリセルが存在して終点検出できなかった場合、つまり各ページ毎のベリファイ読み出し時に1個以上のデータラッチ回路の出力がハイレベルである場合に、以下のように消去未終了メモリセルの個数を計数する。
すなわち、基本データ転送クロック信号φCLに同期したベリファイページ読み出しデータDATAverをシフト入力し、最後にチェック信号φCHKの入力に応じて消去未終了メモリセルの個数を計数する。
すなわち、基本データ転送クロック信号φCLに同期したベリファイページ読み出しデータDATAverをシフト入力し、最後にチェック信号φCHKの入力に応じて消去未終了メモリセルの個数を計数する。
未終了判定回路150は、メモリ本体100の反転回路INV100の出力信号φCHKをハイレベルで入力すると、消去未終了メモリセルがあるものとして、消去未終了メモリセルの個数の計数を開始するようにチェック信号φCHKをカウント回路140に出力する。
判定回路160は、カウント回路140の出力チェック信号φCNTがハイレベルに切り換わったならば、消去未終了のセルが1つ以上あるものとして、図示しない制御系に出力する。
本実施例の場合も、判定回路160は、たとえばフリップフロップにより構成される。
本実施例の場合も、判定回路160は、たとえばフリップフロップにより構成される。
図4の半導体不揮発性記憶装置におけるエラー訂正手段において、1ビットエラーに対処できる正規データビット数nとパリティデータビット数(エラー検査ビット数)jとの関係は、第1実施例の場合と同様に、図2に示すような関係である。
エラー訂正の原理、エラー検査コード発生回路122、エラー検査回路131、およびデータ訂正回路132については、本発明の骨子と直接関係しないため、ここでは詳述しない。
しかし図2によれば、512ビットの正規データビット数には10ビットのエラー検査ビット数が必要である。
したがって、ワード線を512バイトページサイズとして128ページの64Kバイトで消去ブロック単位が構成されている場合、各ページ毎で、512バイトの正規入力データ[Din]1 〜n には10ビットのエラー検査コード[Cin]1 〜j を発生させる必要がある。
しかし図2によれば、512ビットの正規データビット数には10ビットのエラー検査ビット数が必要である。
したがって、ワード線を512バイトページサイズとして128ページの64Kバイトで消去ブロック単位が構成されている場合、各ページ毎で、512バイトの正規入力データ[Din]1 〜n には10ビットのエラー検査コード[Cin]1 〜j を発生させる必要がある。
図5は、図4の半導体不揮発性記憶装置においてデータの書き換えを行う場合データ消去時のシーケンスフローを示す図である。
また、図6は、その後のデータプログラム時のシーケンスフローを示す図である。
以下、図5および図6のシーケンスフローについて、図4の構成例等を参照しながら順を追って説明する。
また、図6は、その後のデータプログラム時のシーケンスフローを示す図である。
以下、図5および図6のシーケンスフローについて、図4の構成例等を参照しながら順を追って説明する。
まず、図5のデータ消去時のシーケスフローについて説明する。
ステップS21でデータ消去が開始され、ステップS22で消去ベリファイ回数Kを最初の1に設定して消去パルスを印加する消去動作(ステップS23)、およびベリファイ読み出し動作(ステップS24)が連続して行われる。
ステップS24のベリファイ読み出し動作の結果、ブロック内のすべてのメモリセルの消去終了の終点検出ができた場合には(ステップS25)、データ消去を完了する。
ステップS21でデータ消去が開始され、ステップS22で消去ベリファイ回数Kを最初の1に設定して消去パルスを印加する消去動作(ステップS23)、およびベリファイ読み出し動作(ステップS24)が連続して行われる。
ステップS24のベリファイ読み出し動作の結果、ブロック内のすべてのメモリセルの消去終了の終点検出ができた場合には(ステップS25)、データ消去を完了する。
一方、ステップS24のベリファイ読み出し動作の結果、ブロック内のすべてのメモリセルの消去終了の終点検出ができなかった場合には(ステップS25)、ステップS26において、消去ベリファイ回数Kがあらかじめ設定された所定回数K0(たとえば100〜1000回程度)未満であるか否かが調べられる。
その結果、消去ベリファイ回数Kが設定回数K0未満である場合には、さらに消去ベリファイ回数Kがインクリメントされて(ステップS27)、上述したステップS23〜S27のシーケンスフローが繰り返し行われる。そして、消去ベリファイ回数Kが設定回数K0に到達した時点で消去未終了メモリセルが存在するものとしてステップS28の処理に移行する。
その結果、消去ベリファイ回数Kが設定回数K0未満である場合には、さらに消去ベリファイ回数Kがインクリメントされて(ステップS27)、上述したステップS23〜S27のシーケンスフローが繰り返し行われる。そして、消去ベリファイ回数Kが設定回数K0に到達した時点で消去未終了メモリセルが存在するものとしてステップS28の処理に移行する。
ステップS28において、消去ブロック内のページ番地Pg−NOをまず最初の1に設定して、データラッチ回路の消去データをページ読み出しして、消去未終了メモリセルの個数がカウントされる(ステップS29)。
次に、ステップS30で、計数した消去未終了メモリセルの個数がエラー訂正可能ま所定個数(たとえば1個)以内であるか否かが調べられる。
その結果、消去未終了メモリセルの個数がエラー訂正可能な所定個数を超えてる場合にはデータ消去失敗と判断される(ステップS34)。
一方、消去未終了メモリセルの個数がエラー訂正可能な所定個数以内である場合には、ページ番地Pg−NOが最終アドレス番地であるか否かが調べられる(ステップS31)。
そして、ページ番地Pg−NOが最終アドレス番地でない場合には、さらにページ番地Pg−NOがインクリメントされて(ステップS32)、上述したステップS29〜S32のシーケンスフローが繰り返し行われる。そして、ページ番地Pg−NOが最終ページ番地に到達した時点で、データ消去完了と判断される(ステップS33)。
その結果、消去未終了メモリセルの個数がエラー訂正可能な所定個数を超えてる場合にはデータ消去失敗と判断される(ステップS34)。
一方、消去未終了メモリセルの個数がエラー訂正可能な所定個数以内である場合には、ページ番地Pg−NOが最終アドレス番地であるか否かが調べられる(ステップS31)。
そして、ページ番地Pg−NOが最終アドレス番地でない場合には、さらにページ番地Pg−NOがインクリメントされて(ステップS32)、上述したステップS29〜S32のシーケンスフローが繰り返し行われる。そして、ページ番地Pg−NOが最終ページ番地に到達した時点で、データ消去完了と判断される(ステップS33)。
次に、図6のデータプログラム時のシーケンスフローについて説明する。
データの消去が完了した場合、(図3のステップS33)には、引き続いてデータプログラムが開始される(ステップS101)。
まず、ステップS102でブロック内のページ番地Pg−NOをまず最初の1に設定して、当該ページの正規入力データ[Din]1 〜n に基づき、エラー検査コード発生回路22によりエラー検査コード[Cin]1 〜j が発生される(ステッS103)。
次に、当該ページ内でメモリセルのアドレス番地Pg−NOを最初の1に設定して(ステップS104)、当該メモリセルに対してデータ内容に応じてデータプログラムが行われ(ステップS105)、アドレス番地Ar−NOが最終アドレス番地であるか否かが調べられる(ステップS106)。
その結果、アドレス番地Ar−NOが最終アドレス番地でない場合には、さらにアドレス番地Ar−NOがインクリメントされて(ステップS107)、上述したステップS103〜S107のシーケンスフローが繰り返し行われる。そして、アドレス番地Ar−NOが最終アドレス番地に到達した時点で当該ページのデータプログラムが完了する。
データの消去が完了した場合、(図3のステップS33)には、引き続いてデータプログラムが開始される(ステップS101)。
まず、ステップS102でブロック内のページ番地Pg−NOをまず最初の1に設定して、当該ページの正規入力データ[Din]1 〜n に基づき、エラー検査コード発生回路22によりエラー検査コード[Cin]1 〜j が発生される(ステッS103)。
次に、当該ページ内でメモリセルのアドレス番地Pg−NOを最初の1に設定して(ステップS104)、当該メモリセルに対してデータ内容に応じてデータプログラムが行われ(ステップS105)、アドレス番地Ar−NOが最終アドレス番地であるか否かが調べられる(ステップS106)。
その結果、アドレス番地Ar−NOが最終アドレス番地でない場合には、さらにアドレス番地Ar−NOがインクリメントされて(ステップS107)、上述したステップS103〜S107のシーケンスフローが繰り返し行われる。そして、アドレス番地Ar−NOが最終アドレス番地に到達した時点で当該ページのデータプログラムが完了する。
次に、ステップS108でページ番地Pg−NOが最終番地であるか否かが調べられる。
その結果、アドレス番地Pg−NOが最終番地でない場合には、さらにページ番地Pg−NOがインクリメントされて(ステップS109)、上述したステップS103〜S109のシーケンスフローが繰り返し行われる。そして、アドレス番地Ar−NOが最終アドレス番地に到達した時点で当該ページのデータプログラムが完了する(S110)。
その結果、アドレス番地Pg−NOが最終番地でない場合には、さらにページ番地Pg−NOがインクリメントされて(ステップS109)、上述したステップS103〜S109のシーケンスフローが繰り返し行われる。そして、アドレス番地Ar−NOが最終アドレス番地に到達した時点で当該ページのデータプログラムが完了する(S110)。
以上のシーケンスフローによりデータの書き換えが行われた本発明の半導体不揮発性記憶装置においては、データ読み出し時に、エラー検査回路31およびデータ訂正回路32とにより消去未終了メモリセルのエラー訂正がなされ、正しい正規データ[DATA]1
〜n が読み出される。
〜n が読み出される。
以上説明したように、本第2の実施形態に係る半導体不揮発性記憶装置によれば、所定回数の消去動作を繰り返し行った後に消去未終了メモリセルが存在しても、当該消去未終了メモリセルの個数がエラー訂正手段により訂正可能な所定個数以内のエラービットである場合には、消去未終了メモリセルを残したままデータプログラムを行う。
したがって、ごくまれに存在する非常に消去の遅いメモリセルに律速されることなく、高速にデータプログラムが可能となり、ひいては、データの書き換えを高速に行うことができる。
さらには、消去の速いメモリセルが過剰消去されることを防止でき、信頼性の高い半導体不揮発性記憶装置を実現することができる。
したがって、ごくまれに存在する非常に消去の遅いメモリセルに律速されることなく、高速にデータプログラムが可能となり、ひいては、データの書き換えを高速に行うことができる。
さらには、消去の速いメモリセルが過剰消去されることを防止でき、信頼性の高い半導体不揮発性記憶装置を実現することができる。
B1〜Bn…正規ビット線、b1〜bj…パリティビット線、Wm…選択ワード線、MT1〜MTn…正規メモリセル、mT1〜mTj…パリティメモリセル、SA1〜SAn…正規データラッチ回路、sA1〜sAj…パリティデータラッチ回路、[Din]1 〜n …正規入力データ、[Dout]1 〜n …正規出力データ、[DATA]1 〜n …エラー訂正後の正規出力データ、[Cin]1 〜j …入力エラー検査コード、[Cout]1〜j …出力エラー検査コード、[S]1 〜j …データ復調コード、DATAver…ベリファイページ読み出しデータ、φCL…データ転送クロック信号、φcheck…チェック信号、φset…プリチャージ信号、ENDout…終点検出信号、Va…終点検出電位、INV1〜INV2,INV100…反転回路、10,100…メモリ本体、11,111…メモリアレイ部、11a,111a…正規メモリアレイ、11b,111b…パリティメモリアレイ、12,112…ローデコーダ、13,113…データラッチ回路、14,114…カラム選択部、14a,114a…正規カラム選択部、14b,114b…パリティカラム選択部、15,115…再プログラムデータ自動設定回路、16,116…終点検出回路、20,120…データ入力部、21,121…データ入力回路、22,122…エラー検査コード発生回路、30,130…データ出力部、31,131…エラー検査回路、32,132…データ訂正回路、40,140…カウント回路、50,150…未終了判定回路、60,160…判定回路。
Claims (16)
- 電気的にデータの処理が行われるメモリセルがマトリクス配置された半導体不揮発性記憶装置であって、
複数ビットデータを単位としたデータの処理を当該複数単位のメモリセルに対して行い、データの処理後に当該データ処理未終了メモリセルの個数を計数する手段と、
前記データ処理未終了メモリセルの個数がエラー訂正可能な所定個数以内のエラービットである場合に、当該データ処理未終了メモリセルを残したままデータの処理を終了する手段と
を備えた半導体不揮発性記憶装置。 - 上記エラービットは外部のエラー訂正手段によりエラー訂正され救済される
請求項1記載の半導体不揮発性記憶装置。 - 電気的にデータのプログラムが行われるメモリセルがマトリクス配置された半導体不揮発性記憶装置であって、
複数ビットデータを単位としたデータプログラムを当該複数単位のメモリセルに対して行い、データプログラム後にプログラム未終了メモリセルの個数を把握する手段と、
前記プログラム未終了メモリセルの個数がエラー訂正可能な所定個数以内のエラービットである場合に、当該プログラム未終了メモリセルを残したままデータプログラムを終了する手段と
を備えた半導体不揮発性記憶装置。 - 上記エラービットは外部のエラー訂正手段によりエラー訂正され救済される
請求項3記載の半導体不揮発性記憶装置。 - セクタ単位のページプログラムデータを各ビット線毎に設けられたデータラッチ回路に転送し、当該データに従って選択されたセクタのメモリセル一括に電気的にデータプログラムが行われるメモリセルがマトリクス配置された半導体不揮発性記憶装置であって、
ページプログラムデータに従ったデータプログラムがベリファイ読み出し動作を介して複数回のプログラム動作を繰り返し行うことによりなされ、各プログラム動作毎にプログラム未終了メモリセルが存在するか否かを検知する手段と、
所定回数のプログラム動作を繰り返し行った後にプログラム未終了メモリセルが存在する場合に、当該プログラム未終了メモリセルの個数を把握する手段と、
前記プログラム未終了メモリセルの個数がエラー訂正可能な所定個数以内のエラービットである場合に、当該プログラム未終了メモリセルを残したままデータプログラムを終了する手段と
を備えた半導体不揮発性記憶装置。 - 上記エラービットは外部のエラー訂正手段によりエラー訂正され救済される
請求項5記載の半導体不揮発性記憶装置。 - 上記セクタ単位はワード線単位である
請求項5記載の半導体不揮発性記憶装置。 - 前記プログラム未終了メモリセルの検知手段は、各プログラム動作後のベリファイ読み出し動作毎に、プログラムが終了したメモリセルの接続されたデータラッチ回路にラッチされているデータを順次反転させて再プログラムデータを自動設定する手段と、
前記再プログラムデータの自動設定後に、プログラム未終了のデータがラッチされているデータラッチ回路が少なくとも1個以上存在するか否かを検出する終点検出手段と
を備えた請求項5記載の半導体不揮発性記憶装置。 - 前記プログラム未終了メモリセルを把握する手段は、一定のクロックパルスに同期したカラムデコーダの動作によりページ読み出しし、当該ページ読み出しデータを順次計数回路にシフト転送してプログラム未終了のデータの個数をカウントする
請求項5記載の半導体不揮発性記憶装置。 - 前記メモリセルがマトリクス配置されたメモリアレイは、複数のメモリセルが直列接続されたNAND型構造をなす
請求項5記載の半導体不揮発性記憶装置。 - 電気的にデータの消去およびプログラムを行うことによりデータの書き換えが可能なメモリセルがマトリクス配置された半導体不揮発性記憶装置であって、
少なくとも1単位以上の複数ビットデータ単位のメモリセルに対してデータ消去を行い、データ消去後に当該各複数ビットデータ単位内の消去未終了メモリセルの個数を把握する手段と、
前記消去未終了メモリセルの個数がエラー訂正可能な所定個数以内のエラービットである場合に、当該消去未終了メモリセルを残したままデータプログラムを行う手段と
を備えた半導体不揮発性記憶装置。 - 上記エラービットは、データ読み出し時に外部のエラー訂正手段によりエラー訂正され救済される
請求項11記載の半導体不揮発性記憶装置。 - 電気的にデータの消去およびプログラムを行うことによりデータの書き換えが可能なメモリセルがマトリクス配置された半導体不揮発性記憶装置であって、
少なくとも1単位以上の複数ビットデータ単位のメモリセルに対するデータ消去を、ベリファイ読み出し動作を介して複数回の消去電圧パルスを繰り返し印加して行い、各消去動作毎に消去未終了メモリセルが存在するか否かを検知する手段と、
所定回数の消去動作を繰り返し行った後に消去未終了メモリセルが存在する場合に、各複数ビットデータ単位内の消去未終了メモリセルの個数を把握する手段と、
前記消去未終了メモリセルの個数がエラー訂正可能な所定個数以内のエラービットである場合に、当該消去未終了メモリセルを残したままデータプログラムを行う手段と
を備えた半導体不揮発性記憶装置。 - 上記エラービットは、データ読み出し時に外部のエラー訂正手段によりエラー訂正され救済される
請求項13記載の半導体不揮発性記憶装置。 - 前記複数ビットデータ単位のメモリセルは、ワード線毎のページ単位のメモリセルである
請求項13記載の半導体不揮発性記憶装置。 - 前記消去未終了メモリセルを把握する手段は、一定のクロックパルスに同期したカラムデコーダの動作によりページ読み出しし、当該ページ読み出しデータを順次計数回路にシフト転送してプログラム未終了のデータの個数をカウントする
請求項13記載の半導体不揮発性記憶装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006130990A JP2006209971A (ja) | 1996-12-03 | 2006-05-10 | 半導体不揮発性記憶装置 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP32301196 | 1996-12-03 | ||
JP32429396 | 1996-12-04 | ||
JP2006130990A JP2006209971A (ja) | 1996-12-03 | 2006-05-10 | 半導体不揮発性記憶装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP05576997A Division JP3941149B2 (ja) | 1995-12-04 | 1997-03-11 | 半導体不揮発性記憶装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006209971A true JP2006209971A (ja) | 2006-08-10 |
JP2006209971A5 JP2006209971A5 (ja) | 2007-07-26 |
Family
ID=36966592
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006130990A Pending JP2006209971A (ja) | 1996-12-03 | 2006-05-10 | 半導体不揮発性記憶装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006209971A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010500699A (ja) * | 2006-08-31 | 2010-01-07 | インテル・コーポレーション | メモリデバイス内のセクタごとに許容できるビットエラー |
JP2011008913A (ja) * | 2007-02-20 | 2011-01-13 | Sandisk Corp | 不揮発性記憶装置のための可変書き込み |
JP2011123964A (ja) * | 2009-12-11 | 2011-06-23 | Toshiba Corp | 半導体記憶装置 |
JP2012069180A (ja) * | 2010-09-21 | 2012-04-05 | Toshiba Corp | 半導体記憶装置 |
US8427871B2 (en) | 2009-08-27 | 2013-04-23 | Samsung Electronics Co., Ltd. | Nonvolatile memory device, memory system incorporating same, and method of operating same |
-
2006
- 2006-05-10 JP JP2006130990A patent/JP2006209971A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010500699A (ja) * | 2006-08-31 | 2010-01-07 | インテル・コーポレーション | メモリデバイス内のセクタごとに許容できるビットエラー |
JP2011008913A (ja) * | 2007-02-20 | 2011-01-13 | Sandisk Corp | 不揮発性記憶装置のための可変書き込み |
US8427871B2 (en) | 2009-08-27 | 2013-04-23 | Samsung Electronics Co., Ltd. | Nonvolatile memory device, memory system incorporating same, and method of operating same |
JP2011123964A (ja) * | 2009-12-11 | 2011-06-23 | Toshiba Corp | 半導体記憶装置 |
JP2012069180A (ja) * | 2010-09-21 | 2012-04-05 | Toshiba Corp | 半導体記憶装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3941149B2 (ja) | 半導体不揮発性記憶装置 | |
US8037381B2 (en) | Error detection, documentation, and correction in a flash memory device | |
US7047455B2 (en) | Memory with element redundancy | |
TWI496152B (zh) | 非揮發性半導體記憶裝置及其寫入方法 | |
US7417899B2 (en) | Method of verifying flash memory device | |
KR100933859B1 (ko) | 플래시 메모리 소자 및 그것의 프로그램 방법 | |
JP4901348B2 (ja) | 半導体記憶装置およびその制御方法 | |
US8605512B2 (en) | Nonvolatile semiconductor memory device and method of operating a nonvolatile memory device | |
US20070008783A1 (en) | Erase verify for non-volatile memory | |
US7437625B2 (en) | Memory with element redundancy | |
JP4560073B2 (ja) | 不揮発性半導体記憶装置 | |
JP5085058B2 (ja) | プログラムの検証読み取り中に列スキャンを通じてプログラム時間を短縮させうるフラッシュメモリ装置のプログラム方法 | |
JP2006209971A (ja) | 半導体不揮発性記憶装置 | |
US7640465B2 (en) | Memory with element redundancy | |
JP2005018983A (ja) | 半導体不揮発性記憶装置およびメモリシステム | |
JP2011253579A (ja) | 半導体記憶装置 | |
TWI796099B (zh) | 半導體裝置及抹除方法 | |
KR100486132B1 (ko) | Ecc를이용한신속한데이터프로그래밍및소거기능을가지는불휘발성반도체기억장치 | |
US6891756B2 (en) | Flash memory comprising an erase verify algorithm integrated into a programming algorithm | |
KR100648249B1 (ko) | 소거 시간을 단축시킬 수 있는 불 휘발성 메모리 장치의소거 방법 | |
US11443814B1 (en) | Memory structure with marker bit and operation method thereof | |
JP2008159134A (ja) | 不揮発性半導体記憶装置 | |
JPH08203295A (ja) | 半導体不揮発性記憶装置 | |
JPH07220486A (ja) | 半導体不揮発性記憶装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060510 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070606 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070731 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080610 |