(57)【要約】【課題】  プログラム動作で消去が起こってしまうという現象を避けることができる半導体装置を提供する。【解決手段】  複数の異なるしきい値を有するメモリセルを含むメモリ部と、入力された書き込みデータを書き込もうとするメモリセルから既存データをベリファイ用センスアンプを利用して読み出す読出回路と、前記書き込みデータと前記メモリセルの既存データを比較し、書き込み動作で消去動作が起こるパターンを検出する検出回路とを有する半導体装置である。書き込み動作で消去動作が起こるパターンを禁止動作とし、この禁止動作が認識されると書き込みコマンドによる書き込み動作を開始せずに強制終了させる。【選択図】図１
2010267382.tif 000002
【特許請求の範囲】
【請求項１】
複数の異なるしきい値を有するメモリセルを含むメモリ部と、
入力された書き込みデータを書き込もうとするメモリセルから既存データを読み出す読出回路と、
前記書き込みデータと前記メモリセルの既存データを比較し、書き込み動作で消去動作が起こるパターンを検出する検出回路と、
ベリファイ用センスアンプとを有し、前記読出回路は前記ベリファイ用センスアンプを利用し、かつベリファイ用のリファレンスセルとは異なるリファレンスセルを用いて、前記メモリセルから既存データを読み出す半導体装置。
【請求項２】
複数の異なるしきい値を有するメモリセルを含むメモリ部と、
入力された書き込みデータを書き込もうとするメモリセルから既存データを読み出す読出回路と、
前記書き込みデータと前記メモリセルの既存データを比較し、書き込み動作で消去動作が起こるパターンを検出する検出回路と、
ベリファイ用センスアンプとを有し、前記読出回路は前記ベリファイ用センスアンプを利用し、かつベリファイ用のリファレンスセルを用いて、前記メモリセルから既存データを読み出す半導体装置。
【請求項３】
前記ベリファイ用センスアンプは、前記メモリセルの既存データの読み出しレベルをシフトさせるトランジスタを含む請求項２記載の半導体装置。
【請求項４】
複数の異なるしきい値を有するメモリセルを含むメモリ部と、
入力された書き込みデータを書き込もうとするメモリセルから既存データを読み出す読出回路と、
前記書き込みデータと前記メモリセルの既存データを比較し、書き込み動作で消去動作が起こるパターンを検出する検出回路と、
ベリファイ用センスアンプとを有し、前記読出回路は前記ベリファイ用センスアンプを利用し、かつベリファイ時のセンスレシオとは異なるセンスレシオを用いて、前記メモリセルから既存データを読み出す半導体装置。
【請求項５】
前記メモリ部は、同時に動作可能な複数のバンクを有する請求項１から３のいずれか一項記載の半導体装置。
【請求項６】
前記読出回路および前記検出回路は前記複数のバンクに共通に設けられている請求項５記載の半導体装置。
【請求項７】
前記読出し回路は、前記メモリ部からデータを読み出すためのリード用センスアンプを含む請求項１から請求項３のいずれか一項記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置および半導体装置にデータを書き込む方法に関する。より特定すれば、本発明は多値メモリセルを有する半導体装置および多値メモリセルにデータを書き込む方法に関する。
【背景技術】
【０００２】
近年、フラッシュメモリ等の半導体記憶装置において、記憶容量の増大が広く求められている。それに応えるものとして、多値の半導体記憶装置が提案されている。このような多値の半導体記憶装置として特開平８−２３５８８６号公報や特開２００２−２１６４８５号公報が提案されている。これらの公報には、メモリセルに２ビット以上の記憶情報が記憶できることが記載されている。
【０００３】
このような多値メモリセルを有する半導体装置では、例えばメモリセルに２ビットの情報を記憶させる場合、メモリセルのレベルが１、２、３、４と４つ存在し、この４つのレベルが二つの出力または入力データを構成する。このレベル１、２、３、４をそれぞれ（１，１）、（０，１）、（１，０）、（０，０）と二つの入出力データとして定義してメモリセルに多値を記憶できるようにしている。ここでは、データ“０”を書き込み状態、データ“１”を消去状態と定義し、メモリセルへの書き込み動作とは、メモリセルのデータ“１”をデータ“０”に変化させること、消去動作とは、データ“０”をデータ“１”に変化させることを言う。よって、一般にフラッシュメモリでは、書き込みコマンドにより、メモリセルのデータ“１”をデータ“０”にすることは禁止されている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、レベル２の状態を有するメモリセルに対し、レベル３へしきい値電圧Ｖｔｈを変化させる書き込みコマンドが入力されると、実際の書き込み動作により、メモリセルのデータが（０，１）から（１，０）へと変化してしまう。すなわち、２ビットのうちの一方のビットが、データ“１”からデータ“０”に変化してしまい、書き込み動作でメモリセルの消去動作が起こってしまうという問題がある。
【０００５】
本発明は、前述した従来における課題を解決し、プログラム動作で消去動作が起こってしまう現象を避けることができる半導体装置を提供する。
【課題を解決するための手段】
【０００６】
本発明は、複数の異なるしきい値を有するメモリセルを含むメモリ部と、入力された書き込みデータを書き込もうとするメモリセルから既存データを読み出す読出回路と、前記書き込みデータと前記メモリセルの既存データを比較し、書き込み動作で消去動作が起こるパターンを検出する検出回路とを有する半導体装置である。書き込み動作で消去動作が起こるパターンを検出する構成を利用するため、上記課題を解決することができる。
【０００７】
前記検出回路は前記パターンを検出すると、前記書き込みデータの書き込み動作を禁止する信号を生成する構成とすることができる。
【０００８】
また、前記半導体装置は更にベリファイ用センスアンプを有し、前記読出回路は前記ベリファイ用センスアンプを利用して前記メモリセルから既存データを読み出す構成とすることができる。この場合、前記読出回路は、前記ベリファイ用センスアンプを用いて、前記メモリセルの既存データの読出しを二回実行することが好ましい。
【０００９】
また、前記半導体装置は更にベリファイ用センスアンプを有し、前記読出回路は前記ベリファイ用センスアンプを利用し、かつベリファイ用のリファレンスセルとは異なるリファレンスセルを用いて、前記メモリセルから既存データを読み出す構成とすることができる。
【００１０】
また、前記半導体装置は更にベリファイ用センスアンプを有し、前記読出回路は前記ベリファイ用センスアンプを利用し、かつベリファイ用のリファレンスセルを用いて、前記メモリセルから既存データを読み出す構成とすることができる。この場合、前記ベリファイ用センスアンプは、前記メモリセルの既存データの読み出しレベルをシフトさせるトランジスタを含むことが好ましい。
【００１１】
また、前記半導体装置は更にベリファイ用センスアンプを有し、前記読出回路は前記ベリファイ用センスアンプを利用し、かつベリファイ時のセンスレシオとは異なるセンスレシオを用いて、前記メモリセルから既存データを読み出す構成とすることができる。
【００１２】
また、前記メモリ部は、同時に動作可能な複数のバンクを有する構成とすることができる。この場合、前記読出回路および前記検出回路は前記複数のバンクに共通に設けられていることが好ましい。
【００１３】
また、前記読出し回路は、前記メモリ部からデータを読み出すためのリード用センスアンプを含む構成とすることができる。
【００１４】
また、前記半導体装置は更に、前記検出結果を外部に出力する回路を有する構成とすることができる。
【００１５】
上記半導体装置において、前記複数のことなるしきい値は３値以上とすることができる。
【図面の簡単な説明】
【００１６】
【図１】第１実施例に係る半導体装置のブロック図である。
【図２】第１実施例に係る半導体装置の詳細ブロック図である。
【図３】リード用のリファレンスセルのしきい値Ｖｔを説明するための図である。
【図４】ワード線ＷＬに印加する電圧を説明するための図である。
【図５】プログラムおよびプリリード用のリファレンスセルのしきい値Ｖｔについて説明する図である。
【図６】データ入力バッファの構成例を示す図である。
【図７】ベリファイ用センスアンプの回路構成例を示す図である。
【図８】ベリファイ用センスアンプの電流検出を説明する図である。
【図９】アボートチェック回路の構成例を示す図である。
【図１０】第１実施例におけるプログラム動作のタイミング図である。
【図１１】第２実施例に係る半導体装置の詳細ブロック図である。
【図１２】プログラム用およびプリリード用のリファレンスセルのしきい値Ｖｔについて説明するための図である。
【図１３】第２実施例に係るベリファイ用センスアンプの回路構成例を示す図である。
【図１４】第２実施例におけるプログラム動作のタイミング図である。
【図１５】第３実施例に係る半導体装置の詳細ブロック図である。
【図１６】第３実施例におけるプログラム動作のタイミング図である。
【発明を実施するための形態】
【００１７】
以下、添付の図面を参照して本発明の実施例を説明する。
【実施例１】
【００１８】
図１は、第１実施例に係る半導体装置のブロック図である。図１に示すように、半導体装置１は、制御回路２、書き込み回路３、データ入力バッファ４、ベリファイ用センスブロック５、メモリコア６、アボートチェック回路７、およびデータ出力回路８を備える。
この半導体装置１は、Ｓｉｍｕｌｔａｎｅｏｕｓ  Ｏｐｅｒａｔｉｏｎ（ＳＯ）機能を備えた多値フラッシュメモリである。尚、簡略のため、消去に関係する回路ブロックは省略する。
【００１９】
制御回路２は、書き込み動作で消去動作が起こるパターンを検出するために、プログラム動作を開始する直前に、書き込みをしようとしているメモリセルのデータ読み出し期間（プリリード：ｐｒｅ−ｒｅａｄ）を設定する。書き込み回路３は、書き込み電圧Ｖｐｐをメモリセルに印加して実際にプログラムする回路である。上記構成の半導体装置１は単独でパッケージされたフラッシュメモリ等の半導体記憶装置であってもよいし、システムＬＳＩのように半導体装置の一部として組み込まれたものであってもよい。
【００２０】
データ入力バッファ４は、入力された書き込みデータＩＮＰＵＴ  Ｉ／Ｏ  ＤＡＴＡをＩＮＰＵＴＤＡＴＡ（Ａ）およびＩＮＰＵＴＤＡＴＡ（Ｂ）に変換し、アボートチェック回路７に供給する。このＩＮＰＵＴＤＡＴＡ（Ａ）およびＩＮＰＵＴＤＡＴＡ（Ｂ）で一つのセルに書き込まれるデータのレベルを表している。メモリコア６はメモリ部を構成し、複数の異なるしきい値を設定することで多値を記憶できるメモリセルを有する。このようなメモリセルはいくつかのタイプが存在するが、任意のタイプの多値メモリセルを用いることができる。
【００２１】
ベリファイ用センスブロック５は、メモリコア６からメモリセルの既存データを読出して、このメモリセルの既存データＣＥＬＬＤＡＴＡ（０１）をアボートチェック回路７に供給する。ＳＯ機能のために、プログラム中に他のＢＡＮＫからリードする場合もあるので、リード用センスアンプは使えないため、読出回路に後述するベリファイ用センスアンプ５３を使用する。通常のプログラム動作に入った後は、プログラムベリファイ動作によってメモリセルのデータを読み出し、そのデータＰＧＭＶ  ｄａｔａを制御回路２に供給する。制御回路２は、正しくプログラムされたと判断すると、ＰＲＯＧＲＡＭ＿ＯＫ信号をデータ出力回路８に出力し、データ出力回路８は外部にパス信号を出力する。
【００２２】
アボートチェック回路７は、入力された書き込みデータＩＮＰＵＴＤＡＴＡとメモリセルの既存データＣＥＬＬＤＡＴＡ（０１）を比較し、書き込み動作で消去動作が起こるパターンを検出することで、書き込み動作で消去動作が起こるパターンがある場合はａｂｏｒｔ信号を生成し、書き込み動作で消去動作が起こるパターンがない場合はＮｏ  ａｂｏｒｔ信号を生成する。これらの信号はデータ出力回路８及び制御回路２に供給される。制御回路２は、ａｂｏｒｔ信号に応じて書き込み動作をストップさせる。データ出力回路８は、ａｂｏｒｔ信号に応じてフェイル信号を外部に出力する。これにより、書き込み動作で消去動作が起こるパターンが有る場合、書き込みコマンドによる書き込み動作を開始せずに強制終了させることができるので、プログラム動作で消去が起こってしまうという現象を避けることができる。
【００２３】
次に、第１実施例に係る半導体装置の詳細ブロック図について説明する。図２は、第１実施例に係る半導体装置の詳細ブロック図である。図２に示すように、半導体装置１は、制御回路２、データ入力バッファ４、ベリファイ用センスブロック５、メモリコア６、アボートチェック回路７、データ出力回路８、アドレスバッファ９、１０、リード用リファレンスセル１１Ａ〜１１Ｃ、リード用センスアンプ１２、１３Ａ〜１３Ｃ、比較回路１４Ａ〜１４Ｃを含む。
【００２４】
ＳＯ機能を有する半導体装置では、独立なアドレス系統をそれぞれもつ複数のバンクを有し、一のバンクをプログラムまたはイレーズ中に、他のバンクからリード可能なように構成されている。そしてチップ面積の増大を避けるために、各バンクは、プログラムあるいはイレーズのベリファイのために用いられるベリファイ用センスアンプを共用し、リード時に用いられるリード用センスアンプも共用する。
【００２５】
制御回路２は、外部から供給される制御信号（チップイネーブル信号、書き込みイネーブル信号など）、および所定のコマンドレジスタから供給される制御信号を受け、これら制御信号に応じて読み出し動作、書き込み動作、消去動作等を実行する。データ入力バッファ４は、制御回路２からＰＧＭ＿ＳＥＴ信号とＤＡＴＡＬＯＡＤ信号の供給を受け、外部からの書き込みデータであるＩｎｐｕｔ  Ｉ／Ｏ  ＤＡＴＡをＩＮＰＵＴＤＡＴＡ（Ａ）およびＩＮＰＵＴＤＡＴＡ（Ｂ）に変換し、アボートチェック回路７に供給する。アドレスバッファ９、１０は、外部から供給されるアドレス信号を取り込むものである。
【００２６】
メモリコア６は、二つのメモリバンクＢＡＮＫＡ、ＢＡＮＫＢを有する。各メモリバンクＢＡＮＫＡ、ＢＡＮＫＢは、Ｘデコーダ６１、６２と、Ｙデコーダ６３、６４と、メモリセルアレイ６５、６６を有する。メモリセルアレイ６５、６６は、マトリックス状に配置された電気的に書き換え可能な不揮発性のメモリセル、ワード線、ビット線等を含み、各メモリセルは、複数の異なるしきい値を設定することで多値を記憶できる。
【００２７】
Ｘデコーダ６１、６２は、アドレスバッファ９、１０が取り込んだアドレス信号のうち
、Ｘアドレス信号をデコードして、デコード結果に基づいて、メモリセルアレイ６５、６６の指定Ｘアドレスのメモリセルを選択する。Ｙデコーダ６３、６４は、アドレスバッファ９、１０が取り込んだアドレス信号のうち、Ｙアドレス信号をデコードして、デコード結果に基づいて、メモリセルアレイ６５、６６の指定Ｙアドレスのメモリセルを選択する。
【００２８】
リード用センスアンプ１２は、データ読出し時、メモリセルアレイ６５、６６の選択されたメモリセルを流れる電流を検出し、このセル電流を電圧に変換する。リファレンスセル１１Ａ〜１１Ｃは、選択セルがどのレベルにあるのかを検出するためのセルであり、リード動作時、高速に検出するため、３つのリファレンスセル１１Ａ〜１１Ｃが同時に選択される。リード用センスアンプ１３Ａ〜１３Ｃは、リファレンスセル１１Ａ〜１１Ｃを流れる電流を検出して電圧に変換するものであり、３つのリファレンスセル１１Ａ〜１１Ｃに対応して設けられている。
【００２９】
比較回路１４Ａ〜１４Ｃはそれぞれ、リード用センスアンプ１２で検出したメモリセルのデータと、リード用センスアンプ１３Ａ〜１３Ｃで検出したリファレンスセル１１Ａ〜１１Ｃのレベルを比較してメモリセルのデータのレベルを判定し、セルデータをデータ出力回路８に出力する。この比較回路１４Ａ〜１４Ｃは、リード動作時に、高速に処理するため、リード用センスアンプ１３Ａ〜１３Ｃに対応して３つ設けられている。
【００３０】
ベリファイ用センスアンプブロック５は、５つのリファレンスセル５１Ａ〜５１Ｅ、ベリファイ用センスアンプ５２、５３、比較回路５４を含む。上の３つのリファレンスセル５１Ａ〜５１Ｃは、通常のプログラムベリファイに使用されるリファレンスセルである。下の２つのリファレンスセル５１Ｄ、５１Ｅはプリリードで使用されるリファレンスセルである。リファレンスセル５１Ｄは１回目のプリリード用のリファレンスセルであり、リファレンスセル５１Ｅは２回目のプリリード用のリファレンスセルである。
【００３１】
ベリファイ用センスアンプ５２は、リファレンスセル５１Ａ〜５１Ｅを流れる電流を検出し、この電流を電圧に変換する。ベリファイ用センスアンプ５３は、メモリセルを流れる電流を検出し、メモリセルの既存データを読み出す。プリリード時、ベリファイ用センスアンプ５３は、メモリセルの既存データの読出しを２回実行する。比較回路５４は、ベリファイ用センスアンプ５３で検出したメモリセルの既存データと、ベリファイ用センスアンプ５２で検出したリファレンスセルのレベルを比較してメモリセルの既存データＣＥＬＬＤＡＴＡのレベルを判定する。
【００３２】
アボートチェック回路７は、データ入力バッファ４から入力された書き込みデータＩＮＰＵＴＤＡＴＡを、比較回路５４から入力されたメモリセルの既存データＣＥＬＬＤＡＴＡと比較し、書き込み動作で消去動作が起こるパターンを検出し、書き込み動作で消去動作が起こるパターンがある場合、ａｂｏｒｔ信号を制御回路２及びデータ出力回路８に供給し、実際のプログラムを開始せずに終了させる。アボートチェック回路７は、書き込み動作で消去動作が起こるパターンが検出されない場合、Ｎｏ  ａｂｏｒｔ信号を制御回路２に供給し、実際のプログラムを開始する。データ出力回路８は、アボートチェック回路７からのａｂｏｒｔ信号またはＮｏ  ａｂｏｒｔ信号に基づき、プログラムの完了を示すパス信号、書き込み禁止データが入力されたことを示すフェイル信号を外部に出力し、通常リード時にはセルデータを出力する。
【００３３】
なお、ベリファイ用センスアンプ５３、アボートチェック回路７が特許請求の範囲における読出回路、検出回路にそれぞれ相当する。
【００３４】
次に、メモリコア６からデータを読み出して半導体装置１の外部に出力するリード動作について説明する。図３は、リード用リファレンスセル１１のしきい値Ｖｔを説明するための図である。図４は、ワード線ＷＬに印加する電圧を説明するための図である。図３において、横軸はメモリセルのしきい値Ｖｔを示し、縦軸はセル数を示す。各メモリセルのしきい値は、プログラムされたデータに応じて、レベル１、レベル２、レベル３およびレベル４のいずれかに分布する。レベル１、レベル２、レベル３、レベル４は、２ビットのデータの“１１”、“０１”、“１０”、“００”にそれぞれ対応する。
【００３５】
図３に示すように、各レベルの中間にそれぞれしきい値Ｖｔを持つようにする。ここで、リードレベル１−２のしきい値Ｖｔは、メモリセルのレベル１または２なのかを検出するためのリファレンスセル１１Ａのしきい値である。リードレベル１，２−３，４のしきい値Ｖｔは、メモリセルのレベル１、２またはレベル３、４なのかを検出するためのリファレンスセル１１Ｂのしきい値Ｖｔである。リードレベル３−４のしきい値Ｖｔは、レベル３または４なのかを検出するためのリファレンスセル１１Ｃのしきい値である。
【００３６】
メモリセルアレイ６５、６６のワード線ＷＬへの印加電位（Ｖｇａｔｅ）は、図４に示すＩＶカーブのように、レベル４のセル電流（Ｉｄｒａｉｎ）がゼロ程度になるレベルに設定する。また、リファレンスセル１１のワード線ＷＬにも、メモリセルアレイ６５、６６のワード線と同じ電圧を印加する。これにより、各レベルでリファレンスセル１１Ａ〜１１Ｃの電流値は異なるから、この電流をベリファイ用センスアンプ５２と同じリード用センスアンプ１３Ａ〜１３Ｃで電圧に変換し、その３つの電圧をそれぞれ３つの比較回路１４Ａ〜１４Ｃに供給することで、比較回路１４Ａ〜１４Ｃでメモリコアセルのレベルと比較し、セルデータを判定する。その判定結果に基づいて、データ出力回路８は外部にセルデータを出力する。
【００３７】
図５は、ベリファイ用センスブロック５内に設けられたリファレンスセル５１のしきい値Ｖｔについて説明する図である。しきい値Ｖｔ＿ＰＧＭ２は、プログラムの過程において、当該メモリセルが、レベル２に正しくプログラムされたか否かを検出するプログラムベリファイ動作に用いられるリファレンスセル５１Ａのしきい値である。しきい値Ｖｔ＿ＰＧＭ３は、プログラムの過程において、当該メモリセルが、レベル３に正しくプログラムされたか否かを検出するプログラムベリファイ動作に用いられるリファレンスセル５１Ｂのしきい値である。
【００３８】
しきい値Ｖｔ＿ＰＧＭ４は、プログラムの過程において、当該メモリセルが、レベル４に正しくプログラムされたか否かを検出するプログラムベリファイ動作に用いられるリファレンスセル５１Ｃのしきい値である。Ｖｔ１は、１回目のプリリード時のリファレンスセル５１Ｄのしきい値である。Ｖｔ２は、２回目のプリリード時のリファレンスセル５１Ｅのしきい値である。
【００３９】
図５に示すように、プリリード用のしきい値Ｖｔ１、Ｖｔ２は各レベルの中間となるように設定する。つまり、図３に示すリード用センスアンプ側と同じしきい値Ｖｔとなる。このように、第１実施例では、センスアンプのロードは変えない構成のままで、プリリード用のリファレンスセル５１Ｄ、５１Ｅを２つ設けることで、プリリードを実現できる。
【００４０】
次に、プログラム動作について説明する。ベリファイ用センスアンプ５３は、プリリードを二回実行し、プログラム動作を開始する直前に、書き込みをしようとしているメモリセルに格納されている既存データを二回読み出す。１回目のプリリード時には、ベリファイ用センスアンプ５３は、メモリセルを流れる電流を検出し、これを電圧に変換し、メモリセルの既存データＣＥＬＬＤＡＴＡとして比較回路５４へ供給する。また、制御回路２は、しきい値Ｖｔ１を有するリファレンスセル５１Ｄのワード線に電圧を印加する。ベリファイ用センスアンプ５２は、リファレンスセル５１Ｄを流れる電流を検出し、これを電圧に変換し、リファレンスセル５１Ｄのデータを比較回路５４へ供給する。比較回路５４は、リファレンスセル５１Ｄのデータを用いてメモリセルの既存データがレベル１、２であるかレベル３、４であるかを判定する。
【００４１】
二回目のプリリード時には、ベリファイ用センスアンプ５３は、メモリセルを流れる電流を検出し、これを電圧に変換し、メモリセルの既存データＣＥＬＬＤＡＴＡとして比較回路５４へ供給する。また、制御回路２は、しきい値Ｖｔ２を有するリファレンスセル５１Ｅのワード線に電圧を印加する。ベリファイ用センスアンプ５２は、メモリセルの既存データがレベル１かレベル２である場合、２回目のプリリード用のリファレンスセル５１Ｅを流れる電流を検出し、これを電圧に変換し、２回目のプリリード時のリファレンスセル５１Ｅのデータを比較回路５４へ供給する。比較回路５４は、リファレンスセル５１Ｅのデータを用いてメモリセルの既存データがレベル１かレベル２かを判定する。
【００４２】
アボートチェック回路７は、メモリセルがレベル２であると判定され、かつ、データ入力バッファ４からのＩＮＰＵＴＤＥＴＡを参照してそのメモリセルに対してレベル３への書き込みコマンドが入力されている場合には、ａｂｏｒｔ信号を発生させ、そのメモリセルへの書き込みのみを禁止する、あるいは、書き込み動作そのものをエラーとする。このようにして、プログラム動作で消去が起こってしまうという現象を避けることができる。
また、上記以外の場合は、アボートチェック回路７はＮｏ  ａｂｏｒｔ信号を発生させ、制御回路２はプログラム動作を実行させるＰＧＭ＿ＳＴＡＲＴ信号を出力する。これに応じて、書き込み回路３は実際にメモリセルにプログラムする。
【００４３】
次に、データ入力バッファ４について説明する。図６は、データ入力バッファ４の構成例を示す図である。図６に示すように、データ入力バッファ４は、ＩＮＰＵＴＤＡＴＡ（Ａ）を出力する回路と、ＩＮＰＵＴＤＡＴＡ（Ｂ）を出力する回路で構成され、各回路は、インバータ４１ａ〜４１ｅ、ＰＭＯＳトランジスタ４２ａ〜４２ｃ、ＮＭＯＳトランジスタ４３ａ〜４３ｅを含んでいる。ＶＣＣ電源線は、電源電圧Ｖｃｃを供給するものである。ＩＮＰＵＴ  Ｉ／Ｏ  ｄａｔａは、外部から入力される書き込み信号である。ＩＮＰＵＴＤＡＴＡは、書き込みデータを表す。
【００４４】
電源ＶｃｃとグランドＶｓｓ間には、ＰＭＯＳトランジスタ４２ａ、４２ｂ、ＮＭＯＳトランジスタ４３ａが直列に接続されている。ＰＭＯＳトランジスタ４２ａとＮＭＯＳトランジスタ４３ｂのゲートは、制御回路２が書き込みコマンドを認識したことで生成されるＰＧＭ＿ＳＥＴ信号をインバータ４１ａで反転した信号により制御されている。ＰＭＯＳトランジスタ４２ｂとＮＭＯＳトランジスタ４３ａのゲートは、ＩＮＰＵＴ  Ｉ／Ｏ  ｄａｔａにより制御されている。また、インバータ４１ｃ、４１ｄ、ＮＭＯＳトランジスタ４３ｄ、４３ｅでラッチ回路を構成する。
【００４５】
ＮＭＯＳトランジスタ４３ｃ、４３ｄのゲートは制御回路２からのＤＡＴＡＬＯＡＤ信号により制御されている。ＰＭＯＳトランジスタ４２ｃのゲートは、リセット信号ＲＥＳＥＴＢにより制御されている。ラッチ回路で保持されたデータは、インバータ４１ｅを介してアボートチェック回路７に供給される。
【００４６】
次に、ベリファイ用センスアンプ５３について説明する。図７は、ベリファイ用センスアンプ５３の回路構成例を示す図である。図７に示すように、ベリファイ用センスアンプ５３は、ＰＭＯＳトランジスタ５３１ａ、５３１ｂ、ＮＭＯＳトランジスタ５３２ａ〜５３２ｄ、ＮＡＮＤ回路５３３、ロード部５３４を含む。ＮＭＯＳトランジスタ５３２ａ、５３２ｃ、５３２ｄ、ＰＭＯＳトランジスタ５３１ｂでバイアス制御部５３５を構成する。電源ＶｃｃとグランドＶｓｓ間には、ＰＭＯＳトランジスタ５３１ａ、ロード部５３４、ＮＭＯＳトランジスタ５３２ａ、５３２ｂが直列に接続されている。
【００４７】
また、電源ＶｃｃとグランドＶｓｓ間には、ＰＭＯＳトランジスタ５３１ｂ、ＮＭＯＳトランジスタ５３２ｄ、５３２ｃが直列に接続されている。ＮＭＯＳトランジスタ５３２ｂ、ＰＭＯＳトランジスタ５３１ａ、５３１ｂのゲートは、ＰＧＭ＿ＳＥＴ信号とリセット信号ＲＥＳＥＴＢがＮＡＮＤ回路５３３でＮＡＮＤ処理された信号で制御されている。ＮＭＯＳトランジスタ５３２ｃのゲートは、メモリセルを流れる電流ＣＯＲＥ  ＤＲＡＩＮにより制御される。ＮＭＯＳトランジスタ５３２ａのゲートは、ＮＭＯＳトランジスタ５３２ｄ、５３２ｃ間のノードＮ１の電位により制御される。ＰＭＯＳトランジスタ５３１ａとＮＭＯＳトランジスタ５３２ａ間のノードＮ２の電位がＣＥＬＬＤＡＴＡとして比較回路５４に供給される。なお、第１実施例では、プリリード用のリファレンスセル５１Ｄ、５１Ｅを２つ設けることで、ベリファイ用センスアンプ５３のロードを変えない構成のままで、プリリードを実現している。
【００４８】
フラッシュメモリでは、リードアクセス時に電流を流すことから、誤ってセルに書き込まれることを避けるために、セルのドレイン電圧として、１［Ｖ］未満にクランプした電圧を与えるようにする。ここでは、ノードＮ２を０．８［Ｖ］程度にクランプしている。
【００４９】
図８はベリファイ用センスアンプ５３の電流検出を説明する図である。図８に示す例では、ＮＯＲ型のフラッシュメモリの例を示している。フラッシュメモリでは、フローティングゲートに電子が注入されておらず、消去状態でデータ１を保持している場合に、セルは電流を流す。また、フローティングゲートに電子が注入されており、プログラム状態でデータ０を保持している場合には、セルは電流を流さない。このように、ベリファイ用センスアンプ５３は、メモリセルを流れるセル電流ＣＯＲＥ  ＤＲＡＩＮを検出し、このセル電流を電圧に変換し、メモリセルの既存データＣＥＬＬＤＡＴＡとして比較回路５４へ供給する。
【００５０】
次に、アボートチェック回路７について説明する。図９は、アボートチェック回路７の構成例を示す図である。図９に示すように、アボートチェック回路７は、インバータ７１ａ、７１ｂ、ＮＡＮＤ回路７２、ＮＯＲ回路７３を含む。アボートチェック回路７は、ベリファイ用センスアンプ５３にて発生させたデータとベリファイ用センスアンプ５２からのデータとを比較して、メモリセルに書き込もうとしている入力データが（１，０）であり、かつ、メモリセルデータが（０，１）であると判断した時にＨＩＧＨとなるａｂｏｒｔ信号を生成する。具体的には、ＮＡＮＤ回路７２の出力は、ＩＮＰＵＴＤＡＴＡ（Ａ）がＬＯＷで、ＩＮＰＵＴＤＡＴＡ（Ｂ）がＨＩＧＨの時、ＬＯＷとなる。ＮＯＲ回路７３の出力は、ＮＡＮＤ回路７２の出力がＬＯＷで、ＣＥＬＬＤＡＴＡがＨＩＧＨの時、ＨＩＧＨとなる。つまり、アボートチェック回路７は、メモリセルに対してレベル３（１０）への書き込みコマンドが入力され、かつ、メモリセルがレベル２（０１）の時にａｂｏｒｔ信号をＨＩＧＨにする。
【００５１】
図１０はプログラム動作のタイミング図であり、同図（ａ）はＮｏ  ａｂｏｒｔ時、同図（ｂ）はａｂｏｒｔ時のタイミング図である。制御回路２は、書き込みコマンドが入力されると、コマンドを認識した信号ＰＧＭ＿ＳＥＴをＨＩＧＨにする。このＰＧＭ＿ＳＥＴ信号がプリリードを実行させるＰＲＥＲＥＡＤ信号をＨＩＧＨにし、１ｓｔ  ＲＥＡＤ信号のＨＩＧＨで、ベリファイ用センスアンプ５３を利用した１回目のプリリードを実行し、２ｎｄ  ＲＥＡＤ信号のＨＩＧＨで、ベリファイ用アンプ５３を利用した２回目のプリリードを実施する。
ＤＡＴＡＬＯＡＤ信号がＨＩＧＨになる前にリセット信号ＲＥＳＥＴＢがＬＯＷになり、データ入力バッファ４のラッチ回路のデータがリセットされる。
【００５２】
ＤＡＴＡＬＯＡＤ信号は、ＰＲＥＲＥＡＤ信号がＨＩＧＨの時にＨＩＧＨとなり、データ入力バッファ４にデータがロードされる。アボートチェック回路７からのａｂｏｒｔ信号がＬＯＷの場合、ＰＧＭ＿ＳＴＡＲＴ信号がＨＩＧＨとなり、制御回路２によりＰＲＯＧＲＡＭ＿ＯＫ信号がＨＩＧＨとなれば実際のプログラムが開始され、データ出力回路８は、プログラムが完了するとＰＡＳＳを外部に出力する。アボートチェック回路７は、メモリセルに対してレベル３（１０）への書き込みコマンドが入力され、かつ、メモリセルがレベル２（０１）の時にａｂｏｒｔ信号をＨＩＧＨにし、これを受けた制御回路２は書き込みコマンドによる書き込み動作を開始せずに強制終了させることで、プログラム動作で消去が起こってしまうという現象を避けることができる。さらに、このとき、ａｂｏｒｔ信号を受けたデータ出力回路８はＦａｉｌを外部に出力する。これにより、ホストシステム側は、禁止されている書き込み動作を指示したことを知ることができる。
【００５３】
第１実施例によれば、入力された書き込みデータをメモリセルの既存データと比較し、書き込み動作で消去動作が起こるパターンを検出するので、書き込み動作で消去動作が起こるパターンを禁止動作とし、この禁止動作が認識されると書き込みコマンドによる書き込み動作を開始せずに強制終了させることで、プログラム動作で消去が起こってしまうという現象を避けることができる。
【００５４】
また、メモリセルの既存データの読出しを二回実行してメモリセルの既存データを検出するようにしたので、読出し回路の数を減らすことができ、読出回路の増加によるチップ面積の増加を防ぐことができる。
【実施例２】
【００５５】
次に、第２実施例について説明する。図１１は、第２実施例に係る半導体装置の詳細ブロック図である。図１１に示すように、半導体装置１００は、制御回路２、データ入力バッファ４、ベリファイ用センスブロック１０５、メモリコア６、アボートチェック回路７、データ出力回路８、アドレスバッファ９、１０、リード用リファレンスセル１１、リード用センスアンプ１２、１３Ａ〜１３Ｃ、比較回路１４Ａ〜１４Ｃを含む。ベリファイ用センスアンプブロック１０５は、リファレンスセル５１Ａ〜５１Ｃ、ベリファイ用センスアンプ５２、１５３、比較回路５４を含む。第１実施例と同一部分については同一符号を付するものとしてその説明を省略する。
【００５６】
図１２は、リファレンスセル５１のしきい値Ｖｔについて説明するための図である。しきい値Ｖｔ＿ＰＧＭ２は、プログラムの過程において、当該メモリセルが、レベル２に正しくプログラムされたか否かを検出するプログラムベリファイ動作に用いられるリファレンスセル５１Ａのしきい値である。しきい値Ｖｔ＿ＰＧＭ３は、プログラムの過程において、当該メモリセルが、レベル３に正しくプログラムされたか否かを検出するプログラムベリファイ動作に用いられるリファレンスセル５１Ｂのしきい値である。しきい値Ｖｔ＿ＰＧＭ４は、プログラムの過程において、当該メモリセルが、レベル４に正しくプログラムされたか否かを検出するプログラムベリファイ動作に用いられるリファレンスセル５１Ｃのしきい値である。
【００５７】
第２実施例では、第１実施例で説明したプリリード用のリファレンスセル５１Ｄ、５１Ｅは新たには用意せず、既存のプログラムベリファイ用のリファレンスセルである、ＰＧＭ＿ＬＥＶＥＬ２用のリファレンスセル５１ＡとＰＧＭ＿ＬＥＶＥＬ３用のリファレンスセル５１Ｂをプリリードに利用する。１回目のプリリードに、ＰＧＭ＿ＬＥＶＥＬ３用のリファレンスセル５１Ｂを利用し、２回目のプリリードに、ＰＧＭ＿ＬＥＶＥＬ２用のリファレンスセル５１Ａを利用する。この場合、ベリファイ用センスアンプを図７に示した構成のままでメモリセルのデータを読むと、レベル２またはレベル３のセルのリードマージンがない。このため、第２実施例では、リードマージンを確保するために、ベリファイ用センスアンプ１５３を図１３に示すように構成する。
【００５８】
図１３は、第２実施例に係るベリファイ用センスアンプの回路構成例を示す図である。図１３に示すように、ベリファイ用センスアンプ１５３は、ＰＭＯＳトランジスタ５３１ａ、５３１ｂ、５３１ｃ、ＮＭＯＳトランジスタ５３２ａ〜５３２ｄ、ＮＡＮＤ回路５３３、ロード部５３４、インバータ５３６を含む。なお、図７で説明したベリファイ用センスアンプ５３と同一部分については同一符号を付してその説明を省略する。
【００５９】
第２実施例では、マージンを確保するために、図１１に示すように、ベリファイ用センスアンプ１５３をＰＲＥＲＥＡＤ信号がＨＩＧＨの時にロードが小さくなるように、ロード部５３４の一部をバイパスするためのＰＭＯＳトランジスタ５３１ｃを付け加えている。このＰＭＯＳトランジスタ５３１ｃは、プリリード時、メモリセルの既存データのレベルをシフトさせる。これにより、ＰＲＥＲＥＡＤ信号がＨＩＧＨのとき、ノードＮ２であるＣＥＬＬＤＡＴＡが高いほうにシフトする。すなわち、”０”データのセルを検出すると、そのセルは、通常の”０”に対応するしきい値Ｖｔよりも高いしきい値Ｖｔであるかのように検出できる。つまり、”０”データのセルのリードマージンを大きくできる。
【００６０】
図１４は第２実施例におけるプログラム動作のタイミング図、同図（ａ）はＮｏ  ａｂｏｒｔ時、同図（ｂ）はａｂｏｒｔ時のタイミング図である。この例では、図１０における１ｓｔ  ｒｅａｄ信号、２ｎｄ  ｒｅａｄ信号が、それぞれＰＧＭＶ＿ＬＥＶＥＬ３、ＰＧＭＶ＿ＬＥＶＥＬ２に置き換わる。制御回路２は、書き込みコマンドが入力されると、コマンドを認識した信号ＰＧＭ＿ＳＥＴをＨＩＧＨにする。このＰＧＭ＿ＳＥＴ信号がプリリードを実行させるＰＲＥＲＥＡＤ信号をＨＩＧＨにし、ＰＧＭＶ＿ＬＥＶＥＬ３信号がＨＩＧＨの時、ベリファイ用センスアンプ１５３を利用した１回目のプリリードを、ＰＧＭＶ＿ＬＥＶＥＬ２信号がＨＩＧＨの時、ベリファイ用センスアンプ１５３を利用した２回目のプリリードを実行する。
【００６１】
１回目のプリリードで、ベリファイ用センスアンプ１５３は、ＰＲＥＲＥＡＤ信号がＨＩＧＨの時、インバータ５３６の出力がＬＯＷとなり、ＰＭＯＳトランジスタ５３１ｃがＯＮとなり、ロード部５３４がプリリード用に切り替わり、ロードが小さくなる。これにより、ノードＮ２であるＣＥＬＬＤＡＴＡが高いほうにシフトする。
【００６２】
また、制御回路２は、しきい値Ｖｔ＿ＰＧＭ３を有するリファレンスセル５１Ｂのワード線に電圧を印加する。ベリファイ用センスアンプ５２は、リファレンスセル５１Ｂに流れる電流を検出し、これを電圧に変換し、リファレンスセル５１Ｂのデータを比較回路５４へ供給する。比較回路５４は、リファレンスセル５１Ｂのデータを用いてメモリセルの既存データがレベル１、２であるかレベル３、４であるかを判定する。２回目のプリリードで、ベリファイ用センスアンプ１５３は、ＰＲＥＲＥＡＤ信号がＨＩＧＨの時、インバータ５３６の出力がＬＯＷとなり、ＰＭＯＳトランジスタ５３１ｃがＯＮとなるので、ロード部５３４のロードが小さくなる。これにより、ノードＮ２であるＣＥＬＬＤＡＴＡが高いほうにシフトする。
【００６３】
また、制御回路２は、しきい値Ｖｔ＿ＰＧＭ２を有するリファレンスセル５Ａのワード線に電圧を印加する。ベリファイ用センスアンプ５２は、リファレンスセル５１Ａを流れる電流を検出し、これを電圧に変換し、リファレンスセル５１Ａのデータを比較回路５４へ供給する。比較回路５４は、リファレンスセル５１Ａのデータを用いてメモリセルの既存データがレベル１かレベル２かを判定する。ＤＡＴＡＬＯＡＤ信号がＨＩＧＨになる前にリセット信号ＲＥＳＥＴＢがＬＯＷになり、データ入力バッファ４のラッチ回路のデータがリセットされる。ＤＡＴＡＬＯＡＤ信号は、ＰＲＥＲＥＡＤ信号がＨＩＧＨの時にＨＩＧＨとなり、データ入力バッファ４にデータがロードされる。
【００６４】
アボートチェック回路７は、メモリセルがレベル２であると判定され、かつ、そのメモリセルに対してレベル３への書き込みコマンドが入力されている以外の場合には、ａｂｏｒｔ信号をＨＩＧＨにしない。制御回路２は、ａｂｏｒｔ信号がＬＯＷの場合、ＰＧＭ＿ＳＴＡＲＴ信号をＨＩＧＨにし、実際のプログラムが開始される。制御回路２は、プログラムが完了すると、ＰＲＯＧＲＡＭ＿ＯＫ信号をＨＩＧＨにし、データ出力回路８は、ＰＡＳＳを外部に出力する。
【００６５】
アボートチェック回路７は、メモリセルに対してレベル３への書き込みコマンドが入力され、かつ、メモリセルがレベル２の時にａｂｏｒｔ信号をＨＩＧＨし、データ出力回路８はＦａｉｌを外部に出力し、書き込みコマンドによる書き込み動作を開始せずに強制終了させることで、プログラム動作で消去が起こってしまうという現象を避けることができる。
【００６６】
第２実施例によれば、プリリードの時、ベリファイ用センスアンプ１５３のロードをプリリード用に切替えるようにしたので、センスレシオを使用してマージンを持った読み出しを可能にできる。また、プリリード用のリファレンスセルを別途設ける必要がない。
【実施例３】
【００６７】
次に、第３実施例について説明する。実施例１、２では、ＳＯ動作のフラッシュメモリを例にとって説明したが、第３実施例は、ＳＯ動作機能を有しないコンベンショナルなフラッシュメモリの例である。図１５は、第３実施例に係る半導体装置の詳細ブロック図である。図１５に示すように、半導体装置２００は、制御回路２、データ入力バッファ４、ベリファイ用センスブロック１０５、メモリコア２０６、アボートチェック回路７、データ出力回路８、アドレスバッファ９、リード用リファレンスセル１１、リード用センスアンプ１２、１３Ａ〜１３Ｃ、比較回路１４Ａ〜１４Ｃを含む。なお、第１および２実施例と同一部分については同一符号を付してその説明を省略する。実施例３では、プログラムを行う際は他Ｂａｎｋでリードを行うことがないため、リード用センスアンプ１２でプリリードを実現する。
【００６８】
図１６は第３実施例におけるプログラム動作のタイミング図、同図（ａ）はＮｏ  ａｂｏｒｔ時、同図（ｂ）はａｂｏｒｔ時のタイミング図である。制御回路２は、書き込みコマンドが入力されると、コマンドを認識した信号ＰＧＭ＿ＳＥＴをＨＩＧＨにする。このＰＧＭ＿ＳＥＴ信号がプリリードを実行させるＰＲＥＲＥＡＤ信号をＨＩＧＨにし、リード用センスアンプ１２で、通常のリード動作と同様に、１回のプリリード動作により、既存データを読み出す。
【００６９】
具体的には、メモリセルアレイ２６３のワード線ＷＬとリファレンスセル１１のワード線ＷＬに印加電圧（Ｖｇａｔｅ）が供給される。リード用センスアンプ１２はメモリコアセルの電流値を電圧に変換する。リード用センスアンプ１３Ａ〜１３Ｃは、各レベルでリファレンスセル１１Ａ〜１１Ｃの電流を電圧に変換し、その３つの電圧をそれぞれ３つの比較回路１４Ａ〜１４Ｃに供給する。比較回路１４Ａ〜１４Ｃは、メモリコアセルのレベルとリード用センスアンプ１３Ａ〜１３Ｃからのレベルを比較し、セルデータを判定し、アボートチェック回路７にセルデータＣＥＬＬＤＡＴＡ（０１）を出力する。
【００７０】
ＤＡＴＡＬＯＡＤ信号がＨＩＧＨになる前にリセット信号ＬＯＷになり、データ入力バッファ４のラッチ回路のデータがリセットされる。ＤＡＴＡＬＯＡＤ信号はＰＲＥＲＥＡＤ信号がＨＩＧＨの時にＨＩＧＨとなり、データ入力バッファ４にデータがロードされる。制御回路２は、アボードチェック回路７からのａｂｏｒｔ信号がＬＯＷの場合、ＰＧＭ＿ＳＴＡＲＴ信号をＨＩＧＨにし、実際のプログラムが開始される。プログラムが正常に完了すると、ＰＲＯＧＲＡＭ＿ＯＫ信号はＨＩＧＨとなり、データ出力回路８はＰＡＳＳを外部に出力する。
【００７１】
アボートチェック回路７は、メモリセルに書き込もうとする書き込みデータがレベル３（１０）で、そのメモリセルがレベル２（０１）の時にＡｂｏｒｔ信号をＨＩＧＨにし、これを受けた制御回路２は書き込みコマンドによる書き込み動作を開始せずに強制終了させることで、プログラム動作で消去が起こってしまうという現象を避けることができる。さらに、このとき、ａｂｏｒｔ信号を受けたデータ出力回路８はＦａｉｌを外部に出力する。これにより、ホストシステム側は、禁止されている書き込み動作を指示したことを知ることができる。
【００７２】
このように、ＳＯ動作機能を有しない半導体装置では、リード用センスアンプ１２を使用できるため、実施例１、２のように２回のプリリードの必要がなく、通常のリード動作と同様に、１回のプリリード動作により、既存データを読み出すことができる。このため、第１実施例における図１０に対して、１ｓｔＲｅａｄ、２ｎｄＲｅａｄの波形がいらなくなり、ＰＲＥＲＥＡＤ信号に応じてプリリードを実行できる。
【００７３】
なお、実施例１、２で説明したように、プリリードをベリファイ用センスアンプ５３を用いて行ってもよい。この場合、２回のプリリードが必要になる。
【００７４】
第３実施例によれば、ＳＯ機能を有しないコンベンショナルな半導体装置でも、入力された書き込みデータをメモリセルの既存データと比較し、書き込み動作で消去動作が起こるパターンを検出するので、プログラム動作で消去が起こってしまうという現象を避けることができる。
【符号の説明】
【００７５】
１  半導体装置、２  制御回路、３  書き込み回路、４  データ入力バッファ、５  ベリファイ用センスブロック、６  メモリコア、７  アボートチェック回路、８  データ出力回路、１２，１３Ａ，１３Ｂ  リード用センスアンプ、５２，５３  ベリファイ用センスアンプ、５４  比較回路、６５，６６  メモリセルアレイ、５３１ｃ  トランジスタ。
【図１】
2010267382.tif 000003
【図２】
2010267382.tif 000004
【図３】
2010267382.tif 000005
【図４】
2010267382.tif 000006
【図５】
2010267382.tif 000007
【図６】
2010267382.tif 000008
【図７】
2010267382.tif 000009
【図８】
2010267382.tif 000010
【図９】
2010267382.tif 000011
【図１０】
2010267382.tif 000012
【図１１】
2010267382.tif 000013
【図１２】
2010267382.tif 000014
【図１３】
2010267382.tif 000015
【図１４】
2010267382.tif 000016
【図１５】
2010267382.tif 000017
【図１６】
2010267382.tif 000018