(57)【特許請求の範囲】
【請求項１】
再書き込み可能な不揮発性半導体メモリに対するアクセスを制御するコントローラであって、
再書き込み処理を実行する再書き込み実行タイミングにおいて、前記不揮発性半導体メモリの記憶領域の一部をリフレッシュ対象領域として決定する領域決定手段と、
前記リフレッシュ対象領域の状態にかかわらず、前記リフレッシュ対象領域に格納されている記憶データを、前記不揮発性半導体メモリ内の記憶領域に再書き込みする再書き込み手段と、
を備え、
前記領域決定手段は、
前記不揮発性半導体メモリの全記憶領域に対する再書き込み処理が複数回の前記再書き込み実行タイミングに亘ってなされるように、前記再書き込み実行タイミングごとに、前記不揮発性半導体メモリの記憶領域中の異なる領域を前記リフレッシュ対象領域として決定する手段、
を含むことを特徴とするメモリコントローラ。
【請求項２】
請求項１に記載のメモリコントローラにおいて、
前記再書き込み手段は、
前記不揮発性半導体メモリの電源がＯＮもしくはＯＦＦされるとき、前記リフレッシュ対象領域に対する記憶データの再書き込み処理を実行する手段、
を含むことを特徴とするメモリコントローラ。
【請求項３】
請求項１に記載のメモリコントローラにおいて、
前記再書き込み手段は、
外部から入力した再書き込みタイミング指示に応答して、前記リフレッシュ対象領域に対する記憶データの再書き込み処理を実行する手段、
を含むことを特徴とするメモリコントローラ。
【請求項４】
請求項１に記載のメモリコントローラにおいて、
前記再書き込み手段は、
所定のタイミングスケジュールに従い、前記リフレッシュ対象領域に対する記憶データの再書き込み処理を実行する手段、
を含むことを特徴とするメモリコントローラ。
【請求項５】
請求項１に記載のメモリコントローラにおいて、
前記再書き込み手段は、
ホストシステムによる前記不揮発性半導体メモリに対するアクセスが発生していないタイミングで、前記リフレッシュ対象領域に対する記憶データの再書き込み処理を実行する手段、
を含むことを特徴とするメモリコントローラ。
【請求項６】
請求項１に記載のメモリコントローラにおいて、
前記再書き込み手段は、
データバックアップのタイミングで、前記リフレッシュ対象領域に対する記憶データの再書き込み処理を実行する手段、
を含むことを特徴とするメモリコントローラ。
【請求項７】
請求項１ないし請求項６のいずれかに記載のメモリコントローラにおいて、
前記再書き込み手段は、
前記リフレッシュ対象領域のデータを一時記憶メモリに格納後、当該領域のデータを消去し、再び、当該領域に前記一記憶メモリに退避させていたデータを格納する手段、
を含むことを特徴とするメモリコントローラ。
【請求項８】
請求項１ないし請求項６のいずれかに記載のメモリコントローラにおいて、
前記再書き込み手段は、
前記リフレッシュ対象領域を含むブロック領域のデータを一時記憶メモリに格納後、当該ブロック領域のデータを消去し、再び、当該ブロックに前記一記憶メモリに退避させていたデータを格納する手段、
を含むことを特徴とするメモリコントローラ。
【請求項９】
請求項１ないし請求項６のいずれかに記載のメモリコントローラにおいて、
前記再書き込み手段は、
前記リフレッシュ対象領域のデータを、前記不揮発性半導体メモリの記憶領域内の別の領域に格納するとともに、当該データへの参照情報を新しい格納先に変更する手段、
を含むことを特徴とするメモリコントローラ。
【請求項１０】
請求項１ないし請求項６のいずれかに記載のメモリコントローラにおいて、
前記再書き込み手段は、
前記リフレッシュ対象領域を含むブロック領域のデータを、前記不揮発性半導体メモリの記憶領域内の別の領域に格納するとともに、当該データへの参照情報を新しい格納先に変更する手段、
を含むことを特徴とするメモリコントローラ。
【請求項１１】
請求項８または請求項１０に記載のメモリコントローラにおいて、
前記ブロック領域は、前記不揮発性半導体メモリの消去単位であることを特徴とするメモリコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリからデータが繰り返し読み出されることにより、データが意図せず書き換えられる可能性を回避または低減する技術に関する。
【背景技術】
【０００２】
不揮発性メモリの中でも、ＮＡＮＤフラッシュメモリは、単純な回路構成による高集積化や製造コスト減、ユーザによる書き込みの容易化を図ることを可能とするため、ＳＤメモリカードなどに大量に採用されている。
【０００３】
最近では、ＮＡＮＤフラッシュメモリは、ゲーム機などにも採用されている。ＮＡＮＤフラッシュメモリがゲーム機などで使用される際には、書き込みは発生せず、連続的な読み出しが発生する。すなわち、ＮＡＮＤフラッシュメモリがＲＯＭとして採用されることが多くなりつつある。
【０００４】
しかし、ゲーム機などでは、特定のプログラムが繰り返し読み出されることが多いため、プログラムが意図せず書き換えられる可能性が指摘され始めている。このような現象は“Ｒｅａｄ  Ｄｉｓｔｕｒｂ”現象と呼ばれており、本現象が発生するメカニズムについて、以下に簡単に説明する。
【０００５】
図７は、ＮＡＮＤフラッシュメモリの模式図である。ＮＡＮＤフラッシュメモリは、格子状に配線されたビット線４１とワード線４２、４３、４４、メモリセル５２、５３、選択トランジスタ５４などから構成されている。
【０００６】
メモリセル５２が格納する二値データ（“０”または“１”）を読み出す場合を考える。この場合、メモリセル５２は選択セル５２、メモリセル５３は非選択セル５３と呼ばれている。まず、選択トランジスタ５４により、選択セル５２が属するビット線４１が指定される。次に、選択セル５２が属するワード線４２に対して、低ゲート電圧Ｖ（Ｌｏｗ）＝０Ｖが印加される。そして、非選択セル５３が属するワード線４３に対して、高ゲート電圧Ｖ（Ｈｉｇｈ）〜５Ｖが印加される。このとき、非選択セル５３は微弱な書き込み状態にあるため、非選択セル５３のフローティングゲートに電子がトラップされ、蓄積される。すなわち、選択セル５２が格納する二値データが繰り返し読み出されると、非選択セル５３の閾値電圧がシフトして、非選択セル５３が格納している二値データが、“１”から“０”に意図せず書き換えられる可能性がある。
【０００７】
もっとも、非選択セル５３が格納している二値データが意図せず書き換えられたとしても、データが新たに書き込まれる前に一括して消去される際に、非選択セル５３の機能を回復させることができる。しかし、書き込みは発生せず、連続的な読み出しが発生する場合には、非選択セル５３の機能を回復させることができなくなる。
【０００８】
以上に説明した“Ｒｅａｄ  Ｄｉｓｔｕｒｂ”現象を回避する手段を提供する文献として、以下の特許文献が挙げられる。
【０００９】
【特許文献１】米国特許出願公開第２００５／０２１０１８４号明細書
【発明の開示】
【発明が解決しようとする課題】
【００１０】
上述の特許文献は、メモリセル内部の制御方法により、“Ｒｅａｄ  Ｄｉｓｔｕｒｂ”現象を回避する手段を提供するものである。しかし、ここで開示されている方法は、特定のセル構造を有するメモリに対して適用可能な方法であり、他のセル構造に適用可能なものではない。つまり、メモリのセル構造に依存することなく、“Ｒｅａｄ  Ｄｉｓｔｕｒｂ”現象を回避できる方策ではない。
【００１１】
そこで、本発明は前記問題点に鑑み、メモリのセル構造に制約を受けることなく、様々なタイプの不揮発性メモリにおいても、“Ｒｅａｄ  Ｄｉｓｔｕｒｂ”現象を回避または低減することができる手段を提供することを目的とする。
【課題を解決するための手段】
【００１６】
請求項１記載の発明は、再書き込み可能な不揮発性半導体メモリに対するアクセスを制御するコントローラであって、再書き込み処理を実行する再書き込み実行タイミングにおいて、前記不揮発性半導体メモリの記憶領域の一部をリフレッシュ対象領域として決定する領域決定手段と、前記リフレッシュ対象領域の状態にかかわらず、前記リフレッシュ対象領域に格納されている記憶データを、前記不揮発性半導体メモリ内の記憶領域に再書き込みする再書き込み手段と、を備え、前記領域決定手段は、前記不揮発性半導体メモリの全記憶領域に対する再書き込み処理が複数回の前記再書き込み実行タイミングに亘ってなされるように、前記再書き込み実行タイミングごとに、前記不揮発性半導体メモリの記憶領域中の異なる領域を前記リフレッシュ対象領域として決定する手段、を含むことを特徴とする。
【００１７】
請求項２記載の発明は、請求項１に記載のメモリコントローラにおいて、前記再書き込み手段は、前記不揮発性半導体メモリの電源がＯＮもしくはＯＦＦされるとき、前記リフレッシュ対象領域に対する記憶データの再書き込み処理を実行する手段、を含むことを特徴とする。
【００１８】
請求項３記載の発明は、請求項１に記載のメモリコントローラにおいて、前記再書き込み手段は、外部から入力した再書き込みタイミング指示に応答して、前記リフレッシュ対象領域に対する記憶データの再書き込み処理を実行する手段、を含むことを特徴とする。
【００１９】
請求項４記載の発明は、請求項１に記載のメモリコントローラにおいて、前記再書き込み手段は、所定のタイミングスケジュールに従い、前記リフレッシュ対象領域に対する記憶データの再書き込み処理を実行する手段、を含むことを特徴とする。
【００２０】
請求項５記載の発明は、請求項１に記載のメモリコントローラにおいて、前記再書き込み手段は、ホストシステムによる前記不揮発性半導体メモリに対するアクセスが発生していないタイミングで、前記リフレッシュ対象領域に対する記憶データの再書き込み処理を実行する手段、を含むことを特徴とする。
【００２１】
請求項６記載の発明は、請求項１に記載のメモリコントローラにおいて、前記再書き込み手段は、データバックアップのタイミングで、前記リフレッシュ対象領域に対する記憶データの再書き込み処理を実行する手段、を含むことを特徴とする。
【００２２】
請求項７記載の発明は、請求項１ないし請求項６のいずれかに記載のメモリコントローラにおいて、前記再書き込み手段は、前記リフレッシュ対象領域のデータを一時記憶メモリに格納後、当該領域のデータを消去し、再び、当該領域に前記一記憶メモリに退避させていたデータを格納する手段、を含むことを特徴とする。
【００２３】
請求項８記載の発明は、請求項１ないし請求項６のいずれかに記載のメモリコントローラにおいて、前記再書き込み手段は、前記リフレッシュ対象領域を含むブロック領域のデータを一時記憶メモリに格納後、当該ブロック領域のデータを消去し、再び、当該ブロックに前記一記憶メモリに退避させていたデータを格納する手段、を含むことを特徴とする。
【００２４】
請求項９記載の発明は、請求項１ないし請求項６のいずれかに記載のメモリコントローラにおいて、前記再書き込み手段は、前記リフレッシュ対象領域のデータを、前記不揮発性半導体メモリの記憶領域内の別の領域に格納するとともに、当該データへの参照情報を新しい格納先に変更する手段、を含むことを特徴とする。
【００２５】
請求項１０記載の発明は、請求項１ないし請求項６のいずれかに記載のメモリコントローラにおいて、前記再書き込み手段は、前記リフレッシュ対象領域を含むブロック領域のデータを、前記不揮発性半導体メモリの記憶領域内の別の領域に格納するとともに、当該データへの参照情報を新しい格納先に変更する手段、を含むことを特徴とする。
【００２６】
請求項１１記載の発明は、請求項８または請求項１０に記載のメモリコントローラにおいて、前記ブロック領域は、前記不揮発性半導体メモリの消去単位であることを特徴とする。
【発明の効果】
【００２７】
本発明のメモリコントローラは、再書き込み可能な不揮発性半導体メモリの記憶領域中のリフレッシュ対象領域を決定し、リフレッシュ対象領域に格納されている記憶データの再書き込みを行う。これにより、多数の読み出し処理によって意図せずしてデータが書き換わってしまう前に、データをリフレッシュさせることが可能である。
【００２８】
また、再書き込み可能な不揮発性半導体メモリの記憶領域の中で、読み出し回数が所定回数を超える領域を、リフレッシュ対象領域として決定するので、読み出し処理が集中する領域を重点的にリフレッシュし、多数の読み出し処理によって意図せずしてデータが書き換わってしまう前に、データをリフレッシュさせることが可能である。
【００２９】
また、所定の規則に従い、再書き込み可能な不揮発性半導体メモリ内の全記憶領域を、順にリフレッシュ領域として決定するので、多数の読み出し処理によって意図せずしてデータが書き換わってしまう前に、データをリフレッシュさせることが可能である。
【００３０】
また、再書き込み可能な不揮発性半導体メモリの記憶領域の中で、予め定められている領域を、リフレッシュ対象領域として決定するので、読み出し処理が集中すると想定される領域などについて、多数の読み出し処理によって意図せずしてデータが書き換わってしまう前に、データをリフレッシュさせることが可能である。
【発明を実施するための最良の形態】
【００３１】
｛第１の実施の形態｝
以下、図面を参照しつつ本発明の実施の形態について説明する。図１は、本実施の形態に係る情報処理システムの機能ブロック図である。この情報処理システムは、ホストシステム１とメモリモジュール２とを備えて構成される。メモリモジュール２は、メモリコントローラ３とメモリ４とを備えている。
【００３２】
本実施の形態において、メモリ４は、再書き込み可能な不揮発性半導体メモリであるＮＡＮＤフラッシュメモリを採用している。メモリコントローラ３は、メモリ４に対するデータの読み出しや書き込みを制御する。例えば、この情報処理システムは、ゲーム装置として機能する。この場合、ホストシステム１は、ゲーム装置本体を構成し、メモリモジュール２がゲームカートリッジを構成する。メモリモジュール２は、ホストシステム１に対して着脱自在なタイプであってもよいし、ホストシステム１を構成する装置に内蔵されるタイプであってもよい。なお、本実施の形態においては、メモリコントローラ３が、メモリモジュール２に搭載される構成となっているが、ホストシステム１がメモリコントローラ３を備える構成であってもよい。
【００３３】
図に示すように、メモリコントローラ３は、インタフェース３１、アドレスデコーダ部３２、リフレッシュ制御部３３を備えている。インタフェース３１は、ホストシステム１から出力された読み出しや書き込みのコマンドを入力する入力インタフェースとして、また、メモリ４から出力された読み出しデータをホストシステム１に対して出力する出力インタフェースとして機能する。あるいは、インタフェース３１は、ホストシステム１から出力された書き込みデータを入力する入力インタフェースとして機能する。
【００３４】
アドレスデコーダ部３２は、インタフェース３１を介して入力した読み出しコマンドや書き込みコマンドから、読み出しアドレスや書き込みアドレスを取得する。メモリ４に対して読み出しアドレスが出力されると、メモリ４からは、その読み出しアドレスに対応する記憶データが読み出されるのである。また、メモリ４に対して書き込みアドレスとデータが与えられると、メモリ４に対するデータの書き込み処理が実行される。
【００３５】
ここで、本実施の形態におけるメモリモジュール２は、書き込み可能なＮＡＮＤフラッシュメモリを採用しているが、上述したように、ゲームカートリッジなど、読み出しを主な目的とするメモリとして利用される。つまり、ホストシステム１から次々に出力される読み出しコマンドに応答して、指定された読み出しアドレスのデータを読み出す処理が繰り返し実行されるのである。ホストシステム１は、メモリ４から読み出されたデータを入力し、様々な処理を実行する。
【００３６】
このように、本実施の形態においては、メモリ４に記憶されたデータの読み出し処理が繰り返し多数行われる可能性がある。そして、このようなケースにおいて、上述したように、意図せずして記憶データが書き換わる現象、つまり、“Ｒｅａｄ  Ｄｉｓｔｕｒｂ”現象が発生する可能性がある。そして、本実施の形態のメモリコントローラ３は、この“Ｒｅａｄ  Ｄｉｓｔｕｒｂ”現象を防止するために、リフレッシュ制御部３３を備えている。
【００３７】
図２に示すように、リフレッシュ制御部３３は、読み出し回数記憶部３３１を備えている。読み出し回数記憶部３３１は、メモリ４のページごとの読み出し回数をカウントして記憶している。つまり、ホストシステム１より入力した読み出しコマンドに含まれる読み出しアドレスの出現回数を記憶している。なお、読み出し回数記憶部３３１を、ホストシステム１内に設けてもよい。あるいは、読み出し回数記憶部３３１を、メモリモジュール２内の別の不揮発性メモリや、ゲームデータを格納するメモリアレイなど、情報処理システム内のいずれの場所に配置してもよい。
【００３８】
上述したように、本実施の形態においては、メモリ４としてＮＡＮＤフラッシュメモリを採用している。ＮＡＮＤフラッシュメモリに対しては、ページ単位で読み出し可能である。したがって、読み出し回数記憶部３３１は、メモリ４のページごとの読み出し回数を記憶しているのである。
【００３９】
図３は、ページ単位で区画されたメモリ４と、読み出し回数記憶部３３１に格納された読み出し回数情報を示すイメージ図である。この図で示す例では、ページ１が２回読み出されたこと、ページ３が１０回読み出されことなどが示されている。
【００４０】
リフレッシュ制御部３３は、読み出し回数記憶部３３１において、ページごとの読み出し回数を管理し、読み出し回数が所定回数を上回ったページをリフレッシュ対象ページとして決定する。そして、リフレッシュ対象ページに記憶されているデータの再書き込み処理を実行する。
【００４１】
＜リフレッシュ方法＞
以上説明したように、読み出し回数記憶部３３１においてページごとの読み出し回数が管理される。そして、リフレッシュ対象領域として決定されるのは、読み出し回数が所定回数を超えたページである。このようにして、リフレッシュ対象領域のページが決定されると、当該ページに関しては、以下の方法で再書き込み処理が実行される。
【００４２】
第１の方法は、リフレッシュ対象領域となったページを含むブロック内のデータを、当該ブロック領域をそのまま利用して再書き込みする方法である。ここで言うブロックとは、ＮＡＮＤフラッシュメモリの消去単位のブロックを示している。ブロックは、複数のページ領域から構成される。
【００４３】
まず、リフレッシュ対象領域として決定されたページを含むブロック内のデータを、一旦、一時記憶メモリ（図示せず）に退避させる。つまり、ページごとにデータを読み出して、そのデータを一時記憶メモリに格納するのである。一時記憶メモリは、メモリコントローラ３内に設けるようにすればよい。次に、リフレッシュ対象領域として決定されたページを含むブロック内のデータを消去する。そして、最後に、一時記憶メモリに退避させていたブロック内のデータを、再び、元のブロック領域に書き込むのである。このようにして、リフレッシュ対象領域のページを含むブロック内のデータが再書き込みされる。
【００４４】
背景技術で説明したように、データの繰り返し読み出しにより、Ｒｅａｄ  Ｄｉｓｔｕｒｂ現象が発生する恐れがあるが、このように、メモリ４内において、読み出し回数が多くなったブロック内のデータがリフレッシュされるので、データの意図しない書き換えを防止できるのである。
【００４５】
本実施の形態においては、ブロック単位で消去可能なＮＡＮＤフラッシュメモリを採用しているので、上記のように、リフレッシュ対象領域を含むブロック内のデータを一時記憶メモリに格納し、ブロック内のデータを消去するようにした。もちろん、メモリの消去単位が小さな単位（たとえばバイト単位やワード単位など）である場合には、その小さな消去単位のデータを一時記憶メモリに退避させ、再書き込みするようにしてもよい。たとえば、リフレッシュ対象領域に対応する領域のみを消去可能であれば、リフレッシュ対象領域のデータを一時記憶メモリに退避させ、リフレッシュ対象領域を消去するようにする。そして、一時記憶メモリに退避させていたリフレッシュ対象領域のデータを、再書き込みするのである。
【００４６】
第２の方法は、リフレッシュ対象領域となったページに格納されていたデータを、メモリ４内の別のページ領域にコピーする、という方法である。つまり、読み出し回数が所定回数を超えたページ内のデータをメモリ４内の別の領域に格納するのである。
【００４７】
そして、ホストシステム１が、コピー先のデータを参照できるように、データの参照情報を更新するのである。データの参照情報として、本実施の形態においては、ＦＡＴ（Ｆｉｌｅ  Ａｌｌｏｃａｔｉｏｎ  Ｔａｂｌｅ）を用いている。ＦＡＴは、メモリ４の記憶領域内に格納されている。このＦＡＴを更新することで、リフレッシュ対象領域となっているページについては、新しくコピーが格納された方の領域を参照するようにするのである。これにより、読み出し回数が多くなり、データの意図しない書き換え現象が発生する前に、新たな領域に、データを再書き込みし、ホストシステム１が、再書き込みされた信頼性の高いデータを参照できるようにするのである。
【００４８】
なお、コピー元のデータは、この時点では、そのまま保持しておけばよい。そして、そのブロック内の全ページのデータが使用されなくなった時点（つまり、このブロック内の全ページのデータが、別のページにコピーされた時点）で、当該ブロック内のデータを消去すればよい。データが消去された後、当該ブロックについては、再び、他のデータの書き込み領域として利用することが可能である。
【００４９】
第３の方法は、リフレッシュ対象領域となったページを含むブロックに格納されていたデータを、メモリ４内の別の記憶領域にコピーする、という方法である。つまり、読み出し回数が所定回数を超えたページを含むブロック内のデータをメモリ４内の別の領域に格納するのである。前述したように、ここで言うブロックとは、ＮＡＮＤフラッシュメモリの消去単位のブロックである。
【００５０】
そして、第２の方法と同様、ホストシステム１が、コピー先のデータを参照できるように、データの参照情報を更新するのである。参照情報（たとえばＦＡＴ）を更新することで、リフレッシュ対象領域となっているページを含むブロックについては、新しくコピーが格納された方のブロックを参照するようにするのである。これにより、読み出し回数が多くなり、データの意図しない書き換え現象が発生する前に、新たな領域に、データを再書き込みし、ホストシステム１が、再書き込みされた信頼性の高いデータを参照できるようにするのである。
【００５１】
なお、コピー元のデータが格納されていたブロックについては、データを消去してもよい。当該ブロックについては、再び、他のデータの書き込み領域として利用することが可能である。
【００５２】
以上説明したように、リフレッシュ対象ページが決定された場合、３つのリフレッシュ方法があることを説明した。以下の説明において、「リフレッシュ対象ページに関する再書き込み処理」という場合には、上記の３つのいずれかの方法が用いられるものとする。なお、本実施の形態においては、読み出し回数記憶部３３１は、ページ単位で読み出し回数のカウントを行うようにしているが、他にも、例えば、ブロック単位で読み出し回数をカウントするようにしてもよい。
【００５３】
＜リフレッシュタイミング＞
次に、「リフレッシュ対象ページに関する再書き込み処理」が、どのようなタイミングで実行されるかについて説明する。再書き込み処理の実行タイミングとして、以下に複数の例を挙げる。
【００５４】
その１つは、メモリ４に対する読み出し処理が行われた後に、再書き込み処理を実行する、というものである。メモリコントローラ３によりメモリ４に対する読み出し処理が実行されると、読み出し回数記憶部３３１において、ページごとの読み出し回数情報が更新される。そして、読み出し回数情報が更新された後、続いて、リフレッシュ制御部３３は、読み出し回数が、所定回数を超えるページが存在するかどうか判定するのである。そして、読み出し回数が、所定回数を超えるページが存在する場合には、リフレッシュ対象ページに関する再書き込み処理を実行するのである。
【００５５】
あるいは、メモリモジュール２の電源がＯＮもしくはＯＦＦされるタイミングで再書き込みを行うようにしてもよい。たとえば、ゲームカートリッジであるメモリモジュール２がゲーム装置本体であるホストシステム１に装着され、ゲーム装置本体の電源がＯＮされた状態で、再書き込み処理を実行するのである。より具体的には、電源がＯＮされてホストシステム１のブートプログラムが実行された後で、アプリケーションプログラム（たとえば、ゲームプログラム）が実行される前のタイミングで、再書き込みを行う場合が考えられる。あるいは、ゲーム装置本体の電源がＯＦＦされたとき、メモリモジュール２に対する電力供給を停止させる前のタイミングで、再書き込み処理を実行するのである。
【００５６】
電源がＯＮもしくはＯＦＦされると、リフレッシュ制御部３３は、読み出し回数記憶部３３１に格納されている各ページの読み出し回数情報を参照する。そして、予め定められている読み出し回数を超えているページをリフレッシュ対象ページとして決定し、リフレッシュ対象ページに関する再書き込み処理を行うのである。
【００５７】
あるいは、外部から入力した再書き込み指示信号に応答して、再書き込み処理を実行するようにしてもよい。たとえば、ホストシステム１から、再書き込み指示信号を入力したタイミングで、リフレッシュ制御部３３は、読み出し回数記憶部３３１に格納されている各ページの読み出し回数情報を参照する。そして、予め定められている読み出し回数を超えているページをリフレッシュ対象ページとして決定し、リフレッシュ対象ページに関する再書き込み処理を行うのである。
【００５８】
ホストシステム１は、任意のアルゴリズムを用いて、メモリモジュール２に対して、再書き込み指示信号を送出すればよい。たとえば、周期的に、タイミング信号を送出するようにしてもよい。
【００５９】
また、別の方法として、リフレッシュ制御部３３が、タイミングスケジュールテーブルを保持し、このスケジュールに従って、再書き込み処理を実行するようにしてもよい。タイマは、メモリコントローラ３内に持たせるようにしてもよい。リフレッシュ制御部３３は、タイミングスケジュールテーブルに基づいて、再書き込みタイミングを管理し、再書き込みタイミングが到来した時点で、読み出し回数記憶部３３１を参照するのである。そして、同様に、読み出し回数が所定回数を超えているページを決定し、リフレッシュ対象ページに関する再書き込み処理を行うのである。
【００６０】
さらに別の方法として、メモリ４に対するアクセスが発生していないタイミングで再書き込み処理を実行するようにしてもよい。リフレッシュ制御部３３は、メモリコントローラ３によるメモリ４に対するアクセスの有無を監視する。そして、メモリ４に対するアクセスが発生していないタイミングで、読み出し回数記憶部３３１を参照し、読み出し回数が所定回数を超えているページをリフレッシュ対象ページとして決定する。そして、リフレッシュ対象ページに関する再書き込み処理を行うのである。たとえば、ゲーム装置を充電しているタイミングなどで再書き込み処理が実行される。
【００６１】
さらに別の方法として、情報処理システムがゲーム装置である場合、データバックアップのタイミングで再書き込み処理を実行するようにしてもよい。つまり、ゲームプログラムの進行中、ユーザデータを所定の記憶部にバックアップする処理が発生する場合があるが、そのタイミングで読み出し回数記憶部３３１を参照し、読み出し回数が所定回数を超えているページをリフレッシュ対象ページとして決定する。そして、リフレッシュ対象ページに関する再書き込み処理を行うのである。あるいは、情報処理システムが、ゲームプログラム以外の様々なアプリケーションプログラムを実行する場合であっても、アプリケーションによるデータバックアップのタイミングで、再書き込み処理を実行するようにすればよい。
【００６２】
｛第２の実施の形態｝
次に、本発明の第２の実施の形態について説明する。第２の実施の形態における情報処理システムの構成は、図１を用いて説明した第１の実施の形態と同様である。第１の実施の形態においては、各ページの読み出し回数を記録し、この読み出し回数に応じてデータ再書き込みを実行するようにした。これに対して、第２の実施の形態においては、読み出し回数とは無関係に、全てのページに関して順にデータ再書き込みを行う。
【００６３】
図４は、リフレッシュ対象領域の決定方法を示すイメージ図である。この例では、リフレッシュ制御部３３は、ページ１から順に、全てのページをリフレッシュ対象領域として決定している。
【００６４】
たとえば、あるタイミングにおいては、ページ１に関して再書き込み処理を実行し、次のタイミングで、ページ２に関して再書き込みを実行し、次々に、ページをインクリメントさせて再書き込みを行うのである。もちろん、ページを選択する順番、アルゴリズムは自由である。ページアドレスの大きいものから順にリフレッシュ対象としてもよいし、ページアドレスを所定間隔とばしながら選択していってもよい。
【００６５】
ここで、第１の実施の形態において、＜リフレッシュ方法＞について、３つの方法を説明した。第２の実施の形態においても、これら３つの方法を適用させることが可能である。
【００６６】
たとえば、第１の方法、すなわち、リフレッシュ対象ページを含むブロックを一旦、別の一時記憶メモリに退避させる方法を適用することができる。この場合、リフレッシュ対象ページは、１ページずつインクリメントさせてもよいが、そのような方法をとると、連続して同じブロックに対する再書き込み処理が発生することになる。そこで、リフレッシュ対象ページとして、ブロックごとの先頭ページを順に選択するようにしてもよい。ブロックの先頭ページを順に選択することは、リフレッシュ対象領域として、ブロック領域を順に選択するという方法と等価となる。
【００６７】
また、第３の方法、すなわち、リフレッシュ対象ページを含むブロックのデータをメモリ４内の別領域にコピーする方法を適用する場合も同様である。リフレッシュ対象ページとして、各ページを順に選択してもよいが、ブロックごとの先頭ページを順に選択するようにしてもよい。そして、ブロック単位でデータを別の領域に書き込むとともに、参照情報も書き換えるようにすればよい。
【００６８】
第２の方法を選択する場合には、順に選択されたページ内のデータを、別のページ領域にコピーするとともに、参照情報を書き換えればよい。
【００６９】
リフレッシュタイミングについても、第１の実施の形態で説明した各タイミングを適用させることが可能である。メモリモジュール２の電源がＯＮもしくはＯＦＦされるごとに、リフレッシュ対象ページを決定し、リフレッシュ対象ページに関して再書き込み処理を実行するようにすればよい。たとえば、電源がＯＮされるごとに、異なるブロックがリフレッシュされるようにすればよい。
【００７０】
あるいは、ホストシステム１からリフレッシュタイミング信号を受け取り、その信号を受け取るたびに、リフレッシュ対象ページを順に変更し、リフレッシュ対象ページに関して再書き込み処理を実行するようにすればよい。同様に、リフレッシュ制御部３３がリフレッシュスケジュールを管理し、そのスケジュールに従って、次々に、異なるリフレッシュ対象ページに関して再書き込み処理を実行してもよいし、メモリ４に対するアクセスが発生していないタイミングで、リフレッシュ対象ページに関して再書き込み処理を実行してもよい。あるいは、ゲームデータのバックアップ中に再書き込み処理を実行してもよい。
【００７１】
｛第３の実施の形態｝
次に、本発明の第３の実施の形態について説明する。第３の実施の形態における情報処理システムの構成は、図１を用いて説明した第１の実施の形態と同様である。第３の実施の形態においては、予め指定されたページに関してデータ再書き込み処理を行う。
【００７２】
図５に示すように、第３の実施の形態に係るリフレッシュ制御部３３は、特定領域記憶部３３２を備えている。特定領域記憶部３３２は、予め、再書き込み処理を実行すべき領域として指定された領域のアドレスを格納している。たとえば、メモリ４に格納されるデータの特性上、繰り返し読み出されることが想定されるアドレスが指定される。あるいは、メモリ４の物理的な特性上、意図しないデータの書き換え（Ｒｅａｄ  Ｄｉｓｔｕｒｂ）が発生すると想定される領域のアドレスが指定される。たとえば、図６に示すように、ページ３、ページ１０１など、特定のアドレスが予め指定され、特定領域記憶部３３２に格納されるのである。なお、特定領域記憶部３３２を、ホストシステム１内に設けてもよい。あるいは、特定領域記憶部３３２を、メモリモジュール２内の別の不揮発性メモリや、ゲームデータを格納するメモリアレイなど、情報処理システム内のいずれの場所に配置してもよい。
【００７３】
第３の実施の形態においても、第１の実施の形態において説明した３つの＜リフレッシュ方法＞のいずれかの方法を用いることができる。
【００７４】
たとえば、第１の方法、すなわち、リフレッシュ対象ページを含むブロックを一旦、別の一時記憶メモリに退避させる方法を適用してもよい。
【００７５】
また、第２の方法のように、リフレッシュ対象ページのみをメモリ４内の別の領域のコピーし、参照情報を変更するようにしてもよい。データの特性に応じて、特定領域記憶部３３２に格納されるアドレスが決定されている場合、参照情報の更新と合わせて、特定領域記憶部３３２に格納しているアドレス情報も更新する必要がある。再び、コピー先のデータについて、Ｒｅａｄ  Ｄｉｓｔｕｒｂ現象を回避する必要があるからである。
【００７６】
また、第３の方法、すなわち、リフレッシュ対象領域のページを含むブロック内のデータをメモリ４内の別領域にコピーする方法を適用してもよい。データの特性に応じて、特定領域記憶部３３２に格納されるアドレスが決定されている場合、参照情報を変更するとともに、特定領域記憶部３３２に格納されているアドレス情報も更新する必要がある。
【００７７】
リフレッシュタイミングについても、第１の実施の形態で説明した各タイミングを適用させることが可能である。メモリモジュール２の電源がＯＮもしくはＯＦＦされるごとに、特定領域に関して再書き込み処理を実行するようにしてもよい。あるいは、ホストシステム１からリフレッシュタイミング信号を受け取り、その信号を受け取るたびに、特定領域に関して再書き込み処理を実行するようにしてもよい。同様に、リフレッシュ制御部３３がリフレッシュスケジュールを管理し、そのスケジュールに従って、再書き込み処理を実行してもよいし、メモリ４に対するアクセスが発生していないタイミングで、再書き込み処理を実行してもよい。あるいは、ゲームデータのバックアップ中に再書き込み処理を実行してもよい。
【００７８】
以上、Ｒｅａｄ  Ｄｉｓｔｕｒｂ現象を事前に回避するための方策として、各実施の形態を説明したが、これらを複合的に適用させてもよい。たとえば、第１の実施の形態と第３の実施の形態を複合的に用いてもよい。この方法をとれば、実際に、読み出し回数が集中する領域と、予め読み出し回数が集中すると予想している領域に関して、再書き込み処理を実行させることが可能である。
【図面の簡単な説明】
【００７９】
【図１】実施の形態に係る情報処理システムのブロック図である。
【図２】第１の実施の形態に係るリフレッシュ制御部のブロック図である。
【図３】第１の実施の形態におけるリフレッシュ対象ページの選択方法を示す図である。
【図４】第２の実施の形態におけるリフレッシュ対象ページの選択方法を示す図である。
【図５】第３の実施の形態に係るリフレッシュ制御部のブロック図である。
【図６】第３の実施の形態におけるリフレッシュ対象ページを示す図である。
【図７】“Ｒｅａｄ  Ｄｉｓｔｕｒｂ”現象の発生動作を示す図である。
【符号の説明】
【００８０】
１    ホストシステム
２    メモリモジュール
３    メモリコントローラ
４    メモリ
３３  リフレッシュ制御部
【図１】
0005661227.tif 000002
【図２】
0005661227.tif 000003
【図３】
0005661227.tif 000004
【図４】
0005661227.tif 000005
【図５】
0005661227.tif 000006
【図６】
0005661227.tif 000007
【図７】
0005661227.tif 000008