(57)【要約】本発明は、不揮発性メモリセルを有するメモリセルアレイと、データを書き込むべき複数のメモリセルに第１レベルをプログラムし（ｂ）、その後前記データを書き込むべき複数のメモリセルに第２レベルをプログラムする（ｃ）ことによりメモリセルアレイにデータをプログラムする制御回路と、を具備する半導体装置およびその制御方法である。本発明によれば、第１レベルにプログラムする時間を短くすることによりデータの書き込み時間を短くすることができる。また、第２レベルのプログラムを行うことにより、求められるデータ保持時間を確保することができる。
2007043133.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリセルを有するメモリセルアレイと、
データを書き込むべき複数のメモリセルに第１レベルをプログラムし、その後前記データを書き込むべき複数のメモリセルに第２レベルをプログラムすることにより前記メモリセルアレイにデータをプログラムする制御回路と、を具備する半導体装置。
【請求項２】
前記第２レベルでプログラムされた前記複数のメモリセルのデータ保持時間は前記第１レベルでプログラムされた前記複数のメモリセルのデータ保持時間より長い請求項１記載の半導体装置。
【請求項３】
前記第２レベルでプログラムされた前記複数のメモリセルの閾値電圧は、前記第１レベルでプログラムされた前記複数のメモリセルの閾値電圧より大きい請求項１記載の半導体装置。
【請求項４】
前記制御回路は、外部の回路から入力された第２レベルをプログラムするための制御信号に応答し、前記データを書き込むべき複数のメモリセルに第２レベルをプログラムする請求項１から３のいずれか一項記載の半導体装置。
【請求項５】
前記制御回路は、前記データを書き込むべき複数のメモリセルに第１レベルをプログラムした後に前記制御信号を受信する請求項４記載の半導体装置。
【請求項６】
前記複数のメモリセルを含む領域内の少なくとも一つのメモリセルが前記第１レベルにプログラムされていることを示すフラグを記憶する記憶装置を具備し、
前記制御回路は、前記記憶装置に記憶されたフラグを読み出し、読み出した前記フラグが前記第１レベルにプログラムされていることを示すフラグの場合、前記データを書き込むべき複数のメモリセルに前記第２レベルをプログラムする請求項１から５のいずれか一項記載の半導体装置。
【請求項７】
前記制御回路は、前記領域内の少なくとも一つのメモリセルに前記第１レベルをプログラムする場合、前記記憶装置に前記フラグを記憶させ、
前記領域内のメモリセルに前記第２レベルのプログラムする場合、前記記憶装置の前記フラグをクリアする請求項６記載の半導体装置。
【請求項８】
前記制御回路は、前記データを書き込むべき複数のメモリセルを含む領域内の各メモリセルのデータを読み出し、各メモリセルのうち前記第１レベルにプログラムされたメモリセルに前記第２レベルをプログラムすることにより、前記データを書き込むべき複数のメモリセルに前記第２レベルをプログラムする請求項１から７のいずれか一項記載の半導体装置。
【請求項９】
前記領域は、前記メモリセルアレイの全部または一部の領域である請求項６から８のいずれか一項記載に半導体装置。
【請求項１０】
前記メモリセルアレイは複数の前記領域を有し、
前記記憶装置は、前記複数の領域それぞれに対応したフラグであって、前記複数の領域の１つに対応した少なくとも一つのメモリセルが前記第１レベルにプログラムされたことを示す各フラグを記憶する請求項６から９のいずれか一項記載の半導体装置。
【請求項１１】
不揮発性メモリセルを有するメモリセルアレイを具備する半導体装置の制御方法であって、
データを書き込むべき複数のメモリセルに第１レベルをプログラムするステップと、
その後前記データを書き込むべき複数のメモリセルに第２レベルをプログラムするステップを有する半導体装置の制御方法。
【請求項１２】
第２レベルにプログラムするための制御信号を入力するステップを有し、
前記データを書き込むべき複数のメモリセルに前記第２レベルをプログラムするステップは前記制御信号に応答し前記データを書き込むべき複数のメモリセルに前記第２レベルをプログラムする請求項１１記載の半導体装置の制御方法。
【請求項１３】
前記データを書き込むべき複数のメモリセルを含む領域内の少なくとも一つのメモリセルが前記第１レベルにプログラムされていることを示すフラグを記憶するステップを有し、
前記データを書き込むべき複数のメモリセルに第２レベルをプログラムするステップは、前記フラグを読み出すステップと、前記フラグが前記第１レベルがプログラムされたことを示す場合、前記データを書き込むべき複数のメモリセルに前記データを書き込むステップを含む請求項１１または１２記載の半導体装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体装置およびその制御方法に関し、特に不揮発性メモリセルを有する半導体装置およびその制御方法に関する。
【背景技術】
【０００２】
近年、データの書換えが可能な半導体装置である不揮発性メモリが広く利用されている。代表的な不揮発性メモリであるフラッシュメモリにおいては、メモリセルを構成するトランジスタが電荷蓄積層に電荷を蓄積させることにより、データを記憶する。電荷蓄積層としてフローティングゲートを用いるフローティングゲート型フラッシュメモリと窒化シリコン層からなるトラップ層に電荷を蓄積させるＳＯＮＯＳ（Silicon Oxide Nitride Oxide Silicon）型フラッシュメモリがある。【０００３】
これらフラッシュメモリにおいて、メモリセルへのデータの書き込み（すなわち、電荷蓄積層への電荷の蓄積）は、電荷蓄積層へ電子等を注入することにより行う。具体的には、例えばメモリセルを構成するトランジスタのソースとドレインとの間に高電圧を印加し、コントロールゲートに正電圧を印加する。これにより、ソースとドレインとの間で生じたホットエレクトロンが電荷蓄積層に注入され蓄積される。そして、電荷蓄積層に注入された電荷（電子）によりメモリセルを構成するトランジスタの閾値電圧が大きくなる。この閾値電圧を電流により測定することにより書き込まれたデータを読み出す。【０００４】
フラシュメモリの外部のユーザである例えばＣＰＵ等の回路がフラッシュメモリにデータを書き込んでいる際は、ＣＰＵはデータ書き込み以外の処理を行うことができない。そのため、ＣＰＵの処理効率を向上させるためには、メモリセルへのデータ書き込み時間を短縮することが求められている。【０００５】
特許文献１には、メモリセルへデータの書き込む際、メモリセルを構成するトランジスタのソース、ドレインおよびコントロールゲートに印加される各電圧、並びにこれらの印加時間を用途に応じ選択する技術が開示されている。【０００６】
【特許文献１】特開２００２−１９７８８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
図１（ａ）は、データの書き込み深さ（すなわち閾値電圧）に対するデータが保持される時間（データ保持時間）を示した図であり、図１（ｂ）は閾値電圧に対するデータを書き込むのに要する時間（データ書き込み時間）を示した図である。電荷蓄積層に蓄積された電荷は時間とともに消失する（すなわちデータが消失する）。一般的なフラッシュメモリでは、９０〜１２５℃で１０年や２０年といった長時間のデータ保持時間を確保することが求められる。長時間のデータ保持時間を確保ためには、電荷蓄積層に電荷を多く蓄積することが求められる。このためには、図１（ａ）のように、メモリセルを構成するトランジスタの閾値電圧を大きくすることが求められる。しかし、図１（ｂ）のように、電荷蓄積層に電荷を多く蓄積するためにはデータの書き込み時間が長くなる。データの書き込みの際、メモリセルに印加する電圧を大きくすればデータの書き込み時間を短縮できるが、メモリセルにダメージが加わる。また、閾値電圧の分布が大きくなってしまう。そこで、データの書き込みの際、メモリセルに印加される電圧を大きくすることは好ましくない。よって、データの書き込みの際、メモリセルに印加される電圧を一定とすると、図１（ａ）および図１（ｂ）のように、データ保持時間の確保と書き込み時間の短縮とはトレードオフの関係となる。【０００８】
特許文献１に記載の技術は、用途に応じ、データ保持時間および書き込み時間を適切に選択するものであり、データ保持時間の確保および書き込み時間の短縮を可能とするものではない。【０００９】
本発明は、上記課題に鑑み、データ保持時間の確保および書き込み時間の短縮を可能とする半導体装置およびその制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明は、不揮発性メモリセルを有するメモリセルアレイと、データを書き込むべき複数のメモリセルに第１レベルをプログラムし、その後前記データを書き込むべき複数のメモリセルに第２レベルをプログラムすることにより前記メモリセルアレイにデータをプログラムする制御回路と、を具備する半導体装置である。本発明によれば、第１レベルにプログラムする時間を短くすることによりデータの書き込み時間を短くすることができる。また、第２レベルのプログラムを行うことにより、求められるデータ保持時間を確保することができる。【００１１】
本発明は、前記第２レベルでプログラムされた前記複数のメモリセルのデータ保持時間は前記第１レベルでプログラムされた前記複数のメモリセルのデータ保持時間より長い半導体装置とすることができる。また、前記第２レベルでプログラムされた前記複数のメモリセルの閾値電圧は、前記第１レベルでプログラムされた前記複数のメモリセルの閾値電圧より大きい半導体装置とすることができる。本発明によれば、第１レベルの書き込み時間を短くでき、データ保持時間を確保することができる。【００１２】
本発明は、前記制御回路は、外部の回路から入力された第２レベルをプログラムするための制御信号に応答し、前記データを書き込むべき複数のメモリセルに第２レベルをプログラムする半導体装置とすることができる。本発明によれば、外部の回路、例えばＣＰＵ等の処理時間を節約することができる。【００１３】
本発明は、前記制御回路は、前記データを書き込むべき複数のメモリセルに第１レベルをプログラムした後に前記制御信号を受信する半導体装置とすることができる。本発明によれば、制御回路が処理していないときに、第２レベルのプログラムを行うことができる。【００１４】
本発明は、前記複数のメモリセルを含む領域内の少なくとも一つのメモリセルが前記第１レベルにプログラムされていることを示すフラグを記憶する記憶装置を具備し、前記制御回路は、前記記憶装置に記憶されたフラグを読み出し、読み出した前記フラグが前記第１レベルにプログラムされていることを示すフラグの場合、前記データを書き込むべき複数のメモリセルに前記第２レベルをプログラムする半導体装置とすることができる。本発明によれば、少なくとも一つのメモリセルに第１レベルがプログラムされている場合のみ第２レベルにプログラムする動作を行うため、無駄なプログラム動作を行うことを回避できる。【００１５】
本発明は、前記制御回路は、前記領域内の少なくとも一つのメモリセルに前記第１レベルをプログラムする場合、前記記憶装置に前記フラグを記憶させ、前記領域内のメモリセルに第２レベルをプログラムする場合、前記記憶装置の前記フラグをクリアする半導体装置とすることができる。本発明によれば、記憶装置に、領域内の少なくとも一つのメモリセルが第１レベルにプログラムされていることを示すフラグを適切に記憶することができる。【００１６】
本発明は、前記制御回路は、前記データを書き込むべき複数のメモリセルを含む領域内の各メモリセルのデータを読み出し、各メモリセルのうち前記第１レベルにプログラムされたメモリセルに第２レベルをプログラムすることにより、前記データを書き込むべき複数のメモリセルに前記第２レベルをプログラムする半導体装置とすることができる。本発明によれば、制御回路は外部の回路からのアドレスの指示を受けることなく、メモリセルへの第２レベルのプログラムを行うことができる【００１７】
前記領域は、前記メモリセルアレイの全部または一部の領域である半導体装置とすることができる。【００１８】
本発明は、前記メモリセルアレイは複数の前記領域を有し、前記記憶装置は、前記複数の領域それぞれに対応したフラグであって、前記複数の領域の１つに対応した少なくとも一つのメモリセルが前記第１レベルにプログラムされていることを示す各フラグを記憶する半導体装置とすることができる。本発明によれば、メモリセルアレイのメモリセルに第２レベルをプログラムする時間を短縮することができる。【００１９】
本発明は、不揮発性メモリセルを有するメモリセルアレイを具備する半導体装置の制御方法であって、データを書き込むべき複数のメモリセルに第１レベルをプログラムするステップと、その後前記データを書き込むべき複数のメモリセルに第２レベルをプログラムするステップを有する半導体装置の制御方法である。本発明によれば、第１レベルにプログラムする時間を短くすることによりデータの書き込み時間を短くすることができる。また、第２レベルのプログラムを行うことにより、求められるデータ保持時間を確保することができる。【００２０】
本発明は、第２レベルにプログラムするための制御信号を入力するステップを有し、
前記データを書き込むべき複数のメモリセルに前記第２レベルをプログラムするステップは前記制御信号に応答し前記データを書き込むべき複数のメモリセルに前記第２レベルをプログラムする半導体装置の制御方法とすることができる。本発明によれば、外部の回路、例えばＣＰＵ等の処理時間を節約することができる。【００２１】
本発明は、前記データを書き込むべき複数のメモリセルを含む領域内の少なくとも一つのメモリセルが前記第１レベルにプログラムされていることを示すフラグを記憶するステップを有し、前記データを書き込むべき複数のメモリセルに第２レベルをプログラムするステップは、前記フラグを読み出すステップと、前記フラグが前記第１レベルにプログラムされていることを示す場合、前記データを書き込むべき複数のメモリセルに前記データを書き込むステップを含む半導体装置の制御方法とすることができる。本発明によれば、少なくとも一つのメモリセルに第１レベルがプログラムされている場合のみ第２レベルにプログラムする動作を行うため、無駄なプログラム動作を行うことを回避できる。
【発明の効果】
【００２２】
本発明によれば、データ保持時間の確保および書き込み時間の短縮を可能とする半導体装置およびその制御方法を提供することができる。
【図面の簡単な説明】
【００２３】
【図１】図１（ａ）は、閾値電圧に対するデータ保持時間の関係を模式的に示した図であり、図１（ｂ）は閾値電圧に対する書き込み時間の関係を模式的に示した図である。
【図２】図２（ａ）ないし図２（ｃ）は本発明の原理を説明するための図である。
【図３】図３は実施例１に係るフラッシュメモリのブロック図である。
【図４】図４は実施例１に係るフラッシュメモリの制御回路がメモリセルに第１レベルを書き込む際のフローチャートである。
【図５】図５は実施例１に係るフラッシュメモリの制御回路がメモリセルに第２レベルを書き込む際のフローチャートである。
【図６】図６は実施例１に係るフラッシュメモリのメモリセルの各ステップでの状態を示した図である。
【図７】図７（ａ）および図７（ｂ）は実施例１に係るフラッシュメモリのタイミングチャートである。
【図８】図８は実施例２に係るフラッシュメモリの制御回路がメモリセルに第２レベルを書き込む際のフローチャートである。
【発明を実施するための最良の形態】
【００２４】
まず、図２（ａ）ないし図２（ｃ）を用い、本発明の原理について説明する。図２（ａ）はメモリセルアレイ内の各メモリセルに電荷が蓄積されていない消去状態（データが“１”のとき）のメモリセルを構成するトランジスタ（以下単にメモリセルという）の閾値電圧に対するメモリセルの数（ビット数）の分布を示した図である。ここで、Ａはデータが“１”か“０”か判定される閾値電圧であり、Ａ以下の閾値電圧のメモリセルはデータ“１”が書き込まれた状態であり、Ａ以上のそれはデータ“０”が書き込まれた状態である。全てのメモリセルはデータ“１”となっている。【００２５】
次に、データ“０”を書き込むべきメモリセル（図２（ａ）、図２（ｂ）では全てのメモリセルにデータ“０”を書き込む場合を示している）に第１レベルを書き込む。図２（ｂ）は各メモリセルに第１レベルを書き込んだ際の閾値電圧に対するメモリセルの数（ビット数）の分布を示した図である。Ｂ以上の閾値電圧はメモリセルに第１レベルが書き込まれた状態である。ＢはＡに非常に近い、このため図１（ａ）の関係からデータ保持時間は短いものの、図１（ｂ）の関係から書き込み時間は短い。このように、データ保持時間は短いものの書き込み時間の短い第１レベルをまず書き込む。このとき、第１レベルに書き込まれたメモリセルのデータ保持時間は例えば数分〜数日としておく。【００２６】
次に、第１レベルの書き込みが終了した後、第１レベルでのデータ保持時間を経過しない任意の時に、メモリセルへの第２レベルの書き込みを行う。図２（ｃ）は各メモリセルに第２レベルを書き込んだ際の閾値電圧に対するメモリセルの数（ビット数）の分布を示した図である。Ｃ以上の閾値電圧はメモリセルに第２レベルが書き込まれた状態である。ＣはＡから十分離れている、このため図１（ａ）の関係からデータ保持時間を長くできる。このとき、第２レベルに書き込まれたメモリセルのデータ保持時間はフラッシュメモリに要求されるデータ保持時間とする。【００２７】
以上のように、例えばＣＰＵからフラッシュメモリにデータを書き込む際は、メモリセルに第１レベルを書き込むため、書き込み時間を短くできる。その後、任意の時間にメモリセルに第２レベルを書き込むため、求められるデータ保持時間を確保することができる。このときは例えばＣＰＵの処理時間を拘束することなく第２レベルを書き込むため、ＣＰＵの処理時間を短縮することができる。
【実施例１】
【００２８】
以下、本発明を実現するための実施例１につき説明する。実施例１はＮＯＲ型のフラッシュメモリの例である。図３は実施例１に係るフラッシュメモリのブロック図である。メモリセルアレイ１４には不揮発性メモリセルとして複数のフラッシュメモリセル１２がマトリックス状に配置されている。メモリセル１２を構成するトランジスタのコントロールゲートはワードラインＷＬに、ドレインはビットラインＢＬに、ソースはソースラインに接続される。メモリセルアレイ１４は複数のメモリセルを有する複数のブロック１ないしｎに分割されている。【００２９】
ロジックコントローラ回路２６は、接続先となるマイクロコンピュータ等のユーザから制御用信号を一時的に格納し、入出力コントロール回路２０に出力する。入出力コントロール回路２０は、ユーザから入力されるコマンド、アドレスデータ等の信号が入力される。そして、入出力コントロール回路２０は、制御用信号に応答し、コマンドをコマンドレジスタ２４、アドレスをアドレスレジスタ２２、データをデータレジスタ／センスアンプ１６に出力する。また、データレジスタ／センスアンプ１６から入力したデータをユーザに出力する。【００３０】
アドレスレジスタ２２は、入出力コントロール回路２０から入力したアドレスに基づき、Ｘデコーダ１５およびＹデコーダ１８に選択するアドレスを出力する。Ｘデコーダ１５はメモリセルアレイ１４のワードラインＷＬを選択し、Ｙデコーダ１８はメモリセルアレイ１４のビットラインＢＬを選択する。これにより、データを書き込みまたは読み出すメモリセル１２が選択される。データレジスタ／センスアンプ１６は、入出力コントロール回路２０から入力されたデータを選択されメモリセル１２に、書き込む。また、選択されたメモリセル１２のデータを読み出し、入出力コントロール回路２０に出力する。【００３１】
制御回路１０は、後述するような制御を行う回路であり、アドレスレジスタ２２にアドレスを指示する。また、データレジスタ／センスアンプ１６との間でデータを入出力する。さらに、高電圧生成回路３０およびベリファイ電圧生成回路３２に電圧の生成を指示する。高電圧生成回路３０は、制御回路１０の指示に基づき選択されたメモリセル１２にデータの書き込みまたは読み出しのための電圧を供給する。ベリファイ電圧生成回路３２は、制御回路１０の指示に基づき選択されたメモリセル１２にベリファイのための電圧を供給する。【００３２】
メモリセル状態レジスタ２８は制御回路１０およびＸデコーダ１５に接続され、フラグを記憶する記憶装置である。フラグは複数のメモリセル１２を含むメモリセルアレイ１４内の領域内の少なくとも一つのメモリセル１２に第１レベルが書き込まれていることを示すものである。領域内の少なくとも一つのメモリセルに第１レベルが書き込まれている場合にはフラグは“１”、いずれのメモリセルにも第１レベルが書き込まれていない場合にはフラグは“０”となる。メモリセルアレイ１４内の領域はメモリセルアレイ１４全体であっても良いし、メモリセルアレイ１４内の複数のブロックごとでも良い。実施例１では、領域がメモリセルアレイ１４全体である。この場合、フラグは１つであり、メモリセル状態レジスタ２８には１つのフラグを記憶する。一方、後述する実施例２では、領域は複数のブロック毎である。この場合、フラグの数はブロックの数であり、ブロック分のフラグを記憶することができる。【００３３】
次に、実施例１に係るフラッシュメモリの動作につき、図４および図５のフローチャート並びに図６を用い説明する。実施例１はメモリセルアレイ１４全体を1つの領域とし、フラグはメモリセルアレイ１４に対応し１つの場合の例である。図６はフラッシュメモリの動作を説明するためにメモリセルアレイ１４内のメモリセルＣ１ないしＣ８を８個示した図である。メモリセルＣ１ないしＣ８はワードラインＷＬおよびビットラインＢＬに接続され、Ｘデコーダ１５およびＹデコーダ１８により選択される。メモリセルＣ１ないしＣ８の下に記載した“１”、“Ｌ１”および“Ｌ２”は、それぞれ各メモリセルが“１”状態（すなわち、図２(ａ)で閾値電圧がＡ以下）、第１レベルただし第２レベルではない状態（すなわち、図２（ｂ）および図２（ｃ）で閾値電圧がＢ以上Ｃ以下）並びに第２レベルの状態（すなわち、図２（ｃ）で閾値電圧がＣ以上）を示す。実際は、メモリセルアレイ１４には多くのメモリセルが含まれるが、以下の説明では、メモリセルを８個として説明する。【００３４】
図４は、メモリセルを第１レベルに書き込む際のフローチャートであり、制御回路１０が行う制御である。まず初期状態は、メモリセル状態レジスタ２８にはフラグ“０”が記憶されている。図６より、メモリセルＣ７にはデータ“０”として第２レベル“Ｌ２”が書き込まれており、その他のメモリセルはデータ“１”が記憶されている。図４を参照に、メモリセル状態レジスタ２８にフラグ“１”を記憶する（ステップＳ１０）。ユーザより入出力コントロール回路２０を介しアドレスレジスタ２２に入力されたアドレスのメモリセル（すなわち、Ｘデコーダ１５およびＹデコーダ１８に選択されたメモリセル）に対し第１レベルのベリファイを行う（ステップＳ１２）。すなわち、メモリセルの閾値電圧がＢ以上かを検査する。ベリファイは、制御回路１０がベリファイ電圧生成回路３２に信号を出力し、ベリファイ電圧生成回路３２がメモリセルにベリファイ用の電圧を供給することにより行う。【００３５】
ベリファイがフェイルの場合、すなわちメモリセルの閾値電圧がＢ以下のとき、メモリセルに第１レベルを書き込む（ステップＳ１４）。第１レベルへの書き込みは、制御回路１０が高電圧生成回路３０に信号を出力し、高電圧生成回路３０がメモリセルに高電圧を供給することにより行う。ベリファイがパスの場合ステップＳ１６に進む。図６より、メモリセルＣ１は “１”の状態のため、第１レベル“Ｌ１”の書き込みを行う（ステップＳ１４）再度ベリファイを行う（ステップＳ１２）。ステップＳ１６において、最後のアドレスか判定する。最後のアドレスでない場合、ステップＳ１８において、次のアドレスのメモリセルＣ２に進む。このようにして、ユーザからのアドレスの入力に従いＣ８までのメモリセルに第１レベルを書き込む。図６では、Ｃ１、Ｃ２、Ｃ５およびＣ７がデータを書き込むべきメモリセルである。メモリセルＣ７はすでに第２レベルのため第１レベルの書き込みは行わず、メモリセルＣ１、Ｃ２およびＣ５に第１レベルを書き込む。ステップＳ１６において、最後のアドレスであるメモリセルＣ８であれば終了する。【００３６】
図５は、メモリセルを第２レベルに書き込む際のフローチャートであり、制御回路１０が行う制御である。ユーザからメモリセルアレイ１４へのデータ書き込みが終了後、ユーザからの第２レベルを書き込むための制御信号がロジックコントローラ回路２６、入出力コントロール回路２０およびコマンドレジスア２４を介し制御回路１０に入力する。その制御信号に基づき、以下の制御を開始する。メモリセル状態レジスタ２８よりフラグを読み出す（ステップＳ２０）。フラグが“１”か判断する（ステップＳ２２）。フラグが“０”の場合終了する。フラグが“１”の場合、最初のアドレス（すなわちメモリセルＣ１のアドレス）をアドレスレジスタ２２に指示する。Ｘデコーダ１５およびＹデコーダ１８により選択されたメモリセルのデータを読み出す（ステップＳ２４）。メモリセルからのデータの読み出しによりデータレジスタ／センスアンプ１６にメモリセルのデータが保持される。【００３７】
第２レベルのベリファイを行う（ステップＳ２８）。ベリファイでは、データレジスタ／センスアンプ１６のデータが“０”の場合は、メモリセルの閾値電圧が図２（ｂ）のＣ以上かを検査する。フェイルの場合、すなわちメモリセルの閾値電圧がＣ以下のとき、メモリセルに第２レベルを書き込む（ステップＳ２９）。再度ベリファイを行う（ステップＳ２８）。なお、ステップＳ２８およびＳ２９では図４のステップＳ１２およびＳ１４と同様に、制御回路１０の指示により、ベリファイ電圧生成回路３２および高電圧生成回路３０よりメモリセルに電圧が供給される。ベリファイがパスの場合ステップＳ３０に進み。ステップＳ３０において、最後のアドレスか判定する。最後のアドレスでない場合、ステップＳ３２において、次のアドレスのメモリセルＣ２に進む。このようにして、メモリセルＣ８まで繰り返す。図６ではメモリセルＣ１、Ｃ２、Ｃ５およびＣ７が第１レベル“Ｌ１”が書き込まれたメモリセルであり、これらのメモリセルに第２レベル“Ｌ２”を書き込む。なお、Ｃ７はベリファイ（ステップＳ２８）前に既に第２レベル“Ｌ２”のため、第２レベル“Ｌ２”の書き込み（ステップ２９）は行われない。ステップＳ３０において、最後のアドレスであるメモリセルＣ８であれば、メモリセル状態レジスタ２８のフラグを“０”にし（ステップＳ３４）終了する。【００３８】
図７（ａ）および図７（ｂ）は、実施例１の効果を説明するため実施例１と比較例のデータを記憶する際のタイミングチャートを示した図である。まず、図７（ａ）を参照に、比較例として、第１レベル、第２レベルに分けずにデータを書き込む場合について説明する。ユーザであるＣＰＵ等よりデータを書き込むためのコマンドＯｐが入力される。次にユーザより書き込むアドレスおよびデータＤ１が入力される。その後、メモリセルアレイの指定されたアドレスにデータＤ１が書き込まれる。同様に、アドレスおよびデータＤ２、Ｄ３およびＤ４が書き込まれる。データＤ４が書き込まれるまでユーザであるＣＰＵはビジー状態となりその他の処理を行うことはできない。ＣＰＵのビジー状態の時間はＴ１である。【００３９】
図７（ｂ）を参照に、実施例１では、ユーザよりデータを書き込むためのコマンドＯｐ１が入力される。次にユーザより書き込むアドレスおよびデータＤ１が入力される。その後、指定されたアドレスＤ１に第１レベルが書き込まれる。同様に、Ｄ２、Ｄ３およびＤ４に第１レベルが書き込まれる。データＤ１ないしＤ４に第１レベル書き込まれている間は、制御回路１０から制御回路１０がビジー状態であることを示す制御回路ビジー信号が出力される。ユーザは制御回路ビジー信号がオフになると、第２レベルへの書き込みを行うための制御信号Ｏｐ２を制御回路１０に出力する。制御回路１０は制御信号Ｏｐ２に基づき、Ｄ１ないしＤ４に第２レベルを書き込む。制御回路１０が第２レベルを書き込む間は再び制御回路ビジー信号を出力する。ユーザであるＣＰＵがビジー状態となるのはコマンドＯｐ１出力からコマンドＯｐ２出力までであり、その時間はＴ２である。このように、実施例１によれば、第１レベルへの書き込み時間が短く、第２レベルへの書き込みは制御回路１０が行うため、ＣＰＵのビジー状態の時間を短縮することができる。実施例１においては、第１レベルの書き込み終了後、すぐに第２レベルの書き込みを始めているが、制御回路ビジー信号がオフの任意の時に行うことができる。【００４０】
実施例１に係るフラッシュメモリは、フラッシュメモリセルを有するメモリセルアレイを有し、制御回路１０は、データを書き込むべき複数のメモリセルに第１レベルを書き込み、その後、データを書き込むべき複数のメモリセルを第２レベルに書き込むことによりメモリセルアレイ１４にデータをプログラムしている。これにより、第１レベルの書き込み時間を短くすることによりデータの書き込み時間を短くすることができる。また、第２レベルの書き込みを行うことにより求められるデータ保持時間を確保することができる。【００４１】
また、第２レベルに書き込まれた複数のメモリセルのデータ保持時間は第１レベルで書き込まれた複数のメモリセルのデータ保持時間より長い。また、第２レベルで書き込まれた前記複数のメモリセルの閾値電圧は、第１レベルで書き込まれた複数のメモリセルの閾値電圧より大きい。これにより、第１レベルの書き込み時間を短くでき、データ保持時間を確保することができる。【００４２】
さらに、実施例１に係るフラッシュメモリは、データを記憶すべき複数のメモリセルを含む領域（実施例１ではメモリセルアレイ１４全体）内の少なくとも一つのメモリセルに第１レベルが書き込まれていることを示すフラグを記憶するメモリセル状態レジスタ２８（記憶装置）を有し、制御回路１０は、ステップＳ２０のように、メモリセル状態レジスタ２８に記憶されたフラグを読み出し、ステップＳ２２ように、読み出したフラグが“１”（第１レベルに書き込まれていることを示すフラグ）の場合、ステップＳ２９のようにデータを記憶すべき複数のメモリセルに第２レベルを書き込んでいる。これにより、少なくとも一つのメモリセルに第１レベルが書き込まれている場合のみ第２レベルに書き込む動作を行うため、無駄な書き込み動作を行うことを回避できる。【００４３】
制御回路１０は、ステップＳ１０のように、メモリセルアレイ１４内の少なくとも一つのメモリセルに第１レベルを書き込む場合、メモリセル状態レジスタ２８(記憶装置)にフラグを記憶し、ステップＳ３４のように、メモリセルアレイ１４内のメモリセルに第２レベルの書き込む場合、メモリセル状態レジスタ２８のフラグをクリア（“０”を記憶する）している。これにより、メモリセル状態レジスタ２８に、メモリセルアレイ１４全体内の少なくとも一つのメモリセルが第１レベルに書き込まれていることを示すフラグを適切に記憶することができる。【００４４】
制御回路１０は、複数のメモリセルに第２レベルを書き込む際、ステップＳ２４のように、メモリセルアレイ１４内の各メモリセルのデータを読み出し、ステップＳ２８およびＳ２９のように、各メモリセルのうち第１レベルのメモリセルに第２レベルを書き込んでいる。これにより、制御回路１０はユーザ等からのアドレスの指示を受けることなく、メモリセルへの第２レベルの書き込みを行うことができる。【００４５】
図７（ｂ）のように、制御回路１０は、ユーザ(外部の回路)から入力された第２レベルを書き込むための制御信号Ｏｐ２に応答し、データを書き込むべき複数のメモリセルに第２レベルを書き込んでいる。このように、制御信号Ｏｐ２によりメモリセルを第２レベルに書き込むことにより、任意のときにメモリセルを第２レベルに書き込むことができ、ユーザであるＣＰＵのビジー時間を短縮することができる。【００４６】
制御回路１０は、データを記憶すべき複数のメモリセルに第１レベルを書き込んでいる間は、ビジー信号を出力する。よって、制御回路１０は、データを記憶すべき複数のメモリセルに第１レベルを書き込んだあとに、制御信号Ｏｐ２を受信する。これにより、制御回路１０が処理していないときに、第２レベルの書き込みを行うことができる。
【実施例２】
【００４７】
実施例２はメモリセルアレイ１４が複数のブロック(領域)を有し、メモリセル状態レジスタ２８は、複数のブロック（領域）それぞれに対応したフラグであって、複数のブロックの１つに対応した少なくとも一つのメモリセルが第１レベルに書き込まれていることを示す各フラグを記憶する例である。メモリセル状態レジスタ２８には複数のブロックごとのフラグを記憶することができる。第１レベルの書き込みは、ユーザより入力されるアドレスに基づき行うため、各ブロックにまたがり図４と同様のフローで行うことができる。ただし、ステップＳ１０は各ブロックに対応するフラグに“１”を記憶する。【００４８】
図８はメモリセルアレイ１４を第２レベルに書き込む際のフローチャートであり、制御回路１０が行う制御である。ユーザからの第２レベルを書き込むための制御信号が制御回路１０に入力する。その制御信号に応答し、以下の制御を開始する。メモリセル状態レジスタ２８より最初のブロックに対応するフラグを読み出す（ステップＳ４０）。フラグが“１”か判断する（ステップＳ４２）。フラグが“０”の場合、ステップＳ４８に進む。フラグが“１”の場合、図５のステップＳ２４からＳ３０を行い、ブロック内のメモリセルに第２レベルを書き込む（ステップＳ４４）。メモリセル状態レジスタ２８のブロックに対応するフラグ“０”を記憶する（ステップＳ４６）。最後のブロックか判断する（ステップＳ４８）。最後のブロックでなければ、次のブロックに進む（ステップＳ５０）。ステップＳ４８で最後のステップであれば終了する。【００４９】
実施例２によれば、ブロックごとに第１レベルが書き込まれたメモリセルがあるか判断しているため、図８のステップＳ４４すなわち図５のステップＳ２４からＳ３０は、必要なブロックのみ行うことができる。よって、メモリセルアレイ１４のメモリセルに第２レベルを書き込む時間を短縮することができる。【００５０】
実施例１および実施例２において、ユーザからの信号によりメモリセル状態レジスタ２８の値を書き換えることが可能とすることもできる。例えば何年か経過後、メモリセル状態レジスタ２８の値を“１”とし、第２レベルへの書き込みを行うことにより、閾値電圧の小さくなったメモリセルの閾値電圧を第２レベルとすることができる。【００５１】
実施例１および実施例２では、ユーザ（外部の回路）としてＣＰＵを例に説明したが、ユーザ（外部の回路）は、実施例１および２に係るフラッシュメモリを有する半導体装置内のＣＰＵ等の演算回路やフラッシュメモリを有する半導体装置外のＣＰＵ等の演算回路であってもよい。また、ユーザからの制御信号Ｏｐ２に基づき第２レベルの書き込みを行う例を示したが、制御回路１０が任意の時間に第２レベルの書き込みを行っても良い。【００５２】
さらに、実施例１および実施例２は不揮発性メモリとして、ＮＯＲ型のフラッシュメモリの例であったが、本発明はＮＡＮＤ型のフラッシュメモリにも適用することができる。またフローティングゲート型フラッシュメモリ、ＳＯＮＯＳ型フラッシュメモリに適用することもできる。【００５３】
さらに、実施例１および実施例２では、メモリセルに第１レベルおよび第２レベルに書き込む例を説明したが、消去を含め、メモリセルに第１レベルおよび第２レベルにプログラムする場合であってもよい。【００５４】
以上、本発明の好ましい実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である
【図１】
2007043133.tif 000003
【図２】
2007043133.tif 000004
【図３】
2007043133.tif 000005
【図４】
2007043133.tif 000006
【図５】
2007043133.tif 000007
【図６】
2007043133.tif 000008
【図７】
2007043133.tif 000009
【図８】
2007043133.tif 000010
【国際調査報告】
2007043133.tif 000011
2007043133.tif 000012
2007043133.tif 000013