(57)【要約】【課題】不揮発メモリの使用中であっても全てのメモリセルの劣化を判定できる。【解決手段】制御装置１００は、不揮発メモリｍｅｍの書き込み対象セクタが複数のセクタのうちの第１セクタから第２セクタに変更された場合、第１セクタ内の各メモリセルについて、Ａｌｌ０書き込み動作を行わせる。制御装置１００は、複数のセクタのうちの第２セクタ以外のセクタの中で、第１セクタより前に書き込み対象セクタとなった第３セクタ内のメモリセルについて、ＳＢＣＬ−ＲＥＡＤ動作を行わせる。例えば、第３セクタは、複数のセクタのうち、第２セクタの次に書き込み対象セクタとなるセクタである。【選択図】図１
2014137647.tif 000002
【特許請求の範囲】
【請求項１】
複数のセクタを有する不揮発メモリに対して、
前記不揮発メモリの書き込み対象セクタが前記複数のセクタのうちの第１セクタから第２セクタに変更された場合、前記第１セクタ内の各メモリセルについて書き込み動作を行わせ、
前記複数のセクタのうちの前記第２セクタ以外のセクタの中で、前記第１セクタより前に前記書き込み対象セクタとなった第３セクタ内の各メモリセルについて劣化判定動作を行わせる、
ことを特徴とする制御方法。
【請求項２】
前記劣化判定動作による判定結果を記憶部に記憶させ、
前記記憶部に記憶された前記第２セクタについての判定結果に基づいて、前記第２セクタ内のメモリセルのうち、劣化していると判定されたメモリセル以外のメモリセルについての書き込みを行わせることを特徴とする請求項１に記載の制御方法。
【請求項３】
前記第３セクタは、前記第２セクタの次に前記書き込み対象セクタとなるセクタであることを特徴とする請求項１または２に記載の制御方法。
【請求項４】
前記第３セクタについての前記劣化判定動作において、前記第３セクタ内の所定数以上のメモリセルについて劣化していると判定された場合、前記第３セクタを書き込み禁止セクタに設定し、前記第３セクタの次に前記書き込み対象セクタとなるセクタ内の各メモリセルについて前記劣化判定動作を行わせることを特徴とする請求項３に記載の制御方法。
【請求項５】
複数のセクタを有する不揮発メモリに対して、
前記不揮発メモリの書き込み対象セクタが前記複数のセクタのうちの第１セクタから第２セクタに変更された場合、前記第１セクタ内の各メモリセルについて書き込み動作を行わせる書き込み動作部と、
前記複数のセクタのうちの前記第２セクタ以外のセクタの中で、前記第１セクタより前に前記書き込み対象セクタとなった第３セクタ内の各メモリセルについて劣化判定動作を行わせる判定動作部と、
を有することを特徴とする制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御方法、および制御装置に関する。
【背景技術】
【０００２】
従来、電気的に書き換え可能な不揮発メモリであると、高電圧をメモリセルに印加することによってメモリセルに記憶されたデータの消去および書き込みを行う。そのため、メモリセルの酸化膜を介した消去回数および書き込み回数が増加すると、メモリセルの酸化膜が劣化するため、データの保持時間が短くなる。そこで、書き込み電圧と読み出し電圧との間の電圧などによって、製品の出荷前の耐久テスト時または出荷後においてメモリセルの劣化の有無を判定する技術がある（例えば、下記特許文献１〜３参照。）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−２９４５号公報
【特許文献２】特開２００９−２６６３４９号公報
【特許文献３】特開平９−３２０３００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、出荷後のメモリセルについては、使用者の書き込みデータの劣化についてのみ、もしくはデータ消去済のメモリセルの、電荷ゲインまたはＳｉｎｇｌｅ  Ｂｉｔ  Ｃｈａｒｇｅ  Ｇａｉｎと呼ばれる経時劣化しか判断できない。つまりメモリセルに注入された電子が流出すること（「電荷ロス」または「Ｓｉｎｇｌｅ  Ｂｉｔ  Ｃｈａｒｇｅ  Ｌｏｓｓ（ＳＢＣＬ）」と称する。）の劣化を判定することが困難である。
【０００５】
１つの側面では、本発明は、メモリセルの電荷ロスの劣化を判定できる制御方法、および制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一側面によれば、複数のセクタを有する不揮発メモリに対して、前記不揮発メモリの書き込み対象セクタが前記複数のセクタのうちの第１セクタから第２セクタに変更された場合、前記第１セクタ内の各メモリセルについて書き込み動作を行わせ、前記複数のセクタのうちの前記第２セクタ以外のセクタの中で、前記第１セクタより前に前記書き込み対象セクタとなった第３セクタ内の各メモリセルについて劣化判定動作を行わせる制御方法、および制御装置が提案される。
【発明の効果】
【０００７】
本発明の一態様によれば、不揮発メモリの使用中であってもメモリセルの劣化を判定できる。
【図面の簡単な説明】
【０００８】
【図１】図１は、制御装置による制御例を示す説明図である。
【図２】図２は、メモリシステム例を示す説明図である。
【図３】図３は、各基準値例を示す説明図である。
【図４】図４は、メモリシステムが行うＡｌｌ０書き込み動作処理手順例を示すフローチャートである。
【図５】図５は、メモリシステムが行うＳＢＣＬ−ＲＥＡＤ動作およびＥＲＡＳＥ動作処理手順例を示すフローチャートである。
【図６】図６は、制御装置の機能的構成を示すブロック図である。
【図７】図７は、動作例を示す説明図である。
【図８】図８は、制御装置が行う処理手順例を示すフローチャートである。
【図９】図９は、制御装置による検索処理手順例を示すフローチャートである。
【図１０】図１０は、制御装置によるデータの書き込みを行わせる処理手順例を示すフローチャートである。
【図１１】図１１は、制御装置によるＡｌｌ０書き込み動作を行わせる処理手順例を示すフローチャートである。
【図１２】図１２は、制御装置によるＳＢＣＬ−ＲＥＡＤ動作およびＥＲＡＳＥ動作を行わせる処理手順例を示すフローチャートである。
【図１３】図１３は、制御装置によるＳＢＣＬ＿ＥＲＲの確認処理手順例を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下に添付図面を参照して、本発明にかかる制御方法、および制御装置の実施の形態を詳細に説明する。また、以降本明細書で記載する劣化とは、上述したＳＢＣＬによる劣化である。この劣化は、注入状態からの経過時間が長いほどメモリセルに注入された電子の流出量が顕著になるため、メモリセルを読み出した際の閾値の変動として検出される。
【００１０】
図１は、制御装置による制御例を示す説明図である。制御装置１００は、不揮発メモリｍｅｍを制御可能な装置である。制御装置１００としては、例えば、ＭＣＵ（Ｍｅｍｏｒｙ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）そのものやＭＣＵが設けられたＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などが挙げられる。不揮発メモリｍｅｍは、複数のセクタを有する。
【００１１】
不揮発メモリｍｅｍは、複数のセクタのメモリセルについて、一定電圧の印加による同一データの書き込み動作と、メモリセルの劣化の判定動作と、当該一定のデータの論理値を反転させたデータにさせる消去動作と、を行うことが可能である。不揮発メモリｍｅｍとしては、例えば、フラッシュメモリなどが挙げられる。ここで、一定電圧の印加による同一データの書き込み動作は、すべて０が書き込まれる動作であるため、Ａｌｌ０書き込み動作と称する。
【００１２】
判定動作については、通常のデータ読み出しで利用される閾値よりも高い閾値を利用して読み出しが行われるため、ＳＢＣＬ（Ｓｉｎｇｌｅ  Ｂｉｔ  Ｃｈａｒｇｅ  Ｌｏｓｓ）−ＲＥＡＤ動作と称する。消去動作は、メモリセルに記憶されるデータを１にすることであって、ＥＲＡＳＥ動作と称する。
【００１３】
制御装置１００は、不揮発メモリｍｅｍの書き込み対象セクタが複数のセクタのうちの第１セクタから第２セクタに変更された場合、第１セクタ内の各メモリセルについて、Ａｌｌ０書き込み動作を行わせる。ここで、複数のセクタの書き込み順については、制御装置１００によって定められ、図１の書き込み順では、第１セクタ、第２セクタ、第３セクタ、そして、次に再度第１セクタに戻る。ここでは、書き込み対象セクタ以外のセクタに対して、通常の読み出しや書き込みが発生しないこととする。具体的には、制御装置１００は、第１セクタを示すアドレスと、Ａｌｌ０書き込み動作を示すコマンドと、を発行する。
【００１４】
制御装置１００は、複数のセクタのうちの第２セクタ以外のセクタの中で、第１セクタより前に書き込み対象セクタとなった第３セクタ内のメモリセルについて、ＳＢＣＬ−ＲＥＡＤ動作を行わせる。例えば、第３セクタは、複数のセクタのうち、第２セクタの次に書き込み対象セクタとなるセクタである。制御装置１００は、ＳＢＣＬ−ＲＥＡＤ動作後に、第３セクタ内の各メモリセルについて、ＥＲＡＳＥ動作を行わせる。具体的には、制御装置１００は、第３セクタを示すアドレスと、ＳＢＣＬ−ＲＥＡＤ動作とＥＲＡＳＥ動作との組合せを示すコマンドと、を発行する。
【００１５】
制御装置１００は、ＳＢＣＬ−ＲＥＡＤ動作によって劣化していると判定されたメモリセルを示すアドレスを記憶部１０１に記憶させる。制御装置１００は、記憶部１０１の記憶内容に基づいて、書き込み対象セクタ内のメモリセルのうち、劣化していると判定されたメモリセル以外のメモリセルに対して書き込みを行わせる。
【００１６】
制御装置１００によれば、不揮発メモリｍｅｍの使用中であってもメモリセルの劣化を判定することができる。
【００１７】
書き込み対象セクタが変更された後に行われるＡｌｌ０書き込み動作とＳＢＣＬ−ＲＥＡＤ動作とＥＲＡＳＥ動作とは、書き込み対象セクタについての書き込みや読み出し中の動作において、空きのタイミングで行われるバックグラウンドの動作とする。
【００１８】
次に、制御装置１００の詳細な説明の前に、Ａｌｌ０書き込み動作、ＳＢＣＬ−ＲＥＡＤ動作、やＥＲＡＳＥ動作などの機能を有するメモリシステムについて説明する。
【００１９】
（メモリシステム）
図２は、メモリシステム例を示す説明図である。メモリシステムｍｅｍｓは、上述したような不揮発メモリｍｅｍを有するシステムである。具体的には、メモリシステムｍｅｍｓは、Ｃｏｍｍａｎｄ  Ｃｈａｎｇｅ  ＩＦ（ＩｎｔｅｒＦａｃｅ）２０１と、Ｃｏｍｍａｎｄ  Ｓｔａｔｅ  ｍａｃｈｉｎｅ２０２と、を有する。メモリシステムｍｅｍｓは、Ｐｏｗｅｒ  Ｃｏｎｔｒｏｌ２０３と、Ａｄｄｒｅｓｓ  Ｃｏｎｔｒｏｌ２０４と、Ａｄｄｒｅｓｓ  Ｒｅｇｉｓｔｅｒ２０５と、を有する。メモリシステムｍｅｍｓは、複数のセクタｓｅｃ０〜ｓｅｃ３と、ＷＬ（Ｗｏｒｄ  Ｌｉｎｅ）  Ｄｅｃｏｄｅｒ２０６と、Ｃｏｌｕｍｎ  ｓｅｌｅｃｔ２０７と、ＷＲ（ＷＲｉｔｅ）  ＤＲＶ２０８と、Ｒｅａｄ  ＡＭＰ（Ａｍｐｌｉｆｉｅｒ）２０９と、複数の基準値ｒｅｆと、を有する。
【００２０】
Ｃｏｍｍａｎｄ  Ｃｈａｎｇｅ  ＩＦ２０１は、入力されたコマンドＣｏｍｍａｎｄやクロック信号ＣＬＫをメモリシステムｍｅｍｓ内部で使用可能な信号に変換する。Ｃｏｍｍａｎｄ  Ｃｈａｎｇｅ  ＩＦ２０１によって、信号ＣＥＸ、信号ＷＥＸ、信号Ｐ／Ｅ、信号ＲＤ＿ＳＥＬなどが生成される。例えば、信号ＲＤ＿ＳＥＬは、入力されたコマンドによって複数の基準値からいずれかの基準値を選択させる信号である。
【００２１】
Ｃｏｍｍａｎｄ  Ｓｔａｔｅ  ｍａｃｈｉｎｅ２０２は、Ｃｏｍｍａｎｄ  Ｃｈａｎｇｅ  ＩＦ２０１によって生成された信号に基づいて、Ｐｏｗｅｒ  Ｃｏｎｔｏｒｌ２０３、ＷＲ  ＤＲＶ２０８、Ｒｅａｄ  ＡＭＰ２０９などを制御する。Ｐｏｗｅｒ  Ｃｏｎｔｒｏｌ２０３は、Ｃｏｍｍａｎｄ  Ｓｔａｔｅ  ｍａｃｈｉｎｅ２０２からの信号に基づいて各部の電源を制御する。
【００２２】
Ａｄｄｒｅｓｓ  Ｃｏｎｔｒｏｌ２０４は、入力されたアドレスをメモリシステムｍｅｍｓ内部で使用可能な信号に変換して、ＷＬ  Ｄｅｃｏｄｅｒ２０６やＣｏｌｕｍｎ  ｓｅｌｅｃｔ２０７に与える。ＷＬ  Ｄｅｃｏｄｅｒ２０６は、指定されたアドレスに基づいて各セクタ内の複数のＷＬから一つのＷＬを選択する。Ｃｏｌｕｍｎ  ｓｅｌｅｃｔ２０７は、指定されたアドレスに基づいて各セクタ内の複数のカラムから１つのカラムを選択する。ＷＬ  Ｄｅｃｏｄｅｒ２０６とＣｏｌｕｍｎ  ｓｅｌｅｃｔ２０７とによって複数のセクタから所望のセクタ内の所望のメモリセルにアクセスすることができる。
【００２３】
ＷＲ  ＤＲＶ２０８は、メモリセルへのデータ書き込み時の電圧を生成するドライバである。Ｒｅａｄ  ＡＭＰ２０９は、メモリセルから読み出された電圧値を増幅する。そして、Ｒｅａｄ  ＡＭＰ２０９は、増幅した電圧値と複数の基準値のいずれかの基準値との比較を行い、比較結果をＤＯＵＴとして出力する。
【００２４】
図３は、各基準値例を示す説明図である。回路３００で示すように、入力されたコマンドによって、信号ＥＲＳＶと信号ＲＤと信号ＳＢＣＬ  ＲＤと信号ＰＧＭＶのいずれかが活性化される。これにより、活性化された信号によってオンになるＭＯＳを流れる電流と、メモリセルから読み出された電流と、をコンパレータＣＭＰが比較することにより、ＤＯＵＴが出力される。
【００２５】
各基準値を生成するセルのＶｔｈの関係をグラフｇ１とグラフｇ２に示す。グラフｇ１は、書き換え初期におけるメモリセルのＶｔｈの分布ｄ１例であり、グラフｇ２は、ＥＯＬ（Ｅｎｄ  Ｏｆ  Ｌｉｆｅ）近傍におけるメモリセルのＶｔｈの分布ｄ２例である。いずれのグラフも縦軸がメモリセルの数であり、横軸が電圧［Ｖ］である。「Ｅｒａｓｅ：１」は消去によってメモリセルに１を記憶させることを示し、「Ｐｒｏｇｒａｍ：０」は書き込みによってメモリセルに０を記憶させることを示す。
【００２６】
グラフｇ１とグラフｇ２に示すように、信号ＥＲＳＶによってオンになるトランジスタＭ１のＶｔｈであるＶｔｈＥＲＳＶが最も低く、信号ＲＤによってオンになるトランジスタＭ２のＶｔｈであるＶｔｈＲが次に低い。そして、信号ＳＢＣＬ  ＲＤによってオンになるトランジスタＭ３のＶｔｈであるＶｔｈＲＳＢＣＬが次に低く、信号ＰＧＭＶによってオンになるトランジスタＭ４のＶｔｈであるＶｔｈＰＧＭＶが最も高い。
【００２７】
分布ｄ２は、分布ｄ１よりも“０”書き込み時の電圧値が低くなり、“１”書き込み時の電圧値が高くなる。メモリセルへの書き込み回数が増えると共に、メモリセルの酸化膜が劣化するためである。そのため、メモリセルからの読み出し時よりも高く、メモリセルへの書き込み時よりも低いＶｔｈＲＳＢＣＬを利用して、劣化の判定動作が行われる。
【００２８】
Ａｄｄｒｅｓｓ  Ｒｅｇｉｓｔｅｒ２０５は、劣化していると判定されたメモリセルを示すアドレスを記憶する。Ａｄｄｒｅｓｓ  Ｒｅｇｉｓｔｅｒ２０５は、劣化していると判定されたメモリセルを示すアドレスが新たに記憶され、信号ＦＡＩＬ−ＡＤＤ［ｉ：０］をＡｄｄｒｅｓｓ  Ｃｏｎｔｒｏｌ２０４に渡す。対象アドレスに消去処理を行った後、Ａｄｄｒｅｓｓ  Ｃｏｎｔｒｏｌ２０４は、受け渡された信号ＦＡＩＬ−ＡＤＤに基づいて、書き込み禁止アドレスについてのＦＬＡＧを設定する。そして、Ａｄｄｒｅｓｓ  Ｒｅｇｉｓｔｅｒ２０５は、信号ＳＢＣＬ＿ＥＲＲを発行する。
【００２９】
また、セクタ内の所定数以上のメモリセルを示すアドレスがＡｄｄｒｅｓｓ  Ｒｅｇｉｓｔｅｒ２０５に記憶されていると判定された場合、信号ＯＶＥＲＦＬＯＷを発行する。信号ＯＶＥＲＦＬＯＷが発行されたセクタは、書き込み禁止セクタとなる。所定数については、メモリシステムｍｅｍｓの設計者や制御装置１００の利用者などによって定められることとする。
【００３０】
（Ａｌｌ０書き込み動作）
図４は、メモリシステムが行うＡｌｌ０書き込み動作処理手順例を示すフローチャートである。メモリシステムｍｅｍｓは、信号ＡＤＤに基づいて指定アドレスを設定し（ステップＳ４０１）、書き込みメモリ閾値確認電圧を示す信号ＰＧＭＶを設定する（ステップＳ４０２）。メモリシステムｍｅｍｓは、書き込みに成功したか否かを判断する（ステップＳ４０３）。ここで、書き込みメモリ閾値確認電圧とは、メモリデータを書き込むための電圧でなく、データを書き込んだ後のメモリの閾値を確認するための電圧を意味する。
【００３１】
書き込みに成功した場合（ステップＳ４０３：Ｐａｓｓ）、メモリシステムｍｅｍｓは、指定アドレスがフルカウントされたか否かを判断する（ステップＳ４０４）。フルカウントされていない場合（ステップＳ４０４：Ｎｏ）、メモリシステムｍｅｍｓは、指定アドレスをデクリメントし（ステップＳ４０５）、ステップＳ４０３へ移行する。フルカウントされた場合（ステップＳ４０４：Ｙｅｓ）、メモリシステムｍｅｍｓは、書き込み動作を終了し（ステップＳ４０６）、一連の処理を終了する。
【００３２】
書き込みに失敗した場合（ステップＳ４０３：Ｆａｉｌ）、メモリシステムｍｅｍｓは、書き込みストレス印加回数が最大値か否かを判断する（ステップＳ４０７）。書き込みストレス印加回数が最大値でない場合（ステップＳ４０７：Ｎｏ）、メモリシステムｍｅｍｓは、書き込みストレスを更に印加し（ステップＳ４０８）、書き込みメモリ閾値確認電圧を変動させてステップＳ４０３を再度行う。書き込みストレス印加回数が最大値である場合（ステップＳ４０７：Ｙｅｓ）、書き込みを中断して、一連の処理を終了する。
【００３３】
（ＳＢＣＬ−ＲＥＡＤ動作およびＥＲＡＳＥ動作）
図５は、メモリシステムが行うＳＢＣＬ−ＲＥＡＤ動作およびＥＲＡＳＥ動作処理手順例を示すフローチャートである。メモリシステムｍｅｍｓは、信号ＡＤＤに基づいて指定アドレスを設定し（ステップＳ５０１）、信号ＳＢＣＬ  ＲＤを設定し（ステップＳ５０２）、ＳＢＣＬ−ＲＥＡＤ検証によって劣化しているか否かを判定する（ステップＳ５０３）。劣化していないと判定された場合（ステップＳ５０３：Ｐａｓｓ）、メモリシステムｍｅｍｓは、指定アドレスがフルカウントされたか否かを判断する（ステップＳ５０４）。
【００３４】
フルカウントされていない場合（ステップＳ５０４：Ｎｏ）、メモリシステムｍｅｍｓは、指定アドレスをデクリメントし（ステップＳ５０５）、ステップＳ５０２へ戻る。ステップＳ５０３において、劣化していると判定された場合（ステップＳ５０３：Ｆａｉｌ）、メモリシステムｍｅｍｓは、指定アドレスをラッチし（ステップＳ５０６）、Ａｄｒｅｓｓ  Ｒｅｇｉｓｔｅｒが満杯になったか否かを判断する（ステップＳ５０７）。
【００３５】
Ａｄｒｅｓｓ  Ｒｅｇｉｓｔｅｒが満杯になっていないと判断された場合（ステップＳ５０７：Ｎｏ）、メモリシステムｍｅｍｓは、指定アドレスをデクリメントし（ステップＳ５０８）、ステップＳ５０２へ戻る。Ａｄｒｅｓｓ  Ｒｅｇｉｓｔｅｒが満杯になったと判断された場合（ステップＳ５０７：Ｙｅｓ）、メモリシステムｍｅｍｓは、信号ＯＶＥＲＦＬＯＷを発行し（ステップＳ５０９）、一連の処理を終了する。
【００３６】
ステップＳ５０４において、フルカウントされた場合（ステップＳ５０４：Ｙｅｓ）、メモリシステムｍｅｍｓは、ＥＲＡＳＥ動作を行い（ステップＳ５１０）、Ａｄｄｒｅｓｓ  Ｒｅｇｉｓｔｅｒに基づいて、劣化していると判定されたメモリセルがあるか否かを判断する（ステップＳ５１１）。劣化していると判定されたメモリセルがある場合（ステップＳ５１１：Ｙｅｓ）、メモリシステムｍｅｍｓは、劣化していると判定されたメモリセルを示すＦＬＡＧに対して書き込みを行う（ステップＳ５１２）。そして、メモリシステムｍｅｍｓは、信号ＳＢＣＬ＿ＥＲＲを発行し（ステップＳ５１３）、一連の処理を終了する。劣化していると判定されたメモリセルがない場合（ステップＳ５１１：Ｎｏ）、一連の処理を終了する。
【００３７】
（制御装置１００の機能的構成例）
図６は、制御装置の機能的構成を示すブロック図である。制御装置１００は、Ａｌｌ０書き込み動作部６０１と、判定動作部６０２と、消去動作部６０３と、書き込み動作部６０４と、記憶部１０１と、を含む。制御装置１００は、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）などのコンピュータが有するプロセッサが各部の処理がコーディングされたプログラムを実行することによって実現されてもよい。また、制御装置１００は、論理積回路であるＡＮＤ、否定論理回路であるＩＮＶＥＲＴＥＲ、論理和回路であるＯＲや、ラッチ回路であるＦＦなどの素子によって形成されてもよい。
【００３８】
また、制御装置１００は、スタンダードセルやストラクチャードＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの特定用途向けＩＣ（以下、単に「ＡＳＩＣ」と称す。）やＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）などのＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）によって実現されてもよい。具体的には、例えば、上述した制御装置１００の各部をＨＤＬ記述によって機能定義し、そのＨＤＬ記述を論理合成してＡＳＩＣやＰＬＤに与えることにより、制御装置１００が製造されてもよい。
【００３９】
記憶部１０１は、例えば、ＲＡＭ（Ｒａｎｄａｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）やレジスタなどによって実現される。記憶部１０１には、例えば、書き込み対象セクタ情報と、指定アドレスと、書き込み禁止アドレス情報と、書き込み禁止セクタ情報と、が記憶される。書き込み対象セクタ情報には、書き込み対象セクタを示す情報が登録される。指定アドレスには、書き込み対象セクタのうちの書き込み対象となるメモリセルを示すアドレスが登録される。
【００４０】
書き込み禁止アドレス情報には、ＳＢＣＬ−ＲＥＡＤ動作によって劣化していると判定されたメモリセルを示すアドレスが登録される。書き込み禁止セクタ情報には、ＳＢＣＬ−ＲＥＡＤ動作によって所定数以上のメモリセルが書き込み禁止となり書き込みが禁止となったセクタを示す情報が登録される。
【００４１】
書き込み動作部６０４は、書き込み対象セクタ内のメモリセルを示す指定アドレスと、書き込みコマンドと、を発行することにより、メモリシステムｍｅｍｓに指定アドレスが示すメモリセルに対する書き込みを行わせる。ここでは、書き込み対象セクタ内のメモリセルを示すアドレスが最も大きいアドレスから順に指定アドレスとして選択されることとする。また、書き込み動作部６０４は、記憶部１０１に記憶された書き込み禁止アドレス情報に基づいて、書き込み対象セクタ内のメモリセルのうち、劣化していると判定されたメモリセル以外のメモリセルについての書き込みを行わせる。
【００４２】
そして、書き込み動作部６０４は、書き込み対象セクタ内のメモリセルのうち、書き込み禁止アドレスが示すメモリセル以外のメモリセルについて、書き込み可能領域がなくなると、書き込み対象セクタをつぎのセクタに変更する。書き込みデータ量が書き込み対象セクタ内に書き切れない場合、書き込み対象セクタをつぎのセクタに変更して書き込み作業を行う。この際、書き込み動作部６０４は、書き込み対象セクタ情報をつぎのセクタを示す情報に更新する。複数のセクタについての書き込み順は、予め定められていることとし、記憶部１０１などに予め記憶されていることとする。
【００４３】
次に、Ａｌｌ０書き込み動作部６０１は、書き込み対象セクタ情報が更新されると、書き込み対象セクタ情報の現更新前の情報が示すセクタについて、Ａｌｌ０書き込み動作を行わせる。例えば、現更新の直前の書き込み対象セクタ情報が示すセクタを第１セクタと称し、現更新の後の書き込み対象セクタ情報が示すセクタを第２セクタと称する。具体的には、制御装置１００は、第１セクタを示すアドレスと、Ａｌｌ０書き込み動作を示すコマンドと、を発行する。
【００４４】
また、判定動作部６０２は、複数のセクタのうちの第２セクタ以外のセクタの中で、第１セクタより前に書き込みセクタとなった第３セクタ内の各メモリセルについて、ＳＢＣＬ−ＲＥＡＤ動作を行わせる。これにより、Ａｌｌ０書き込み動作からＳＢＣＬ−ＲＥＡＤ動作までの期間を長くでき、不揮発メモリｍｅｍを使用中であっても、高精度に劣化を判定することができる。
【００４５】
また、第３セクタは、第２セクタの次に書き込み対象セクタとなるセクタである。これにより、Ａｌｌ０書き込み動作からＳＢＣＬ−ＲＥＡＤ動作までの期間を最も長くでき、不揮発メモリｍｅｍを使用中であっても、高精度に劣化を判定することができる。
【００４６】
次に、消去動作部６０３は、第３セクタについてのＳＢＣＬ−ＲＥＡＤ動作が終了後、第３セクタについてＥＲＡＳＥ動作を行わせる。
【００４７】
また、判定動作部６０２は、第３セクタについてのＳＢＣＬ−ＲＥＡＤ動作において、第３セクタ内の所定数以上のメモリセルについて劣化していると判定された場合、第３セクタを書き込み禁止セクタに設定する。具体的には、判定動作部６０２は、信号ＯＶＥＲＦＬＯＷをメモリシステムｍｅｍｓから受け付けると、書き込み禁止セクタ情報に第３セクタを示す情報を登録する。そして、判定動作部６０２は、第３セクタの次に書き込み対象セクタとなるセクタ内の各メモリセルについてＳＢＣＬ−ＲＥＡＤ動作を行わせる。次に、図７を用いて動作例を示す。
【００４８】
図７は、動作例を示す説明図である。図７では、メモリシステムｍｅｍｓ内にセクタｓｅｃ０〜セクタｓｅｃ３がある例を示す。（１）では、セクタｓｅｃ２が書き込み対象セクタである。次に、（２）では、セクタｓｅｃ２からセクタｓｅｃ３に書き込み対象セクタが変更される。セクタｓｅｃ２には旧データが残る。そして、（３）では、制御装置１００がセクタｓｅｃ２についてＡｌｌ０書き込み動作を行わせる。（４）では、制御装置１００が、セクタｓｅｃ３の次に書き込み対象セクタとなるセクタｓｅｃ０についてＳＢＣＬ−ＲＥＡＤ動作を行わせる。制御装置１００が、ＳＢＣＬ−ＲＥＡＤ動作が終了した後、セクタｓｅｃ０についてＥＲＡＳＥ動作を行わせる。この後、制御装置１００は、ＳＢＣＬ−ＲＥＡＤ動作によって劣化していると判断されたメモリを、再度通常のＲＥＡＤ動作によって把握し、そのメモリのアドレスを書き込み禁止アドレス情報に登録する。
【００４９】
その後、（５）では、書き込み対象セクタがセクタｓｅｃ３からセクタｓｅｃ０に変更され、セクタｓｅｃ３には旧データが残る。そして、（６）では、制御装置１００が、セクタｓｅｃ３について、Ａｌｌ０書き込み動作を行わせる。
【００５０】
（７）では、制御装置１００が、セクタｓｅｃ０の次に書き込み対象セクタとなるセクタｓｅｃ１に対してＳＢＣＬ−ＲＥＡＤ動作を行わせる。制御装置１００が、ＳＢＣＬ−ＲＥＡＤ動作が終了した後、セクタｓｅｃ１についてＥＲＡＳＥ動作を行わせる。ここで、制御装置１００は、ＳＢＣＬ−ＲＥＡＤ動作によって劣化していると判定されたメモリセルを示すアドレスを書き込み禁止アドレス情報に登録する。
【００５１】
このように、書き込み対象セクタが変更される都度、同様の処理を繰り返す。これにより、Ａｌｌ０書き込み動作からＳＢＣＬ−ＲＥＡＤ動作までの期間を通常のデータの書き込みに影響が発生しないなかで、最も長くでき、不揮発メモリｍｅｍを使用中であっても、高精度に劣化を判定することができる。
【００５２】
（制御装置１００が行う処理手順）
図８は、制御装置が行う処理手順例を示すフローチャートである。制御装置１００は、書き込み対象セクタ情報を参照することによって、書き込み対象セクタを確認し（ステップＳ８０１）、書き込み禁止アドレスの検索処理を行う（ステップＳ８０２）。
【００５３】
制御装置１００は、データの書き込みを行わせる処理を行い（ステップＳ８０３）、Ａｌｌ０書き込み動作を行わせる処理を行う（ステップＳ８０４）。制御装置１００は、ＳＢＣＬ−ＲＥＡＤ動作およびＥＲＡＳＥ動作を行わせる処理を行い（ステップＳ８０５）、ＳＢＣＬ＿ＥＲＲの確認処理を行う（ステップＳ８０６）。
【００５４】
検索処理と、データの書き込みを行わせる処理と、Ａｌｌ０書き込み動作を行わせる処理と、ＳＢＣＬ−ＲＥＡＤ動作およびＥＲＡＳＥ動作を行わせる処理と、ＳＢＣＬ＿ＥＲＲの確認処理と、については、サブルーチンとして各処理が行われることとする。各処理を図９から図１３を用いて説明する。
【００５５】
図９は、制御装置による検索処理手順例を示すフローチャートである。制御装置１００は、指定アドレスを設定し（ステップＳ９０１）、指定アドレスに対応するデータ存在ＦＬＡＧを確認し（ステップＳ９０２）、データ存在ＦＬＡＧに基づいて、指定アドレスに対応する領域がデータ領域として既に使用しているか否かを判断する（ステップＳ９０３）。データ存在ＦＬＡＧが使用済を示している場合（ステップＳ９０３：Ｙｅｓ）、制御装置１００は、指定アドレスをデクリメントし（ステップＳ９０４）、ステップＳ９０２へ戻る。
【００５６】
データ存在ＦＬＡＧが未使用を示す場合（ステップＳ９０３：Ｎｏ）、制御装置１００は、指定アドレスを書き込み開始のアドレスに決定する（ステップＳ９０５）。制御装置１００は、書き込み開始アドレスと、書き込み禁止アドレス情報と、に基づいて、書き込み可能エリアを特定する（ステップＳ９０６）。
【００５７】
制御装置１００は、特定した書き込み可能エリアに基づいて、書き込み対象セクタを変更するか否かを判断する（ステップＳ９０７）。書き込み可能エリアがない場合には、書き込み対象セクタを変更しなければならない。そのため、変更する場合（ステップＳ９０７：Ｙｅｓ）、制御装置１００は、書き込み対象セクタ情報を、現セクタを示す情報から次セクタを示す情報に更新し（ステップＳ９０８）、一連の処理を終了する。変更しない場合（ステップＳ９０７：Ｎｏ）、一連の処理を終了する。
【００５８】
図１０は、制御装置によるデータの書き込みを行わせる処理手順例を示すフローチャートである。制御装置１００は、書き込み禁止アドレス情報を参照することによって、書き込み禁止アドレスを確認し（ステップＳ１００１）、指定アドレスを決定する（ステップＳ１００２）。制御装置１００は、メモリシステムｍｅｍｓに対して、書き込み対象セクタのうちの指定アドレスが示すメモリセルについて書き込みを行わせる処理を行う（ステップＳ１００３）。
【００５９】
そして、制御装置１００は、メモリシステムｍｅｍｓでの書き込み完了まで待機し（ステップＳ１００４）、信号ＲＤＹを確認する（ステップＳ１００５）。信号ＲＤＹは、メモリシステムｍｅｍｓでの各処理が終了してコマンドを受け付け可能であるか否かを示す信号である。制御装置１００は、書き込むべきデータをすべて書き込んだか否かを判断する（ステップＳ１００６）。
【００６０】
書き込むべきデータが書き込まれていない場合（ステップＳ１００６：Ｎｏ）、制御装置１００は、書き込み禁止アドレスを確認し（ステップＳ１００７）、指定アドレスをデクリメントし（ステップＳ１００８）、ステップＳ１００２へ戻る。書き込むべきデータがすべて書き込まれた場合（ステップＳ１００６：Ｙｅｓ）、一連の処理を終了する。
【００６１】
図１１は、制御装置によるＡｌｌ０書き込み動作を行わせる処理手順例を示すフローチャートである。制御装置１００は、書き込み対象セクタ情報が更新されたか否かを判断する（ステップＳ１１０１）。書き込み対象セクタ情報が更新された場合（ステップＳ１１０１：Ｙｅｓ）、制御装置１００は、現書き込み対象セクタの１セクタ前の書き込み対象セクタに対するＡｌｌ０書き込み動作を行わせる処理を行う（ステップＳ１１０２）。
【００６２】
そして、制御装置１００は、メモリシステムｍｅｍｓでのＡｌｌ０書き込み動作完了まで待機し（ステップＳ１１０３）、信号ＲＤＹを確認し（ステップＳ１１０４）、一連の処理を終了する。書き込み対象セクタ情報が更新されていない場合（ステップＳ１１０１：Ｎｏ）、一連の処理を終了する。
【００６３】
図１２は、制御装置によるＳＢＣＬ−ＲＥＡＤ動作およびＥＲＡＳＥ動作を行わせる処理手順例を示すフローチャートである。制御装置１００は、書き込み対象セクタ情報が更新されたか否かを判断する（ステップＳ１２０１）。書き込み対象セクタ情報が更新された場合（ステップＳ１２０１：Ｙｅｓ）、制御装置１００は、書き込み禁止セクタ情報を参照することにより、書き込み禁止セクタを確認する（ステップＳ１２０２）。
【００６４】
制御装置１００は、書き込み禁止セクタに基づく現書き込み対象セクタの次に書き込み対象となるセクタに対してＳＢＣＬ−ＲＥＡＤ動作およびＥＲＡＳＥ動作を行わせる処理を行う（ステップＳ１２０３）。制御装置１００は、メモリシステムｍｅｍｓでＳＢＣＬ読み出しと消去書き込みとの実行完了まで待機し（ステップＳ１２０４）、信号ＯＶＥＲＦＬＯＷの状態がいずれであるかを判断する（ステップＳ１２０５）。
【００６５】
信号ＯＶＥＲＦＬＯＷが書き込み禁止を示す場合（ステップＳ１２０５：禁止）、制御装置１００は、書き込み禁止セクタ情報へ次に書き込み対象セクタとなるセクタを示す情報を追加し（ステップＳ１２０６）、信号ＲＤＹを確認し（ステップＳ１２０７）、ステップＳ１２０２へ戻る。信号ＯＶＥＲＦＬＯＷが書き込み禁止を示していない場合（ステップＳ１２０５：許可）、制御装置１００は、信号ＲＤＹを確認し（ステップＳ１２０８）、一連の処理を終了する。
【００６６】
ステップＳ１２０１において、書き込み対象セクタ情報が更新されていない場合（ステップＳ１２０１：Ｎｏ）、一連の処理を終了する。
【００６７】
図１３は、制御装置によるＳＢＣＬ＿ＥＲＲの確認処理手順例を示すフローチャートである。制御装置１００は、書き込み対象セクタ情報が更新されたか否かを判断する（ステップＳ１３０１）。書き込み対象セクタ情報が更新された場合（ステップＳ１３０１：Ｙｅｓ）、制御装置１００は、信号ＳＢＣＬ＿ＥＲＲの状態を確認することによって、劣化していると判定されたメモリセルがあるか否かを判断する（ステップＳ１３０２）。
【００６８】
劣化していると判定されたメモリセルがある場合（ステップＳ１３０２：Ｙｅｓ）、制御装置１００は、ＳＢＣＬ−ＲＥＡＤ動作を行った書き込み対象セクタの指定アドレスについて、読み出し動作を行わせる処理を行う（ステップＳ１３０３）。制御装置１００は、ＦＬＡＧにより対象アドレスのメモリが劣化していることを示すか否かを判断する（ステップＳ１３０４）。
【００６９】
ＦＬＡＧが設定されている場合（ステップＳ１３０４：Ｙｅｓ）、制御装置１００は、指定アドレスを書き込み禁止アドレスとして設定し（ステップＳ１３０５）、ステップＳ１３０６へ移行する。ＦＬＡＧが設定されていない場合（ステップＳ１３０４：Ｎｏ）、制御装置１００は、アドレスカウンタによって、指定アドレスをフルカウントしたか否かを判断する（ステップＳ１３０６）。
【００７０】
指定アドレスがフルカウントされた場合（ステップＳ１３０６：Ｙｅｓ）、制御装置１００は、書き込み禁止アドレス情報に設定された書き込み禁止アドレスを登録し（ステップＳ１３０７）、一連の処理を終了する。指定アドレスがフルカウントされていない場合（ステップＳ１３０６：Ｎｏ）、制御装置１００は、指定アドレスをデクリメントし（ステップＳ１３０８）、ステップＳ１３０３へ戻る。
【００７１】
ステップＳ１３０１において、書き込み対象セクタ情報が更新されていない場合（ステップＳ１３０１：Ｎｏ）、一連の処理を終了する。ステップＳ１３０２において、劣化していると判定されたメモリセルがない場合（ステップＳ１３０２：Ｎｏ）、一連の処理を終了する。
【００７２】
以上説明したように、制御装置１００は、書き込み対象セクタの変化時に、書き込み対象セクタでなくなったセクタにＡｌｌ０書き込みを行い、現在書き込みがされているセクタの次に書き込み対象セクタとなるセクタ内のメモリセルの劣化を判定する。これにより、Ａｌｌ０書き込みから劣化判定までの期間を長くでき、不揮発メモリｍｅｍを使用中であっても、メモリセルの劣化を判定することができる。
【００７３】
また、制御装置１００は、劣化の判定結果を記憶部１０１に記憶させる。そして、制御装置１００は、記憶部１０１に記憶された書き込み対象セクタについての判定結果に基づいて、書き込み対象セクタ内のメモリセルのうち、劣化していると判定されたメモリセル以外のメモリセルについての書き込みを行わせる。これにより、メモリセルの劣化によるデータ不良が発生するのを防止することができる。
【００７４】
また、制御装置１００は、次に書き込み対象セクタとなるセクタについて劣化判定を行う。これにより、Ａｌｌ０書き込みから劣化判定までの期間を最も長くでき、不揮発メモリｍｅｍを使用中であっても、メモリセルの劣化判定を精度良く行うことができる。
【００７５】
また、制御装置１００は、次に書き込み対象セクタとなるセクタについての劣化判定において、所定数以上のメモリセルについて劣化していると判定された場合、当該セクタを書き込み禁止セクタに設定する。そして、制御装置１００は、当該セクタの次に書き込み対象セクタとなるセクタについて劣化判定を行う。これにより、劣化しているメモリセルが多いセクタを書き込み対象セクタから除外することができ、劣化判定によって、次に書き込み対象セクタとなるセクタについて、判定済みとしておくことができる。
【００７６】
なお、本実施の形態で説明した制御方法は、予め用意された制御プログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本制御プログラムは、磁気ディスク、光ディスク、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）フラッシュメモリなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また制御プログラムは、インターネット等のネットワークを介して配布してもよい。
【符号の説明】
【００７７】
１００  制御装置
１０１  記憶部
６０１  Ａｌｌ０書き込み動作部
６０２  判定動作部
６０３  消去動作部
６０４  書き込み動作部
ｓｅｃ０〜ｓｅｃ３  セクタ
ｍｅｍ  不揮発メモリ
ｍｅｍｓ  メモリシステム
【図１】
2014137647.tif 000003
【図２】
2014137647.tif 000004
【図３】
2014137647.tif 000005
【図４】
2014137647.tif 000006
【図５】
2014137647.tif 000007
【図６】
2014137647.tif 000008
【図７】
2014137647.tif 000009
【図８】
2014137647.tif 000010
【図９】
2014137647.tif 000011
【図１０】
2014137647.tif 000012
【図１１】
2014137647.tif 000013
【図１２】
2014137647.tif 000014
【図１３】
2014137647.tif 000015