(57)【要約】【課題】データ消失の原因となるトンネル酸化膜等の劣化を生ぜしめずに、不揮発性メモリのデータ保持期間を延ばすことを目的とする。【解決手段】追加書き込み可能な不揮発性メモリを搭載した記憶システムにおいて、不揮発性メモリには記憶データと共に誤り訂正機能を有するエラーチェックコードを付加し、システムの電源起動時にエラーチェックコードにより不揮発性メモリ内のエラーチェックを行い、訂正可能な誤りを発見したらエラー訂正を追加書き込みで行う。また、エラーチェックコードの発生及びエラーチェックをハードウエア構成で行う。【選択図】　　　　図１
2004055098.tif 000002
【特許請求の範囲】
【請求項１】
追加書き込み可能な不揮発性メモリを搭載した記憶システムにおいて、
不揮発性メモリには記憶データと共に誤り訂正機能を有するエラーチェックコードが付加され、
電源起動時にエラーチェックコードにより不揮発性メモリ内のエラーチェックを行うエラーチェック手段と、
訂正可能な誤りを発見したらエラー訂正を追加書き込みで行う追加書き込み手段を備えた不揮発性メモリの記憶システム。
【請求項２】
上記エラーチェック手段において、エラーチェックコードの発生と、発生したエラーチェックコードと不揮発性メモリから読み出されたエラーチェックコードの比較をハードウェア構成で行うことを特徴とする請求項１に記載の不揮発性メモリの記憶システム。
【請求項３】
追加書き込みが可能で、かつ書き込み深さが基準に達しているかどうか判定できる機構を有する不揮発性メモリを搭載した記憶システムにおいて、
不揮発性メモリには記憶データと共に誤り訂正機能を有するエラーチェックコードが付加され、
電源起動時に書き込み深さが基準に達しているかどうかをエラーチェックコード付きで調べる書き込み深さ・エラーチェック手段と、
上記書き込み深さが基準に達していない部分を読み出して同じデータを同じ場所に書き込む追加書き込み手段を備えた不揮発性メモリの記憶システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、追加書き込み可能な不揮発性メモリ（ＥＥＰＲＯＭ、フラッシュメモリ等）を搭載した記憶システムに関するものである。
【０００２】
【従来の技術】
図９はＥＥＰＲＯＭセルの構造を示す概略断面図である。図において、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌ　Ｅｒａｓａｂｌｅ　ＰＲＯＭ）セルは、コントロールゲートＣＧ１とシリコン基板１０の間にフローティングゲートＦＧ１を設け、フローティングゲートＦＧ１の中の電荷の有無によりデータを保持させている。フローティングゲートＦＧ１とドレインＤ１の間にはトンネル酸化膜ＴＯ１と呼ばれる酸化膜（ＳｉＯ２）の薄い部分を形成し、このトンネル酸化膜ＴＯ１を通してフローティングゲートＦＧ１への電子の注入及び引き抜きを行う。
【０００３】
ＥＥＰＲＯＭセルにデータを書き込む場合は、図１０に示すように、コントロールゲートＣＧ１に１８Ｖ、ドレインＤ１に０Ｖを与える。この時、トンネル酸化膜ＴＯ１でトンネル現象が生じ、電子をフローティングゲートＦＧ１に注入することができる。
【０００４】
ＥＥＰＲＯＭセルのデータを消去する場合は、図１１に示すように、コントロールゲートＣＧ１に０Ｖ、ドレインＤ１に１８Ｖを与える。この時も上記書き込みと同様に、トンネル酸化膜ＴＯ１で生じるトンネル現象により電子をフローティングゲートＦＧ１から抜き取ることができる。
【０００５】
次に、フラッシュメモリの場合について説明する。図１２はフラッシュメモリのセル構造を示す概略断面図である。図において、コントロールゲートＣＧ４とシリコン基板１１との間にフローティングゲートＦＧ４を設け、フローティングゲートＦＧ４中の電荷の有無によりデータを保持させている。ドレインＤ４はｎ型不純物層の周りにｐ型不純物層を形成し、ドレインＤ４付近で発生したホットエレクトロンをフローティングゲートＦＧ４に注入することにより書き込みを行う。
【０００６】
フラッシュメモリセルにデータを書き込む場合は、図１３に示すように、コントロールゲートＣＧ４に１８Ｖ、ドレインＤ４に６Ｖ、ソースＳ４に０Ｖを与える。この時、ドレインＤ４付近のＰＮ接合でホットエレクトロンが発生し、電子をフローティングゲートＦＧ４に注入することができる。
【０００７】
フラッシュメモリセルのデータを消去する場合は、図１４に示すように、コントロールゲートＣＧ４に０Ｖ、ソースＳ４に１８Ｖを与える。この時、ソースＳ４とフローティングゲートＦＧ４の間で生じるトンネル現象により電子をフローティングゲートＦＧ４から抜き取ることができる。
【０００８】
【発明が解決しようとする課題】
従来の不揮発性メモリであるＥＥＰＲＯＭ及びフラッシュメモリには以下に述べる問題があった。
【０００９】
すなわち、ＥＥＰＲＯＭセルの場合、データ保持期間が長期に渡ると、トンネル酸化膜ＴＯ１並びにコントロールゲートＣＧ１とフローティングゲートＦＧ１間の酸化膜Ｏ１を通じて、フローティングゲートＦＧ１から電子がリークし、データが消失する可能性がある。
【００１０】
フラッシュメモリセルの場合、コントロールゲートＣＧ４とフローティングゲートＦＧ４の間の酸化膜Ｏ４１、フローティングゲートＦＧ４とソースＳ４間の酸化膜Ｏ４２、並びにフローティングゲートＦＧ４とドレインＤ４間の酸化膜Ｏ４３を通じて、フローティングゲートＦＧ４から電子がリークすることによってデータが消失する可能性がある。
【００１１】
この発明は、上記のような課題を解消するためになされたものであり、データ消失の原因となるトンネル酸化膜、ゲート間酸化膜、ゲートとドレイン／ソース間酸化膜の劣化を生ぜしめずに、不揮発性メモリのデータ保持期間を延ばすことを目的とする。
【００１２】
【課題を解決するための手段】
この発明に係る不揮発性メモリの記憶システムは、追加書き込み可能な不揮発性メモリを搭載した記憶システムにおいて、不揮発性メモリには記憶データと共に誤り訂正機能を有するエラーチェックコードが付加され、電源起動時にエラーチェックコードにより不揮発性メモリ内のエラーチェックを行うエラーチェック手段と、訂正可能な誤りを発見したらエラー訂正を追加書き込みで行う追加書き込み手段を備えたものである。
【００１３】
また、この発明に係る不揮発性メモリの記憶システムは、上記エラーチェック手段において、エラーチェックコードの発生と、発生したエラーチェックコードと不揮発性メモリから読み出されたエラーチェックコードの比較をハードウェア構成で行うことを特徴とする。
【００１４】
更に、この発明に係る不揮発性メモリの記憶システムは、追加書き込みが可能で、かつ書き込み深さが基準に達しているかどうか判定できる機構を有する不揮発性メモリを搭載した記憶システムにおいて、不揮発性メモリには記憶データと共に誤り訂正機能を有するエラーチェックコードが付加され、電源起動時に書き込み深さが基準に達しているかどうかをエラーチェックコード付きで調べる書き込み深さ・エラーチェック手段と、上記書き込み深さが基準に達していない部分を読み出して同じデータを同じ場所に書き込む追加書き込み手段を備えたものである。
【００１５】
【発明の実施の形態】
実施の形態１．
まず、本実施の形態による不揮発性メモリの前提条件として、当該不揮発性メモリ（ＥＥＰＲＯＭ及びフラッシュメモリ）は、追加書き込みが可能なハードウェア構成を備えていることとする。
【００１６】
ここで、「追加書き込み」とは不揮発性メモリを消去せずに書き込むことである。ＥＥＰＲＯＭ及びフラッシュメモリは通常書き込む前にフローティングゲート内の電子を引き抜く「消去」という操作をあらかじめ行い、メモリセルを初期化してからフローティングゲートに電子を注入する「書き込み」の操作を行う。ここで、上記消去の操作を行わずに書き込みの操作のみを実施することを「追加書き込み」という。追加書き込みは次の様にして実現する。
【００１７】
（１）消去・書き込み設定用のレジスタを設け、消去が設定さえていれば消去サイクルに、書き込みが設定されていれば書き込みサイクルに入るようにする。
（２）通常の書き込みをする場合は、消去と書き込みの両方をセットする。こうする事により消去サイクルに入り、消去が終了すると書き込みサイクルに入る。
（３）追加書き込みを行いたい場合は、消去を設定せずに書き込みのみを設定する。このようにする事により、消去サイクルに入らずに書き込みサイクルに入る。すなわち消去せずに書き込みができる。
【００１８】
この発明の実施の形態１による不揮発性メモリは、上述の追加書き込み可能な不揮発性メモリを用いて、当該不揮発性メモリにデータと共に１ビット以上の誤り訂正機能を有するエラーチェックコード（ＥＣＣ）を付加し、電源起動時にＥＣＣにより不揮発性メモリ内のエラーチェックを行い、訂正可能な誤りを発見したらエラー訂正を追加書き込みで行うことにより、データの保持期間を延ばすようにする。
【００１９】
図１はこの発明の実施の形態１による不揮発性メモリの記憶システムを示すブロック図である。本実施の形態１の不揮発性メモリの記憶システムは、不揮発性メモリ１０、ＣＰＵ２０、ＲＯＭ３０がデータバス４０、アドレスバス４１に接続されている。データバス４０及びアドレスバス４１は、不揮発性メモリ１０、ＣＰＵ２０、ＲＯＭ３０間においてデータ又は制御信号を送受信する。不揮発性メモリ１０は、メモリセルアレイ１、指定されるワード線を駆動するワード線駆動回路２、与えられたアドレス信号に対応するワード線の駆動をワード線駆動回路２に指令するロウデコーダ３、指示されたビット線を駆動するビット線制御回路４、与えられたアドレス信号に対応するビット線の駆動をビット線制御回路４に指令するカラムデコーダ５、アドレス信号を一時保持するアドレスバッファ６、入出力データを一時保持するデータレジスタ７、コマンドを一時保持するコマンドレジスタ８により構成されている。なお、上述の消去・書き込み設定用のレジスタはコマンドレジスタ８に相当する。
【００２０】
ＣＰＵ２０は不揮発性メモリ１０へのデータの書き込み／読み出し／消去を制御する。すなわち、データの書き込みは、ＣＰＵ２０からデータレジスタ７に書き込むべきデータが供給されるとともに、ＣＰＵ２０から書き込みコマンドがコマンドレジスタ８に、書き込みアドレスがアドレスバッファ６にそれぞれ供給される。その結果、メモリセルアレイ１内の指定アドレスに対応するメモリセルに対してデータの書き込みが行われる。データの消去は、ＣＰＵ２０から消去コマンドがコマンドレジスタ８に供給され、またアドレス信号がアドレスバッファ６に供給されることにより行われ、アドレス指定されたメモリセルアレイ１内の該当するメモリセルのデータが消去される。データの読み出しは、ＣＰＵ２０から読出しコマンドがコマンドレジスタ８に供給され、読出しアドレスがアドレスバッファ６に与えられることにより行われ、メモリセルアレイ１内の指定されたアドレスのメモリセルから読み出されたデータは、ビット線制御回路４、データレジスタ７を介してＣＰＵ２０に取込まれる。
【００２１】
また、ＣＰＵ２０はＲＯＭ３０内のプログラムを実行する。ＲＯＭ３０には図２のフローチャートを実行するプログラムが格納されている。
【００２２】
次に、図２に基づいて、ＲＯＭ３０内に格納されたプログラムのフローを説明する。まず、あらかじめ不揮発性メモリ１０のメモリセルアレイ１のデータ書き込み時に、１ビット以上誤り訂正能力のあるエラーチェックコード（ＥＣＣ）を付加して書き込んでおく。そして、電源起動時に不揮発性メモリ１０のメモリセルアレイ１の各アドレスのデータを読み出し、ＥＣＣを発生させ、メモリセルアレイ１に書き込まれているＥＣＣと比較する。エラー訂正できる誤りを発見したら、エラー訂正を追加書き込みで行う。その後、不揮発性メモリが搭載されているシステム起動のための処理に移る。ただし、ここでは電源起動のたびに追加書き込みを行うことが重要であるので、システム起動の処理を先に行ってから上記の処理を行っても構わない。
【００２３】
図３に情報ビツト１６ビツト（１ワード）、１ビット誤り訂正、２ビット誤り検出可能なエラーチェックコード（ＥＣＣ）の構成法の例を示す。例えば、１ｗｏｒｄのデータのビットｉをｄａｔ（ｉ）（ｉ＝０，１，２，．．．，１５）として、
ｃｏｄｅ（０）＝ｄａｔ（０）＋ｄａｔ（２）＋ｄａｔ（４）＋ｄａｔ（６）＋ｄａｔ（８）＋ｄａｔ（１０）＋ｄａｔ（１２）＋ｄａｔ（１４）
ｃｏｄｅ（１）＝ｄａｔ（０）＋ｄａｔ（１）＋ｄａｔ（４）＋ｄａｔ（５）＋ｄａｔ（８）＋ｄａｔ（９）＋ｄａｔ（１２）＋ｄａｔ（１３）
ｃｏｄｅ（２）＝ｄａｔ（０）＋ｄａｔ（１）＋ｄａｔ（２）＋ｄａｔ（３）＋ｄａｔ（８）＋ｄａｔ（９）＋ｄａｔ（１０）＋ｄａｔ（１１）＋ｄａｔ（１５）
ｃｏｄｅ（３）＝ｄａｔ（０）＋ｄａｔ（１）＋ｄａｔ（２）＋ｄａｔ（３）＋ｄａｔ（４）＋ｄａｔ（５）＋ｄａｔ（６）＋ｄａｔ（７）＋ｄａｔ（１５）
ｃｏｄｅ（４）＝ｄａｔ（７）＋ｄａｔ（１１）＋ｄａｔ（１３）＋ｄａｔ（１４）＋ｄａｔ（１５）
ｃｏｄｅ（５）＝ｄａｔ（０）＋ｄａｔ（３）＋ｄａｔ（５）＋ｄａｔ（６）＋ｄａｔ（７）＋ｄａｔ（９）＋ｄａｔ（１０）＋ｄａｔ（１１）＋ｄａｔ（１２）＋ｄａｔ（１３）＋ｄａｔ（１４）とする（ただし、＋はＥＸＯＲを意味する）。
この場合、冗長ビットが６ビットから構成される｛ｃｏｄｅ（５），ｃｏｄｅ（４），ｃｏｄｅ（３），ｃｏｄｅ（２），ｃｏｄｅ（１），ｃｏｄｅ（０）｝をＥＣＣとする。
【００２４】
図４は上記ＥＣＣを用いた誤り判定法の例を示す。ここで、１ｗｏｒｄのデータを読み出してエラーチェックコードＥＣＣ１を生成する。一方、不揮発性メモリに付加されているエラーチェックコードＥＣＣ２を読み出す。そして、Ｊ＝ＥＣＣ１＋ＥＣＣ２を求める。ここで、＋記号はＥＸＯＲを意味する。ａをＪの中の１であるビット数とすると、下記の様に判定する。
【００２５】
（１）ａ＝０の場合、データにもＥＣＣにも誤り無しと判定する。
（２）ａ＝１の場合、データには誤りがないがＥＣＣに誤り有りと判定する。
（３）ａ＝偶数の場合、データに偶数個の誤り有りと判定する。
（４）ａ＝３以上の奇数の場合、データに１個の訂正可能な誤り有りと判定する。
【００２６】
以上のようにして、エラー訂正できる誤りを発見した場合は、ＣＰＵ２０はエラー訂正を追加書き込みで行うようにする。ただし上記の処理で用いるＥＣＣは他のものを用いても構わない。
【００２７】
以上のように実施の形態１によれば、エラー訂正できる誤りを発見した場合のみにエラー訂正を追加書き込みで行うようにしたので、書き込み操作が少なくて済み、短時間で処理を行うことができる。また、不要な追加書き込みがないため酸化膜へのダメージを避けることができる。すなわち、電源起動前の書き込み深さが十分であれば電源起動後の追加書き込み時のトンネル電流が小さいまたはホットエレクトロン注入の量が少ないため、酸化膜にダメージを与えずにすむ。書き込み深さが不十分であればフローティングゲート内の電子か補充されるため、データ消失を防ぐことかできる。従って、データ消失の原因となる酸化膜を劣化させずにＥＥＰＲＯＭ及びフラッシュメモリのデータ保持期間を延ばすことができる。
【００２８】
実施の形態２．
実施の形態２では、実施の形態１において必要となる訂正機能を有するエラーチェックコード（ＥＣＣ）をハードウェア（ＥＣＣ回路）により生成させるようにする。
【００２９】
図５はこの発明の実施の形態２による不揮発性メモリの記憶システムを示すブロック図である。本実施の形態２の不揮発性メモリの記憶システムは、不揮発性メモリ１０、ＣＰＵ２０、ＲＯＭ３０、並びに訂正機能を有するエラーチェックコード（ＥＣＣ）を生成するＥＣＣ回路５０が、バス４０に接続されている。ＲＯＭ３０には図２のフローチャートを実行するプログラムが格納されており、電源起動時にはＣＰＵ２０はＲＯＭ３０内のプログラムを実行する。
【００３０】
図６はＥＣＣ回路５０の一例を示す回路ブロック図である。図において、データ７０｛ｄａｔ（０）〜ｄａｔ（５）｝とｃｏｒｒｅｃｔ＿ｅｎ信号とがＡＮＤゲート６１に入力され、これらＡＮＤゲートの出力と｛ｒｅｇｏｕｔ（０）〜ｒｅｇｏｕｔ（５）｝値がＥＸＯＲゲート６２に入力される。ここで、ｒｅｇｏｕｔ（０）〜ｒｅｇｏｕｔ（５）はそれぞれ後述するレジスタ６５の出力のビット０〜ビット５である。一方、ＥＣＣ生成部６０はデータ７１｛ｄａｔ（０）〜ｄａｔ（１５）｝を入力して例えば図３に示す６ビットからなるＥＣＣ｛ｃｏｄｅ（０）〜ｃｏｄｅ（５）｝を生成する。ＥＸＯＲゲート６２の出力及びＥＣＣ生成部６０の出力はマルチプレクサ６３に入力されている。マルチプレクサ６３にはｓｅｌ信号が入力され、ｓｅｌ信号が１の場合にＥＣＣ生成部６０の出力が選択されてレジスタ６５に入力され、ｓｅｌ信号が０の場合にＡＮＤゲート６１を経由したデータがレジスタ６５に入力される。ｗｒｉｔｅ＿ｅｎ信号はレジスタ６５の書き込み信号である。レジスタ６５の出力はバッファ６６を介してデータ７２｛ｄａｔ（０）〜ｄａｔ（５）｝として出力される。ｒｅａｄ＿ｅｎ信号はバッファ６６の読み出し信号である。
【００３１】
次に、図６のＥＣＣ回路５０の構成において、ＥＣＣの生成及び書き込み動作について説明する。
【００３２】
まず、ＥＣＣを生成する時は、不揮発性メモリ１０に記憶しようとする１ｗｏｒｄ（１６ビット）のデータをＥＣＣ生成部６０の入力７１｛ｄａｔ（０）〜ｄａｔ（１５）｝に入力し、ＥＣＣ生成部６０が６ビットからなるＥＣＣ｛ｃｏｄｅ（０）〜ｃｏｄｅ（５）｝を生成する。一方、ＣＰＵ２０からマルチプレクサ６３のｓｅｌ信号に１、レジスタ６５のｗｒｉｔｅ＿ｅｎ信号に１を入力し、ＥＣＣ生成部６０で生成された上記ＥＣＣをレジスタ６５に書き込む。
【００３３】
次に、不揮発性メモリ１０へデータを書き込む時は、ＣＰＵ２０からバッファ６６のｒｅａｄ＿ｅｎ信号に１を入力し、上記手順で生成されたＥＣＣをレジスタ６５から読み出す。そして、レジスタ６５から読み出されたＥＣＣのコード（６ビット）と１ｗｏｒｄ（１６ビット）のデータとを対応づけ、不揮発性メモリ１０のデータレジスタ７に書き込み、不揮発性メモリ１０に記憶させる。
【００３４】
次に、図５及び図６の構成において、ＥＣＣに基づいた誤りチェックの判定動作について説明する。
【００３５】
（１）まず、ＣＰＵ２０は不揮発性メモリ１０に記憶されている１ｗｏｒｄのデータ（１６ビット）を読み出し、ＥＣＣ生成部６０の入力７１｛ｄａｔ（０）〜ｄａｔ（１５）｝に入力する。ＥＣＣ生成部６０は上記入力データに基づき例えば図３に示すＥＣＣを生成する。一方、ＣＰＵ２０はマルチプレクサ６３のｓｅｌ信号に１、レジスタ６５のｗｒｉｔｅ＿ｅｎ信号に１を入力し、ＥＣＣ生成部６０で生成された上記ＥＣＣをレジスタ６５に格納する。
【００３６】
（２）次に、ＣＰＵ２０は上記１ｗｏｒｄのデータ（１６ビット）に対応するＥＣＣ（６ビットのコード）を読み出し、データ７０として入力する。この時、ＣＰＵ２０は、ＡＮＤゲート６１のｃｏｒｒｅｃｔ＿ｅｎ信号に１、マルチプレクサ６３のｓｅｌ信号に１、レジスタ６５のｗｒｉｔｅ＿ｅｎ信号に１を入力する。そうすると、ここで読み出したＥＣＣと、ＥＣＣ生成部６０で新たに生成された上記ＥＣＣとの排他的論理和がＥＸＯＲゲート６２でとられ、その結果がレジスタ６５に格納される。
【００３７】
（３）次に、ＣＰＵ２０はＥＣＣ回路５０のレジスタ６５を読み出し、図４に示すフローチャートに従った判定処理を行う。そして、訂正可能な誤りが有る場合には、ＣＰＵ２０はその訂正した誤りを追加書き込みで不揮発性メモリ１０に記憶する。
【００３８】
以上のように実施の形態２によれば、ＥＣＣをハードウェアにより発生させるようにしたので、実施の形態１より更に高速にデータ保持処理を行うことができる。
【００３９】
実施の形態３．
まず、本実施の形態による不揮発性メモリの前提条件として、当該不揮発性メモリ（ＥＥＰＲＯＭ及びフラッシュメモリ）は、追加書き込みが可能なハードウェア構成を備えていると共に、書き込み深さ判定が可能なハードウェア構成を備えている。
【００４０】
ここで、書き込み深さの判定は以下のように行う。図７に示すように、電流センス型センスアンプの出力にＰチャネルトランジスタＰＴＲ１を付加する。ＰＴＲ１のゲートに加える電圧ＶＲＥＦは外部から自由に与えることのできる電圧である。
【００４１】
（１）不揮発性メモリにデータを書き込む。
（２）ＶＲＥＦに外部から電圧を与える。
（３）不揮発性メモリのデータの読み出しを行い、データが書かれているいるかどうか確かめる。
（４）ＶＲＥＦの電圧を変化させていくと、ある電圧より大きくなると、データを読み出すことができなくなる。すなわち、データ“０”が“１”と読み出されるようになる。この時のＶＲＥＦの値が書き込み深さである。
【００４２】
上記書き込み深さは、ＶＲＥＦの値が大きいほど書き込みが浅いということになる。
【００４３】
ここで、図７の回路動作について説明する。図７はセンスアンプ部であり、メモリセルから読み出したデータをデータバス等へ出力する部分である。ＩＮ１はメモリセルからセンスアンプへの入力であり、ＯＵＴ１はセンスアンプからデータバス等への出力である。ＯＵＴ１は抵抗Ｒ１並びにゲートへＶＲＥＦが入力されているトランジスタＰＴＲ１によりプルアップされている。ＩＮ１が１の時、トランジスタＮＴＲ１はＯＦＦするため、ＯＵＴ１はＨｉｇｈになる。ＩＮ１が０の時、トランジスタＮＴＲ１がＯＮするため、ＯＵＴ１はＬｏｗになる。ここで、ＶＲＥＦの電圧を低くするとトランジスタＰＴＲ１を流れる電流が増加し、ＩＮ１が０でもＯＵＴ１が０にならなくなる。従って、書き込みが十分でなければＶＲＥＦの値が大きいうちにＯＵＴ１を０にすることができなくなる。このようにしてＶＲＥＦの大きさにより書き込み深さを測ることができる。
【００４４】
実施の形態３では、追加書き込み可能でかつ上記書き込み深さの測定が可能な不揮発性メモリを用いる。そして、電源起動時に書き込み深さが基準に達しているかどうかを、エラーチェックコード付きで調べ、基準に達していない部分を読み出して同じデータを同じ場所に書き込むことにより、データの保持期間を延ばすようにする。
【００４５】
図８は実施の形態３による不揮発性メモリの記憶方法を示すフローチャートである。まず、データ書き込み時に１ビツト以上誤り訂正能力のあるエラーチェックコード（ＥＣＣ）を付加して書き込む。その後、電源起動時に不揮発性メモリのＥＣＣを読み出し、次に、ＶＲＥＦに書き込み深さの基準となる電圧を与えてＥＣＣを読み出す。この時、書き込み深さが基準に達していない場合は、データは正しく読めない。両者を比較して訂正できる誤りがあれば追加書き込みで訂正する。すなわち１が書かれているビットの書き込み深さが基準に達しているかどうかＥＣＣを用いて調べ、基準より書き込み深さが浅い部分だけ追加書き込みを行う。ＥＣＣの発生はソフトウエアを使ってもハードウェアを使ってもどちらでも構わない。その後システム起動のための処理に移る。なお、上記処理もシステム起動の処理を先に行ってから上記の処理を行っても構わない。
【００４６】
上記実施の形態によれば、書き込み操作に移る回数が減るので短時間でデータ保持処理を行うことができる。また、不要な追加書き込みがないため酸化膜へのダメージを避けることができる。更に、実際にデータの消失か起こる前に追加書き込みを行っているので、データの信頼性が高くなる。
【００４７】
【発明の効果】
以上のように、この発明によれば、エラー訂正できる誤りを発見した場合のみにエラー訂正を追加書き込みで行うようにしたので、書き込み操作が少なくて済み、短時間でデータ保持処理を行うことができる。また、不要な追加書き込みがないため酸化膜へのダメージを避けることができる。
【００４８】
また、この発明によれば、ＥＣＣをハードウェアにより発生させるようにしたので、更に高速にデータ保持処理を行うことができる。
【００４９】
また、この発明によれば、書き込み深さが基準に達しているかどうかをエラーチェックコード付きで調べ、基準に達していない部分を読み出して同じデータを同じ場所に書き込むようにしたので、書き込み操作に移る回数が減り、短時間でデータ保持処理を行うことができる。また、不要な追加書き込みがないため酸化膜へのダメージを避けることができる。更に、実際にデータの消失か起こる前に追加書き込みを行っているので、データの信頼性が高くなる。
【図面の簡単な説明】
【図１】この発明の実施の形態１による不揮発性メモリの記憶システムを示すブロック図である。
【図２】この発明の実施の形態１による不揮発性メモリの訂正方法を示すフローチャートである。
【図３】エラーチェックコード（ＥＣＣ）の構成例を示す図である。
【図４】エラーチェックコード（ＥＣＣ）による誤り判定方法を示すフローチャートである。
【図５】この発明の実施の形態２による不揮発性メモリの記憶システムを示すブロック図である。
【図６】エラーチェックコード（ＥＣＣ）の生成及び誤り判定を行うハードウェアの構成例を示す図である。
【図７】不揮発性メモリの書き込み判定が可能な構成を示す回路図である。
【図８】この発明の実施の形態３による不揮発性メモリの訂正方法を示すフローチャートである。
【図９】ＥＥＰＲＯＭセルの構造を示す概略断面図である。
【図１０】ＥＥＰＲＯＭセルに電子を注入する状態を示す概略断面図である。
【図１１】ＥＥＰＲＯＭセルから電子を引き抜く状態を示す概略断面図である。
【図１２】フラッシュメモリセルの構造を示す概略断面図である。
【図１３】フラッシュメモリセルに電子を注入する状態を示す概略断面図である。
【図１４】フラッシュメモリセルから電子を引き抜く状態を示す概略断面図である。
【符号の説明】
１　メモリセルアレイ、２　ワード線駆動回路、３　ロウデコーダ、４　ビット線制御回路、５　カラムデコーダ、６　アドレスバッファ、７　データレジスタ、８　コマンドレジスタ、１０　不揮発性メモリ、２０　ＣＰＵ、３０　ＲＯＭ、４０　バス、５０　ＥＣＣ回路。
【図１】
2004055098.tif 000003
【図２】
2004055098.tif 000004
【図３】
2004055098.tif 000005
【図４】
2004055098.tif 000006
【図５】
2004055098.tif 000007
【図６】
2004055098.tif 000008
【図７】
2004055098.tif 000009
【図８】
2004055098.tif 000010
【図９】
2004055098.tif 000011
【図１０】
2004055098.tif 000012
【図１１】
2004055098.tif 000013
【図１２】
2004055098.tif 000014
【図１３】
2004055098.tif 000015
【図１４】
2004055098.tif 000016