(57)【特許請求の範囲】
【請求項１】
時刻情報を取り出し可能である計時手段と、
計時手段から時刻情報を取り出し、得られた時刻情報に基づき演算加工によりエラーチェックを行うページを決定する決定手段と、
決定手段により決定されたページを指定して、記憶されているデータを読み出しエラーチェックを行う処理手段と、
前記処理手段によるエラーチェックの際にエラービット数を求める計数手段と
を具備し、
処理手段は、計数手段により計数されたエラービット数と第１の閾値を比較し、エラービット数が第１の閾値より大きい場合には、当該エラーチェックに係るブロックに対するリフレッシュを行い、
更に、処理手段は、エラービット数が第１の閾値以下の場合には、計数手段により計数されたエラービット数と第１の閾値より小さい第２の閾値を比較し、エラービット数が第２の閾値より大きい場合には、当該エラーチェックに係るブロックにおける消去回数と読み出し回数とに基づき、当該エラーチェックに係るブロック内の全ページに対するエラーチェックを行う
ことを特徴とするフラッシュメモリの劣化検査装置。
【請求項２】
処理手段は、決定手段により決定されたページをオフセット値として、各ブロックにおける前記オフセット値のページを順次指定して記憶されているデータを読み出しエラーチェックを行うことを特徴とする請求項１に記載のフラッシュメモリの劣化検査装置。
【請求項３】
時刻情報を取り出し可能である計時手段を参照し、該計時手段から時刻情報を取り出す時刻取出ステップと、
得られた時刻情報に基づき演算加工によりエラーチェックを行うページを決定する決定ステップと、
決定ステップにより決定されたページを指定して、記憶されているデータを読み出しエラーチェックを行う処理ステップと、
前記処理ステップによるエラーチェックの際にエラービット数を求める計数ステップと
を具備し、
処理ステップでは、計数ステップにより計数されたエラービット数と第１の閾値を比較し、エラービット数が第１の閾値より大きい場合には、当該エラーチェックに係るブロックに対するリフレッシュを行い、
更に、処理ステップでは、エラービット数が第１の閾値以下の場合には、計数ステップにより計数されたエラービット数と第１の閾値より小さい第２の閾値を比較し、エラービット数が第２の閾値より大きい場合には、当該エラーチェックに係るブロックにおける消去回数と読み出し回数とに基づき、当該エラーチェックに係るブロック内の全ページに対するエラーチェックを行う
ことを特徴とするフラッシュメモリの劣化検査方法。
【請求項４】
処理ステップでは、決定ステップにより決定されたページをオフセット値として、各ブロックにおける前記オフセット値のページを順次指定して記憶されているデータを読み出しエラーチェックを行うことを特徴とする請求項３に記載のフラッシュメモリの劣化検査方法。
【請求項５】
データが記憶されているフラッシュメモリに対しページを指定して、記憶されているデータを読み出しエラーチェックを行ってフラッシュメモリの劣化検査を行う装置に用いられるコンピュータを、
時刻情報を取り出し可能である時計を参照して時刻情報を取り出し、得られた時刻情報に基づき演算加工によりエラーチェックを行うページを決定する決定手段、
決定手段により決定されたページを指定して、記憶されているデータを読み出しエラーチェックを行う処理手段、
前記処理手段によるエラーチェックの際にエラービット数を求める計数手段
として機能させ、
処理手段は、計数手段により計数されたエラービット数と第１の閾値を比較し、エラービット数が第１の閾値より大きい場合には、当該エラーチェックに係るブロックに対するリフレッシュを行い、
更に、処理手段は、エラービット数が第１の閾値以下の場合には、計数手段により計数されたエラービット数と第１の閾値より小さい第２の閾値を比較し、エラービット数が第２の閾値より大きい場合には、当該エラーチェックに係るブロックにおける消去回数と読み出し回数とに基づき、当該エラーチェックに係るブロック内の全ページに対するエラーチェックを行う
ことを特徴とするフラッシュメモリの劣化検査用プログラム。
【請求項６】
処理手段は、決定手段により決定されたページをオフセット値として、各ブロックにおける前記オフセット値のページを順次指定して記憶されているデータを読み出しエラーチェックを行うことを特徴とする請求項５に記載のフラッシュメモリの劣化検査用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、フラッシュメモリの劣化検査装置、劣化検査方法及劣化検査用プログラムに関するものである。
【背景技術】
【０００２】
ＮＡＮＤ型フラッシュメモリについては、以下の特性が知られている。ＮＡＮＤ型フラッシュメモリでは、複数ブロックを有し、更に各ブロックに複数のページが含まれるという構造を採用している。消去についてはブロック単位で行われ、消去動作はＰ型半導体層に電圧をかけて浮遊ゲートから電子を引き抜くことで行われる。
【０００３】
一方、情報の書き込みについては、量子トンネル効果により電子を浮遊ゲート内に注入することで行われる。この場合、回路基板であるＮ型半導体を接地電位にし、微小な電流によって制御ゲートに書き込み電圧を印加する。浮遊ゲート内に蓄積された電子が情報を記憶する。ここに、書き込みはページ単位で行われ、同一ページ内の全てのセルに対して、同時に制御ゲートに書き込み電圧を印加することで書き込み動作が行われる。
【０００４】
更に、読み出し動作は、ページ単位で行われる。選択しないセルの制御ゲートに電圧をかけ導通状態にする。選択したセルの浮遊ゲートに電子がある一定量ある場合にはソースとドレイン間に電流があまり流れず、この状態が”０”とされる。また、浮遊ゲートに電子がある一定量ない場合にはソースとドレイン間に電流が比較的流れ、この状態が”１”とされる。
【０００５】
上記のように消去動作は複数ページを含むブロック単位でしか行えず、また、１動作では上書きができないために、消去してから書き込みを行う必要があるため、１ページの書き換えでも（ＳＬＣ（Single-Level-Cell ）の場合）一度１ブロック６４ページ全ての内容をＮＡＮＤ型フラッシュメモリの外部に読み出して、一時的に保持しておき、１ブロック６４ページ全てを消去する必要がある。ＮＡＮＤ型フラッシュメモリの外部の記憶領域で必要な書き換えの加工処理を行ってから、その消去済みのブロックに改めて書き戻す動作が行われる。
【０００６】
また、ＮＡＮＤ型フラッシュメモリでは、その寿命について以下の通りの事項が知られている。まず、ＮＡＮＤ型フラッシュメモリでは、書き換え可能回数に上限があるほか、記録内容の保持期間も有限（最大で１０年から数十年）であり、劣化により書き込んだ情報はいつか失われる。また回路構造上、ＮＯＲ型よりもＮＡＮＤ型の方が劣化が進みやすい。更に、データを常に記録するような用途で使用すると、特性上急激な劣化（不良ブロック）が発生し、製品寿命が著しく短くなることが予測されると言われている。
【０００７】
一般的に、メモリセルに対する読み書きによってゲート酸化膜の劣化が進行すると電荷の蓄積量が当初の設計値とずれてしまい”０”と”１”の差異が判別できなくなることで寿命となるが、読み書きが全く行われないブロックでも近隣セルの動作に伴って電圧が加わるために、「読み出しディスターブ」(Read Disturb)と呼ばれる劣化が進行することも知られている。
【０００８】
ここで、一つの例を挙げると、例えばデータ消去回数が０回のとき、データ破壊が始まる可能性が高い読み出し回数は、１０万回程度であり、例えばデータ消去回数が６万回のとき、データ破壊が始まる可能性が高い読み出し回数は、１万回程度である。この関係をグラフ化すると図５の特性線Ｓの如くなる。
【０００９】
上記に明らかな通り、ＮＡＮＤ型フラッシュメモリではデータの書き換えおよび消去を繰り返すとセルが劣化し、データを書き込むことができなくなる。このため、特定のブロックのみにデータの書き込み消去が集中するとそのブロックだけ早く寿命を迎えてしまうが、寿命となった１ブロックを避けてフラッシュメモリを使用することも考えられているが、一般的に1ブロックの寿命で当該フラッシュメモリが寿命となるという使用例も多い。
【００１０】
この現象を回避するために、ウェアレベリングという手法が用いられている。ウェアレベリングにはいくつかの手法があるが、ＮＡＮＤ型フラッシュメモリを使った記憶媒体では、メモリチップ外部からのアドレス信号をチップ内部的に異なるアドレスに変換して、各ブロックの書き込み消去回数が平準化するようにする手法が広く用いられている。
【００１１】
上記の読み出しディスターブエラーの防止とｂａｄブロック処理を効率的に行うことを目的として、フラッシュメモリデバイスにリフレッシュ管理テーブルを設け、物理ブロック毎のデータ読み出し回数、消去回数を随時記憶、更新する。データ読み出し回数が予め決定してなる閾値に至ったときに、該物理ブロックにフラグ“Ｌｏｗ”を設定する。またデータ読み出し時にＥＣＣエラーが発見された物理ブロックにはフラグ“Ｈｉｇｈ”を設定する。そして適宜リフレッシュ管理テーブルをサーチし、フラグ“Ｌｏｗ”のブロックはリフレッシュし、フラグ“Ｈｉｇｈ”のブロックはｂａｄブロック処理を行うようにした記憶装置が知られている（特許文献１参照）。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２００９−２２４０１３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
しかしながら、上記の記憶装置では、処理がｂａｄブロックを見つけ出すことが中心であり、必ずしも、各ブロックの書き込み消去回数が平準化することにはつながらないものである。また、劣化に対応して定期的にフラッシュメモリのページについて読み出しを行い、データの劣化状況を確認するパトロールと称される処理が行われるが、全領域の確認には多大な時間を要し、パトロールが許容される時間内に全領域の確認を行うことは困難である。
【００１４】
本発明はこのようなフラッシュメモリに関する現状に鑑みてなされたもので、その目的は、フラッシュメモリ全体を無駄なく効率よくパトロールすることができ、データの信頼性を向上させることが可能なフラッシュメモリの劣化検査装置、劣化検査方法及び劣化検査用プログラムを提供することである。
【課題を解決するための手段】
【００１５】
本発明に係るフラッシュメモリの劣化検査装置は、時刻情報を取り出し可能である計時手段と、計時手段から時刻情報を取り出し、得られた時刻情報に基づき演算加工によりエラーチェックを行うページを決定する決定手段と、決定手段により決定されたページを指定して、記憶されているデータを読み出しエラーチェックを行う処理手段と、前記処理手段によるエラーチェックの際にエラービット数を求める計数手段とを具備し、
処理手段は、計数手段により計数されたエラービット数と第１の閾値を比較し、エラービット数が第１の閾値より大きい場合には、当該エラーチェックに係るブロックに対するリフレッシュを行い、更に、処理手段は、エラービット数が第１の閾値以下の場合には、計数手段により計数されたエラービット数と第１の閾値より小さい第２の閾値を比較し、エラービット数が第２の閾値より大きい場合には、当該エラーチェックに係るブロックにおける消去回数と読み出し回数とに基づき、当該エラーチェックに係るブロック内の全ページに対するエラーチェックを行うことを特徴とする。
【００１６】
本発明に係るフラッシュメモリの劣化検査装置は、処理手段は、決定手段により決定されたページをオフセット値として、各ブロックにおける前記オフセット値のページを順次指定して記憶されているデータを読み出しエラーチェックを行うことを特徴とする。
【００１９】
本発明に係るフラッシュメモリの劣化検査方法は、時刻情報を取り出し可能である計時手段を参照し、該計時手段から時刻情報を取り出す時刻取出ステップと、得られた時刻情報に基づき演算加工によりエラーチェックを行うページを決定する決定ステップと、決定ステップにより決定されたページを指定して、記憶されているデータを読み出しエラーチェックを行う処理ステップと、前記処理ステップによるエラーチェックの際にエラービット数を求める計数ステップとを具備し、処理ステップでは、計数ステップにより計数されたエラービット数と第１の閾値を比較し、エラービット数が第１の閾値より大きい場合には、当該エラーチェックに係るブロックに対するリフレッシュを行い、更に、処理ステップでは、エラービット数が第１の閾値以下の場合には、計数ステップにより計数されたエラービット数と第１の閾値より小さい第２の閾値を比較し、エラービット数が第２の閾値より大きい場合には、当該エラーチェックに係るブロックにおける消去回数と読み出し回数とに基づき、当該エラーチェックに係るブロック内の全ページに対するエラーチェックを行うことを特徴とする。
【００２０】
本発明に係るフラッシュメモリの劣化検査方法は、処理ステップでは、決定ステップにより決定されたページをオフセット値として、各ブロックにおける前記オフセット値のページを順次指定して記憶されているデータを読み出しエラーチェックを行うことを特徴とする。
【００２３】
本発明に係るフラッシュメモリの劣化検査用プログラムは、データが記憶されているフラッシュメモリに対しページを指定して、記憶されているデータを読み出しエラーチェックを行ってフラッシュメモリの劣化検査を行う装置に用いられるコンピュータを、時刻情報を取り出し可能である時計を参照して時刻情報を取り出し、得られた時刻情報に基づき演算加工によりエラーチェックを行うページを決定する決定手段、決定手段により決定されたページを指定して、記憶されているデータを読み出しエラーチェックを行う処理手段、前記処理手段によるエラーチェックの際にエラービット数を求める計数手段として機能させ、処理手段は、計数手段により計数されたエラービット数と第１の閾値を比較し、エラービット数が第１の閾値より大きい場合には、当該エラーチェックに係るブロックに対するリフレッシュを行い、更に、処理手段は、エラービット数が第１の閾値以下の場合には、計数手段により計数されたエラービット数と第１の閾値より小さい第２の閾値を比較し、エラービット数が第２の閾値より大きい場合には、当該エラーチェックに係るブロックにおける消去回数と読み出し回数とに基づき、当該エラーチェックに係るブロック内の全ページに対するエラーチェックを行うことを特徴とする。
【００２４】
本発明に係るフラッシュメモリの劣化検査用プログラムでは、処理手段は、決定手段により決定されたページをオフセット値として、各ブロックにおける前記オフセット値のページを順次指定して記憶されているデータを読み出しエラーチェックを行うことを特徴とする。
【発明の効果】
【００２７】
本発明では、計時手段から時刻情報を取り出し、得られた時刻情報に基づき演算加工によりエラーチェックを行うページを決定し、決定されたページを指定して、記憶されているデータを読み出しエラーチェックを行うので、ランダムなページが指定される確率が上がり、フラッシュメモリ全体を無駄なく効率よくパトロールすることができ、データの信頼性を向上させることが可能となる。
【００２８】
本発明では、決定されたページをオフセット値として、各ブロックにおける前記オフセット値のページを順次指定して記憶されているデータを読み出しエラーチェックを行うので、最初に指定したページが存在するブロックの次には隣接するブロックの同ページのデータを読み出すようにパトロールを進めることができ、フラッシュメモリ全体を無駄なく効率よくパトロールすることが可能となる。
【００２９】
本発明では、エラーチェックの際にエラービット数を求め、計数されたエラービット数と第１の閾値を比較し、エラービット数が第１の閾値との大小に基づきリフレッシュ処理を行うので、ブロック内の全ページのデータをチェックすることなく、必要な場合にエラー修復が行われることになり、データの信頼性を向上させることが可能となる。
【００３０】
本発明では、計数されたエラービット数と第１の閾値より小さい第２の閾値を比較し、エラービット数が第２の閾値より大きい場合には、当該エラーチェックに係るブロックにおける消去回数と読み出し回数とに基づき、当該エラーチェックに係るブロック内の全ページに対するエラーチェックを行うので、ブロック内の全ページについてリフレッシュを行うほどまではエラーが生じていないが、全ページを検査する必要があることが想定できるときにきめ細かく、全ページのエラーチェックを行ってデータの信頼性向上を図ることができる。
【図面の簡単な説明】
【００３１】
【図１】本発明の実施形態に係るフラッシュメモリの劣化検査装置を採用するコンピュータシステムの要部ブロック図。
【図２】本発明の実施形態に係るフラッシュメモリの劣化検査装置によるエラーチェック時のページ読み出しの手順を示す図。
【図３】本発明の実施形態に係るフラッシュメモリの劣化検査装置によるパトロール時のページ読み出しの動作を示すフローチャート。
【図４】本発明の実施形態に係るフラッシュメモリの劣化検査装置によるパトロール時のページ読み出しの動作を示すフローチャート。
【図５】フラッシュメモリの読み出しと消去による劣化特性のグラフを示す図。
【発明を実施するための形態】
【００３２】
以下添付図面を参照して本発明に係るフラッシュメモリの劣化検査装置、劣化検査方法及劣化検査用プログラムの実施形態を説明する。図１は、実施例に係るフラッシュメモリの劣化検査装置を採用するコンピュータシステムの一部である。このシステムは、ソフトウェア１とハードウェア２とにより構成されている。ソフトウェア１はプログラムが記憶される主メモリ或いは外部記憶装置に格納されており、主メモリに呼び出されてプロセッサにより実行される。
【００３３】
ソフトウェア１には、ドライバを呼び出してフラッシュメモリへの書込み或いは読み出しを要求するデータアクセスソフトウェア（アプリケーションプログラム）１１と、フラッシュメモリ用ドライバソフトウェア（以下、ドライバ）１２とが含まれている。ドライバ１２は、フラッシュメモリを制御するソフトウェアであり、アプリケーションプログラムからの要求に応じてデータの書込み或いは読み出しを行う他に、本発明に係るフラッシュメモリの劣化検査用プログラムの実施形態を構成し、データの信頼性を向上させる機能を有している。
【００３４】
ハードウェア２は、ドライバ１２を動作させると共に各部を統括制御するプロセッサ２１を備えている。プロセッサ２１には、時刻情報を取り出し可能である計時手段であるＨＷ（ハードウェア）タイマ２２、ドライバ１２が動作する際に用いられる揮発性メモリ２３、フラッシュメモリ２５にアクセスするためのフラッシュメモリコントローラ２４が接続されている。更に、フラッシュメモリコントローラ２４には、制御対象であるフラッシュメモリ２５が接続されている。
【００３５】
ドライバ１２は、決定手段３１、処理手段３２、計数手段３３を備える。決定手段３１は、計時手段であるタイマから時刻情報を取り出し、得られた時刻情報に基づき演算加工によりエラーチェックを行うページを決定する。処理手段３２は、決定手段３１により決定されたページを指定して、記憶されているデータを読み出しエラーチェックを行う。ここに好適には、処理手段３２は、決定手段３１により決定されたページをオフセット値として、各ブロックにおける前記オフセット値のページを順次指定して記憶されているデータを読み出しエラーチェックを行う。
【００３６】
計数手段３３は適宜備える構成とすることができる。計数手段３３は、処理手段３２によるエラーチェックの際にエラービット数を求める。この場合、処理手段３２は、計数手段３３により計数されたエラービット数と第１の閾値Ａを比較し、エラービット数が第１の閾値Ａより大きい場合には、当該エラーチェックに係るブロックに対するリフレッシュを行う。ここに、エラーチェックは、ＥＣＣ（Error Check & Correction）を採用することができる。
【００３７】
更に好適には、処理手段３２は、エラービット数が第１の閾値Ａ以下の場合には、計数手段３３により計数されたエラービット数と第１の閾値より小さい第２の閾値Ｂを比較し、エラービット数が第２の閾値Ｂより大きい場合には、当該エラーチェックに係るブロックにおける消去回数と読み出し回数とに基づき、当該エラーチェックに係るブロック内の全ページに対するエラーチェックを行う。各ブロックにおける消去回数と読み出し回数（ブロック内の全ページを読み出して、１回とする）は、ドライバ１２が求めて、揮発性メモリ２３に記憶しておくことができる。
【００３８】
フラッシュメモリ２５については、例えば、図２に示すように、１〜ｎまでの複数ページを備えるブロックが複数ブロック集合して構成されたものである。ここでは、３ブロックが示されているが、フラッシュメモリ２５の全体の容量が数Ｇバイトであり、各ブロックには、数十〜数百のページが含まれて構成される。以上の通りに構成されたコンピュータシステムにおいては、ドライバ１２が図３、図４に示される通りのフローチャートに対応するプログラムを実行することにより、各手段として動作するので、このフローチャートに基づき動作を説明する。
【００３９】
所要時にフラッシュメモリの劣化検査用プログラム（劣化検査システム）が起動されると、図３のフローチャートがスタートとなり、ＨＷタイマ２２より時刻情報を取得する（Ｓ１１）。次に、取得した時刻情報に基づきエラーチェックページのアドレス（物理アドレス）を演算加工して求める（Ｓ１２）。演算加工としては、ＨＷタイマ２２が保持している時刻情報（ビット列）をＸとして、フラッシュメモリの総ページ数より十分大きな値となるように、上記の情報Ｘの値を冪乗の値（ｍ回の冪乗では、Ｘm）を生成し、この冪乗の値を上記総ページ数で除算して剰余を求め、この剰余をエラーチェックページの物理アドレスとする手法を挙げることができる。
【００４０】
また、演算加工の他の手法としては、システム起動後の、ある一定回数のフラッシュメモリに対する各アクセス時の"ＨＷタイマ２２が保持している値"を全て乗算し、使用しているフラッシュメモリの総ページ数に対して十分大きな値を生成後、その値と総物理ページ数の除算の剰余を求めることで行うことも可能である。
更に第３の手法として、フラッシュメモリ制御ソフトウェアがフラッシュメモリに不定期に保存する管理情報に、保存時点でのハードウェアタイマ値を含め、常時、管理情報にひとつ、もしくは複数の タイマ値を保持する。
そして、システム起動時に、"ハードウェアタイマが保持している値"と"管理情報に保持しているタイマ値"を乗算し、使用しているフラッシュメモリの総ページ数に対して十分大きな値を生成後、その値と総物理ページ数の除算の剰余を求めることで行うことも可能である。
【００４１】
更に第４の手法として、システム起動時に、"ハードウェアタイマが保持している値"と"フラッシュメモリ制御ソフトウェアが保持している各ブロックのイレーズカウント（消去回数）を全て加算した値"を乗算し、使用しているフラッシュメモリの総ページ数に対して十分大きな値を生成後、その値と総物理ページ数の除算の剰余を求めることで行うことも可能である。
第５の手法として、システム起動時に、"ハードウェアタイマが保持している値"と"ハードウェア リアルタイムクロックが保持している値"を乗算し、使用しているフラッシュメモリの総ページ数に対して十分大きな値を生成後、その値と総物理ページ数の除算の剰余を求めることで行うことも可能である。
【００４２】
上記ステップＳ１２に続き、最初のブロックにおいてデータを読み出すべき物理アドレスと、オフセット値を求める（Ｓ１３）。例えば、上記ステップＳ１２において求められた値が「ｎ＋２」であれば、最初のブロックは第２番目の物理ブロックとなる。第２番目の物理ブロックにおいて物理アドレス「２（＝（ｎ＋２）−ｎ）」と、オフセット値として「２」が求められる。そこで、読み出し対象の最初のブロックである第２番目の物理ブロックにおける物理アドレス「２」からデータを読み出す（Ｓ１４）。
【００４３】
ステップＳ１４に続き、読み出したデータを用いてエラーチェック処理を行うなどのデータ信頼性向上の処理（図４に詳細を示す処理）を行う（Ｓ１５）。このように、劣化検査システムの起動の度に、ＨＷタイマ２２から取得した時刻情報に基づきエラーチェックページのアドレスを求めるので、システムの起動毎にランダムなページからのデータ読み出しが行われるようになり、ブロック全体の劣化状態を検査して把握することが可能である。ステップＳ１５が終了すると、「ｉ」を「ｉ＋１」にインクリメントする（Ｓ１６）。
【００４４】
ステップＳ１６に続き、インクリメントされた「ｉ」を参照して全ブロック数を超過したのかを検出し（Ｓ１７）、超過していなければｉブロックにおいてオフセット値の物理アドレスからデータを読み出し（Ｓ１８）、ステップＳ１５へ戻る。一方、ステップＳ１７において、超過していることが検出されると、オフセット値を１インクリメントし（Ｓ１９）ステップＳ１４へ戻って処理を続ける。
【００４５】
図２では、ステップＳ１２の演算結果が「ｎ＋２」であったため、第２ブロックのアドレス「２」を第１回目の読み出しとし、次に第３ブロックのアドレス「２」を第２回目の読み出しとする。ここで、「ｉ」を「ｉ＋１」にインクリメントすると、「ｉ」が全ブロック数を超えるので、オフセット値を１インクリメントしたアドレス「３」を用いる。このため、先頭ブロックである第１ブロックのアドレス「３」を第３回目の読み出しとしている。先頭ブロックの次には最初に読み出したブロックである第２ブロックへ戻ると共に、アドレス「３」を第４回目の読み出しとし、次に第３ブロックのアドレス「３」を第５回目の読み出しする。ここで、「ｉ」を「ｉ＋１」にインクリメントすると、「ｉ」が全ブロック数を超えるので、オフセット値を１インクリメントしたアドレス「４」を用いる。声により、先頭ブロックである第１ブロックのアドレス「４」を第６回目の読み出しとしている。以下同様に各ブロックについて１ページずつデータの読み出しを行うと、次に移動するようにして処理を続ける。
【００４６】
このように劣化検査システムの起動の度に、ＨＷタイマ２２から取得した時刻情報に基づき順次にリードするブロックのエラーチェックページのアドレスをオフセットとして求めるので、同じブロックについてのエラーチェック処理が何時までも続くことなく、全てブロックについてランダムなページからのデータ読み出しが行われ易くなり、フラッシュメモリ全体の劣化状態を検査して把握することが可能である。
【００４７】
次に、エラーチェック処理を行うなどのデータ信頼性向上の処理（ステップＳ１５）を図４に示すフローチャートを用いて詳細に説明する。ステップＳ１５においてエラーチェックを行った結果のエラービット数ＥＳを求める（Ｓ２１）。次に、予め設定してある第１の閾値Ａと上記エラービット数ＥＳを比較し（Ｓ２２）、Ａ＜ＥＳを検出する（Ｓ２３）。このステップＳ２３においてＹＥＳとなると、このエラーチェックを行ったページが属しているブロックの全ページをリフレッシュ対象としてリフレッシュを行い（Ｓ２４）、ステップＳ１６へ進むことになる。これにより、１ページのエラービット数ＥＳが大きく、同じブロック内の他のページについてもエラーが生じていると予測できるときにエラーチェック無しに全体をリフレッシュしてデータの信頼性向上を図ることができる。
【００４８】
一方、ステップＳ２３においてＮＯへ分岐した場合には、予め設定してある第２の閾値Ｂ（Ｂ＜Ａ）と上記エラービット数ＥＳを比較し（Ｓ２５）、Ｂ＜ＥＳを検出する（Ｓ２６）。このステップＳ２６においてＹＥＳとなると、ドライバ１２が予め例えば揮発性メモリ２３に蓄積しておいた当該ページが属しているブロックに関する消去回数と読み出し回数とを取得し、この回数について図５のグラフ上にプロットした場合に、図５に示される劣化閾値線ＴＨより上にあるかを検出し（Ｓ２７）、上か否かの判定を行う（Ｓ２８）。この結果、ＹＥＳへ分岐すると当該ブロック内の全ページをエラーチェック対象としてエラーチェックする（Ｓ２９）。このステップＳ２９における各ページの処理は、図４のフローチャートにおけるステップＳ２１〜Ｓ２９を行うことができる。
【００４９】
これにより、ブロック内の全ページのリフレッシュを行うほどまではエラーが生じていないが、全ページを検査する必要があることが想定できるときにきめ細かく、全ページのエラーチェックを行ってデータの信頼性向上を図ることができる。なお、ステップＳ２７では、図５に示される劣化閾値線ＴＨ上において、当該ページが属しているブロックに関する消去回数に対応する読み出し回数Ｒを求め、当該ページが属しているブロックに関する読み出し回数が上記読み出し回数Ｒより大であるかを検出するようにしても良い。
【符号の説明】
【００５０】
１  ソフトウェア
２  ハードウェア
１１  データアクセスソフトウェア
１２  ドライバ
２１  プロセッサ
２２  ＨＷタイマ
２３  揮発性メモリ
２４  フラッシュメモリコントローラ
２５  フラッシュメモリ
３１  決定手段
３２  処理手段
３３  計数手段
【要約】
【課題】フラッシュメモリ全体を無駄なく効率よくパトロールする。
【解決手段】時刻情報を取り出し可能である計時手段のＨＷタイマ２２と、ＨＷタイマ２２から時刻情報を取り出し、得られた時刻情報に基づき演算加工によりエラーチェックを行うページを決定する決定手段３１と、決定手段３１により決定されたページを指定して、記憶されているデータを読み出しエラーチェックを行う処理手段３２とを具備する。
【選択図】図１【図１】
0005483378.tif 000002
【図２】
0005483378.tif 000003
【図３】
0005483378.tif 000004
【図４】
0005483378.tif 000005
【図５】
0005483378.tif 000006