(57)【要約】【課題】フラッシュメモリに、自装置が備えるエラー訂正能力を超えるエラーが発生した場合でも修復可能なデータ修復システムを提供する。【解決手段】ネットワーク１を介してアクセス可能なサーバ２や、フラッシュメモリ５を備える複数の情報処理装置３を含む。フラッシュメモリ５にエラーが発生した場合に、ワイヤレスネットワークやＰＬＣを利用したネットワーク１を介して、同一のデータを記憶するサーバ２や他の情報処理装置３からデータを取得してデータの修復を行う。修復は、アプリケーションプログラム５０１の実行中、あるいは休止中に行われる。Ｒｅａｄ  Ｄｉｓｔｕｒｂ現象によるエラーに対して好適である。【選択図】図１
2008192053.tif 000002
【特許請求の範囲】
【請求項１】
再書き込み可能な不揮発性半導体メモリと、
前記不揮発性半導体メモリに記憶された記憶データを処理するホストシステムと、
を備える情報処理装置を含み、
前記記憶データが変化してエラーを発生した場合に、ネットワークを介して、前記情報処理装置の外部から前記記憶データに関する情報を取得して前記記憶データを修復する手段、
を備えることを特徴とする不揮発性半導体メモリのデータ修復システム。
【請求項２】
請求項１に記載の不揮発性半導体メモリのデータ修復システムであって、
前記記憶データと同一のデータを記憶するサーバを含み、
前記情報処理装置が、前記サーバにアクセスして前記記憶データを修復することを特徴とする不揮発性半導体メモリのデータ修復システム。
【請求項３】
請求項１に記載の不揮発性半導体メモリのデータ修復システムであって、
前記記憶データと同一のデータを記憶する前記情報処理装置を複数含み、
いずれかの情報処理装置が、他の情報処理装置にアクセスして前記記憶データを修復することを特徴とする不揮発性半導体メモリのデータ修復システム。
【請求項４】
請求項１ないし請求項３のいずれかに記載の不揮発性半導体メモリのデータ修復システムであって、
前記記憶データを修復する修復プログラム、
を備え、
アプリケーションプログラムの実行中にエラーが発生した場合に、前記修復プログラムに基づいて前記記憶データを修復することを特徴とする不揮発性半導体メモリのデータ修復システム。
【請求項５】
請求項４に記載の不揮発性半導体メモリのデータ修復システムであって、
前記修復プログラムが、前記不揮発性半導体メモリに、前記アプリケーションプログラムとともに記憶されていることを特徴とする不揮発性半導体メモリのデータ修復システム。
【請求項６】
請求項４または請求項５に記載の不揮発性半導体メモリのデータ修復システムであって、
前記ホストシステムが、
前記不揮発性半導体メモリから読み出した記憶データを一時的に記憶するバッファメモリ、
を備え、
前記バッファメモリに前記修復プログラムを読み出して実行することを特徴とする不揮発性半導体メモリのデータ修復システム。
【請求項７】
請求項６に記載の不揮発性半導体メモリのデータ修復システムであって、
前記アプリケーションプログラムの実行前に、予め前記修復プログラムを前記バッファメモリに読み出しておくことを特徴とする不揮発性半導体メモリのデータ修復システム。
【請求項８】
請求項６に記載の不揮発性半導体メモリのデータ修復システムであって、
前記アプリケーションプログラムの実行中のエラー発生時に、前記修復プログラムを前記バッファメモリに読み出すことを特徴とする不揮発性半導体メモリのデータ修復システム。
【請求項９】
請求項１ないし請求項３のいずれかに記載の不揮発性半導体メモリのデータ修復システムであって、
前記記憶データを修復する修復プログラム、
を備え、
前記修復プログラムが、
前記記憶データにエラーがないか否かを調べる手段と、
前記記憶データにエラーを発見した場合に、その情報を記憶する修復情報記憶手段と、
所定のタイミングで、前記修復情報記憶手段に記憶された情報に基づいて前記記憶データを修復する手段と、
を有することを特徴とする不揮発性半導体メモリのデータ修復システム。
【請求項１０】
請求項９に記載の不揮発性半導体メモリのデータ修復システムであって、
前記情報処理装置がスリープ状態にあるときに、前記記憶データを修復することを特徴とする不揮発性半導体メモリのデータ修復システム。
【請求項１１】
請求項９に記載の不揮発性半導体メモリのデータ修復システムであって、
前記情報処理装置が充電状態にあるときに、前記記憶データを修復することを特徴とする不揮発性半導体メモリのデータ修復システム。
【請求項１２】
請求項１ないし請求項１１のいずれかに記載の不揮発性半導体メモリのデータ修復システムであって、
少なくともエラーが発生した記憶データと同一のデータを取得し、エラーが発生した記憶データをこれに書き換えることにより、前記記憶データの修復を行うことを特徴とする不揮発性半導体メモリのデータ修復システム。
【請求項１３】
請求項１ないし請求項１２のいずれかに記載の不揮発性半導体メモリのデータ修復システムであって、
前記情報処理装置が、
再書き込み可能な不揮発性半導体メモリの未使用領域と、
前記未使用領域に記憶される記憶データの格納情報を管理する管理手段と、
を有し、
少なくともエラーを発生した前記記憶データと同一のデータを取得して、前記未使用領域に取得データとして記憶するとともに、前記管理手段によって前記取得データを前記記憶データに代替することにより、前記記憶データの修復を行うことを特徴とする不揮発性半導体メモリのデータ修復システム。
【請求項１４】
請求項１ないし請求項１３のいずれかに記載の不揮発性半導体メモリのデータ修復システムであって、
前記記憶データのエラーが、Ｒｅａｄ  Ｄｉｓｔｕｒｂ現象によって引き起こされたものであることを特徴とする不揮発性半導体メモリのデータ修復システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｒｅａｄ  Ｄｉｓｔｕｒｂ現象等、不揮発性半導体メモリに記憶されたデータが変化するエラーに基づくトラブルを回避する技術に関し、なかでも自装置の修復能力を超えるトラブルが発生した場合に好適なデータ修復システムに関する。
【背景技術】
【０００２】
不揮発性メモリの中でも、ＮＡＮＤフラッシュメモリは、単純な回路構成による高集積化や製造コスト減、ユーザによる書き込みの容易化を図ることを可能とするため、ＳＤメモリカードなどに大量に採用されている。
【０００３】
最近では、ＮＡＮＤフラッシュメモリは、ゲーム機などにも採用されている。ＮＡＮＤフラッシュメモリがゲーム機などで使用される際には、書き込みは発生せず、連続的な読み出しが発生する。すなわち、ＮＡＮＤフラッシュメモリがＲＯＭとして採用されることが多くなりつつある。
【０００４】
しかし、ゲーム機などでは、特定のプログラムが繰り返し読み出されることが多いため、プログラムが意図せず書き換えられる可能性が指摘され始めている。このような現象は“Ｒｅａｄ  Ｄｉｓｔｕｒｂ”現象と呼ばれており、本現象が発生するメカニズムについて、以下に簡単に説明する。
【０００５】
図８は、ＮＡＮＤフラッシュメモリの模式図である。ＮＡＮＤフラッシュメモリは、格子状に配線されたビット線４１とワード線４２、４３、４４、メモリセル５２、５３、選択トランジスタ５４などから構成されている。
【０００６】
メモリセル５２が格納する二値データ（“０”または“１”）を読み出す場合を考える。この場合、メモリセル５２は選択セル５２、メモリセル５３は非選択セル５３と呼ばれている。まず、選択トランジスタ５４により、選択セル５２が属するビット線４１が指定される。次に、選択セル５２が属するワード線４２に対して、低ゲート電圧Ｖ（Ｌｏｗ）＝０Ｖが印加される。そして、非選択セル５３が属するワード線４３に対して、高ゲート電圧Ｖ（Ｈｉｇｈ）〜５Ｖが印加される。このとき、非選択セル５３は微弱な書き込み状態にあるため、非選択セル５３のフローティングゲートに、電子がトラップされ、蓄積される。すなわち、選択セル５２が格納する二値データが繰り返し読み出されると、非選択セル５３の閾値電圧がシフトして、非選択セル５３が格納している二値データが、“１”から“０”に意図せず書き換えられる可能性がある。
【０００７】
もっとも、非選択セル５３が格納している二値データが意図せず書き換えられたとしても、データが新たに書き込まれる前に一括して消去される際に、非選択セル５３の機能を回復させることができる。しかし、書き込みは発生せず、連続的な読み出しが発生する場合には、非選択セル５３の機能を回復させることができなくなる。
【０００８】
以上に説明した“Ｒｅａｄ  Ｄｉｓｔｕｒｂ”現象を回避する手段を提供する文献として、以下の特許文献が挙げられる。
【０００９】
データの修復技術に関し、ＥＣＣ（Ｅｒｒｏｒ  Ｃｈｅｃｋ  ａｎｄ  Ｃｏｒｒｅｃｔ）等が公知である。たとえば、予めＥＣＣ（Ｅｒｒｏｒ−Ｃｏｒｒｅｃｔｉｎｇ  Ｃｏｄｅ）をフラッシュメモリに組み込んでおけば、フラッシュメモリ内でエラーが発生しても、エラーをチェックして修復することができる。
【００１０】
【特許文献１】米国特許出願公開第２００５／０２１０１８４号明細書
【発明の開示】
【発明が解決しようとする課題】
【００１１】
上述のとおり“Ｒｅａｄ  Ｄｉｓｔｕｒｂ”現象は、データの書き込みや消去が行われずに、繰り返し同じデータが読み出されることによって発生する後発的な問題である。したがって、製品出荷時の品質検査等で事前に“Ｒｅａｄ  Ｄｉｓｔｕｒｂ”現象の発生を完全に予防するのは難しい。
【００１２】
ＥＣＣ等の利用によってある程度の信頼性は確保できるものの、エラー訂正能力にも限度があり、十分とはいえない。たとえば、ある方式では、ＥＣＣで６４ｂｉｔのデータについて８ｂｉｔのＥＣＣを用意すれば、１ｂｉｔのエラーを訂正することはできるが、それを超えるエラーは訂正できない。とくに“Ｒｅａｄ  Ｄｉｓｔｕｒｂ”現象は、選択セルの周りの非選択セルに発生するため、多数発生するおそれがあり、訂正能力を超えるリスクが高いと考えられる。
【００１３】
そこで、本発明は“Ｒｅａｄ  Ｄｉｓｔｕｒｂ”現象のように、フラッシュメモリに後発的にエラーが発生しても、自発的にデータの修復ができる手段を提供することを目的とする。本発明は、仮に自装置が備えるエラー訂正能力を超えるエラーが発生しても、修復可能なデータ修復システムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記課題を解決するため、請求項１の本発明にかかる不揮発性半導体メモリのデータ修復システムは、再書き込み可能な不揮発性半導体メモリと、前記不揮発性半導体メモリに記憶された記憶データを処理するホストシステムと、を備える情報処理装置を含み、前記記憶データが変化してエラーを発生した場合に、ネットワークを介して、前記情報処理装置の外部から前記記憶データに関する情報を取得して前記記憶データを修復する手段、を備えることを特徴とする。
【００１５】
請求項２に記載の本発明は、請求項１に記載の不揮発性半導体メモリのデータ修復システムであって、前記記憶データと同一のデータを記憶するサーバを含み、前記情報処理装置が、前記サーバにアクセスして前記記憶データを修復することを特徴とする。
【００１６】
請求項３に記載の本発明は、請求項１に記載の不揮発性半導体メモリのデータ修復システムであって、前記記憶データと同一のデータを記憶する前記情報処理装置を複数含み、いずれかの情報処理装置が、他の情報処理装置にアクセスして前記記憶データを修復することを特徴とする。
【００１７】
請求項４に記載の本発明は、請求項１ないし請求項３のいずれかに記載の不揮発性半導体メモリのデータ修復システムであって、前記記憶データを修復する修復プログラム、を備え、アプリケーションプログラムの実行中にエラーが発生した場合に、前記修復プログラムに基づいて前記記憶データを修復することを特徴とする。
【００１８】
請求項５に記載の本発明は、請求項４に記載の不揮発性半導体メモリのデータ修復システムであって、前記修復プログラムが、前記不揮発性半導体メモリに、前記アプリケーションプログラムとともに記憶されていることを特徴とする。
【００１９】
請求項６に記載の本発明は、請求項４または請求項５に記載の不揮発性半導体メモリのデータ修復システムであって、前記ホストシステムが、前記不揮発性半導体メモリから読み出した記憶データを一時的に記憶するバッファメモリ、を備え、前記バッファメモリに前記修復プログラムを読み出して実行することを特徴とする。
【００２０】
請求項７に記載の本発明は、請求項６に記載の不揮発性半導体メモリのデータ修復システムであって、前記アプリケーションプログラムの実行前に、予め前記修復プログラムを前記バッファメモリに読み出しておくことを特徴とする。
【００２１】
請求項８に記載の本発明は、請求項６に記載の不揮発性半導体メモリのデータ修復システムであって、前記アプリケーションプログラムの実行中のエラー発生時に、前記修復プログラムを前記バッファメモリに読み出すことを特徴とする。
【００２２】
請求項９に記載の本発明は、請求項１ないし請求項３のいずれかに記載の不揮発性半導体メモリのデータ修復システムであって、前記記憶データを修復する修復プログラム、を備え、前記修復プログラムが、前記記憶データにエラーがないか否かを調べる手段と、前記記憶データにエラーを発見した場合に、その情報を記憶する修復情報記憶手段と、所定のタイミングで、前記修復情報記憶手段に記憶された情報に基づいて前記記憶データを修復する手段と、を有することを特徴とする。
【００２３】
請求項１０に記載の本発明は、請求項９に記載の不揮発性半導体メモリのデータ修復システムであって、前記情報処理装置がスリープ状態にあるときに、前記記憶データを修復することを特徴とする。
【００２４】
請求項１１に記載の本発明は、請求項９に記載の不揮発性半導体メモリのデータ修復システムであって、前記情報処理装置が充電状態にあるときに、前記記憶データを修復することを特徴とする。
【００２５】
請求項１２に記載の本発明は、請求項１ないし請求項１１のいずれかに記載の不揮発性半導体メモリのデータ修復システムであって、少なくともエラーが発生した記憶データと同一のデータを取得し、エラーが発生した記憶データをこれに書き換えることにより、前記記憶データの修復を行うことを特徴とする。
【００２６】
請求項１３に記載の本発明は、請求項１ないし請求項１２のいずれかに記載の不揮発性半導体メモリのデータ修復システムであって、前記情報処理装置が、再書き込み可能な不揮発性半導体メモリの未使用領域と、前記未使用領域に記憶される記憶データの格納情報を管理する管理手段と、を有し、少なくともエラーを発生した前記記憶データと同一のデータを取得して、前記未使用領域に取得データとして記憶するとともに、前記管理手段によって前記取得データを前記記憶データに代替することにより、前記記憶データの修復を行うことを特徴とする。
【００２７】
請求項１４に記載の本発明は、請求項１ないし請求項１３のいずれかに記載の不揮発性半導体メモリのデータ修復システムであって、前記記憶データのエラーが、Ｒｅａｄ  Ｄｉｓｔｕｒｂ現象によって引き起こされたものであることを特徴とする。
【発明の効果】
【００２８】
ネットワークを利用することにより、自装置の外部からデータを取得してデータ修復を行うので、仮にフラッシュメモリに自装置のエラー訂正能力を超えるエラーが発生しても、データ修復することができる。
【発明を実施するための最良の形態】
【００２９】
図１は、本発明にかかる不揮発性半導体メモリのデータ修復システムの基本構成を示すブロック図である。図１に示すように、本発明の不揮発性半導体メモリのデータ修復システムは、ネットワーク１を介してアクセス可能なサーバ２や情報処理装置３などで構成される。たとえば、情報処理装置３ａが備える不揮発性半導体メモリ５（フラッシュメモリ５）のデータに異常（エラー）が発生した場合には、情報処理装置３ａとサーバ２との間、あるいは、２台の情報処理装置３ａ・３ｂとの間でデータの修復処理が実行される。
【００３０】
｛ネットワーク｝
ネットワーク１は、主としてインターネットが該当するが、それに限らずＬＡＮ等、独自に構築されたネットワークを含む。要は、情報処理装置３やサーバ２が、相互にアクセスしてデータ通信可能であれば足りる。
【００３１】
ネットワーク１の具体例としては、たとえば、電波を利用したワイヤレスネットワークを挙げることができる。その他にも、電力線搬送通信（Ｐｏｗｅｒ  Ｌｉｎｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ）を介したネットワークが利用できる。なお、電力線搬送通信とは、電力線を通信回線として利用する通信形態のことである。たとえば、サーバ２や情報処理装置３の電源ケーブル４を電力線１１に接続しておけば、その情報処理装置３は、ＰＬＣモデムを経由してインターネットに接続することが可能となる。
【００３２】
｛サーバ｝
サーバ２は、少なくとも各情報処理装置３に含まれるフラッシュメモリ５に記憶された記憶データと同一のデータを記憶する手段を備える。そして、ネットワーク１を介していずれかの情報処理装置３からのアクセスを受け付け、その情報処理装置３の要求に応じて自装置が記憶するデータを送信する手段を備える。情報処理装置３が複数存在し、それぞれが異なる記憶データを記憶している場合には、サーバ２は個々の情報処理装置３が記憶する記憶データに応じて複数のデータを記憶することができ、それぞれの情報処理装置３に対して個々に対応可能である。サーバ２であれば、元となるデータの一括管理ができるため、データの維持や更新等、管理し易い利点がある。
【００３３】
｛情報処理装置｝
情報処理装置３は、フラッシュメモリ５やホストシステム６などを備えるとともに、有線、あるいは無線の形態でインターネット等のネットワークに接続して、サーバ２や他の情報処理装置３にアクセスする手段を備える。情報処理装置３の具体例としては、通信型のゲーム機などを挙げることができる。対戦型のゲーム機などのように、少なくとも同一のアプリケーションを有する情報処理装置３が複数存在するのが好ましい。それぞれ同一のデータを備えているため、任意の情報処理装置３間でデータの修復処理が可能となり、データ修復の際にサーバ２にアクセスが集中するのを避けることができ、通信負担を軽減できるからである。
【００３４】
｛不揮発性半導体メモリ｝
不揮発性半導体メモリ５は、書き換え可能な不揮発性半導体メモリであり、フラッシュメモリが該当する。フラッシュメモリには、たとえば、ＮＯＲ型フラッシュメモリやＮＡＮＤ型フラッシュメモリがある。ＮＡＮＤ型フラッシュメモリが好適であるが、その型までは限定はしない。なお、フラッシュメモリ５は、情報処理装置３と一体に装着されていてもよいし、ゲームカートリッジなど、外部記憶装置の形態で情報処理装置３に着脱自在に装着されていてもよい。
【００３５】
フラッシュメモリ５には、ゲームコンテンツのアプリケーションプログラム５０１等、各種プログラムを構成するデータが記憶される（記憶データ）。情報処理装置３を利用するユーザは、アプリケーションプログラム５０１を実行することで、ゲームコンテンツを楽しむことができる。フラッシュメモリ５には、アプリケーションプログラム５０１等を記憶する使用領域５ａに加えて、データが記憶されていない未使用領域５ｂを設けておくことができる。また、フラッシュメモリ５は、これに記憶されているデータの格納情報を管理するＦＡＴ（Ｆｉｌｅ  Ａｌｌｏｃａｔｉｏｎ  Ｔａｂｌｅｓ）５ｃを備えることができる（図４参照）。
【００３６】
｛ホストシステム｝
ホストシステム６は、情報処理装置３の全体制御を行う中枢処理部であり、演算部、制御部、記憶部、入出力部などで構成されている。具体的には、情報処理装置３には、ＣＰＵやＲＯＭ、バッファメモリ７、バッテリ８、モニター、操作ボタンなどが備えられており、ホストシステム６によってこれらが制御されている。たとえば、ＲＯＭは、情報処理装置３の全体を制御するシステムプログラム９等の各種プログラムを格納する。バッファメモリ７は、主としてフラッシュメモリ５から読み出した記憶データを一時的に記憶する記憶部として機能する。バッテリ８は電力線１１に接続する電源ケーブル４を有し、蓄電して情報処理装置３の電源として機能するだけでなく、本発明では電力線搬送通信によるデータ通信機能にも寄与する。
【００３７】
｛データ修復処理｝
次に、本システムにおけるデータ修復処理について具体的に説明する。先に説明した通り、たとえばＮＡＮＤフラッシュメモリでは、“Ｒｅａｄ  Ｄｉｓｔｕｒｂ”現象によるエラーは、データを読み出す選択セル以外のセルで発生すると考えられるため、いつどこでどれだけ発生するか予測がつかない。ＥＣＣ等、自装置の修復能力を超えて発生するおそれもある。アプリケーションプログラム５０１の実行中に顕在的にエラーが発生して、トラブルを招く場合もあるし、アプリケーションプログラム５０１の実行中にはエラーが発生せず、潜在的に存在していて突然トラブルを招く場合もある。そこで、第１の実施の形態では、アプリケーションプログラム５０１の実行中に発生する顕在的なエラーのデータ修復処理について説明し、第２の実施の形態では、潜在的なエラーのデータ修復処理について説明する。
【００３８】
｛第１の実施の形態｝
図２に本実施の形態におけるフローチャートを、図３に本実施の形態における情報処理装置３ａのブロック図を示す。図３に示すように、本実施の形態では、フラッシュメモリ５に、アプリケーションプログラム５０１とともに、記憶データを修復する修復プログラム１０が記憶されている場合を例示している。修復プログラム１０は、アプリケーションプログラム５０１の中に修復ルーチンとして組み込まれている場合もある。なお、図１において、情報処理装置３ａ等は、ネットワーク１に接続されてアクセス可能な状態になっている。
【００３９】
まず、ユーザからホストシステム６に対して、オンラインゲーム等、アプリケーションプログラム５０１の実行指示が行われる（ステップＳ１）。そうすると、ホストシステム６は、アプリケーションプログラム５０１の読み出しに先立って、修復プログラム１０をバッファメモリ７に読み出す（ステップＳ２）。読み出された修復プログラム１０は、バッファメモリ７に常駐し、少なくともアプリケーションプログラム５０１の実行中は実行可能な状態に保持される。その後、アプリケーションプログラム５０１が、バッファメモリ７を介して読み出され、ホストシステム６によって実行される（ステップＳ３）。アプリケーションプログラム５０１の実行中、ユーザは情報処理装置３を操作してゲーム等を楽しむことができる。修復プログラム１０は、エラーが発生した時点でバッファメモリ７に読み出すようにしてもよい。
【００４０】
そして、そのゲーム等のアプリケーションプログラム５０１の実行中に、そのアプリケーションプログラム５０１を構成している記憶データにエラーが発生すると、エラーが発生した直後に、ホストシステム６によって修復プログラム１０が実行される（ステップＳ４）。
【００４１】
図４は、修復プログラム１０による処理の流れを示すフローチャートを示している。修復プログラム１０は、ホストシステム６から実行指示を受けると（ステップＳ１０）、ネットワーク１を介して、同一のアプリケーションプログラム５０１を備えるサーバ２、または同一のアプリケーションプログラム５０１を備える他の情報処理装置３ｂにアクセスする（ステップＳ１１）。たとえば、対戦型のオンラインゲームを行うゲーム機であれば、対戦相手となっているゲーム機にアクセスすることができる。
【００４２】
そして、修復プログラム１０は、記憶データの修復に必要なデータ（取得データ）を取得するとともに、フラッシュメモリ５に取得データを記憶してデータ修復を行うのである（ステップＳ１２、ステップＳ１３）。
【００４３】
図５に、修復プログラム１０によるデータ修復の具体例を示す。図５の（ａ）に示すように、フラッシュメモリ５はＦＡＴ５ｃと記憶領域とを含む。記憶領域は、複数の書き込み、読み出し単位であるページ５ｄと、複数のページ５ｄからなり、データの消去単位であるブロック５ｅとで構成されている。ここでは説明上、図５に示すように、Ａ〜Ｄのデータが記憶されている複数のページ５ｄ、・・、５ｄで一つのブロック５ｅが形成されていて、その中のＣのデータが記憶されているページ５ｄの領域内で“Ｒｅａｄ  Ｄｉｓｔｕｒｂ”現象による書き換えが起きてエラーが発生したものとする（Ｃ→Ｚ）。
【００４４】
この場合、修復プログラム１０は、ブロック５ｅを構成するデータを、ネットワークを介して外部から一括して取得する。そして、自装置のフラッシュメモリ５に記憶されているブロック５ｅを消去して、そこに取得したデータを書き込むことでデータの修復を行う。アプリケーションプログラム５０１の全体を構成するデータを取得して、これを丸ごと書き換えてデータの修復を行うこともできる。要は、少なくともエラーが発生した記憶データを含むデータを取得して、これをエラーが含まれるデータと書き換えればよい。書き換えであるため、フラッシュメモリ５の記憶領域が効率よく利用できる。とくに“Ｒｅａｄ  Ｄｉｓｔｕｒｂ”現象によるエラーは書き換え、消去によって回復できるため、効果的である。
【００４５】
また、図５の（ｂ）や（ｃ）に示すように、フラッシュメモリ５の未使用領域５ｂを利用してもよい。この場合、情報処理装置３には、ＦＡＴ５ｃ等、フラッシュメモリ５に記憶されている記憶データの格納情報を管理する管理手段を設けておく。そして、図５の（ｂ）に示すように、ブロック５ｅ単位で取得した取得データを、未使用領域５ｂに記憶するとともに、管理手段におけるアプリケーションプログラム５０１中での実行順序を新たに組み替えることにより、取得データに代替するのである。これによれば、データ修復の一連の過程で消去処理が不要になるため、上書きする場合に比べて処理時間を短縮でき、緊急を要する場合に効果的である。もちろん、元のブロック５ｅは、消去して再利用できる。
【００４６】
図５の（ｃ）に示すように、ページ５ｄ単位で処理することもできる。未使用領域５ｂを利用するため、ブロック５ｅ単位で処理しなくてもよいからである。具体的には、先と同様に、情報処理装置３にフラッシュメモリ５に記憶されている記憶データの格納情報を管理する管理手段を設け、ページ５ｄ単位で取得した取得データを、未使用領域５ｂに記憶する。そして、管理手段が管理する論理アドレスのチェーン情報を変更すること等により、アプリケーションプログラム５０１中での実行順序を新たに組み替え、取得データに代替するのである。
【００４７】
この処理は、修復に要するデータ量が小さく極短時間で修復できるため、アプリケーションプログラム５０１の実行中のデータ修復方法として好適である。ただし、消去はブロック５ｅ単位で行われるため、エラーのあるページ５ｄはそのままフラッシュメモリ５に残ることとなる。
【００４８】
また、本実施の形態の修復プログラム１０は、アプリケーションプログラム５０１に付随しているため、アプリケーションプログラム５０１の特性に合わせて修復プログラム１０を設定できる利点がある。
【００４９】
｛第２の実施の形態｝
図６に本実施の形態におけるフローチャートを、図７に本実施の形態における情報処理装置３のブロック図を示す。図７に示すように、本実施の形態では、修復プログラム１０がホストシステム６に備えられる場合を例示している。図１において、情報処理装置３ａ等はネットワーク１に接続されてアクセス可能な状態になっている。
【００５０】
修復プログラム１０は、第１の実施の形態と同じく、フラッシュメモリ５にアプリケーションプログラム５０１とともに記憶されている場合や、アプリケーションプログラム５０１の中に修復ルーチンとして組み込まれている場合であってもよい。その場合には、予め前もって、あるいは、エラーが発生した時点でホストシステム６側に読み出す。要するに、修復プログラム１０が実行可能な状態になっていればよい。
【００５１】
本実施の形態のネットワーク１は、一般的なネットワークが利用できるが、なかでも、ワイヤレスネットワークや電力線搬送通信を介したネットワークを利用するのが好ましい。情報処理装置３がスリープ状態にあるときや、充電状態にあるときに、人知れずデータの修復を行うことができ、ユーザに対して不安感を与えることがないからである。
【００５２】
修復プログラム１０は、たとえば、情報処理装置３への電源投入時や電源切断時、アプリケーションプログラム５０１の起動時や終了時、アイドル時、データバックアップ時、アプリケーションプログラム５０１の実行中における一定の周期等、所定のタイミングでフラッシュメモリ５に記憶されている記憶データにエラーがないか否かを調べる（ステップＳ２０）。そして、フラッシュメモリ５中にエラーを生じた記憶データを発見した場合、その記憶データの位置や数など、修復に必要なデータが修復情報として記憶される（ステップＳ２１）。修復情報は、たとえば、バッファメモリ７等、情報処理装置３が有するいずれかの記憶装置（修復情報記憶手段）に記憶される（ステップＳ２１）。なお、これら一連の処理は、ユーザに不安を与えないように、アプリケーションプログラム５０１のバックグランドで行われる。
【００５３】
次に、アプリケーションプログラム５０１の休止中、たとえば、情報処理装置３がスリープ状態にあるときや充電状態にあるときに、記憶された修復情報に基づき、修復プログラム１０によって記憶データの修復が行われる（ステップＳ２２）。たとえば、夜間など、アプリケーションプログラム５０１が実行されない時間帯に実行させるとよい。
【００５４】
修復プログラム１０による具体的なデータ修復の流れは、第１の実施の形態で説明したものと異ならないため、説明は省略する（図４、図５参照）。
【００５５】
本実施の形態では、アプリケーションプログラム５０１の休止中にデータの修復を行うため、たとえば、データ全体の書き換え等、時間を要するデータ修復処理を安全確実に行うことができる利点がある。修復プログラム１０をホストシステム６側に設けた場合、フラッシュメモリ５の記憶領域をアプリケーションプログラム５０１のデータ記憶用として最大限利用できる点でも有利である。
【００５６】
以上のように、本発明のフラッシュメモリのデータ修復システムによれば、ネットワークを利用して自装置の外部からデータを取得し、そのデータに基づいてデータ修復を行うので、仮にフラッシュメモリに自装置のエラー訂正能力を超えるエラーが発生しても、データ修復ができるようになっている。
【００５７】
同じ記憶データを記憶する情報処理装置３が複数あれば、サーバ２は必ずしも必要ではない。また、同じ記憶データを記憶するサーバ２があれば、同じ記憶データを記憶する情報処理装置３は複数でなくてもよい。
【００５８】
修復に用いるフラッシュメモリの未使用領域５ｂは、必ずしもデータ修復が行われるフラッシュメモリのものでなくてもよく、情報処理装置３に実装されている他の再書き込み可能な不揮発性半導体メモリの未使用領域が利用できる。たとえば、情報処理装置３に、別途ＮＯＲ型フラッシュメモリが実装されていれば、その未使用領域を利用することができる。そうすることで、対象となるデータの信頼性をより確実にできる。
【００５９】
フラッシュメモリ５の未使用領域５ｂに記憶した取得データの格納情報を管理する管理手段は、必ずしもＦＡＴ５ｃでなくてもよい。たとえば、情報処理装置３のホストシステム６内や、情報処理装置３に実装されている他の再書き込み可能な不揮発性半導体メモリなどを利用して、管理テーブルを設定することができる。
【００６０】
状況に合ったデータ修復機能が発揮できるように、第１と第２の実施の形態における構成を組み合わせてもよい。具体的には、修復プログラム１０をフラッシュメモリ５と、ホストシステム６との双方に組み込む。そうすれば、アプリケーションプログラム５０１の実行時には、比較的短時間で修復処理ができ、アプリケーションプログラム５０１が休止中に全データを書き換える等、より万全を期したデータ修復処理を組み合わせて行うことができる。もちろん、組み込まれる修復プログラム１０は、必ずしも同一である必要はなく、それぞれの機能特性に合わせて設定可能である。
【００６１】
データ修復処理は、記憶データをバッファメモリ７に読み出さずに、フラッシュメモリ５上で直接実行してもよい。たとえば、フラッシュメモリ５の未使用領域５ｂの一部をバッファメモリ７に代用することができる。
【００６２】
ＥＣＣ等の自装置の修復能力を超えるトラブルが発生した場合だけでなく、自装置の修復能力の範囲内であっても適用可能である。ＥＣＣ等のエラー修正機能とは別に重畳的に組み込んでもよい。
【００６３】
たとえば、エラーの発生回数の累積値やエラーの発生頻度等、エラーに関連する所定の閾値を設定する。そして、修復プログラム１０に、その閾値を超えるエラーが発生しているか否かを調べる手段を設け、その閾値を超えるエラーが発生した場合に、データの修復を行うようにするのである。そうすることで、エラーの累積によるシステムの暴走等、重大なトラブルを招くリスクを減少させることができ、効果的である。
【００６４】
第１の実施の形態における修復プログラム１０は、ホストシステム６側に備えられていてもよい。第２の実施の形態における修復プログラム１０は、フラッシュメモリ５側に備えられていてもよい。
【００６５】
上記実施の形態では、“Ｒｅａｄ  Ｄｉｓｔｕｒｂ”現象によるエラーを例に説明したが、必ずしもそれに限られるものではない。
【図面の簡単な説明】
【００６６】
【図１】本発明にかかる不揮発性半導体メモリのデータ修復システムの基本構成を示すブロック図である。
【図２】第１の実施の形態におけるフローチャートである。
【図３】第１の実施の形態における情報処理装置のブロック図である。
【図４】第１の実施の形態における修復プログラムの処理の流れを示すフローチャートである。
【図５】第１の実施の形態における修復プログラムによるデータ修復を説明するための図である。
【図６】第２の実施の形態におけるフローチャートである。
【図７】第２の実施の形態における情報処理装置のブロック図である。
【図８】“Ｒｅａｄ  Ｄｉｓｔｕｒｂ”現象を説明するための図である。
【符号の説明】
【００６７】
１  ネットワーク
２  サーバ
３  情報処理装置
５  不揮発性半導体メモリ
６  ホストシステム
【図１】
2008192053.tif 000003
【図２】
2008192053.tif 000004
【図３】
2008192053.tif 000005
【図４】
2008192053.tif 000006
【図５】
2008192053.tif 000007
【図６】
2008192053.tif 000008
【図７】
2008192053.tif 000009
【図８】
2008192053.tif 000010