(57)【要約】【課題】ページイレーズ機能の活用でファイルの書換え性能を向上させる。【解決手段】ブロックは、物理アドレス０，１，２，３から構成される。初期状態では、物理ドレス０，１，２，３は、全てイレーズ状態にある。物理ドレス０，１，２，３にデータＬＡ０，ＬＡ１，ＬＡ２，ＬＡ３がライトされると、カウント値は、それぞれ“１”となる。このように、ページ（物理アドレス）単位の書き換え動作を行い、データ更新が行われた物理アドレスのカウンタ値については、その値を更新していく。最終的に、ブロック内のカウント値の合計が許容値、３２に達すると、リフレッシュが行われ、ブロック内のメモリセルの状態が初期化される。【選択図】    図５
2004240572.tif 000002
【特許請求の範囲】
【請求項１】
１つのブロックが複数のページから構成され、ページ単位でデータ書き換えを行う不揮発性半導体メモリにおいて、前記複数のページの各々に対するデータ書き換え回数に関連付けられた情報をページごとに管理する制御回路を有することを特徴とする不揮発性半導体メモリ。
【請求項２】
前記不揮発性半導体メモリは、ページイレーズ機能を有することを特徴とする請求項１に記載の不揮発性半導体メモリ。
【請求項３】
前記制御回路は、前記不揮発性半導体メモリ内に混載されていることを特徴とする請求項１に記載の不揮発性半導体メモリ。
【請求項４】
前記情報は、前記不揮発性半導体メモリ内のメモリセルアレイの冗長部に記憶されることを特徴とする請求項１に記載の不揮発性半導体メモリ。
【請求項５】
前記情報は、前記不揮発性半導体メモリ内のメモリセルアレイとは異なる特殊なメモリセル領域に記憶されることを特徴とする請求項１に記載の不揮発性半導体メモリ。
【請求項６】
前記情報は、前記不揮発性半導体メモリとは異なる別の不揮発性半導体メモリ内に記憶されることを特徴とする請求項１に記載の不揮発性半導体メモリ。
【請求項７】
前記制御回路は、前記データ書き換えの度に、前記複数のページの全てに対して、前記情報のリードを行うことを特徴とする請求項１に記載の不揮発性半導体メモリ。
【請求項８】
前記制御回路は、前記データ書き換えの度に、前記データ書き換えの対象となるページに対して、前記情報の更新を行うことを特徴とする請求項７に記載の不揮発性半導体メモリ。
【請求項９】
前記データ書き換えは、前記情報のリード後、前記データ書き換えの対象となるページのデータをイレーズし、かつ、前記データ書き換えの対象となるページに更新データをライトすることにより行うことを特徴とする請求項８に記載の不揮発性半導体メモリ。
【請求項１０】
前記制御回路は、前記データ書き換えの度に、前記複数のページの全てに関する前記情報に基づいて、前記ブロック内の全てのページ又は前記データ書き換えの対象となったページのメモリセルの状態を初期状態に戻すリフレッシュを行うか否かを決定することを特徴とする請求項８に記載の不揮発性半導体メモリ。
【請求項１１】
前記情報の更新は、前記データ書き換えの対象となるページに関する前記情報を、前記データ書き換えの対象となるページのデータ書き換え回数に設定することにより行うことを特徴とする請求項１０に記載の不揮発性半導体メモリ。
【請求項１２】
前記リフレッシュは、前記複数のページの全てに関する前記データ書き換え回数の合計値が許容値に達したときに実行されることを特徴とする請求項１１に記載の不揮発性半導体メモリ。
【請求項１３】
前記リフレッシュにより、前記情報は、初期化されることを特徴とする請求項１２に記載の不揮発性半導体メモリ。
【請求項１４】
前記情報の更新は、前記データ書き換えの対象となるページに関する前記情報を、前記ブロック内におけるデータ書き換え回数の合計値に設定することにより行うことを特徴とする請求項１０に記載の不揮発性半導体メモリ。
【請求項１５】
前記リフレッシュは、前記複数のページの全てに関する前記データ書き換え回数のうちの最大値が許容値に達したときに実行されることを特徴とする請求項１４に記載の不揮発性半導体メモリ。
【請求項１６】
前記リフレッシュにより、前記情報は、初期化されることを特徴とする請求項１５に記載の不揮発性半導体メモリ。
【請求項１７】
前記リフレッシュは、前記複数のページの全てに関する前記データ書き換え回数のうち、最大値から最小値を差し引いた値が許容値に達したときに実行されることを特徴とする請求項１４に記載の不揮発性半導体メモリ。
【請求項１８】
前記リフレッシュにより、前記情報は、初期化されることを特徴とする請求項１７に記載の不揮発性半導体メモリ。
【請求項１９】
前記リフレッシュにより、前記リフレッシュの対象となったページに関する前記情報が更新されることを特徴とする請求項１７に記載の不揮発性半導体メモリ。
【請求項２０】
前記データ書き換えは、前記リフレッシュの一環として行われることを特徴とする請求項１０に記載の不揮発性半導体メモリ。
【請求項２１】
前記不揮発性半導体メモリは、ＮＡＮＤ型フラッシュメモリであることを特徴とする請求項１に記載の不揮発性半導体メモリ。
【請求項２２】
１つのブロックが複数のページから構成され、ページ単位でデータ書き換え動作を行う不揮発性半導体メモリと、前記複数のページの各々に対するデータ書き換え回数に関連付けられた情報をページごとに管理するコントローラとを有することを特徴とするメモリシステム。
【請求項２３】
前記メモリシステムは、メモリカードを構成していることを特徴とする請求項２２に記載のメモリシステム。
【請求項２４】
前記メモリシステムは、前記不揮発性半導体メモリを有するメモリカードと前記コントローラを有する電子機器とからなることを特徴とする請求項２２に記載のメモリシステム。
【請求項２５】
１つのブロックが複数のエリアから構成され、エリア単位でデータ書き換え動作を行う不揮発性半導体メモリにおいて、前記複数のエリアの各々に対するデータ書き換え回数に関連付けられた情報をエリアごとに管理する制御回路を有することを特徴とする不揮発性半導体メモリ。
【請求項２６】
前記複数のエリアの各々は、複数のページを含んでいることを特徴とする請求項２５に記載の不揮発性半導体メモリ。
【請求項２７】
１つのブロックが複数のエリアから構成され、エリア単位でデータ書き換え動作を行う不揮発性半導体メモリと、前記複数のエリアの各々に対するデータ書き換え回数に関連付けられた情報をエリアごとに管理するコントローラとを有することを特徴とするメモリシステム。
【請求項２８】
前記複数のエリアの各々は、複数のページを含んでいることを特徴とする請求項２７に記載のメモリシステム。
【請求項２９】
前記メモリシステムは、メモリカードを構成していることを特徴とする請求項２７に記載のメモリシステム。
【請求項３０】
前記メモリシステムは、前記不揮発性半導体メモリを有するメモリカードと前記コントローラを有する電子機器とからなることを特徴とする請求項２７に記載のメモリシステム。
【請求項３１】
１つのブロックが複数のページからなる第１メモリエリアと複数のページからなる第２メモリエリアとから構成され、ページ単位でデータ書き換えを行う不揮発性半導体メモリにおいて、前記複数のページの各々に対するデータ書き換え回数に関連付けられた情報をページごとに管理する制御回路を有し、前記情報は、前記データ書き換えが行われる度に、前記第１及び第２メモリエリアの一方に交互に記憶されることを特徴とする不揮発性半導体メモリ。
【請求項３２】
１つのブロックが複数のページからなる第１メモリエリアと複数のページからなる第２メモリエリアとから構成され、ページ単位でデータ書き換えを行う不揮発性半導体メモリと、前記複数のページの各々に対するデータ書き換え回数に関連付けられた情報をページごとに管理するコントローラとを具備し、前記情報は、前記データ書き換えが行われる度に、前記第１及び第２メモリエリアの一方に交互に記憶されることを特徴とするメモリシステム。
【請求項３３】
１つのブロックが複数のエリアからなる第１メモリエリアと複数のエリアからなる第２メモリエリアとから構成され、エリア単位でデータ書き換えを行う不揮発性半導体メモリにおいて、前記複数のエリアの各々に対するデータ書き換え回数に関連付けられた情報をエリアごとに管理する制御回路を有し、前記エリアは、複数のページを含み、前記情報は、前記データ書き換えが行われる度に、前記第１及び第２メモリエリアの一方に交互に記憶されることを特徴とする不揮発性半導体メモリ。
【請求項３４】
１つのブロックが複数のエリアからなる第１メモリエリアと複数のエリアからなる第２メモリエリアとから構成され、エリア単位でデータ書き換えを行う不揮発性半導体メモリと、前記複数のエリアの各々に対するデータ書き換え回数に関連付けられた情報をエリアごとに管理するコントローラとを具備し、前記エリアは、複数のページを含み、前記情報は、前記データ書き換えが行われる度に、前記第１及び第２メモリエリアの一方に交互に記憶されることを特徴とするメモリシステム。
【請求項３５】
複数のページからなる第１ブロックと複数のページからなる第２ブロックとを有し、ページ単位でデータ書き換えを行う不揮発性半導体メモリにおいて、前記複数のページの各々に対するデータ書き換え回数に関連付けられた情報をページごとに管理する制御回路を有し、前記情報は、前記データ書き換えが行われる度に、前記第１及び第２ブロックの一方に交互に記憶されることを特徴とする不揮発性半導体メモリ。
【請求項３６】
複数のページからなる第１ブロックと複数のページからなる第２ブロックとを有し、ページ単位でデータ書き換えを行う不揮発性半導体メモリと、前記複数のページの各々に対するデータ書き換え回数に関連付けられた情報をページごとに管理するコントローラとを具備し、前記情報は、前記データ書き換えが行われる度に、前記第１及び第２ブロックの一方に交互に記憶されることを特徴とするメモリシステム。
【請求項３７】
複数のエリアからなる第１ブロックと複数のエリアからなる第２ブロックとを有し、エリア単位でデータ書き換えを行う不揮発性半導体メモリにおいて、前記複数のエリアの各々に対するデータ書き換え回数に関連付けられた情報をエリアごとに管理する制御回路を有し、前記エリアは、複数のページを含み、前記情報は、前記データ書き換えが行われる度に、前記第１及び第２ブロックの一方に交互に記憶されることを特徴とする不揮発性半導体メモリ。
【請求項３８】
複数のエリアからなる第１ブロックと複数のエリアからなる第２ブロックとから構成され、エリア単位でデータ書き換えを行う不揮発性半導体メモリと、前記複数のエリアの各々に対するデータ書き換え回数に関連付けられた情報をエリアごとに管理するコントローラとを具備し、前記エリアは、複数のページを含み、前記情報は、前記データ書き換えが行われる度に、前記第１及び第２ブロックの一方に交互に記憶されることを特徴とするメモリシステム。
【請求項３９】
複数のページからなる第１ブロックを有し、ページ単位でデータ書き換えを行う不揮発性半導体メモリにおいて、前記複数のページの各々に対するデータ書き換え回数に関連付けられた情報をページごとに管理する制御回路を有し、前記情報は、前記データ書き換えが行われる度に、前記第１ブロック及び前記不揮発性半導体メモリと同一の構成を有する他の不揮発性半導体メモリ内の第２ブロックの一方に交互に記憶されることを特徴とする不揮発性半導体メモリ。
【請求項４０】
複数のページからなる第１ブロックを有し、ページ単位でデータ書き換えを行う第１不揮発性半導体メモリと、複数のページからなる第２ブロックを有し、ページ単位又はそれよりも小さい単位でデータ書き換えを行う第２不揮発性半導体メモリと、前記複数のページの各々に対するデータ書き換え回数に関連付けられた情報をページごとに管理するコントローラとを具備し、前記情報は、前記データ書き換えが行われる度に、前記第１及び第２ブロックの一方に交互に記憶されることを特徴とするメモリシステム。
【請求項４１】
ブロックが複数のページにより構成され、前記複数のページの各々がロウ方向に配置される複数のメモリセルにより構成され、前記ブロック単位で行うブロックイレーズと前記ページ単位で行うページイレーズと選択する機能を有する不揮発性半導体メモリと、前記不揮発性半導体メモリに対して、前記ページイレーズを実行するためのコマンドを発行する制御回路とを具備することを特徴とするメモリシステム。
【請求項４２】
前記ページイレーズは、前記ブロック内に記憶されたデータのうち、少なくとも１つのページ内の不要なデータをイレーズする機能であることを特徴とする請求項４１に記載のメモリシステム。
【請求項４３】
前記制御回路は、前記複数のページの各々に対するデータ書き換え回数に関連付けられた情報をページごとに管理することを特徴とする請求項４１に記載のメモリシステム。
【請求項４４】
前記制御回路は、前記複数のページの全てに関する前記情報のうち、最大値から最小値を差し引いた値が許容値に達したか否かを管理することを特徴とする請求項４３に記載のメモリシステム。
【請求項４５】
前記不揮発性半導体メモリは、直列接続される複数のメモリセルからなるセル列から構成され、前記セル列の一端は、ソース線に接続され前記セル列の他端は、ビット線に接続されることを特徴とする請求項４１に記載のメモリシステム。
【請求項４６】
ブロックが複数のページにより構成され、前記複数のページの各々がロウ方向に配置される複数のメモリセルにより構成され、前記ブロック単位で行うブロックイレーズと前記ページ単位で行うページイレーズと選択する機能を有する不揮発性半導体メモリに適用され、前記ブロック内に記憶されたデータのうち、少なくとも１つのページ内の不要なデータを、前記ページイレーズによりイレーズすることを特徴とする不揮発性半導体メモリの制御方法。
【請求項４７】
前記制御回路は、前記複数のページの各々に対するデータ書き換え回数に関連付けられた情報をページごとに管理することを特徴とする請求項４６に記載の不揮発性半導体メモリの制御方法。
【請求項４８】
前記制御回路は、前記複数のページの全てに関する前記情報のうち、最大値から最小値を差し引いた値が許容値に達したか否かを管理することを特徴とする請求項４６に記載の不揮発性半導体メモリの制御方法。
【請求項４９】
前記不揮発性半導体メモリは、直列接続される複数のメモリセルからなるセル列から構成され、前記セル列の一端は、ソース線に接続され前記セル列の他端は、ビット線に接続されることを特徴とする請求項４６に記載の不揮発性半導体メモリの制御方法。
【請求項５０】
ブロックが複数のページにより構成され、前記複数のページの各々がロウ方向に配置される複数のメモリセルにより構成される不揮発性半導体メモリにおいて、前記ブロック単位で行うブロックイレーズと前記ページ単位で行うページイレーズと選択する機能と、前記複数のページの各々に対するデータ書き換え回数に関連付けられた情報をページごとに管理する機能とを備えることを特徴とする不揮発性半導体メモリ。
【請求項５１】
前記ページイレーズは、前記ブロック内に記憶されたデータのうち、少なくとも１つのページ内の不要なデータをイレーズする機能であることを特徴とする請求項５０に記載の不揮発性半導体メモリ。
【請求項５２】
前記不揮発性半導体メモリは、直列接続される複数のメモリセルからなるセル列から構成され、前記セル列の一端は、ソース線に接続され前記セル列の他端は、ビット線に接続されることを特徴とする請求項５０に記載の不揮発性半導体メモリ。
【請求項５３】
請求項５０に記載の不揮発性半導体メモリを用いたメモリシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、不揮発性半導体メモリにおける書き換え回数（ライト／イレーズ回数）の管理に関するもので、特に、ＮＡＮＤ型フラッシュメモリに使用される。
【０００２】
【従来の技術】
近年、ＮＡＮＤ型フラッシュメモリを使用したフラッシュメモリカードが、デジタルカメラを始めとする各種携帯情報端末等の記憶媒体として使用されている。図２２及び図２３に、ＮＡＮＤ型フラッシュメモリのメモリセル配置の概要を示す。
【０００３】
ＮＡＮＤ型フラッシュメモリのメモリセルアレイは、ＮＡＮＤユニットＮＵと呼ばれる基本単位の集合体から構成される。ＮＡＮＤユニットＮＵは、直列接続される複数のメモリセルＭ０，Ｍ１，・・・Ｍ３１からなるセル列と、そのセル列の両端にそれぞれ１つずつ接続される合計２つのセレクトゲートトランジスタＳＴ１，ＳＴ２とから構成される。
【０００４】
ＮＡＮＤユニットＮＵ内では、隣接する２つのメモリセルは、１つのソース／ドレイン領域を共有する。また、セレクトゲートトランジスタＳＴ１は、ビット線ＢＬに接続され、セレクトゲートトランジスタＳＴ２は、ソース線ＳＬに接続される。
【０００５】
メモリセルアレイは、ページ及びブロックという単位によって区分けされている。ページとは、１つのワード線に接続されるメモリセルの集合体を意味する。ページは、例えば、ライト、イレーズ、リードなどの動作を行うに当たっての基本単位となる。ブロックとは、ビット線側セレクトゲートトランジスタＳＴ１とソース線側セレクトゲートトランジスタＳＴ２との間に挟まれたページの集合体を意味する。
【０００６】
図２２の例によれば、メモリセルアレイは、Ｘ＋１個のブロックから構成され、かつ、１つのブロックは、３２ページから構成される。１ページのデータ長は、５２８バイトである。このうち、５１２バイトは、ユーザが自由に使用できるデータ領域（ユーザーデータ部）であり、残りの１６バイトは、冗長部である。一般的には、冗長部には、データ領域に対するエラー訂正のためのＥＣＣ（ＥｒｒｏｒＣｏｒｒｅｃｔｉｏｎ  Ｃｉｒｃｕｉｔ）符号、論理アドレス、ブロックの良否を示すフラグなどが格納される。
【０００７】
このようなＮＡＮＤ型フラッシュメモリでは、通常、データイレーズは、ブロック単位で行なわれる（ブロックイレーズ）。この場合、ブロックよりも小さい単位、例えば、ページ単位のデータ書き換えでは、書き換えの対象となるページを含むブロック内のセルデータを、一時的に、他のブロックなどのデータ記憶部へ退避させ、書き換えの対象とならないページのセルデータを保護しなければならない。
【０００８】
従って、この退避動作に多大な時間を要するなど、ＮＡＮＤ型フラッシュメモリの書き換え性能の向上に支障をきたす。
【０００９】
この問題を解決するために、近年では、データイレーズをページ単位で行うことができるＮＡＮＤ型フラッシュメモリが開発されている（例えば、特許文献１，２，３を参照）。ページ単位のデータイレーズ（ページイレーズ）では、選択された１つのブロック内において、書き換えの対象となるページのセルデータのみをイレーズすればよいため、原則として、書き換えの対象とならないページのセルデータを他のデータ記憶部へ退避させる必要がない。
【００１０】
しかし、ページイレーズ機能を備えたＮＡＮＤ型フラッシュメモリには、信頼性上、以下の問題点がある。
【００１１】
選択された１つのブロック内の特定の１ページに対してのみ、ライト／イレーズ動作が繰り返し行われた場合、その選択された１つのブロック内の特定の１ページ以外のページ、即ち、書き換えの対象とならないページのメモリセルに対して、繰り返し、電圧ストレス（中間電圧）がかかることになる。
【００１２】
例えば、データライトが実行される度に、書き換えの対象とならないページのメモリセルには、ライト電圧よりも小さい中間電圧がかかる。
【００１３】
その結果、選択された１つのブロック内の書き換えの対象とならないページのメモリセルの閾値状態が次第に変動し、最終的には、セルデータの破壊を招くという結果に至る。このようなことから、従来では、ページイレーズ機能を使用して、例えば、ファイルデータの書き換え速度の高速化を図る、ということは、困難とされてきた。
【００１４】
【特許文献１】
特開平３−２９５０９７号公報
【００１５】
【特許文献２】
特開平８−１４３３９８号公報
【００１６】
【特許文献１】
特開平１１−１７６１７７号公報
【００１７】
【発明が解決しようとする課題】
このように、従来では、不揮発性半導体メモリの書き換え性能の向上を実現するための有効な技術が存在しなかった。
【００１８】
本発明の目的は、ページイレーズ機能を活用して、データの書き換え性能を向上させると共に、１つのブロック内のページのデータ書き換え回数を、ページごとに管理することにより、書き換えの対象とならないページのメモリセルに作用する電圧ストレスに起因する問題も回避できる新規な構成の不揮発性半導体メモリを提案することにある。
【００１９】
【課題を解決するための手段】
本発明の例に関わる不揮発性半導体メモリは、１つのブロックが複数のページから構成され、ページ単位又はそれよりも小さい単位でデータ書き換えを行うものであり、かつ、前記複数のページの各々に対するデータ書き換え回数に関連付けられた情報をページごとに管理する制御回路を有している。
【００２０】
【発明の実施の形態】
以下、図面を参照しながら、本発明の例に関わる不揮発性半導体メモリについて詳細に説明する。
【００２１】
１．  概要
本発明の例は、ページイレーズ機能を有するＮＡＮＤ型フラッシュメモリに適用される。即ち、本発明の例に関わるＮＡＮＤ型フラッシュメモリでは、ページイレーズ機能を活用して、データの書き換え性能の向上を図る。また、ページイレーズ機能に起因する電圧ストレスの問題は、１つのブロック内のページのデータ書き換え回数を、ページごとに管理することにより解決する。その具体例については、後述する各実施の形態で説明する。
【００２２】
本発明の例は、特に、小さいサイズのデータの書き換え（例えば、ＦＡＴ（Ｆｉｌｅ  Ａｌｌｏｃａｔｉｏｎ  Ｔａｂｌｅ）情報の書き換えなど）が頻繁に行われるシステムに適用される。なぜなら、ページイレーズ機能は、主として、このような小さいサイズのデータの書き換えに対して、その性能の向上を図るものだからである。本発明の例は、フラッシュメモリカードや、それを用いた電子機器などに応用される。
【００２３】
２．  ＮＡＮＤ型フラッシュメモリの例
まず、本発明の例を説明するに当たって、その前提となるＮＡＮＤ型フラッシュメモリの例について説明する。
【００２４】
図２２及び図２３は、ＮＡＮＤ型フラッシュメモリのメモリセルアレイの例を示している。
【００２５】
ＮＡＮＤ型フラッシュメモリのメモリセルアレイは、ＮＡＮＤユニットＮＵと呼ばれる基本単位の集合体から構成される。ＮＡＮＤユニットＮＵは、直列接続される複数のメモリセルＭ０，Ｍ１，・・・Ｍ３１からなるセル列と、そのセル列の両端にそれぞれ１つずつ接続される合計２つのセレクトゲートトランジスタＳＴ１，ＳＴ２とから構成される。
【００２６】
ＮＡＮＤユニットＮＵ内では、隣接する２つのメモリセルは、１つのソース／ドレイン領域を共有する。また、セレクトゲートトランジスタＳＴ１は、ビット線ＢＬに接続され、セレクトゲートトランジスタＳＴ２は、ソース線ＳＬに接続される。
【００２７】
メモリセルアレイは、ページ及びブロックという単位によって区分けされている。ページとは、１つのワード線に接続されるメモリセルの集合体を意味する。ページは、例えば、ライト、イレーズ、リードなどの動作を行うに当たっての基本単位となる。ブロックとは、ビット線側セレクトゲートトランジスタＳＴ１とソース線側セレクトゲートトランジスタＳＴ２との間に挟まれたページの集合体を意味する。
【００２８】
図２２の例によれば、メモリセルアレイは、Ｘ＋１個のブロックから構成され、かつ、１つのブロックは、３２ページから構成される。１ページのデータ長は、５２８バイトである。このうち、５１２バイトは、ユーザが自由に使用できるデータ領域（ユーザーデータ部）であり、残りの１６バイトは、冗長部である。一般的には、冗長部には、データ領域に対するエラー訂正のためのＥＣＣ（ＥｒｒｏｒＣｏｒｒｅｃｔｉｏｎ  Ｃｉｒｃｕｉｔ）符号、論理アドレス、ブロックの良否を示すフラグなどが格納される。
【００２９】
本発明の例が適用されるＮＡＮＤ型フラッシュメモリは、ページイレーズ機能を備える。この場合、ブロックよりも小さい単位、例えば、ページ単位のデータ書き換えを実行するに当たって、原則として、書き換えの対象となるページを含むブロック内のセルデータを、一時的に、他のブロックなどのデータ記憶部へ退避させる必要がないため、データ書き換え速度の高速化を図ることができる。
【００３０】
ここで、ページイレーズ時におけるの電位関係、及び、その後のライト時における電位関係について説明する。
【００３１】
ページイレーズ時、例えば、図２２のブロック１内のページ０のセルデータをイレーズするものと仮定する。この場合、ブロック１内のワード線ＷＬ０（図２３）を、接地レベル（０Ｖ）に設定し、ブロック１内の他のワード線ＷＬ１，ＷＬ２，・・・ＷＬ３１（図２３）及びブロック１内のウェルを、それぞれ高電位（例えば、２０Ｖ）に設定する。なお、ウェルは、ブロックごとに設けられ、非選択のブロック内のワード線及びウェルは、接地レベルに設定される。
【００３２】
その結果、ワード線ＷＬ０とウェルとの間のみに、大きな電位差が発生し、ワード線ＷＬ０に接続されているメモリセル、即ち、ページ０内のメモリセルのみのセルデータがイレーズされる。
【００３３】
複数ページを同時にイレーズする場合も、同様に行える。即ち、イレーズの対象となるページに対応するワード線の電位を、接地レベルに設定し、その他のワード線を、高電位に設定すればよい。例えば、ブロック１内のページ０〜２のセルデータをイレーズするならば、図２３のワード線ＷＬ０〜ＷＬ２に接地レベルを与え、図２３の他のワード線ＷＬ３，・・・ＷＬ３１とウェルに、それぞれ高電位を与えればよい。
【００３４】
このように、ページイレーズ動作では、同一のブロック内において、選択された１つ又は複数のページのセルデータのみがイレーズされ、非選択のページのセルデータは、イレーズされずに、そのまま保護される。
【００３５】
ライト動作は、ページイレーズ後、ページごとに実行される。
【００３６】
例えば、図２２のブロック１内のページ０に対してライト動作を実行するものと仮定する。この場合、ブロック１内のワード線ＷＬ０（図２３）を、高電位（例えば、２０Ｖ）に設定し、ブロック１内の他のワード線ＷＬ１，ＷＬ２，・・・ＷＬ３１（図２３）を、中間電位（接地レベルと高電位との間の電位、例えば、１０Ｖ程度）に設定する。また、ブロック１内のウェルを、接地レベル（例えば、０Ｖ）に設定する。
【００３７】
その結果、ワード線ＷＬ０とウェルとの間のみに、大きな電位差が発生し、ワード線ＷＬ０に接続されているメモリセル、即ち、ページ０内のメモリセルに対してのみ、ビット線の電位レベルに応じたデータがライトされる。
【００３８】
このように、ライト動作では、選択されたブロック内において、選択された１つのページに対してのみデータがライトされ、この時、残りの非選択のページのメモリセルには、電圧ストレスが印加される。
【００３９】
３．  簡単化
本発明の例が適用されるＮＡＮＤ型フラッシュメモリについて説明したが、以下に説明する実施の形態では、その説明を簡略化するため、図１に示すように、１つのブロックは、４ページから構成されているものと仮定する。
【００４０】
また、本発明の例では、上述したように、ページイレーズ機能に起因する電圧ストレスの問題に関しては、１つのブロック内のページのデータ書き換え回数を、ページごとに管理することにより解決する。このデータ書き換え回数は、図１に示すように、メモリセルアレイの冗長部に、ページごとに、カウント値として記憶される。
【００４１】
本発明の例では、このカウント値が重要であり、冗長部に記憶される他のデータ、即ち、論理アドレス、ブロックの良否を示すフラグ（ブロックステータス）、ＥＣＣ符号などは、従来と同じである。そこで、以下に説明する実施の形態では、冗長部については、説明の簡単化のため、データ書き換え回数、即ち、カウント値のみを示すことにする。
【００４２】
また、ＮＡＮＤ型フラッシュメモリの説明において、ライト動作時に、非選択のページのメモリセルに電圧ストレスが印加されることを説明した。ここで、セルデータが破壊されることなく、この電圧ストレスにメモリセルが耐え得る回数、即ち、非選択のページ内のメモリセルが経験し得るデータ書き換え回数（ライト／イレーズ回数）の最大値（許容値）を、３２回と仮定する。
【００４３】
４．  実施の形態１
以下、実施の形態１について説明する。
【００４４】
この実施の形態の特徴は、ページイレーズ機能を有するＮＡＮＤ型フラッシュメモリにおいて、ページ単位で、データ書き換え回数を管理し、１つのブロック内の各ページのデータ書き換え回数が所定の条件を満たしたときに、その１つのブロックについてリフレッシュ動作を行う、という点にある。
【００４５】
ここで、データ書き換えは、１つ又は複数のページ単位で行ってもよく、また、ブロック単位で行ってもよい。重要な点は、データ書き換えを行う度に、データ書き換えを実行したページに対して、ページごとに、データ書き換え回数をカウントすることにある。なお、後述するが、カウント方法は、特に、限定されない。
【００４６】
また、ここで言う「リフレッシュ動作」とは、１つのブロック内の特定のページ（全ページ又は１つ以上のページ）に対して、データの再書き込み（ｒｅｗｒｉｔｅ）を行うことである。リフレッシュ動作の意味又は目的は、非選択ページのデータが電圧ストレスにより破壊される前に、その非選択ページのデータをリフレッシュするという点にあり、意味的又は目的的には、ＤＲＡＭのリフレッシュ動作と同じである。なお、リフレッシュ動作の方法についても、後述するように、特に、限定されない。
【００４７】
図２は、本発明の実施の形態１に関わるシステムを示している。図３は、本発明の実施の形態１に関わるシステムの動作の主要部を示している。
【００４８】
メモリ１０とは、例えば、ページイレーズ機能を有するＮＡＮＤフラッシュメモリのことである。コントローラ１１とは、メモリ１０の動作をコントロールし、かつ、ページごとのデータ書き換え回数を管理するコントロール回路のことである。
【００４９】
メモリ１０とコントローラ１１は、１チップ化されていてもよいし、それぞれ別のチップに形成されていてもよい。また、両者は、メモリカードのような１つの機器内に配置されていてもよいし、メモリカードと電子機器のように、別の機器内に配置されていてもよい。
【００５０】
まず、メモリ１０は、コントローラ１１からの書き換え信号を受けると、データ書き換えを行うページを含む選択されたブロック内の全ページのカウント値のリードを実行する（ステップＳＴ１〜ＳＴ２）。
【００５１】
コントローラ１１は、選択されたブロック内の全ページのうち、データ書き換えを実行するページに対して、カウント値の更新を行う。ここでは、カウント方法に応じて、カウントの仕方が異なるため、カウント値の更新という言葉を使用している（ステップＳＴ２）。
【００５２】
この後、データイレーズ及びデータライトを実行する（ステップＳＴ３〜ＳＴ４）。
【００５３】
データイレーズは、ページ単位でイレーズを実行するページイレーズでもよいし、ブロック単位又はチップ単位でイレーズを実行するブロックイレーズ又はチップイレーズでもよい。要は、メモリ１０が、ページ単位でイレーズするページイレーズ機能を有していればよい。
【００５４】
データライトは、ページ単位で実行される。選択されたブロック内の複数又は全てのページに対するデータ書き換えを実行する場合には、例えば、ソース線に近いメモリセルから順に、１ページずつ、データライトを実行する。データライトでは、新たなデータがデータ領域に記憶されると共に、新たなカウント値が冗長部に記憶される。
【００５５】
次に、コントローラ１１は、選択されたブロック内の各ページのカウント値に基づいて、データ書き換え回数が最大値（許容値）に達したか否かを判断する（ステップＳＴ５）。
【００５６】
データ書き換え回数が最大値（許容値）に達していない場合には、本発明に関わる動作としては、特に、何も行わない。即ち、メモリ１０は、コントローラ１１のコントロールの下で、通常の動作を行う。
【００５７】
データ書き換え回数が最大値（許容値）に達している場合には、コントローラ１１は、メモリ１０に対して、リフレッシュ動作を行う命令を出す。リフレッシュ動作の方法については、後に詳述する。リフレッシュ動作を行ったら、原則として、その選択されたブロック内の各ページのデータ書き換え回数（カウント値）を初期化する。但し、カウント方法によっては、データ書き換え回数を初期化しなくてもよい場合がある（ステップＳＴ６）。
【００５８】
５．  実施の形態２
以下、実施の形態２について説明する。
【００５９】
この実施の形態は、実施の形態１の変形例である。この実施の形態では、実施の形態１における言葉の定義及びその他の条件がそのまま適用される。
【００６０】
実施の形態１では、データ書き換え回数が所定の条件を満たしたときにリフレッシュ動作を行った。
【００６１】
しかし、この場合、最後のデータ書き換えの対象となるページについては、データ書き換え（イレーズ及びライト）を実行した後に、連続して、リフレッシュ動作（イレーズ及びライト）が実行されることになる。つまり、最後のデータ書き換え動作は、冗長となる。
【００６２】
そこで、この実施の形態では、最後のデータ書き換えの対象となるページに対してのデータ書き換え動作については、リフレッシュ動作の中で行うようにする。このようにすれば、無駄なデータ書き換え動作をなくすことができ、データ書き換え性能の向上を図ることができる。
【００６３】
図２は、本発明の実施の形態２に関わるシステムを示している。図４は、本発明の実施の形態２に関わるシステムの動作の主要部を示している。
【００６４】
メモリ１０及びコントローラ１１については、既に、上述の実施の形態１で説明したため、ここでは、省略する。
【００６５】
まず、メモリ１０は、コントローラ１１からの書き換え信号を受けると、データ書き換えを行うページを含む選択されたブロック内の全ページのカウント値のリードを実行する（ステップＳＴ１〜ＳＴ２）。
【００６６】
コントローラ１１は、選択されたブロック内の全ページのうち、データ書き換えを実行するページに対して、カウント値の更新を行う。カウント値の更新という言葉は、上述したように、カウント方法に応じてカウントの仕方が異なるために使用したものである（ステップＳＴ２）。
【００６７】
次に、コントローラ１１は、選択されたブロック内の各ページのカウント値に基づいて、データ書き換え回数が最大値（許容値）に達したか否かを判断する（ステップＳＴ３）。
【００６８】
データ書き換え回数が最大値（許容値）に達していない場合には、データイレーズ及びデータライトを実行する（ステップＳＴ４〜ＳＴ５）。
【００６９】
データイレーズは、ページ単位でイレーズを実行するページイレーズでもよいし、ブロック単位又はチップ単位でイレーズを実行するブロックイレーズ又はチップイレーズでもよい。
【００７０】
データライトは、ページ単位で実行される。選択されたブロック内の複数又は全てのページに対するデータ書き換えを実行する場合には、例えば、ソース線に近いメモリセルから順に、１ページずつ、データライトを実行する。データライトでは、新たなデータがデータ領域に記憶されると共に、新たなカウント値が冗長部に記憶される。
【００７１】
データ書き換え回数が最大値（許容値）に達している場合には、コントローラ１１は、メモリ１０に対して、リフレッシュ動作を行う命令を出す（ステップＳＴ６）。
【００７２】
リフレッシュ動作の方法については、後に詳述するが、実施の形態２では、少なくとも、選択されたブロック内のデータ書き換えの対象となるページについては、このリフレッシュ動作によってデータ書き換えを実行する。また、選択されたブロック内のデータ書き換えの対象とならないページについては、通常のリフレッシュ動作が実行される。
【００７３】
リフレッシュ動作を行ったら、原則として、その選択されたブロック内の各ページのデータ書き換え回数（カウント値）を初期化する。但し、カウント方法によっては、データ書き換え回数を初期化しなくてもよい場合がある。
【００７４】
６．  実施の形態１，２に関する実施例
以下、実施の形態１，２に関する実施例について説明する。
【００７５】
（１）    実施例１
▲１▼  カウント方法
図５は、本発明の実施例１に関わるカウント方法を示している。
【００７６】
本例では、カウント値は、ＮＡＮＤ型フラッシュメモリのメモリセルアレイ内の冗長部に記憶される。カウント値は、ページに対するデータ書き換え回数を表しており、ページごとに記憶される。
【００７７】
リフレッシュの実施は、ブロック内の各ページのカウント値の合計が、最大値（許容値）、３２回に達したことを条件とする。即ち、データ書き換え動作に関し、最悪のケースとしては、少なくとも１つのページが一度も選択されない場合が考えられる。この選択されないページ内のメモリセルについては、３２回までのデータ書き換えに起因する電圧ストレスに耐え得ることから、上述のような条件を設定する。
【００７８】
なお、実施例１の説明において、物理アドレス０，１，２，３とは、アドレス信号０，１，２，３により選択されるメモリセル、即ち、ページ０，１，２，３のことである。
【００７９】
物理アドレス０，１，２，３なる言葉を採用した理由は、１本のワード線に接続される複数のメモリセル（１物理アドレス）の各々が１ビットデータを記憶する場合には、１ページは、１物理アドレスに等しくなるが、複数ビットを記憶する場合（多値メモリの場合）には、１ページは、１物理アドレスに等しくならないことを考慮したものである。
【００８０】
論理アドレス０，１，２，３とは、アドレス信号０，１，２，３のことである。
【００８１】
また、例えば、物理アドレス０に記憶されるデータは、物理アドレス０が論理アドレス０により選択されるということから、「ＬＡ０」と記載する。なお、各メモリセルに記憶されるデータは、１ビットであるか、又は、多ビットであるかを問わない。同様の理由により、物理アドレス１，２，３に記憶されるデータは、「ＬＡ１」、「ＬＡ２」、「ＬＡ３」と記載する。「Ｅ」は、メモリセルがイレーズ状態にあることを示している。
【００８２】
（ａ）    初期状態
ブロック内の全ての物理アドレス（ページ）０，１，２，３内のメモリセルは、イレーズ状態にある。
【００８３】
（ｂ）    ライト
まず、物理アドレス０にデータＬＡ０がライトされ、物理アドレス１にデータＬＡ１がライトされ、物理アドレス２にデータＬＡ２がライトされ、物理アドレス３にデータＬＡ３がライトされる。
【００８４】
物理アドレス０に対するデータＬＡ０のライト時には、物理アドレス０のカウント値、即ち、データ書き換え回数として、“１”が冗長部にライトされる。同様に、物理アドレス１，２，３に対するデータＬＡ１，２，３のライト時には、物理アドレス１，２，３のカウント値、即ち、データ書き換え回数として、“１”が冗長部にライトされる。
【００８５】
（ｃ）  及び（ｄ）    物理アドレス０のデータ書き換え
コントローラ１１は、メモリ１０に対して、物理アドレス０のデータ更新要求を出力する（図２参照）。
【００８６】
まず、ブロック内の全ての物理アドレス０，１，２，３のカウント値がリードされる。また、図２のコントローラ１１において、データ書き換えの対象となる物理アドレス０のカウント値に、“１”が加算される。その結果、物理アドレス０のカウント値は、“２”になる。物理アドレス０，１，２，３のカウント値は、例えば、図２のコントローラ１１内のメモリ（ＲＡＭなど）に一時的に記憶される。
【００８７】
この後、物理アドレス０に記憶されたデータＬＡ０及びカウント値のイレーズが実行される（（ｃ）参照）。続けて、物理アドレス０に対して、更新データＬＡ０及びカウント値（＝“２”）がライトされる（（ｄ）参照）。
【００８８】
また、図２のコントローラ１１において、全ての物理アドレス０，１，２，３のカウント値の合計値が算出される。この時点では、物理アドレス０のカウント値は、“２”であり、また、物理アドレス１，２，３のカウント値は、“１”であるため、全ての物理アドレス０，１，２，３のカウント値の合計値は、“５”となる。この合計値は、最大値（許容値）、“３２”よりも小さい。
【００８９】
従って、この時点では、リフレッシュ動作は、行われない。
【００９０】
（ｅ）  及び（ｆ）    物理アドレス２のデータ書き換え
コントローラ１１は、メモリ１０に対して、物理アドレス２のデータ更新要求を出力する（図２参照）。
【００９１】
ブロック内の全ての物理アドレス０，１，２，３のカウント値がリードされる。また、図２のコントローラ１１において、データ書き換えの対象となる物理アドレス２のカウント値に、“１”が加算される。その結果、物理アドレス２のカウント値は、“２”になる。物理アドレス０，１，２，３のカウント値は、例えば、図２のコントローラ１１内のメモリ（ＲＡＭなど）に一時的に記憶される。
【００９２】
この後、物理アドレス２に記憶されたデータＬＡ２及びカウント値のイレーズが実行される（（ｅ）参照）。続けて、物理アドレス２に対して、更新データＬＡ２及びカウント値（＝“２”）がライトされる（（ｆ）参照）。
【００９３】
また、図２のコントローラ１１において、全ての物理アドレス０，１，２，３のカウント値の合計値が算出される。この時点では、物理アドレス０，２のカウント値は、“２”であり、また、物理アドレス１，３のカウント値は、“１”であるため、全ての物理アドレス０，１，２，３のカウント値の合計値は、“６”となる。この合計値は、最大値（許容値）、“３２”よりも小さい。
【００９４】
従って、この時点でも、リフレッシュ動作は、行われない。
【００９５】
（ｇ）    リフレッシュ
データ更新要求に従い、上述の（ｃ）及び（ｄ）の動作又は（ｅ）及び（ｆ）の動作と同様の動作が実行され、最終的に、物理アドレス０，１，２，３のカウント値が、（ｇ）  に示すようになったとする。
【００９６】
図２のコントローラ１１は、物理アドレス０，１，２，３のカウント値の合計値が“３２”であることを確認すると、リフレッシュ動作を行う命令を、図２のメモリ１０に与える。
【００９７】
本例の場合、物理アドレス０，１，２，３のカウント値は、全て、“１”以上となっている。即ち、物理アドレス０，１，２，３のいずれに関しても、３２回のデータ書き換え動作のうち、少なくとも１回は、データ書き換えの対象となっている。従って、データ書き換えの対象とならない状態で３２回の電圧ストレスを受けた物理アドレスは、存在しない。
【００９８】
しかし、上述したように、最悪のケースとしては、３２回のデータ書き換え動作において、少なくとも１つの物理アドレスが、一度も選択されない場合が考えられる。この場合、その少なくとも１つの物理アドレスについては、データ書き換えの対象とならない状態で３２回の電圧ストレスを受けたことになる。
【００９９】
そこで、物理アドレス０，１，２，３のカウント値の合計値が、最大値（許容値）、“３２”に達したときは、各物理アドレス０，１，２，３のカウント値に関係なく、リフレッシュ動作を実行する。
【０１００】
なお、本例では、初期状態で全ての物理アドレス０，１，２，３がイレーズ状態で、かつ、最初の１回目は、全ての物理アドレス０，１，２，３に対するデータライト動作となっている。従って、最悪のケースとしては、正確には、２回目以降、一度もデータ書き換えの対象とならないケースとなる。
【０１０１】
つまり、メモリセルのデータ破壊が３２回の電圧ストレスまで発生しないとすると、リフレッシュの条件は、物理アドレス０，１，２，３のカウント値の合計値が“３３”に達したこと、となる。
【０１０２】
本例では、リフレッシュの条件は、物理アドレス０，１，２，３のカウント値の合計値に基づいているが、この条件は、メモリの初期状態に応じて変更される。重要な点は、最悪のケースを想定し、この最悪のケースに基づいて、最大値（許容値）を決定することにある。
【０１０３】
リフレッシュ動作では、データ領域に記憶されるデータについては、再書き込みによりリフレッシュされるが、冗長部のカウント値については、リフレッシュ動作時に、例えば、（ｂ）  の状態に初期化される。即ち、リフレッシュにおけるライト動作では、物理アドレス０，１，２，３に対応する冗長部に、それぞれ、カウント値“１”がライトされる。
【０１０４】
▲２▼  リフレッシュ動作の方法
リフレッシュ動作の方法について説明する。
【０１０５】
リフレッシュとは、上述のように、ブロック内の全ページ又は１つ以上のページに対して、データの再書き込み（ｒｅｗｒｉｔｅ）を行うことである。リフレッシュの目的は、メモリセルのデータが電圧ストレスによる閾値変動により破壊される前に、そのメモリセルのデータをリフレッシュするという点にあり、この目的が実現できれば、どのような方法を用いてもよい。
【０１０６】
（ａ）    リフレッシュの例１
例えば、リフレッシュを行うブロック内の全ての物理アドレスのデータを、コントローラ内のメモリ（ＲＡＭなど）に転送した後、そのブロック内の全ての物理アドレスのデータをイレーズする。このイレーズは、ブロックイレーズでもよく、また、ページイレーズでもよい。そして、コントローラ内のメモリに一時的に記憶されたデータを、再び、そのブロック内の物理アドレスに戻す。これにより、リフレッシュの対象となった物理アドレスを構成するメモリセルのデータがリフレッシュされる。
【０１０７】
（ｂ）    リフレッシュの例２
まず、リフレッシュを行う一のブロック内の全ての物理アドレスのデータを、リフレッシュを行わない他のブロックに転送した後、その一のブロック内の全ての物理アドレスのデータをイレーズする。このイレーズは、ブロックイレーズでもよく、また、ページイレーズでもよい。そして、他のブロックに一時的に記憶されたデータを、再び、一のブロック内の物理アドレスに戻す。これにより、リフレッシュの対象となった物理アドレスを構成するメモリセルのデータがリフレッシュされる。この例では、一のブロックと他のブロックは、同一チップ内に形成されていてもよいし、それぞれ異なるチップ内に形成されていてもよい。
【０１０８】
▲３▼  リフレッシュ動作のタイミング
リフレッシュ動作を実施するタイミングは、特に、限定されない。
【０１０９】
例えば、許容値が“３２”の場合、ブロック内の物理アドレスのカウント値の合計値が３２回に達し、かつ、３２回目の書き換え動作を終えたなら、その後、直ちに、リフレッシュ動作を実行してもよい。また、３２回目の書き換え動作を終えた後の適当な時期、例えば、ホストからのアクセスが途絶えた後に、リフレッシュ動作を実行してもよい。
【０１１０】
なお、実施の形態２に基づく実施例の場合には、３２回目のデータ書き換え動作をリフレッシュ動作の中で行っている。このため、リフレッシュ動作は、ブロック内の物理アドレスのカウント値の合計値が３２回に達した後、３２回目の書き換え動作と共に、直ちに、実行される。
【０１１１】
▲４▼  その他
本例では、カウント値は、０，１，２，・・・という具合に、“０”から始まり、データ更新回数に応じて“１”ずつ増えていくが、本発明の例は、このような数え方に限定されるものではない。
【０１１２】
例えば、初期値は、“０”以外の数値、例えば、“２”、二進数では“１０”であってもよいし、増加分は、“１”ではなく、他の数値、例えば、“２”であってもよい。この場合、データ書き換え回数の最大値（許容値）も、当然に変わる。本例では、カウント値は、“３２”が最大となるため、メモリセルアレイの冗長部としては、“３２”までの数をカウントできるだけのビット数を確保しておけば、足りる。つまり、１つの物理アドレスに対しては、冗長部のうちの５ビットを、カウント値を記憶するための領域として使用する。
【０１１３】
また、カウント値の増加分は、等差数列的でなくてもよい。
【０１１４】
例えば、メモリセルアレイの冗長部のうち、４バイト、即ち、３２ビット分を、カウント値を記憶する領域として使用する場合には、データ書き換え回数は、これら３２ビットのうち、“１”状態にあるビットの数により判断してもよい。
【０１１５】
具体的には、所定の物理アドレスに対応するカウント値の初期値は、“０００００・・・０００（３２ビット）”に設定しておき、データ更新回数に応じて、この領域における“１”の数を増やしていく。例えば、データ更新回数が１回の場合には、“０００００・・・００１”（３２ビットのうち“１”の数は１個）となり、データ更新回数が２回の場合には、“０００００・・・０１１”（３２ビットのうち“１”の数は２個）となる。
【０１１６】
また、例えば、メモリセルアレイの冗長部のうち、４バイト、即ち、３２ビット分を、カウント値を記憶する領域として使用する場合には、データ書き換え回数は、これら３２ビットのうち、“１”状態にあるビットの位置により判断してもよい。
【０１１７】
具体的には、所定の物理アドレスに対応するカウント値の初期値は、“０００００・・・０００（３２ビット）”に設定しておき、データ更新回数に応じて、この領域における“１”の位置を変えていく。例えば、データ更新回数が１回の場合には、“０００００・・・００１”（３２ビットのうち“１”の位置は右端部）となる。データ更新回数が増えるに従い、“１”の位置を、１つずつ左にシフトさせる。
【０１１８】
また、カウント値は、データ更新回数に応じて増加させるのではなく、減少させるようにしてもよい。例えば、カウント値の初期値を“３２”として、データ更新回数に応じて、この数を、１ずつ、減らしていってもよい。
【０１１９】
（２）    実施例２
▲１▼  カウント方法
図６は、本発明の実施例２に関わるカウント方法を示している。
【０１２０】
上述の実施例１では、ページごとにデータ書き換え回数を管理し、コントローラは、データ書き換えの度に、ページごとのデータ書き換え回数に基づいて、ブロック内のデータ書き換え回数の合計値を算出した。
【０１２１】
これに対し、実施例２では、ブロック内におけるデータ書き換え回数の合計値を管理する。つまり、データ書き換えの対象となったページのカウント値は、そのページに対するデータ書き換え回数ではなく、そのページを含むブロック内におけるデータ書き換え回数の合計値に設定される。
【０１２２】
従って、コントローラは、データ書き換えの度に、ブロック内の各ページのカウント値のうちから最大値Ｎｍａｘであるものを選択すればよい。
【０１２３】
そして、リフレッシュの実施は、ブロック内の各ページのカウント値のうちの最大値Ｎｍａｘが、許容値、３２回に達したことを条件とする。なぜなら、データ書き換え動作に関し、最悪のケースとしては、少なくとも１つのページが一度も選択されない場合が考えられるからである。この選択されないページ内のメモリセルについては、３２回までのデータ書き換えに起因する電圧ストレスに耐え得ることから、上述のような条件を設定する。
【０１２４】
なお、実施例２の説明においても、物理アドレス０，１，２，３及び論理アドレス０，１，２，３の意味は、実施例１と同じであるため、ここでは、その説明を省略する。また、ＬＡ０、ＬＡ１、ＬＡ２、ＬＡ３及びＥの意味についても、実施例１と同じであるため、ここでは、省略する。
【０１２５】
（ａ）    初期状態
ブロック内の全ての物理アドレス（ページ）０，１，２，３内のメモリセルは、イレーズ状態にある。
【０１２６】
（ｂ）    ライト
まず、物理アドレス０にデータＬＡ０がライトされ、物理アドレス１にデータＬＡ１がライトされ、物理アドレス２にデータＬＡ２がライトされ、物理アドレス３にデータＬＡ３がライトされる。
【０１２７】
物理アドレス０に対するデータＬＡ０のライト時には、物理アドレス０のカウント値、即ち、データ書き換え回数として、“１”がライトされる。また、物理アドレス１に対するデータＬＡ１のライト時には、ブロック全体としてみると、２回目のデータ書き換えであるため、物理アドレス１のカウント値、即ち、データ書き換え回数としては、“２”がライトされる。
【０１２８】
同様に、物理アドレス２に対するデータＬＡ２のライト時には、ブロック全体としてみると、３回目のデータ書き換えであるため、物理アドレス２のカウント値、即ち、データ書き換え回数としては、“３”がライトされる。また、物理アドレス３に対するデータＬＡ３のライト時には、ブロック全体としてみると、４回目のデータ書き換えであるため、物理アドレス３のカウント値、即ち、データ書き換え回数としては、“４”がライトされる。
【０１２９】
（ｃ）  及び（ｄ）    物理アドレス０のデータ書き換え
コントローラ１１は、メモリ１０に対して、物理アドレス０のデータ更新要求を出力する（図２参照）。
【０１３０】
まず、ブロック内の全ての物理アドレス０，１，２，３のカウント値がリードされる。図２のコントローラ１１は、物理アドレス０，１，２，３のカウント値のうちから最大値Ｎｍａｘを選択する。この時点では、物理アドレス３のカウント値“４”が最も大きな値を有する。図２のコントローラ１１は、物理アドレス３のカウント値“４”に“１”を加算し、カウント値“５”を、データ書き換えの対象となる物理アドレス０のカウント値とする。物理アドレス０，１，２，３のカウント値は、例えば、図２のコントローラ１１内のメモリ（ＲＡＭなど）に一時的に記憶される。
【０１３１】
この後、物理アドレス０に記憶されたデータＬＡ０及びカウント値のイレーズが実行される（（ｃ）参照）。続けて、物理アドレス０に対して、更新データＬＡ０及びカウント値（＝“５”）がライトされる（（ｄ）参照）。
【０１３２】
また、図２のコントローラ１１は、物理アドレス０，１，２，３のカウント値のうちの最大値Ｎｍａｘが、許容値、“３２”に達しているか否かを判断する。この時点では、物理アドレス０のカウント値“５”が最も大きいが、その値は、許容値、“３２”に達していない。
【０１３３】
従って、この時点では、リフレッシュ動作は、行われない。
【０１３４】
（ｅ）  及び（ｆ）    物理アドレス２のデータ書き換え
コントローラ１１は、メモリ１０に対して、物理アドレス２のデータ更新要求を出力する（図２参照）。
【０１３５】
まず、ブロック内の全ての物理アドレス０，１，２，３のカウント値がリードされる。図２のコントローラ１１は、物理アドレス０，１，２，３のカウント値のうちから最大値Ｎｍａｘを選択する。この時点では、物理アドレス０のカウント値“５”が最も大きな値を有する。図２のコントローラ１１は、物理アドレス０のカウント値“５”に“１”を加算し、カウント値“６”を、データ書き換えの対象となる物理アドレス２のカウント値とする。物理アドレス０，１，２，３のカウント値は、例えば、図２のコントローラ１１内のメモリ（ＲＡＭなど）に一時的に記憶される。
【０１３６】
この後、物理アドレス２に記憶されたデータＬＡ２及びカウント値のイレーズが実行される（（ｅ）参照）。続けて、物理アドレス２に対して、更新データＬＡ２及びカウント値（＝“６”）がライトされる（（ｆ）参照）。
【０１３７】
また、図２のコントローラ１１は、物理アドレス０，１，２，３のカウント値のうちの最大値Ｎｍａｘが、許容値、“３２”に達しているか否かを判断する。この時点では、物理アドレス２のカウント値“６”が最も大きいが、その値は、許容値、“３２”に達していない。
【０１３８】
従って、この時点では、リフレッシュ動作は、行われない。
【０１３９】
（ｇ）    リフレッシュ
データ更新要求に従い、上述の（ｃ）及び（ｄ）の動作又は（ｅ）及び（ｆ）の動作と同様の動作が実行され、最終的に、物理アドレス０，１，２，３のカウント値が、（ｇ）  に示すようになったとする。
【０１４０】
図２のコントローラ１１は、物理アドレス０，１，２，３のカウント値の最大値Ｎｍａｘが“３２”であることを確認すると、リフレッシュ動作を行う命令を、図２のメモリ１０に与える。
【０１４１】
本例の場合、物理アドレス０，１，２，３のカウント値は、全て、“１”以上となっている。即ち、物理アドレス０，１，２，３のいずれに関しても、３２回のデータ書き換え動作のうち、少なくとも１回は、データ書き換えの対象となっている。従って、データ書き換えの対象とならない状態で３２回の電圧ストレスを受けた物理アドレスは、存在しない。
【０１４２】
しかし、上述したように、最悪のケースとしては、３２回のデータ書き換え動作において、少なくとも１つの物理アドレスが、一度も選択されない場合が考えられる。この場合、その少なくとも１つの物理アドレスについては、データ書き換えの対象とならない状態で３２回の電圧ストレスを受けたことになる。
【０１４３】
そこで、物理アドレス０，１，２，３のカウント値の最大値Ｎｍａｘが、許容値、“３２”に達したときは、各物理アドレス０，１，２，３のカウント値に関係なく、リフレッシュ動作を実行する。
【０１４４】
なお、本例では、初期状態で全ての物理アドレス０，１，２，３がイレーズ状態で、かつ、最初の１回目は、全ての物理アドレス０，１，２，３に対するデータライト動作となっている。従って、最悪のケースとしては、正確には、２回目以降、一度もデータ書き換えの対象とならないケースとなる。
【０１４５】
つまり、メモリセルのデータ破壊が３２回の電圧ストレスまで発生しないとすると、リフレッシュの条件は、物理アドレス０，１，２，３のカウント値の最大値Ｎｍａｘが“３３”に達したこと、となる。
【０１４６】
本例では、リフレッシュの条件は、物理アドレス０，１，２，３のカウント値の最大値Ｎｍａｘに基づいているが、この条件は、メモリの初期状態に応じて変更される。重要な点は、最悪のケースを想定し、この最悪のケースに基づいて、許容値を決定することにある。
【０１４７】
リフレッシュ動作では、データ領域に記憶されるデータについては、再書き込みによりリフレッシュされるが、冗長部のカウント値については、リフレッシュ動作時に、例えば、（ｂ）  の状態に初期化される。即ち、リフレッシュにおけるライト動作では、物理アドレス０，１，２，３に対応する冗長部に、それぞれ、カウント値“１”，“２”，“３”，“４”がライトされる。
【０１４８】
▲２▼  リフレッシュ動作の方法
リフレッシュ動作は、メモリセルのデータが電圧ストレスによる閾値変動により破壊される前に、そのメモリセルのデータをリフレッシュするという目的が達成できれば、どのような方法を用いてもよい。例えば、リフレッシュ動作の方法としては、実施例１で説明した例１及び例２を、そのまま使用できるため、その詳細な説明については、省略する。
【０１４９】
▲３▼  リフレッシュ動作のタイミング
リフレッシュ動作を実施するタイミングは、特に、限定されない。
【０１５０】
例えば、許容値が“３２”の場合、ブロック内の物理アドレスのカウント値の最大値Ｎｍａｘが３２回に達し、かつ、３２回目の書き換え動作を終えたなら、その後、直ちに、リフレッシュ動作を実行してもよい。また、３２回目の書き換え動作を終えた後の適当な時期、例えば、ホストからのアクセスが途絶えた後に、リフレッシュ動作を実行してもよい。
【０１５１】
なお、実施の形態２に基づく実施例の場合には、３２回目のデータ書き換え動作をリフレッシュ動作の中で行っている。このため、リフレッシュ動作は、ブロック内の物理アドレスのカウント値の最大値Ｎｍａｘが３２回に達した後、３２回目の書き換え動作と共に、直ちに、実行される。
【０１５２】
▲４▼  その他
本例では、カウント値は、０，１，２，・・・という具合に、“０”から始まり、ブロック内におけるデータ書き換え回数に応じて“１”ずつ増えていくが、本発明の例は、このような数え方に限定されるものではない。
【０１５３】
例えば、実施例１と同様に、初期値は、“０”以外の数値、例えば、“２”、二進数では“１０”であってもよいし、増加分は、“１”ではなく、他の数値、例えば、“２”であってもよい。この場合、ブロック内のデータ書き換え回数の許容値も、当然に変わる。
【０１５４】
本例では、カウント値は、“３２”よりも大きくなることはないため、メモリセルアレイの冗長部としては、“３２”までの数をカウントできるだけのビット数を確保しておけば、足りる。つまり、メモリセルアレイの冗長部のうちの５ビットを、カウント値を記憶するための領域として使用すればよい。
【０１５５】
また、カウント値の増加分は、等差数列的でなくてもよい。実施例１で説明したように、例えば、メモリセルアレイの冗長部のうち、４バイト、即ち、３２ビット分を、カウント値を記憶する領域として使用し、データ書き換え回数については、これら３２ビットのうち、“１”状態にあるビットの数により判断してもよい。また、例えば、データ書き換え回数については、これら３２ビットのうち、“１”状態にあるビットの位置により判断してもよい。
【０１５６】
また、カウント値は、データ更新回数に応じて増加させるのではなく、減少させるようにしてもよい。例えば、カウント値の初期値を“３２”として、データ更新回数に応じて、この数を、１ずつ、減らしていってもよい。
【０１５７】
（３）    実施例３
▲１▼  カウント方法
図７は、本発明の実施例３に関わるカウント方法を示している。
【０１５８】
上述の実施例１及び実施例２においては、最悪条件を仮定し、ブロック内におけるデータ書き換え回数の合計値が許容値、例えば、３２回に達した時点でリフレッシュ動作を実行する手法を採用した。この場合、ブロック内におけるデータ書き換え回数の合計値が許容値に達すると、各ページにおけるデータ書き換え回数にかかわらず、常に、リフレッシュ動作が行われる。
【０１５９】
これは、反面、リフレッシュ動作を行う必要がない場合、例えば、ブロック内の各ページが短い周期（３２回未満）でデータ書き換えの対象となる場合であっても、ブロック内のデータ書き換え回数が許容値に達すると、必然的にリフレッシュ動作を行うことを意味している。つまり、無駄なリフレッシュ動作が行われる可能性がある。
【０１６０】
実施例３では、このような無駄なリフレッシュ動作を完全に排除するための手法を提案する。
【０１６１】
カウント方法に関しては、実施例３は、実施例２と同じである。即ち、データ書き換えの対象となったページのカウント値は、そのページに対するデータ書き換え回数ではなく、そのページを含むブロック内におけるデータ書き換え回数の合計値に設定される。
【０１６２】
しかし、実施例３では、リフレッシュの発生条件が実施例２と異なる。
【０１６３】
実施例２では、コントローラは、データ書き換えの度に、ブロック内の各ページのカウント値のうちから最大値Ｎｍａｘであるものを選択し、その最大値Ｎｍａｘが許容値、例えば、３２回に達しているか否かを判断した。これに対し、実施例３では、コントローラは、データ書き換えの度に、ブロック内の各ページのカウント値のうちから最大値Ｎｍａｘと最小値Ｎｍｉｎとを選択し、その最大値Ｎｍａｘと最小値Ｎｍｉｎとの差が許容値、例えば、３２回に達しているか否かを判断する。
【０１６４】
ここで、カウント値が最大値Ｎｍａｘであるということは、そのカウント値に対応するページのデータ更新が、現在に対して最も近い時期に行われたことを意味する。また、カウント値が最小値Ｎｍｉｎであるということは、そのカウント値に対応するページのデータ更新が、現在に対して最も遠い時期に行われたことを意味する。
【０１６５】
そして、最大値Ｎｍａｘと最小値Ｎｍｉｎとの差は、カウント値が最小値Ｎｍｉｎであるページのデータ更新が最後に行われた後のブロック内のデータ書き換え回数を意味する。つまり、カウント値が最小値Ｎｍｉｎであるページ内のメモリセルは、そのページのデータ更新が最後に行われた後、最大値Ｎｍａｘと最小値Ｎｍｉｎとの差に相当する回数の電圧ストレスを受けたことになる。
【０１６６】
このように、実施例３では、ブロック内の各ページのカウント値のうち最大値Ｎｍａｘと最小値Ｎｍｉｎを抽出し、その差分をもって、リフレッシュ動作の必要性を判断している。
【０１６７】
実施例３の利点は、最大値Ｎｍａｘと最小値Ｎｍｉｎの差分が許容値未満であれば、リフレッシュ動作を実行することなく、データ書き換え動作を継続して行うことができるという点にある。つまり、実施例３は、無駄なリフレッシュ動作を省くことで、実施例１及び実施例２に比べ、リフレッシュ動作の回数を大幅に減らすことができる。
【０１６８】
なお、実施例３の説明においても、物理アドレス０，１，２，３及び論理アドレス０，１，２，３の意味は、実施例１と同じであるため、ここでは、その説明を省略する。また、ＬＡ０、ＬＡ１、ＬＡ２、ＬＡ３及びＥの意味についても、実施例１と同じであるため、ここでは、省略する。
【０１６９】
（ａ）    初期状態
ブロック内の全ての物理アドレス（ページ）０，１，２，３内のメモリセルは、イレーズ状態にある。
【０１７０】
（ｂ）    ライト
まず、物理アドレス０にデータＬＡ０がライトされ、物理アドレス１にデータＬＡ１がライトされ、物理アドレス２にデータＬＡ２がライトされ、物理アドレス３にデータＬＡ３がライトされる。
【０１７１】
物理アドレス０に対するデータＬＡ０のライト時には、物理アドレス０のカウント値、即ち、データ書き換え回数として、“１”がライトされる。また、物理アドレス１に対するデータＬＡ１のライト時には、ブロック全体としてみると、２回目のデータ書き換えであるため、物理アドレス１のカウント値、即ち、データ書き換え回数としては、“２”がライトされる。
【０１７２】
同様に、物理アドレス２に対するデータＬＡ２のライト時には、ブロック全体としてみると、３回目のデータ書き換えであるため、物理アドレス２のカウント値、即ち、データ書き換え回数としては、“３”がライトされる。また、物理アドレス３に対するデータＬＡ３のライト時には、ブロック全体としてみると、４回目のデータ書き換えであるため、物理アドレス３のカウント値、即ち、データ書き換え回数としては、“４”がライトされる。
【０１７３】
（ｃ）  及び（ｄ）    物理アドレス０のデータ書き換え
コントローラ１１は、メモリ１０に対して、物理アドレス０のデータ更新要求を出力する（図２参照）。
【０１７４】
まず、ブロック内の全ての物理アドレス０，１，２，３のカウント値がリードされる。図２のコントローラ１１は、物理アドレス０，１，２，３のカウント値のうちから最大値Ｎｍａｘを選択する。この時点では、物理アドレス３のカウント値“４”が最も大きな値を有する。図２のコントローラ１１は、物理アドレス３のカウント値“４”に“１”を加算し、カウント値“５”を、データ書き換えの対象となる物理アドレス０のカウント値とする。物理アドレス０，１，２，３のカウント値は、例えば、図２のコントローラ１１内のメモリ（ＲＡＭなど）に一時的に記憶される。
【０１７５】
この後、物理アドレス０に記憶されたデータＬＡ０及びカウント値のイレーズが実行される（（ｃ）参照）。続けて、物理アドレス０に対して、更新データＬＡ０及びカウント値（＝“５”）がライトされる（（ｄ）参照）。
【０１７６】
また、図２のコントローラ１１は、物理アドレス０，１，２，３のカウント値のうちの最大値Ｎｍａｘと最小値Ｎｍｉｎを抽出する。そして、この最大値Ｎｍａｘと最小値Ｎｍｉｎとの差を計算し、この差が、データ書き換え回数の最大値（許容値）、即ち、“３２”に達しているか否かを判断する。
【０１７７】
この時点では、物理アドレス０のカウント値“５”が最も大きく、物理アドレス１のカウント値“２”が最も小さい。従って、最大値Ｎｍａｘ−最小値Ｎｍｉｎは、“３”であり、この数値は、“３２”よりも小さい。
【０１７８】
従って、この時点では、リフレッシュ動作は、行われない。
【０１７９】
（ｅ）  及び（ｆ）    物理アドレス２のデータ書き換え
コントローラ１１は、メモリ１０に対して、物理アドレス２のデータ更新要求を出力する（図２参照）。
【０１８０】
まず、ブロック内の全ての物理アドレス０，１，２，３のカウント値がリードされる。図２のコントローラ１１は、物理アドレス０，１，２，３のカウント値のうちから最大値Ｎｍａｘを選択する。この時点では、物理アドレス０のカウント値“５”が最も大きな値を有する。図２のコントローラ１１は、物理アドレス０のカウント値“５”に“１”を加算し、カウント値“６”を、データ書き換えの対象となる物理アドレス２のカウント値とする。物理アドレス０，１，２，３のカウント値は、例えば、図２のコントローラ１１内のメモリ（ＲＡＭなど）に一時的に記憶される。
【０１８１】
この後、物理アドレス２に記憶されたデータＬＡ２及びカウント値のイレーズが実行される（（ｅ）参照）。続けて、物理アドレス２に対して、更新データＬＡ２及びカウント値（＝“６”）がライトされる（（ｆ）参照）。
【０１８２】
また、図２のコントローラ１１は、物理アドレス０，１，２，３のカウント値のうちの最大値Ｎｍａｘと最小値Ｎｍｉｎを抽出する。そして、この最大値Ｎｍａｘと最小値Ｎｍｉｎとの差を計算し、この差が、データ書き換え回数の最大値（許容値）、即ち、“３２”に達しているか否かを判断する。
【０１８３】
この時点では、物理アドレス２のカウント値“６”が最も大きく、物理アドレス１のカウント値“２”が最も小さい。従って、最大値Ｎｍａｘ−最小値Ｎｍｉｎは、“４”であり、この数値は、“３２”よりも小さい。
【０１８４】
従って、この時点では、リフレッシュ動作は、行われない。
【０１８５】
（ｇ）    リフレッシュ
データ更新要求に従い、上述の（ｃ）及び（ｄ）の動作又は（ｅ）及び（ｆ）の動作と同様の動作が実行され、最終的に、物理アドレス０，１，２，３のカウント値が、（ｇ）  に示すようになったとする。
【０１８６】
図２のコントローラ１１は、物理アドレス０，１，２，３のカウント値から最大値Ｎｍａｘと最小値Ｎｍｉｎを抽出する。最大値Ｎｍａｘは、物理アドレス０のカウント値であり、その値は、“６５”である。また、最小値Ｎｍｉｎは、物理アドレス３のカウント値であり、その値は、“３３”である。最大値Ｎｍａｘと最小値Ｎｍｉｎとの差は、“３２”となる。
【０１８７】
つまり、物理アドレス３のデータが最後に更新された後、物理アドレス３は、３２（＝６５−３３）回のデータ書き換えによる電圧ストレスを受けていることになる。従って、図２のコントローラ１１は、この事実を確認すると、リフレッシュ動作を行う命令を、図２のメモリ１０に与える。
【０１８８】
本例では、ブロック内の各物理アドレス０，１，２，３のカウント値の最大値Ｎｍａｘと最小値Ｎｍｉｎの差に基づいて、リフレッシュ動作の必要性を判断している。このため、その差が許容値未満であれば、リフレッシュ動作を行う必要がない。場合によっては、リフレッシュ動作を全く行わずに、データ書き換え動作を継続して行うことができる。
【０１８９】
また、本例では、カウント値の最大値Ｎｍａｘと最小値Ｎｍｉｎの差に基づいてリフレッシュ動作の必要性を判断しているため、実施例１，２のように、リフレッシュの条件がメモリの初期状態に依存することはない。また、本例では、実施例１，２のように、最悪のケースを想定して、リフレッシュの条件を設定しなくてもよい。
【０１９０】
リフレッシュ動作では、データ領域に記憶されるデータについては、再書き込みによりリフレッシュされるが、冗長部のカウント値については、リフレッシュ動作時に、例えば、（ｂ）  の状態に初期化される。即ち、リフレッシュにおけるライト動作では、物理アドレス０，１，２，３に対応する冗長部に、それぞれ、カウント値“１”，“２”，“３”，“４”がライトされる。
【０１９１】
なお、本例では、上述のリフレッシュ条件（Ｎｍａｘ−Ｎｍｉｎ≧３２）を満たしたときに、カウント値が最小値Ｎｍｉｎである物理アドレスについてのみ、リフレッシュを行うようにしてもよい。この場合、リフレッシュ動作後には、リフレッシュの対象となった物理アドレスのカウント値のみを更新し、他のカウント値を初期化することなく、そのまま継続してカウントする。
【０１９２】
例えば、図７の例の場合には、（ｇ）  において、物理アドレスＬＡ３のみについてリフレッシュを行い、このリフレッシュ動作によって、物理アドレスＬＡ３のカウント値を“６６”（＝６５＋１）に設定してもよい。物理アドレスＬＡ０，ＬＡ１，ＬＡ２のデータは、リフレッシュされないため、そのカウント値については、現状を維持させる。
【０１９３】
▲２▼  リフレッシュ動作の方法
リフレッシュ動作は、メモリセルのデータが電圧ストレスによる閾値変動により破壊される前に、そのメモリセルのデータをリフレッシュするという目的が達成できれば、どのような方法を用いてもよい。例えば、リフレッシュ動作の方法としては、実施例１で説明した例１及び例２を、そのまま使用できるため、その詳細な説明については、省略する。
【０１９４】
但し、本例では、上述したように、リフレッシュ動作は、ブロック内の全ての物理アドレスについて行ってもよく、また、ブロック内の物理アドレスのうち、カウント値が最小値Ｎｍｉｎである物理アドレスのみについて行ってもよい。
【０１９５】
▲３▼  リフレッシュ動作のタイミング
リフレッシュ動作を実施するタイミングは、特に、限定されない。
【０１９６】
例えば、許容値が“３２”の場合、ブロック内の物理アドレスのカウント値の最大値Ｎｍａｘと最小値Ｎｍｉｎとの差が“３２”に達したなら、データ書き換え動作を終えた後、直ちに、リフレッシュ動作を実行してもよい。また、データ書き換え動作を終えた後の適当な時期、例えば、ホストからのアクセスが途絶えた後に、リフレッシュ動作を実行してもよい。
【０１９７】
実施の形態２に基づく実施例の場合には、最大値Ｎｍａｘと最小値Ｎｍｉｎとの差が“３２”に達したときのデータ書き換え動作をリフレッシュ動作の中で行っている。このため、リフレッシュ動作は、ブロック内の物理アドレスのカウント値の最大値Ｎｍａｘと最小値Ｎｍｉｎとの差が“３２”に達したら、直ちに実行される。
【０１９８】
▲４▼  その他
本例では、カウント値は、０，１，２，・・・という具合に、“０”から始まり、ブロック内におけるデータ書き換え回数に応じて“１”ずつ増えていくが、本発明の例は、このような数え方に限定されるものではない。
【０１９９】
例えば、実施例１と同様に、初期値は、“０”以外の数値、例えば、“２”であってもよいし、増加分は、“１”ではなく、他の数値、例えば、“２”であってもよい。
【０２００】
本例では、最大値Ｎｍａｘ−最小値Ｎｍｉｎがリフレッシュ条件を満たさないと、カウント値は、限度なく、増加していく。しかし、カウント値を記憶するための冗長部のビット数には、限りがある。
【０２０１】
そこで、例えば、カウント値が、それを記憶するための冗長部のビット数により決まる上限値に到達したときは、上述のリフレッシュ条件にかかわらず、ブロック内の全ての物理アドレスについてリフレッシュを行い、かつ、全ての物理アドレスのカウント値を初期化してもよい。
【０２０２】
カウント値の増加分は、等差数列的でなくてもよい。実施例１で説明したように、例えば、メモリセルアレイの冗長部のうち、４バイト、即ち、３２ビット分を、カウント値を記憶する領域として使用し、データ書き換え回数については、これら３２ビットのうち、“１”状態にあるビットの数により判断してもよい。また、例えば、データ書き換え回数については、これら３２ビットのうち、“１”状態にあるビットの位置により判断してもよい。
【０２０３】
また、カウント値は、データ更新回数に応じて増加させるのではなく、減少させるようにしてもよい。例えば、カウント値の初期値を、カウント値を記憶するための冗長部のビット数により決まる上限値として、データ更新回数に応じて、この数を、１ずつ、減らしていってもよい。
【０２０４】
７．  実施の形態３
以下、実施の形態３について説明する。
【０２０５】
実施の形態３は、データ更新中における電源の遮断（メモリカードで言えば、本体からの不意の抜き取りなどを含む）に対応できるシステムに関する。
【０２０６】
データ更新（データ書き換え）の方法としては、実施の形態１，２に関わる実施例１，２，３で説明したように、例えば、ａ．  フラッシュメモリのブロック内の全ての物理アドレスのカウント値をコントローラ内の揮発性メモリ（ＲＡＭなど）に転送し、この後、ｂ．  データ更新の対象となる物理アドレスの古いデータ及び古いカウント値をイレーズし、この後、ｃ．  新しいデータをデータ更新の対象となる物理アドレスに、新しいカウント値を冗長部に、それぞれ再書き込みする、という方法が採用される。
【０２０７】
この場合、ｂ．のステップからｃ．のステップまでの間に電源の遮断が発生すると、データ更新の対象となる物理アドレスに関しては、古いデータ、新しいデータ、古いカウント値及び新しいカウント値の全てが消失してしまう。
【０２０８】
後述するが、本発明の例は、パソコンなどのファイル更新に適用される場合、比較的小さい容量で、かつ、高頻度でデータ更新が行われるＦＡＴ（Ｆｉｌｅ  Ａｌｌｏｃａｔｉｏｎ  Ｔａｂｌｅ）情報の更新に対して有効になるものと思われる。しかし、本発明の例を適用したことにより、電源の遮断などに起因してデータが失われてしまうと、パソコンなどのシステムは、致命的な損傷を受けることになる。
【０２０９】
実施の形態３は、このような電源の遮断などにも対応できるように、実施の形態１を改良した改良例である。
【０２１０】
なお、以下の実施の形態３は、主として、データ更新方法についての説明となるが、リフレッシュ方法に適用することもできる。即ち、実施の形態３によれば、同様の原理により、リフレッシュ動作時の電源の遮断などに対応することができる。
【０２１１】
リフレッシュ動作の定義や意味などについては、実施の形態１と同じであるため、ここでは、省略する。
【０２１２】
図２は、本発明の実施の形態３に関わるシステムを示している。図８は、本発明の実施の形態３に関わるシステムの動作の主要部を示している。
【０２１３】
メモリ１０及びコントローラ１１については、既に、上述の実施の形態１で説明したため、ここでは、省略する。
【０２１４】
実施の形態３では、前提条件として、２つのメモリ領域（不揮発）をペアで使用する。各々のメモリ領域は、１つ以上のページを有する。また、２つのメモリ領域は、同じ数のページを有する。
【０２１５】
２つのメモリ領域は、共に、メモリ１０の１つのブロック内に配置されていてもよい。また、２つのメモリ領域は、それぞれメモリ１０の異なるブロック内に配置されていてもよい。さらに、２つのメモリ領域は、それぞれ異なるメモリ内に配置されていてもよい。
【０２１６】
まず、メモリ１０は、コントローラ１１からの書き換え信号を受けると、データ書き換えを行うページを含む２つのメモリ領域内の全ページのデータ及びカウント値のリードを実行する（ステップＳＴ１〜ＳＴ２）。
【０２１７】
コントローラ１１は、データ書き換えを実行するページに対して、カウント値の更新を行う。ここで、実施の形態３が実施の形態１と異なる点は、この後、直ちに、データライトを実行し、その後に、データイレーズを実行する点にある（ステップＳＴ３〜ＳＴ４）。
【０２１８】
１つのメモリ領域内のページに対してデータ書き換えを実行する場合、データライトは、その１つのメモリ領域とペアとなっている他の１つのメモリ領域内のページに対して実行される。データライトでは、新たなデータがデータ領域に記憶されると共に、新たなカウント値が冗長部に記憶される。
【０２１９】
データライトの後に、データイレーズが行われる。
データイレーズは、１つのメモリ領域内のページに対して実行される。データイレーズは、ページ単位でイレーズを実行するページイレーズでもよいし、ブロック単位又はチップ単位でイレーズを実行するブロックイレーズ又はチップイレーズでもよい。
【０２２０】
次に、コントローラ１１は、２つのメモリ領域内の各ページのカウント値に基づいて、データ書き換え回数が最大値（許容値）に達したか否かを判断する（ステップＳＴ５）。
【０２２１】
データ書き換え回数が最大値（許容値）に達していない場合には、本発明に関わる動作としては、特に、何も行わない。即ち、メモリ１０は、コントローラ１１のコントロールの下で、通常の動作を行う。
【０２２２】
データ書き換え回数が最大値（許容値）に達している場合には、コントローラ１１は、メモリ１０に対して、リフレッシュ動作を行う命令を出す。リフレッシュ動作を行ったら、原則として、２つのメモリ領域内の各ページのデータ書き換え回数（カウント値）を初期化する。但し、カウント方法によっては、データ書き換え回数を初期化しなくてもよい場合がある（ステップＳＴ６）。
【０２２３】
このように、実施の形態３では、２つのメモリ領域をペアで使用し、常に、新しいデータ及び新しいカウント値を２つのメモリ領域の一方にライトした後に、２つのメモリ領域の他方に記憶された古いデータ及び古いカウント値をイレーズするようにしている。このため、データ書き換え動作の最中に、電源の遮断などが発生しても、少なくとも、２つのメモリ領域のいずれか一方には、データ及びカウント値が保存されているため、システムとして致命的な損傷を受けることはない。
【０２２４】
８．  実施の形態４
以下、実施の形態４について説明する。この実施の形態は、実施の形態３の変形例である。リフレッシュ動作の定義や意味などについては、実施の形態１と同じであるため、ここでは、省略する。
【０２２５】
実施の形態３では、データ書き換え回数が所定の条件を満たしたときにリフレッシュ動作を行った。これに対し、実施の形態４では、カウント値が許容値に達する最後のデータ書き換え動作については、リフレッシュ動作の中で行うようにする。
【０２２６】
実施の形態３では、電源の不意の遮断などによるデータ消失を防止するため、２つのメモリ領域（不揮発）をペアで使用し、データ更新動作では、ライト動作を行った後にイレーズ動作を行うようにしている。しかし、リフレッシュ動作は、２つのメモリ領域に対して、同時に行うことになる。
【０２２７】
従って、実施の形態４では、カウント値が許容値に達する最後のデータ更新動作については、例えば、実施の形態２と同様の方法により、リフレッシュ動作（データ書き換え動作を含む）を実行する。
【０２２８】
但し、未使用のメモリ領域（不揮発）が存在すれば、リフレッシュ時に、その未使用のメモリ領域に、新しいデータ及び新しいカウント値をライトした後、２つのメモリ領域のデータ及びカウント値をイレーズしてもよい。
【０２２９】
図２は、本発明の実施の形態４に関わるシステムを示している。図９は、本発明の実施の形態４に関わるシステムの動作の主要部を示している。
【０２３０】
メモリ１０及びコントローラ１１については、既に、上述の実施の形態１で説明したため、ここでは、省略する。
【０２３１】
まず、メモリ１０は、コントローラ１１からの書き換え信号を受けると、データ書き換えを行うページを含む選択されたブロック内の全ページのデータ及びカウント値のリードを実行する（ステップＳＴ１〜ＳＴ２）。コントローラ１１は、選択されたブロック内の全ページのうち、データ書き換えを実行するページに対して、データ書き換え回数の更新を行う（ステップＳＴ２）。
【０２３２】
次に、コントローラ１１は、選択されたブロック内の各ページのカウント値に基づいて、データ書き換え回数が最大値（許容値）に達したか否かを判断する（ステップＳＴ３）。
【０２３３】
データ書き換え回数が最大値（許容値）に達していない場合には、データライト及びデータイレーズを実行する（ステップＳＴ４〜ＳＴ５）。
【０２３４】
１つのメモリ領域内のページに対してデータ書き換えを実行する場合、データライトは、その１つのメモリ領域とペアとなっている他の１つのメモリ領域内のページに対して実行される。データライトでは、新たなデータがデータ領域に記憶されると共に、新たなカウント値が冗長部に記憶される。
【０２３５】
データライトの後に、データイレーズが行われる。
データイレーズは、１つのメモリ領域内のページに対して実行される。データイレーズは、ページ単位でイレーズを実行するページイレーズでもよいし、ブロック単位又はチップ単位でイレーズを実行するブロックイレーズ又はチップイレーズでもよい。
【０２３６】
データ書き換え回数が最大値（許容値）に達している場合には、コントローラ１１は、メモリ１０に対して、リフレッシュ動作を行う命令を出す（ステップＳＴ６）。従って、ペアとなっている２つのメモリ領域内のデータがリフレッシュされると共に、データ書き換えの対象となるページについては、データ書き換えが実行される。
【０２３７】
リフレッシュ動作を行ったら、原則として、２つのメモリ領域内の各ページのデータ書き換え回数（カウント値）を初期化する。但し、カウント方法によっては、データ書き換え回数を初期化しなくてもよい場合がある。
【０２３８】
９．  実施の形態３，４に関する実施例
以下、実施の形態３，４に関する実施例について説明する。
【０２３９】
（１）    実施例１
▲１▼  データ更新方法
図１０は、本発明の実施例１に関わるデータ更新方法を示している。
【０２４０】
なお、本例では、カウント方法として、実施の形態１，２に関する実施例２の方法が適用される。
【０２４１】
本例においては、１つのブロックは、４つの物理アドレスを有しているが、その１つのブロック内には、その半分、即ち、２つの物理アドレス（２ページ）分のデータのみを格納する。この点において、本例は、１つのブロック内の４つの物理アドレスに、４つの物理アドレス（４ページ）分のデータを格納する実施の形態１，２に関する実施例１，２，３とは異なる。
【０２４２】
物理アドレス０，１が１つのメモリ領域を構成し、物理アドレス２，３が他の１つのメモリ領域を構成する。これら２つのメモリ領域は、データ更新動作に関して、ペアを構成する。
【０２４３】
（ａ）    初期状態
ブロック内の全ての物理アドレス（ページ）０，１，２，３内のメモリセルは、イレーズ状態にある。
【０２４４】
（ｂ）    ライト
まず、物理アドレス０にデータＬＡ０がライトされ、物理アドレス１にデータＬＡ１がライトされる。物理アドレス０に対するデータＬＡ０のライト時には、物理アドレス０のカウント値、即ち、データ書き換え回数として、“１”がライトされる。また、物理アドレス１に対するデータＬＡ１のライト時には、ブロック全体としてみると、２回目のデータ書き換えであるため、物理アドレス１のカウント値、即ち、データ書き換え回数としては、“２”がライトされる。
【０２４５】
（ｂ）  及び（ｃ）    物理アドレス０のデータ書き換え
コントローラ１１は、メモリ１０に対して、物理アドレス０のデータ更新要求を出力する（図２参照）。
【０２４６】
まず、ブロック内の全ての物理アドレス０，１，２，３のカウント値がリードされる。図２のコントローラ１１は、物理アドレス０，１，２，３のカウント値のうちから最大値Ｎｍａｘを選択する。なお、Ｅ（イレーズ状態）で示されるカウント値は、“０”に相当する。この時点では、物理アドレス１のカウント値“２”が最も大きな値を有する。図２のコントローラ１１は、物理アドレス１のカウント値“２”に“１”を加算し、カウント値“３”を、物理アドレス２のカウント値とする。物理アドレス０，１，２，３のカウント値は、例えば、図２のコントローラ１１内のメモリ（ＲＡＭなど）に一時的に記憶される。
【０２４７】
この後、物理アドレス２に対して、更新データＬＡ０及びカウント値（＝“３”）がライトされる（（ｃ）参照）。そして、この後、物理アドレス０に記憶されたデータＬＡ０及びカウント値のイレーズが実行される（（ｃ）参照）。このように、更新データＬＡ０及びカウント値をライトした後に、古いデータＬＡ０及びカウント値をイレーズしているため、不意の電源遮断にも、十分に対応することができる。
【０２４８】
また、図２のコントローラ１１は、物理アドレス０，１，２，３のカウント値のうちの最大値Ｎｍａｘが、許容値、“３２”に達しているか否かを判断する。この時点では、物理アドレス２のカウント値“３”が最も大きいが、その値は、許容値、“３２”に達していない。
【０２４９】
従って、この時点では、リフレッシュ動作は、行われない。
【０２５０】
（ｃ）  及び（ｄ）    物理アドレス１のデータ書き換え
コントローラ１１は、メモリ１０に対して、物理アドレス１のデータ更新要求を出力する（図２参照）。
【０２５１】
まず、ブロック内の全ての物理アドレス０，１，２，３のカウント値がリードされる。図２のコントローラ１１は、物理アドレス０，１，２，３のカウント値のうちから最大値Ｎｍａｘを選択する。この時点では、物理アドレス２のカウント値“３”が最も大きな値を有する。図２のコントローラ１１は、物理アドレス２のカウント値“３”に“１”を加算し、カウント値“４”を、物理アドレス３のカウント値とする。物理アドレス０，１，２，３のカウント値は、例えば、図２のコントローラ１１内のメモリ（ＲＡＭなど）に一時的に記憶される。
【０２５２】
この後、物理アドレス３に対して、更新データＬＡ１及びカウント値（＝“４”）がライトされる（（ｄ）参照）。そして、この後、物理アドレス１に記憶されたデータＬＡ１及びカウント値のイレーズが実行される（（ｄ）参照）。
【０２５３】
また、図２のコントローラ１１は、物理アドレス０，１，２，３のカウント値のうちの最大値Ｎｍａｘが、許容値、“３２”に達しているか否かを判断する。この時点では、物理アドレス３のカウント値“４”が最も大きいが、その値は、許容値、“３２”に達していない。
【０２５４】
従って、この時点では、リフレッシュ動作は、行われない。
【０２５５】
（ｄ）  及び（ｅ）    物理アドレス２のデータ書き換え
コントローラ１１は、メモリ１０に対して、物理アドレス０のデータ更新要求を出力する（図２参照）。
【０２５６】
まず、ブロック内の全ての物理アドレス０，１，２，３のカウント値がリードされる。図２のコントローラ１１は、物理アドレス０，１，２，３のカウント値のうちから最大値Ｎｍａｘを選択する。この時点では、物理アドレス３のカウント値“４”が最も大きな値を有する。図２のコントローラ１１は、物理アドレス３のカウント値“４”に“１”を加算し、カウント値“５”を、物理アドレス０のカウント値とする。物理アドレス０，１，２，３のカウント値は、例えば、図２のコントローラ１１内のメモリ（ＲＡＭなど）に一時的に記憶される。
【０２５７】
この後、物理アドレス０に対して、更新データＬＡ０及びカウント値（＝“５”）がライトされる（（ｅ）参照）。そして、この後、物理アドレス２に記憶されたデータＬＡ０及びカウント値のイレーズが実行される（（ｅ）参照）。
【０２５８】
また、図２のコントローラ１１は、物理アドレス０，１，２，３のカウント値のうちの最大値Ｎｍａｘが、許容値、“３２”に達しているか否かを判断する。この時点では、物理アドレス０のカウント値“５”が最も大きいが、その値は、許容値、“３２”に達していない。
【０２５９】
従って、この時点では、リフレッシュ動作は、行われない。
【０２６０】
（ｅ）  及び（ｆ）    物理アドレス３のデータ書き換え
コントローラ１１は、メモリ１０に対して、物理アドレス３のデータ更新要求を出力する（図２参照）。
【０２６１】
まず、ブロック内の全ての物理アドレス０，１，２，３のカウント値がリードされる。図２のコントローラ１１は、物理アドレス０，１，２，３のカウント値のうちから最大値Ｎｍａｘを選択する。この時点では、物理アドレス０のカウント値“５”が最も大きな値を有する。図２のコントローラ１１は、物理アドレス０のカウント値“５”に“１”を加算し、カウント値“６”を、物理アドレス１のカウント値とする。物理アドレス０，１，２，３のカウント値は、例えば、図２のコントローラ１１内のメモリ（ＲＡＭなど）に一時的に記憶される。
【０２６２】
この後、物理アドレス１に対して、更新データＬＡ１及びカウント値（＝“６”）がライトされる（（ｆ）参照）。そして、この後、物理アドレス３に記憶されたデータＬＡ１及びカウント値のイレーズが実行される（（ｆ）参照）。
【０２６３】
また、図２のコントローラ１１は、物理アドレス０，１，２，３のカウント値のうちの最大値Ｎｍａｘが、許容値、“３２”に達しているか否かを判断する。この時点では、物理アドレス１のカウント値“６”が最も大きいが、その値は、許容値、“３２”に達していない。
【０２６４】
従って、この時点では、リフレッシュ動作は、行われない。
【０２６５】
（ｇ）    リフレッシュ
データ更新要求に従い、上述の動作が繰り返し実行され、最終的に、物理アドレス０，１，２，３のカウント値が、（ｇ）  に示すようになったとする。
【０２６６】
図２のコントローラ１１は、物理アドレス０，１，２，３のカウント値の最大値Ｎｍａｘが“３２”であることを確認すると、リフレッシュ動作を行う命令を、図２のメモリ１０に与える。
【０２６７】
なお、リフレッシュ動作については、実施の形態１，２に関する実施例１，２，３と同じ方法を採用することができる。但し、本例では、上述のデータ更新方法をリフレッシュ方法にも適用できる。
【０２６８】
例えば、物理アドレス０，１，２，３のカウント値が、（ｇ）  に示すような状態にあるものとする。まず、コントローラ１１は、ブロック内の物理アドレス０，１のデータ及びカウント値をリードする。
【０２６９】
この後、物理アドレス２に対して、データＬＡ０及びカウント値（＝“１”）をライトし、物理アドレス３に対して、データＬＡ１及びカウント値（＝“２”）をライトする。そして、この後、物理アドレス０，１に記憶されたデータＬＡ０、ＬＡ１及びカウント値をイレーズする。
【０２７０】
以上より、リフレッシュ動作は、終了する。
【０２７１】
このように、実施例１においては、常に、新しいデータをフラッシュメモリにライトしてから、古いデータをイレーズしている。従って、新しいデータをフラッシュメモリにライトしている段階で、電源の遮断などが発生したとしても、最低限、データ更新直前の状態は保存されているため、システムにおける致命的な損傷は回避される。
【０２７２】
実施例１は、ブロック容量に比較して、十分に少ない容量の論理データの書き換えを行う場合に有効である。このような場合に、１つのブロック内に、本実施例におけるペアを構成する２つのメモリ領域を配置できるからである。
【０２７３】
▲２▼  リフレッシュ動作の方法
上述のように、リフレッシュ動作の方法としては、実施の形態１，２に関する実施例１で説明した例１及び例２を、そのまま使用できる他、本実施例におけるデータ更新方法を適用することもできる。
【０２７４】
▲３▼  リフレッシュ動作のタイミング
リフレッシュ動作を実施するタイミングは、特に、限定されない。
【０２７５】
例えば、許容値が“３２”の場合、ブロック内の物理アドレスのカウント値の最大値Ｎｍａｘが３２回に達し、かつ、３２回目の書き換え動作を終えたなら、その後、直ちに、リフレッシュ動作を実行してもよい。また、３２回目の書き換え動作を終えた後の適当な時期、例えば、ホストからのアクセスが途絶えた後に、リフレッシュ動作を実行してもよい。
【０２７６】
なお、実施の形態４に基づく実施例の場合には、３２回目のデータ書き換え動作をリフレッシュ動作の中で行っている。このため、リフレッシュ動作は、ブロック内の物理アドレスのカウント値の最大値Ｎｍａｘが３２回に達した後、３２回目の書き換え動作と共に、直ちに、実行される。
【０２７７】
▲４▼  その他
本例では、カウント値は、０，１，２，・・・という具合に、“０”から始まり、ブロック内におけるデータ書き換え回数に応じて“１”ずつ増えていくが、本発明の例は、このような数え方に限定されるものではない。
【０２７８】
例えば、実施の形態１，２に関する実施例１と同様に、初期値は、“０”以外の数値、例えば、“２”であってもよいし、増加分は、“１”ではなく、他の数値、例えば、“２”であってもよい。この場合、ブロック内のデータ書き換え回数の許容値も、当然に変わる。
【０２７９】
本例では、カウント値は、“３２”よりも大きくなることはないため、メモリセルアレイの冗長部としては、“３２”までの数をカウントできるだけのビット数を確保しておけば、足りる。つまり、メモリセルアレイの冗長部のうちの５ビットを、カウント値を記憶するための領域として使用すればよい。
【０２８０】
また、カウント値の増加分は、等差数列的でなくてもよい。実施例１で説明したように、例えば、メモリセルアレイの冗長部のうち、４バイト、即ち、３２ビット分を、カウント値を記憶する領域として使用し、データ書き換え回数については、これら３２ビットのうち、“１”状態にあるビットの数により判断してもよい。また、例えば、データ書き換え回数については、これら３２ビットのうち、“１”状態にあるビットの位置により判断してもよい。
【０２８１】
また、カウント値は、データ更新回数に応じて増加させるのではなく、減少させるようにしてもよい。例えば、カウント値の初期値を“３２”として、データ更新回数に応じて、この数を、１ずつ、減らしていってもよい。
【０２８２】
（２）    実施例２
図１１は、本発明の実施例２に関わるデータ更新方法を示している。
【０２８３】
本例では、カウント方法としては、実施の形態１，２に関する実施例１の方法を使用するが、その他のカウント方法、例えば、実施の形態１，２に関する実施例２，３の方法などを使用することもできる。
【０２８４】
本例においては、異なる２つのブロックＡ，Ｂをペアとして使用する。これら２つのブロックＡ，Ｂは、１つのＮＡＮＤ型フラッシュメモリ内に配置されていてもよいし、異なるＮＡＮＤ型フラッシュメモリ内に配置されていてもよい。各ブロックＡ，Ｂは、４つの物理アドレスを有している。
【０２８５】
本例では、特定の物理アドレスに対して複数回のデータ書き換えを行う場合に、２つのブロックＡ，Ｂに対して、１回ごとに、交互にデータをライトし、古いデータについては、ライト動作の後に、その都度、イレーズする。また、カウント値については、奇数回目のライト時に更新する。例えば、ブロックＡ側からライトを始める場合には、ブロックＡに対するライト時のみに、カウント値の更新を行い、ブロックＢに対するライト時には、カウント値の更新を行わない。
【０２８６】
（ａ）    初期状態
ブロックＡの物理アドレス０にデータＬＡ０がライトされ、ブロックＡの物理アドレス１にデータＬＡ１がライトされている。物理アドレス０，１のカウント値、即ち、データ書き換え回数は、共に、“１”である。ブロックＡの物理アドレス２，３及びそのカウント値は、イレーズ状態にあり、ブロックＢの物理アドレス０，１，２，３及びそのカウント値は、イレーズ状態にある。
【０２８７】
（ｂ）−１    物理アドレス０のデータ書き換え
コントローラ１１は、メモリ１０に対して、物理アドレス０のデータ更新要求を出力する（図２参照）。
【０２８８】
まず、ブロックＡ，Ｂ内の物理アドレス０のカウント値がリードされる。ブロックＡ内の物理アドレス０のカウント値は、“１”であり、ブロックＢ内の物理アドレス０のカウント値は、“０”である。このため、この後、ブロックＢ内の物理アドレス０に対して、更新データＬＡ０及びカウント値（＝“１”）がライトされる。
【０２８９】
ここで、ブロックＢに対するライト時には、カウント値の更新は、行われない。即ち、ブロックＡ内の物理アドレス０のカウント値が、そのままブロックＢ内の物理アドレス０のカウント値としてライトされる。
【０２９０】
この後、ブロックＡ内の物理アドレス０に記憶されたデータＬＡ０及びカウント値がイレーズされる。このように、本例では、更新データＬＡ０及びカウント値をライトした後に、古いデータＬＡ０及びカウント値をイレーズしているため、不意の電源遮断にも、十分に対応することができる。
【０２９１】
また、図２のコントローラ１１は、ブロックＡ内の物理アドレス０，１，２，３のカウント値及びブロックＢ内の物理アドレス０，１，２，３のカウント値の合計値が、許容値、“３２”に達しているか否かを判断する。この時点では、これらカウント値の合計値は、“２”であり、許容値、“３２”に達していない。
【０２９２】
従って、この時点では、リフレッシュ動作は、行われない。
【０２９３】
（ｂ）−２    物理アドレス１のデータ書き換え
コントローラ１１は、メモリ１０に対して、物理アドレス１のデータ更新要求を出力する（図２参照）。
【０２９４】
まず、ブロックＡ，Ｂ内の物理アドレス１のカウント値がリードされる。ブロックＡ内の物理アドレス１のカウント値は、“１”であり、ブロックＢ内の物理アドレス１のカウント値は、“０”である。このため、この後、ブロックＢ内の物理アドレス１に対して、更新データＬＡ１及びカウント値（＝“１”）がライトされる。ここで、ブロックＢに対するライト時には、カウント値の更新は、行われない。この後、ブロックＡ内の物理アドレス１に記憶されたデータＬＡ１及びカウント値がイレーズされる。
【０２９５】
また、図２のコントローラ１１は、ブロックＡ内の物理アドレス０，１，２，３のカウント値及びブロックＢ内の物理アドレス０，１，２，３のカウント値の合計値が、許容値、“３２”に達しているか否かを判断する。この時点では、これらカウント値の合計値は、“２”であり、許容値、“３２”に達していない。
【０２９６】
従って、この時点では、リフレッシュ動作は、行われない。
【０２９７】
（ｂ）−３    物理アドレス２のデータ書き換え
コントローラ１１は、メモリ１０に対して、物理アドレス２のデータ更新要求を出力する（図２参照）。
【０２９８】
まず、ブロックＡ，Ｂ内の物理アドレス２のカウント値がリードされる。ブロックＡ内の物理アドレス２のカウント値は、“０”であり、ブロックＢ内の物理アドレス０のカウント値も、“０”である。双方が“０”の場合には、ブロックＡ内の物理アドレス２に対して、更新データＬＡ２及びカウント値（＝“１”）がライトされる。
【０２９９】
また、図２のコントローラ１１は、ブロックＡ内の物理アドレス０，１，２，３のカウント値及びブロックＢ内の物理アドレス０，１，２，３のカウント値の合計値が、許容値、“３２”に達しているか否かを判断する。この時点では、これらカウント値の合計値は、“３”であり、許容値、“３２”に達していない。
【０３００】
従って、この時点では、リフレッシュ動作は、行われない。
【０３０１】
（ｃ）−１    物理アドレス０のデータ書き換え
コントローラ１１は、メモリ１０に対して、物理アドレス０のデータ更新要求を出力する（図２参照）。
【０３０２】
まず、ブロックＡ，Ｂ内の物理アドレス０のカウント値がリードされる。ブロックＡ内の物理アドレス０のカウント値は、“０”であり、ブロックＢ内の物理アドレス０のカウント値は、“１”である。このため、この後、ブロックＡ内の物理アドレス０に対して、更新データＬＡ０及びカウント値（＝“２”）がライトされる。ここで、ブロックＡに対するライト時には、カウント値の更新（本例では、＋１）が行われる。
【０３０３】
このように制御すると、カウント値は、ブロックＡ内の物理アドレスｉに対する書き換え回数、又は、ブロックＢ内の物理アドレスｉに対する書き換え回数を表していることになる。つまり、データは、ブロックＡ，Ｂのうちのいずれか一方に記憶され、かつ、そのときのカウント値は、ブロックＡ，Ｂ内の物理アドレスｉに対するデータ書き換え回数を表している。
【０３０４】
この後、ブロックＢ内の物理アドレス０に記憶されたデータＬＡ０及びカウント値がイレーズされる。
【０３０５】
また、図２のコントローラ１１は、ブロックＡ内の物理アドレス０，１，２，３のカウント値及びブロックＢ内の物理アドレス０，１，２，３のカウント値の合計値が、許容値、“３２”に達しているか否かを判断する。この時点では、これらカウント値の合計値は、“４”であり、許容値、“３２”に達していない。
【０３０６】
従って、この時点では、リフレッシュ動作は、行われない。
【０３０７】
（ｃ）−２    物理アドレス２のデータ書き換え
コントローラ１１は、メモリ１０に対して、物理アドレス２のデータ更新要求を出力する（図２参照）。
【０３０８】
まず、ブロックＡ，Ｂ内の物理アドレス２のカウント値がリードされる。ブロックＡ内の物理アドレス２のカウント値は、“１”であり、ブロックＢ内の物理アドレス０のカウント値は、“０”である。従って、ブロックＢ内の物理アドレス２に対して、更新データＬＡ２及びカウント値（＝“１”）がライトされる。
【０３０９】
また、図２のコントローラ１１は、ブロックＡ内の物理アドレス０，１，２，３のカウント値及びブロックＢ内の物理アドレス０，１，２，３のカウント値の合計値が、許容値、“３２”に達しているか否かを判断する。この時点では、これらカウント値の合計値は、“４”であり、許容値、“３２”に達していない。
【０３１０】
従って、この時点では、リフレッシュ動作は、行われない。
【０３１１】
（ｄ）    リフレッシュ
データ更新要求に従い、上述の動作が繰り返し実行され、最終的に、物理アドレス０，１，２，３のカウント値が、（ｄ）  に示すようになったとする。
【０３１２】
データ書き換え回数は以下の通りである。ブロックＡでは、物理アドレス０は、８回、物理アドレス１は、１１回、物理アドレス２は、２回、物理アドレス３は、１１回である。物理アドレス２，３については、そのカウント値は、ブロックＢ内の物理アドレス２，３のカウント値に等しくなる。
【０３１３】
ブロックＢでは、物理アドレス０は、７回、物理アドレス１は、１０回、物理アドレス２は、２回、物理アドレス３は、１１回である。物理アドレス０，１については、そのカウント値は、ブロックＡ内の物理アドレス０，１のカウント値からカウント値の増加分（本例では、“１”）を差し引いた値に等しくなる。
【０３１４】
ブロックＡでは、データ書き換え動作が合計３２回行われているため、この後、ブロックＡ，Ｂの双方について、リフレッシュ動作が実行される。
【０３１５】
例えば、ブロックＢ内に、全ての物理アドレス０，１，２，３のデータを集めた後、ブロックＡ内の全ての物理アドレス０，１，２，３のデータをイレーズし、その後、全ての物理アドレス０，１，２，３のデータをブロックＢからブロックＡに集めた後、ブロックＢ内の全ての物理アドレス０，１，２，３のデータをイレーズするようにすれば、簡単に、リフレッシュを行うことができる。
【０３１６】
また、全ての物理アドレス０，１，２，３のデータを、システム内のバッファに転送した後、ブロックＡ，Ｂ内の全ての物理アドレス０，１，２，３のデータについてイレーズを実行し、その後、全ての物理アドレス０，１，２，３のデータを、システム内のバッファからブロックＡに戻してもよい。バッファの代わりに、フラッシュメモリ内の別ブロックを使用してもよい。
【０３１７】
本例では、このように、２個のブロックＡ，Ｂをペアとして使用し、データ更新を続ける。ブロックＡとブロックＢは、同一のフラッシュメモリチップ内に存在してもよいし、異なるフラッシュメモリチップ内に存在してもよい。システム（例えば、フラッシュメモリカード）内に、複数のフラッシュメモリチップが存在する場合は、ブロックＡ，Ｂを、システム内の異なるフラッシュメモリチップに割り振ってもよい。この場合、ブロックＢに対するライト動作中に、ブロックＡに対するページイレーズを行うなど、システムの性能向上に貢献できる。
【０３１８】
（３）    実施例３
図１２は、本発明の実施例３に関わるデータ更新方法を示している。
【０３１９】
本例では、例えば、ＮＡＮＤ型フラッシュメモリの別ブロックを、バッファのように使用する。ここでは、データ更新を行うブロックをブロックＡと称し、データ更新の際に、一時記憶のためのデータバッファとして使用するブロックを、バッファブロックと称する。
【０３２０】
（ａ）    初期状態
物理アドレス０には、データＬＡ０が格納されている。物理アドレス０に対するデータ書き換え回数、即ち、カウント値は、“０”に設定されている。
【０３２１】
（ｂ）  乃至（ｄ）    物理アドレス０のデータ書き換え
コントローラ１１は、メモリ１０に対して、物理アドレス０のデータ更新要求を出力する（図２参照）。
【０３２２】
まず、ブロックＡ内の全ての物理アドレス０，１，２，３のカウント値がリードされる。また、データ書き換えの対象となる物理アドレス０のカウント値“１”及び更新データＬＡ０が、バッファブロックにライトされる（（ｂ）参照）。
【０３２３】
この後、ブロックＡ内の物理アドレス０の古いデータＬＡ０及びカウント値がイレーズされる（（ｃ）参照）。
【０３２４】
また、図２コントローラ１１において、物理アドレス０のカウント値が更新される。例えば、物理アドレス０のカウント値“１”に、カウント値の増加分、本例では、“１”が加算される。その結果、物理アドレス０のカウント値は、“２”となる。そして、カウント値“２”及び更新データＬＡ０は、ブロックＡ内の物理アドレス０にライトされる（（ｄ）参照）。
【０３２５】
この後、バッファブロック内の物理アドレス０の更新データＬＡ０及びカウント値がイレーズされる（（ｄ）参照）。
【０３２６】
このような動作が繰り返され、ブロックＡ内の物理アドレス０，１，２，３のカウント値がリフレッシュ条件を満たしたときは、リフレッシュ動作が実行される。本例によれば、更新データ及びカウント値は、常に、少なくとも、ブロックＡ及びバッファブロックのいずれかに記憶されているため、例えば、不意の電源遮断などの非常事態が発生しても、システムにおける致命的な損傷を回避することができる。
【０３２７】
１０．  その他の実施例
実施の形態１，２に関わる実施例１，２，３及び実施の形態３，４に関わる実施例１，２，３は、主として、ＦＡＴ（Ｆｉｌｅ  Ａｌｌｏｃａｔｉｏｎ  Ｔａｂｌｅ）情報の更新を念頭に考え出されたものである。以下では、ファイル本体のデータ書き換えにも対応することができる実施例について説明する。
【０３２８】
（１）    その他の実施例１
図１３は、本発明のその他の実施例１のデータ更新方法を示している。
【０３２９】
まず、ブロックの構成例としては、ページサイズを、５１２バイト（冗長部を加えると、５２８バイト）とし、ブロックサイズを、１６キロバイト（冗長部を除く）とする。１つのブロックは、３２ページから構成されるものとする。
【０３３０】
ファイルデータがＦＡＴ情報と異なる点は、次の通りである。
▲１▼  ファイルデータの更新要求が発生すると、もはや、更新前の古いデータは不要となる点、
▲２▼  ファイルデータは、ＦＡＴ情報に比較して、同一の論理アドレスに対するデータ更新の頻度が著しく小さい点、
▲３▼  仮に、電源遮断などによって、更新データや古いデータが消失してしまっても、更新データがホストシステム内部に存在していることなどから、システムに関して致命的な損傷が発生しない点。
【０３３１】
従って、ファイルデータの更新に際しては、ＦＡＴ情報の更新に比べて、制限事項が緩和されることが考えられる。
【０３３２】
実施の形態１，２に関わる実施例１，２，３及び実施の形態３，４に関わる実施例１，２，３では、１つのブロックが４ページから構成され、データ書き換え動作は、基本的に、１ページ単位で発生することを前提としている。本例は、これら既に説明した実施例の１ページを複数ページに置き換え、かつ、データ書き換え動作を複数ページまとめて行うものと考えることができる。
【０３３３】
本例では、データ更新が８ページ単位で行われることを前提とする。この８ページ（物理アドレス）を、図１３における升目１個分に相当させる。従って、図１３は、実施の形態１，２に関わる実施例１，２，３及び実施の形態３，４に関わる実施例１，２，３で使用した図面とほぼ同じとなる。
【０３３４】
（ａ）    初期状態
ブロック内の全ての物理アドレス（ページ）０〜７，８〜１５，１６〜２３，２４〜３１内のメモリセルは、イレーズ状態にある。
【０３３５】
（ｂ）    ライト
物理アドレス０〜７にデータＬＡ６４〜７１がライトされ、物理アドレス８〜１５にデータＬＡ７２〜７９（１セクタが５１２バイトとすると、８セクタ分）がライトされ、物理アドレス１６〜２３にデータＬＡ８０〜８７がライトされ、物理アドレス２４〜３１にデータＬＡ８８〜９５がライトされる。
【０３３６】
（ｃ）  及び（ｄ）    物理アドレス８〜１５のデータ書き換え
コントローラ１１は、メモリ１０に対して、物理アドレス８〜１５のデータ更新要求を出力する（図２参照）。
【０３３７】
ブロック内の物理アドレス８〜１５のデータがイレーズされる。本例では、これまでの実施例で見てきたような、ページ毎のデータ書き換え回数の管理をしていないため、カウント値のリードは、行われない。この後、物理アドレス８〜１５に対して、更新データＬＡ７２〜７９がライトされる。
【０３３８】
以上のように、本例では、ページ毎のデータ書き換え回数の管理を行っていない。その効果は、以下の通りである。
【０３３９】
例えば、物理アドレス８〜１５に対して、データ更新要求が発生したとする。この場合、従来であれば、既述にように、イレーズ状態のバッファブロックを用意し、データ更新の必要がない物理アドレス０〜７，１６〜３１のデータＬＡ６４〜ＬＡ７１，ＬＡ８０〜ＬＡ９５を、そのバッファブロックにコピーし、この後、データ書き換えの対象となるブロックについて、ブロックイレーズを実行する、という作業を行っていた。
【０３４０】
即ち、従来の方法では、データ更新に際して、更新の必要の無いデータＬＡ６４〜ＬＡ７１，ＬＡ８０〜ＬＡ９５についてのコピー作業が発生し、データ書き換え速度の低下を招いていた。
【０３４１】
これに対し、本例によれば、データ書き換えの対象となる物理アドレス８〜１５のみをページイレーズした後、その物理アドレス８〜１５に更新データＬＡ７２〜ＬＡ７９をライトすればよいため、無駄なデータコピー作業がなくなり、その分だけ、データ書き換え速度を高速化できる。
【０３４２】
ここで、ページイレーズという言葉には、ブロック内の１ページのみを対象とするイレーズの他、ブロック内の複数ページをまとめてイレーズする部分イレーズも含んでいる。また、ブロック内の複数ページをまとめてイレーズする場合には、部分イレーズで一度にイレーズしてもよいし、１ページずつ、複数回（ここでは、８回）に分けて、ページイレーズを行ってもよい。また、かかる場合に、２ページずつ、複数回（ここでは、４回）に分けてイレーズしてもよい。
【０３４３】
また、例えば、１本のビット線を複数のセンスアンプで共有するような多値フラッシュメモリの場合には、物理的にページイレーズを実行すると、外部仕様からみると、複数ページ分のデータが一括でイレーズされたことになる。このような場合でも、ブロック内の全ページをイレーズするのではなく、その一部分のみをイレーズするという観点からすれば、本例のイレーズと等価である。
【０３４４】
フラッシュメモリカードが多く使用されるデジタルカメラなどの分野においては、メモリカードの容量分だけ撮影を行い、画像をパソコンなどのシステムへ転送した後、全画像ファイルを消去する、といった使用方法が多い。このような場合には、フラッシュメモリに対するデータ書き換え回数も限られており、また、ファイル本体の領域での書き込み集中も発生しない。
【０３４５】
従って、ファイルデータの場合には、本例のように、ページ毎のデータ書き換え回数を管理しなくても、実用上、問題は発生しない。本例は、このような分野に有効である。
【０３４６】
なお、ファイルデータの更新に対しても、当然に、実施の形態１，２の実施例１，２，３及び実施の形態３，４の実施例１，２，３で示したような、データ書き換え回数の管理を行ってもよい。
【０３４７】
以下では、ファイルデータの更新に際して、データ書き換え回数の管理を行う実施例について説明する。
【０３４８】
（２）    その他の実施例２
図１４及び図１５は、本発明のその他の実施例２に関わるデータ更新方法を示している。
【０３４９】
本例のデータ更新方法及びカウント方法は、実施の形態１，２に関わる実施例３の方法（図７参照）と同じである。但し、本例では、実施の形態１，２に関わる実施例３における１ページを、１部分イレーズ消去単位（「１エリア」と称する）と置き換える。即ち、本例では、１エリアは、複数ページを含み、イレーズの最小単位となる。
【０３５０】
（ａ）    初期状態
ブロック内の全てのエリア、即ち、物理アドレス（ページ）０〜３１内のメモリセルは、イレーズ状態にある。
【０３５１】
（ｂ）    ライト
まず、物理アドレス（１エリア）０〜７にデータＬＡ６４〜ＬＡ７１（１セクタが５１２バイトとすると、８セクタ分）がライトされる。同様に、物理アドレス（１エリア）８〜１５にデータＬＡ７２〜ＬＡ７９がライトされ、物理アドレス（１エリア）１６〜２３にデータＬＡ８０〜ＬＡ８７がライトされ、物理アドレス（１エリア）２４〜３１にデータＬＡ８８〜ＬＡ９５がライトされる。
【０３５２】
物理アドレス０〜７に対するデータＬＡ６４〜ＬＡ７１のライト時には、物理アドレス０〜７のカウント値、即ち、データ書き換え回数として、“１”がライトされる。また、物理アドレス８〜１５に対するデータＬＡ７２〜ＬＡ７９のライト時には、ブロック全体としてみると、２回目のデータ書き換えであるため、物理アドレス８〜１５のカウント値、即ち、データ書き換え回数としては、“２”がライトされる。
【０３５３】
同様に、物理アドレス１６〜２３に対するデータＬＡ８０〜ＬＡ８７のライト時には、ブロック全体としてみると、３回目のデータ書き換えであるため、物理アドレス１６〜２３のカウント値、即ち、データ書き換え回数としては、“３”がライトされる。また、物理アドレス２４〜３１に対するデータＬＡ８８〜ＬＡ９５のライト時には、ブロック全体としてみると、４回目のデータ書き換えであるため、物理アドレス２４〜３１のカウント値、即ち、データ書き換え回数としては、“４”がライトされる。
【０３５４】
（ｃ）  及び（ｄ）    物理アドレス０〜７のデータ書き換え
コントローラ１１は、メモリ１０に対して、物理アドレス０〜７のデータ更新要求を出力する（図２参照）。
【０３５５】
まず、ブロック内の全ての物理アドレス０〜７，８〜１５，１６〜２３，２４〜３１のカウント値がリードされる。図２のコントローラ１１は、物理アドレス０〜７，８〜１５，１６〜２３，２４〜３１のカウント値のうちから最大値Ｎｍａｘを選択する。この時点では、物理アドレス２４〜３１のカウント値“４”が最も大きな値を有する。図２のコントローラ１１は、物理アドレス２４〜３１のカウント値“４”に“１”を加算し、カウント値“５”を、データ書き換えの対象となる物理アドレス０〜７のカウント値とする。物理アドレス０〜７，８〜１５，１６〜２３，２４〜３１のカウント値は、例えば、図２のコントローラ１１内のメモリ（ＲＡＭなど）に一時的に記憶される。
【０３５６】
この後、物理アドレス０〜７に記憶されたデータＬＡ６４〜ＬＡ７１及びカウント値のイレーズが実行される（（ｃ）参照）。続けて、物理アドレス０〜７に対して、更新データＬＡ６４〜７１及びカウント値（＝“５”）がライトされる（（ｄ）参照）。
【０３５７】
また、図２のコントローラ１１は、物理アドレス０〜７，８〜１５，１６〜２３，２４〜３１のカウント値のうちの最大値Ｎｍａｘと最小値Ｎｍｉｎを抽出する。そして、この最大値Ｎｍａｘと最小値Ｎｍｉｎとの差を計算し、この差が、データ書き換え回数の最大値（許容値）、即ち、“３２”に達しているか否かを判断する。
【０３５８】
この時点では、物理アドレス０〜７のカウント値“５”が最も大きく、物理アドレス８〜１５のカウント値“２”が最も小さい。従って、最大値Ｎｍａｘ−最小値Ｎｍｉｎは、“３”であり、この数値は、“３２”よりも小さい。
【０３５９】
従って、この時点では、リフレッシュ動作は、行われない。
【０３６０】
（ｅ）  及び（ｆ）    物理アドレス２のデータ書き換え
コントローラ１１は、メモリ１０に対して、物理アドレス１６〜２３のデータ更新要求を出力する（図２参照）。
【０３６１】
まず、ブロック内の全ての物理アドレス０〜７，８〜１５，１６〜２３，２４〜３１のカウント値がリードされる。図２のコントローラ１１は、物理アドレス０〜７，８〜１５，１６〜２３，２４〜３１のカウント値のうちから最大値Ｎｍａｘを選択する。この時点では、物理アドレス０〜７のカウント値“５”が最も大きな値を有する。図２のコントローラ１１は、物理アドレス０〜７のカウント値“５”に“１”を加算し、カウント値“６”を、データ書き換えの対象となる物理アドレス１６〜２３のカウント値とする。物理アドレス０〜７，８〜１５，１６〜２３，２４〜３１のカウント値は、例えば、図２のコントローラ１１内のメモリ（ＲＡＭなど）に一時的に記憶される。
【０３６２】
この後、物理アドレス１６〜２３に記憶されたデータＬＡ８０〜ＬＡ８７及びカウント値のイレーズが実行される（（ｅ）参照）。続けて、物理アドレス１６〜２３に対して、更新データＬＡ８０〜ＬＡ８７及びカウント値（＝“６”）がライトされる（（ｆ）参照）。
【０３６３】
また、図２のコントローラ１１は、物理アドレス０〜７，８〜１５，１６〜２３，２４〜３１のカウント値のうちの最大値Ｎｍａｘと最小値Ｎｍｉｎを抽出する。そして、この最大値Ｎｍａｘと最小値Ｎｍｉｎとの差を計算し、この差が、データ書き換え回数の最大値（許容値）、即ち、“３２”に達しているか否かを判断する。
【０３６４】
この時点では、物理アドレス１６〜２３のカウント値“６”が最も大きく、物理アドレス８〜１５のカウント値“２”が最も小さい。従って、最大値Ｎｍａｘ−最小値Ｎｍｉｎは、“４”であり、この数値は、“３２”よりも小さい。
【０３６５】
従って、この時点では、リフレッシュ動作は、行われない。
【０３６６】
（ｇ）    リフレッシュ
データ更新要求に従い、上述の（ｃ）及び（ｄ）の動作又は（ｅ）及び（ｆ）の動作と同様の動作が実行され、最終的に、物理アドレス０〜７，８〜１５，１６〜２３，２４〜３１のカウント値が、（ｇ）  に示すようになったとする。
【０３６７】
図２のコントローラ１１は、物理アドレス０〜７，８〜１５，１６〜２３，２４〜３１のカウント値から最大値Ｎｍａｘと最小値Ｎｍｉｎを抽出する。最大値Ｎｍａｘは、物理アドレス０〜７のカウント値であり、その値は、“６５”である。また、最小値Ｎｍｉｎは、物理アドレス２４〜３１のカウント値であり、その値は、“３３”である。最大値Ｎｍａｘと最小値Ｎｍｉｎとの差は、“３２”となる。
【０３６８】
つまり、物理アドレス２４〜３１のデータが最後に更新された後、物理アドレス２４〜３１は、３２（＝６５−３３）回のデータ書き換えによる電圧ストレスを受けていることになる。従って、図２のコントローラ１１は、この事実を確認すると、リフレッシュ動作を行う命令を、図２のメモリ１０に与える。
【０３６９】
本例では、ブロック内の各物理アドレス０〜７，８〜１５，１６〜２３，２４〜３１のカウント値の最大値Ｎｍａｘと最小値Ｎｍｉｎの差に基づいて、リフレッシュ動作の必要性を判断している。このため、その差が許容値未満であれば、リフレッシュ動作を行う必要がない。場合によっては、リフレッシュ動作を全く行わずに、データ書き換え動作を継続して行うことができる。
【０３７０】
また、本例では、カウント値の最大値Ｎｍａｘと最小値Ｎｍｉｎの差に基づいてリフレッシュ動作の必要性を判断しているため、リフレッシュの条件がメモリの初期状態に依存することはない。また、本例では、最悪のケースを想定して、リフレッシュの条件を設定しなくてもよい。
【０３７１】
リフレッシュ動作では、データ領域に記憶されるデータについては、再書き込みによりリフレッシュされるが、冗長部のカウント値については、リフレッシュ動作時に、例えば、（ｂ）  の状態に初期化される。即ち、図１５の（Ｂ）の（ｈ）  及び（ｉ）  に示すように、リフレッシュにおけるライト動作では、物理アドレス０〜７，８〜１５，１６〜２３，２４〜３１に対応する冗長部に、それぞれ、カウント値“１”，“２”，“３”，“４”がライトされる。
【０３７２】
なお、本例では、上述のリフレッシュ条件（Ｎｍａｘ−Ｎｍｉｎ≧３２）を満たしたときに、カウント値が最小値Ｎｍｉｎである物理アドレス２４〜３１についてのみ、リフレッシュを行うようにしてもよい。この場合、図１５の（Ａ）の（ｈ）  及び（ｉ）  に示すように、リフレッシュ動作後には、リフレッシュの対象となった物理アドレス２４〜３１のカウント値の更新のみを行い、他のカウント値を初期化することなく、そのまま継続してカウントする。
【０３７３】
例えば、図１５（Ａ）の（ｈ）  及び（ｉ）  の例では、物理アドレスＬＡ２４〜３１のリフレッシュ動作によって、物理アドレスＬＡ２４〜３１のカウント値を“６６”（＝６５＋１）に設定してもよい。物理アドレス０〜７，８〜１５，１６〜２３は、リフレッシュされないため、そのカウント値については、現状を維持させる。
【０３７４】
このように、本例では、エリアごとにデータ書き換え回数が記憶され、データ書き換え要求が発生する度に、データ書き換え回数（カウント値）の最大値Ｎｍａｘと最小値Ｎｍｉｎを抽出し、その差分をもって、リフレッシュ動作の必要性を判断している。本例の利点は、最大値と最低値の差分が許容値未満であれば、リフレッシュ動作を実行することなく、データ書き換え動作を継続して行える、という点にある。
【０３７５】
なお、エリアを構成する各ページ毎に、データ書き換え回数を管理してもよい。これは、ブロック内のエリアのサイズが、必ずしも固定である必要はなく、可変であってもよいことに起因する。例えば、エリアのサイズが固定の場合には、データ書き換え回数は、エリア単位で管理すればよいが、エリアのサイズが可変の場合には、データ書き換え回数は、エリア内のページごとに管理するのが好都合である。
【０３７６】
リフレッシュ方法については、上述した通り、様々な方法を採用することができる。例えば、リフレッシュの対象となるエリアのデータをシステム内のバッファに一時的に退避させ、その後、当該エリアのイレーズを実行し、最後に、システム内のバッファから当該エリアへ、再び、データを戻す、という方法を採用することができる。また、２つのブロックをペアで使用し、リフレッシュの対象となるエリアのデータを、別のブロックに移動させてもよい。
【０３７７】
以上、ファイル本体を念頭においた実施例について説明した。この例は、実施の形態１，２に関わる実施例３に対応しているが、当然に、例えば、実施の形態１，２に関わる実施例１，２及び実施の形態３，４に関わる実施例１，２，３に対応させることもできる。
【０３７８】
（３）    その他の実施例３
図１６及び図１７は、本発明のその他の実施例３に関わるデータ更新方法を示している。
【０３７９】
基本的なアルゴリズムは、実施の形態３，４に関わる実施例３（図１２参照）と同じである。本例では、ＮＡＮＤ型フラッシュメモリの別ブロックを、データ更新時における一時記憶のためのバッファとして使用する。ここでは、データ記憶のためのブロックをブロックＡとし、一時記憶のためのブロックをバッファブロックとする。
【０３８０】
（ａ）    初期状態
ブロックＡについては、次の通りである。
【０３８１】
物理アドレス（１エリア）０〜７には、データＬＡ６４〜ＬＡ７１（１セクタが５１２バイトとすると、８セクタ分）が格納される。同様に、物理アドレス（１エリア）８〜１５にデータＬＡ７２〜ＬＡ７９が格納され、物理アドレス（１エリア）１６〜２３にデータＬＡ８０〜ＬＡ８７が格納され、物理アドレス（１エリア）２４〜３１にデータＬＡ８８〜ＬＡ９５が格納される。
【０３８２】
物理アドレス０〜７のカウント値、即ち、データ書き換え回数は、“１”である。また、物理アドレス８〜１５のカウント値、即ち、データ書き換え回数は、“２”である。同様に、物理アドレス１６〜２３のカウント値、即ち、データ書き換え回数は、“３”であり、物理アドレス２４〜３１のカウント値、即ち、データ書き換え回数は、“４”である。
【０３８３】
バッファブロックについては、全ての物理アドレス０〜７，８〜１５，１６〜２３，２４〜３１がイレーズ状態に設定されている。
【０３８４】
（ｂ）  乃至（ｅ）    物理アドレス０〜７のデータ書き換え
コントローラ１１は、メモリ１０に対して、物理アドレス０〜７のデータ更新要求を出力する（図２参照）。
【０３８５】
まず、ブロックＡ内の全ての物理アドレス０〜７，８〜１５，１６〜２３，２４〜３１のカウント値がリードされる。また、図２コントローラ１１において、物理アドレス０〜７のカウント値が更新される。
【０３８６】
例えば、図２のコントローラ１１は、物理アドレス０〜７，８〜１５，１６〜２３，２４〜３１のカウント値のうちから最大値Ｎｍａｘを選択する。この時点では、物理アドレス２４〜３１のカウント値“４”が最も大きな値を有する。図２のコントローラ１１は、物理アドレス２４〜３１のカウント値“４”に“１”を加算し、カウント値“５”を、データ書き換えの対象となる物理アドレス０〜７のカウント値とする。
【０３８７】
そして、更新データＬＡ６４〜７１及び物理アドレス０〜７のカウント値“５”は、バッファブロック内の物理アドレス０〜７に記憶される（（ｂ）参照）。
【０３８８】
この後、ブロックＡ内の物理アドレス０〜７に記憶されたデータＬＡ６４〜ＬＡ７１及びカウント値のイレーズが実行される（（ｃ）参照）。続けて、ブロックＡ内の物理アドレス０〜７に対して、更新データＬＡ６４〜ＬＡ７１及びカウント値“５”がライトされる（（ｄ）参照）。また、バッファブロック内の物理アドレス０〜７に記憶されたデータＬＡ６４〜ＬＡ７１及びカウント値のイレーズが実行される（（ｅ）参照）。
【０３８９】
そして、図２のコントローラ１１は、物理アドレス０〜７，８〜１５，１６〜２３，２４〜３１のカウント値に基づいて、最大値Ｎｍａｘ−最小値Ｎｍｉｎが、許容値、“３２”に達しているか否かを判断する。この時点では、物理アドレス０〜７のカウント値“５”が最も大く、物理アドレス８〜１５のカウント値“２”が最も小さいが、その差分は、許容値、“３２”に達していない。
【０３９０】
従って、この時点では、リフレッシュ動作は、行われない。
【０３９１】
このような動作が繰り返され、ブロックＡ内の物理アドレス０〜７，８〜１５，１６〜２３，２４〜３１のカウント値がリフレッシュ条件を満たしたときは、リフレッシュ動作が実行される。本例によれば、更新データ及びカウント値は、常に、少なくとも、ブロックＡ及びバッファブロックのいずれかに記憶されているため、例えば、不意の電源遮断などの非常事態が発生しても、システムにおける致命的な損傷を回避することができる。
【０３９２】
ブロックＡ内のデータ及びカウント値は、最終的に、図１７の（ｆ）  に示すようになったと仮定する。（ｆ）では、物理アドレス２４〜３１のカウント値が、最も小さく、最も古い。一方、物理アドレス０〜７のカウント値が、最も大きく、最も新しい。両者の差分の意味は、物理アドレス２４〜３１のデータが最後（３３回目）に更新された後、物理アドレス２４〜３１のメモリセルが３２（＝６５−３３）回のデータ書き換えに起因する電圧ストレスを受けている、ということである。従って、この時点では、リフレッシュ動作の必要性が発生している。
【０３９３】
このように、本例では、ブロック内の各エリアのデータ書き換え回数の最大値Ｎｍａｘと最小値Ｎｍｉｎを抽出し、その差分をもって、リフレッシュ動作の必要性を判断している。本例の利点は、最大値Ｎｍａｘと最小値Ｎｍｉｎの差分が許容値未満であれば、リフレッシュ動作を実行することなく、継続して、データ書き換えを行うことができる点にある。
【０３９４】
また、本例では、カウント値の最大値Ｎｍａｘと最小値Ｎｍｉｎの差に基づいてリフレッシュ動作の必要性を判断しているため、リフレッシュの条件がメモリの初期状態に依存することはない。また、本例では、最悪のケースを想定して、リフレッシュの条件を設定しなくてもよい。
【０３９５】
リフレッシュ動作では、データ領域に記憶されるデータについては、再書き込みによりリフレッシュされるが、冗長部のカウント値については、リフレッシュ動作時に、例えば、（ｂ）  の状態に初期化される。即ち、リフレッシュにおけるライト動作では、物理アドレス０〜７，８〜１５，１６〜２３，２４〜３１に対応する冗長部に、それぞれ、カウント値“１”，“２”，“３”，“４”がライトされる。
【０３９６】
また、本例では、上述のリフレッシュ条件（Ｎｍａｘ−Ｎｍｉｎ≧３２）を満たしたときに、カウント値が最小値Ｎｍｉｎである物理アドレス２４〜３１についてのみ、リフレッシュを行うようにしてもよい。この場合、図１７の（ｆ）  及び（ｇ）  に示すように、リフレッシュ動作後には、リフレッシュの対象となった物理アドレス２４〜３１のカウント値の更新のみを行い、他のカウント値を初期化することなく、そのまま継続してカウントする。
【０３９７】
例えば、図１５の（ｆ）  及び（ｇ）  の例では、物理アドレスＬＡ２４〜３１のリフレッシュ動作によって、物理アドレスＬＡ２４〜３１のカウント値を“６６”（＝６５＋１）に設定してもよい。物理アドレス０〜７，８〜１５，１６〜２３は、リフレッシュされないため、そのカウント値については、現状を維持させる。
【０３９８】
なお、エリアを構成する各ページ毎に、データ書き換え回数を管理してもよい。これは、ブロック内のエリアのサイズが、必ずしも固定である必要はなく、可変であってもよいことに起因する。例えば、エリアのサイズが固定の場合には、データ書き換え回数は、エリア単位で管理すればよいが、エリアのサイズが可変の場合には、データ書き換え回数は、エリア内のページごとに管理するのが好都合である。
【０３９９】
リフレッシュ方法については、上述した通り、様々な方法を採用することができる。本例では、図１７の（ｇ）  及び（ｈ）  に示すように、リフレッシュの対象となるエリアのデータをバッファブロックに一時的に退避させ、その後、当該エリアのイレーズを実行し、システム内のバッファから当該エリアへ、再び、データを戻し、最後に、バッファブロックのイレーズを実行する、という方法を採用している。
【０４００】
その他の実施例１，２，３では、複数ページから構成されるエリアを定義し、基本的には、そのエリアのサイズ（容量）と同じサイズ（容量）のデータの更新が発生すると仮定した。しかし、通常のシステムでは、エリアのサイズよりも小さいサイズのデータの更新が発生する場合もある。
【０４０１】
この場合、エリア内の更新されないデータに関しては、例えば、システム内のバッファや、別のブロック（バッファブロック）などに退避され、更新データと共に、元のブロック内に書き戻されることになる。また、２つのブロックをペアで使用し、交互にデータをライトする場合には、一方のブロックに対するライト動作では、更新データと、他方のブロックからリードされた更新しないデータとが、ライトされることになる。
【０４０２】
これは、例えば、実施の形態１，２に関わる実施例１，２，３及び実施の形態３，４に関わる実施例１，２，３において、ページのサイズよりも小さいサイズのデータの更新が発生する場合にも言えることである。
【０４０３】
１１．  その他
ページごと又はエリアごとのデータ書き換え回数（イレーズ回数、ライト回数としても良い）を示すカウント値は、通常、データを記憶するページと同じページに存在する冗長部に記憶される。しかし、そのカウント値は、データを記憶するページと同じページに存在する冗長部以外の部分に記憶しても構わない。
【０４０４】
例えば、ページごと又はエリアごとのデータ書き換え回数を集中管理するメモリ領域をフラッシュメモリ内に設け、そのメモリ領域内でデータ書き換え回数を管理してもよい。また、論理アドレスと物理アドレスの変換テーブルをフラッシュメモリ内に持つ場合には、データ書き換え回数を、そのテーブルを構成する要素として管理してもよい。
【０４０５】
本発明の例は、主として、ユーザーデータ、即ち、パソコンで言えば、ファイル本体のデータや、ファイル管理情報（ＦＡＴテーブル情報や、ディレクトリ情報）などの更新に適用される。しかし、本発明の例は、このようなユーザデータの更新に限られず、ユーザーデータとは直接関係のないデータの更新、例えば、フラッシュメモリカードであれば、カード内部で使用する管理情報などの更新などに適用することもできる。
【０４０６】
カード内部で使用する管理情報ととしては、例えば、論理アドレスと物理アドレスの変換テーブル情報、カードの属性情報及びその更新情報、ライトプロテクト情報、パスワードなどのセキュリティーに関連する情報、内蔵フラッシュメモリの不良ブロックの管理情報、フラッシュメモリのデータ書き換え回数などの情報、フラッシュメモリカード内部のコントローラの制御ファームウェアなどがある。
【０４０７】
本発明の例は、従来のブロック単位のデータ書き換えと組み合わせて使用することも可能である。例えば、比較的に大きな単位、例えば、クラスタ単位で、ライト要求がなされるファイルの本体のデータは、従来のブロック単位のデータ書き換えにより対応し、比較的に小さな単位で、ライト要求がなされるＦＡＴデータ、ディレクトリ情報などは、本発明の例に関わるページイレーズを使用したデータ書き換えにより対応する。
【０４０８】
この場合、コントローラに、データ構造を分析する機能を付加し、ＦＡＴデータやディレクトリ（サブディレクトリ情報を含む）の更新であれば、本発明の例に関わるアルゴリズムが発動するようにしてもよいし、また、予め設定した論理アドレスの範囲内であれば、ＦＡＴやディレクトリ情報と判断して、本発明のアルゴリズムが発動するようにしてもよい。
【０４０９】
上述の各実施例は、フラッシュメモリのページサイズが、５１２バイト（冗長部を除く）であるＮＡＮＤ型フラッシュメモリを例にとった。しかし、近年におけるメモリ容量の大容量化に伴い、ページサイズが２キロバイトのフラッシュメモリや、複数ページに対して同時にデータ書き込みを行えるフラッシュメモリなどが開発されている。
【０４１０】
本発明の例は、このような近年における新たなフラッシュメモリにも適用可能である。例えば、ページサイズが２キロバイト、１ブロックが６４ページ、ブロックサイズが１２８キロバイト、ブロック内の部分イレーズ（イレーズ単位）の大きさとしては、１６キロバイトのＮＡＮＤ型フラッシュメモリに本発明を適用することもできる。
【０４１１】
この場合、外部仕様としては、８ページ分のデータを一括でイレーズすることになる。しかし、例えば、１本のビット線を２つのセンスアンプで共有する２値フラッシュメモリの場合には、物理的には、４ページ分をイレーズしていることになる。
【０４１２】
イレーズ動作は、実際には、イレーズの対象となるページのワード線（コントロールゲート電極）を接地レベルに設定し、基板を高電位（例えば、約２０Ｖ）に設定する。このとき、フローティングゲート電極と基板との間には、大きな電位差が発生するため、ＦＮトンネリング現象によりフローティングゲート電極の電荷が排出され、メモリセルのデータがイレーズされる。
【０４１３】
イレーズの対象とならないページのワード線は、例えば、基板と同電位（例えば、約２０Ｖ）に設定される。このため、イレーズの対象とならないページでは、フローティングゲート電極と基板との間に大きな電位差が発生せず、メモリセルのデータがイレーズされない。
【０４１４】
本発明の例は、ページサイズに関しては、２キロバイトのものに限られず、任意のサイズのフラッシュメモリに適用できる。
【０４１５】
図１８は、ＮＡＮＤ型フラッシュメモリのページイレーズ時のコマンドの発生例を示している。
【０４１６】
ブロックイレーズ、ページイレーズ、及び、複数ページを同時にイレーズするブロック内の部分イレーズは、それぞれ、異なるコマンドコードにより区別される。
【０４１７】
図１９乃至図２１は、本発明の例が適用されるシステム例を示している。
図１９の例は、コントローラとフラッシュメモリを有するメモリカードに関する。
【０４１８】
メモリカード１２には、コントローラ１１及び複数個のフラッシュメモリ１０ａ，１０ｂが搭載される。コントローラ１１は、ＲＡＭ及びＣＰＵを有している。ホストインターフェースとしては、ＡＴＡインタフェース、ＰＣカードインタフェース、ＵＳＢなど、様々なものが考えられるが、本発明の例は、いかなるインタフェースにも適用可能である。
【０４１９】
本例では、メモリカード１２内のコントローラ（一般的にはマイコンを搭載している）１１が、本発明の例に関わるデータ更新動作、カウント方法、リフレッシュへの移行条件などをコントロールする。即ち、コントローラ１１は、ページイレーズ、ブロック内の部分イレーズなどのためのコマンドを発生し、これらのコマンドをフラッシュメモリ１０ａ，１０ｂに与える。
【０４２０】
なお、コントローラ１１とフラッシュメモリ１０ａ，１０ｂとは、１チップ化されていてもよいし、別々のチップに形成されていてもよい。
【０４２１】
図２０の例は、コントローラを搭載していないメモリカードに関する。
【０４２２】
本例は、フラッシュメモリ１０ａのみを搭載したカード１２ａや、比較的小規模のロジック回路（ＡＳＩＣ）１４を搭載したカード１２ｂを対象とする。この場合、例えば、カード１２ａ，１２ｂが接続されるホスト側の機器をデジタルカメラ１３と仮定すると、デジタルカメラ１３の内部に配置されたフラッシュメモリカード制御用コントローラ１１は、カード１２ａ，１２ｂ内のフラッシュメモリ１０ａ，１０ｂに対して、ページイレーズ、ブロック内の部分イレーズのためのコマンドを供給する。
【０４２３】
図２１の例は、本発明の例に関わる制御の全て又は一部を行う制御回路が搭載されたフラッシュメモリに関する。
【０４２４】
メモリカード１２には、コントローラ１１及びフラッシュメモリ１０が搭載される。フラッシュメモリ１０は、例えば、ページのデータ書き換え回数に関連付けられた情報を生成する制御回路１５を有している。フラッシュメモリ１０は、この制御回路１５により、かかる情報を自ら作成し、かつ、この情報を、例えば、メモリセルアレイの冗長部（エラー訂正符合などの格納領域）に格納する。フラッシュメモリ１０には、ページのデータ書き換え回数に関連付けられた情報を外部から参照できる機能を付加してもよい。
【０４２５】
ページのデータ書き換え回数に関連付けられた情報は、フラッシュメモリの外部からは直接参照することのできない特殊なメモリセル領域に格納されてもよい。この場合は、特定コマンドによって、かかる情報が外部に読み出せるようにしてもよいし、リフレッシュ条件が満たされたか否かに関わる情報を外部に読み出せるようにしてもよい。
【０４２６】
フラッシュメモリ１０内の制御回路１５は、例えば、特定コマンドの応答として、ページイレーズが可能であるか否か、ページイレーズが正常に行われたか否か、又は、ページイレーズが禁止され、実行されなかったか否かの情報を、コントローラ１１に応答する機能を有していてもよい。
【０４２７】
この場合は、フラッシュメモリ（チップ）１０の外部に設けられたコントローラ１１は、特定コマンドに対する応答を解釈し、必要に応じて、リフレッシュ動作又はそれに相当する動作を実行する。
【０４２８】
また、フラッシュメモリ１０に混載された制御回路１５は、これまで説明を加えたような、ページのデータ書き換え回数に関連付けられた情報の保存に関する動作のみならず、リフレッシュ条件を判断する動作や、具体的なリフレッシュ動作などをコントロールするような機能を持っていてもよい。
【０４２９】
以上、本発明の例は、ページイレーズ機能を有する不揮発性半導体メモリと、データ書き換え回数に関連付けられた情報を管理するコントローラとを有するシステムであれば、どのようなものにも適用できる。
【０４３０】
また、上述の実施例では、主として、ＮＡＮＤ型フラッシュメモリを前提として説明したが、本発明の例は、その他の不揮発性半導体メモリ、例えば、ＮＯＲ型、ＡＮＤ型、ＤＩＮＯＲ型などの不揮発性半導体メモリにも適用可能である。また、不揮発性半導体メモリとしては、フラッシュメモリの他、近年、注目を浴びているメモリセルに磁性体を使用したＭＲＡＭ（Ｍａｇｎｅｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）及び（Ｒｅｓｉｓｔａｎｃｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、メモリセルに強誘電体を使用したＦｅＲＡＭ（Ｆｅｒｒｏｅｌｅｃｔｒｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）や、メモリセルにカルコゲン化物などを使用したＯＵＭ（  Ｏｖｏｎｉｃｓ  Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ）なども含まれる。
【０４３１】
このように、本発明の例によれば、ブロック内の１部分のイレーズが可能であり、データ更新の際、ブロック内の更新しないデータを別ブロックに退避させる頻度が減り、書き込み性能の大幅な向上が期待できる。
【０４３２】
【発明の効果】
以上、説明したように、本発明によれば、ページイレーズ機能を有するＮＡＮＤ型フラッシュメモリを使用するフラッシュメモリカードにおいて、ブロック内の各ページのデータ書き換え回数を一定条件内に制限することにより、ページイレーズ動作が他の非選択ページに与えるストレスに起因する問題を回避できる。これにより、比較的小さいサイズのデータ書き換えが頻繁に発生しても、書き込み性能の劣化が起こらないフラッシュメモリカードを提供できる。
【図面の簡単な説明】
【図１】本発明の例に関わるメモリセルアレイのデータ区分を示す図。
【図２】本発明の例に関わるシステムの概要を示す図。
【図３】本発明の実施の形態１に関わるデータ更新動作を示すフローチャート。
【図４】本発明の実施の形態２に関わるデータ更新動作を示すフローチャート。
【図５】実施の形態１，２に関わる実施例１のカウント動作を示す図。
【図６】実施の形態１，２に関わる実施例２のカウント動作を示す図。
【図７】実施の形態１，２に関わる実施例３のカウント動作を示す図。
【図８】本発明の実施の形態３に関わるデータ更新動作を示すフローチャート。
【図９】本発明の実施の形態４に関わるデータ更新動作を示すフローチャート。
【図１０】実施の形態３，４に関わる実施例１のカウント動作を示す図。
【図１１】実施の形態３，４に関わる実施例２のカウント動作を示す図。
【図１２】実施の形態３，４に関わる実施例３のカウント動作を示す図。
【図１３】その他の実施例１のカウント動作を示す図。
【図１４】その他の実施例２のカウント動作を示す図。
【図１５】その他の実施例２のカウント動作を示す図。
【図１６】その他の実施例３のカウント動作を示す図。
【図１７】その他の実施例３のカウント動作を示す図。
【図１８】ページイレーズ時のコマンドの発生例を示す波形図。
【図１９】本発明の例が適用されるメモリカードの例を示す図。
【図２０】本発明の例が適用されるシステムの例を示す図。
【図２１】本発明の例が適用されるメモリカードの例を示す図。
【図２２】従来のメモリセルアレイの構成例を示す図。
【図２３】ＮＡＮＤセルユニットの例を示す図。
【符号の説明】
１０，１０ａ，１０ｂ：メモリ、  １１：コントローラ、  １２，１２ａ，１２ｂ：メモリカード、  １３：デジタルカメラ、  １４：ＡＳＩＣ、  １５：制御回路、  ＮＵ：ＮＡＮＤユニット、  ＷＬ０，ＷＬ１，・・・ＷＬ３１：ワード線、  ＢＬ：ビット線、  ＳＧＤ，ＳＧＳ：セレクトゲート線、  ＳＬ：ソース線、  Ｍ０，Ｍ１，・・・Ｍ３１：メモリセル、  ＳＴ１，ＳＴ２：セレクトゲートトランジスタ。
【図１】
2004240572.tif 000003
【図２】
2004240572.tif 000004
【図３】
2004240572.tif 000005
【図４】
2004240572.tif 000006
【図５】
2004240572.tif 000007
【図６】
2004240572.tif 000008
【図７】
2004240572.tif 000009
【図８】
2004240572.tif 000010
【図９】
2004240572.tif 000011
【図１０】
2004240572.tif 000012
【図１１】
2004240572.tif 000013
【図１２】
2004240572.tif 000014
【図１３】
2004240572.tif 000015
【図１４】
2004240572.tif 000016
【図１５】
2004240572.tif 000017
【図１６】
2004240572.tif 000018
【図１７】
2004240572.tif 000019
【図１８】
2004240572.tif 000020
【図１９】
2004240572.tif 000021
【図２０】
2004240572.tif 000022
【図２１】
2004240572.tif 000023
【図２２】
2004240572.tif 000024
【図２３】
2004240572.tif 000025