(57)【要約】【課題】フラッシュメモリにおいて発生するビットエラーを効果的に予防する。【解決手段】フラッシュメモリ４からホストシステム２によって読み出された一時記憶データが、ビットエラーに関連する閾値を超えているか否かを調べ、閾値を超えている場合に、読み出した一時記憶データをフラッシュメモリ４に書き戻す。一時記憶データにエラーがあればエラー訂正部６によってエラーを訂正して書き戻す。閾値は、たとえば、読み出し回数、ビットエラー数、ビットエラーの累積発生回数を含む。リードディスターブによるビットエラーの予防に好適であり、経時的に変化したビットデータを回復させることができ、ビットエラーの発生を未然に防止してフラッシュメモリ４の信頼性を向上させることができる。【選択図】図１
2008192267.tif 000002
【特許請求の範囲】
【請求項１】
再書き込み可能な不揮発性半導体メモリに記憶されているビットデータが変化して発生するビットエラーの予防方法であって、
前記不揮発性半導体メモリに記憶されている記憶データが、ホストシステムによって読み出される際に、ビットエラーに関連するリペア条件を満たすか否かを調べる工程と、
読み出された前記記憶データが前記リペア条件を満たす場合に、読み出された前記記憶データを前記不揮発性半導体メモリに書き戻す工程と、
を含むことを特徴とするビットエラーの予防方法。
【請求項２】
請求項１に記載のビットエラーの予防方法であって、
前記リペア条件が、予め設定された閾値によって条件付けられており、
前記記憶データの読み出しに先立って前記閾値を読み出す工程と、
読み出される前記記憶データの、前記閾値に対応する比較値が、前記閾値を超えているか否かを調べる工程と、
前記比較値が前記閾値を超えている場合に、読み出された前記記憶データを前記不揮発性半導体メモリに書き戻す工程と、
を含むことを特徴とするビットエラーの予防方法。
【請求項３】
請求項２に記載のビットエラーの予防方法であって、
前記ホストシステムの読み出し要求に応じて、前記記憶データを一時記憶データとして一時記憶部に記憶する工程と、
前記一時記憶データが前記一時記憶部に記憶されたときに、前記比較値が前記閾値を超えているか否かを調べる工程と、
前記比較値が前記閾値を超えている場合に、前記一時記憶データを前記不揮発性半導体メモリに書き戻す工程と、
を含むことを特徴とするビットエラーの予防方法。
【請求項４】
請求項３に記載のビットエラーの予防方法であって、
前記一時記憶データが前記一時記憶部に記憶されたときに、エラー訂正部が前記一時記憶データにエラーがあるか否かを調べる工程と、
前記一時記憶データにエラーがある場合に、前記エラー訂正部が、前記一時記憶データのエラーを訂正する工程と、
を含み、
エラーの訂正が行われた前記一時記憶データを前記不揮発性半導体メモリに書き戻すことを特徴とするビットエラーの予防方法。
【請求項５】
請求項２ないし請求項４のいずれかに記載のビットエラーの予防方法であって、
前記閾値が、前記記憶データの読み出し回数、または、読み出された前記記憶データに含まれるビットエラー数、または、読み出された前記記憶データのビットエラーの累積発生回数、の少なくともいずれか一つを含むことを特徴とするビットエラーの予防方法。
【請求項６】
請求項１ないし請求項５のいずれかに記載のビットエラーの予防方法であって、
所定のタイミングで、前記記憶データが記憶されている前記不揮発性半導体メモリの記憶領域に対して読み出しを行う工程、
を含むことを特徴とするビットエラーの予防方法。
【請求項７】
請求項６に記載のビットエラーの予防方法であって、
前記所定のタイミングが、電源投入時または電源切断時であることを特徴とするビットエラーの予防方法。
【請求項８】
請求項６または請求項７に記載のビットエラーの予防方法であって、
前記読み出しを行う工程が、不揮発性半導体メモリの記憶領域の全域もしくは一部領域に対して読み出しを行うことを特徴とするビットエラーの予防方法。
【請求項９】
請求項１ないし請求項８のいずれかに記載のビットエラーの予防方法であって、
前記ビットエラーが、リードディスターブエラーを含むことを特徴とするビットエラーの予防方法。
【請求項１０】
再書き込み可能な不揮発性半導体メモリと、
前記不揮発性半導体メモリに記憶されている記憶データを読み出す読み出し手段と、
を備え、
前記読み出し手段によって読み出される前記記憶データが、ビットエラーに関連するリペア条件を満たすか否かを調べる手段と、
読み出された前記記憶データが前記リペア条件を満たす場合に、読み出された前記記憶データを前記不揮発性半導体メモリに書き戻す手段と、
を備えることを特徴とする情報処理装置。
【請求項１１】
請求項１０に記載の情報処理装置であって、
前記リペア条件が、予め設定された閾値によって条件付けられており、
前記記憶データの読み出しに先立って前記閾値を読み出す手段と、
読み出される前記記憶データの、前記閾値に対応する比較値が、前記閾値を超えているか否かを調べる手段と、
前記比較値が前記閾値を超えている場合に、読み出された前記記憶データを前記不揮発性半導体メモリに書き戻す手段と、
を備えることを特徴とする情報処理装置。
【請求項１２】
請求項１１に記載の情報処理装置であって、
前記読み出し手段の読み出し要求に応じて、一時記憶データとして前記記憶データを一時的に記憶する一時記憶部、
を備え、
前記一時記憶データが前記一時記憶部に記憶されたときに、前記比較値が前記閾値を超えているか否かを調べる手段と、
前記比較値が前記閾値を超えている場合に、前記一時記憶データを前記不揮発性半導体メモリに書き戻す手段と、
を備えることを特徴とする情報処理装置。
【請求項１３】
請求項１２に記載の情報処理装置であって、
前記一時記憶データのエラーを訂正するエラー訂正部、
を備え、
前記一時記憶データが前記一時記憶部に記憶されたときに、前記エラー訂正部が、前記一時記憶データにエラーがあるか否かを調べる手段と、
前記一時記憶データにエラーがある場合に、前記エラー訂正部が、前記一時記憶データのエラーを訂正する手段と、
を備え、
エラーの訂正が行われた前記一時記憶データを前記不揮発性半導体メモリに書き戻すことを特徴とする情報処理装置。
【請求項１４】
請求項１１ないし請求項１３のいずれかに記載の情報処理装置であって、
前記不揮発性半導体メモリが、前記記憶データが記憶される記憶領域と、エラー訂正データが記憶される冗長領域とを有し、
前記閾値が、前記冗長領域に設定されていることを特徴とする情報処理装置。
【請求項１５】
請求項１４に記載の情報処理装置であって、
前記記憶領域が、ビットエラーに関する特性に基づいて複数の要素記憶領域に区分されており、
前記閾値が、前記要素記憶領域別に設定されていることを特徴とする情報処理装置。
【請求項１６】
請求項１１ないし請求項１５のいずれかに記載の情報処理装置であって、
前記閾値が、前記記憶データの読み出し回数、または、読み出された前記記憶データに含まれるビットエラー数、または、読み出された前記記憶データのビットエラーの累積発生回数、の少なくともいずれか一つを含むことを特徴とする情報処理装置。
【請求項１７】
請求項１０ないし請求項１６のいずれかに記載の情報処理装置であって、
所定のタイミングで、前記記憶データが記憶されている前記不揮発性半導体メモリの記憶領域に対して読み出しを行う手段、
を備えることを特徴とする情報処理装置。
【請求項１８】
請求項１７に記載の情報処理装置であって、
前記所定のタイミングが、電源投入時または電源切断時であることを特徴とする情報処理装置。
【請求項１９】
請求項１７または請求項１８に記載の情報処理装置であって、
前記読み出しを行う手段が、不揮発性半導体メモリの記憶領域の全域もしくは一部領域に対して読み出しを行うことを特徴とする情報処理装置。
【請求項２０】
請求項１０ないし請求項１９のいずれかに記載の情報処理装置であって、
前記ビットエラーが、リードディスターブエラーを含むことを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リードディスターブ等によって、不揮発性半導体メモリにおいて発生するビットエラーの予防方法、およびその予防方法を実現する情報処理装置に関する。
【背景技術】
【０００２】
不揮発性メモリの中でも、ＮＡＮＤフラッシュメモリは、単純な回路構成による高集積化や製造コスト減、ユーザによる書き込みの容易化を図ることを可能とするため、ＳＤメモリカードなどに大量に採用されている。
【０００３】
最近では、ＮＡＮＤフラッシュメモリは、ゲーム機などにも採用されている。ＮＡＮＤフラッシュメモリがゲーム機などで使用される際には、書き込みは発生せず、連続的な読み出しが発生する。すなわち、ＮＡＮＤフラッシュメモリがＲＯＭとして採用されることが多くなりつつある。
【０００４】
しかし、ゲーム機などでは、特定のプログラムが繰り返し読み出されることが多いため、プログラムが意図せず書き換えられる可能性が指摘され始めている。このような現象は“Ｒｅａｄ  Ｄｉｓｔｕｒｂ”現象と呼ばれており、本現象が発生するメカニズムについて、以下に簡単に説明する。
【０００５】
図６は、ＮＡＮＤフラッシュメモリの模式図である。ＮＡＮＤフラッシュメモリは、格子状に配線されたビット線４１とワード線４２、４３、４４、メモリセル５２、５３、選択トランジスタ５４などから構成されている。
【０００６】
メモリセル５２が格納する二値データ（“０”または“１”）を読み出す場合を考える。この場合、メモリセル５２は選択セル５２、メモリセル５３は非選択セル５３と呼ばれている。まず、選択トランジスタ５４により、選択セル５２が属するビット線４１が指定される。次に、選択セル５２が属するワード線４２に対して、低ゲート電圧Ｖ（Ｌｏｗ）＝０Ｖが印加される。そして、非選択セル５３が属するワード線４３に対して、高ゲート電圧Ｖ（Ｈｉｇｈ）〜５Ｖが印加される。このとき、非選択セル５３は微弱な書き込み状態にあるため、非選択セル５３のフローティングゲートに、電子がトラップされ、蓄積される。すなわち、選択セル５２が格納する二値データが繰り返し読み出されると、非選択セル５３の閾値電圧がシフトして、非選択セル５３が格納している二値データが、“１”から“０”に意図せず書き換えられる可能性がある。
【０００７】
もっとも、非選択セル５３が格納している二値データが意図せず書き換えられたとしても、データが新たに書き込まれる前に一括して消去される際に、非選択セル５３の機能を回復させることができる。しかし、書き込みは発生せず、連続的な読み出しが発生する場合には、非選択セル５３の機能を回復させることができなくなる。
【０００８】
つまり、ここでいうビットエラーとは、物理的な損傷による不可逆的なエラーではなく、記憶された二値データが、経時的に変化して発生する可逆的なエラーである。なかでも、リードディスターブによるビットエラー（リードディスターブエラー）は、書き込みや消去が行われることなく、フラッシュメモリの特定の記憶領域において読み出し処理が繰り返し実行されることで発生する。
【０００９】
以上に説明した“Ｒｅａｄ  Ｄｉｓｔｕｒｂ”現象を回避する手段を提供する文献として、以下の特許文献が挙げられる。
【００１０】
フラッシュメモリでは、エラー訂正機能を実装することによりデータの信頼を確保することが一般に行われている。エラー訂正機能としては、たとえばＥＣＣ（Ｅｒｒｏｒ  Ｃｈｅｃｋ  ａｎｄ  Ｃｏｒｒｅｃｔ）がある。それによれば、予めＥＣＣ（Ｅｒｒｏｒ−Ｃｏｒｒｅｃｔｉｎｇ  Ｃｏｄｅ、エラー訂正符号）をフラッシュメモリに組み込むことで、数ビットであれば、フラッシュメモリ内でエラー（ビットエラーを含む）が発生していても、データの読み出し時にエラーをチェックして、エラーを訂正することできる。たとえば、ある方式では、６４ビットのデータについて８ビットのエラー訂正符号が設定されていた場合、１ビットのエラーであれば訂正して出力することができる。
【００１１】
【特許文献１】米国特許出願公開第２００５／０２１０１８４号明細書
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかし、たとえばＮＡＮＤフラッシュメモリにおいては、リードディスターブによるエラーは上述のとおり、選択セルと同一ビット線上の全ての非選択セルに発生する可能性がある。そのため、特定のセルが繰り返し選択され続けることにより、いずれは実装されたエラー訂正能力を超えるビットエラーが発生すると考えられる。さらに、この種のエラー訂正機能は、通常、出力されるデータのエラーを訂正するに止まり、不揮発性半導体メモリを修復する機能までは備えていない。
【００１３】
そこで、本発明は、不揮発性半導体メモリにおいて発生するビットエラーを効果的に予防できる方法、およびその予防方法を実現する情報処理装置の提供を目的とする。
【課題を解決するための手段】
【００１４】
請求項１に記載の本発明は、再書き込み可能な不揮発性半導体メモリに記憶されているビットデータが変化して発生するビットエラーの予防方法である。前記不揮発性半導体メモリに記憶されている記憶データが、ホストシステムによって読み出される際に、ビットエラーに関連するリペア条件を満たすか否かを調べる工程と、読み出された前記記憶データが前記リペア条件を満たす場合に、読み出された前記記憶データを前記不揮発性半導体メモリに書き戻す工程と、を含むことを特徴とする。
【００１５】
請求項２に記載の本発明は、請求項１に記載のビットエラーの予防方法であって、前記リペア条件が、予め設定された閾値によって条件付けられており、前記記憶データの読み出しに先立って前記閾値を読み出す工程と、読み出される前記記憶データの、前記閾値に対応する比較値が、前記閾値を超えているか否かを調べる工程と、前記比較値が前記閾値を超えている場合に、読み出された前記記憶データを前記不揮発性半導体メモリに書き戻す工程と、を含むことを特徴とする。
【００１６】
請求項３に記載の本発明は、請求項２に記載のビットエラーの予防方法であって、前記ホストシステムの読み出し要求に応じて、前記記憶データを一時記憶データとして一時記憶部に記憶する工程と、前記一時記憶データが前記一時記憶部に記憶されたときに、前記比較値が前記閾値を超えているか否かを調べる工程と、前記比較値が前記閾値を超えている場合に、前記一時記憶データを前記不揮発性半導体メモリに書き戻す工程と、を含むことを特徴とする。
【００１７】
請求項４に記載の本発明は、請求項３に記載のビットエラーの予防方法であって、前記一時記憶データが前記一時記憶部に記憶されたときに、エラー訂正部が前記一時記憶データにエラーがあるか否かを調べる工程と、前記一時記憶データにエラーがある場合に、前記エラー訂正部が、前記一時記憶データのエラーを訂正する工程と、を含み、エラーの訂正が行われた前記一時記憶データを前記不揮発性半導体メモリに書き戻すことを特徴とする。
【００１８】
請求項５に記載の本発明は、請求項２ないし請求項４のいずれかに記載のビットエラーの予防方法であって、前記閾値が、前記記憶データの読み出し回数、または、読み出された前記記憶データに含まれるビットエラー数、または、読み出された前記記憶データのビットエラーの累積発生回数、の少なくともいずれか一つを含むことを特徴とする。
【００１９】
請求項６に記載の本発明は、請求項１ないし請求項５のいずれかに記載のビットエラーの予防方法であって、所定のタイミングで、前記記憶データが記憶されている前記不揮発性半導体メモリの記憶領域に対して読み出しを行う工程、を含むことを特徴とする。
【００２０】
請求項７に記載の本発明は、請求項６に記載のビットエラーの予防方法であって、前記所定のタイミングが、電源投入時または電源切断時であることを特徴とする。
【００２１】
請求項８に記載の本発明は、請求項６または請求項７に記載のビットエラーの予防方法であって、前記読み出しを行う工程が、不揮発性半導体メモリの記憶領域の全域もしくは一部領域に対して読み出しを行うことを特徴とする。
【００２２】
請求項９に記載の本発明は、請求項１ないし請求項８のいずれかに記載のビットエラーの予防方法であって、前記ビットエラーが、リードディスターブエラーを含むことを特徴とする。
【００２３】
請求項１０に記載の本発明は、再書き込み可能な不揮発性半導体メモリと、前記不揮発性半導体メモリに記憶されている記憶データを読み出す読み出し手段と、を備える情報処理装置である。
【００２４】
前記読み出し手段によって読み出される前記記憶データが、ビットエラーに関連するリペア条件を満たすか否かを調べる手段と、読み出された前記記憶データが前記リペア条件を満たす場合に、読み出された前記記憶データを前記不揮発性半導体メモリに書き戻す手段と、を備えることを特徴とする。
【００２５】
請求項１１に記載の本発明は、請求項１０に記載の情報処理装置であって、前記リペア条件が、予め設定された閾値によって条件付けられており、前記記憶データの読み出しに先立って前記閾値を読み出す手段と、読み出される前記記憶データの、前記閾値に対応する比較値が、前記閾値を超えているか否かを調べる手段と、前記比較値が前記閾値を超えている場合に、読み出された前記記憶データを前記不揮発性半導体メモリに書き戻す手段と、を備えることを特徴とする。
【００２６】
請求項１２に記載の本発明は、請求項１１に記載の情報処理装置であって、前記読み出し手段の読み出し要求に応じて、一時記憶データとして前記記憶データを一時的に記憶する一時記憶部、を備え、前記一時記憶データが前記一時記憶部に記憶されたときに、前記比較値が前記閾値を超えているか否かを調べる手段と、前記比較値が前記閾値を超えている場合に、前記一時記憶データを前記不揮発性半導体メモリに書き戻す手段と、を備えることを特徴とする。
【００２７】
請求項１３に記載の本発明は、請求項１２に記載の情報処理装置であって、前記一時記憶データのエラーを訂正するエラー訂正部、を備え、前記一時記憶データが前記一時記憶部に記憶されたときに、前記エラー訂正部が、前記一時記憶データにエラーがあるか否かを調べる手段と、前記一時記憶データにエラーがある場合に、前記エラー訂正部が、前記一時記憶データのエラーを訂正する手段と、を備え、エラーの訂正が行われた前記一時記憶データを前記不揮発性半導体メモリに書き戻すことを特徴とする。
【００２８】
請求項１４に記載の本発明は、請求項１１ないし請求項１３のいずれかに記載の情報処理装置であって、前記不揮発性半導体メモリが、前記記憶データが記憶される記憶領域と、エラー訂正データが記憶される冗長領域とを有し、前記閾値が、前記冗長領域に設定されていることを特徴とする。
【００２９】
請求項１５に記載の本発明は、請求項１４に記載の情報処理装置であって、前記記憶領域が、ビットエラーに関する特性に基づいて複数の要素記憶領域に区分されており、前記閾値が、前記要素記憶領域別に設定されていることを特徴とする。
【００３０】
請求項１６に記載の本発明は、請求項１１ないし請求項１５のいずれかに記載の情報処理装置であって、前記閾値が、前記記憶データの読み出し回数、または、読み出された前記記憶データに含まれるビットエラー数、または、読み出された前記記憶データのビットエラーの累積発生回数、の少なくともいずれか一つを含むことを特徴とする。
【００３１】
請求項１７に記載の本発明は、請求項１０ないし請求項１６のいずれかに記載の情報処理装置であって、所定のタイミングで、前記記憶データが記憶されている前記不揮発性半導体メモリの記憶領域に対して読み出しを行う手段、を備えることを特徴とする。
【００３２】
請求項１８に記載の本発明は、請求項１７に記載の情報処理装置であって、前記所定のタイミングが、電源投入時または電源切断時であることを特徴とする。
【００３３】
請求項１９に記載の本発明は、請求項１７または請求項１８に記載の情報処理装置であって、前記読み出しを行う手段が、不揮発性半導体メモリの記憶領域の全域もしくは一部領域に対して読み出しを行うことを特徴とする。
【００３４】
請求項２０に記載の本発明は、請求項１０ないし請求項１９のいずれかに記載の情報処理装置であって、前記ビットエラーが、リードディスターブエラーを含むことを特徴とする。
【発明の効果】
【００３５】
ビットエラーは、消去、書き込みを行えば回復可能であるため、たとえば、ＥＣＣ等のエラー訂正機能と組み合わせて、ビットエラーが発生した記憶データのエラー訂正を行い、さらに書き戻すことによって、経時的に変化したビットデータを回復させる（初期化）ことができるので、訂正能力を超えるビットエラーの発生を未然に防止することができる。
【００３６】
さらには、閾値を設けることにより、消去、書き込み回数を最小限に抑え、消去、書き込みによるメモリセルの劣化を軽減し、信頼性の高いシステムを実現することができる。
【発明を実施するための最良の形態】
【００３７】
図１は、本発明にかかるビットエラーの予防方法を実現する情報処理装置の構成を示すブロック図である。図１に示すように、情報処理装置１は、ホストシステム２、メモリコントローラ３、不揮発性半導体メモリ４（フラッシュメモリ４）などで構成される。情報処理装置１の具体例を挙げると、たとえば、ゲーム機などである。
【００３８】
情報処理装置１がゲーム機の場合、メモリコントローラ３とフラッシュメモリ４はＳＤカード（メモリカード）などに実装されて、ゲームカートリッジなどの外部記憶装置の形態でゲーム機に着脱自在に装着される。なお、メモリコントローラ３やフラッシュメモリ４は情報処理装置１と一体に装着されていてもよく、要は情報処理装置１のいずれかに含まれていればよい。
【００３９】
｛ホストシステム｝
ホストシステム２は、情報処理装置１の全体制御を行う中枢処理部であり、演算部、制御部、記憶部、入出力部などで構成されている。具体的には、情報処理装置１には、ＣＰＵやＲＯＭ、モニター、操作ボタンなどが備えられており、ホストシステム２によってこれらが制御されている。たとえば、ユーザが操作する操作ボタンからの指示を受けて、フラッシュメモリ４に記憶されているゲーム等のアプリケーションプログラムを読み出す処理や、読み出されるアプリケーションプログラムに基づいてモニターに動画等を表示する処理を実行する。
【００４０】
｛メモリコントローラ｝
メモリコントローラ３は、ホストシステム２からの要求に応じてフラッシュメモリ４に記憶されているデータの読み出し等の処理を行う処理部である。つまり、メモリコントローラ３は、ホストシステム２とフラッシュメモリ４とに対するインターフェース機能を有し、ホストシステム２との間でコマンドやデータの入出力処理を行う。また、ホストシステム２のコマンドにより、あるいは自装置の機能に基づいてフラッシュメモリ４からデータの読み出し、フラッシュメモリ４へのデータの書き込み等の処理を行う。
【００４１】
メモリコントローラ３は、フラッシュメモリ４から読み出されたデータを一時的に記憶する一時記憶部５（ＳＲＡＭ：Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）や、一時記憶部５に記憶されたデータ（一時記憶データ）にあるエラーを訂正するエラー訂正部６などを備える。すなわち、メモリコントローラ３は、ホストシステム２の読み出し要求があれば、それに応じてフラッシュメモリ４から所定の記憶データを読み出し、一時記憶部５に一時記憶する。そして、その一時記憶データが、ホストシステム２によって読み出される。
【００４２】
エラー訂正部６は、公知のエラー訂正機能（ＥＣＣ）に基づく機能を備え、エラー訂正符号を用いて一時記憶部５に記憶される一時記憶データをチェックして、エラーがあれば、そのエラーを訂正する処理を実行する。さらに、本実施の形態におけるエラー訂正部６は、フラッシュメモリ４から閾値を読み出し、その閾値を用いて一時記憶部５に記憶される一時記憶データをチェックする。そして、一時記憶データの比較値が閾値を超えていれば、データをフラッシュメモリ４に書き戻す処理を実行する。なお、ここでいう書き戻すとは、読み出した記憶データをそのまま書き戻すことや、読み出した記憶データにエラーがあった場合、エラーを訂正したうえで書き戻すことを含む。また、閾値の読み出し、チェック、書き戻しの一連の処理の実行は、エラー訂正部６でなくとも情報処理装置１のいずれかで実行可能であればよい。
【００４３】
すなわち、本実施の形態においても、従来どおりＥＣＣによるエラー訂正機能の発揮によって、フラッシュメモリ４の信頼性は確保されている。しかし、ＥＣＣによるエラー訂正能力は、予め設定されるエラー訂正符号によって規定されるため、たとえば、４ビットの訂正能力だとすれば、それ以上のエラーが発生すると、もはや訂正することはできない。フラッシュメモリ４内のビットエラーもそのままである。
【００４４】
そのため、本発明では、別途リペア条件を設けることによって従来のＥＣＣ機能が補完できるようになっている。両者の組み合わせにより、メモリの信頼性の向上が実現できるようになっているのである。ただし、ＥＣＣ等のエラー訂正機能は必ずしも必須の構成ではない。たとえば、リペア条件に読み出し回数の閾値を用いることで、ビットエラーの発生を未然に防ぐことも可能だからである。
【００４５】
｛不揮発性半導体メモリ｝
不揮発性半導体メモリ４は、書き換え可能な不揮発性メモリであり、たとえば、フラッシュメモリが該当する。フラッシュメモリ４には、たとえば、ＮＯＲ型フラッシュメモリやＮＡＮＤ型フラッシュメモリがある。なかでも本発明は、ＮＡＮＤ型フラッシュメモリに好適であるため、以下、フラッシュメモリ４はＮＡＮＤ型フラッシュメモリとして説明するが、その型までは限定はしない。
【００４６】
フラッシュメモリ４には、ゲームのアプリケーションプログラム等、各種プログラムを構成するデータが記憶されており（記憶データ）、フラッシュメモリ４は、この記憶データが記憶される記憶領域７と、エラー訂正符号等のエラー訂正データが記憶される冗長領域８とを有する。記憶領域７は、書き込み、読み出し単位であるページ７１と、複数のページ７１で構成されて、データの消去単位であるブロック７２とで構成されている（図３参照）。そして、この冗長領域８に、ビットエラーに関連するリペア条件として閾値が設定されている。
【００４７】
ここで、ビットエラーに関連するリペア条件とは、ビットエラーによるトラブルを予防するために、その特性を考慮して予め設定される条件であり、閾値とは、その基準となる値である。たとえば、リードディスターブによるビットエラーの発生レートと、消去、書き込みによる劣化（故障）の発生頻度とを考慮して設定することができる。そうすれば、消去、書き込みの回数を最小限に抑えて、これによる劣化を軽減することができる。リペア条件は、エラー訂正部６が有する訂正能力の範囲内で設定される。
【００４８】
閾値は、一時記憶データを書き戻す処理のトリガーとなっていて、エラー訂正部６によって閾値に対応する比較値がチェックされ、その比較値が閾値を超えている場合に一時記憶データの書き戻し処理が実行される。閾値としては、たとえば、記憶データの読み出し回数や読み出された記憶データに含まれるビットエラー数、読み出された記憶データのビットエラーの累積発生回数等を設定することができる。
【００４９】
また、フラッシュメモリ４の記憶領域７には、アプリケーションプログラム等を記憶する使用領域７３に加えて、データが記憶されていない未使用領域７４が設けられている。また、フラッシュメモリ４には、これに記憶されているデータの格納情報を管理する管理テーブルが備えられている（図示せず）。
【００５０】
｛ビットエラーの予防｝
次に、上記構成の情報処理装置１におけるビットエラーの予防について具体的に説明する。なお、ビットエラーの予防とは、ビットエラーの発生そのものを未然に防ぐことだけでなく、発生したビットエラーを修復して、エラーがあった記憶データを回復し、システムの暴走等、重大なトラブルを未然に防ぐことも含む。
【００５１】
図２は、ビットエラーの予防に関する処理手順を示したものである。ホストシステム２によってフラッシュメモリ４から記憶データが読み出される過程にビットエラーを予防する各工程が組み込まれている。以下、図２の処理手順に沿って説明する。
【００５２】
まず最初は、記憶領域７に記憶されているアプリケーションプログラム等の記憶データの読み出しに先立ち、エラー訂正部６によってフラッシュメモリ４の冗長領域８から閾値が読み出される（ステップＳ１）。たとえば、電源投入時などに閾値が読み出される。
【００５３】
閾値は、読み出される所定量の記憶データに対して設定されており、たとえば、ページ７１やブロック７２の単位で設定可能である。一般的には、ページ単位で設定される。そして、その読み出し回数や、そこに含まれるビットエラー数、そのビットエラーの累積発生回数などを閾値として設定することができる。
【００５４】
読み出し回数は、リードディスターブエラーに好適な閾値である。先に説明したように、リードディスターブエラーは、繰り返し読み出されることで発生する。そのため、連続読み出し回数が増加する程、発生リスクが高まると想定されるからである。なお、この閾値の場合、ビットエラーの発生前でも閾値を超えていれば、読み出された一時記憶データをそのまま書き戻す処理が実行されてビットデータが回復（初期化）するため、ビットエラーの発生を未然に防ぐことが可能な点で効果的である。
【００５５】
ビットエラー数は、ＥＣＣ等、既存のエラー訂正機能と連動して設定可能である。たとえば、ＥＣＣで４ビットまでエラー訂正が可能なときに、閾値を３ビットなどに設定する。こうすることで、ＥＣＣによるエラー訂正能力を超える前に、訂正可能なビットエラーを修復してＥＣＣの機能をより効果的に発揮させ、フラッシュメモリの信頼性をより向上させることができる。
【００５６】
ビットエラーの累積発生回数は、メモリの記憶領域７の特性に着目した閾値である。記憶領域７によってビットエラーの発生し易さに違いがあると想定されるからである。
【００５７】
閾値は、もちろんこれらに限らず設定でき、複数の組み合わせ設定も可能である。なお、書き戻しが行われれば、ビットデータは初期化されるため、各閾値の値はリセットされることになる。
【００５８】
続いて、ゲームが実行される等、ホストシステム２からメモリコントローラ３に対し、記憶データの読み出しを要求するリードコマンドが入力される（ステップＳ２）。そうすると、メモリコントローラ３はフラッシュメモリ４から、読み出し要求のあった記憶データを読み出して一時記憶部５に格納し、一時記憶データとして一時的に記憶する（ステップＳ３）。
【００５９】
このとき、一時記憶データは、エラー訂正部６によって、エラーがあるか否かがチェックされ、エラーがあれば訂正されて（ステップＳ４）、ホストシステム２によって、エラーのない正しい記憶データが一時記憶部５から読み出される（ステップＳ５）。
【００６０】
さらに、一時記憶部５に記憶されている一時記憶データは、エラー訂正部６によって閾値を超えているか否かがチェックされる（ステップＳ６）。つまり、一時記憶データの閾値に対応する比較値と閾値とが比較されるのである。そして、一時記憶データが閾値を超えている場合には、メモリコントローラ３によって、一時記憶データをフラッシュメモリ４に書き戻す処理が実行される（ステップＳ７）。
【００６１】
フラッシュメモリ４に書き戻す処理が実行されている間、通常の記憶データの読み出し処理は、実行できないか、あるいは著しく実行が制限される。そのため、メモリコントローラ３に、書き戻し処理に連動して、ホストシステム２に対しＢｕｓｙ状態を通知する状態信号を発信する手段を設けるとよい。状態信号に応じてホストシステム２側で効率的な処理の実行が可能となるからである。また、いったんホストシステム２側にエラー情報等を読み出させ、書き戻し処理をホストシステム２からの書き戻しコマンドの指示に基づいて実行するようにしてもよい。ホストシステム２での処理と連動させて、効率よく書き戻し処理を実行させることができるからである。
【００６２】
次に、書き戻し処理について具体的に説明する。図３は、フラッシュメモリ４の記憶領域７を示す図である。先に説明したとおり、フラッシュメモリ４の記憶領域７は、書き込み、読み出し単位であるページ７１と、複数のページ７１で構成された記憶データの消去単位であるブロック７２とで構成されている。すなわち、フラッシュメモリ４では、ブロック単位の一括消去でしか記録データの消去ができず、消去が行われた未使用の領域にしかデータの書き込みができない。同じブロックの他のページを消去せずに、エラーが発生したページだけを書き換えることはできないのである。
【００６３】
ここでは説明上、図３の（ａ）に示すように、Ｐ１〜Ｐ３の複数のページ７１で一つのブロック７２ａが形成されていて、その中のＰ２のページ７１ａが閾値を超えていたものとする。
【００６４】
書き戻し処理の一つとしては、図３の（ｂ）に示すように、閾値を超えたＰ２のページ７１ａを含むブロック７２ａの記憶データを、一時記憶部５を含む情報処理装置１の他の記憶装置に別途一時記憶したうえで、そのブロック７２ａを一括消去する。そして、図３の（ｃ）に示すように、その消去したブロック７２ａに、消去したＰ１〜Ｐ３のページ７１と同じ新たなＰ１〜Ｐ３のページ７１を含むブロック７２ｂを書き込む。もちろん、元のＰ１〜Ｐ３のページ７１の中にビットエラー発生していれば、そのビットエラーを訂正したうえで書き込むのである。ビットエラーがなくとも、書き換えによってビットデータの初期化ができるため、ビットエラーの発生を予防することができる。とくに、物理的に元のＰ２のページ７１ａの周辺に配置されていて、潜在的にビットエラーを生じる可能性のあるページ７１も同時に書き戻しされるため、ビットエラーの予防方法として効果的である。
【００６５】
図４および図５は、フラッシュメモリ４の未使用領域７４を利用した書き戻し処理を示している。この場合、情報処理装置１には、ＦＡＴ等、フラッシュメモリ４に記憶されている記憶データの格納情報を管理する管理手段を設けておく。
【００６６】
図４は、ブロック単位での処理を示したものであり、新たなＰ１〜Ｐ３のブロック７２ｂを未使用領域７４に記憶するとともに、管理手段によって、ページ７１の読み出し実行順序をこれら新たなページ７１へ組み替えるのである。これによれば、ブロック単位のページ７１を別途一時記憶する必要がない分、処理効率上有利である。元のブロック７２ａは、記憶領域７３であっても消去して再利用できるため、別のデータを記憶してもよいし、未使用領域７４に記憶した新たなＰ１〜Ｐ３のページ７１を再度元のブロック７２ａに書き戻してもよい。
【００６７】
図５は、ページ単位での処理を示している。この場合、ブロック単位で処理しなくてもよいからである。具体的には、一時記憶部５に記憶された、Ｐ２のページ７１ａの一時記憶データを未使用領域７４に新たなＰ２のページ７１ｂとして書き込む。もちろん、ビットエラーがあれば訂正したうえで書き込む。そして、管理手段によって、元のＰ２のページ７１ａから新たなＰ２のページ７１ｂへ、ページの読み出し実行順序を新たに組み替えればよい。書き戻すデータ量が小さく極短時間で処理できるため、たとえば、アプリケーションプログラムの実行中の処理として好適である。
【００６８】
他のフラッシュメモリに書き戻し処理を行うこともできる。つまり、上記の未使用領域７４を利用した書き戻し処理と同様の方法により、同一のフラッシュメモリ４の未使用領域７４ではなく、情報処理装置１が実装している他のフラッシュメモリの未使用領域に書き戻し処理を行うのである。
【００６９】
これらビットエラー予防の一連の処理は、所定のタイミング、たとえば、情報処理装置１への電源投入時または電源切断時に、一括して実行するようにしてもよい。すなわち、電源投入時または電源切断時に、ビットエラーを予防するために、フラッシュメモリ４の記憶領域７の全域に対して読み出しを行うのである。電源の投入時、あるいは電源切断時であれば、通常のアプリケーションプログラムの読み出し処理に割り込んでＢｕｓｙ状態を招くことがなく、情報処理装置１を操作するユーザに不快感を与えることがない。
【００７０】
そのほか、アプリケーションプログラムへのデータバックアップ時や、アイドル時など、アクセス負担の少ないタイミングに実行してもよい。また、情報処理装置１がスリープ状態にあるときや充電時などに実行させることもできる。予め所定のプログラムを設定しておく等、一定周期で実行させてもよいし、外部から入力される実行指示に基づいて実行させてもよい。
【００７１】
全域に対して読み出しを行わずに、一部の領域に対して読み出しを行うこともできる。たとえば、読み出す対象の領域情報を記憶しておき、その領域情報に基づいて読み出し処理を実行するのである。領域情報は、たとえば、メモリカード内では、フラッシュメモリ４の記憶領域７や冗長領域８、メモリコントローラ３内に実装されている他の不揮発性半導体メモリなどに設定することができ、メモリカード外では、情報処理装置１内に実装されている、ホストシステム２や他のフラッシュメモリなどに設定することができる。
【００７２】
記憶領域７の全域を複数に分割し、上記の所定のタイミングで複数回に分けて読み出し処理を実行させることで、全域に対する読み出し処理を行うこともできる。
【００７３】
また、記憶領域７をビットエラーに関する特性に基づいて複数の要素記憶領域に区分して、閾値を要素記憶領域別に設定することもできる。たとえば、フラッシュメモリ４の物理的な特性や、そこに記憶されるアプリケーションプログラムの特性によっては、事前に煩雑に読み込み処理が実行される記憶領域７を特定することも可能である。そこで、そのような特性に応じて、論理的あるいは物理的に記憶領域７を複数に区分し（要素記憶領域）、その要素記憶領域それぞれに合った閾値、たとえば読み出し回数を個々に設定するのである。こうすることで、無用な書き込み等を減らすことができ、処理負担が軽減できて、よりいっそう緻密にビットエラーを予防することが可能となる。
【００７４】
以上のように、本発明では、ビットエラーが発生する可能性が高くなった記憶データを書き戻し、経時的に変化したビットデータを回復させる（初期化）ので、ビットエラーの発生を未然に防止することができる。そして、ＥＣＣ等のエラー訂正機能と組み合わせ、そのエラー訂正能力の範囲内で書き戻しを行うことで、エラー訂正機能を補完することができ、よりいっそうフラッシュメモリ４の信頼性を向上させることができる。
【００７５】
上記の実施の形態では、エラー訂正部６がメモリコントローラ３に備えられている例を示したが、エラー訂正部６は、ホストシステム２に備えられていてもよい。
【００７６】
上記の実施の形態では、閾値がフラッシュメモリ４の冗長領域８に設定されている例を示したが、閾値はその他の場所に設定されていてもよい。たとえば、メモリカード内では、フラッシュメモリ４の記憶領域７や、メモリコントローラ３内に実装されている他の不揮発性半導体メモリなどが利用でき、メモリカード外では、情報処理装置１内に実装されている、キャリブレーションデータ用などの他の不揮発性半導体メモリなどが利用できる。また、閾値を超えるとは、通常比較値が閾値を上回ることを意味するが、閾値の内容によっては、比較値が閾値を下回ることを意味する場合もある。
【００７７】
リペア条件は、外部からの指示によるものであってもよい。たとえば、情報処理装置１が、ネットワークにアクセスする手段を備え、ネットワークを介して、サーバなどから受信した情報に基づいてフラッシュメモリ４への書き戻し処理を実行するようにしてもよい。
【図面の簡単な説明】
【００７８】
【図１】情報処理装置の構成を示すブロック図である。
【図２】ビットエラーの予防を説明するための処理手順を示す図である。
【図３】フラッシュメモリの記憶領域の構成を示す図である。
【図４】フラッシュメモリの記憶領域の構成を示す図である。
【図５】フラッシュメモリの記憶領域の構成を示す図である。
【図６】リードディスターブを説明するための図である。
【符号の説明】
【００７９】
１  情報処理装置
２  ホストシステム
４  フラッシュメモリ
５  一時記憶部
６  エラー訂正部
７  記憶領域
８  冗長領域
【図１】
2008192267.tif 000003
【図２】
2008192267.tif 000004
【図３】
2008192267.tif 000005
【図４】
2008192267.tif 000006
【図５】
2008192267.tif 000007
【図６】
2008192267.tif 000008