(57)【要約】【課題】データの信頼性を向上すること。【解決手段】不揮発性メモリ１は、メモリセルアレイ２と、第１のセンスアンプ３と、第２のセンスアンプ４と、書き込み部５とを有している。メモリセルアレイ２は、フローティングゲートを備える複数のメモリセルを有している。第１のセンスアンプ３は、フローティングゲートの電圧値と、メモリセルの書き込み状態と消去状態とを識別する第１の閾値との大小を判定する。第２のセンスアンプ４は、フローティングゲートの電圧値と、第１の閾値より大きな第２の閾値との大小を判定する。書き込み部５は、第２のセンスアンプ４が、第２の閾値がフローティングゲートの電圧値より大きいと判定したフローティングゲートを備えるメモリセルのデータを再度書き込む。【選択図】図１
2010135036.tif 000002
【特許請求の範囲】
【請求項１】
フローティングゲートを備える複数のメモリセルを有するメモリセルアレイと、
前記フローティングゲートの電圧値と、前記メモリセルの書き込み状態と消去状態とを識別する第１の閾値との大小を判定する第１のセンスアンプと、
前記フローティングゲートの電圧値と、前記第１の閾値より大きな第２の閾値との大小を判定する第２のセンスアンプと、
前記第２のセンスアンプが、前記第２の閾値が前記フローティングゲートの電圧値より大きいと判定した前記フローティングゲートを備える前記メモリセルのデータを再度書き込む書き込み部と、
を有することを特徴とする不揮発性メモリ。
【請求項２】
前記第２のセンスアンプの判定は、前記第１のセンスアンプが前記第１の閾値が前記フローティングゲートの電圧値より大きいと判定した後に行われることを特徴とする請求項１記載の不揮発性メモリ。
【請求項３】
前記メモリセルアレイの指定されたアドレスのブロックのデータを読み出すデータ読み出し部と、
読み出した前記データを一時記憶する一時記憶部とをさらに有し、
前記データ読み出し部は、前記第２の閾値が前記フローティングゲートの電圧値より大きいと判定したデータをブロック単位で読み出して前記一時記憶部に記憶し、
前記書き込み部は、前記アドレスのブロックのデータを消去した後に、前記一時記憶部に記憶したデータを前記アドレスのブロックとは異なるアドレスのブロックに再度書き込むことを特徴とする請求項１記載の不揮発性メモリ。
【請求項４】
前記メモリセルアレイのアドレスのブロックにデータを書き込む際、前記ブロックの所定のメモリセルがデータを常に書き込む書き込み位置に設定されており、
前記第２のセンスアンプは、前記書き込み位置のメモリセルのフローティングゲートの電圧値と、前記第２の閾値との大小を判定することを特徴とする請求項１記載の不揮発性メモリ。
【請求項５】
フローティングゲートを備える複数のメモリセルを有するメモリセルアレイと、前記フローティングゲートの電圧値と、前記メモリセルの書き込み状態と消去状態とを識別する第１の閾値との大小を判定する第１のセンスアンプと、前記フローティングゲートの電圧値と、前記第１の閾値より大きな第２の閾値との大小を判定する第２のセンスアンプと、指示されたデータを前記メモリセルに書き込む書き込み部と、を有する不揮発性メモリに対し、前記第２のセンスアンプが前記第２の閾値が前記フローティングゲートの電圧値より大きいと判定した前記フローティングゲートを備える前記メモリセルのデータの書き込みを前記書き込み部に指示する書き込み指示部を有することを特徴とするメモリ制御装置。
【請求項６】
前記不揮発性メモリは、所定の日時が経過したか否かを判断する日時経過判断用閾値が設定されたレジスタをさらに有し、
前記書き込み指示部は、前記第２のセンスアンプが判定処理を行う毎に、前記判定処理を行った日時を前記不揮発性メモリの所定の位置に書き込むよう前記書き込み部に指示し、
現在の日時と前記所定の位置に書き込まれた日時との差分が前記日時経過判断用閾値を超えた場合に前記第２のセンスアンプの判定処理を行わせることを特徴とする請求項５記載のメモリ制御装置。
【請求項７】
前記メモリセルのアクセス回数を判断するアクセス回数判断用閾値が設定されたレジスタをさらに有し、
前記書き込み指示部は、前記不揮発性メモリに対するアクセス回数を前記不揮発性メモリの所定の位置に書き込むよう前記書き込み部に指示し、
前記アクセス回数が前記アクセス回数判断用閾値を超えた場合に前記第２のセンスアンプの判定処理を行わせることを特徴とする請求項５記載のメモリ制御装置。
【請求項８】
フローティングゲートを備える複数のメモリセルを有するメモリセルアレイと、前記フローティングゲートの電圧値と、前記メモリセルの書き込み状態と消去状態とを識別する第１の閾値との大小を判定する第１のセンスアンプと、前記フローティングゲートの電圧値と、前記第１の閾値より大きな第２の閾値との大小を判定する第２のセンスアンプと、指示されたデータを前記メモリセルに書き込む書き込み部と、を有する不揮発性メモリと、
前記不揮発性メモリに対し、前記第２のセンスアンプが前記第２の閾値が前記フローティングゲートの電圧値より大きいと判定した前記フローティングゲートを備える前記メモリセルのデータの書き込みを前記書き込み部に指示する書き込み指示部を有するメモリ制御装置と、
前記メモリ制御装置の動作状態を表示装置に表示させる表示制御部と、
を有することを特徴とするメモリ制御システム。
【請求項９】
前記不揮発性メモリは、前記書き込み指示部が前記書き込み部に書き込みを指示する回数を格納する部位を有し、
前記回数が、所定の回数を超えた場合、前記第２のセンスアンプの前回の判定処理を行った時間から今回の判定処理を行うまでの時間の間隔よりも今回の判定処理を行う時間から次回以降の判定処理を行う時間の間隔を短くすることを特徴とする請求項８記載のメモリ制御システム。
【請求項１０】
フローティングゲートを備える複数のメモリセルを有するメモリセルアレイを備える不揮発性メモリが有する、
第１のセンスアンプが、前記フローティングゲートの電圧値と、前記メモリセルの書き込み状態と消去状態とを識別する第１の閾値との大小を判定し、
第２のセンスアンプが、前記フローティングゲートの電圧値と、前記第１の閾値より大きな第２の閾値との大小を判定し、
書き込み部が、前記第２のセンスアンプが、前記第２の閾値が前記フローティングゲートの電圧値より大きいと判定した前記フローティングゲートを備える前記メモリセルのデータを再度書き込む、
ことを特徴とする不揮発性メモリの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は不揮発性メモリ、メモリ制御装置、メモリ制御システムおよび不揮発性メモリの制御方法に関し、特に、データの信頼性を向上する不揮発性メモリ、メモリ制御装置、メモリ制御システムおよび不揮発性メモリの制御方法に関する。
【背景技術】
【０００２】
近年、大容量化が可能、不揮発性、低消費電力等の理由から、ＵＳＢ（Universal Serial Bus）メモリやフラッシュメモリカード等の不揮発性メモリを使用したメモリデバイスが広く普及している。
【０００３】
これらメモリデバイスには、長期間に渡ってデータを保存する信頼性が求められている。
また、画像や映像等、データの大容量化により、より大容量なメモリデバイスが必要となり、不揮発性メモリの狭プロセス化も積極的に行われている。
【０００４】
図３３は、ＮＡＮＤ型不揮発性メモリの基本セル構造を示す回路図である。
不揮発性メモリ（Nonvolatile memory）９０は、ＮＡＮＤセルグループ９１を構成する複数のＮＡＮＤセル（Cell）（メモリトランジスタ）９２を直列に接続した構成をなしている。
【０００５】
ＮＡＮＤセル９２の指定は選択ゲート（Select Gate）９３により行う。また消去は、ＮＡＮＤセルグループ９１毎に行う。
各ＮＡＮＤセル９２は、それぞれ、コントロールゲート（Control Gate）９２ａと、フローティングゲート（Floating Gate）９２ｂとを有している。
【０００６】
図３４は、不揮発性メモリのデータ書き込みおよび消去の様子を示す図である。
図３４（ａ）は、不揮発性メモリのデータ書き込みの様子を示す図である。
フローティングゲート９２ｂはコントロールゲート９２ａおよび基板（Substrate）９２ｃとはゲート酸化膜（Gate oxide）９２ｄによって絶縁されており、電気的には浮いた状態である。
【０００７】
しかし、コントロールゲート９２ａと基板９２ｃの間に高電圧を印加すると、ＦＮ（Fowler-Nordheim）トンネル現象により基板９２ｃからゲート酸化膜９２ｄを超えてフローティングゲート９２ｂに電荷を注入することができる。
【０００８】
フローティングゲート９２ｂは電気的に浮いた状態のため、電源を切断しても電荷を保持することができる。電荷の注入を一般的に「書き込み」または「プログラム（Program）」と言う。
【０００９】
また、図３４（ｂ）に示すように、書き込みとは逆方向の高電圧を印加すると、同じくＦＮトンネル現象によってフローティングゲート９２ｂに注入された電荷を、ゲート酸化膜９２ｄを超えて基板９２ｃへ解放することができる。電荷の解放を一般的に「消去」または「イレーズ（Erase）」と言う。
【００１０】
なお、一般的にＮＡＮＤ型不揮発性メモリは、電荷を注入した状態が書き込み（論理「０」）、電荷を解放した状態が消去（論理「１」）である。
【特許文献１】特開２００７−１６４９３７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
ＮＡＮＤ型不揮発性メモリは、ＦＮトンネル電流を利用してデータの書き込みと消去とを行うため、書き込みと消去とを行う毎にメモリセルが劣化する。
図３５は、ＦＮトンネル現象によるゲート酸化膜の劣化を示す図である。
【００１２】
ＦＮトンネル現象は高電圧を印加することでゲート酸化膜９２ｄを越えて電荷を移動させることができるが、ゲート酸化膜９２ｄに僅かな電荷がトラップされることがある。
そのため、書き換え回数が増加することにより、ゲート酸化膜９２ｄの劣化とリーク電流が増加（Increase of Leak Current）する。
【００１３】
このゲート酸化膜９２ｄの劣化により、フローティングゲート９２ｂと基板９２ｃとの間のリーク電流が増加して電荷を保持することができなくなる。
この現象により、一般的に不揮発性メモリに書き込み／消去回数（以下、書き換え回数と言う）に限界が存在し、書き換え回数に比例してデータ保持能力が減少する。
【００１４】
図３６は、経過時間とフローティングゲートの電圧変化との関係を示すグラフである。
一例として、ＮＡＮＤ型不揮発性メモリの消去状態のフローティングゲートの電圧レベルは４Ｖで、書き込み状態と消去状態を識別するセンスアンプ（ＳＡ）の設定値は１Ｖとする。
【００１５】
前述の通り、フローティングゲートと基板の間のリーク電流によって、時間が経過するにつれてフローティングゲートの電圧レベルは次第に低下していく。
図３６では、センスアンプは、フローティングゲートの電圧が１Ｖ以上か否かによりデータの論理「１」、「０」の判定を行う。このため、時間が経過するにつれて、ＮＡＮＤセルの論理が反転してしまい、読み出しエラーとなる。
【００１６】
図３７は、書き換え回数とデータ保持時間との関係を示すグラフである。
書き換え回数が１万回の時点では、データを約２０年保持することができるのに対し、書き換え回数が増加するにつれてデータ保持時間が減少している。そして、１０万回書き換えた後で約１０年間、書き換え回数が１００万回の時点では、データを０．５年しか保持できない。
【００１７】
低価格化や大容量化を目的として製造プロセスは微細化されているが、ゲート酸化膜の厚さは大きく変化せず、書き込みや消去に必要な電圧も大きく変化しない。
そのため、ゲート酸化膜に印加される電圧が相対的に高くなり、プロセスの微細化が進むのにつれて劣化が顕著になり、データ保持能力が悪化するという問題がある。
【００１８】
従って、安価・大容量・長期データ保存が望まれる不揮発性メモリにおいては、製造プロセスを微細化することによるデータ保存能力の悪化を防ぐ必要がある。
本発明はこのような点に鑑みてなされたものであり、データの信頼性を向上することができる不揮発性メモリ、メモリ制御装置、メモリ制御システムおよび不揮発性メモリの制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１９】
上記目的を達成するために、フローティングゲートを備える複数のメモリセルを有するメモリセルアレイと、前記フローティングゲートの電圧値と、前記メモリセルの書き込み状態と消去状態とを識別する第１の閾値との大小を判定する第１のセンスアンプと、前記フローティングゲートの電圧値と、前記第１の閾値より大きな第２の閾値との大小を判定する第２のセンスアンプと、前記第２のセンスアンプが、前記第２の閾値が前記フローティングゲートの電圧値より大きいと判定した前記フローティングゲートを備える前記メモリセルのデータを再度書き込む書き込み部と、を有することを特徴とする不揮発性メモリが提供される。
【発明の効果】
【００２０】
開示の不揮発性メモリ、メモリ制御装置およびメモリ制御システムによれば、データの信頼性を向上することができる。
【発明を実施するための最良の形態】
【００２１】
以下、実施の形態を、図面を参照して詳細に説明する。
まず、実施の形態の不揮発性メモリについて説明し、その後、実施の形態をより具体的に説明する。
【００２２】
図１は、実施の形態の不揮発性メモリの概要を示す図である。
図１に示す不揮発性メモリ１は、メモリセルアレイ２と、第１のセンスアンプ３と、第２のセンスアンプ４と、書き込み部５とを有している。
【００２３】
メモリセルアレイ２は、フローティングゲートを備える複数のメモリセルを有している。
第１のセンスアンプ３は、フローティングゲートの電圧値と、メモリセルの書き込み状態と消去状態とを識別する第１の閾値との大小を判定する。
【００２４】
第２のセンスアンプ４は、前記フローティングゲートの電圧値と、前記第１の閾値より大きな第２の閾値との大小を判定する。
なお、第１の閾値および第２の閾値は、図１に示すように外部から入力されるようになっていてもよいし、不揮発性メモリ１内部で生成するようにしてもよい。
【００２５】
書き込み部５は、第２のセンスアンプ４が、第２の閾値がフローティングゲートの電圧値より大きいと判定したフローティングゲートを備えるメモリセルのデータを再度書き込む。
【００２６】
このような不揮発性メモリ１により、第２の閾値を下回ったメモリセルの書き込み状態が維持されるため、データの信頼性を向上させることができる。
以下、実施の形態をより具体的に説明する。
【００２７】
図２は、実施の形態のモジュールのハードウェア構成例を示す図である。
モジュール（Module）１０は、ＣＰＵ（Central Processing Unit）１１によって装置全体が制御されている。ＣＰＵ１１には、チップセット（Chipset）１２が接続されている。
【００２８】
チップセット１２は、ノースブリッジ（North Bridge）１２ａとサウスブリッジ（South Bridge）１２ｂとを有している。
ノースブリッジ１２ａには、比較的高速に動作する周辺機器が接続されており、これらの機器との間でデータの受け渡しをする。図２では、メモリ（Memory）１３、ＰＣＩ  Ｅｘｐｒｅｓｓ１４およびディスプレイ（Display）１５が接続されている。
【００２９】
メモリ１３は、ＣＰＵ１１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ１３には、ＣＰＵ１１による処理に必要な各種データが格納される。
【００３０】
ノースブリッジ１２ａは、ＣＰＵ１１からの命令に従って、画像をディスプレイ１５の画面に表示させる。
サウスブリッジ１２ｂには、比較的低速に動作する周辺機器が接続されている。図２では、オーディオインタフェース（Audio I/F）１６、ＵＳＢ／ＰＣＩ１７、ＢＩＯＳ１８、ＬＡＮインタフェース１９および不揮発性モジュール（Nonvolatile module）２０が接続されている。
【００３１】
不揮発性モジュール２０は、ＮＡＮＤコントローラ（NAND Controller）２１と、ＮＡＮＤコントローラ２１に接続されたＮＡＮＤ型不揮発性メモリ（NAND Flash Memory IC）２２（以下、単に「不揮発性メモリ」という）とを有している。
【００３２】
ＮＡＮＤコントローラ２１は、不揮発性メモリ２２の任意の領域を選択し、その領域のデータが正しいことを確認する。データが正しいかどうかの確認には、選択した領域に結び付けられた管理領域のデータに含まれるＥＣＣ情報を使用する。
【００３３】
不揮発性メモリ２２には、ＯＳやアプリケーションプログラムが格納される。また、不揮発性メモリ２２には、プログラムファイルが格納される。
なお、図２の構成に限定されず、ノースブリッジ１２ａとサウスブリッジ１２ｂとが１チップで構成されていてもよい。また、ＮＡＮＤコントローラ２１と不揮発性メモリ２２とが別個に構成されていてもよい。
【００３４】
また、不揮発性モジュール２０とは別個に図示しないＨＤＤ（Hard Disk Drive）が設けられていてもよい。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。
【００３５】
図３は、ＮＡＮＤコントローラの構成を示すブロック図である。
ＮＡＮＤコントローラ２１は、ホストインタフェース部（Host Interface Unit）２１１と、コントロールレジスタ（Control Register）２１２と、電力制御部（Power Management Unit）２１３と、バッファ（Buffer）２１４と、ＥＣＣ処理部２１５と、ＮＡＮＤインタフェース部（NAND Interface Unit）２１６とを有している。
【００３６】
ホストインタフェース部２１１は、ＣＰＵ１１との通信を行う。
コントロールレジスタ２１２は、ＣＰＵ１１からの命令を保持し、ＮＡＮＤコントローラ２１の状態を示す。
【００３７】
電力制御部２１３は、ＮＡＮＤコントローラ２１全体に電力を供給する。
バッファ２１４は、ＣＰＵ１１、不揮発性メモリ２２間でやり取りされるデータを一時記憶する。
【００３８】
ＥＣＣ処理部２１５は、データからＥＣＣを生成し、ＥＣＣ符号のエンコード／デコードとエラー訂正処理を行う。
ＮＡＮＤインタフェース部２１６は、不揮発性メモリ２２との通信を行う。
【００３９】
図４は、不揮発性メモリの構成を示すブロック図である。
不揮発性メモリ２２は、Ｉ／Ｏバッファ回路（I/O Buffer Circuit）２２１と、コマンドレジスタ（Command Register）２２２と、制御部（Control Logic）２２３と、アドレスレジスタ（Address Register）２２４と、ＮＡＮＤフラッシュアレイ（NAND Flash Array）２２５と、Ｘデコーダ（X Decoder）２２６と、Ｙデコーダ（Y Decoder）２２７と、センスアンプ回路（Sense Amp Circuit）２２８とを有している。
【００４０】
Ｉ／Ｏバッファ回路２２１は、各種のコマンド、アドレス信号およびＮＡＮＤフラッシュアレイ２２５に書き込むデータ等が入力され、ＮＡＮＤフラッシュアレイ２２５から読み出されてラッチされたデータを出力する。
【００４１】
コマンドレジスタ２２２は、入力されたコマンドをラッチし、入力された信号の内容から内部動作を決定する。
なお、Ｌｏアクティブの信号には、信号名の前に「／」を付している。
【００４２】
信号／ＣＬは、コマンドレジスタ２２２または制御部２２３を選択する信号である。
信号／ＡＬは、不揮発性メモリ２２のアドレスレジスタまたはデータレジスタを選択する信号である。
【００４３】
信号／ＣＥは、不揮発性メモリ２２のアクティブモードとスタンバイモードのいずれかを選択する信号である。
信号／ＲＥは、データ出力を行わせる信号である。
【００４４】
信号／ＷＥは、リード／ライト指定信号であり、アクティブ時にライトモードになる。
信号／ＷＰは、書き込みおよび消去動作を強制的に禁止する信号である。
信号／ＳＥＳは、後述するメインセンスアンプとサブセンスアンプのどちらの出力を有効とするかを制御する信号である。
【００４５】
制御部２２３は、入力された各信号に基づいて、不揮発性メモリ２２内の各メモリセルの読み出し、書き込み、消去等を行う。
また、制御部２２３は、高電圧発生回路（High Voltage Generator）２２３ａを有している。この高電圧発生回路２２３ａは、Ｘデコーダ２２６およびＮＡＮＤフラッシュアレイ２２５に駆動用の電圧を供給する。
【００４６】
また、制御部２２３は、制御部２２３の内部状態の動作を外部に知らせる信号Ｒ／Ｂを出力する。
アドレスレジスタ２２４は、入力されたアドレス信号に基づいて読み出し・書き込み・消去する行アドレスおよび列アドレスを生成し、ページモード時にはアドレスを自動インクリメントする。
【００４７】
Ｘデコーダ２２６は、アドレスレジスタ２２４から出力される行アドレスをデコードして、ＮＡＮＤフラッシュアレイ２２５のメモリセルのワード線（図示せず）を選択する。
Ｙデコーダ２２７は、アドレスレジスタ２２４から出力される列アドレスをデコードして、選択されたデータ線（図示せず）経由で、メモリセルにデータを読み書きする。
【００４８】
センスアンプ回路２２８は、列選択を受けて選ばれ、行選択されたワード線との交点にあるメモリセルが選ばれたデータを、後述するメインセンスアンプで受け取り、Ｉ／Ｏバッファ回路２２１に送る。書き込みの場合は上記と同様にして選ばれた行のワード線と、Ｙデコーダ２２６によって選択されたセンスアンプ回路２２８に繋がっているメモリセルが選ばれ、データ入力回路経由でそのデータ線から受け取った情報をＮＡＮＤフラッシュアレイ２２５のメモリセルに書き込む。
【００４９】
図５は、センスアンプ回路の構成を示すブロック図である。
センスアンプ回路２２８は、メイン基準セル（Main Reference Cell）２２８１と、サブ基準セル（Sub Reference Cell）２２８２と、メインセンスアンプ（第１のセンスアンプ）２２８３と、サブセンスアンプ（第２のセンスアンプ）２２８４と、論理回路（Logic Circuit）２２８５とを有している。
【００５０】
メイン基準セル２２８１は、１Ｖの電圧をメインセンスアンプ２２８３に供給する。
サブ基準セル２２８２は、２Ｖの電圧（メイン基準セル２２８１が供給する電圧より高い電圧）をサブセンスアンプ２２８４に供給する。
【００５１】
メインセンスアンプ２２８３は、電流検出型のセンスアンプであり、ＮＡＮＤフラッシュアレイ２２５に格納されているデータの読み出し・書き込み・消去に使用する。例えばデータ読み出し動作時に、ＮＡＮＤフラッシュアレイ２２５の出力電流とメイン基準セル２２８１に流れる電流とを比較し、その比較結果の論理を論理回路２２８５に出力する。具体的には、ＮＡＮＤフラッシュアレイ２２５の出力電流の方が大きい、または、各電流が等しければ論理「１」を出力し、メイン基準セル２２８１に流れる電流の方が大きければ論理「０」を出力する。
【００５２】
サブセンスアンプ２２８４は、電流検出型のセンスアンプであり、マージン測定に使用する。このサブセンスアンプ２２８４は、ＮＡＮＤフラッシュアレイ２２５の出力電流とサブ基準セル２２８２に流れる電流とを比較し、その比較結果の論理を論理回路２２８５に出力する。具体的には、ＮＡＮＤフラッシュアレイ２２５の出力電流の方が大きい、または、各電流が等しければ論理「１」を出力し、サブ基準セル２２８２に流れる電流の方が大きければ論理「０」を出力する。
【００５３】
論理回路２２８５は、信号／ＳＥＳの入力に応じてメインセンスアンプ２２８３の出力信号とサブセンスアンプ２２８４の出力信号との一方を選択し、選択した信号Ｄａｔａ−０を出力する。これにより、通常の読み出し・書き込み・消去と、マージン測定とを切り替えることができる。すなわち、通常の読み出し・書き込み・消去にはメインセンスアンプ２２８３を選択し、定期的にサブセンスアンプ２２８４を選択してフローティングゲートの電圧レベルをチェックする。
【００５４】
そして、フローティングゲートの電圧レベルがサブ基準セル２２８２の電圧２Ｖを下回った場合、再書き込みを行うことでデータを保持する。
なお、このようなサブセンスアンプ２２８４の処理は、後述するリフレッシュ処理によって実行される。
【００５５】
次に、ＮＡＮＤコントローラ２１が備えるステータスレジスタの設定例を説明する。
図６は、ステータスレジスタの設定例を示す図である。
ステータスレジスタ３０は８ビットのレジスタである。図６では、ステータスレジスタ３０の１ビット目（ＲＥＦＲ）にリフレッシュ処理を行っていることを示す値が設定（セット）される。例えば、ＲＥＦＲの値が「１」であれば、リフレッシュ処理が行われている。「０」であれば、リフレッシュ処理は行われていない。
【００５６】
また、５ビット目（ＤＷＦ）は、不揮発性メモリ２２への書き込みエラーが生じたときに「１」にセットされる。
次に、ＮＡＮＤフラッシュアレイ２２５のデータ構成を説明する。
【００５７】
ＮＡＮＤフラッシュアレイ２２５の内部は、複数のブロック単位で管理されている。そして１つのブロックは、複数のページを有している。
図７および図８は、ページの構成を示す図である。
【００５８】
不揮発性メモリ２２の書き込み単位は２ＫＢｙｔｅである。この書き込み単位は、１つのページが５２８バイトで構成される４つのページを有している。１つのページは、５１２バイトのセクタ（Sector）と１６バイトのスペア（Spare）とを有している。
【００５９】
４つのセクタＡ、Ｂ、Ｃ、Ｄが集まり２Ｋバイトのデータフィールド（Data Field）を構成している。また、４つのスペアａ、ｂ、ｃ、ｄが集まり６４バイトのスペアフィールド（Spare Field）を構成している。
【００６０】
スペアａは、セクタＡのスペア領域であり、スペアｂは、セクタＢのスペア領域であり、スペアｃは、セクタＣのスペア領域であり、スペアｄは、セクタＤのスペア領域である。
【００６１】
ここで、データの書き込み時には、セクタＡの１バイト目の論理を「０」に固定するような書き込みを行う。２バイト目〜５１２バイト目には、それぞれユーザデータを書き込む。リフレッシュ処理は、セクタＡの１バイト目の電圧値をチェックすることにより行う。
【００６２】
このように１バイト目の論理を「０」に固定することによって、この位置のセルが安定して（一定速度で）劣化する。これにより、より精度の高いマージン測定ができる。
図８に示すように、各スペア（図８では、スペアＥ）にはＬＳＮ（Logical Sector Number）、ＤＶ（Data Validity）、ＢＢＩ（Bad Block Information）、ＥＣＣ（ECC Code for Data Field）、ＥＣＣＳ（ECC Code for Spare Field）、ＲＳＶ（Reserved Area）、ＲＣ（Refresh Counter）等の設定領域が設けられている。
【００６３】
このうち８バイト目のリフレッシュカウンタには、リフレッシュ処理を行った回数が格納される。
図９は、不揮発性メモリに与えるコマンドファンクションを示す図である。
【００６４】
コマンドファンクションテーブル４０には、ファンクション（Function）、第１サイクル（1st Cycle）および第２サイクル（2nd Cycle）の欄が設けられている。横方向の欄に設けられた情報同士が互いに関連づけられている。
【００６５】
コマンドは、Ｉ／Ｏバッファ回路２２１に第１サイクルと第２サイクルの２回に分けてシリアル入力される。Ｉ／Ｏバッファ回路２２１にシリアル入力されたコマンドは、コマンドレジスタ２２２に伝わる。これにより、外部端子に入力端子を追加することなく、メインセンスアンプ２２８３とサブセンスアンプ２２８４のどちらかを選択することができる。
【００６６】
具体的には、メインセンスアンプ２２８３のリード動作（Read with Main SA）は、第１サイクルでコマンドコード「００ｈ」が発行され、第２サイクルでコマンドコード「３０ｈ」が発行されることにより行われる。
【００６７】
また、サブセンスアンプ２２８４のリード動作（Read with Sub SA）は、第１サイクルでコマンドコード「００ｈ」が発行され、第２サイクルでコマンドコード「３１ｈ」が発行されることにより行われる。
【００６８】
なお、コマンドコード「３０ｈ」、「３１ｈ」は一例であり、異なるコードを割り当てることもできる。
次に、ＮＡＮＤコントローラ２１の指示により、不揮発性メモリ２２が行うリフレッシュ処理を説明する。
【００６９】
図１０は、リフレッシュ処理要否判断処理を示すフローチャートである。
まず、ＮＡＮＤコントローラ２１が、ＣＰＵ１１のクロック等によって経過時間を測定する（ステップＳ１）。
【００７０】
そして、予め用意した経過時間に達したか否か（リフレッシュ処理を行う必要があるか否か）を判断する（ステップＳ２）。この経過時間は、例えば前回リフレッシュ処理を行った時間からの経過時間である。
【００７１】
予め用意した経過時間に達していない場合（ステップＳ２のＮｏ）、ステップＳ１に移行し、ステップＳ１以降の処理を引き続き行う。
一方、予め用意した経過時間に達した場合（ステップＳ２のＹｅｓ）、ステータスレジスタ３０の「ＲＥＦＲ」の値を「１」にセットする（ステップＳ３）。
【００７２】
次に、リフレッシュ処理を行う（ステップＳ４）。
リフレッシュ処理の終了後、ステータスレジスタ３０の「ＲＥＦＲ」の値を「０」にセットする（ステップＳ５）。
【００７３】
以上でリフレッシュ処理要否判断処理の説明を終了する。
なお、上記処理を行わずに、ＣＰＵ１１が所定のタイミングでリフレッシュ処理を行うよう指示してもよい。
【００７４】
図１１および図１２は、リフレッシュ処理を示すフローチャートである。
まず、メインセンスアンプ２２８３を使用してＮＡＮＤフラッシュアレイ２２５のデータ（例えば、図７または図８に示すデータ構成のデータ）を読み込む（ステップＳ１１）。
【００７５】
次に、読み出したデータからＥＣＣを生成する（ステップＳ１２）。
次に、ＥＣＣエラーが発生したか否かを判断する（ステップＳ１３）。
ＥＣＣエラーが発生した場合（ステップＳ１３のＹｅｓ）、リードエラー信号をＣＰＵ１１に送信する（ステップＳ１４）。その後、処理を終了する。
【００７６】
一方、エラーが発生していない場合（ステップＳ１３のＮｏ）、サブセンスアンプ２２８４を使用してＮＡＮＤフラッシュアレイ２２５のデータを読み込む（ステップＳ１５）。
【００７７】
次に、読み出したデータからＥＣＣを生成する（ステップＳ１６）。
次に、ＥＣＣエラーが発生したか否かを判断する（ステップＳ１７）。
ＥＣＣエラーが発生していない場合（ステップＳ１７のＮｏ）、（フローティングゲートの電圧マージンが充分確保されていると判断して）処理を終了する。
【００７８】
ＥＣＣエラーが発生した場合（ステップＳ１７のＹｅｓ）、（マージンが不足していると判断し）再度、メインセンスアンプ２２８３を使用してＮＡＮＤフラッシュアレイ２２５のデータを読み込む（ステップＳ１８）。
【００７９】
そして、読み出したデータからＥＣＣを生成する（ステップＳ１９）。
次に、ＥＣＣエラーが発生したか否かを判断する（ステップＳ２０）。
ＥＣＣエラーが発生した場合（ステップＳ２０のＹｅｓ）、ステップＳ１４に移行し、リードエラー信号をＣＰＵ１１に送信する（ステップＳ１４）。その後、処理を終了する。
【００８０】
ＥＣＣエラーが発生していない場合（ステップＳ２０のＮｏ）、メインセンスアンプ２２８３にて読み出したデータをＮＡＮＤフラッシュアレイ２２５の当該アドレスのブロックに再度書き込む（ステップＳ２１）。
【００８１】
次に、ＮＡＮＤフラッシュアレイ２２５のステータスレジスタ３０の「ＤＷＦ」の値を読み出す（ステップＳ２２）。
そして、書き込みエラーが発生しているか否かを判断する（ステップＳ２３）。
【００８２】
書き込みエラーが発生していない場合（ステップＳ２３のＮｏ）、処理を終了する。
書き込みエラーが発生している場合（ステップＳ２３のＹｅｓ）、書き込みエラー信号をＣＰＵ１１に送信する（ステップＳ２４）。その後、処理を終了する。
【００８３】
以上でリフレッシュ処理の説明を終了する。
なお、本実施の形態では、ステップＳ２の処理を行った後にステップＳ３の処理を行ったが、ステップＳ３の処理を先に行い、その後ステップＳ２の処理を行うようにしてもよい。
【００８４】
図１３は、リフレッシュ処理の効果を示す図である。
図１３に示すグラフの横軸は、経過時間または読み書きのサイクル数を示し、縦軸は、フローティングゲートの電圧値を示している。
【００８５】
また、図１３中「リフレッシュ処理」は、再書き込みが必要か否かの判定が行われたタイミングを示している。
フローティングゲートの電圧レベルが２Ｖ以上の場合は、十分なマージンがあるので再書き込みは行わない。
【００８６】
一方、フローティングゲートの電圧レベルが２Ｖ以下の場合はマージンが不足しているため、再書き込みを行ってデータを保持する。
このようにフローティングゲートの電圧値が、メイン基準セル２２８１が供給する１Ｖの電圧とサブ基準セル２２８２が供給する２Ｖの電圧との間に位置しているときにリフレッシュ処理を行って再書き込みを行うことにより、フローティングゲートの電圧マージンが充分確保されているときにデータを再度書き込むことができる。
【００８７】
なお、サブ基準セル２２８２の電圧値は、特に限定されないが、書き込む電圧値よりもメイン基準セル２２８１の電圧値に近くなるように設定するのが好ましい。これにより、再度の書き込み回数を減らすことができ、不揮発性メモリ２２の寿命を長くすることができる。
【００８８】
以上述べたように、モジュール１０によれば、リフレッシュ処理を行うことにより、絶縁膜の劣化によりＮＡＮＤフラッシュアレイ２２５のデータ保持性能が劣化した場合でも、データを再書き込みすることでデータを保持し続けることができる。
【００８９】
また、セクタＡの１バイト目に、必ず書き込み状態を維持するバイトを用意し、このバイトをマージン測定に用いるようにした。これにより、精度の高いマージン測定ができるため、データの信頼性を高めることができる。
【００９０】
なお、予め複数のセンスアンプが設けられている不揮発性メモリであれば、本実施の形態の構成を容易に適用することができることは言うまでもない。
ところで、リフレッシュ処理が現在行われていることをディスプレイ１５に表示させるようにしてもよい。
【００９１】
図１４は、リフレッシュ処理が現在行われていることをディスプレイに表示させるときの処理を示すフローチャートである。
ＣＰＵ１１が、ＮＡＮＤコントローラ２１のステータスレジスタ３０の「ＲＥＦＲ」を参照する（ステップＳ３１）。
【００９２】
そして、「ＲＥＦＲ」の値が「１」であるか否かを判断する（ステップＳ３２）。
「ＲＥＦＲ」の値が「０」である場合（ステップＳ３２のＮｏ）、処理を終了する。
一方、「ＲＥＦＲ」の値が「１」である場合（ステップＳ３２のＹｅｓ）、リフレッシュ処理が行われているため、ＣＰＵ１１に通知する。ＣＰＵ１１は、リフレッシュ処理を行っていることを示すメッセージをディスプレイ１５に表示する（ステップＳ３３）。その後、処理を終了する。
【００９３】
これにより、ユーザは、リフレッシュ処理が現在行われているか否かを容易に把握することができる。
また、不揮発性メモリ２２の交換を促す画面をディスプレイ１５に表示させるようにすることもできる。
【００９４】
図１５は、不揮発性メモリの交換を促す画面をディスプレイに表示させるときの処理を示すフローチャートである。
ＣＰＵ１１が、不揮発性メモリ２２のリフレッシュカウンタの値「Ｃ」を参照する（ステップＳ４１）。
【００９５】
そして、リフレッシュカウンタの値「Ｃ」と、予め用意した値「Ｍ」（例えばＭ＝１００）とを比較し、値「Ｃ」が値「Ｍ」より大きいか否かを判断する（ステップＳ４２）。
値「Ｃ」が値「Ｍ」未満である場合（ステップＳ４２のＮｏ）、処理を終了する。
【００９６】
一方、値「Ｃ」が値「Ｍ」より大きい場合（ステップＳ４２のＹｅｓ）、不揮発性メモリ２２の交換が必要であるとしてＣＰＵ１１に通知する。ＣＰＵ１１は、不揮発性メモリ２２の交換を促すメッセージをディスプレイ１５に表示する（ステップＳ４３）。その後、処理を終了する。
【００９７】
これにより、ユーザは、不揮発性メモリ２２の交換時期を容易に把握することができる。
＜第２の実施の形態＞
次に、第２の実施の形態のシステムについて説明する。
【００９８】
以下、第２の実施の形態のシステムについて、前述した第１の実施の形態のシステムとの相違点を中心に説明し、同様の事項については、その説明を省略する。
第２の実施の形態のシステムは、センスアンプ回路の構成が第１の実施の形態のセンスアンプ回路２２８と異なり、それ以外は第１の実施の形態と同様である。
【００９９】
図１６は、第２の実施の形態のセンスアンプ回路の構成を示すブロック図である。
センスアンプ回路２２８ａは、論理回路２２８５が設けられていない。その代わり、メインセンスアンプ２２８３およびサブセンスアンプ２２８６に、直接、信号Ｄａｔａ−０を出力するセンスアンプを指定する信号／ＳＥＳが入力される。
【０１００】
また、サブセンスアンプ２２８６には、信号／ＳＥＳの論理を反転して入力する反転入力端子が設けられている。これにより、いずれか一方には、論理が「１」の信号が入力され、他方には論理が「０」の信号が入力される。これにより、選択された一方のセンスアンプの信号が信号Ｄａｔａ−０として出力される。
【０１０１】
この第２の実施の形態のシステムによれば、第１の実施の形態のシステムと同様の効果が得られる。
＜第３の実施の形態＞
次に、第３の実施の形態のシステムについて説明する。
【０１０２】
以下、第３の実施の形態のシステムについて、前述した第１の実施の形態のシステムとの相違点を中心に説明し、同様の事項については、その説明を省略する。
第３の実施の形態のシステムは、不揮発性メモリの構成が第１の実施の形態と異なり、それ以外は第１の実施の形態と同様である。
【０１０３】
図１７は、第３の実施の形態の不揮発性メモリを示すブロック図である。
第３の実施の形態の不揮発性メモリ２２ａの制御部２２３は、外部から指定されたアドレス（以下、「再書き込みアドレス」と言う）のブロックのデータを読み出してＩ／Ｏバッファ回路２２１に記憶する。そして、当該アドレスのブロックのデータを消去した後に、Ｉ／Ｏバッファ回路２２１に記憶したデータを当該アドレスのブロックに再書き込みするための再書き込み回路（Rewrite Circuit）２２３ｂを有している。
【０１０４】
図１８は、第３の実施の形態の不揮発性メモリのコマンドファンクションを示す図である。
コマンドファンクションテーブル４０ａには、再書き込みアドレスのブロックへのデータの再書き込み（Rewrite to Current Block）を行うためのコマンド（リライトコマンド）が追加されている。
【０１０５】
再書き込みアドレスのブロックへのデータの再書き込みは、第１サイクルでコマンドコード「５０ｈ」が発行され、第２サイクルでコマンドコード「１０ｈ」が発行されることにより行われる。
【０１０６】
次に、第３の実施の形態のリフレッシュ処理を説明する。
図１９は、第３の実施の形態のリフレッシュ処理を示すフローチャートである。
以下、第１の実施の形態のリフレッシュ処理と異なる部分を中心に説明する。
【０１０７】
ＥＣＣエラーが発生した場合（ステップＳ１７のＹｅｓ）、（マージンが不足していると判断し）不揮発性メモリ２２にリライトコマンドを発行する。これにより、不揮発性メモリ２２の再書き込み回路２２３ｂが再書き込み処理を行う（ステップＳ１８ａ）。
【０１０８】
その後、ステップＳ２２に移行し、ステップＳ２２以降の処理を行う。
次に、ステップＳ１８ａの再書き込み処理について説明する。
図２０は、再書き込み処理を示すフローチャートである。
【０１０９】
まず、コマンドレジスタ２２２が、ＮＡＮＤコントローラ２１から第１サイクルのリフレッシュコマンド（８１ｈ）を受けつける（ステップＳ５１）。
次に、アドレスレジスタ２２４が、ＮＡＮＤコントローラ２１から再書き込みアドレスを受けつける（ステップＳ５２）。
【０１１０】
次に、コマンドレジスタ２２２が、ＮＡＮＤコントローラ２１から第２サイクルのリフレッシュコマンド（１０ｈ）を受けつける（ステップＳ５３）。
次に、ＮＡＮＤフラッシュアレイ２２５からＩ／Ｏバッファ回路２２１にデータを読み出す（ステップＳ５４）。
【０１１１】
次に、Ｉ／Ｏバッファ回路２２１にデータを保持した状態で当該アドレスのブロックのデータを消去する（ステップＳ５５）。
次に、消去エラーが発生したか否かを判断する（ステップＳ５６）。
【０１１２】
消去エラーが発生した場合（ステップＳ５６のＹｅｓ）、ステータスレジスタ３０の「ＤＷＦ」にエラーが発生したことを示すフラグをセットする（ステップＳ５７）。その後、処理を終了する。
【０１１３】
一方、消去エラーが発生していない場合（ステップＳ５６のＮｏ）、Ｉ／Ｏバッファ回路２２１が保持しているデータを再書き込みアドレスのブロックに書き込む（ステップＳ５８）。
【０１１４】
次に、書き込みエラーが発生したか否かを判断する（ステップＳ５９）。
書き込みエラーが発生した場合（ステップＳ５９のＹｅｓ）、ステップＳ５７に移行し、ステップＳ５７以降の処理を行う。
【０１１５】
一方、書き込みエラーが発生していない場合（ステップＳ５９のＮｏ）、処理を終了する。
なお、本実施の形態では、ステップＳ５２に示す処理の後にステップＳ５３に示す処理を行ったが、ステップＳ５３に示す処理の後にステップＳ５２に示す処理を行ってもよい。
【０１１６】
この第３の実施の形態のシステムによれば、第１の実施の形態のシステムと同様の効果が得られる。
＜第４の実施の形態＞
次に、第４の実施の形態のシステムについて説明する。
【０１１７】
以下、第４の実施の形態のシステムについて、前述した第３の実施の形態のシステムとの相違点を中心に説明し、同様の事項については、その説明を省略する。
第４の実施の形態のシステムは、不揮発性メモリの構成が第３の実施の形態と異なり、それ以外は第３の実施の形態と同様である。
【０１１８】
図２１は、第４の実施の形態の不揮発性メモリを示すブロック図である。
不揮発性メモリ２２ｂは、再書き込みアドレスのブロックのデータを読み出してＩ／Ｏバッファ回路２２１に記憶する。そして、Ｉ／Ｏバッファ回路２２１とは別個に、外部から指定された当該アドレスとは異なるアドレス（以下、「置き換えアドレス」と言う）のブロックにデータを再書き込みするための置き換えレジスタ（Replace Resister）２２９を有している。
【０１１９】
図２２は、第４の実施の形態の不揮発性メモリのコマンドファンクションを示す図である。
コマンドファンクションテーブル４０ｂには、置き換えアドレスのブロックにデータを再書き込みする（Rewrite to Replacement Block）コマンド（リプレイスコマンド）が追加されている。
【０１２０】
置き換えアドレスのブロックへのデータの再書き込みは、第１サイクルでコマンドコード「８３ｈ」が発行され、第２サイクルでコマンドコード「１０ｈ」が発行されることにより行われる。
【０１２１】
次に、第４の実施の形態のリフレッシュ処理を説明する。
第４の実施の形態のリフレッシュ処理は、図１９に示すステップＳ１８ａにおける再書き込み処理が、第３の実施の形態とは異なっている。
【０１２２】
以下、第４の実施の形態の再書き込み処理を説明する。
図２３は、第４の実施の形態の再書き込み処理を示すフローチャートである。
まず、コマンドレジスタ２２２が、ＮＡＮＤコントローラ２１から第１サイクルのリプレイスコマンド（８３ｈ）を受けつける（ステップＳ６１）。
【０１２３】
次に、アドレスレジスタ２２４が、ＮＡＮＤコントローラ２１から再書き込みするアドレスを受けつける（ステップＳ６２）。
次に、置き換えレジスタ２２９が、ＮＡＮＤコントローラ２１から置き換えるアドレスを受けつける（ステップＳ６３）。
【０１２４】
次に、コマンドレジスタ２２２が、ＮＡＮＤコントローラ２１から第２サイクルのリプレイスコマンド（１０ｈ）を受けつける（ステップＳ６４）。
次に、ＮＡＮＤフラッシュアレイ２２５の指定された再書き込みアドレスのブロックからＩ／Ｏバッファ回路２２１にデータを読み出し、Ｉ／Ｏバッファ回路２２１にデータを保持させる（ステップＳ６５）。
【０１２５】
次に、制御部２２３が、アドレスを置き換えアドレスに切り替え、Ｉ／Ｏバッファ回路２２１が保持しているデータを置き換えアドレスのブロックに書き込む（ステップＳ６６）。
【０１２６】
次に、書き込みエラーが発生したか否かを判断する（ステップＳ６７）。
書き込みエラーが発生した場合（ステップＳ６７のＹｅｓ）、ステータスレジスタ３０の「ＤＷＦ」にエラーが発生したことを示すフラグをセットする（ステップＳ６８）。その後、処理を終了する。
【０１２７】
一方、書き込みエラーが発生していない場合（ステップＳ６７のＮｏ）、再書き込みアドレスのブロックのデータを消去する（ステップＳ６９）。
次に、消去エラーが発生したか否かを判断する（ステップＳ７０）。
【０１２８】
消去エラーが発生した場合（ステップＳ７０のＹｅｓ）、ステップＳ６８に移行し、ステップＳ６８以降の処理を行う。
一方、消去エラーが発生していない場合（ステップＳ７０のＮｏ）、ＮＡＮＤコントローラ２１の指示に基づいて、論理アドレスと物理アドレスとの関係を記載したマッピングテーブルを更新する（ステップＳ７１）。その後、処理を終了する。
【０１２９】
以下、ＮＡＮＤコントローラ２１が実行するマッピングテーブルの更新処理について説明する。
図２４は、マッピングテーブルの更新処理を示すフローチャートである。
【０１３０】
まず、不揮発性メモリ２２にリプレイスコマンドを送信してステータスレジスタ３０のビット内容を読み出す（ステップＳ８１）。
次に、書き込みエラーが発生しているか否かを判断する（ステップＳ８２）。
【０１３１】
書き込みエラーが発生している場合（ステップＳ８２のＹｅｓ）、書き込みエラーをＣＰＵ１１に送信する（ステップＳ８３）。その後、処理を終了する。
書き込みエラーが発生していない場合（ステップＳ８２のＮｏ）、マッピングテーブルを更新する（ステップＳ８４）。具体的には、論理アドレスに対応する物理アドレスを、データを読み出したアドレスから置き換えアドレスに書き換える。その後、処理を終了する。
【０１３２】
この第４の実施の形態のシステムによれば、第３の実施の形態のシステムと同様の効果が得られる。
さらに、不揮発性メモリ２２は同じアドレスのブロックに書き込み・消去を繰り返すと劣化が進むため、全アドレスの書き換え回数が平均化されることが望ましい。
【０１３３】
第４の実施の形態のシステムによれば、読み出したアドレスとは異なるアドレスのブロックにデータを再度書き込むことで書き換え回数の平均化を行うことができる。これにより、不揮発性メモリ２２の寿命が長くなり、さらに信頼性を高めることができる。
【０１３４】
＜第５の実施の形態＞
次に、第５の実施の形態のシステムについて説明する。
以下、第５の実施の形態のシステムについて、前述した第１の実施の形態のシステムとの相違点を中心に説明し、同様の事項については、その説明を省略する。
【０１３５】
第５の実施の形態のシステムは、ＮＡＮＤコントローラの構成が第１の実施の形態と異なり、それ以外は第１の実施の形態と同様である。
図２５は、第５の実施の形態のＮＡＮＤコントローラの構成を示すブロック図である。
【０１３６】
ＮＡＮＤコントローラ２１ａは、所定の回数を超えたか否かを判断するための閾値をＣＰＵ１１から設定可能なリフレッシュ間隔レジスタ（Refresh Interval Register）２１７を有している。
【０１３７】
また、ＮＡＮＤコントローラ２１ａは、不揮発性メモリの所定の位置（後述）に不揮発性メモリに読み出し・消去・書き込みのいずれかを行った回数をアクセス回数情報として書き込む。
【０１３８】
そして、ＮＡＮＤコントローラ２１ａは、不揮発性メモリ２２から読み出したアクセス回数情報が、リフレッシュ間隔レジスタ２１７に設定した数値を超えた場合にリフレッシュ処理を行う。
【０１３９】
図２６は、アクセス回数情報の設定例を示す図である。
スペアａ、ｂ、ｃ、ｄの１５バイト目および１６バイト目に、アクセス回数情報を書き込むアクセスカウンタ（AC:Access Counter）が設定されている。なお、図２１では一例としてスペアａの設定例を図示している。
【０１４０】
次に、第５の実施の形態のリフレッシュ処理要否判断処理を説明する。
図２７は、第５の実施の形態のリフレッシュ処理要否判断処理を示すフローチャートである。
【０１４１】
まず、ＮＡＮＤフラッシュアレイ２２５のアクセスカウンタを参照し、アクセス回数情報を読み出す（ステップＳ９１）。
次に、アクセス回数情報の値「Ａ」と予め用意した値「Ｎ」（例えばＮ＝１０００）を比較して、アクセス回数情報の値「Ａ」が値「Ｎ」より大きいか否かを判断する（ステップＳ９２）。
【０１４２】
値「Ａ」が値「Ｎ」未満の場合（ステップＳ９２のＮｏ）、処理を終了する。
一方、値「Ａ」が値「Ｎ」より大きい場合（ステップＳ９２のＹｅｓ）、ステータスレジスタ３０の「ＲＥＦＲ」の値を「１」にセットする（ステップＳ９３）。
【０１４３】
次に、リフレッシュ処理を行う（ステップＳ９４）。なお、リフレッシュ処理の内容は、図１１に示すリフレッシュ処理と同様である。
リフレッシュ処理の終了後、ステータスレジスタ３０の「ＲＥＦＲ」の値を「０」にセットする（ステップＳ９５）。
【０１４４】
その後、処理を終了する。
以上でリフレッシュ処理要否判断処理の説明を終了する。
この第５の実施の形態のシステムによれば、第１の実施の形態のシステムと同様の効果が得られる。
【０１４５】
そして、第５の実施の形態のシステムによれば、実際のアクセス回数に基づいてリフレッシュ処理を行うため、さらに、データの信頼性を高めることができる。
＜第６の実施の形態＞
次に、第６の実施の形態のシステムについて説明する。
【０１４６】
以下、第６の実施の形態のシステムについて、前述した第５の実施の形態のシステムとの相違点を中心に説明し、同様の事項については、その説明を省略する。
第６の実施の形態のシステムは、ＣＰＵ１１の機能が第５の実施の形態と異なり、それ以外は第５の実施の形態と同様である。
【０１４７】
第６の実施の形態のＣＰＵ１１は、不揮発性メモリ２２からリフレッシュカウンタのカウンタ値を読み出し、その値が所定の値を超えた場合、ＮＡＮＤコントローラ２１ａのリフレッシュ間隔レジスタ２１７の値を変更する。
【０１４８】
図２８は、リフレッシュ間隔変更処理を示すフローチャートである。
まず、ＮＡＮＤフラッシュアレイ２２５のリフレッシュカウンタを参照し、カウンタ値を読み出す（ステップＳ１０１）。
【０１４９】
次に、リフレッシュカウンタのカウンタ値「Ｃｏ」と予め用意した値「Ｐ」（例えばＰ＝１０）とを比較して、カウンタ値「Ｃｏ」が値「Ｐ」より大きいか否かを判断する（ステップＳ１０２）。
【０１５０】
カウンタ値「Ｃｏ」が値「Ｐ」未満の場合（ステップＳ１０２のＮｏ）、処理を終了する。
一方、カウンタ値「Ｃｏ」が値「Ｐ」より大きい場合（ステップＳ１０２のＹｅｓ）、ＮＡＮＤコントローラ２１のリフレッシュ間隔レジスタ２１７の値「Ｉ」を読み出す（ステップＳ１０３）。
【０１５１】
次に、リフレッシュ間隔を変更する（ステップＳ１０４）。具体的には、例えば、「Ｘ＝０．５」に設定することで、読み出した値「Ｉ」を半分にする。
次に、ステップＳ１０４にて変更したレジスタの値をリフレッシュ間隔レジスタ２１７に書き込む（ステップＳ１０５）。その後、処理を終了する。
【０１５２】
図２９は、リフレッシュ間隔変更処理の効果を示す図である。
リフレッシュ間隔変更処理が行われたことで、２回目から３回目および３回目から４回目のリフレッシュ処理が行われるタイミングが、１回目から２回目の半分になっている。
【０１５３】
この第６の実施の形態のシステムによれば、第５の実施の形態のシステムと同様の効果が得られる。
そして、第６の実施の形態のシステムによれば、さらに、書き込み回数が増加して、絶縁膜の劣化によりデータを保持できる期間が減少した場合でも、リフレッシュ処理を行う間隔を短くすることにより、データの信頼性をより高めることができる。
【０１５４】
＜第７の実施の形態＞
次に、第７の実施の形態のシステムについて説明する。
以下、第７の実施の形態のシステムについて、前述した第１の実施の形態のシステムとの相違点を中心に説明し、同様の事項については、その説明を省略する。
【０１５５】
第７の実施の形態のシステムは、ＮＡＮＤコントローラの構成が第１の実施の形態と異なり、それ以外は第１の実施の形態と同様である。
図３０は、第７の実施の形態のＮＡＮＤコントローラの構成を示すブロック図である。
【０１５６】
ＮＡＮＤコントローラ２１ｂは、さらに、モジュール１０が備えるリアルタイムクロックＩＣ（図示せず）から現在日時情報を取得するＩ２Ｃインタフェース部（I2C Interface Unit）２１８を有している。
【０１５７】
ＮＡＮＤインタフェース部２１６は、Ｉ２Ｃインタフェース部２１８が取得した現在日時情報を不揮発性メモリ２２の所定領域に設定する。
図３１は、不揮発性メモリの現在日時情報の設定を説明する図である。
【０１５８】
スペアａ、ｂ、ｃ、ｄの１５ビット目および１６ビット目に、最後にリフレッシュ処理を行った日時を記憶するＬＲＤ（Latest Refresh Date）が設定されている。なお、図３１では、一例としてスペアａの設定例を図示している。
【０１５９】
次に、第７の実施の形態のリフレッシュ要否判断処理を説明する。
図３２は、第７の実施の形態のリフレッシュ処理要否判断処理を示すフローチャートである。
【０１６０】
まず、Ｉ２Ｃインタフェース部２１８が、リアルタイムクロックＩＣから現在日時情報「Ｃｕ」を読み出す（ステップＳ１１１）。
次に、ＬＲＤに格納されている日時情報「Ｌ」を読み出す（ステップＳ１１２）。
【０１６１】
そして、現在日時情報「Ｃｕ」から日時情報「Ｌ」を減算した値「Ｃｕ−Ｌ」と、予め定めた値「Ｑ」（例えばＱ＝７日）を比較し、値「Ｃｕ−Ｌ」が値「Ｑ」より大きいか否かを判断する（ステップＳ１１３）。
【０１６２】
値「Ｃｕ−Ｌ」が値「Ｑ」未満である場合（ステップＳ１１３のＮｏ）、処理を終了する。
一方、値「Ｃｕ−Ｌ」が値「Ｑより大きい場合（ステップＳ１１３のＹｅｓ）、ステータスレジスタ３０の「ＲＥＦＲ」の値を「１」にセットする（ステップＳ１１４）。
【０１６３】
次に、リフレッシュ処理を行う（ステップＳ１１５）。なお、リフレッシュ処理の内容は、図１１に示すリフレッシュ処理と同様である。
リフレッシュ処理の終了後、ステータスレジスタ３０の「ＲＥＦＲ」の値を「０」にセットする（ステップＳ１１６）。
【０１６４】
その後、処理を終了する。
以上でリフレッシュ処理要否判断処理の説明を終了する。
この第７の実施の形態のシステムによれば、第１の実施の形態のシステムと同様の効果が得られる。
【０１６５】
そして、第７の実施の形態のシステムによれば、データアクセスが無くても時間の経過とともに電位が下降し、論理が反転してしまうことを確実に防止することができる。これにより、さらに信頼性を高めることができる。
【０１６６】
以上、本発明の不揮発性メモリ、メモリ制御装置、メモリ制御システムおよび不揮発性メモリの制御方法を、図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物や工程が付加されていてもよい。
【０１６７】
また、本発明は、前述した各実施の形態のうちの、任意の２以上の構成（特徴）を組み合わせたものであってもよい。
また、前述した各実施の形態では、コンピュータシステムを用いて説明したが、本発明を携帯電話やＰＤＡ等の情報処理装置にも適用することができる。
【０１６８】
以上の第１〜第７の実施の形態に関し、さらに以下の付記を開示する。
（付記１）  フローティングゲートを備える複数のメモリセルを有するメモリセルアレイと、
前記フローティングゲートの電圧値と、前記メモリセルの書き込み状態と消去状態とを識別する第１の閾値との大小を判定する第１のセンスアンプと、
前記フローティングゲートの電圧値と、前記第１の閾値より大きな第２の閾値との大小を判定する第２のセンスアンプと、
前記第２のセンスアンプが、前記第２の閾値が前記フローティングゲートの電圧値より大きいと判定した前記フローティングゲートを備える前記メモリセルのデータを再度書き込む書き込み部と、
を有することを特徴とする不揮発性メモリ。
【０１６９】
（付記２）  前記第２のセンスアンプの判定は、前記第１のセンスアンプが前記第１の閾値が前記フローティングゲートの電圧値より大きいと判定した後に行われることを特徴とする付記１記載の不揮発性メモリ。
【０１７０】
（付記３）  入力される選択信号に基づいて、前記第１のセンスアンプの出力と前記第２のセンスアンプの出力のいずれか一方を選択することを特徴とする付記１記載の不揮発性メモリ。
【０１７１】
（付記４）  前記選択信号に基づいて、前記第１のセンスアンプの出力と前記第２のセンスアンプの出力のいずれか一方を選択する選択回路を有することを特徴とする付記３記載の不揮発性メモリ。
【０１７２】
（付記５）  コマンドを受けつけ、前記コマンドに応じて前記選択信号を出力するコマンドレジスタを有することを特徴とする付記２または３記載の不揮発性メモリ。
（付記６）  前記メモリセルアレイの指定されたアドレスのブロックのデータを読み出すデータ読み出し部と、
読み出した前記データを一時記憶する一時記憶部とをさらに有し、
前記データ読み出し部は、前記第２の閾値が前記フローティングゲートの電圧値より大きいと判定したデータをブロック単位で読み出して前記一時記憶部に記憶し、
前記書き込み部は、前記アドレスのブロックのデータを消去した後に、前記一時記憶部に記憶したデータを前記アドレスのブロックに再度書き込むことを特徴とする付記１記載の不揮発性メモリ。
【０１７３】
（付記７）  前記メモリセルアレイの指定されたアドレスのブロックのデータを読み出すデータ読み出し部と、
読み出した前記データを一時記憶する一時記憶部とをさらに有し、
前記データ読み出し部は、前記第２の閾値が前記フローティングゲートの電圧値より大きいと判定したデータをブロック単位で読み出して前記一時記憶部に記憶し、
前記書き込み部は、前記アドレスのブロックのデータを消去した後に、前記一時記憶部に記憶したデータを前記アドレスのブロックとは異なるアドレスのブロックに再度書き込むことを特徴とする付記１記載の不揮発性メモリ。
【０１７４】
（付記８）  前記メモリセルアレイのアドレスのブロックにデータを書き込む際、前記ブロックの所定のメモリセルがデータを常に書き込む書き込み位置に設定されており、
前記第２のセンスアンプは、前記書き込み位置のメモリセルのフローティングゲートの電圧値と、前記第２の閾値との大小を判定することを特徴とする付記１記載の不揮発性メモリ。
【０１７５】
（付記９）  フローティングゲートを備える複数のメモリセルを有するメモリセルアレイと、前記フローティングゲートの電圧値と、前記メモリセルの書き込み状態と消去状態とを識別する第１の閾値との大小を判定する第１のセンスアンプと、前記フローティングゲートの電圧値と、前記第１の閾値より大きな第２の閾値との大小を判定する第２のセンスアンプと、指示されたデータを前記メモリセルに書き込む書き込み部と、を有する不揮発性メモリに対し、前記第２のセンスアンプが前記第２の閾値が前記フローティングゲートの電圧値より大きいと判定した前記フローティングゲートを備える前記メモリセルのデータの書き込みを前記書き込み部に指示する書き込み指示部を有することを特徴とするメモリ制御装置。
【０１７６】
（付記１０）  前記不揮発性メモリは、前記メモリセルアレイの指定されたアドレスのブロックのデータを読み出すデータ読み出し部と、前記メモリセルアレイの指定されたアドレスのブロックのデータを読み出して一時記憶する一時記憶部とをさらに有し、
前記書き込み指示部は、前記第２の閾値が前記フローティングゲートの電圧値より大きいと判定したデータを含むアドレスのブロックのデータを前記データ読み出し部に読み出させて前記一時記憶部に記憶させ、前記アドレスのブロックのデータを消去した後に、前記書き込み部に、前記一時記憶部に記憶させたデータを前記アドレスのブロックに再度、書き込ませることを特徴とする付記９記載のメモリ制御装置。
【０１７７】
（付記１１）  前記不揮発性メモリは、前記メモリセルアレイの指定されたアドレスのブロックのデータを読み出すデータ読み出し部と、前記メモリセルアレイの指定されたアドレスのブロックのデータを読み出して一時記憶する一時記憶部とをさらに有し、
前記書き込み指示部は、前記第２の閾値が前記フローティングゲートの電圧値より大きいと判定したデータを含むアドレスのブロックのデータを前記データ読み出し部に読み出させて前記一時記憶部に記憶させ、前記アドレスのブロックのデータを消去した後に、前記書き込み部に、前記一時記憶部に記憶させたデータを前記アドレスのブロックとは異なるアドレスのブロックに再度、書き込ませることを特徴とする付記９記載のメモリ制御装置。
【０１７８】
（付記１２）  前記ブロックの論理アドレスと、前記論理アドレスに対する物理アドレスとを管理するテーブルをさらに有し、
前記書き込み指示部は、前記書き込み部に、前記一時記憶部に記憶させたデータを前記アドレスのブロックに再度、書き込ませるとともに、前記テーブルの前記データの論理アドレスに対応する再度、書き込んだ物理アドレスを更新することを特徴とする付記１１記載のメモリ制御装置。
【０１７９】
（付記１３）  前記書き込み指示部は、前記メモリセルアレイの指定されたアドレスのブロックにデータを書き込む際、前記ブロックの所定の位置にデータを書き込むよう前記書き込み部に指示することを特徴とする付記９記載のメモリ制御装置。
【０１８０】
（付記１４）  前記不揮発性メモリは、所定の日時が経過したか否かを判断する日時経過判断用閾値が設定されたレジスタをさらに有し、
前記書き込み指示部は、前記第２のセンスアンプが判定処理を行う毎に、前記判定処理を行った日時を前記不揮発性メモリの所定の位置に書き込むよう前記書き込み部に指示し、
現在の日時と前記所定の位置に書き込まれた日時との差分が前記日時経過判断用閾値を超えた場合に前記第２のセンスアンプの判定処理を行わせることを特徴とする付記９記載のメモリ制御装置。
【０１８１】
（付記１５）  前記メモリセルのアクセス回数を判断するアクセス回数判断用閾値が設定されたレジスタをさらに有し、
前記書き込み指示部は、前記不揮発性メモリに対するアクセス回数を前記不揮発性メモリの所定の位置に書き込むよう前記書き込み部に指示し、
前記アクセス回数が前記アクセス回数判断用閾値を超えた場合に前記第２のセンスアンプの判定処理を行わせることを特徴とする付記９記載のメモリ制御装置。
【０１８２】
（付記１６）  前記第２のセンスアンプが処理を行っていることを示すフラグを設定するレジスタをさらに有することを特徴とする付記９記載のメモリ制御装置。
（付記１７）  前記書き込み指示部は、前記書き込み指示部が前記書き込み部に書き込みを指示した回数を前記不揮発性メモリの所定の位置に書き込むよう前記書き込み部に指示することを特徴とする付記９記載のメモリ制御装置。
【０１８３】
（付記１８）  フローティングゲートを備える複数のメモリセルを有するメモリセルアレイと、前記フローティングゲートの電圧値と、前記メモリセルの書き込み状態と消去状態とを識別する第１の閾値との大小を判定する第１のセンスアンプと、前記フローティングゲートの電圧値と、前記第１の閾値より大きな第２の閾値との大小を判定する第２のセンスアンプと、指示されたデータを前記メモリセルに書き込む書き込み部と、を有する不揮発性メモリと、
前記不揮発性メモリに対し、前記第２のセンスアンプが前記第２の閾値が前記フローティングゲートの電圧値より大きいと判定した前記フローティングゲートを備える前記メモリセルのデータの書き込みを前記書き込み部に指示する書き込み指示部を有するメモリ制御装置と、
前記メモリ制御装置の動作状態を表示装置に表示させる表示制御部と、
を有することを特徴とするメモリ制御システム。
【０１８４】
（付記１９）  前記メモリ制御装置は、前記書き込み指示部が、書き込みの指示を行っていることを示すフラグを設定するレジスタをさらに有し、
前記表示制御部は、前記レジスタに設定されたフラグを読み出し、前記フラグが設定されている場合、前記書き込み指示部が、前記フローティングゲートの論理を維持する書き込みの指示を行っていることを前記表示装置に表示させることを特徴とする付記１８記載のメモリ制御システム。
【０１８５】
（付記２０）  前記不揮発性メモリは、前記書き込み指示部が前記書き込み部に書き込みを指示する回数を格納する部位を有し、
前記回数が、所定の回数を超えた場合、前記第２のセンスアンプの前回の判定処理を行った時間から今回の判定処理を行うまでの時間の間隔よりも今回の判定処理を行う時間から次回以降の判定処理を行う時間の間隔を短くすることを特徴とする付記１８記載のメモリ制御システム。
【０１８６】
（付記２１）  前記不揮発性メモリは、前記書き込み指示部が前記書き込み部に書き込みを指示する回数を格納する部位を有し、
前記回数が、所定の回数を超えた場合、前記不揮発性メモリの交換を促す画面を表示させることを特徴とする付記１８記載のメモリ制御システム。
【０１８７】
（付記２２）  フローティングゲートを備える複数のメモリセルを有するメモリセルアレイを備える不揮発性メモリが有する、
第１のセンスアンプが、前記フローティングゲートの電圧値と、前記メモリセルの書き込み状態と消去状態とを識別する第１の閾値との大小を判定し、
第２のセンスアンプが、前記フローティングゲートの電圧値と、前記第１の閾値より大きな第２の閾値との大小を判定し、
書き込み部が、前記第２のセンスアンプが、前記第２の閾値が前記フローティングゲートの電圧値より大きいと判定した前記フローティングゲートを備える前記メモリセルのデータを再度書き込む、
ことを特徴とする不揮発性メモリの制御方法。
【図面の簡単な説明】
【０１８８】
【図１】実施の形態の不揮発性メモリの概要を示す図である。
【図２】実施の形態のモジュールのハードウェア構成例を示す図である。
【図３】ＮＡＮＤコントローラの構成を示すブロック図である。
【図４】不揮発性メモリの構成を示すブロック図である。
【図５】センスアンプ回路の構成を示すブロック図である。
【図６】ステータスレジスタの設定例を示す図である。
【図７】ページの構成を示す図である。
【図８】ページの構成を示す図である。
【図９】不揮発性メモリに与えるコマンドファンクションを示す図である。
【図１０】リフレッシュ処理要否判断処理を示すフローチャートである。
【図１１】リフレッシュ処理を示すフローチャートである。
【図１２】リフレッシュ処理を示すフローチャートである。
【図１３】リフレッシュ処理の効果を示す図である。
【図１４】リフレッシュ処理が現在行われていることをディスプレイに表示させるときの処理を示すフローチャートである。
【図１５】不揮発性メモリの交換を促す画面をディスプレイに表示させるときの処理を示すフローチャートである。
【図１６】第２の実施の形態のセンスアンプ回路の構成を示すブロック図である。
【図１７】第３の実施の形態の不揮発性メモリを示すブロック図である。
【図１８】第３の実施の形態の不揮発性メモリのコマンドファンクションを示す図である。
【図１９】第３の実施の形態のリフレッシュ処理を示すフローチャートである。
【図２０】再書き込み処理を示すフローチャートである。
【図２１】第４の実施の形態の不揮発性メモリを示すブロック図である。
【図２２】第４の実施の形態の不揮発性メモリのコマンドファンクションを示す図である。
【図２３】第４の実施の形態の再書き込み処理を示すフローチャートである。
【図２４】マッピングテーブルの更新処理を示すフローチャートである。
【図２５】第５の実施の形態のＮＡＮＤコントローラの構成を示すブロック図である。
【図２６】アクセス回数情報の設定例を示す図である。
【図２７】第５の実施の形態のリフレッシュ処理要否判断処理を示すフローチャートである。
【図２８】リフレッシュ間隔変更処理を示すフローチャートである。
【図２９】リフレッシュ間隔変更処理の効果を示す図である。
【図３０】第７の実施の形態のＮＡＮＤコントローラの構成を示すブロック図である。
【図３１】不揮発性メモリの現在日時情報の設定を説明する図である。
【図３２】第７の実施の形態のリフレッシュ処理要否判断処理を示すフローチャートである。
【図３３】ＮＡＮＤ型不揮発性メモリの基本セル構造を示す回路図である。
【図３４】不揮発性メモリのデータ書き込みおよび消去の様子を示す図である。
【図３５】ＦＮトンネル現象によるゲート酸化膜の劣化を示す図である。
【図３６】経過時間とフローティングゲートの電圧変化との関係を示すグラフである。
【図３７】書き換え回数とデータ保持時間との関係を示すグラフである。
【符号の説明】
【０１８９】
１  不揮発性メモリ
２  メモリセルアレイ
３  第１のセンスアンプ
４  第２のセンスアンプ
５  書き込み部
１０  モジュール
１１  ＣＰＵ
１２  チップセット
１２ａ  ノースブリッジ
１２ｂ  サウスブリッジ
１３  メモリ
１５  ディスプレイ
２０  不揮発性モジュール
２１、２１ａ、２１ｂ  ＮＡＮＤコントローラ
２２  ＮＡＮＤ型不揮発性メモリ（不揮発性メモリ）
３０  ステータスレジスタ
４０、４０ａ、４０ｂ  コマンドファンクションテーブル
２１１  ホストインタフェース部
２１２  コントロールレジスタ
２１３  電力制御部
２１４  バッファ
２１５  ＥＣＣ処理部
２１６  ＮＡＮＤインタフェース部
２１７  リフレッシュ間隔レジスタ
２１８  Ｉ２Ｃインタフェース部
２２１  Ｉ／Ｏバッファ回路
２２２  コマンドレジスタ
２２３  制御部
２２３ａ  高電圧発生回路
２２３ｂ  再書き込み回路
２２４  アドレスレジスタ
２２５  ＮＡＮＤフラッシュアレイ
２２６  Ｘデコーダ
２２７  Ｙデコーダ
２２８、２２８ａ  センスアンプ回路
２２９  置き換えレジスタ
２２８１  メイン基準セル
２２８２  サブ基準セル
２２８３  メインセンスアンプ
２２８４、２２８６  サブセンスアンプ
２２８５  論理回路
【図１】
2010135036.tif 000003
【図２】
2010135036.tif 000004
【図３】
2010135036.tif 000005
【図４】
2010135036.tif 000006
【図５】
2010135036.tif 000007
【図６】
2010135036.tif 000008
【図７】
2010135036.tif 000009
【図８】
2010135036.tif 000010
【図９】
2010135036.tif 000011
【図１０】
2010135036.tif 000012
【図１１】
2010135036.tif 000013
【図１２】
2010135036.tif 000014
【図１３】
2010135036.tif 000015
【図１４】
2010135036.tif 000016
【図１５】
2010135036.tif 000017
【図１６】
2010135036.tif 000018
【図１７】
2010135036.tif 000019
【図１８】
2010135036.tif 000020
【図１９】
2010135036.tif 000021
【図２０】
2010135036.tif 000022
【図２１】
2010135036.tif 000023
【図２２】
2010135036.tif 000024
【図２３】
2010135036.tif 000025
【図２４】
2010135036.tif 000026
【図２５】
2010135036.tif 000027
【図２６】
2010135036.tif 000028
【図２７】
2010135036.tif 000029
【図２８】
2010135036.tif 000030
【図２９】
2010135036.tif 000031
【図３０】
2010135036.tif 000032
【図３１】
2010135036.tif 000033
【図３２】
2010135036.tif 000034
【図３３】
2010135036.tif 000035
【図３４】
2010135036.tif 000036
【図３５】
2010135036.tif 000037
【図３６】
2010135036.tif 000038
【図３７】
2010135036.tif 000039