(57)【特許請求の範囲】
【請求項１】
中央処理装置と、不揮発性メモリとを１の半導体基板上に形成されたデータ処理装置であって、
前記中央処理装置は、前記不揮発性メモリに対してアクセス動作指示を行い、前記不揮発性メモリへのデータ書込み指示においては書込みデータを前記不揮発性メモリへ供給し、
前記不揮発性メモリは、複数のワード線と、複数のビット線と、複数の不揮発性記憶素子とを備え、同一行の不揮発性記憶素子の制御端子が共通のワード線に接続され同一列の不揮発性記憶素子のデータ入出力端子が共通のビット線に接続されてなるメモリアレイと、
上記複数の不揮発性記憶素子の書込みデータを保持するデータレジスタと、
該データレジスタに保持されている書込みデータに応じて上記ビット線に書込み電圧を印加する書込み制御回路と、を備え、上記不揮発性記憶素子のしきい値を上記ビット線への書込み電圧の印加で変化させてデータを記憶させるように構成された不揮発性メモリにおいて、
上記書込み制御回路は、選択可能な１又は所定の複数のビット線単位に所定の開始時間間隔をおいて上記書込み電圧を順次印加する制御を行い、上記１又は所定の複数のビット線に接続される不揮発性記憶素子がしきい値電圧を変化させる対象に該当しない場合、当該不揮発性記憶素子へ上記書込み電圧を印加するタイミングにしきい値電圧を変化させる対象の他の不揮発性記憶素子に上記書込み電圧を印加する制御を行い、上記所定の開始時間間隔は上記書き込み制御回路に設定された情報に応じて変更可能とされ、
上記所定の開始時間間隔は、直前にビット線に印加を開始した書込み電圧の印加期間中において次のビット線に書込み電圧を印加開始するまでの時間間隔が変更可能なものとされることを特徴とするデータ処理装置。
【請求項２】
上記書込み電圧は、書込み電圧が印加されるべきいずれか２以上の複数のビット線に並行して印加されるように構成されていることを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
上記書込み電圧が印加される上記１又は所定の複数のビット線の数が変更可能に構成されていることを特徴とする請求項２に記載のデータ処理装置。
【請求項４】
上記書込み電圧が印加される上記１又は所定の複数のビット線の数を指定する値を設定するためのレジスタを備えていることを特徴とする請求項３に記載のデータ処理装置。
【請求項５】
上記書込み電圧の１回の印加時間が変更可能に構成されていることを特徴とする請求項１乃至３の何れか１項に記載のデータ処理装置。
【請求項６】
上記書込み電圧の印加時間はクロック信号に基づいて決定され、該クロック信号の周期が変更されることにより上記書込み電圧の印加時間が変更されるように構成されていることを特徴とする請求項５に記載のデータ処理装置。
【請求項７】
基準クロック信号に基づいて上記周期の異なるクロック信号を発生可能な可変分周回路と、該可変分周回路における分周比を指定する値を設定するためのレジスタとを備え、上記分周比を変えることで上記クロック信号の周期が変更されるように構成されていることを特徴とする請求項６に記載のデータ処理装置。
【請求項８】
上記クロック信号および上記データレジスタに保持されている書込みデータに基づいて、上記書込み電圧を順次出力するシフトレジスタを備えていることを特徴とする請求項５又は７に記載のデータ処理装置。
【請求項９】
上記シフトレジスタは、互いに位相が異なる２つのクロック信号のいずれかでシフト動作可能に構成され、上記データレジスタに保持されている書込みデータに応じて上記２つのクロック信号のうち供給すべきクロック信号を切り替えて、上記１又は所定の複数のビット線に接続される不揮発性記憶素子がしきい値電圧を変化させる対象に該当しない場合、当該不揮発性記憶素子へ上記書込み電圧を印加するタイミングにしきい値電圧を変化させる対象の他の不揮発性記憶素子に接続されるビット線に順次書込み電圧を印加して行くように構成されていることを特徴とする請求項８に記載のデータ処理装置。
【請求項１０】
上記シフトレジスタは、各シフト段にスルーパスおよびシフトパスと、該スルーパスとシフトパスとを切り替える切替え手段とを備え、上記クロック信号によってシフト動作されるとともに上記データレジスタに保持されている書込みデータに応じて上記切替え手段が上記スルーパスとシフトパスとを切り替えて、書込みデータのビットが不揮発性メモリのしきい値電圧を変化させる対象に該当しないことを示すときはそのビットを飛ばして不揮発性記憶素子のしきい値電圧を変化させる対象に該当する他のビットに対応したビット線に順次書込み電圧を印加して行くように構成されていることを特徴とする請求項８に記載のデータ処理装置。
【請求項１１】
上記シフトレジスタと上記ビット線との間に、上記シフトレジスタの各シフト段の出力信号に基づいて複数のビット線のいずれか１つに書込み電圧を印加可能にする分配手段を備えていることを特徴とする請求項８乃至１０の何れか１項に記載のデータ処理装置。
【請求項１２】
上記データレジスタは上記各ビット線の本数に対応したビット数の書込みデータを保持可能に構成され、上記データレジスタと上記シフトレジスタとの間には、上記データレジスタの複数のビットのうち１つを選択して上記シフトレジスタのいずれかのシフト段に供給する選択手段を備えていることを特徴とする請求項８乃至１１の何れか１項に記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電気的に書込み消去可能な不揮発性メモリにおける書込み電圧の印加方式に適用して有効な技術に関し、例えばブロック単位で一括してデータの消去が可能なフラッシュメモリおよびそれを内蔵したマイクロコンピュータに利用して有効な技術に関する。
【背景技術】
【０００２】
フラッシュメモリは、コントロールゲートおよびフローティングゲートを有する２層ゲート構造のＭＯＳＦＥＴからなる不揮発性記憶素子を使用しており、１個のトランジスタでメモリセルを構成することができる。従来、フラッシュメモリにおける書き込み方式には、コントロールゲートと基板（いわゆるウェル領域）との間に、またはコントロールゲートとソースまたはドレインとの間に電圧を印加してＦＮトンネル現象を利用してフローティングゲートに電荷を注入または放出してしきい値を変化させる方式と、コントロールゲートに高電圧を印加した状態でソース・ドレイン間に電流を流してチャネルで発生したホットエレクトロンをフローティングゲートに注入してしきい値を変化させる方式とがある。
【０００３】
ＦＮトンネルによる書込み方式は書込み電流が小さいため例えば１２８バイトのようなワード線単位での書込みが可能であり、一括書込みによって書込みができるという利点がある。一方、ホットエレクトロンによる書込み方式は書込み電流が大きいのでワード線単位の一括書込みは困難であるため、１バイトのような単位での書込みが行なわれている。ＦＮトンネルによる書込み方式を採用する場合の記憶素子は、耐圧との関係で微細化が困難であり集積度が上がらない。そのため、大容量化する上ではホットエレクトロンによる書込み方式の方が有利である。
【０００４】
なお、いずれの書込み方式を採用する場合も、フラッシュメモリにおけるデータの消去は、ブロック単位すなわちウェル領域を共通にする複数のセクタに対して同時に行なわれるように構成されることが多い。
【０００５】
【特許文献１】特開平５−６２４８４号公報
【特許文献２】特開平５−３２５５７４号公報
【特許文献３】特開平４−３８７００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明者らは、ホットエレクトロンによる書込み方式を採用したフラッシュメモリにおいて、書込み所要時間を短縮する技術について詳しく検討した。その結果、ホットエレクトロンによる書き込み方式の場合、書込みデータが“０”であるビットについてのみ記憶素子に書込み電圧を印加し書込みデータが“１”であるビットは記憶素子に対する書込み電圧の印加を行なっていないので、そのようなビットの書込みは飛ばしてやることで全体としての書込み所要時間を短縮できるという着想を得た。
【０００７】
従来、ホットエレクトロンによる書込み方式を採用したフラッシュメモリにおいて、書込み所要時間を短縮する方式としては、例えば各ビットに対する書込みタイミングを少しずつずらして書込みパルスを重ね合わせる方式が提案されている（特開平５−６２４８４号公報，特開平５−３２５５７４号公報，特開平４−３８７００号公報）。しかしながら、書込みタイミングを少しずつずらす方式は、１ビットずつ順番に書き込んで行く方式に比べて確かに書込み所要時間は短くなるものの、例えば書込みデータが電圧の印加が不要な“１”であるような場合にも書込み動作を行なう（ライトサイクルを入れている）ため無駄な時間を消費している。これと共に、書込みデータのパターンすなわち“０”のビットが多いか少ないかによって書込み電流の変動が大きくなるため、内部に書込み電圧を発生する昇圧回路を有する場合には、昇圧回路の発生電圧が変動し易くなり安定した書込み動作が行なえないという問題点がある。
【０００８】
この発明の目的は、トータルの書込み所要時間を短縮可能な不揮発性メモリおよびそれを内蔵したマイクロコンピュータ等の半導体集積回路を提供することにある。
【０００９】
この発明の他の目的は、書込み電流を一定にし、昇圧回路の発生電圧の変動を少なくして安定した書込みが行なえる不揮発性メモリおよびそれを内蔵したマイクロコンピュータ等の半導体集積回路を提供することできるようにすることにある。
【００１０】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１１】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１２】
すなわち、ホットエレクトロンによる書込み方式を採用したフラッシュメモリのような不揮発性メモリにおいて、書込み時にデータを判定して書込みデータが論理“１”（もしくは論理“０”）であるビットの書込みは飛ばして、書込みデータが論理“０”（もしくは論理“１”）であるビットに対応した書込みを連続して行なって行くようにしたものである。
【００１３】
より具体的には、複数のワード線と、複数のビット線と、複数の不揮発性記憶素子とを備え、同一行の不揮発性記憶素子の制御端子が共通のワード線に接続され同一列の不揮発性記憶素子のデータ入出力端子が共通のビット線に接続されてなるメモリアレイと、上記複数の不揮発性記憶素子の書込みデータを保持するデータレジスタと、該データレジスタに保持されている書込みデータに応じて上記ビット線に書込み電圧を印加する書込み制御回路とを備え、上記不揮発性記憶素子のしきい値を上記ビット線への書込み電圧の印加で変化させてデータを記憶させるように構成された不揮発性メモリにおいて、上記書込み制御回路は、上記データレジスタに保持されている書込みデータのビットが論理“１”（もしくは論理“０”）のときはそのビットを飛ばして論理“０”（もしくは論理“１”）のビットに対応したビット線に対して順次上記書込み電圧を印加して行くように構成した。
【００１４】
上記した手段によれば、書込み時にデータを判定して書込みデータが論理“１”（もしくは論理“０”）であるビットの書込み時間の分だけトータルの書込み所要時間を短縮することができる。また、各サイクルでそれぞれデータの書込みが実行されるつまり書込みがなされないサイクルが生じないため、従来方式に比べて書込み電流の変動が少なくなり、これによって昇圧回路の発生電圧の変動を小さくなって安定した書込みが行なえるようになる。
【００１５】
また、上記書込み電圧は、書込み電圧が印加されるべきいずれか２以上の複数のビット線に並行して印加されるように構成するのが望ましい。これによって、１ビットずつ書込みを行なっていく方式に比べてトータルの書込み所要時間が短縮されるようになる。
【００１６】
さらに、望ましくは、上記書込み電圧が並行して印加されるビット線の数（書込みパルスの重ね合わせ数）を変更可能に構成する。これによって、回路のバラツキ等に応じて並行して印加される書込み電圧の数を変更することで、書込み電圧を発生する昇圧回路の能力を有効に引き出すことができる。
【００１７】
ここで、上記書込み電圧が並行して印加されるビット線の数を指定する値を設定するためのレジスタを設けるようにする。これによって、ＣＰＵ等が上記レジスタの値を設定するだけで容易に書込み電圧の数を変更することができるようになる。
【００１８】
さらに、上記書込み電圧の１回の印加時間を変更可能に構成する。これにより、記憶素子の特性等に応じて並行して印加される書込み電圧の数を変更することで、最適な書込みを最も短い時間で終了させることができる。
【００１９】
上記書込み電圧の印加時間はクロック信号に基づいて決定され、該クロック信号の周期が変更されることにより上記書込み電圧の印加時間が変更されるように構成すると良い。これにより、書込み電圧の印加時間の変更が、クロック信号の周期の変更という簡単な方法で実現することが可能となる。より具体的には、基準クロック信号に基づいて周期の異なるクロック信号を発生可能な可変分周回路と、該可変分周回路における分周比を指定する値を設定するためのレジスタとを設け、分周比を変えることで上記クロック信号の周期が変更されるように構成することによって、容易に書込み電圧の印加時間を変更可能な不揮発性メモリを実現することができる。上記書込み電圧が並行して印加されるビット線の数を指定する値を設定するためのレジスタや可変分周回路における分周比を指定する値を設定するためのレジスタに設定する値は、不揮発性メモリ内の所定のメモリセルに記憶するようにしても良い。
【００２０】
さらに、上記クロック信号および上記データレジスタに保持されている書込みデータに基づいて、上記書込み電圧を順次出力するシフトレジスタを設ける。これにより、ＣＰＵ等が上記レジスタの値を設定するだけで容易に書込み電圧の印加時間を変更することができるようになる。
【００２１】
また、上記シフトレジスタは、互いに位相が異なる２つのクロック信号のいずれかでシフト動作可能に構成され、上記データレジスタに保持されている書込みデータに応じて上記２つのクロック信号のうち供給すべきクロック信号を切り替えて、書込みデータのビットが論理“１”（もしくは論理“０”）のときはそのビットを飛ばして論理“０”（もしくは論理“１”）のビットに対応したビット線に順次書込み電圧を印加して行くように構成する。
【００２２】
あるいは、上記シフトレジスタは、各シフト段にスルーパスおよびシフトパスと、該スルーパスとシフトパスとを切り替える切替え手段とを備え、上記クロック信号によってシフト動作されるとともに上記データレジスタに保持されている書込みデータに応じて上記切替え手段が上記スルーパスとシフトパスとを切り替えて、書込みデータのビットが論理“１”（もしくは論理“０”）のときはそのビットを飛ばして論理“０”（もしくは論理“１”）のビットに対応したビット線に順次書込み電圧を印加して行くように構成しても良い。
【００２３】
さらに、上記シフトレジスタと上記ビット線との間に、上記シフトレジスタの各シフト段の出力信号に基づいて複数のビット線のいずれか１つに書込み電圧を印加可能にする分配手段を設ける。また、上記データレジスタは上記各ビット線の本数に対応したビット数の書込みデータを保持可能に構成され、該シフトレジスタと上記シフトレジスタとの間には、上記データレジスタの複数のビットのうち１つを選択して上記シフトレジスタのいずれかのシフト段に供給する選択手段を設ける。これにより、シフトレジスタの各段を複数のビット線で共有することが可能となり、シフトレジスタの段数を減らして回路を簡略するとともに、レイアウトが容易となる。
【００２４】
さらに、複数のビット線に対する書込み電圧の印加を１通り行なって１本のワード線に接続された複数の記憶素子に書込みが終了した後、書込みが行なわれた記憶素子を含むワード線に接続された記憶素子に対してベリファイのためのデータ読出しを行なって、未書込みの記憶素子があったときは当該未書込みの記憶素子が接続されているビット線に対してのみ、前の書込み動作時に印加した書込み電圧の印加時間と異なる時間で順次書込み電圧を印加して行くようにする。
【００２５】
また、上記ベリファイのためのデータ読出しを行なって未書込みの記憶素子があったときは、当該未書込みの記憶素子が接続されているビット線に対して、前の書込み動作時に印加した書込み電圧と異なる書込み電圧を順次印加して行くようにしても良い。これにより、書込み過ぎによってしきい値が必要以上に大きく変化するのを防止することができる。
【００２６】
また、上記ベリファイのためのデータ読出しを行なって未書込みの記憶素子があったときは、当該未書込みの記憶素子が接続されているビット線に対して、前の書込み動作時に印加した書込み電圧と異なる書込み電圧を順次印加して行くとともに、上記複数のビット線に並行して印加される書込み電圧の数を前の書込み動作時と変えるようにするのが良い。
【発明の効果】
【００２７】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００２８】
すなわち、この発明に従うと、書込みデータのビットが論理“１”または論理“０”のときはそのビットを飛ばして論理“０”または論理“１”のビットに対応したビット線に対してのみ順次上記書込み電圧を印加して行くため、書込みデータが論理“１”（もしくは論理“０”）であるビットの書込み時間の分だけトータルの書込み所要時間を短縮可能な不揮発性メモリおよびそれを内蔵したマイクロコンピュータを実現することができる。
【００２９】
また、各サイクルでそれぞれデータの書込みが実行されるつまり書込みがなされないサイクルが生じないため、従来方式に比べて書込み電流の変動が少なくなり、これによって昇圧回路の発生電圧の変動を小さくなって安定した書込みが行なえる不揮発性メモリおよびそれを内蔵したマイクロコンピュータを実現することができる。
【発明を実施するための最良の形態】
【００３０】
以下、本発明の実施例を図面を用いて説明する。図１は、本発明が適用されたフラッシュメモリを内蔵したマイクロコンピュータ（以下、フラッシュ内蔵マイコンと称する）の概略構成が示されている。特に制限されないが、図１に示されている各回路ブロックは、単結晶シリコンのような１個の半導体チップ上に形成されている。
【００３１】
図１において、符号ＦＬＡＳＨで示されているのはコントロールゲートとフローティングゲートを有するＭＯＳＦＥＴからなるメモリセルがマトリックス状に配置されたメモリアレイを備えたフラッシュメモリ、ＦＬＣはフラッシュメモリに対する書込みや消去などを行なうフラッシュコントローラ、ＣＰＵはチップ全体の制御を司る中央処理ユニット、ＲＡＭはデータを一時記憶したり中央処理ユニットＣＰＵの作業領域を提供するランダムアクセスメモリ、ＰＲＰは各種タイマ回路やＡ／Ｄ変換回路、システム監視用のウォッチドッグタイマなどの周辺回路、ＢＵＳは上記中央処理ユニットＣＰＵとフラッシュメモリＦＬＡＳＨ、フラッシュコントローラＦＬＣ、ＲＡＭを接続する内部バス、Ｉ／Ｏは内部バスＢＵＳ上の信号を外部バスへ出力したり外部バス上の信号を取り込んだりする入出力バッファや外部装置との間でシリアル通信を行なうシリアル通信ポートなどの入出力ポートを含むインタフェース回路、ＢＳＣは内部バスＢＵＳのバス占有権の制御等を行なうバスコントローラである。
【００３２】
図１には示されていないが、上記回路ブロックの他に、ＣＰＵに対する割込み要求の発生および優先度を判定して割り込みをかける割込み制御回路や、ＲＡＭとフラッシュメモリＦＬＡＳＨ等との間のＤＭＡ（ダイレクトメモリアクセス）転送を制御するＤＭＡ転送制御回路、システムの動作に必要なクロック信号を発生する発振器などが必要に応じて設けられることもある。
【００３３】
図２には、上記フラッシュメモリ回路ＦＬＡＳＨの概略構成が示されている。図２において、１１は図４（Ｂ）に示されているようなコントロールゲートＣＧとフローティングゲートＦＧを有するＭＯＳＦＥＴからなる不揮発性記憶素子としてのメモリセルがマトリックス状に配置されたメモリアレイ、１２は外部から入力された書込みデータを例えば１２８バイトのような１ワード線に接続されたメモリセルの数に対応したビット数のデータを保持するデータレジスタ、１３はこのデータレジスタ１２に保持されたデータに基づいて上記メモリアレイ１１に対して書込みを行なう書込み制御回路である。なお、上記データレジスタ１２は、ワード線方向のメモリセルの数すなわちメモリアレイ１１内のビット線の数に対応したビット数でなくてもよく、その整数分の１のビット数としこれをセレクタ（デマルチプレクサ）を介して対応する複数のビット線の中のいずれかに供給できるように構成してもよい。
【００３４】
また、１４はアドレスバスより取り込まれたＸアドレス信号をデコードしてメモリアレイ１１内のワード線の中からＸアドレスに対応した１本のワード線を選択するＸデコーダ、１５はアドレスバスより取り込まれたＹアドレス信号をデコードして１セクタ内の１バイト（あるいは１ワード）のデータを選択するＹデコーダ、１６はメモリセルアレイ１１のビット線に読み出されたデータを増幅して出力するセンスアンプである。
【００３５】
さらに、この実施例のフラッシュメモリ回路には、上記各回路ブロックの他、外部からの制御信号に基づいてフラッシュメモリ内の各回路ブロックへの制御信号を生成する制御回路１７、センスアンプ１６とデータバスとの間にあってデータ信号の入出力を行なうＩ／Ｏバッファ回路１８、外部から供給される電源電圧Ｖccに基づいて書込み電圧、消去電圧、読出し電圧、ベリファイ電圧等チップ内部で必要とされる電圧を生成しメモリの動作状態に応じてこれらの電圧の中から所望の電圧を選択して書込み制御回路１３やＸデコーダ１４に供給する電源回路１９等が設けられている。
【００３６】
フラッシュコントローラＦＬＣは、例えばコントロールレジスタを備え、ＣＰＵがフラッシュメモリやＲＡＭ内に格納されたプログラムに従って動作し、上記コントロールレジスタに書込みを行なうとフラッシュコントローラＦＬＣがコントロールレジスタのビット状態に応じてフラッシュメモリ回路ＦＬＡＳＨに対する制御信号を形成して書込みや消去、読出し、ベリファイ等の動作を行なわせるように構成される。
【００３７】
フラッシュコントローラＦＬＣには、上記書込み消去制御用のコントロールレジスタの他に、消去時にメモリアレイ内の複数のブロックのうち消去ブロックを選択するための消去選択レジスタ、電圧トリミング用の値を設定するレジスタ、メモリアレイ内の欠陥ビットを含むメモリ列を予備のメモリ列に置き換えるための救済情報を保持するレジスタが設けられることもある。なお、特に制限されないが、トリミング用レジスタの値はフラッシュメモリ回路ＦＬＡＳＨ内の所定のエリアに記憶され、リセット時にフラッシュメモリ回路から読み出してトリミング用レジスタに設定するようにされる。
【００３８】
図３にはメモリアレイ１１の具体的な構成例を示す。この実施例のメモリアレイ１１は、図３に示すように、列方向に配列され各々ソースおよびドレインが共通接続された並列形態のｎ個のメモリセル（コントロールゲートとフローティングゲートを有するＭＯＳＦＥＴ）ＭＣ１〜ＭＣｎからなるメモリ列ＭＣＣが行方向（ワード線ＷＬ方向）および列方向（ビット線ＢＬ方向）にそれぞれ複数個配設されている。図３には、そのうち代表的に４つのメモリ列ＭＣＣが示されており、これがすべてではない。
【００３９】
各メモリ列ＭＣＣは、ｎ個のメモリセルＭＣ１〜ＭＣｎのドレインおよびソースがそれぞれ共通のローカルドレイン線ＬＤＬおよび共通のローカルソース線ＬＳＬに接続され、ローカルドレイン線ＬＤＬは選択スイッチＭＯＳＦＥＴ  Ｑs1を介してビット線ＢＬに接続される。さらに、ローカルソース線ＬＳＬは共通ソース線ＳＬに接続され、共通ソース線ＳＬは切替えスイッチＳＷ１を介して接地電位に接続可能に構成されており、このスイッチＳＷ１がオフされると共通ソース線ＳＬを介してメモリセルのソースがオープン状態にされるように構成されている。
【００４０】
この実施例のフラッシュメモリでは、この共通ソース線ＳＬに接続されるメモリセルが１ブロックＥＢを構成し、これらは半導体基板の共通のウェル領域内に形成されて消去の単位とされる。一方、横方向すなわち行方向に並んだメモリセルＭＣのコントロールゲートは、行単位で共通のワード線ＷＬ１１，ＷＬ１２……ＷＬ１ｎ；ＷＬ２１，ＷＬ２２……ＷＬ２ｎにそれぞれ接続され、１本のワード線に共通に接続された例えば１２８×８個のメモリセルが１セクタを構成し、書込みの単位とされる。
【００４１】
各ビット線ＢＬにはＹデコーダの選択信号によりオン、オフ制御されるカラムスイッチＱｙを介してセンスアンプＳＡが接続されており、データ読出し時には、ワード線ＷＬが選択レベルにされてメモリセルがそのしきい値に応じてドレイン電流が流れるか流れないかによって変化するビット線ＢＬの電位がセンスアンプＳＡにより増幅され、検出される。データ書込み時には、書込み制御回路１３によりデータレジスタ１２に保持されているデータに応じて、ビット線ＢＬさらにはローカルドレイン線ＬＤＬを介して、ワード線により選択されているメモリセルのドレインに書込み電圧が印加される。
【００４２】
また、書込み時には、供給されたアドレスに対応した１本のワード線が選択されて１０Ｖのような書込み電圧が印加される。このとき、ビット線ＢＬに書込みデータの対応するビットに応じて、それが論理“０”のときは５Ｖのような電圧が印加され、論理“１”のときは０Ｖの電圧が印加される。そして、ローカルドレイン線ＬＤＬの電位が５Ｖであるメモリセルにおいては、ドレイン電流が流れて発生したホットエレクトロンがフローティングゲートへ注入されてしきい値が高い状態（論理“０”）にされる。一方、ビット線ＢＬの電位が０Ｖであるメモリセルにおいては、フローティングゲートへの電荷の注入が行なわれず、しきい値は低い（論理“１”）ままにされる。
【００４３】
データ消去時には、１ブロックＥＢ内のすべてのワード線が−１１Ｖのような電位にされるとともに、このワード線に接続されているメモリセルはそのドレイン側の選択スイッチＭＯＳＦＥＴ  Ｑｓ１がオフされてドレインがオープン状態とされ、ソース側の切替えスイッチＳＷ１がオフされてソースもオープン状態にされる。また、ウェル領域には１０Ｖのような電圧が印加される。これによって、１ブロック内のすべてのメモリセルは、フローティングゲートからウェル領域へ電荷の引き抜きが行なわれてしきい値が低い状態（論理“１”）にされる。
【００４４】
なお、データ読出し時には、全てのビット線ＢＬが１．０Ｖのような電位Ｖｐｃにプリチャージされた後、供給されたアドレスに対応した１本のワード線が選択されて電源電圧（例えば３．３Ｖ）のような電圧が印加される。また、ソース側の切替えスイッチＳＷ１が接地電位側に切り替えられて、共通ソース線ＳＬを介してローカルソース線ＬＳＬに０Ｖの電圧が印加される。これによって、選択されたワード線に接続されたメモリセルは、そのしきい値に応じてしきい値が低いときは電流が流れてビット線ＢＬの電位が下がり、しきい値が高いときは電流が流れないためビット線ＢＬの電位がプリチャージレベルに維持される。そして、この電位がセンスアンプＳＡによって増幅、検出される。
【００４５】
図４（Ａ），（Ｂ）には本実施例のフラッシュメモリ回路におけるメモリセルの構造と書込みおよび消去時のバイアス状態の例を示す。また、図５には書込み後と消去後におけるメモリセルのしきい値の分布を示す。特に制限されるものでないが、本実施例のフラッシュメモリでは、データ“０”がメモリセルのしきい値の高い状態に対応され、データ“１”がメモリセルのしきい値の低い状態に対応されている。
【００４６】
この実施例においては、図４に示されているように、本実施例のフラッシュメモリに使用されるメモリセルは、コントロールゲートＣＧとフローティングゲートＦＧを有する２層ゲート構造のＭＯＳＦＥＴである。この実施例では、データの書込み時に書込みデータ“０”に対応するビットのメモリセルには、図４（Ａ）に示すようにコントロールゲートＣＧに１０Ｖのような正の高電圧が印加され、ソースは０Ｖ、ドレインは５Ｖのような電圧が印加されることでドレイン電流が流れ、発生したホットエレクトロンをフローティングゲートＦＧに注入してしきい値を高くする方式が採用されている。ただし、ここでウェルにも負電圧を印加することで書込みを速くさせるようにすることも可能である。
【００４７】
また、データの消去時には、図４（Ｂ）に示すように、ソースおよびドレインはオープン（電位的にフローティング）にしておいて、コントロールゲートＣＧに−１１Ｖのような負の高電圧を、またウェル（基板）には１０Ｖのような正の高電圧を印加して、ＦＮトンネルでフローティングゲートＦＧの電荷を引き抜いてブロック単位で消去を行なうようにされる。ただし、ウェルの電位を低くしてその分コントロールゲートＣＧの負電圧を大きくすることで、ワード線単位の消去を行なわせるようにすることも可能である。
【００４８】
さらに、この実施例においては、消去動作でメモリセルのしきい値を高い状態から低い状態にする際に、ウェルを共通にするブロック全体のメモリセルに対して一括して図４（Ｂ）のような電圧を印加して電荷の引き抜きを行なうため、もともとしきい値の低いメモリセルは、図５に符号Ｄで示すように、しきい値が下がり過ぎることがある。しかし、メモリセルのしきい値が０Ｖ以下に下がるとワード線を非選択レベル（０Ｖ）にしている状態でもメモリセルにドレイン電流が流れてしまい、ローカルドレイン線ＬＤＬを共通にする選択メモリセルの正確な読出し動作を行なうことができない。
【００４９】
そこで、この実施例では、しきい値が下がり過ぎたメモリセルのしきい値を少しだけ上げてやるポスト消去という動作も行なうようにされている。図４（Ｃ）には、ポスト消去が行なわれるメモリセルのバイアス状態を示す。ポスト消去は書込みの一種であるがしきい値は大きく変化させたくないので、ポスト消去では、コントロールゲートＣＧに１０Ｖよりも低い例えば４Ｖのような正の高電圧を印加し、ソースには０Ｖ、ドレインには書込みと同じ５Ｖのような電圧を印加することでドレイン電流を流し、発生したホットエレクトロンをフローティングゲートＦＧに注入してしきい値をわずかに高くすることが行なわれる。
【００５０】
次に、実施例のフラッシュメモリ回路における書込みの手順を、図６を用いて説明する。
【００５１】
書込み動作が開始されると、先ず１ワード線分の書込みデータがデータレジスタ１２に転送され、保持される（ステップＳ１）。次に、ワード線ＷＬが選択レベル（１０Ｖ）に立ち上げられてから、データレジスタ１２に保持されている書込みデータに応じてそれが“１”のときは対応するビット線を飛ばして、データ“０”に対応するビット線にのみ書込みドレイン電圧（５Ｖ）が順次シフトするように印加されて行く（ステップＳ２）。１ワード線分の書込みが終了するとワード線ＷＬがベリファイのための読出しレベルに設定されて、１ワード線のデータが読み出される（ステップＳ３）。そして、読み出されたデータは書込みデータを比較されて一致しているか判定（ベリファイ）される（ステップＳ４）。
【００５２】
ベリファイの結果、データが不一致と判定されるとステップＳ５で再書込みデータを生成してステップＳ１へ戻り、完全に一致するまで上記処理を繰り返す。ここで、再書込みデータとは、最初の１セクタの書込みデータのビット“０”のうち未書込みすなわちベリファイ読出しデータが“０”に変わっていないビットのみ“０”にしたデータを意味する。具体的には、例えば書込みデータが“００００１１１１”で、ベリファイ読出しデータが“０１１０１１１１”（センスアンプのデータは“１００１００００”）であった場合、再書込みデータは“０１１０１１１１”となる。
【００５３】
このような再書込みデータの生成は、この実施例のフラッシュ内蔵マイコンでは、ＣＰＵがソフト的に行なうようになっているが、ベリファイ読出しデータから再書込みデータの生成をハードウェアで行なうように構成することもできる。なお、上記具体例として示した書込みデータは８ビットであるが、これは理解を容易にするため作った仮想的な書込みデータであり、本実施例においてデータレジスタ１２に保持される書込みデータは、例えば１２８バイト（１０２４ビット）のような１ワード線分のメモリセルの数に対応したビット数のデータとされる。
【００５４】
一方、上記ステップＳ４でベリファイの結果、データが一致したと判定されると、ステップＳ６へ移行して次のセクタに書き込むデータがあるか否かを判定し、データがあれば次のステップＳ７でアドレスをインクリメント（＋１）してからステップＳ１へ戻って上記処理を繰り返し、全てのデータの書込みが終了した時点で書込み動作を終了する。
【００５５】
次に、本実施例のフラッシュメモリ回路における上記ステップＳ２での詳細な書込み動作を、図７のタイミングチャートを用いて説明する。図７において、左側に示されている“０”，“１”の数字は、書込みデータの論理を表わす。すなわち、“０”は対応するメモリセルのしきい値を高くすることを意味し、“１”はしきい値を低いままに保持することを意味する。また、図７において、各書込みデータの右側のパルス波形はビット線ＢＬに印加される電圧波形（以下、書込みパルスと称する）を表わしている。さらに、Ｉｗは上記データの書込み中における書込み電流の総和である。
【００５６】
本実施例においては、図７に示されているように、書込みデータ“０”，“１”に応じて、それが“０”の時は書込みパルスを印加し、“１”の時は書込みパルスを印加しないとともに、データ“０”に対応した各書込みパルスは順番にクロックφの半周期ずつずらしてビット線に印加するようにしている。図７からも分かるように、本実施例では、書込み電流の総和Ｉｗの変動は比較的少ない。
【００５７】
比較のため、図８（Ａ）に書込みパルスを１ビットずつずらす従来の書込み方式のタイミングチャートを示す。図８（Ａ）から明らかなように、この従来方式は、書込みデータのいかんにかかわらず各ビット線を順番に選択する方式であるため、データ“０”に対応するビット線では書込みパルスが印加され、データ“１”に対応するビット線では書込みパルスが印加されないこととなる。そのため、トータルの書込み時間は、本発明の実施例の方が従来方式に比べてデータ“１”のビット数の分だけ短くなる。
【００５８】
また、それに応じて書込み電流の総和Ｉｗの変動も本発明の実施例の方が従来方式に比べて小さくなる。すなわち、１ビットのメモリセルに対する書込み電流は、ドレイン電圧を一定に保ってもしきい値が高くなるにつれて電流が流れにくくなるため、図８（Ｂ）のように書込みの始めに大きな電流が流れ、その後減少するように変化するので、データの“１”，“０”にかかわらず書込みパルスを印加する方式では、書込みパルスが印加されるビットの間隔が広くなることがあり、それによって図８（Ａ）のように書込み電流の総和Ｉｗの変動が大きくなる。
【００５９】
また、図９には、書込みパルスはずらさずに１バイト単位で順番に書込みを行なう従来方式のタイミングチャートを示す。なお、図９において、書込み電流の総和Ｉｗの変化を示す実線Ａは書込みビット数が多い場合、実線Ｂは書込みビット数が少ない場合の書込み電流の変化を示す。図９から明らかなように、この従来方式も、書込みデータのいかんにかかわらずバイト単位で書込みパルスを印加する方式であるため、トータルの書込み時間は、本発明の実施例の方が従来方式に比べてデータ“１”のビット数の分だけ短くなる。また、データ“０”に対応するビット線では書込みパルスが印加され、データ“１”に対応するビット線では書込みパルスが印加されないこととなるため、１バイトの中に“０”のビットが多い時の書込み電流と１バイトの中に“０”のビットが少ない時の書込み電流とに差が生じ、しかもその差が書込みデータによってかなり大きく変動することとなる。
【００６０】
チップ内部に書込み電圧発生のためチャージポンプなどからなる昇圧回路を有するフラッシュメモリにおいては、書込み電流の変動が大きいとそれに応じて書込み電圧も変動し易くなり、それによって安定した書込みが行なえなくなるおそれがある。また、書込み電流の変動が大きいとそれに対応できるように予め昇圧回路を設計しておく必要もある。従って、本発明を適用することで書込み電流の変動を少なくすることができ、これによって安定した書込みが行なえるようになるとともに、昇圧回路の設計も容易となる。
【００６１】
次に、上記のようなデータ“１”に対応したビットを飛ばして行なう書込みを可能にする書込み制御回路の具体例を、図１０を用いて説明する。なお、図１０の回路は、図２におけるデータレジスタ１２および書込み制御回路１３に相当するものである。
【００６２】
図１０に示されているように、データレジスタ１２は、一旦センスアンプにラッチされた書込みデータの各ビットを、ビット線ＢＬを介して取り込むための伝送ＭＯＳＦＥＴ  ＴＭ１，ＴＭ２，ＴＭ３……と、互いに入出力端子が結合された一対のインバータからなるラッチ回路ＬＴ１，ＬＴ２，ＬＴ３……とにより構成されている。また、書込み制御回路１３は、書込み制御用のシフトレジスタ３１と、上記データレジスタ１２にラッチされた書込みデータの各ビットが“１”か“０”かを判定してそれに応じて上記シフトレジスタ３１の各段のシフト動作を制御するデータ判定＆シフト制御回路３２と、該データ判定＆シフト制御回路３２からのシフトクロックと上記データレジスタ１２の各ラッチ回路ＬＴ１，ＬＴ２，ＬＴ３……の保持データとをそれぞれ入力とするＡＮＤゲートＧ１，Ｇ２，Ｇ３……と、１０Ｖのような書込み電圧Ｖｐｐを電源電圧とし上記ＡＮＤゲートＧ１，Ｇ２，Ｇ３……の出力を受けてそれぞれ対応するビット線ＢＬを駆動するライトアンプＷＡ１，ＷＡ２，ＷＡ３……とから構成されている。
【００６３】
図１０に示した符号Ａ，Ｂ，Ｃ，Ｄ，Ｅはビット線ＢＬに接続されている。図１０におけるＹｗは書込みデータの入力タイミング信号である。
【００６４】
上記データ判定＆シフト制御回路３２は、上記データレジスタ１２の各ラッチ回路ＬＴ１，ＬＴ２，ＬＴ３……の保持データを一方の入力とし前段の出力を他方の入力とするイクスクルーシブＯＲゲートＥＯＲｉと、該イクスクルーシブＯＲゲートＥＯＲｉの出力を反転するインバータＩＮＶｉと、クロックφ１，φ２によって該インバータＩＮＶｉの出力または上記イクスクルーシブＯＲゲートＥＯＲｉの出力を択一的に選択して上記シフトレジスタ３１の各段にシフトクロックとして供給する伝送ＭＯＳＦＥＴ  Ｔｉ１，Ｔｉ２とから構成されている。
【００６５】
なお、上記各段のイクスクルーシブＯＲゲートＥＯＲｉのうち初段のイクスクルーシブＯＲゲートＥＯＲ１は、一方の入力端子に前段のイクスクルーシブＯＲゲートＥＯＲ(i-1)の出力が入力される代わりに、接地電位が印加されている。これによって、初段のイクスクルーシブＯＲゲートＥＯＲ１は、データレジスタ１２のラッチ回路ＬＴ１の保持データが“０”のときは出力信号が“１”となり、ラッチ回路ＬＴ１の保持データが“１”のときは出力信号が“０”となる。また、２段目以降のイクスクルーシブＯＲゲートＥＯＲｉは、対応するラッチ回路ＬＴｉの保持データが“０”のときは前段のイクスクルーシブＯＲゲートＥＯＲ(i-1)の出力を反転して出力し、ラッチ回路ＬＴ１の保持データが“１”のときは前段のイクスクルーシブＯＲゲートＥＯＲ(i-1)の出力をそのまま出力するように動作する。
【００６６】
データ判定＆シフト制御回路３２のクロック伝送ＭＯＳＦＥＴ  Ｔｉ１，Ｔｉ２を制御するクロックφ１，φ２は、図１１に示すように、互いにハイレベルの期間が重ならないようにされ位相が１８０°ずれたクロックである。これによって、書込み制御用のシフトレジスタ３１の各段には、対応するイクスクルーシブＯＲゲートＥＯＲｉの出力がハイレベルのときはクロックφ１の立上がりに同期してハイレベルに変化し、φ２の立上がりに同期してロウレベルに変化するクロック（例えば図１１のφａ，φｅ）が供給される。対応するイクスクルーシブＯＲゲートＥＯＲｉの出力がロウレベルのときはクロックφ２の立上がりに同期してハイレベルに変化し、φ１の立上がりに同期してロウレベルに変化するクロック（例えば図１１のφｂ，φｃ，φｄ）が供給される。
【００６７】
また、書込み制御用のシフトレジスタ３１の初段には、図１２に示すように例えばクロックφ１のほぼ２倍の周期を有する書込みパルスＰｗが入力されており、上記データ判定＆シフト制御回路３２からのクロックφａ，φｂ，φｃ，φｄ，φｅ……によって、前段からの書込みパルスＰｗを順次後段へ伝達して行くように動作される。また、同じタイミングで変化するクロックが連続しているところ（例えばφｂ，φｃ，φｄ）では、書込み制御用のシフトレジスタ３１の各段の間でレーシングを起こして最初の段の入力パルスがその後ろのすべての段にラッチされるように動作する。図１２の符号ａ〜ｊの波形は書込み制御シフトレジスタ３１の各段の出力、符号Ａ〜Ｊの波形はビット線に印加される書込みパルスである。
【００６８】
図１２に符号ａ〜ｊで示す波形のように、書込みデータのうち“０”のビットのところでは、伝達書込みパルスがクロックφ１（φ２）の半周期だけ遅れ、書込みデータのうち“１”のビットのところでは、伝達書込みパルスは遅れを持たずにそれぞれ伝達される。その結果、図１２に符号Ａ〜Ｊで示す波形のように、ビット線に印加される書込みパルスは順次クロックφ１（φ２）の半周期だけずれたパルスとなり、図７に示した波形と一致する。
【００６９】
図１３には、上記データ判定＆シフト制御回路３２を制御するクロックφ１，φ２を生成する回路の例が示されている。このクロック生成回路は、図１におけるフラッシュメモリＦＬＡＳＨまたはフラッシュメモリコントローラＦＬＣに設けられる。図１３に示されているように、この実施例クロック生成回路は、内部発振器ＯＳＣまたは外部から供給される基準クロックφを分周する可変分周回路４１と、該可変分周回路４１における分周比をＣＰＵによって設定するためのレジスタ４２と、該レジスタ４２の設定値ｃｗ０，ｃｗ１，ｃｗ２をデコードして上記可変分周回路４１に対する分周比変更のための制御信号を生成するデコーダ４３と、可変分周回路４１で分周されたクロックに基づいて互いにハイレベルの期間が重ならず同一周期を有するクロックφ１，φ２を生成するクロックドライバ４４とにより構成されている。なお、可変分周回路４１における分周比を指定する値を設定するためのレジスタ４２に設定する値は、不揮発性メモリ内の所定のメモリセルに記憶するようにすることができる。
【００７０】
このように、可変分周回路４１を設けて、生成されるクロックφ１，φ２の周期を変えることができるように構成し、それを次に説明する書込みパルス生成回路（図１５参照）に供給することによって、書込みパルス生成回路により生成される基準となる書込みパルスＰｗのパルス幅を変えることができるようになる。図１４には、図１２に示されているようなタイミングで書込みパルスを生成している場合に、上記クロックφ１，φ２の周期を２倍にしたときの波形を示す。図１２と図１４とを比較すると明らかなように、図１４では上記クロックφ１，φ２の周期が図１２のものの２倍とされ、書込みパルスＰｗも２倍となっている。
【００７１】
フラッシュメモリを構成する記憶素子は製造ばらつきにより最適な書込み時間がずれることがあるが、上記のように書込みパルスの幅を変えてやることで記憶素子（デバイス）の特性に応じた時間で書込み処理を行なうことができる。また、フラッシュメモリでは記憶素子間のばらつきにより１回の書込み処理ですべての記憶素子のしきい値を所望のレベルに変化させることができず、再度書込みを行なうことがあるが、その場合すでにしきい値が変化しているので２回目の書込みを１回目よりも長い書込みパルスで行なうのが望ましいので、上記のように書込みパルスＰｗの幅を変えてやることで複数回書込みを最適に行なうことができるようになる。記憶素子の書込み特性は、対数時間に対してしきい値電圧の変化量が直線的であるためである。
【００７２】
図１５に示す書込みパルス生成回路は、上記クロックφ１，φ２によってシフト動作されるシフトレジスタ５１と、該書込みパルス生成回路における重ね合わせビット数をＣＰＵによって設定するためのレジスタ５２と、該レジスタ５２の設定値ｐｗ０，ｐｗ１，ｐｗ２をデコードするデコーダ５３と、上記シフトレジスタ５１の所定の段から取り出された信号と上記デコーダ５３の出力信号とを入力とするＡＮＤゲートやＮＯＲゲートからなるパルス調整回路５４とから構成されている。なお、上記書込み電圧が並行して印加されるビット線の数を指定する値を設定するためのレジスタ５２に設定する値は、不揮発性メモリ内の所定のメモリセルに記憶するようにすることができる。
【００７３】
なお、図１５において、５５はコントロールレジスタなどに設けられた書込みフラグであって、ＣＰＵによってこの書込みフラグ５５に「１」がセットされると、シフトレジスタ５１が有効に動作するようにされている。具体的には、前記データレジスタ１２に１ワード線分の書込みデータ（例えば１２８バイト）を転送した後、ＣＰＵが書込みフラグ５５に「１」をセットすることで、上記書込みパルス生成回路が起動され、書込みパルスの生成が開始される。上記書込みパルス生成回路は、図１におけるフラッシュメモリＦＬＡＳＨまたはフラッシュメモリコントローラＦＬＣに設けられる。
【００７４】
図１６および図１７には、図１２に示されている書込み重ね合わせビット数が「４」である場合とクロックφ１，φ２の周期が同一で、書込み重ね合わせビット数を「８」にしたときと「２」したときの波形をそれぞれ示す。図１２と図１６および図１７の各図の波形を比較すると明らかなように、図１２では周期Ｔ４においてＡ，Ｂ，Ｅ，Ｈの４つの書込みパルスが重なっているのに対し、図１６では周期Ｔ８においてＡ，Ｂ，Ｅ，Ｈ，Ｉ，Ｋ，Ｌ，Ｍの８つの書込みパルスが、図１７では周期Ｔ２においてＡ，Ｂ、周期Ｔ３においてＢ，Ｅ、周期Ｔ４においてＥ，Ｈ、周期Ｔ５においてＨ，Ｉのように２つの書込みパルスが重なっているのが分かる。
【００７５】
上記以外にも、レジスタ４２の設定値ｃｗ０〜ｃｗ２やレジスタ５２の設定値ｐｗ０〜ｐｗ２を変えることで、例えば書込み重ね合わせビット数を「６」に設定することにより６つの書込みパルスが重ね合わさるようしたり、クロックφ１，φ２の周期を２倍、４倍、８倍……として書込みパルス幅を変えることができる。表１にレジスタ４２の設定値ｃｗ０〜ｃｗ２とクロックφ１，φ２の周波数との関係、レジスタ５２の設定値ｐｗ０〜ｐｗ２と書込み重ね合わせビット数との関係およびこれらと書込みパルス幅との関係を示す。
【００７６】
【表１】
0004666394.tif 000002
【００７７】
なお、レジスタ４２および５２の設定値ｃｗ０〜ｃｗ２，ｐｗ０〜ｐｗ２は、システムの立上がり時等に予め測定して得られている記憶素子の特性に応じて最適な値に初期設定しておくようにしても良いし、あるいは前述したように再書込みの時にダイナミックに変更するようにしてもよい。次に、そのような制御の例を図１８のフローチャートを用いて説明する。
【００７８】
この実施例の書込み制御においては、書込み動作が開始されると、先ず書込みパルスの印加繰返し回数を計数するカウンタの計数値ｎを「１」に設定する（ステップＳ１１）。そして、次のステップＳ１２では、上記繰返し回数カウンタの値ｎを参照して、ｎの値に応じて前記重ね合わせビット数設定用レジスタ５２の設定値ｐｗ０，ｐｗ１，ｐｗ２を決定して設定する。具体的には、ｎの値が小さいほど重ね合わせビット数を少なくする。
【００７９】
次に、ワード線分の書込みデータをデータレジスタ１２に転送し、保持させる（ステップＳ１３）。そして、ワード線ＷＬが選択レベル（１０Ｖ）に立ち上げられてから、データレジスタ１２に保持されている書込みデータに応じてそれが“１”のときは対応するビット線を飛ばして、データ“０”に対応するビット線にのみ書込みドレイン電圧（５Ｖ）が順次シフトするように印加して行く（ステップＳ１４）。このとき、図１５のパルス調整回路５４では、ステップＳ１２で設定した重ね合わせビット数設定用レジスタ５２の設定値ｐｗ０，ｐｗ１，ｐｗ２に従って、基準となる書込みパルスの幅を調整する。すると、これを受けた図１０の書込み制御回路１３が設定された重ね合わせ数に応じて各書込みパルスが一部重なるような書込みパルスの生成を行なう。
【００８０】
上記のようにして１ワード線分の書込みが終了するとワード線ＷＬがベリファイのための読出しレベルに設定されて、１ワード線のデータが読み出される（ステップＳ１５）。そして、読み出されたデータは書込みデータを比較されて一致しているか判定（ベリファイ）される（ステップＳ１６）。
【００８１】
ベリファイの結果、データが不一致と判定されるとステップＳ１７で再書込みデータを生成しさらにステップＳ１８で前記繰返し回数ｎをインクリメント（＋１）してステップＳ１２へ戻り、完全に一致するまで上記処理を繰り返す。
【００８２】
そして、上記ステップＳ１６でベリファイの結果、データが一致したと判定されると、ステップＳ１９へ移行して次のセクタにデータを書込むか否かすなわち全てのセクタへのデータ書込みが終了したか否かを判定し、終了していなければ次のステップＳ２０でアドレスをインクリメント（＋１）してからステップＳ１１へ戻って上記処理を繰り返し、全てのセクタへのデータの書込みが終了した時点で書込み動作を終了する。
【００８３】
以上、重ね合わせビット数設定用レジスタ５２を使用して書込みパルスを生成する制御について説明したが、同様にして、図１３の分周比設定用レジスタ４２の設定値ｃｗ０，ｃｗ１，ｃｗ２を書込みパルス印加繰返し回数に応じて設定して上記可変分周回路４１における分周比を変更し、可変分周回路４２で分周されたクロックに基づいて互いにハイレベルの期間が重ならず同一周期を有するクロックφ１，φ２を生成し、それを図１５の書込みパルス生成回路に供給することによって、書込みパルス生成回路により生成される基準となる書込みパルスＰｗのパルス幅を変えるようにしてもよい。
【００８４】
以上、書込みデータに応じてそれが“１”のときは飛ばして“０”のビットのみ連続して書き込んで行くとともに、複数のビットの書込みパルスを重ね合わせることでトータルの書込み所要時間を短くした実施例について説明したが、本発明は、例えば図１９のように書込みパルスの重ね合わせは行なわずに、書込みデータが“１”のビットは飛ばして“０”のビットのみ連続して書き込んで行く単純スキップ方式のみでも、従来の書込みビットをスキップしない方式に比べて書込み所要時間を短縮するとともに、書込み電流の変動量を小さくできるという効果が得られる。
【００８５】
また、書込みパルスの重ね合わせを行なう場合にも、前記実施例のように１ビットごとにクロックの半周期ずつずらす方式ではなく、図２０（Ａ）に示すようなタイミングで複数のビットの書込みパルスを重ね合わせたり、あるいは図２０（Ｂ）に示すように、複数のビットの書込みパルスを重ね合わせかつクロックの半周期ずつずらして書込みパルスを生成して行く方式を採用しても良い。ただし、この場合においても、書込みデータが“１”のビットは飛ばして“０”のビットのみ連続して書き込んで行くものとする。
【００８６】
図２１には、図２における書込み制御回路１３の他の実施例を示す。この実施例の書込み制御回路は、基本的には図１０に示されている実施例の回路と類似している。図１０の回路ではメモリアレイのビット線の数に対応してシフトレジスタ３１の段数を決定し、シフトレジスタ３１の各段に対応してイクスクルーシブＯＲゲートＥＯＲｉとインバータＩＮＶｉと伝送ＭＯＳＦＥＴ  ＴＭ１ｉ，ＴＭ２ｉからなる論理回路ユニットＬＵｉを並べることでデータ判定＆シフト制御回路３２を構成しているため、回路規模が非常に大きくなっている。
【００８７】
そこで、この実施例では、図２１のように図１０の回路における論理回路ユニットＬＵｉとシフトレジスタの各段を、４本のビット線に１個の割合でそれぞれ設けるとともに、データレジスタ１２との間に第１の選択回路（マルチプレクサ）ＳＥＬ１を、またライトアンプ列ＷＡ１，ＷＡ２，ＷＡ３……との間に第２の選択回路（デマルチプレクサ）ＳＥＬ２を設けて論理回路ユニットを複数ビットで共有するように構成することで、回路規模の縮小を図っている。各ビット線毎に論理回路ユニットを設けると、ビット線が密になった場合にビット線に合わせて論理回路ユニットをレイアウトすることがが非常に困難になるが、論理回路ユニットを複数のビット線で共有することで論理回路ユニットの数を減らすことができ、論理回路ユニットのレイアウトが容易となる。なお、選択回路ＳＥＬ１，ＳＥＬ２は、各々４個を１組とした伝送ＭＯＳＦＥＴにより構成されており、各組を構成する４個の伝送ＭＯＳＦＥＴはそれぞれ選択制御信号ｓｅｌ０，ｓｅｌ１，ｓｅｌ２，ｓｅｌ３によってオン、オフ制御される。
【００８８】
この実施例においては、図２２に示すように、選択制御信号ｓｅｌ０，ｓｅｌ１，ｓｅｌ２，ｓｅｌ３を順番に１つだけハイレベルにし、そのハイレベルの期間に書込みパルスＰｗをシフトレジスタ３１の初段から最終段までシフトさせることで順次書込みを行なう。このとき、データ判定＆シフト制御回路３２の作用により書込みデータが“１”のビットは飛ばして“０”のビットのみが連続して書き込まれていく。つまり、メモリアレイの各ビット線は４つおきに選択されてそのグループの中で、図１１および図１２のようなタイミングで書込みパルスが印加されていく。
【００８９】
そして、この実施例の場合においても、データ判定＆シフト制御回路３２を制御するクロックφ１，φ２を生成する回路として図１３のような構成を有する回路を、また書込みパルスＰｗを生成する書込みパルス生成回路として図１５のような構成を有する回路を用いることにより、書込みパルス幅を変えたり重ね合わせビット数を変えたりすることができる。
【００９０】
図２３には、図２における書込み制御回路１３のさらに他の実施例を示す。図１０に示されている実施例の書込み制御回路では、データ判定＆シフト制御回路３２がデータレジスタ１２にラッチされている書込みデータのビットの“０”または“１”および前段の出力信号に応じてクロックφ１またはφ２のいずれかを選択して、選択されたクロックで書込みパルスＰｗをシフトするシフトレジスタ３１をシフト動作させることで、図１２に示されているように半周期ずつずれた連続書込みパルスＡ〜Ｉを生成している。
【００９１】
これに対し、図２３の実施例の書込み制御回路は、書込みパルスＰｗをシフトするシフトレジスタ３１を、マスタラッチＭ−ＬＴとスレーブラッチＳ−ＬＴからなるマスタ・スレーブ型フリップフロップで構成するとともに、本来のシフトパスをバイパスするスルーパスとシフトパスまたはスルーパスのいずれを通過させるか選択する選択回路ＳＥＬｉを、シフトレジスタの各段に設けている。そして、マスタラッチＭ−ＬＴとスレーブラッチＳ−ＬＴをクロックφ１とφ２でそれぞれラッチ動作させるとともに、各段の選択回路ＳＥＬｉをデータレジスタ１２にラッチされている書込みデータの対応するビットで制御し、ビットのデータが“０”のときはシフトパスを、またビットのデータが“１”のときはスルーパスを選択する。さらに、データが“０”の場合にのみマスタラッチＭ−ＬＴに取り込まれた書込みパルスをＡＮＤゲートＧｉを介して対応するビット線に印加するように構成している。
【００９２】
上記のような構成を有する書込み制御回路を用いても図１２に示されているような半周期ずつずれた連続書込みパルスＡ〜Ｉを生成することができる。この実施例の場合においても、シフトレジスタ３１を制御するクロックφ１，φ２を生成する回路として図１３のような構成を有する回路を、また書込みパルスＰｗを生成する書込みパルス生成回路として図１５のような構成を有する回路を用いることにより、書込みパルス幅を変えたり重ね合わせビット数を変えたりすることができる。なお、図２４に、上記マスタラッチＭ−ＬＴ、スレーブラッチＳ−ＬＴおよび選択回路ＳＥＬｉのより具体的な回路例を示す。図２４の回路はいずれも一般的な回路であるので、詳しい構成および動作の説明は省略する。
【００９３】
なお、図２３の実施例においても、図２１の実施例と同様に、データレジスタ１２との間に第１の選択回路（マルチプレクサ）ＳＥＬ１を、またライトアンプ列ＷＡ１，ＷＡ２，ＷＡ３……との間に第２の選択回路（デマルチプレクサ）ＳＥＬ２を設けてシフトレジスタの１つのシフト段を複数ビットで共有するように構成することで、回路規模の縮小を図ることが可能である。
【００９４】
以上本発明者によってなされた発明を実施例に基づき具体的に説明したが、本発明は上記実施例に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば図１５の書込みパルス生成回路では、クロックφ１，φ２と書込みパルスＰｗとを連動させかつレジスタ５２の設定値で書込みパルスの重ね合わせビット数を変更するようにしているが、クロックφ１，φ２と書込みパルスＰｗとを連動させずに、書込みパルス幅一定の下でクロックφ１，φ２の周期を変えて重ね合わせビット数を変更させるように構成しても良い。その場合、レジスタ４２の設定値でクロックφ１，φ２の周期を変更し、レジスタ５２の設定値で書込みパルス幅を変更するように書込みパルス生成回路を構成することができる。
【００９５】
以上、本発明の実施例を書込み動作を例にして説明してきたが、前記ポスト消去において実施するようにしても良い。ポスト消去の場合、対象ビット数が少ないので本発明の適用による時間短縮の効果はより大きい。
【００９６】
また、前記実施例では複数のメモリセルのドレインがそれぞれローカルドレイン線に接続されたいわゆるＤｉＮＯＲ型のフラッシュメモリに適用した場合について説明したが、複数のメモリセルが直列に接続されてなるいわゆるＮＯＲ型のフラッシュメモリや複数のメモリセルのソース、ドレインがそれぞれローカルソース線とローカルドレイン線に接続されたいわゆるＡＮＤ型のフラッシュメモリなどにも適用することができ、同様の効果を得ることができる。
【００９７】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるフラッシュメモリを内蔵したマイクロコンピュータに適用した場合について説明したが、この発明はそれに限定されるものでなく、単体のフラッシュメモリなどの不揮発性記憶メモリに広く利用することができる。
【図面の簡単な説明】
【００９８】
【図１】本発明を適用したフラッシュメモリを内蔵したマイクロコンピュータの一実施例の概略を示す全体ブロック図である。
【図２】本発明を適用したフラッシュメモリ回路部の構成例を示すブロック図である。
【図３】フラッシュメモリ回路のメモリアレイの具体的な構成例を示す回路図である。
【図４】フラッシュメモリの記憶素子の代表的な構造と書込み、消去およびポスト消去の動作時の印加電圧の例を示す説明図である。
【図５】フラッシュメモリにおける書込み後と消去後におけるメモリセルのしきい値の分布の一例を示す説明図である。
【図６】本発明に係るフラッシュメモリにおける書込み手順の一例を示すフローチャートである。
【図７】実施例のフラッシュメモリ回路における書込み動作時の各ビット線への書込みパルスの印加タイミングの一例を示すタイミングチャート、並び書込み電流特性を示す電流波形図である。
【図８】従来のフラッシュメモリ回路における書込み動作時の各ビット線への書込みパルスの印加タイミングの一例を示すタイミングチャート、並び書込み電流特性を示す電流波形図である。
【図９】従来のフラッシュメモリ回路における書込み動作時の各ビット線への書込みパルスの印加タイミングの他の例を示すタイミングチャート、並び書込み電流特性を示す電流波形図である。
【図１０】実施例のフラッシュメモリ回路における書込み制御回路の具体例を示す回路図である。
【図１１】実施例の書込み制御回路における各ビット線への書込みパルスの印加タイミングを与える信号のタイミングチャートである。
【図１２】実施例の書込み制御回路の内部の信号と各ビット線への書込みパルスの印加タイミングを示すタイミングチャートである。
【図１３】実施例のデータ判定＆シフト制御回路を制御するクロックを生成する回路の一例を示すブロック構成図である。
【図１４】図１２に示されているタイミングで書込みパルスを生成している場合に、クロックの周期を２倍にしたときの書込みパルスの波形を示すタイミングチャートである。
【図１５】可変分周回路と基準となる書込みパルスを生成する回路部分の構成例を示すブロック図である。
【図１６】各ビット線へ印加される書込みパルスの他のタイミングの例を示すタイミングチャートである。
【図１７】各ビット線へ印加される書込みパルスのさらに他のタイミングの例を示すタイミングチャートである。
【図１８】本発明に係るフラッシュメモリにおける書込み手順のより具体的な例を示すフローチャートである。
【図１９】各ビット線へ印加される書込みパルスのさらに他のタイミングの例を示すタイミングチャートである。
【図２０】各ビット線へ印加される書込みパルスのさらに他のタイミングの例を示すタイミングチャートである。
【図２１】実施例のフラッシュメモリ回路における書込み制御回路の他の具体例を示す回路図である。
【図２２】図２１の書込み制御回路の内部の信号のタイミングを示すタイミングチャートである。
【図２３】実施例のフラッシュメモリ回路における書込み制御回路のさらに他の具体例を示す回路図である。
【図２４】図２３の書込み制御回路を構成するラッチ回路およびセレクタ回路の具体例を示す回路構成図である。
【符号の説明】
【００９９】
１１  メモリアレイ
１２  データレジスタ
１３  書込み制御回路
１４  Ｘデコーダ
１５  Ｙデコーダ
１６  センスアンプ
１７  フラッシュメモリの内部制御回路
１８  データ入出力回路
１９  電源回路
３１  書込み制御用のシフトレジスタ
３２  データ判定＆シフト制御回路
４１  可変分周回路
４２  分周比設定用レジスタ
４３  デコーダ
４４  クロックドライバ
５１  シフトレジスタ
５２  重ね合わせビット数設定用レジスタ
５３  デコーダ
５４  パルス調整回路
【図１】
0004666394.tif 000003
【図２】
0004666394.tif 000004
【図３】
0004666394.tif 000005
【図４】
0004666394.tif 000006
【図５】
0004666394.tif 000007
【図６】
0004666394.tif 000008
【図７】
0004666394.tif 000009
【図８】
0004666394.tif 000010
【図９】
0004666394.tif 000011
【図１０】
0004666394.tif 000012
【図１１】
0004666394.tif 000013
【図１２】
0004666394.tif 000014
【図１３】
0004666394.tif 000015
【図１４】
0004666394.tif 000016
【図１５】
0004666394.tif 000017
【図１６】
0004666394.tif 000018
【図１７】
0004666394.tif 000019
【図１８】
0004666394.tif 000020
【図１９】
0004666394.tif 000021
【図２０】
0004666394.tif 000022
【図２１】
0004666394.tif 000023
【図２２】
0004666394.tif 000024
【図２３】
0004666394.tif 000025
【図２４】
0004666394.tif 000026