(57)【要約】【課題】フラッシュメモリに保持したデータの信頼性を確保する。【解決手段】複数のメモリブロックで構成され、各々の前記メモリブロックへのデータの書き込みがウェアレベリングによって制御されるフラッシュメモリを使用する情報処理装置において、前記フラッシュメモリを制御する制御部は、予め定めた所定期間内に前記フラッシュメモリに書き込まれる書き込みデータ量を取得する第１の機能と、前記書き込みデータ量が予め定めた所定量以上となるように、前記フラッシュメモリへのデータの書き込み時のデータ転送サイズを調整する第２の機能と、を備える。【選択図】図７
2015197832.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリブロックで構成され、各々の前記メモリブロックへのデータの書き込みがウェアレベリングによって制御されるフラッシュメモリを使用する情報処理装置において、
前記フラッシュメモリを制御する制御部は、
予め定めた所定期間内に前記フラッシュメモリに書き込まれる書き込みデータ量を取得する第１の機能と、
前記書き込みデータ量が予め定めた所定量以上となるように、前記フラッシュメモリへのデータの書き込み時のデータ転送サイズを調整する第２の機能と、を備える、
ことを特徴とする情報処理装置。
【請求項２】
前記制御部は、前記フラッシュメモリの外部バスのデータ量に対する内部バスのデータ量の比率を示すＷ／Ａ（Write Amplification）係数と前記データ転送サイズとの相関に基づいて、前記所定期間内の前記書き込みデータ量が前記所定量以上となるように、前記データ転送サイズを調整する、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記所定期間は、前記フラッシュメモリの各々の前記メモリブロックのデータ保持期間を特定期間以上とするためのデータ書き込み間隔であり、
前記所定量は、前記ウェアレベリングにより、前記フラッシュメモリ内部の全てのデータが少なくとも１回以上更新されるために必要となるデータ書き込み量であり、
前記制御部は、前記データ転送サイズを調整することにより、前記所定期間内に、前記フラッシュメモリ内の全てのデータに対して少なくとも１回以上の更新を発生させ、リフレッシュ制御を不要とする、
ことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記特定期間は、前記情報処理装置の寿命である、
ことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記制御部は、前記所定期間の前記情報処理装置の使用頻度と、前記情報処理装置の１回の使用につき前記フラッシュメモリに書き込まれるデータ量と、に基づいて、前記所定期間内の前記書き込みデータ量を予測する、
ことを特徴とする請求項１乃至４のいずれか一に記載の情報処理装置。
【請求項６】
前記制御部は、前記予測した書き込みデータ量と、当該予測した書き込みデータ量に基づいて調整した前記データ転送サイズで前記所定期間に前記フラッシュメモリに実際に書き込まれたデータ量と、を比較し、前記実際に書き込まれたデータ量が前記予測した書き込みデータ量未満の場合は、前記データ転送サイズを調整する、
ことを特徴とする請求項５に記載の情報処理装置。
【請求項７】
複数のメモリブロックで構成され、各々の前記メモリブロックへのデータの書き込みがウェアレベリングによって制御されるフラッシュメモリを使用する情報処理装置における前記フラッシュメモリの制御方法であって、
前記フラッシュメモリを制御する制御部は、
予め定めた所定期間内に前記フラッシュメモリに書き込まれる書き込みデータ量を取得する第１の処理と、
前記書き込みデータ量が予め定めた所定量以上となるように、前記フラッシュメモリへのデータの書き込み時のデータ転送サイズを調整する第２の処理と、を実行する、
ことを特徴とするフラッシュメモリの制御方法。
【請求項８】
前記第２の処理では、前記フラッシュメモリの外部バスのデータ量に対する内部バスのデータ量の比率を示すＷ／Ａ（Write Amplification）係数と前記データ転送サイズとの相関に基づいて、前記所定期間内の前記書き込みデータ量が前記所定量以上となるように、前記データ転送サイズを調整する、
ことを特徴とする請求項７に記載のフラッシュメモリの制御方法。
【請求項９】
前記所定期間は、前記フラッシュメモリの各々の前記メモリブロックのデータ保持期間を特定期間以上とするためのデータ書き込み間隔であり、
前記所定量は、前記ウェアレベリングにより、前記フラッシュメモリ内部の全てのデータが少なくとも１回以上更新されるために必要となるデータ書き込み量であり、
前記第２の処理で、前記データ転送サイズを調整することにより、前記所定期間内に、前記フラッシュメモリ内の全てのデータに対して少なくとも１回以上の更新を発生させ、リフレッシュ制御を不要とする、
ことを特徴とする請求項７又は８に記載のフラッシュメモリの制御方法。
【請求項１０】
前記特定期間は、前記情報処理装置の寿命である、
ことを特徴とする請求項９に記載のフラッシュメモリの制御方法。
【請求項１１】
前記第１の処理では、前記所定期間の前記情報処理装置の使用頻度と、前記情報処理装置の１回の使用につき前記フラッシュメモリに書き込まれるデータ量と、に基づいて、前記所定期間内の前記書き込みデータ量を予測する、
ことを特徴とする請求項７乃至１０のいずれか一に記載のフラッシュメモリの制御方法。
【請求項１２】
前記第２の処理では、前記予測した書き込みデータ量と、当該予測した書き込みデータ量に基づいて調整した前記データ転送サイズで前記所定期間に前記フラッシュメモリに実際に書き込まれたデータ量と、を比較し、前記実際に書き込まれたデータ量が前記予測した書き込みデータ量未満の場合は、前記データ転送サイズを調整する、
ことを特徴とする請求項１１に記載のフラッシュメモリの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びフラッシュメモリの制御方法に関し、特に、ウェアレベリングによりデータの書き込みが制御されるフラッシュメモリを備える情報処理装置及び当該フラッシュメモリへのデータの書き込みを制御する方法に関する。
【背景技術】
【０００２】
フラッシュメモリのデータ保持期間は比較的短く、また、環境温度に著しく依存し、温度の上昇に伴ってデータ保持期間が大幅に減少する。よって、フラッシュメモリを装置に組み込む場合、データの消失を防ぐために定期的にリフレッシュ処理を行う等の方法により、データ信頼性を確保するのが一般的である。
【０００３】
このようなリフレッシュ処理に関して、例えば、下記特許文献１には、記憶媒体に記憶されているデータの読み出し、及び書き込みを行い、リフレッシュ処理を行う再書き込み装置に関し、前記記憶媒体の前記所定の領域に対する前記リフレッシュ処理を開始する条件であるリフレッシュ処理開始条件を記憶している記憶手段と、前記記憶手段に記憶されている前記リフレッシュ処理開始条件が成立したか否かを判定する開始条件判定処理を実行し、前記開始条件判定処理において前記リフレッシュ処理開始条件が成立したと判定した場合、成立した前記リフレッシュ処理開始条件に係る前記所定の領域に対し前記リフレッシュ処理を実行する制御手段と、を備え、前記記憶手段に記憶されている前記リフレッシュ処理開始条件を、前記リフレッシュ処理を最後まで実行できる可能性が高い場合に成立する条件とすることが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１４０５８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
データのリフレッシュ制御は、一般的には、デバイスに格納されている全データのリード又は全データのリライト等の方法で行われるため、システムへの負荷が大きい。例えば、フラッシュメモリへのアクセス要求が頻発する条件下でリフレッシュ制御を行った場合、フラッシュメモリへのアクセス要求とリフレッシュ制御によるデータのリード／ライトとが競合し、リフレッシュ処理が中断してしまう可能性がある。そして、リフレッシュ処理に失敗した場合に、データが消失する等のリスクが発生する。
【０００６】
そこで、上記特許文献１では、フラッシュメモリへのアクセス要求が発生しにくい条件下であることを判別した上で、リフレッシュ制御を実施するように制御することにより、リフレッシュ処理が中断する可能性を低減している。しかしながら、特許文献１にも記載されているように、リフレッシュ制御を実施する場合、リフレッシュ処理が中断される危険性やフラッシュメモリへのアクセス競合など、様々な要素を加味した上でリフレッシュ制御を実施する必要があるため、制御が非常に煩雑になるという問題がある。
【０００７】
本発明は、上記問題点に鑑みてなされたものであって、その主たる目的は、フラッシュメモリに保持したデータの信頼性を確保することができる情報処理装置及びフラッシュメモリの制御方法を提供することにある。
【課題を解決するための手段】
【０００８】
本発明の一側面は、複数のメモリブロックで構成され、各々の前記メモリブロックへのデータの書き込みがウェアレベリングによって制御されるフラッシュメモリを使用する情報処理装置において、前記フラッシュメモリを制御する制御部は、予め定めた所定期間内に前記フラッシュメモリに書き込まれる書き込みデータ量を取得する第１の機能と、前記書き込みデータ量が予め定めた所定量以上となるように、前記フラッシュメモリへのデータの書き込み時のデータ転送サイズを調整する第２の機能と、を備えることを特徴とする。
【０００９】
本発明の一側面は、複数のメモリブロックで構成され、各々の前記メモリブロックへのデータの書き込みがウェアレベリングによって制御されるフラッシュメモリを使用する情報処理装置における前記フラッシュメモリの制御方法であって、前記フラッシュメモリを制御する制御部は、予め定めた所定期間内に前記フラッシュメモリに書き込まれる書き込みデータ量を取得する第１の処理と、前記書き込みデータ量が予め定めた所定量以上となるように、前記フラッシュメモリへのデータの書き込み時のデータ転送サイズを調整する第２の処理と、を実行することを特徴とする。
【発明の効果】
【００１０】
本発明の情報処理装置及びフラッシュメモリの制御方法によれば、フラッシュメモリに保持したデータの信頼性を確保することができる。
【００１１】
その理由は、複数のメモリブロックで構成され、各メモリブロックへのデータ書き込みがウェアレベリングによって制御されるフラッシュメモリを使用する情報処理装置において、フラッシュメモリを制御する制御部は、所定期間（フラッシュメモリの各ブロックのデータ保持期間を十分に確保するために必要となるデータ書き込み間隔）内のフラッシュメモリへの書き込みデータ量を取得する処理と、取得した書き込みデータ量が、所定量（ウェアレベリングによりフラッシュメモリ内部の全データが少なくとも１回以上更新されるために必要となる書き込みデータ量）以上となるように、前記フラッシュメモリへのデータ書き込み時のデータ転送サイズを調整する処理と、を実行するからである。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施例に係る情報処理装置の概略構成を示すブロック図である。
【図２】フラッシュメモリのウェアレベリングによるデータの置き換え処理を説明する図である。
【図３】フラッシュメモリの特性（データ書き込み直後からトランジスタの閾値電圧が変化し始めるまでの時間の書き込み間隔依存性）を示す図である。
【図４】フラッシュメモリの特性（トランジスタの閾値電圧の放置時間依存性）を示す図である。
【図５】フラッシュメモリの外部バスと内部バスを示す図である。
【図６】フラッシュメモリの特性（Ｗ／Ａ係数の転送データサイズ依存性）の測定結果を示す図である。
【図７】本発明の一実施例に係る情報処理装置の動作を示すフローチャート図である。
【図８】本発明の一実施例に係るフラッシュメモリの制御による効果（データ転送サイズの調整制御を実施した場合と実施しない場合のフラッシュメモリ内部バスの書き込みデータ量の週変化）を示す図である。
【図９】本発明の一実施例に係るフラッシュメモリの制御による効果（データ転送サイズの調整制御を実施した場合と実施しない場合のフラッシュメモリ内部バスの書き込みデータ量の月変化）を示す図である。
【発明を実施するための形態】
【００１３】
フラッシュメモリは、一般に、ゲート電極が２層構造となったＭＯＳ（Metal Oxide Semiconductor）トランジスタ（セル）からなり、１バイト単位で読み出し／書き込み、消去、書き換えが可能な（すなわち、ソース線とビット線が個々のセルに繋がっている）ＮＯＲ型と、複数ビットでの読み出し／書き込み、消去、書き換えが可能な（複数のセルがソース線とビット線の間に直列に接続された）ＮＡＮＤ型と、がある。いずれの場合も、浮遊ゲートとシリコン基板の間に高電界を加えることによって、電子がゲート絶縁膜をトンネリングして浮遊ゲートに注入され、これによってＭＯＳトランジスタがオフ状態からオン状態に変わるゲート電圧（閾値電圧）が変化することを利用して情報を記憶する。
【００１４】
そのため、フラッシュメモリへのデータの書き込み回数が多くなると、電子のトンネリングによってゲート絶縁膜が劣化し、浮遊ゲートに注入した電子がシリコン基板に逃げやすくなり、データ保持期間が短くなる。特に、ＮＡＮＤ型のフラッシュメモリでは、メモリブロック（以下、単にブロックと称する。）内の一部のセルに対する書き込みでもブロック単位で書き込みを行うため、書き込み回数が実質的に増加してゲート絶縁膜の劣化が進行し、データ保持期間が短くなる。
【００１５】
このような背景から、通常は、フラッシュメモリへのデータの書き込みに際し、ウェアレベリングの機能により、同一のブロックに対してデータの書き込みが集中しないように制御している。このウェアレベリングの機能は、フラッシュメモリのブロック毎の書き込み履歴に基づいて、偏りなくフラッシュメモリ内の各ブロックにデータを書き込むものである。
【００１６】
ウェアレベリングの機能により、全てのブロックに対して偏りなくデータを書き込むことができ、各ブロックのデータ保持期間を確保し、データの信頼性を高めることができるが、そもそもフラッシュメモリに入力されるデータが少ないと、所定時間内にデータの書き込みが行われないブロックが発生する。そして、このようなブロックでは、保持したデータが消失する恐れがある。
【００１７】
そこで、背景技術で示したように、フラッシュメモリを装置に組み込む場合、データの信頼性を確保するために、定期的にリフレッシュ処理が実施されるが、リフレッシュ制御は、一般的には、デバイスに格納されている全データのリード又は全データのリライト等の方法で行われるため、システムへの負荷が大きい。特に、フラッシュメモリへのアクセス要求とリフレッシュ制御によるデータのリード／ライトとが競合した場合には、リフレッシュ処理が中断してしまう可能性があり、リフレッシュ制御に失敗した場合はデータが消失する可能性が高くなる。
【００１８】
この問題に対して、上記特許文献１では、フラッシュメモリへのアクセス要求が発生しにくい条件下であることを判別した上で、リフレッシュ制御を実施するように制御しているが、この方法では、リフレッシュ処理が中断される危険性やフラッシュメモリへのアクセス競合などの様々な要素を加味した上で、リフレッシュ制御を実施する必要があり、制御が煩雑になるという問題がある。
【００１９】
このように、リフレッシュ処理はデータの信頼性を確保する上で重要な処理ではあるが、ウェアレベリングの機能によって、データ保持期間内に全てのブロックにデータの書き込みが行われる場合には、リフレッシュ制御を実施しなくても、データの信頼性を確保することは可能である。
【００２０】
そこで、本発明の一実施の形態では、ウェアレベリング機能を備えるフラッシュメモリの制御において、フラッシュメモリへのデータ書き込み時のデータ転送サイズを調整し、所定期間（例えば、データの信頼性（フラッシュメモリの各ブロックのデータ保持期間）を確保するために必要となるデータの書き込み間隔）内のフラッシュメモリ内部における書き込みデータ量が所定量（例えば、ウェアレベリングにより、フラッシュメモリ内部の全データが少なくとも１回以上更新されるために必要となる書き込みデータ量）以上となるように制御する。
【００２１】
これにより、フラッシュメモリ内の全ブロックに対して、所定期間内に少なくとも１回以上のデータ書き込みが発生するため、リフレッシュ制御を実施することなく、データの信頼性を確保することができる。また、リフレッシュ制御を実施しないことにより、データの書き込み回数の増加を抑制することができるため、各々のブロックのデータ保持期間を延長することができ、フラッシュメモリの寿命を延ばすことができる。
【実施例】
【００２２】
上記した本発明の実施の形態についてさらに詳細に説明すべく、本発明の一実施例に係る情報処理装置及びフラッシュメモリの制御方法について、図１乃至図９を参照して説明する。図１は、本実施例の情報処理装置の概略構成を示すブロック図であり、図２は、フラッシュメモリのウェアレベリングによるデータの置き換え処理を説明する図である。また、図３、４、６は、フラッシュメモリの特性を示す図であり、図５は、フラッシュメモリの外部バスと内部バスを示す図である。また、図７は、本実施例の情報処理装置の動作を示すフローチャート図であり、図８及び図９は、本実施例のフラッシュメモリの制御による効果を示す図である。なお、以下の説明において、フラッシュメモリへのデータ書き込みとは、データが保持されていないブロックにデータを書き込む場合の他、ブロックに保持されているデータを他のデータに書き換える場合も含む。
【００２３】
本発明は、例えば、図１に示すような情報処理装置、特に、ウェアレベリング機能を有するフラッシュメモリを使用するシステム上で実施される。具体的には、情報処理装置は、メインコントローラ１０、フラッシュメモリ２０などを含む。メインコントローラ１０は、ＣＰＵ（Central Processing Unit）１１、メインメモリ１２、フラッシュメモリコントローラ１３などで構成され、フラッシュメモリ２０は、ＮＡＮＤコントローラ２１、ＲＡＷ  ＮＡＮＤ２２などで構成される。
【００２４】
ＣＰＵ１１はメインメモリ１２を利用して、情報処理装置全体の制御を行う。フラッシュメモリコントローラ１３（フラッシュメモリ２０の制御部）は、フラッシュメモリ２０に対するデータの読み出し／書き込み、消去、書き換え（これらを総称して書き込みと称する。）を制御する。具体的には、フラッシュメモリコントローラ１３は、図示しない入力装置から入力されたデータを一旦メインメモリ１２に格納し、ウェアレベリングによってフラッシュメモリ２０の各ブロックに書き込むと共に、フラッシュメモリ２０からデータを読み出し、図示しない出力装置に出力する。
【００２５】
更に、フラッシュメモリコントローラ１３は、所定時間内にフラッシュメモリ２０に書き込まれるデータ量（書き込みデータ量と呼ぶ。）を取得（予測）する機能と、取得した書き込みデータ量が予め定めた所定量以上となるように、後述するＷ／Ａ係数とデータ転送サイズとの相関に基づいて、フラッシュメモリ２０へのデータ転送サイズを制御する機能とを備える。なお、上記所定時間は、後述するように、例えば、フラッシュメモリ２０の各ブロックに書き込んだデータの信頼性を確保するために必要となるデータの書き込み間隔であり、上記所定量は、例えば、ウェアレベリングにより、フラッシュメモリ２０の内部に書き込んだ全データが少なくとも１回以上更新されるために必要となる書き込みデータ量（必要書き込みデータ量と呼ぶ。）である。
【００２６】
フラッシュメモリ２０は、データの読み出し／書き込み、消去、書き換えが可能なＮＡＮＤ型の不揮発性メモリであり、フラッシュメモリコントローラ１３の指示に従って、入力されたデータを保持し、保持したデータを出力する。具体的には、フラッシュメモリ２０へのデータの読み出し／書き込みは、８ビット又は１６ビットのデータポートを経由して行われるが、ＮＡＮＤコントローラ２１は、データポートで読み出し／書き込みが行われるデータを区別するための制御信号（ＣＬＥ（Command Latch Enable）、ＡＬＥ（Address Latch Enable）、ＲＥ（Read Enable）、ＷＥ（Write Enable）など）を認識し、制御信号に従って、データを保持する部分であるＲＡＷ  ＮＡＮＤ２２に対して、データの読み出し／書き込みを行う。
【００２７】
図１に示すシステムにおいて、フラッシュメモリ２０は、例えば、プログラムデータの保存、データのストレージ、一時データの保存などに使用されるが、このうち、プログラムデータ等のシステムの動作において重要なデータについては、システムが利用されている間、継続的に高いデータ信頼性が確保される必要がある。これに対して、フラッシュメモリ２０のデータ保持期間は有限であり、継続的に高いデータ信頼性を確保するためには、定期的にリフレッシュ処理を実施する必要がある。
【００２８】
ここで、リフレッシュ制御では、一般的に、フラッシュメモリ２０内に保存されている全データのリード又は全データのリライトが行われる。しかしながら、フラッシュメモリ２０が次第に大容量化されている昨今では、リフレッシュ制御のためにシステムに大きな負荷がかかり、リフレッシュ制御によるフラッシュメモリ２０へのアクセスと、それ以外のフラッシュメモリ２０へのアクセスとが競合した場合、リフレッシュ制御の中断処理、再開処理が必要となるなど、制御が煩雑になるといった問題がある。
【００２９】
従って、リフレッシュ制御を実施することなく、データの信頼性が確保され、かつ、データ保持期間が延長されるようにすることが望ましい。そこで、本実施例では、フラッシュメモリ２０のウェアレベリング機能を有効に利用することにより、リフレッシュ制御を実施することなく、データ信頼性の確保、及びデータ保持期間の延長を可能にする方法を提案する。
【００３０】
本実施例のフラッシュメモリ２０の制御について説明する前に、ウェアレベリング機能について説明する。フラッシュメモリのウェアレベリングでは、一般的に、図２に示すように、複数のブロック間で、各ブロックの書き込み回数に偏りが発生しないようにデータの置き換え処理が行われる。このデータ置き換え処理では、頻繁にライトアクセスが発生するブロックと、ほとんどライトアクセスが発生しないブロックとの間で、書き込み回数のばらつきが発生しないように、データの書き込みが発生した際、データの書き込み対象となるブロックと、それに付随して、データの書き込み対象となっていないブロックに対しても、データの置き換えを実施する。
【００３１】
例えば、図２に示すように、メインコントローラ１０（フラッシュメモリコントローラ１３）からフラッシュメモリ２０に対して、Address 00Hへのデータ書き込み要求を行ったとする。その際、図２（ａ）に示すように、ＮＡＮＤコントローラ２１は、ＲＡＷ  ＮＡＮＤ２２のAddress 00Hに格納されているData Aと、それとは関係のない別のAddressに格納されているData Dを読み出して待避させる。次に、図２（ｂ）に示すように、ＮＡＮＤコントローラ２１は、ＲＡＷ  ＮＡＮＤ２２のData AとData Dが格納されていたAddressのデータを消去すると共に、データが格納されていないブロック（Blank）のAddressにData Dを書き込み。そして、図２（ｃ）に示すように、ＮＡＮＤコントローラ２１は、データが格納されていない他のブロックのAddressにData Aを書き込む。この一連の動作により、最終的に書き込み対象のData Aのみならず、Data Dについてもデータ更新が行われる。
【００３２】
ここで、フラッシュメモリ２０に対して、所定量以上のデータの書き込みが発生した場合、図２に示すウェアレベリングによるデータ置き換え処理により、フラッシュメモリ２０内の全てのブロックに対してデータ更新が発生すると考えられる。そして、全てのブロックのデータ更新が、所定期間内に必ず発生すれば、リフレッシュ制御を行わなくても、常に、全てのブロックに保存されたデータは高い信頼性が確保された状態となり、また、データ更新の度にデータ保持期間が延長される。
【００３３】
そこで、本実施例では、フラッシュメモリ２０に対して、所定期間内に必ず所定量以上のデータの書き込みが発生するようにするために、後述するＷ／Ａ係数とデータ転送サイズ（フラッシュメモリコントローラ１３がフラッシュメモリ２０にデータを転送する際の単位サイズ）との関係に基づき、データ転送サイズを調整して書き込みデータ量を制御する。以下、詳細に説明する。
【００３４】
まず、上記所定期間に関して、図３及び図４を参照して説明する。図３は、フラッシュメモリ２０を構成する各ブロックの各セルに関して、データ書き込み直後からセルを構成するトランジスタの閾値電圧が変化し始めるまでの時間（time offset T0と表記）の書き込み間隔依存性を示している。また、図４は、セルを構成するトランジスタの閾値電圧（ΔVthと表記）の放置時間依存性を示している。
【００３５】
図３及び図４に示すように、データの書き込み間隔が長い場合、ゲート絶縁膜の劣化は遅くなるため、トランジスタの閾値電圧が変化し始めるまでの時間は長くなり（例えば、図３のT0_L）、その結果、閾値電圧の変化の許容レベルで規定されるデータ保持期間（いわゆるデータリテンション）を長くすることができ、データの信頼性を高めることができる。一方、データの書き込み間隔が短くなるにつれて、ゲート絶縁膜の劣化が進行するため、トランジスタの閾値電圧が変化し始めるまでの時間は短くなり（例えば、図３のT0_S）、その結果、閾値電圧の変化の許容レベルで規定されるデータ保持期間は短くなり、データの信頼性が低下する。
【００３６】
従って、上記所定期間は、フラッシュメモリ２０の特性に基づき、データの信頼性を確保するために必要となる（言い換えると、フラッシュメモリの各ブロックのデータ保持期間を所望の値とするために必要となる）データの書き込み間隔に設定すればよい。具体的には、フラッシュメモリ２０の寿命が情報処理装置の寿命と同等以上となるようなデータ保持期間で規定されるデータの書き込み間隔とすることができる。
【００３７】
次に、上記所定量及びデータ転送サイズに関して、図５及び図６を参照して説明する。図５は、フラッシュメモリの外部バスと内部バスを示す図であり、図６は、フラッシュメモリの特性（Ｗ／Ａ係数の転送データサイズ依存性）の測定結果である。例えば、上述したデータ信頼性を確保するために必要となるデータの書き込み間隔（所定期間）をＴ、フラッシュメモリ２０内の全ブロックに対してデータ更新を発生させるために必要となる書き込みデータ量（必要書き込みデータ量）をＷとすると、所定期間Ｔ内に必要書き込みデータ量Ｗのデータの書き込みが発生すれば、リフレッシュ制御が不要となる。
【００３８】
ただし、図５に示す外部バス部分の所定期間Ｔ内のフラッシュメモリ２０への書き込みデータ量は、ユーザの装置使用頻度に依存して増減する。そこで、本実施例では、フラッシュメモリ２０内のＮＡＮＤコントローラ２１の性能指標の一つである、Ｗ／Ａ（Write Amplification）係数を用いて、データ書き込み時のデータ転送サイズの調整を行い、図５に示すフラッシュメモリ２０の内部バスの書き込みデータ量を制御する。
【００３９】
具体的に説明すると、フラッシュメモリ２０の内部バス（ＮＡＮＤコントローラ２１−ＲＡＷ  ＮＡＮＤ２２間）における書き込みデータ量は、一般的にフラッシュメモリ２０の外部バス（フラッシュメモリコントローラ１３−ＮＡＮＤコントローラ２１間）での書き込みデータ量よりも増加する。この要因は、ＮＡＮＤ型フラッシュメモリの、データのリード、ライト、消去時の最低データサイズ単位に制約があるためであり、内部バスでの書き込みデータ量の、外部バスでの書き込みデータ量に対する比率をＷ／Ａ係数と呼ぶ。
【００４０】
このＷ／Ａ係数は、図６の測定結果に示すように、外部バスでのデータ転送サイズ（アクセスサイズ）が大きくなるほど減少し、外部バスでのデータ転送サイズが小さくなるほど増加する。つまり、外部バスでのデータ転送サイズを小サイズに制約すると、外部バスでの書き込みデータ量に対して内部バスでの書き込みデータ量は増加し、外部バスでのデータ転送サイズを大サイズにすると、外部バスでの書き込みデータ量と内部バスでの書き込みデータ量との差異はほぼなくなる。
【００４１】
このようなフラッシュメモリ２０の特性を参照して、所定期間Ｔ内に、フラッシュメモリ２０の内部バスでの書き込みデータ量が必要書き込みデータ量Ｗ以上となるようにするための制御を考える。所定期間Ｔ内でのフラッシュメモリ２０の外部バスでの書き込みデータ量がＷ０であったとする。この時、フラッシュメモリ２０の内部バスでの書き込みデータ量を必要書き込みデータ量Ｗ以上とするためには、Ｗ／Ａ係数が下記（１）式を満たすように、フラッシュメモリ２０の外部バスでのデータ転送サイズを選択すればよい。
【００４２】
Ｗ／Ａ≧Ｗ／Ｗ０  …  （１）
【００４３】
すなわち、上記（１）式を満たすようにデータ転送サイズを選択すれば、ユーザの装置使用頻度に依存して増減する、フラッシュメモリ２０の外部バスでの書き込みデータ量に関係なく、所定期間内のフラッシュメモリ２０の内部バスでの書き込みデータ量を必要書き込みデータ量以上に制御可能である。結果として、フラッシュメモリ２０内の全ブロックに対して、定期的にデータの更新がされることになり、リフレッシュ制御を実施しなくても、データの信頼性を確保することができる。
【００４４】
以下、一例として、ＭＦＰ（Multi Function Peripheral）などの画像形成装置に対して、本実施例によるデータ信頼性の確保、及びデータ保持期間の延長のための制御について、図７のフローチャート図を参照して説明する。なお、ＭＦＰは、一般的に、スキャン、コピー、プリント、ＦＡＸが何枚実施されたかをカウントするカウンタを備えており、そのカウント値をカウンタ情報として保持している。また、スキャン、コピー、プリント、ＦＡＸの１カウントあたりのデータ量は取得可能である。従って、所定期間内のカウンタ情報の増加幅を参照することにより、ユーザの装置使用頻度の把握、及び、フラッシュメモリ２０への書き込みデータ量を取得可能である。ＭＦＰは、ＣＰＵ１１が、フラッシュメモリ２０が記憶するプログラムを実行することにより、図７に示す処理を実現する。
【００４５】
まず、メインコントローラ１０は、ユーザの所定期間内の装置使用頻度を把握するため、所定期間が経過するまで待機する（Ｓ１０１）。所定期間が経過したら、メインコントローラ１０は、上記カウンタ情報を取得し（Ｓ１０２）、所定期間内のカウンタ情報の増加幅を算出する。更に、メインコントローラ１０は、算出したカウンタ情報の増加幅と、予め取得した１カウントあたりのデータ量から、所定期間内のフラッシュメモリ２０への書き込みデータ量を取得する（Ｓ１０３）。
【００４６】
次に、メインコントローラ１０は、リフレッシュ制御を不要とするために必要となる、所定期間内の書き込みデータの所定量（すなわち、ウェアレベリングにより、フラッシュメモリ２０内部の全ブロックのデータが少なくとも１回以上更新されるために必要となる必要書き込みデータ量）と、所定期間内の実際の書き込みデータ量の取得値とを比較し、取得値を所定量で除算することにより、実際の書き込みデータ量が所定量以上であるかを判断するための指標を算出する（Ｓ１０４）。
【００４７】
そして、メインコントローラ１０は、算出した指標が１以上であるかを判断し（Ｓ１０５）、指標≧１の場合は、実際の書き込みデータ量が所定量以上であるため、この時は、Ｗ／Ａ係数が最低となるデータ転送サイズ（例えば、処理の効率を考慮して予め設定した大きなデータ転送サイズ）を選択する（Ｓ１０６）。一方、指標＜１となる場合は、実際の書き込みデータ量が所定量未満であるため、フラッシュメモリ２０のＷ／Ａ係数特性を参照して、最適なデータ転送サイズを選択し、フラッシュメモリ２０の内部バスでの書き込みデータ量を増加させるように調整する（Ｓ１０７）。
【００４８】
なお、最適なデータ転送サイズは、実際の書き込みデータ量が所定量以上となる値であればよいが、データ転送サイズを小さくし過ぎると、実際の書き込みデータ量が必要以上に増加し、データ保持期間の低下を招くため、実際の書き込みデータ量が所定量とほぼ等しいか、わずかに越える程度のデータ転送サイズを選択することが好ましい。
【００４９】
その後、メインコントローラ１０は、データ転送サイズを更新し、一定期間、更新したデータ転送サイズでフラッシュメモリ２０へのデータ書き込みを制御し（Ｓ１０８）、一定期間が経過したら、Ｓ１０１に戻って同様の処理を繰り返す。
【００５０】
上記制御を定期的に実施することにより、ユーザの装置使用頻度にばらつきがあった場合においても、フラッシュメモリ２０の内部バスでの書き込みデータ量を、常に、必要書き込みデータ量以上に調整することができる。よって、リフレッシュ制御を行わなくても、全てのブロックに保存されたデータは高い信頼性が確保された状態となる。
【００５１】
なお、上記フローでは、データ転送サイズを調整することにより、フラッシュメモリ２０の内部バスでの書き込みデータ量が必要書き込みデータ量以上になるようにしたが、フラッシュメモリ２０の外部バスでの書き込みデータ量が極端に小さい場合は、データ転送サイズを調整しても、フラッシュメモリ２０の内部バスでの書き込みデータ量を必要書き込みデータ量以上にすることができない場合も考えられる。そのような場合は、リフレッシュ制御を実施して、データの信頼性を確保してもよいし、予め定めたダミーのデータを加算するなどしてフラッシュメモリ２０の内部バスの書き込みデータ量を増加させるようにしてもよい。また、データ転送サイズの調整幅が大きい場合も、予め定めたダミーのデータを加算するなどしてフラッシュメモリ２０の内部バスの書き込みデータ量を増加させ、データ転送サイズの調整幅が小さくなるようにしてもよい。
【００５２】
以下に、ＭＦＰのカウンタ情報（ユーザの装置使用頻度）が表１のようになった場合の制御例を示す。なお、以下の制御例では、高いデータ信頼性を得るために必要となる、データの書き込み間隔（所定期間）を１カ月とし、所定期間内にフラッシュメモリ２０内の全ブロックに対して少なくとも１回以上のデータ更新を発生させるために必要となる、フラッシュメモリ２０の内部バスの必要書き込みデータ量（所定量）を１０００００ＭＢとする。また、カウンタ情報の１カウントあたり、フラッシュメモリ２０に対して２０ＭＢのデータ書き込みが行われるものとする。
【００５３】
【表１】
2015197832.tif 000003
【００５４】
まず、表１に示すように、週１回、カウンタ情報（ユーザの装置使用頻度）を参照し、カウンタ情報の増加量を取得する。カウンタ情報の増加量より、その週のフラッシュメモリ２０の外部バスへの書き込みデータ量は、下記の（２）式により算出される。
【００５５】
フラッシュメモリ外部バス書き込み量［ＭＢ］＝カウンタ情報の増加量［枚］×２０［ＭＢ／枚］  …  （２）
【００５６】
上記、フラッシュメモリ２０の外部バスへの書き込みデータ量に、その週のＷ／Ａ係数の設定値を乗算し、フラッシュメモリ２０の内部バスへの書き込みデータ量を算出する。
【００５７】
次に、この算出した書き込みデータ量と１週間あたりの必要書き込みデータ量とを比較し、算出した書き込みデータ量が必要書き込みデータ量以上である場合は、翌週のＷ／Ａ係数を最低値に設定する。つまり、Ｗ／Ａ係数が最低値を取るようなデータ転送サイズを選択する。算出した書き込みデータ量が必要書き込みデータ量未満の場合は、以下の（３）式により、翌週のＷ／Ａ係数の設定値を算出し、算出されたＷ／Ａ係数の設定値に従い、翌週のデータ転送サイズを選択する。なお、下記の（３）式における調整値は、次の一週間において、フラッシュメモリ２０の内部バスの書き込みデータ量が必要書き込みデータ量未満とならないようにするための安全係数であり、装置の使用状況に応じて適宜設定することができる。
【００５８】
Ｗ／Ａ係数の設定値＝必要書き込みデータ量÷フラッシュメモリの内部バスの書き込みデータ量×調整値  …  （３）
【００５９】
データ転送サイズが選択された以降は、本データ転送サイズに従い、フラッシュメモリ２０へのデータの書き込みを行う。
【００６０】
なお、上記説明では、カウンタ情報を１種類としたが、スキャン、コピー、プリント、ＦＡＸなどの機能毎にカウンタ情報を取得し、各カウンタ情報について、その増加量とその機能の１カウントあたりのデータ量を乗算した値を求め、全カウンタ情報について加算して書き込みデータ量を取得するようにしてもよい。また、１カウントあたりのデータ量は一定の値としてもよいし、その機能の動作条件に基づいてデータ量を調整したり、装置の使用時間に基づいてデータ量を調整したりしてもよい。
【００６１】
上記のデータ転送サイズの選択プロセスを週１回実施し、ユーザの装置使用頻度に合わせてデータ転送サイズを調整した場合の効果について説明する。
【００６２】
図８及び図９は、データ転送サイズの調整制御を実施した場合と実施しなかった場合のフラッシュメモリ２０の内部バスの書き込みデータ量の週毎の推移（図８）及び月毎の推移（図９）を示している。図８及び図９に示すように、データ転送サイズの調整制御を実施しない場合と比較して、データ転送サイズの調整制御を実施した場合は、必要書き込みデータ量に満たなかった分が是正され、常に、必要書き込みデータ量以上の書き込みデータ量を確保することができる。これにより、リフレッシュ制御を行うことなく、高いデータ信頼性を確保することが可能となる。
【００６３】
なお、本発明は上記実施例に限定されるものではなく、本発明の趣旨を逸脱しない限りにおいて、フラッシュメモリを備える装置の構成やフラッシュメモリの制御方法は適宜変更可能である。
【００６４】
例えば、上記実施例では、カウンタ情報の増加量と１カウントあたりのデータ量から、所定期間内の書き込みデータ量を予測したが、フラッシュメモリ２０の外部バスの書き込みデータ量を直接取得（又は計測）してもよい。
【産業上の利用可能性】
【００６５】
本発明は、フラッシュメモリを備える情報処理装置及び当該情報処理装置におけるフラッシュメモリの制御方法に利用可能である。
【符号の説明】
【００６６】
１０  メインコントローラ
１１  ＣＰＵ
１２  メインメモリ
１３  フラッシュメモリコントローラ
２０  フラッシュメモリ
２１  ＮＡＮＤコントローラ
２２  ＲＡＷ  ＮＡＮＤ
【図１】
2015197832.tif 000004
【図２】
2015197832.tif 000005
【図３】
2015197832.tif 000006
【図４】
2015197832.tif 000007
【図５】
2015197832.tif 000008
【図６】
2015197832.tif 000009
【図７】
2015197832.tif 000010
【図８】
2015197832.tif 000011
【図９】
2015197832.tif 000012