【構成】メモリ制御システムは、フレーム周期に応じたタイミングで不揮発性メモリから周期的にデータ読出を行う。フレーム周期の1周期の期間を真性フレーム期間として計測する。データ読出の開始から完了までの期間をリード期間として計測する。真性フレーム期間においてデータ読出を実行しない期間をアイドル期間として算出する。アイドル期間において、不揮発性メモリに記憶されているデータに対してデータ回復処理を実行する。
フレーム周期に応じたタイミングで不揮発性メモリからデータ読出を行うメモリ制御システムにおいて、前記不揮発性メモリに記憶されているデータに対してデータ回復処理を実行するデータ回復方法であって、
前記フレーム周期の1周期の期間を真性フレーム期間として計測する真性フレーム期間計測ステップと、
前記フレーム周期の1周期における前記データ読出の開始から完了までの期間をリード期間として計測するリード期間計測ステップと、
前記真性フレーム期間において前記データ読出を実行しない期間をアイドル期間として算出するアイドル期間算出ステップと、
前記アイドル期間において前記データ回復処理を実行するデータ回復ステップと、
を含むことを特徴とする不揮発性メモリのデータ回復方法。
前記フレーム周期毎に、前記真性フレーム期間の先頭から前記リード期間が開始する第1のデータ読出と、前記真性フレーム期間の途中から前記リード期間が開始する第2のデータ読出と、を含む2回の前記データ読出を行うステップと、
前記真性フレーム期間の先頭から前記第2のデータ読出の開始までの期間を第1疑似フレーム期間として計測し、前記第2のデータ読出の開始から次のフレーム周期の先頭までの期間を第2疑似フレーム期間として計測する疑似フレーム期間計測ステップと、
をさらに含み、
前記リード期間計測ステップは、前記第1疑似フレーム期間における前記データ読出の開始から完了までの期間を第1リード期間として計測し、前記第2疑似フレーム期間における前記データ読出の開始から完了までの期間を第2リード期間として計測するステップを含み、
前記アイドル期間算出ステップは、前記真性フレーム期間から前記第1疑似フレーム期間と前記第2リード期間とを減算して、前記第2疑似フレーム期間において前記データ読出を実行しない期間を副アイドル期間として算出するステップを含み、
前記データ回復ステップは、前記副アイドル期間において前記データ回復処理を実行するステップを含む、
ことを特徴とする請求項1に記載の不揮発性メモリのデータ回復方法。
前記フレーム周期毎に、前記真性フレーム期間の先頭から前記リード期間が開始する第1のデータ読出と、前記真性フレーム期間の途中から前記リード期間が開始する第2〜第n(n:3以上の自然数)のデータ読出と、を含むn回の前記データ読出を行うステップと、
前記真性フレーム期間の先頭から前記第2のデータ読出の開始までの期間を第1疑似フレーム期間として計測し、第k(k:2≦k≦(n−1)の自然数)のデータ読出の開始から第(k+1)のデータ読出の開始までの期間を第k疑似フレーム期間として計測し、前記第nのデータ読出の開始から次のフレーム周期の先頭までの期間を第n疑似フレーム期間として計測し、前記第1疑似フレーム期間から前記第n疑似フレーム期間までのn個の疑似フレーム期間を得る疑似フレーム期間計測ステップと、
をさらに含み、
前記リード期間計測ステップは、前記第k疑似フレーム期間における前記データ読出の開始から完了までの期間を第kリード期間として計測し、前記第n疑似フレーム期間における前記データ読出の開始から完了までの期間を第nリード期間として計測するステップを含み、
前記アイドル期間算出ステップは、前記第1疑似フレーム期間から第(n−1)疑似フレーム期間までの(n−1)個の前記疑似フレーム期間を加算して加算期間を算出し、前記加算期間と前記第nリード期間とを前記真性フレーム期間から減算して、前記第n疑似フレーム期間において前記データ読出を実行しない期間を副アイドル期間として算出するステップを含み、
前記データ回復ステップは、前記副アイドル期間において前記データ回復処理を実行するステップを含む、
ことを特徴とする請求項1に記載の不揮発性メモリのデータ回復方法。
フレーム周期に応じたタイミングで不揮発性メモリからデータ読出を行うメモリ制御システムにおいて、前記不揮発性メモリに記憶されているデータに対してデータ回復処理を実行するデータ回復方法であって、
前記データ読出のタイミングに同期して、第1の前記データ読出の開始から第2の前記データ読出の開始までの期間を第1疑似フレーム期間として計測し、前記第2の前記データ読出の開始から第3の前記データ読出の開始までの期間を第2疑似フレーム期間として計測する疑似フレーム期間計測ステップと、
前記第1疑似フレーム期間において前記データ読出を実行しない期間を第1アイドル期間として計測し、前記第2疑似フレーム期間において前記データ読出を実行しない期間を第2アイドル期間として計測するステップと、
前記第3の前記データ読出における読出開始から完了までの期間をリード期間として計測するリード期間計測ステップと、
前記第1疑似フレーム期間と前記第2疑似フレーム期間のうち短い方の期間から、前記リード期間を減算して減算期間を算出し、前記第1アイドル期間と前記第2アイドル期間と前記減算期間とのうち最も短い期間を、前記第2疑似フレーム期間の後の第3疑似フレーム期間において前記データ読出を実行しない第3アイドル期間として算出するアイドル期間算出ステップと、
前記第3アイドル期間において前記データ回復処理を実行するデータ回復ステップと、
を含むことを特徴とする不揮発性メモリのデータ回復方法。
前記データ読出部は、前記真性フレーム期間の先頭から前記リード期間が開始する第1のデータ読出と、前記真性フレーム期間の途中から前記リード期間が開始する第2のデータ読出と、を含む2回の前記データ読出を行い、
前記期間計測部は、前記真性フレーム期間の先頭から前記第2のデータ読出の開始までの期間を第1疑似フレーム期間として計測し、前記第2のデータ読出の開始から次のフレーム周期の先頭までの期間を第2疑似フレーム期間として計測し、前記第1疑似フレーム期間における前記データ読出の開始から完了までの期間を第1リード期間として計測し、前記第2疑似フレーム期間における前記データ読出の開始から完了までの期間を第2リード期間として計測し、
前記期間算出部は、前記真性フレーム期間から前記第1疑似フレーム期間と前記第2リード期間とを減算して、前記第2疑似フレーム期間において前記データ読出を実行しない期間を第2アイドル期間として算出し、
前記回復処理部は、前記第2アイドル期間において前記データ回復処理を実行する、
ことを特徴とする請求項6に記載のメモリ制御装置。
前記データ読出部は、前記真性フレーム期間の先頭から前記リード期間が開始する第1のデータ読出と、前記真性フレーム期間の途中から前記リード期間が開始する第2〜第n(n:3以上の自然数)のデータ読出と、を含むn回の前記データ読出を行い、
前記期間計測部は、前記真性フレーム期間の先頭から前記第2のデータ読出の開始までの期間を第1疑似フレーム期間として計測し、第k(k:2≦k≦(n−1)の自然数)のデータ読出の開始から第(k+1)のデータ読出の開始までの期間を第k疑似フレーム期間として計測し、前記第nのデータ読出の開始から次のフレーム周期の先頭までの期間を第n疑似フレーム期間として計測し、前記第k疑似フレーム期間における前記データ読出の開始から完了までの期間を第kリード期間として計測し、前記第n疑似フレーム期間における前記データ読出の開始から完了までの期間を第nリード期間として計測し、
前記期間算出部は、前記第1疑似フレーム期間から第(n−1)疑似フレーム期間までの(n−1)個の疑似フレーム期間を加算して加算期間を算出し、前記加算期間と前記第nリード期間とを前記真性フレーム期間から減算して、前記第n疑似フレーム期間において前記データ読出を実行しない期間を第nアイドル期間として算出し、
前記回復処理部は、前記nアイドル期間において前記データ回復処理を実行する、
ことを特徴とする請求項6に記載のメモリ制御装置。
前記第1疑似フレーム期間及び前記第2疑似フレーム期間を加算した加算値と第1の下限値とを比較する第1の処理と、前記第1アイドル期間及び前記第2アイドル期間と第2の下限値とを比較する第2の比較処理と、を実行する比較処理部をさらに含み、
前記回復処理部は、前記加算値が前記第1の下限値以上であって、且つ前記第1アイドル期間及び前記第2アイドル期間がいずれも前記第2の下限値以上である場合に、前記データ回復処理を実行する、
ことを特徴とする請求項9に記載のメモリ制御装置。
【発明を実施するための形態】
【0014】
以下、本発明の実施例を図面を参照しつつ詳細に説明する。
【実施例1】
【0015】
図1は、本発明に係るメモリ制御装置(メモリ制御部12)を含むメモリ制御システム10の構成を示すブロック図である。メモリ制御システム10は、CPU(Central Processing Unit)11、メモリ制御部12、不揮発性の半導体メモリであるNAND型のフラッシュメモリ13、RAM(Random Access Memory)14及びCPUバス15を含む。メモリ制御システム10は、フラッシュメモリ13に記憶されている画像データを、フレーム周期に応じたタイミングで周期的に読み出し、液晶表示パネル等からなる表示装置(図示せず)に画像データを供給する。
【0016】
CPU11は、CPUバス15を介してメモリ制御部12及びRAM14に接続されている。CPU11は、CPUバス15を介してメモリ制御部12及びRAM14にアクセスし、フラッシュメモリ13に対するデータの読み出し・書き込みアクセスを行う。
【0017】
CPU11は、フレーム周期に応じたタイミングで、読み出し対象となるデータのアドレスとともに1〜200回程度の複数回のデータ出力要求からなる1セットのデータ出力要求群をメモリ制御部12に供給する。本実施例では、CPU11は、1フレーム周期毎に1回ずつ、フレーム周期の先頭に合わせて、データの出力要求群をメモリ制御部12に供給する。
【0018】
メモリ制御部12は、データ読出部21、期間計測部22、期間算出部23及び回復処理部24を含む。
【0019】
データ読出部21は、CPU11からのデータ出力要求に応じて、フラッシュメモリ13から画像データを出力する(データ出力処理)。すなわち、データ読出部21は、データ出力要求群に含まれるデータ出力要求の各々に対応する1〜200回程度の複数回のデータ出力処理を実行する。以下、1セットのデータ出力要求群に対応するデータ出力処理群を、まとめて「データ読出処理」と称する。本実施例では、1フレーム周期毎に1回(1セット)ずつCPU11からデータ出力要求群が供給されるため、データ読出部21は、1フレーム周期につき1回のデータ読出処理(すなわち、1セットのデータ出力処理群)を実行する。データ読出部21は、フレーム周期の各周期の先頭からデータ読出処理を行う。
【0020】
期間計測部22は、フレーム周期の1周期毎の期間を真性フレーム期間Aとして計測する。以下の説明では、複数の真性フレーム期間Aを区別する場合、先頭から順に番号を付して真性フレーム期間A1,A2,A3・・・とも称する。なお、各真性フレーム期間A(A1,A2,A3・・・)の長さは等しい。
【0021】
また、期間計測部22は、データ読出部21がデータ読出処理を開始してから完了するまでの期間をリード期間Cmとして計測する。具体的には、期間計測部22は、CPU11からメモリ制御部12にデータ出力要求の供給が開始された後、データ出力要求が途絶えてから1ms後までの期間をリード期間Cmとして計測する。すなわち、リード期間Cmは、1セットのデータ出力要求群のうちの最初のデータ出力要求の供給開始から最後のデータ出力要求が途絶えて1ms後までの期間として計測される。以下、真性フレーム期間A及びリード期間Cmの計測に係る処理を期間計測処理とも称する。
【0022】
期間算出部23は、真性フレーム期間Aにおいてデータ読出処理を実行しない期間をアイドル期間Dmとして算出する期間算出処理を実行する。具体的には、期間算出部23は、真性フレーム期間Aからリード期間Cmを減算することにより、CPU11からのデータ出力要求がない期間をアイドル期間Dmとして算出する。
【0023】
回復処理部24は、フラッシュメモリ13に記憶されているデータに対して、データ回復処理を実行する。データ回復処理は、例えばフラッシュメモリ13内のデータに生じているデータの誤りを検出するための誤り検出処理、監視処理や、リフレッシュ処理等を含む。回復処理部24は、かかるデータ回復処理を複数の回復処理期間Fm(m=1,2,3・・・)に分割して実行する。また、回復処理部24は、データ回復処理の実行に際して、回復処理期間Fmの設定等を含む後述するデータ回復制御処理を実行する。以下の説明では、期間計測処理、期間算出処理及びデータ回復制御処理からなる一連の処理を、まとめてメモリ制御処理とも称する。
【0024】
図2は、本実施例におけるデータ読出処理及び期間算出処理を模式的に示すタイムチャートである。真性フレーム期間A1が先頭のフレーム期間であり、時間軸(T)に沿って矢印の方向に2番目の真性フレーム期間A2、3番目の真性フレーム期間A3、4番目の真性フレーム期間A4が続いている。上記の通り、真性フレーム期間A毎に1回ずつデータ読出処理が実行されるため、各真性フレーム期間Aには、1回ずつリード期間Cm及びアイドル期間Dmが存在する。なお、上記の通り各真性フレーム期間A(A1,A2,A3,A4)の長さは等しいが、各リード期間Cmの長さは読み出し対象となるデータのサイズ等に応じて異なる。
【0025】
図3は、メモリ制御部12が行うメモリ制御処理のルーチンを示すフローチャートである。メモリ制御部12は、まず処理対象の真性フレーム期間Amとして先頭の真性フレーム期間である真性フレーム期間A1(すなわち、m=1)をセットする(ステップS1)。メモリ制御部12は、CPU11からデータ出力要求が供給されているか否かを判定する(ステップS2)。データ出力要求が供給されていると判定すると、メモリ制御部12の期間計測部22は、フレーム期間計測処理を実行する(ステップS3)。
【0026】
図4は、フレーム期間計測処理のルーチンを示すフローチャートである。このフレーム期間計測処理は、先頭の真性フレーム期間A1における真性フレーム期間Aの長さを計測する処理である。なお、上記のとおり各真性フレーム期間Aの長さは等しいため、先頭の真性フレーム期間A1を計測することにより、2番目以降の真性フレーム期間A2,A3,A4・・・の長さを得ることができる。
【0027】
期間計測部22は、リード期間C1が開始した後(ステップS11)、データ出力要求が途絶えてから1msが経過したか否かを判定する(ステップS12)。経過したと判定すると、リード期間C1が終了したと判定する。リード期間C1が終了すると、アイドル期間D1が開始する(ステップS13)。
【0028】
メモリ制御部12は、CPU11からデータ出力要求が供給されているか否かを判定する(ステップS14)。データ出力要求が供給されたと判定すると、アイドル期間D1が終了したと判定する。これにより、リード期間C1の開始からアイドル期間D1の終了までを真性フレーム期間A1として計測し、真性フレーム期間の計測処理を終了する(ステップS15)。メモリ制御部12は、真性フレーム期間Amの番号mを1だけインクリメントする(ステップS16)。
【0029】
再び
図3を参照すると、メモリ制御部12の期間計測部22は、フレーム期間計測処理の後、リード期間計測処理を実行する(ステップS4)。
【0030】
図5は、リード期間計測処理のルーチンを示すフローチャートである。このリード期間計測処理は、先頭の真性フレーム期間A1に続く2番目以降の真性フレーム期間(A2,A3,A4・・・)におけるリード期間Cm(m=2,3,4・・・)を計測する処理である。
【0031】
期間計測部22は、リード期間Cmの計測を開始した後(ステップS17)、データ出力要求が途絶えてから1msが経過したか否かを判定する(ステップS18)。経過したと判定すると、リード期間Cmが終了したと判定して、リード期間計測処理を終了する(ステップS19)。
【0032】
再び
図3を参照すると、メモリ制御部12は、リード期間計測処理の実行後、データ回復制御処理に移行する(ステップS5)。
【0033】
図6は、データ回復制御処理のルーチンを示すフローチャートである。メモリ制御部12は、先頭から2番目以降の真性フレーム期間A(A2,A3,A4・・・)においてデータの回復を行うためのデータの回復処理期間Fm(m=2,3,4・・・)を設定する(ステップS20)。期間算出部23は、ステップS3において計測した真性フレーム期間Aからリード期間Cmを減算することにより、アイドル期間Dm(m=2,3,4・・・)を算出する(ステップS21)。例えば、
図2に示すように、アイドル期間D2及びD3は、夫々D2=A−C2、D3=A−C3として算出される。
【0034】
再び
図6を参照すると、メモリ制御部12は、設定したデータの回復処理期間Fmがアイドル期間Dmの範囲に収まるか、すなわちアイドル期間Dmにおいてデータの回復を行うことが可能か否かを判定する(ステップS22)。データの回復処理期間Fmがアイドル期間Dmの範囲に収まらない、すなわちアイドル期間Dm内でデータの回復を行うことができないと判定すると、メモリ制御部12は、データ回復制御処理を終了する(ステップS23)。一方、データの回復処理期間Fmがアイドル期間Dmの範囲に収まっている、すなわちアイドル期間Dm内でデータの回復を行うことができると判定すると、当該回復処理期間Fmにおいてデータの回復処理を実行する(ステップS24)。
【0035】
再び
図3を参照すると、メモリ制御部12は、先頭の真性フレーム期間A1以外の全ての真性フレーム期間(A2、A3,A4・・・)においてデータ回復制御処理が完了したか否かを判定する(ステップS6)。データ回復制御処理が完了したと判定すると、メモリ制御処理を終了する。一方、データ回復制御処理が完了していないと判定すると、メモリ制御部12は、真性フレーム期間Amの番号mを1だけインクリメントする(ステップS7)。メモリ制御部12は、CPU11からデータ出力要求が供給されているか否かを判定する(ステップS8)。出力要求が供給されていると判定すると、ステップS4に戻り、リード期間計測処理を実行する(ステップS4)。
【0036】
以上のように、本実施例のメモリ制御部12は、真性フレーム期間及びリード期間を計測して、アイドル期間を算出する。そして、回復処理期間を設定し、回復処理期間がアイドル期間に収まる場合にのみ、データ回復処理を実行する。アイドル期間に収まるように回復処理期間を設定してデータ回復処理を実行することにより、データ読出処理による中断を経ることなく、データ回復処理を行うことができる。従って、データ読出処理を阻害することなく効率のよいデータの回復処理を行うことが可能となる。
【実施例2】
【0037】
実施例2のメモリ制御システム10は、
図1に示すように、CPU11、メモリ制御部12、不揮発性の半導体メモリであるNAND型のフラッシュメモリ13、RAM14及びCPUバス15を含む。
【0038】
CPU11は、実施例1とは異なり、1フレーム周期毎に2回(2セット)ずつ、データ出力要求群をメモリ制御部12に供給する。具体的には、CPU11は、真性フレーム期間Aの先頭のタイミングで第1のデータ出力要求群、真性フレーム期間Aの途中のタイミングで第2のデータ出力要求群をメモリ制御部12に供給する。
【0039】
メモリ制御部12は、データ読出部21、期間計測部22、期間算出部23及び回復処理部24を含む。
【0040】
データ読出部21は、CPU11からのデータ出力要求に応じて、データ読出処理を実行する。本実施例では、1フレーム周期毎に2回(2セット)ずつCPU11からデータ出力要求群が供給されるため、データ読出部21は、1フレーム周期につき2回のデータ読出処理(すなわち、2セットのデータ出力処理群)を実行する。具体的には、データ読出部21は、真性フレーム期間Aの先頭から第1のデータ読出処理を行い、真性フレーム期間Aの途中から第2のデータ読出処理を行う。
【0041】
期間計測部22は、真性フレーム期間Aの先頭から第2のデータ読出処理の開始までの期間を第1疑似フレーム期間として計測し、第2のデータ読出処理の開始から次のフレーム周期の先頭までの期間を第2疑似フレーム期間として計測する。各真性フレーム期間Aにおける第1疑似フレーム期間及び第2疑似フレーム期間を総称して単に疑似フレーム期間Bm(m=1,2,3・・・)と称する。
【0042】
期間計測部22は、リード期間Cmの開始からアイドル期間Dmの終了までの期間として疑似フレーム期間Bmを計測する。上記の通り、本実施例では1フレーム周期につき2回のデータ読出処理(2セットのデータ出力処理群)が実行されるため、真性フレーム期間Aは、2回のデータ読出処理に対応する2つの疑似フレーム期間Bmを含む。また、期間計測部22は、実施例1と同様、リード期間Cmについての期間計測処理を行う。
【0043】
期間算出部23は、真性フレーム期間A、疑似フレーム期間Bm及びリード期間Cmに基づいて、アイドル期間Dmを算出する。具体的には、期間算出部23は、真性フレーム期間Aから第1疑似フレーム期間(例えば、B1)と第2疑似フレーム期間におけるリード期間(例えば、C2)とを減算してアイドル期間(例えば、D2)を算出する。この第2疑似フレーム期間におけるアイドル期間を、特に副アイドル期間と称する。
【0044】
回復処理部24は、期間算出部23により算出された副アイドル期間において、フラッシュメモリ13内のメモリ領域に保持されたデータの回復処理を制御するデータ回復制御処理を行う。
【0045】
図7は、本実施例におけるデータ読出処理及び期間算出処理を模式的に示すタイムチャートである。上記の通り、真性フレーム期間A毎に2回ずつデータ読出処理が実行されるため、真性フレーム期間Aは、リード期間Cm及びアイドル期間Dmからなる2個の疑似フレーム期間Bmを含む。例えば、真性フレーム期間A1は疑似フレーム期間B1及びB2を含み、真性フレーム期間A2は疑似フレーム期間B3及びB4を含む。
【0046】
実施例1と同様、各真性フレーム期間Aの長さは等しい。これに対し、疑似フレーム期間Bm、リード期間Cm及びアイドル期間Dmの長さは、読み出し対象となるデータのサイズ等に応じて異なる。
【0047】
図8は、メモリ制御部12が行うメモリ制御処理のルーチンを示すフローチャートである。メモリ制御部12は、まず処理対象の疑似フレーム期間Bmとして先頭の疑似フレーム期間である疑似フレーム期間B1(すなわち、m=1)をセットする(ステップS31)。メモリ制御部12は、CPU11からデータ出力要求が供給されているか否かを判定する(ステップS32)。データ出力要求が供給されていると判定すると、メモリ制御部12の期間計測部22は、疑似フレーム期間計測処理を実行する(ステップS33)。
【0048】
図9は、疑似フレーム期間計測処理のルーチンを示すフローチャートである。この疑似フレーム期間計測処理は、疑似フレーム期間Bmを計測する処理である。
【0049】
期間計測部22は、リード期間C1が開始した後(ステップS42)、データ出力要求が途絶えてから1msが経過したか否かを判定する(ステップS43)。経過したと判定すると、リード期間C1が終了したと判定する。これにより、リード期間C1が計測される。リード期間C1が終了すると、アイドル期間D1が開始する(ステップS44)。
【0050】
メモリ制御部12は、CPU11からデータ出力要求が供給されているか否かを判定する(ステップS45)。データ出力要求が供給されたと判定すると、アイドル期間D1が終了したと判定する。これにより、アイドル期間D1が計測される。期間計測部22は、リード期間C1の開始からアイドル期間D1の終了までを疑似フレーム期間B1として計測し、疑似フレーム期間計測処理を終了する。メモリ制御部12は、疑似フレーム期間Bmの番号mを1だけインクリメントする(ステップS47)。
【0051】
再び
図8を参照すると、メモリ制御部12は、疑似フレーム期間Bmを2回計測したか否かを判定する(ステップS34)。2回計測していないと判定すると、期間計測部22は、ステップS33に戻り、再び疑似フレーム期間計測処理を実行する。一方、2回計測したと判定すると、期間算出部23は、計測した2つの疑似フレーム期間(B1とB2)を加算することにより、真性フレーム期間Aを算出する(ステップS35)。
【0052】
メモリ制御部12は、計測済みの疑似フレーム期間の直後の疑似フレーム期間Bmについて、疑似フレーム期間計測処理を実行する(ステップS36)。例えば、疑似フレーム期間B1及びB2を計測した直後において、疑似フレーム期間B3を計測する。なお、疑似フレーム期間計測処理の詳細については、ステップS33の処理と同様であるため、ここでは説明を省略する。
【0053】
続いて、メモリ制御部12の期間計測部22は、ステップS36において計測した疑似フレーム期間の直後のリード期間Cmについて、リード期間計測処理を実行する(ステップS37)。例えば、ステップS36において疑似フレーム期間B3を計測した場合、その直後のリード期間C4を計測する。なお、リード期間計測処理の詳細は、実施例1において
図5を参照して説明した処理と同様であるため、ここでは説明を省略する。
【0054】
メモリ制御部12は、リード期間計測処理の実行後、データ回復制御処理に移行する(ステップS38)。本実施例におけるデータ回復制御処理は、基本的な処理の流れについては実施例1において
図6のフローチャートで示したデータ回復制御処理と同様であるが、アイドル期間算出ステップ(ステップS21)の処理動作において、実施例1と異なる。
【0055】
メモリ制御部12は、ステップS36において計測した疑似フレーム期間の直後の疑似フレーム期間Bmにおいて、データの回復を行うためのデータの回復処理期間Fmを設定する(ステップS20)。例えば、ステップS36において疑似フレーム期間B3を計測した場合、その直後のリード期間C4において、データの回復処理期間F4を設定する。ステップS36において疑似フレーム期間B5を計測した場合、その直後のリード期間C6において、データの回復処理期間F6を設定する。
【0056】
メモリ制御部12の期間算出部23は、ステップS35において計測した真性フレーム期間Aから、ステップS37において計測したリード期間Cm及びその直前の疑似フレーム期間B(m−1)を減算することにより、副アイドル期間であるアイドル期間Dmを算出する(ステップS21)。例えば、ステップS37においてリード期間C4を計測した場合、
図7に示すように、真性フレーム期間Aから疑似フレーム期間B3及びリード期間C4を減算し、アイドル期間D4を副アイドル期間として算出する。ステップS37においてリード期間C6を計測した場合、真性フレーム期間Aから疑似フレーム期間B5及びリード期間C6を減算し、アイドル期間D6を副アイドル期間として算出する。
【0057】
再び
図6を参照すると、メモリ制御部12は、設定したデータの回復処理期間Fmが副アイドル期間であるアイドル期間Dmの範囲に収まるか、すなわち当該副アイドル期間においてデータの回復を行うことが可能か否かを判定する(ステップS22)。データの回復処理期間Fmがアイドル期間Dmの範囲に収まらない、すなわちアイドル期間Dm内でデータの回復を行うことができないと判定すると、メモリ制御部12は、データ回復制御処理を終了する(ステップS23)。一方、データの回復処理期間Fmがアイドル期間Dmの範囲に収まっている、すなわちアイドル期間Dm内でデータの回復を行うことができると判定すると、当該回復処理期間Fmにおいてデータの回復処理を実行する(ステップS24)。
【0058】
再び
図8を参照すると、メモリ制御部12は、全ての疑似フレーム期間についてデータ回復制御処理が完了したか否かを判定する(ステップS39)。データ回復制御処理が完了したと判定すると、メモリ制御処理を終了する。一方、データ回復制御処理が完了していないと判定すると、メモリ制御部12は、疑似フレーム期間Bmの番号mをインクリメントする(ステップS40)。メモリ制御部12は、CPU11からデータ出力要求が供給されているか否かを判定する(ステップS41)。出力要求が供給されていると判定すると、ステップS36に戻り、疑似フレーム期間計測処理を実行する。
【0059】
このように、ステップS39〜S41を経て、ステップS36〜S38の処理を繰り返し実行することにより、先頭の真性フレーム期間A1以降の全ての真性フレーム期間(A2,A3,A4・・・)において回復処理期間Fmが設定され、回復処理期間Fmがアイドル期間Dmの範囲内に収まっている場合には、データの回復処理が実行される。
【0060】
以上のように、本実施例のメモリ制御部12は、真性フレーム期間内にリード期間及びアイドル期間(すなわち、疑似フレーム期間)が2回ずつ存在する場合に、当該真性フレーム期間内の1回目の疑似フレーム期間(例えば、B3,B5,B7・・・)及び2回目のリード期間(例えば、C4、C6,C8・・・)を計測して、2回目のアイドル期間(例えば、D4,D6,D8・・・)を算出する。そして、回復処理期間がアイドル期間に収まる場合にのみ、データの回復処理を実行する。アイドル期間内に収まるように回復処理期間を設定することにより、データ読出処理による中断を経ることなく、データの回復処理を行うことができる。従って、データ読出処理を阻害することなく効率のよいデータの回復処理を行うことが可能となる。
【実施例3】
【0061】
実施例3のメモリ制御システム10は、
図1に示すように、CPU11、メモリ制御部12、不揮発性の半導体メモリであるNAND型のフラッシュメモリ13、RAM14及びCPUバス15を含む。
【0062】
CPU11は、実施例1及び実施例2とは異なり、1フレーム周期毎にn回(n:自然数)ずつ、データ出力要求群をメモリ制御部12に供給する。具体的には、CPU11は、真性フレーム期間Aの先頭のタイミングで第1データ出力要求群、真性フレーム期間Aの途中のタイミングで第2データ出力要求群〜第nデータ出力要求群を順次メモリ制御部12に供給する。
【0063】
データ読出部21は、CPU11からのデータの出力要求に応じて、1フレーム周期につきn回のデータ読出処理(すなわち、nセットのデータ出力処理群)を実行する。具体的には、データ読出部21は、真性フレーム期間Aの先頭から第1データ読出処理を実行し、真性フレーム期間Aの途中から第2データ読出処理〜第nデータ読出処理を実行する。
【0064】
期間計測部22は、真性フレーム期間Aの先頭から第2データ読出処理の開始までの期間を第1疑似フレーム期間として計測し、第k(k:2≦k≦(n−1)の自然数)データ読出処理の開始から第(k+1)データ読出処理の開始までの期間を第k疑似フレーム期間として計測し、第nデータ読出処理の開始から次のフレーム周期の先頭までの期間を第n疑似フレーム期間として計測する。各真性フレーム期間Aにおける第1〜第n疑似フレーム期間を総称して単に疑似フレーム期間Bm(m=1,2,3・・・)と称する。上記の通り、本実施例では1フレーム周期につきn回のデータ読出処理が行われるため、真性フレーム期間Aは、n回のデータ読出処理に対応するn個の疑似フレーム期間Bmを含む。
【0065】
期間算出部23は、真性フレーム期間Aから第1〜第(n−1)疑似フレーム期間(例えば、B1〜B(n−1))を加算した加算期間と第n疑似フレーム期間におけるリード期間(例えば、Cn)とを減算してアイドル期間(例えば、Dn)を算出する。この第n疑似フレーム期間におけるアイドル期間を、特に副アイドル期間と称する。
【0066】
図10は、本実施例におけるデータ読出処理及び期間算出処理を模式的に示すタイムチャートである。上記の通り、真性フレーム期間A毎にn回ずつデータ読出処理が実行されるため、真性フレーム期間Aは、リード期間Cm及びアイドル期間Dmからなるn個の疑似フレーム期間Bmを含む。例えば、真性フレーム期間A1は疑似フレーム期間B1〜Bnを含み、真性フレーム期間A2は疑似フレーム期間B(n+1)〜B(2n)を含む。
【0067】
図11は、メモリ制御部12が行うメモリ制御処理のルーチンを示すフローチャートである。メモリ制御部12は、まず処理対象の疑似フレーム期間Bmとして先頭の疑似フレーム期間である疑似フレーム期間B1(すなわち、m=1)をセットする(ステップS51)。メモリ制御部12は、CPU11からデータ出力要求が供給されているか否かを判定する(ステップS52)。データ出力要求が供給されていると判定すると、メモリ制御部12の期間計測部22は、疑似フレーム期間計測処理を実行する(ステップS53)。この疑似フレーム期間計測処理については、実施例2において
図9を参照して説明した処理と同様であるため、ここでは説明を省略する。
【0068】
メモリ制御部12は、疑似フレーム期間Bmをn回計測したか否かを判定する(ステップS54)。n回計測していないと判定すると、期間計測部22は、ステップS53に戻り、再び疑似フレーム期間計測処理を実行する。一方、n回計測したと判定すると、期間算出部23は、計測したn個の疑似フレーム期間B1〜Bnを加算することにより、真性フレーム期間Aを算出する(ステップS55)。
【0069】
メモリ制御部12は、計測済みのn個の疑似フレーム期間(例えば、B1〜Bn)の後の疑似フレーム期間Bm(例えば、B(n+1),B(n+2),・・・)について、疑似フレーム期間計測処理を実行する(ステップS56)。この疑似フレーム期間計測処理については、ステップS53の処理と同様であるため、ここでは説明を省略する。
【0070】
メモリ制御部12は、疑似フレーム期間Bmを(n−1)回計測したか否かを判定する(ステップS57)。(n−1)回計測していないと判定すると、期間計測部22は、ステップS56に戻り、再び疑似フレーム期間計測処理を実行する。
【0071】
続いて、メモリ制御部12の期間計測部22は、ステップS56〜S57において(n−1)回目に計測した疑似フレーム期間Bm(例えば、B(2n−1))の直後のリード期間Cm(例えば、C(2n))について、リード期間計測処理を実行する(ステップS58)。このリード期間計測処理は、実施例1において
図5を参照して説明した処理と同様であるため、ここでは説明を省略する。
【0072】
メモリ制御部12は、リード期間計測処理の実行後、データ回復制御処理に移行する(ステップS59)。本実施例におけるデータ回復制御処理は、基本的な処理の流れについては実施例1において
図6のフローチャートで示したデータ回復制御処理と同様であるが、アイドル期間算出ステップ(ステップS21)の処理動作において、実施例1と異なる。
【0073】
メモリ制御部12は、ステップS56〜S57において(n−1)回目に計測した疑似フレーム期間の直後の疑似フレーム期間Bmにおいて、データの回復を行うためのデータの回復処理期間Fmを設定する(ステップS20)。例えば、ステップS56〜S57において疑似フレーム期間B(2n−1)を計測した場合、その直後の疑似フレーム期間B(2n)において、データの回復処理期間F(2n)を設定する。
【0074】
メモリ制御部12の期間算出部23は、ステップS55において計測した真性フレーム期間Aから、ステップS56〜S57において計測した(n−1)個の疑似フレーム期間Bmの加算値及びステップS58において計測したリード期間Cmを減算することにより、副アイドル期間であるアイドル期間Dmを算出する(ステップS21)。例えば、ステップS56〜S57において疑似フレーム期間B(n+1)〜B(2n−1)を計測し、ステップS58においてC(2n)を計測した場合、AからB(n+1)〜B(2n−1)の加算値及びC(2n)を減算することにより、アイドル期間D(2n)を副アイドル期間として算出する。すなわち、アイドル期間D(2n)は、以下の式(1)で表される。
【数1】
また、ステップS56〜S57において疑似フレーム期間B(2n+1)〜B(3n−1)を計測し、ステップS58においてC(3n)を計測した場合、AからB(2n+1)〜B(3n−1)の加算値及びC(3n)を減算することにより、アイドル期間D(3n)を副アイドル期間として算出する。すなわち、アイドル期間D(3n)は、以下の式(2)で表される。
【数2】
メモリ制御部12は、設定したデータの回復処理期間Fmが副アイドル期間であるアイドル期間Dmの範囲に収まるか、すなわち当該副アイドル期間においてデータの回復を行うことが可能か否かを判定する(ステップS22)。データの回復処理期間Fmがアイドル期間Dmの範囲に収まらない、すなわちアイドル期間Dm内でデータの回復を行うことができないと判定すると、メモリ制御部12は、データ回復制御処理を終了する(ステップS23)。一方、データの回復処理期間Fmがアイドル期間Dmの範囲に収まっている、すなわちアイドル期間Dm内でデータの回復を行うことができると判定すると、当該回復処理期間Fmにおいてデータの回復処理を実行する(ステップS24)。
【0075】
再び
図11を参照すると、メモリ制御部12は、全ての疑似フレーム期間についてデータ回復制御処理が完了したか否かを判定する(ステップS60)。データ回復制御処理が完了したと判定すると、メモリ制御処理を終了する。一方、データ回復制御処理が完了していないと判定すると、メモリ制御部12は、疑似フレーム期間Bmの番号mをインクリメントする(ステップS61)。メモリ制御部12は、CPU11からデータ出力要求が供給されているか否かを判定する(ステップS62)。出力要求が供給されていると判定すると、ステップS56に戻り、疑似フレーム期間計測処理を実行する。
【0076】
このように、ステップS60〜S62を経て、ステップS56〜S59の処理を繰り返し実行することにより、先頭の真性フレーム期間A1以降の全ての真性フレーム期間(A2,A3,A4・・・)において回復処理期間Fmが設定され、回復処理期間Fmがアイドル期間Dmの範囲内に収まっている場合には、データの回復処理が実行される。
【0077】
以上のように、本実施例のメモリ制御部12は、真性フレーム期間内にリード期間及びアイドル期間(疑似フレーム期間)がn回ずつ存在する場合に、同一の真性フレーム期間内における先頭から(n−1)個の疑似フレーム期間(例えば、B(n+1)〜B(2n−1))及びその直後のリード期間(例えば、C(2n))の長さを計測して、これらを真性フレーム期間の長さAから減算することにより、アイドル期間(例えば、D(2n))を算出する。そして、回復処理期間を設定し、回復処理期間がアイドル期間に収まる場合にのみ、データの回復処理を実行する。アイドル期間内に収まるように回復処理期間を設定することにより、データ読出処理による中断を経ることなく、データの回復処理を行うことができる。従って、データ読出処理を阻害することなく効率のよいデータの回復処理を行うことが可能となる。
【実施例4】
【0078】
実施例4のメモリ制御システム10は、
図1に示すように、CPU11、メモリ制御部12、不揮発性の半導体メモリであるNAND型のフラッシュメモリ13、RAM14及びCPUバス15を含む。
【0079】
本実施例において、CPU11は、1フレーム周期毎に1回又は2回(すなわち、1セット又は2セット)ずつ、データ出力要求群をメモリ制御部12に供給する。フレーム周期毎のデータ出力要求群の回数が1回である場合、実施例1と同様に、CPU11は、フレーム周期の先頭に合わせてデータ出力要求群をメモリ制御部12に供給する。一方、フレーム周期毎のデータ出力要求群の回数が2回である場合、CPU11は、実施例2と同様、真性フレーム期間Aの先頭のタイミングで第1データ出力要求群、真性フレーム期間Aの途中のタイミングで第2のデータ出力要求群をメモリ制御部12に供給する。
【0080】
データ読出部21は、CPU11からのデータ出力要求群に応じて、1フレーム周期につき1回又は2回のデータ読出処理(すなわち、1セット又は2セットのデータ出力処理群)を実行する。フレーム周期毎のデータ読出の回数が1回である場合、データ読出部21は、実施例1と同様、フレーム周期の各周期の先頭からデータ読出処理を行う。一方、フレーム周期毎のデータ読出の回数が2回である場合、データ読出部21は、真性フレーム期間Aの先頭から第1のデータ読出処理を行い、真性フレーム期間Aの途中から第2のデータ読出処理を行う。
【0081】
期間計測部22は、データ読出の開始から次のデータ読出の開始までの期間を夫々疑似フレーム期間Bmとして計測する。すなわち、期間計測部22は、データ読出処理の開始のタイミングに同期した期間を疑似フレーム期間Bm(m=1,2,3・・・)として計測する。上記の通り、本実施例では1フレーム周期につき1回又は2回のデータ読出処理が行われるため、真性フレーム期間Aは、1又は2個の疑似フレーム期間Bmを含む。
【0082】
図12及び
図13は、本実施例におけるデータ読出処理及び期間算出処理を模式的に示すタイムチャートである。
図12は、真性フレーム期間Aにおいてデータ読出処理が2回(データ出力処理群が2セット)行われる場合、すなわち真性フレーム期間Aが2つの疑似フレーム期間Bmを含む場合の例を示す図である。これに対し、
図13は、真性フレーム期間Aにおいてデータ読出処理が1回(データ出力処理群が1セット)行われる場合、すなわち真性フレーム期間Aが1つの疑似フレーム期間Bmを含む場合の例を示す図である。
【0083】
図14は、メモリ制御部12が行うメモリ制御処理のルーチンを示すフローチャートである。メモリ制御部12は、まず処理対象の疑似フレーム期間Bmとして先頭の疑似フレーム期間である疑似フレーム期間B1(すなわち、m=1)をセットする(ステップS71)。メモリ制御部12は、CPU11からデータ出力要求が供給されているか否かを判定する(ステップS72)。データ出力要求が供給されていると判定すると、メモリ制御部12の期間計測部22は、疑似フレーム期間計測処理を実行する(ステップS73)。この疑似フレーム期間計測処理については、実施例2において
図9を参照して説明した処理と同様であるため、ここでは説明を省略する。
【0084】
メモリ制御部12は、疑似フレーム期間Bmを2回計測したか否かを判定する(ステップS74)。2回計測していないと判定すると、期間計測部22は、ステップS73に戻り、再び疑似フレーム期間計測処理を実行する。
【0085】
一方、2回計測したと判定すると、期間計測部22は、ステップS73〜S74において計測した2個の疑似フレーム期間Bmの直後のリード期間Cmについて、リード期間計測処理を実行する(ステップS75)。例えば、ステップS73〜74において疑似フレーム期間B1及びB2を計測した場合、その直後のリード期間C3を計測する。なお、リード期間計測処理の詳細は、実施例1において
図5を参照して説明した処理と同様であるため、ここでは説明を省略する。
【0086】
メモリ制御部12は、リード期間計測処理の実行後、データ回復制御処理に移行する(ステップS76)。本実施例におけるデータ回復制御処理は、基本的な処理の流れについては実施例1において
図6のフローチャートを参照して説明したデータ回復制御処理と同様であるが、アイドル期間算出ステップ(ステップS21)の処理動作において、実施例1と異なる。
【0087】
メモリ制御部12は、ステップS73〜S74において計測した2個の疑似フレーム期間の直後の疑似フレーム期間Bmにおいて、データの回復を行うためのデータの回復処理期間Fmを設定する(ステップS20)。例えば、ステップS73〜S74において疑似フレーム期間B1,B2を計測した場合、その直後の疑似フレーム期間B3において、データの回復処理期間F3を設定する。ステップS73〜S74において疑似フレーム期間B4,B5を計測した場合、その直後の疑似フレーム期間B6において、データの回復処理期間F6を設定する。
【0088】
メモリ制御部12の期間算出部23は、ステップS73〜S74において計測した2個の疑似フレーム期間(例えば、B1、B2)のうち、短い方の疑似フレーム期間からステップS75で計測したリード期間(例えば、C3)を減算する。期間算出部23は、かかる減算期間(例えば、B2−C3)を、ステップS73〜74において計測した2個の疑似フレーム期間におけるアイドル期間(例えば、D1,D2)と比較し、3者のうちで最も短い期間をアイドル期間Dmとして算出する(ステップS21)。
【0089】
例えば、
図12のタイムチャートでは、疑似フレーム期間B2の方が疑似フレーム期間B1よりも短い。従って、期間算出部23は、疑似フレーム期間B2からリード期間C3を減算する。期間算出部23は、アイドル期間D1,D2及び(B2−C3)を比較し、3者のうちで最も短い(B2−C3)又はD2をアイドル期間Dmとして算出する。
【0090】
これに対し、
図13のタイムチャートでは、疑似フレーム期間B1と疑似フレーム期間B2とが同じ長さであるため、期間算出部23は、疑似フレーム期間B1からリード期間C3を減算する。期間算出部23は、アイドル期間D1,D2及び(B1−C3)を比較し、3者のうちで最も短い(B1−C3)をアイドル期間Dmとして算出する。
【0091】
再び
図6を参照すると、メモリ制御部12は、設定したデータの回復処理期間Fmがアイドル期間Dmの範囲に収まるか、すなわちアイドル期間Dmにおいてデータの回復を行うことが可能か否かを判定する(ステップS22)。データの回復処理期間Fmがアイドル期間Dmの範囲に収まらない、すなわちアイドル期間Dm内でデータの回復を行うことができないと判定すると、メモリ制御部12は、データ回復制御処理を終了する(ステップS23)。一方、データの回復処理期間Fmがアイドル期間Dmの範囲に収まっている、すなわちアイドル期間Dm内でデータの回復を行うことができると判定すると、当該回復処理期間Fmにおいてデータの回復処理を実行する(ステップS24)。
【0092】
再び
図14を参照すると、メモリ制御部12は、全ての疑似フレーム期間についてデータ回復制御処理が完了したか否かを判定する(ステップS77)。データ回復制御処理が完了したと判定すると、メモリ制御処理を終了する。一方、データ回復制御処理が完了していないと判定すると、メモリ制御部12は、疑似フレーム期間Bmの番号mをインクリメントする(ステップS78)。メモリ制御部12は、ステップS72に戻り、CPU11からデータ出力要求が供給されているか否かを判定する。
【0093】
このように、ステップS77〜S78を経て、ステップS72〜S76の処理を繰り返し実行することにより、3k番目(k:自然数)の疑似フレーム期間Bmにおいて回復処理期間Fmが設定され、回復処理期間Fmがアイドル期間Dmの範囲内に収まっている場合には、データの回復処理が実行される。
【0094】
以上のように、本実施例のメモリ制御部12は、連続した2つの疑似フレーム期間(例えば、B1,B2)及びその直後のリード期間(例えば、C3)を計測する。そして、計測したリード期間を2つの疑似フレーム期間のうち短い方の疑似フレーム期間(例えば、B2)から減算して減算値(例えば、B2−C3)を得る。そして、かかる減算値と2つの疑似フレーム期間における2つのアイドル期間(例えば、D1,D2)とを比較して、最も短い期間を次の疑似フレーム期間におけるアイドル期間(例えば、C3)として算出する。
【0095】
このようなアイドル期間の算出方法によれば、真性フレーム期間内に疑似フレームが1回含まれる場合(
図13)、2回含まれる場合(
図12)のいずれであっても、アイドル期間を算出することができる。そして、アイドル期間内に収まるように回復処理期間を設定することにより、データ読出処理による中断を経ることなく、データの回復処理を行うことができる。従って、データ読出処理を阻害することなく効率のよいデータの回復処理を行うことが可能となる。
【実施例5】
【0096】
実施例5のメモリ制御システム10は、
図15に示すように、CPU11、メモリ制御部12、不揮発性の半導体メモリであるNAND型のフラッシュメモリ13、RAM14及びCPUバス15を含む。
【0097】
本実施例では、CPU11が1フレーム周期毎にメモリ制御部12に供給するデータ出力要求群の回数は不定である。したがって、メモリ制御部12のデータ読出部21は、1フレーム周期につきCPU11から供給されるデータ出力要求群の頻度(セット数)に応じた回数だけ、データ読出処理(データ出力処理群)を実行する。
【0098】
本実施例のメモリ制御部12は、データ読出部21、期間計測部22、期間算出部23、回復処理部24及び比較処理部25を含む。
【0099】
比較処理部25は、連続した2個の疑似フレーム期間(例えば、B1,B2)の長さを加算した加算値と第1の下限値Aminとを比較する第1比較処理を行う。第1の下限値Aminは、真性フレーム期間Aの長さの下限値である。また、比較処理部25は、2個の疑似フレーム期間Bmにおけるアイドル期間(例えば、D1,D2)の長さを、第2の下限値Dminと比較する第2比較処理を行う。第2の下限値Dminは、アイドル期間の長さの下限値である。第1比較処理において加算値が第1の下限値Amin以上であると判定し、且つ第2比較処理においてアイドル期間Dmの長さがいずれも第2の下限値Dmin以上であると判定した場合に、回復処理部24はデータ回復処理を実行する。
【0100】
図16〜18は、本実施例におけるデータ読出処理及び期間算出処理を模式的に示すタイムチャートである。
図16のタイムチャートでは、連続する2個の疑似フレーム期間(B1,B2)の加算値(B1+B2)が第1の下限値Amin以上であり、且つ当該疑似フレーム期間におけるアイドル期間(D1,D2)の長さがいずれも第2の下限値Dmin以上である。従って、メモリ制御部12は、アイドル期間D3を算出し、回復処理期間F3との比較結果に応じてデータ回復処理を実行する。
【0101】
これに対し、
図17のタイムチャートでは、連続する2個の疑似フレーム期間(B1,B2)の加算値(B1+B2)が第1の下限値Amin未満であり、当該疑似フレーム期間におけるアイドル期間(D1,D2)の長さがいずれも第2の下限値Dminよりも短い。従って、メモリ制御部12は、データ回復処理を実行しない。
【0102】
図18のタイムチャートは、真性フレーム期間Aにおいてリード期間及びアイドル期間が1回ずつである場合、すなわち各真性フレーム期間Aが疑似フレーム期間Bmを1つ含む場合の例を示すタイムチャートである。各疑似フレーム期間(B1,B2)は夫々単独で第1の下限値Amin以上であり、アイドル期間(D1,D2)の長さがいずれも第2の下限値Dmin以上であるため、メモリ制御部12は、アイドル期間D3を算出し、回復処理期間F3との比較結果に応じてデータ回復処理を実行する。
【0103】
図19は、メモリ制御部12が行うメモリ制御処理のルーチンを示すフローチャートである。メモリ制御部12は、まず処理対象の疑似フレーム期間Bmとして先頭の疑似フレーム期間である疑似フレーム期間B1(すなわち、m=1)をセットする(ステップS81)。メモリ制御部12は、CPU11からデータ出力要求が供給されているか否かを判定する(ステップS82)。データ出力要求が供給されていると判定すると、メモリ制御部12の期間計測部22は、疑似フレーム期間計測処理を実行する(ステップS83)。この疑似フレーム期間計測処理については、実施例2において
図9を参照して説明した処理と同様であるため、ここでは説明を省略する。
【0104】
メモリ制御部12は、疑似フレーム期間Bmを2回計測したか否かを判定する(ステップS84)。2回計測していないと判定すると、期間計測部22は、ステップS83に戻り、再び疑似フレーム期間計測処理を実行する。
【0105】
一方、2回計測したと判定すると、期間計測部22は、ステップS73〜S74において計測した2個の疑似フレーム期間Bmの加算値を第1の下限値Aminと比較する(ステップS85)。加算値が第1の下限値Amin未満であると判定すると、ステップS89に移行する。
【0106】
一方、加算値が第1の下限値Amin以上であると判定すると、期間計測部22は、ステップS73〜S74において計測した2個の疑似フレーム期間における2つのアイドル期間(D(m−1),D(m−2))を、第2の下限値Dminと比較する(ステップS86)。2つのアイドル期間のうち少なくとも一方が第2の下限値Dmin未満であると判定すると、ステップS89に移行する。
【0107】
一方、2つのアイドル期間がいずれも第2の下限値Dmin以上であると判定すると、期間計測部22は、ステップS73〜S74において計測した2個の疑似フレーム期間の直後のリード期間Cmについて、リード期間計測処理を実行する(ステップS87)。例えば、ステップS83〜84において疑似フレーム期間B1及びB2を計測した場合、その直後のリード期間C3を計測する。なお、リード期間計測処理の詳細は、実施例1において
図5を参照して説明した処理と同様であるため、ここでは説明を省略する。
【0108】
メモリ制御部12は、リード期間計測処理の実行後、データ回復制御処理に移行する(ステップS88)。本実施例におけるデータ回復制御処理は、実施例4のデータ回復制御処理と同様であるため、説明を省略する。
【0109】
メモリ制御部12は、全ての疑似フレーム期間についてデータ回復制御処理が完了したか否かを判定する(ステップS89)。データ回復制御処理が完了したと判定すると、メモリ制御処理を終了する。一方、データ回復制御処理が完了していないと判定すると、メモリ制御部12は、疑似フレーム期間Bmの番号mをインクリメントする(ステップS90)。メモリ制御部12は、ステップS82に戻り、CPU11からデータ出力要求が供給されているか否かを判定する。
【0110】
以上のように、本実施例のメモリ制御部12は、連続した2個の疑似フレーム期間の長さを加算した加算値と第1の下限値Amin(真性フレーム期間の長さの下限値)とを比較する第1比較処理と、2個の疑似フレーム期間におけるアイドル期間の長さを第2の下限値Dmin(アイドル期間の下限値)と比較する第2比較処理とを行う。そして、第1比較処理において加算値が第1の下限値Amin以上であると判定し、且つ第2比較処理においてアイドル期間の長さがいずれも第2の下限値Dmin以上であると判定した場合にのみ、データ回復処理を実行する。
【0111】
一方、第1比較処理において加算値が第1の下限値Amin未満である場合、又は第2比較処理において2つのアイドル期間の少なくとも一方の長さが第2の下限値Dmin未満である場合には、メモリ制御部12は、データ回復処理に必要なアイドル期間が確保できないと判定して、データ回復処理を実行しない。
【0112】
従って、1フレーム周期(真性フレーム期間A)毎のデータ読出処理の回数(すなわち、CPU11から供給されるデータ出力要求群のセット数)が不定である場合にも、データ回復処理が可能か否かを判定し、可能である場合には、アイドル期間内に収まるように回復処理期間を設定して、データ読出処理による中断を経ることなく、データの回復処理を行うことができる。従って、データ読出処理を阻害することなく効率のよいデータの回復処理を行うことが可能となる。
【0113】
なお、本発明は上記実施形態に限定されない。例えば、上記実施例では、本発明のメモリ制御システムを画像処理用メモリに適用した例について説明した。しかし、画像データの読み出しに限られず、メモリからのデータの読み出しに周期性があるものであればよい。
【0114】
また、上記実施例では、NAND型のフラッシュメモリを用いる例について説明した。しかし、NOR型のフラッシュメモリ等、他の半導体メモリを用いても良い。また、本発明は、半導体メモリに限られず、他の不揮発性メモリにも適用することが可能である。
【0115】
また、上記実施例4では、メモリ制御部12が1フレーム周期毎に1回又は2回ずつデータ読出処理を実行する場合、すなわち真性フレーム期間Aが1つ又は2つの疑似フレーム期間を有する場合について説明した。しかし、1フレーム周期毎に3回以上のデータ読出処理を実行し、真性フレーム期間Aが3つ以上の疑似フレーム期間を有していてもよい。
【0116】
また、上記実施例5では、連続する2つの疑似フレーム期間の加算値と真性フレーム期間Aの長さの下限値とを比較して第1比較処理を行う例について説明した。しかし、これに限られず、連続する3つ以上の疑似フレーム期間を真性フレーム期間Aの長さの下限値と比較しても良い。そして、真性フレーム期間Aが3つ以上の疑似フレーム期間を有する場合にもデータ回復処理を実行可能な構成としてもよい。
【0117】
また、上記実施例では、データ読出を実行しないアイドル期間を算出して、当該アイドル期間内にデータの回復処理を実行する例について説明した。しかし、CPU11からのデータ出力要求が想定される場面に実行される、データの回復処理以外の他の処理にも応用することが可能である。