(57)【要約】【課題】フラッシュメモリのリードディスターブを抑制することができるメモリシステムおよびその制御方法を実現する。【解決手段】本発明のメモリシステムおよびその制御方法は、リードディスターブによりデータが読み出される回数に制限があるフラッシュメモリ１１と、フラッシュメモリ１１からデータが読み出されるたびに更新され、リードディスターブを判定する基準値との比較結果に基づいてフラッシュメモリ１１をリフレッシュするための読み出し回数を保持する不揮発性メモリ１２と、ホストＰＣ１５からのアクセスコマンドに基づいて、フラッシュメモリ１１からデータ読み出し、および不揮発性メモリ１２の読み出し回数の更新を制御する制御手段を有する。【選択図】図１
2008181380.tif 000002
【特許請求の範囲】
【請求項１】
リードディスターブによりデータが読み出される回数に制限があるフラッシュメモリと、
前記フラッシュメモリからデータが読み出されるたびに更新され、リードディスターブを判定する基準値との比較結果に基づいて前記フラッシュメモリをリフレッシュするための読み出し回数を保持する不揮発性メモリと、
ホストコンピュータからのアクセスコマンドに基づいて、前記フラッシュメモリからのデータ読み出し、および前記不揮発性メモリの前記読み出し回数の更新を制御する制御手段を有することを特徴とするメモリシステム。
【請求項２】
前記フラッシュメモリにおける前記リフレッシュは、消去ブロックごとに一括して行われ、
前記読み出し回数は、前記消去ブロックごとに保持されていることを特徴とする請求項１に記載のメモリシステム。
【請求項３】
前記不揮発性メモリは、前記リフレッシュの実行に際して当該リフレッシュの対象である前記消去ブロックのデータが退避される退避領域をさらに有することを特徴とする請求項２に記載のメモリシステム。
【請求項４】
前記不揮発性メモリは、前記リフレッシュを実行するたびに更新され、当該リフレッシュの対象である前記消去ブロックから前記退避領域へのデータ転送が制御されるリフレッシュ回数をさらに保持していることを特徴とする請求項３に記載のメモリシステム。
【請求項５】
格納されたデータの読み出し回数に制限があるフラッシュメモリと、不揮発性メモリとを有するメモリシステムの制御方法であって、
ホストコンピュータからのアクセスコマンドに基づいて前記フラッシュメモリからデータが読み出されるたびに前記不揮発性メモリに保持された読み出し回数が更新される第１のステップと、
前記第１のステップで更新された前記読み出し回数が基準値と比較され、前記フラッシュメモリのリードディスターブが判定される第２のステップと、
前記第２のステップでの判定結果に基づいて、前記フラッシュメモリのリフレッシュが実行される第３のステップを有することを特徴とするメモリシステムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、読み出し回数に制限を有するフラッシュメモリを用いたメモリシステムおよびその制御方法に関する。
【背景技術】
【０００２】
近年、半導体メモリは大型コンピュータの主記憶から、パーソナルコンピュータ、家電製品、携帯電話等、至る所で利用されている。特に注目を浴びているのは、フラッシュＥＥＰＲＯＭ型の不揮発性メモリ（以下、「フラッシュメモリ」という。）である。フラッシュメモリは電源を切ってもデータが消えない、高集積化に適した構造を持つ、などの利点がある。このため、携帯電話やデジタルカメラ等、多くの情報機器に利用されている。
【０００３】
フラッシュメモリには、主に、ＮＯＲ型とＮＡＮＤ型がある。ＮＯＲ型は、高速でデータ読み出しができ、読み出し回数が１０１３程度あり、携帯機器の命令コード記憶として使われている。反面、ＮＯＲ型は、データ書き込み時の実効バンド幅が小さく、ファイル記録などの大容量用途には適していない。これに対してＮＡＮＤ型は、高集積化が容易であり、いわゆるバーストリード（一連のアドレスに対して連続して高速にデータを読み出す。）が可能で実効バンド幅が高いという利点がある。また、メモリセルへ一度に書き込み、消去できるビット数が多いので、バーストモードでデータを取り込み、多数のビットをページ単位で一括して書き込むことができるという利点がある。このため、実行バンド幅を高くすることができ、メモリカード、ＵＳＢメモリ、携帯電話のメモリ等で用いられており、最近ではハードディスクの置き換えとしても検討されはじめている。
【０００４】
一方、ＮＡＮＤ型フラッシュメモリでハードディスクの置き換えを考える際の障害の１つとして書き込み-消去回数の制限、および読み出し回数の制限がある。  
フラッシュメモリの書き込み-消去では、基板に対してゲートに高電圧がかけられ、フローティングゲートに電子が注入される。このため、書き込み-消去が何回も実行されるとフローティングゲート周りの酸化膜が劣化し、データが破壊されてしまう。フラッシュメモリの書き込み回数はおよそ１０５回程度であり、他の不揮発性メモリに比べて非常に少なく、ハードディスクとして用いた場合、書き込み-消去回数の制限からデータが破壊し、システムに支障をきたすおそれがあると考えられる。この対策としては、ブロックごとに消去回数をカウントし、あるしきい値を設けて消去回数の多いブロックと少ないブロックとの物理アドレスの変換を行うことで、書き込み-消去回数の平均化をはかるウェアレベリングが実施されている。
【０００５】
また、ＮＡＮＤ型フラッシュメモリの読み出しでは、各ビット線に対して、選択セルのゲートに０Ｖがかけられ、非選択セルのゲートと選択ゲートには高電圧（ＶＲｅａｄ）がかけられ、選択セルが導通しているかどうかで“１”、“０”が判断される。このため、読み出しが繰り返されると、非選択セル（ブロック単位で見ると、読み出し対象以外の全ページのメモリセルが該当する。）に高電圧が繰り返しかかることとなり、電子が酸化膜を通過してフローティングゲートに入り込み、そのメモリセルのしきい値を変化させ、ついにはデータ破壊（いわゆるリードディスターブ。）を引き起こしてしまう。さらに、使用時間（アクセス回数）が多くなるにつれて、書き込み-消去による酸化膜の劣化も加わり、リードディスターブが起こる頻度は高くなってくる。ＮＡＮＤ型フラッシュメモリの読み出し回数の限界はおよそ１０４回程度である。このリードディスターブを防ぐためには、読み出し回数の多いブロックを適宜再書き込みし、しきい値を元の状態に戻してやる（リフレッシュ）必要がある（例えば、「特許文献１」を参照。）。
【０００６】
しかしながら、従来のメモリシステムおよびその制御方法では、ページ単位での読み出し回数のカウンタを持ち、読み出し回数がある基準値に達したら、誤り訂正回路（ＥＣＣ）にデータを通し、さらに誤りビット数がある基準数を超えていたら、対象ブロックを再書き込みしてリフレッシュしていた。このため、ＥＣＣの誤り訂正能力の程度によって種々の問題が生じていた。すなわち、訂正能力が低い場合には、１ページごとにせいぜい数ビットしか誤りを検出できず、リードディスターブが１度に数十〜数百ビットも生じた場合には、対応できないという問題があった。また、誤り訂正能力が高い場合でも、データに対する冗長ビットの割合が大きくなり、メモリ容量にＥＣＣビットが占める割合が大きくなってしまうという問題、あるいは、誤り訂正にかかる時間が非常に長くなるため、データ転送時間が遅れてしまうという問題があった。さらには、システムに複雑なＥＣＣ回路を取り入れる必要があるためチップ面積のオーバーヘッドが大きくなるという問題もあった。  
ＮＡＮＤ型フラッシュメモリは、１セルで２ビット以上の情報を記憶する多値化が進んでおり、しきい値の制御が厳しくなっていく方向にある。このため、今後、リードディスターブの影響がますます深刻な問題になっていくものと推察される。
【特許文献１】特開２００４−３２６８６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、フラッシュメモリのリードディスターブを抑制することができるメモリシステムおよびその制御方法を提供する。
【課題を解決するための手段】
【０００８】
本発明の一態様によれば、リードディスターブによりデータが読み出される回数に制限があるフラッシュメモリと、前記フラッシュメモリからデータが読み出されるたびに更新され、リードディスターブを判定する基準値との比較結果に基づいて前記フラッシュメモリをリフレッシュするための読み出し回数を保持する不揮発性メモリと、ホストコンピュータからのアクセスコマンドに基づいて、前記フラッシュメモリからのデータ読み出し、および前記不揮発性メモリの前記読み出し回数の更新を制御する制御手段を有することを特徴とするメモリシステムが提供される。
【０００９】
また、本発明の別の一態様によれば、リードディスターブによりデータが読み出される回数に制限があるフラッシュメモリと、不揮発性メモリとを有するメモリシステムの制御方法であって、ホストコンピュータからのアクセスコマンドに基づいて前記フラッシュメモリからデータが読み出されるたびに前記不揮発性メモリに保持された読み出し回数が更新される第１のステップと、前記第１のステップで更新された前記読み出し回数が基準値と比較され、前記フラッシュメモリのリードディスターブが判定される第２のステップと、前記第２のステップでの判定結果に基づいて、前記フラッシュメモリのリフレッシュが実行される第３のステップを有することを特徴とするメモリシステムの制御方法が提供される。
【発明の効果】
【００１０】
本発明によれば、フラッシュメモリのリードディスターブを抑制することができるので、信頼性の高いメモリシステムおよびその制御方法を実現することができる。
【発明を実施するための最良の形態】
【００１１】
以下、図面を参照しながら、本発明の実施例を説明する。
【実施例１】
【００１２】
図１は、本発明の実施例１に係わるメモリシステムを示す回路ブロック図である。ここでは、主に、リードディスターブ対策にかかわる部分を示した。
【００１３】
本発明の実施例１に係わるメモリシステムは、ＮＡＮＤ型フラッシュメモリ１１、読み出し回数テーブル１４が格納された強誘電体不揮発性メモリ１２（以下、「ＦｅＲＡＭ１２」という。）、およびそれらを制御するコントローラ１３を備えている。
【００１４】
ＮＡＮＤ型フラッシュメモリ１１は、格納されているデータの読み出し回数に制限があり、読み出し回数がこの制限を超える前にリフレッシュする必要がある。以下の説明では、一例として、読み出し回数の上限値を１００００回とする。
【００１５】
ＦｅＲＡＭ１２は、ＮＡＮＤ型フラッシュメモリ１１に比べて読み出し、書き込み速度が高速であり、ＮＡＮＤ型フラッシュメモリ１１のキャッシュとして使用される。
【００１６】
また、ＦｅＲＡＭ１２は、ＮＡＮＤ型フラッシュメモリ１１からデータが読み出されるたびに更新される読み出し回数をブロックごとにテーブル１４（以下、「読み出し回数テーブル１４」という。）の形で保持している。
【００１７】
一例として、ブロック１の２ページが読み出された場合の読み出し回数テーブル１４の更新の様子を図１に示した。すなわち、ブロック１から２ページが読み出される場合には、ブロック１の読み出し回数“９９９８”が＋２され、“１００００”に更新される。
【００１８】
コントローラ１３は、ホストコンピュータ１５（以下、「ホストＰＣ１５」という。）からの読み出しコマンドまたは書き込みコマンド（以下、「アクセスコマンド」という。）に基づいて、ＮＡＮＤ型フラッシュメモリ１１およびＦｅＲＡＭ１２からのデータ読み出し、データ書き込み、あるいは、必要に応じて読み出し回数テーブル１４の更新などを制御する。
【００１９】
次に、上述した構成を持つメモリシステムの制御方法について説明する。  
図２は、本発明の実施例１に係わるメモリシステムの制御方法を示すフロー図である。ここでは、主に、ホストＰＣ１５からアクセスコマンドを受信した場合のリードディスターブ対策に関わる部分を示した。
【００２０】
本発明の実施例１に係わるメモリシステムの制御方法は、コマンド受信ステップ（ＳＴ２１）、コマンド判定ステップ（ＳＴ２２）、更新ステップ（ＳＴ２３）、回数判定ステップ（ＳＴ２４）、リフレッシュステップ（ＳＴ２５）、読み出しステップ（ＳＴ２６）、およびデータ転送ステップ（ＳＴ２７）を備えている。
【００２１】
ＳＴ２１では、コントローラ１３が、ホストＰＣ１５からのアクセスコマンドを受信する。
【００２２】
ＳＴ２１でアクセスコマンドが受け付けられると、ＳＴ２２では、コントローラ１３は、アクセスコマンドに含まれる転送開始アドレスや転送容量等の情報からＮＡＮＤ型フラッシュメモリ１１からのデータ読み出しの必要性を判定する。
【００２３】
ここで注意することは、読み出しはもちろん書き込みコマンドの際にもＦｅＲＡＭ１２へデータを読み出すことである（例えば、ＦｅＲＡＭ１２に空き領域を確保するために、データをＮＡＮＤ型フラッシュメモリ１１に書き戻す際に、足りないデータをＮＡＮＤ型フラッシュメモリ１１からＦｅＲＡＭ１２に読み出すなど）。
【００２４】
要求されたデータ（システム内の先読み（プリフェッチ）機能等で必要となるデータも含む。）がすでにＦｅＲＡＭ１２に存在し、ＮＡＮＤ型フラッシュメモリ１１からのデータ読み出しが必要ない場合（“ＮＯ”）には、制御はＳＴ２７へ移行する。
【００２５】
しかし、要求されたデータがＦｅＲＡＭ１２に存在せず、ＮＡＮＤ型フラッシュメモリ１１からのデータ読み出しが必要な場合（“ＹＥＳ”）には、制御はＳＴ２３へ移行する。
【００２６】
ＳＴ２３では、コントローラ１３が、読み出し回数テーブル１４での対応するブロックの読み出し回数をＮＡＮＤ型フラッシュメモリ１１から読み出すページ数分増加させる。
【００２７】
ここで、読み出し回数はページ単位ではなくブロック単位で保持されているが、読み出しでダメージを受けるのは、同一ブロック内の読み出し対象以外の全ページのメモリセルであるので、読み出し回数を設ける単位をブロック単位としてもページ単位の場合とほぼ同等の効果が得られる。また、ページ単位で保持するよりも読み出し回数テーブル１４の容量を少なくすることができる。
【００２８】
ＳＴ２４では、コントローラ１３は、ＳＴ２３で更新された読み出し回数と読み出し制限の基準値（１００００回）とを比較する。更新された読み出し回数が基準値を超えている場合（“ＹＥＳ”）には、制御はＳＴ２５へ移行する。更新された読み出し回数が基準値を超えていない場合（“ＮＯ”）には、制御はＳＴ２６へ移行する。
【００２９】
ＳＴ２５では、読み出し回数が基準値を超えたブロックがコントローラ１３によってリフレッシュされ、その後、制御はＳＴ２７へ移行する。リフレッシュの詳細は、図３を用いて後述する。
【００３０】
ＳＴ２６では、コントローラ１３によって、対象となるデータがＮＡＮＤ型フラッシュメモリ１１から読み出され、ＦｅＲＡＭ１２に格納され、その後、制御はＳＴ２７へ移行する。
【００３１】
ＳＴ２７では、コントローラ１３が、ＳＴ２１で要求されたデータをＦｅＲＡＭ１２からホストＰＣ１５へ転送する。
【００３２】
図３は、本発明の実施例１に係わるメモリシステムの制御方法におけるリードディスターブ対策に関わるリフレッシュ動作を示すフロー図である。  
本発明の実施例１に係わるメモリシステムの制御方法におけるリフレッシュ動作は、ブロック判定ステップ（ＳＴ３１）、コピーステップ（ＳＴ３２）、アドレス変換ステップ（ＳＴ３３）、読み出しステップ（ＳＴ３４）、消去ステップ（ＳＴ３５）、再書き込みステップ（ＳＴ３６）、およびリセットステップ（ＳＴ３７）を備えている。
【００３３】
ＳＴ３１では、コントローラ１３は、ＮＡＮＤ型フラッシュメモリ１１に消去済のブロックが存在するかを判定する。消去済ブロックが存在する場合（“ＹＥＳ”）には、制御はＳＴ３２へ移行する。消去済ブロックが存在しない場合（“ＮＯ”）には、制御はＳＴ３４へ移行する。
【００３４】
ＳＴ３２では、コントローラ１３は、リフレッシュの対象となるブロックに格納されているデータをＮＡＮＤ型フラッシュメモリ１１からＦｅＲＡＭ１２に読み出し、ＳＴ３１で確認した消去済ブロックへ再書き込みする。
【００３５】
ＳＴ３３では、コントローラ１３は、ＳＴ３２で再書き込みされた消去ブロックの物理アドレスがリフレッシュの対象となった元のブロックの論理アドレスに対応するよう論理-物理アドレス変換を実行する。
【００３６】
ここで、ＦｅＲＡＭ１２からＮＡＮＤ型フラッシュメモリ１１に再書き込み（リフレッシュ）する際には、ＦｅＲＡＭ１２に読み出したデータをそのまま書き戻す替わりに、ＦｅＲＡＭ１２上の更新されたデータも加えて書き戻すこともできる。
【００３７】
ＳＴ３４では、コントローラ１３は、データを退避するために、リフレッシュの対象となるブロックに格納されているデータをＮＡＮＤ型フラッシュメモリ１１からＦｅＲＡＭ１２に読み出す。
【００３８】
ＳＴ３５では、ＳＴ３４でデータが退避されたブロックがコントローラ１３によって消去される。
【００３９】
ＳＴ３６では、コントローラ１３は、ＳＴ３５で消去したブロックにＳＴ３４でＦｅＲＡＭ１２に退避したデータを書き戻す。
【００４０】
ＳＴ３７では、コントローラ１３は、ＳＴ３２およびＳＴ３３、または、ＳＴ３４〜ＳＴ３６でリフレッシュを行ったブロックに対応する読み出し回数テーブル１４の読み出し回数を“０”にリセットする。
【００４１】
このように、読み出し回数テーブル１４でＮＡＮＤ型フラッシュメモリ１１からの読み出し回数をブロックごとに管理更新して、読み出し回数がその上限値（１００００回）を超えたブロックをリフレッシュすることで、リードディスターブによるメモリセルのデータ破壊が未然に防止される。
【００４２】
上記実施例１によれば、ＮＡＮＤ型フラッシュメモリ１１の消去単位であるブロックごとにその読み出し回数をＦｅＲＡＭ１２の読み出し回数テーブル１４に保持し、ＮＡＮＤ型フラッシュメモリ１１からのデータ読み出しが発生するたびに読み出し回数を更新し、読み出し回数が基準値を超えると対応するブロックをリフレッシュするので、ＮＡＮＤ型フラッシュメモリ１１のリードディスターブを抑制することができ、信頼性の高いメモリシステムおよびその制御方法を実現することができる。
【００４３】
また、上記実施例１によれば、ＮＡＮＤ型フラッシュメモリ１１の回路に手を加える必要がないので、ＥＣＣの有無、あるいはＥＣＣの訂正能力の如何に関わらずＮＡＮＤ型フラッシュメモリ１１のリードディスターブを抑制することができ、信頼性の高いメモリシステムおよびその制御方法を実現することができる。
【００４４】
さらに、上記実施例１によれは、読み出し回数テーブル１４がＦｅＲＡＭ１２に格納されているので、電源が瞬停した場合でも読み出し回数の情報が消失しないので、信頼性の高いメモリシステムおよびその制御方法を実現することができる。
【００４５】
上述の実施例１の説明では、リフレッシュのＳＴ３２で対象となるブロックのデータを一度ＦｅＲＡＭ１２に読み出すとしたが、本発明はこれに限られるものではなく、例えば、ＮＡＮＤ型フラッシュメモリ１１にコピー機能が備わっている場合には、これを使用して対象データを消去済ブロックへ直接コピーするようにしても良い。
【実施例２】
【００４６】
本実施例の回路ブロック図は、実施例１と同様であるので、各構成ブロックなどの符号は実施例１と同じものを使用し、詳しい説明は省略する。
【００４７】
図４は、本発明の実施例２に係わるメモリシステムの制御方法を示すフロー図である。ここでは、主に、ホストＰＣ１５からアクセスコマンドを受信した場合のリードディスターブ対策に関わる部分を示した。
【００４８】
本発明の実施例２に係わるメモリシステムの制御方法は、コマンド判定ステップ（ＳＴ４１）、読み出しステップ（ＳＴ４２）、データ転送ステップ（ＳＴ４３およびＳＴ４７）、更新ステップ（ＳＴ４４）、回数判定ステップ（ＳＴ４５）、およびリフレッシュステップ（ＳＴ４６）を備えている。
【００４９】
ホストＰＣ１５からのアクセスコマンドが受け付けられると、ＳＴ４１で、コントローラ１３は、アクセスコマンドに含まれる転送開始アドレスや転送容量等の情報からＮＡＮＤ型フラッシュメモリ１１からのデータ読み出しの必要性を判定する。
【００５０】
要求されたデータがすでにＦｅＲＡＭ１２に存在し、ＮＡＮＤ型フラッシュメモリ１１からのデータ読み出しが必要ない場合（“ＮＯ”）には、制御はＳＴ４７へ移行する。
【００５１】
ＳＴ４７では、要求されたデータがコントローラ１３によってＦｅＲＡＭ１２からホストＰＣ１５へ転送される。
【００５２】
一方、要求されたデータがＦｅＲＡＭ１２に存在せず、ＮＡＮＤ型フラッシュメモリ１１からのデータ読み出しが必要な場合（“ＹＥＳ”）には、制御はＳＴ４２へ移行する。
【００５３】
ＳＴ４２では、コントローラ１３によって、要求されたデータがＮＡＮＤ型フラッシュメモリ１１から読み出され、ＦｅＲＡＭ１２に格納され、その後、制御はＳＴ４３へ移行する。
【００５４】
ＳＴ４３では、ＳＴ４２でＦｅＲＡＭ１２に読み出されたデータがコントローラ１３によってＦｅＲＡＭ１２からホストＰＣ１５へ転送される。
【００５５】
ＳＴ４４では、コントローラ１３が、ＳＴ４３でＮＡＮＤ型フラッシュメモリ１１から読み出したページ数を対応するブロックの読み出し回数に加算して読み出し回数テーブル１４を更新する。ここで、読み出し回数は、実施例１と同様に、ブロック単位で保持されている。
【００５６】
ＳＴ４５では、コントローラ１３は、ＳＴ４４で更新された読み出し回数と読み出し制限の基準値（１００００回）とを比較する。更新された読み出し回数が基準値を超えている場合（“ＹＥＳ”）には、制御はＳＴ４６へ移行する。更新された読み出し回数が基準値を超えていない場合（“ＮＯ”）には、制御は終了する。
【００５７】
ＳＴ４６では、読み出し回数が基準値を超えたブロックがコントローラ１３によってリフレッシュされる。本実施例におけるリフレッシュ動作は、実施例１と同様であるので、説明は省略する。
【００５８】
このように、本実施例では、実施例１と異なり、ホストＰＣ１５へのデータ転送を行った後に、読み出し回数テーブル１４の更新、および必要であればＮＡＮＤ型フラッシュメモリ１１のリフレッシュが実行される。
【００５９】
上記実施例２によれば、実施例１と同様の効果を得られるばかりでなく、読み出し回数テーブル１４の更新とＮＡＮＤ型フラッシュメモリ１１のリフレッシュをホストＰＣ１５へのデータ転送の後に実行するので、その間ホストＰＣ１５を待たせる必要がなく、ホストＰＣ１５からみてアクセスが速いメモリシステムおよびその制御方法を実現することができる。
【実施例３】
【００６０】
図５は、本発明の実施例３に係わるメモリシステムを示す回路ブロック図である。ここでは、主に、リードディスターブ対策にかかわる部分を示した。また、ＦｅＲＡＭ１２の構成を除いた各構成ブロックおよび読み出し回数テーブル１４は、実施例１と同様であるので、同じ符号を使用し詳しい説明は省略する。
【００６１】
本発明の実施例３に係わるメモリシステムは、ＮＡＮＤ型フラッシュメモリ１１、読み出し回数テーブル１４およびリードディスターブ対策用領域３１を有するＦｅＲＡＭ１２、およびそれらを制御するコントローラ１３を備えている。
【００６２】
リードディスターブ対策用領域３１は、読み出し回数が相対的に多い数ブロックをあらかじめＮＡＮＤ型フラッシュメモリ１１から転送しておく専用の領域である。これらのブロックへのホストＰＣ１５からのアクセスに対しては、リードディスターブ対策用領域３１から直接ホストＰＣ１５へデータが転送される。
【００６３】
次に、上述した構成を持つメモリシステムの制御方法について説明する。  
図６は、本発明の実施例３に係わるメモリシステムの制御方法を示すフロー図である。ここでは、主に、読み出し回数が基準値を超えた場合のリフレッシュ動作にかかわる部分を示した。
【００６４】
本発明の実施例３に係わるメモリシステムの制御方法におけるリードディスターブ対策は、読み出し回数更新ステップ（ＳＴ６１）、空き領域判定ステップ（ＳＴ６２）、リフレッシュステップ（ＳＴ６３）、および読み出しステップ（ＳＴ６４）を備えている。
【００６５】
ＳＴ６１では、コントローラ１３によって、対象となるブロックの読み出し回数が更新され、この値が基準値を超えているかが判定される。基準値を超えている場合には、制御はＳＴ６２へ移行する。
【００６６】
ＳＴ６２では、コントローラ１３によって、リードディスターブ対策用領域３１に空き領域があるかが判定され、空き領域が存在する場合（“ＹＥＳ”）には制御はＳＴ６４へ移行し、空き領域がない場合（“ＮＯ”）には制御はＳＴ６３へ移行する。
【００６７】
ＳＴ６３では、コントローラ１３は、リードディスターブ対策用領域３１に転送されているブロックの”読み出し回数−基準値”を算出し、この値が一番少ないブロックをＮＡＮＤ型フラッシュメモリ１１へリフレッシュし、空き領域を作成する。リフレッシュの詳細動作は実施例１と同様であるので、説明は省略する。
【００６８】
ＳＴ６４では、図７に示したように、コントローラ１３が、ＳＴ６１で読み出し回数が基準値を超えていると判定されたブロックをリードディスターブ対策用領域３１へ読み出す。
【００６９】
このように、本実施例では、読み出し回数が基準値を超えた段階で、対象ブロックをＦｅＲＡＭ１２のリードディスターブ対策用領域３１に読み出し、ＮＡＮＤ型フラッシュメモリ１１からの読み出しを回避する。ここで、リードディスターブ対策用領域３１にあるブロックへ読み出しが来た場合には、読み出し回数を更新させていく。
【００７０】
また、リードディスターブ対策用領域３１に空き領域がない場合には、一番読まれていないブロック、つまり、ＦｅＲＡＭ１２での読み出し回数が一番少ないブロックがリフレッシュされる。読み出し回数が多いブロックをＦｅＲＡＭ１２のリードディスターブ対策用領域３１に残すことで、効率的なキャッシュとしての効果が期待できる。
【００７１】
図８は、本発明の実施例３に係わるメモリシステムの制御方法におけるリードディスターブ対策に関わる書き込み動作を示すフロー図である。ここでは、主に、リードディスターブ対策用領域３１のブロックに対してホストＰＣ１５から書き込み要求があった場合の書き込み動作にかかわる部分を示した。
【００７２】
本発明の実施例３に係わるメモリシステムの制御方法におけるリードディスターブ対策に関わる書き込み動作は、コマンド受信ステップ（ＳＴ８１）、判定ステップ（ＳＴ８２）、書き戻しステップ（ＳＴ８３）、およびリセットステップ（ＳＴ８４）を備えている。
【００７３】
ＳＴ８１では、コントローラ１３は、ホストＰＣ１５からのアクセスコマンドを受信する。アクセスコマンドが書き込み要求であれば、制御はＳＴ８２へ移行する。
【００７４】
ＳＴ８２では、コントローラ１３は、書き込みの対象となるブロックがリードディスターブ対策用領域３１に存在するかを判定する。対象ブロックがリードディスターブ対策用領域３１に存在する場合（“ＹＥＳ”）には、制御はＳＴ８３へ移行し、対象ブロックがリードディスターブ対策用領域３１に存在しない場合（“ＮＯ”）には、リードディスターブ対策用領域３１からの書き戻しは発生せず、制御は終了する。
【００７５】
ＳＴ８３では、図９に示したように、コントローラ１３は、リードディスターブ対策用領域３１の対象ブロックをアクセスコマンドに基づいて書き換えた後、ＮＡＮＤ型フラッシュメモリ１１へ書き戻す。ＮＡＮＤ型フラッシュメモリ１１への書き込みが終了すると、制御はＳＴ８４へ移行する。
【００７６】
ＳＴ８４では、コントローラ１３は、ＳＴ８３で書き戻したブロックに対応する読み出し回数テーブル１４の読み出し回数を“０”にリセットする。これは、ＮＡＮＤ型フラッシュメモリ１１への書き込みによって対象ブロックのリフレッシュと同様の効果があるためである。
【００７７】
このように、ホストＰＣ１５からの書き込み要求が発生した時に、リードディスターブ対策用領域３１からＮＡＮＤ型フラッシュメモリ１１にデータを書き戻すことで、リフレッシュをかねることができるので、読み出し回数のみの判定によって生じるリフレッシュ、すなわち、書き込み-消去回数を低減することができる。
【００７８】
上記実施例３によれば、実施例１と同様の効果を得られるばかりでなく、読み出し回数が基準値を超えたブロックをＦｅＲＡＭ１２のリードディスターブ対策用領域３１に読み出すことで、ＮＡＮＤ型フラッシュメモリ１１からの読み出しが回避されるので、ＮＡＮＤ型フラッシュメモリ１１のリードディスターブを抑制することができ、信頼性の高いメモリシステムおよびその制御方法を実現することができる。
【００７９】
また、上記実施例３によれば、読み出し回数が相対的に多いブロックがＦｅＲＡＭ１２のリードディスターブ対策用領域３１に残されるので、ＦｅＲＡＭ１２を効率的なキャッシュとして利用でき、ホストＰＣ１５に対してアクセスの速いメモリシステムおよびその制御方法を実現することができる。
【００８０】
さらに、上記実施例３によれば、ホストＰＣ１５からの書き込み要求が発生した時にＮＡＮＤ型フラッシュメモリ１１へのリフレッシュをかねることで、書き込み-消去回数が低減されるので、ＮＡＮＤ型フラッシュメモリ１１のリードディスターブを抑制することができ、信頼性の高いメモリシステムおよびその制御方法を実現することができる。
【００８１】
上述の実施例３の説明では、ＳＴ６３において、リードディスターブ対策用領域３１での読み出し回数が最も少ないブロックをリフレッシュするとしたが、本発明はこれに限られるものではなく、例えば、リードディスターブ対策用領域３１への割り当てが最も古いブロックからリフレッシュする、あるいは、最後にアクセスしてから最も長く時間が経っているブロックからリフレッシュするなどの方法が考えられる。
【実施例４】
【００８２】
図１０は、本発明の実施例４に係わるメモリシステムを示す回路ブロック図である。ここでは、主に、リードディスターブ対策にかかわる部分を示した。また、ＦｅＲＡＭ１２の構成を除いた各構成ブロック、読み出し回数テーブル１４およびリードディスターブ対策用領域３１は、実施例１および実施例３と同様であるので、同じ符号を使用し詳しい説明は省略する。
【００８３】
本発明の実施例４に係わるメモリシステムは、ＮＡＮＤ型フラッシュメモリ１１、読み出し回数テーブル１４、リードディスターブ対策用領域３１、およびリフレッシュ回数テーブル４１を有するＦｅＲＡＭ１２、およびそれらを制御するコントローラ１３を備えている。
【００８４】
リフレッシュ回数テーブル４１は、ＮＡＮＤ型フラッシュメモリ１１の読み出し対象となったブロックの読み出し回数が基準値を超えて強制的にリフレッシュされた回数をブロックごとに保持している。
【００８５】
リフレッシュ回数テーブル４１の対応するリフレッシュ回数を検索することで、コントローラ１３は、読み出し回数が基準値を超えた際、リードディスターブ対策用領域３１にそのブロックのデータを読み出すか、読み出さずに強制的にリフレッシュするかを判定する。
【００８６】
リフレッシュ回数テーブル４１に保持されているリフレッシュ回数が大きければ、コントローラ１３は、このブロックがリードディスターブ対策用領域３１に読み出しても書き込みが発生しづらいブロックであると判断でき、強制的にリフレッシュする。
【００８７】
上述の構成を持つメモリシステムの制御方法は、リフレッシュ回数テーブル４１を用いて強制的なリフレッシュを行うかを判定することを除いて、実施例１および実施例３と同様であるので、詳しい説明は省略する。
【００８８】
上記実施例４によれば、実施例１および実施例３と同様の効果を得られるばかりでなく、リードディスターブ対策用領域３１に書き込み頻度の高いブロックを保持しておくことができるので、ＦｅＲＡＭ１２をより効率的なキャッシュとして利用でき、ホストＰＣ１５に対してアクセスの速いメモリシステムおよびその制御方法を実現することができる。
【実施例５】
【００８９】
図１１は、本発明の実施例５に係わるメモリシステムを示す回路ブロック図である。ここでは、主に、リードディスターブ対策にかかわる部分を示した。また、ＦｅＲＡＭ１２の構成を除いた各構成ブロック、読み出し回数テーブル１４およびリフレッシュ回数テーブル４１は、実施例１および実施例４と同様であるので、同じ符号を使用し詳しい説明は省略する。
【００９０】
本発明の実施例５に係わるメモリシステムは、ＮＡＮＤ型フラッシュメモリ１１、読み出し回数テーブル１４、リフレッシュ回数テーブル４１、および消去回数テーブル５１を有するＦｅＲＡＭ１２、およびそれらを制御するコントローラ１３を備えている。
【００９１】
消去回数テーブル５１は、ＮＡＮＤ型フラッシュメモリ１１でブロックが消去された回数をブロックごとに保持している。消去回数テーブル５１の更新は、リフレッシュが発生した場合の他に、ホストＰＣ１５からの書き込みコマンド、または、消去コマンドによってブロックが消去された場合にも実行される。
【００９２】
読み出し回数テーブル１４の更新は、実施例１または実施例２と同様に行われ、読み出し回数が基準値を超えた場合に、リフレッシュ回数テーブルの更新が行われる。そして、このリフレッシュを実行する際に、同時にいわゆるウェアレベリングが実行される。
【００９３】
すなわち、消去回数の多いブロックとリフレッシュを行うブロックの物理アドレスを変換することで、リードディスターブ対策の強制リフレッシュ回数＋消去回数の平均化が同時に実行される。
【００９４】
リフレッシュが必要であるということは、そのブロックには書き込みが発生しにくい、つまり、書き込み-消去回数が少ないと考えることができるので、このようにウェアレベリングを実行することで、ブロックごとの書き込み-消去回数を平均的に低減することができる。
【００９５】
上述の構成を持つメモリシステムの制御方法は、リフレッシュ回数テーブル４１と消去回数テーブル５１を用いてウェアレベリングを行うことを除いて、実施例１または実施例２と同様であるので、詳しい説明は省略する。
【００９６】
上記実施例５によれば、実施例１と同様の効果を得られるばかりでなく、リフレッシュ回数テーブル４１および消去回数テーブル５１を用いてウェアレベリングが実行され、ブロックごとの書き込み-消去回数が低減されるので、ＮＡＮＤ型フラッシュメモリ１１のリードディスターブを抑制することができ、信頼性の高いメモリシステムおよびその制御方法を実現することができる。
【００９７】
上述の実施例５の説明では、ウェアレベリングを行う際に、消去回数の多いブロックとリフレッシュを行うブロックの物理アドレスを変換するとしたが、本発明はこれに限られるものではなく、例えば、消去回数の多いブロックとリフレッシュ回数の多いブロックとを交換するようにしても良い。
【００９８】
また、上述の実施例１〜５の説明では、ホストＰＣ１５からのデータはＮＡＮＤ型フラッシュメモリ１１に格納されるとしたが、本発明はこれに限られるものではなく、リードディスターブによってリフレッシュが必要となるフラッシュ型ＥＥＰＲＯＭであれば、原理的に適用可能である。
【００９９】
さらに、上述の実施例１〜５の説明では、読み出し回数テーブル１４は、強誘電体メモリ（ＦｅＲＡＭ１２）に保持されるとしたが、本発明はこれに限られるものではなく、ＮＡＮＤ型フラッシュメモリ１１より高速にデータのアクセスができる不揮発性メモリであれば、原理的に適用可能である。
【図面の簡単な説明】
【０１００】
【図１】本発明の実施例１に係わるメモリシステムを示す回路ブロック図。
【図２】本発明の実施例１に係わるメモリシステムの制御方法を示すフロー図。
【図３】本発明の実施例１に係わるメモリシステムの制御方法におけるリードディスターブ対策に関わるリフレッシュ動作を示すフロー図。
【図４】本発明の実施例２に係わるメモリシステムの制御方法を示すフロー図。
【図５】本発明の実施例３に係わるメモリシステムを示す回路ブロック図。
【図６】本発明の実施例３に係わるメモリシステムの制御方法を示すフロー図。
【図７】本発明の実施例３に係わるメモリシステムの制御方法におけるリードディスターブ対策用領域３１への読み出しステップ（ＳＴ６４）を示すイメージ図。
【図８】本発明の実施例３に係わるメモリシステムの制御方法におけるリードディスターブ対策に関わる書き込み動作を示すフロー図。
【図９】本発明の実施例３に係わるメモリシステムの制御方法におけるリードディスターブ対策用領域３１からの書き戻しステップ（ＳＴ８３）を示すイメージ図。
【図１０】本発明の実施例４に係わるメモリシステムを示す回路ブロック図。
【図１１】本発明の実施例５に係わるメモリシステムを示す回路ブロック図。
【符号の説明】
【０１０１】
１１  ＮＡＮＤ型フラッシュメモリ
１２  ＦｅＲＡＭ
１３  コントローラ
１４  読み出し回数テーブル
１５  ホストＰＣ
３１  リードディスターブ対策用領域
４１  リフレッシュ回数テーブル
５１  消去回数テーブル
【図１】
2008181380.tif 000003
【図２】
2008181380.tif 000004
【図３】
2008181380.tif 000005
【図４】
2008181380.tif 000006
【図５】
2008181380.tif 000007
【図６】
2008181380.tif 000008
【図７】
2008181380.tif 000009
【図８】
2008181380.tif 000010
【図９】
2008181380.tif 000011
【図１０】
2008181380.tif 000012
【図１１】
2008181380.tif 000013