(57)【特許請求の範囲】
【請求項１】
所定容量ごとに区切られた記憶領域であるテーブルが複数属する各論理ページが複数形成された不揮発性メモリと、当該不揮発性メモリ内の前記論理ページに対して当該論理ページ単位でデータの記録再生を行う制御部と、前記不揮発性メモリ内のデータを一時的に記憶する揮発性メモリと、を備え、
前記制御部は、前記論理ページに記憶されているデータの更新時に、当該論理ページに記憶されているデータを前記揮発性メモリ上に読み出して、当該揮発性メモリ上で前記論理ページに属する前記テーブル内のデータを更新すると共に、前記論理ページに属するいずれかの前記テーブルが前記揮発性メモリ上で最初に更新されてから予め設定された時間が経過した後に当該更新されたテーブルが属する前記揮発性メモリ上の前記論理ページを前記不揮発性メモリに書き込む遅延更新部を備えた、
メモリ制御装置。
【請求項２】
請求項１に記載のメモリ制御装置であって、
前記遅延更新部は、前記揮発性メモリ上で前記論理ページに属するいずれかの前記テーブルが最初に更新されてから予め設定された時間内は、当該論理ページに属する前記テーブル内のデータの更新を前記揮発性メモリ上で行う、
メモリ制御装置。
【請求項３】
請求項１又は２に記載のメモリ制御装置であって、
前記遅延更新部は、前記揮発性メモリ上で前記論理ページに属するいずれかの前記テーブルが最初に更新されたときに当該更新されたテーブルが属する前記論理ページに対応して設定されたタイマのカウントを開始し、当該タイマのカウントが予め設定された値となったときに前記揮発性メモリ上の前記論理ページを前記不揮発性メモリに書き込む、
メモリ制御装置。
【請求項４】
請求項３に記載のメモリ制御装置であって、
前記遅延更新部は、前記揮発性メモリ上で前記論理ページに属するいずれかの前記テーブルが最初に更新されたときに当該更新されたテーブルが属する前記論理ページに対応して設けられたフラグを設定すると共に当該前記論理ページに対応して設定されたタイマのカウントを開始し、前記揮発性メモリ上の前記論理ページを前記不揮発性メモリに書き込んだ後に前記フラグの設定を解除する、
メモリ制御装置。
【請求項５】
請求項１乃至４のいずれか一項に記載のメモリ制御装置であって、
前記制御部は、前記論理ページに記憶されているデータの更新時に、当該論理ページに記憶されているデータを前記揮発性メモリ上に読み出して、当該揮発性メモリ上で前記論理ページに属する前記テーブル内のデータを更新したときに、当該更新されたテーブルが属する前記揮発性メモリ上の前記論理ページを前記不揮発メモリに書き込む即時更新部を備えると共に、
前記不揮発性メモリに対するデータの更新タイミングを指定する更新モードを記憶する更新モード記憶手段を備え、
前記遅延更新部と前記即時更新部とは、前記更新モード記憶手段に記憶され指定された更新モードに応じていずれか一方が作動する、
メモリ制御装置。
【請求項６】
請求項５に記載のメモリ制御装置であって、
前記更新モード記憶手段は、前記論理ページ毎にデータの更新タイミングを指定する前記更新モードを記憶し、
前記遅延更新部と前記即時更新部とは、前記更新モード記憶手段に記憶され前記論理ページ毎に指定された更新モードに応じて、当該論理ページ毎に対するデータの記憶時にいずれか一方が作動する、
メモリ制御装置。
【請求項７】
所定容量ごとに区切られた記憶領域であるテーブルが複数属する各論理ページが複数形成された不揮発性メモリと、当該不揮発性メモリ内の前記論理ページに対して当該論理ページ単位でデータの記録再生を行う制御部と、前記不揮発性メモリ内のデータを一時的に記憶する揮発性メモリと、を備えた情報処理装置の前記制御部に、
前記論理ページに記憶されているデータの更新時に、当該論理ページに記憶されているデータを前記揮発性メモリ上に読み出して、当該揮発性メモリ上で前記論理ページに属する前記テーブル内のデータを更新すると共に、前記論理ページに属するいずれかの前記テーブルが前記揮発性メモリ上で最初に更新されてから予め設定された時間が経過した後に当該更新されたテーブルが属する前記揮発性メモリ上の前記論理ページを前記不揮発性メモリに書き込む遅延更新部、
を実現させるためのプログラム。
【請求項８】
請求項７に記載のプログラムであって、
前記遅延更新部は、前記揮発性メモリ上で前記論理ページに属するいずれかの前記テーブルが最初に更新されてから予め設定された時間内は、当該論理ページに属する前記テーブル内のデータの更新を前記揮発性メモリ上で行う、
プログラム。
【請求項９】
所定容量ごとに区切られた記憶領域であるテーブルが複数属する各論理ページが複数形成された不揮発性メモリと、当該不揮発性メモリ内の前記論理ページに対して当該論理ページ単位でデータの記録再生を行う制御部と、前記不揮発性メモリ内のデータを一時的に記憶する揮発性メモリと、を備えた情報処理装置にて、
前記制御部が、前記論理ページに記憶されているデータの更新時に、当該論理ページに記憶されているデータを前記揮発性メモリ上に読み出して、当該揮発性メモリ上で前記論理ページに属する前記テーブル内のデータを更新すると共に、前記論理ページに属するいずれかの前記テーブルが前記揮発性メモリ上で最初に更新されてから予め設定された時間が経過した後に当該更新されたテーブルが属する前記揮発性メモリ上の前記論理ページを前記不揮発性メモリに書き込む、
メモリ制御方法。
【請求項１０】
請求項１に記載のメモリ制御方法であって、
前記論理ページに記憶されているデータの更新時に、前記揮発性メモリ上で前記論理ページに属するいずれかの前記テーブルが最初に更新されてから予め設定された時間内は、当該論理ページに属する前記テーブル内のデータの更新を前記揮発性メモリ上で行う、
メモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ制御装置にかかり、特に、所定の記憶容量単位でメモリに対するデータの書き込みを実行するメモリ制御装置に関する。
【背景技術】
【０００２】
情報処理装置に用いる記憶装置として、ランダムアクセスが必要なプログラムやシステムの設定データの格納にNOR型フラッシュメモリが採用されることがあるが、近年では、プログラム容量の肥大化に伴い、大容量でビット単価が安いNAND型フラッシュメモリが使用されるケースが増えてきている。ところが、NAND型フラッシュメモリは、ページと呼ばれる複数ビット単位（ページ単位）での書込みしかできないことや、書換え（消去）回数に制限がある。このため、書き換え制限に達したブロックはバッドブロックとなって使えなくなり、使用可能なブロックが減ってしまう、という問題が生じる。
【０００３】
ここで、図１に示す例では、システム設定等の不揮発データを扱う際に、RAM１０５上で、T , T+t0 , T+T1と時間が経過する毎に、論理ページ（Page A）内に属する各データテーブル内のデータが更新される場合を示している。かかる場合には、Page A内の各テーブルが更新される毎に（符号１５１，１５２，１５３参照）、矢印に示すように、NAND型フラッシュメモリ１０４への書き換えが実行される（符号１４１，１４２，１４３参照）。すると、NAND型フラッシュメモリ１０４に対して書き換え回数が増加し、チップ寿命が短くなる、という問題が生じる。
【０００４】
一方で、メモリへの書き込み回数を削減する技術が、特許文献１に開示されている。この特許文献１に開示の技術では、まず、不揮発メモリの所定のブロックに書き込むべきデータを、当該ブロックを示す識別情報と共に揮発性メモリに書き込む。そして、揮発性メモリに書き込まれた上記識別情報を用いて、当該揮発性メモリに書き込まれたデータの中から同一ブロックに書き込まれたデータを特定し、当該特定されたデータを書き込むべきブロックに一括して書き込む、という処理を行っている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−３４４３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した特許文献１に開示の技術では、特定のブロックに書き込まれたデータを特定し、特定されたデータを一括して書き込んでいるため、データを特定する処理に時間がかかり、記憶動作が遅延する、という問題が生じる。また、不揮発メモリへの書き込みタイミングとして、書込指示イベントが発生した場合、例えば、節電モードを開始する指示や上位装置の電源を遮断するときを挙げているが、書込指示イベンの発生間隔が開いてしまうと揮発性メモリの容量が一杯となり、記憶動作に遅延が発生する、という問題が生じる。
【０００７】
このため、本発明の目的は、上述した課題である「メモリ寿命の短縮」と「記憶動作の遅延」を解決することにある。
【課題を解決するための手段】
【０００８】
かかる目的を達成するため本発明の一形態であるメモリ制御装置は、
所定容量ごとに区切られた記憶領域であるテーブルが複数属する各論理ページが複数形成された不揮発性メモリと、当該不揮発性メモリ内の上記論理ページに対して当該論理ページ単位でデータの記録再生を行う制御部と、上記不揮発性メモリ内のデータを一時的に記憶する揮発性メモリと、を備える。
そして、上記制御部は、上記論理ページに記憶されているデータの更新時に、当該論理ページに記憶されているデータを上記揮発性メモリ上に読み出して、当該揮発性メモリ上で上記論理ページに属する上記テーブル内のデータを更新すると共に、上記論理ページに属するいずれかの上記テーブルが最初に更新されてから予め設定された時間が経過した後に当該更新されたテーブルが属する上記揮発性メモリ上の上記論理ページを上記不揮発性メモリに書き込む遅延更新部を備えた、
という構成をとる。
【０００９】
また、本発明の他の形態であるプログラムは、
所定容量ごとに区切られた記憶領域であるテーブルが複数属する各論理ページが複数形成された不揮発性メモリと、当該不揮発性メモリ内の上記論理ページに対して当該論理ページ単位でデータの記録再生を行う制御部と、上記不揮発性メモリ内のデータを一時的に記憶する揮発性メモリと、を備えた情報処理装置の上記制御部に、
上記論理ページに記憶されているデータの更新時に、当該論理ページに記憶されているデータを上記揮発性メモリ上に読み出して、当該揮発性メモリ上で上記論理ページに属する上記テーブル内のデータを更新すると共に、上記論理ページに属するいずれかの上記テーブルが最初に更新されてから予め設定された時間が経過した後に当該更新されたテーブルが属する上記揮発性メモリ上の上記論理ページを上記不揮発性メモリに書き込む遅延更新部、
を実現させるためのプログラムである。
【００１０】
また、本発明の他の形態であるメモリ制御方法は、
所定容量ごとに区切られた記憶領域であるテーブルが複数属する各論理ページが複数形成された不揮発性メモリと、当該不揮発性メモリ内の上記論理ページに対して当該論理ページ単位でデータの記録再生を行う制御部と、上記不揮発性メモリ内のデータを一時的に記憶する揮発性メモリと、を備えた情報処理装置にて、
上記制御部が、上記論理ページに記憶されているデータの更新時に、当該論理ページに記憶されているデータを上記揮発性メモリ上に読み出して、当該揮発性メモリ上で上記論理ページに属する上記テーブル内のデータを更新すると共に、上記論理ページに属するいずれかの上記テーブルが最初に更新されてから予め設定された時間が経過した後に当該更新されたテーブルが属する上記揮発性メモリ上の上記論理ページを上記不揮発性メモリに書き込む、
という構成をとる。
【発明の効果】
【００１１】
本発明は、以上のように構成されることにより、記憶動作の遅延を抑制しつつ、メモリ寿命の長期化を図ることができる。
【図面の簡単な説明】
【００１２】
【図１】本発明に関連するデータ更新動作を示す図である。
【図２】本発明におけるデータ更新動作を示す図である。
【図３】実施形態１におけるメモリ制御装置の構成を示す図である。
【図４】図３に開示したメモリ制御装置の動作を示すフローチャートである。
【図５】実施形態２におけるメモリ制御装置の構成を示す図である。
【図６】図５に開示したメモリ制御装置の動作を示すフローチャートである。
【図７】図５に開示したメモリ制御装置の動作を示すフローチャートである。
【図８】実施形態２におけるメモリ制御装置の構成を示す図である。
【発明を実施するための形態】
【００１３】
＜実施形態１＞
本発明の第１の実施形態を、図２乃至図４を参照して説明する。図２は、本発明におけるデータ更新動作を示す図である。図３は、本実施形態におけるメモリ制御装置の構成を示す図である。図４は、図３に開示したメモリ制御装置の動作を示すフローチャートである。
【００１４】
［構成］
図３は、本実施形態における情報処理装置の一部を構成するメモリ制御装置の構成を示すブロック図である。この図に示すように、メモリ制御装置は、装置全体を制御する演算装置であるＣＰＵ（Central Processing Unit）１と、記憶装置であるＮＡＮＤフラッシュメモリ４及びＲＡＭ（Random Access Memory）５と、上記NANDフラッシュメモリ４に対して上記CPU１からの指令に応じてデータの書き込み、読み出し、消去を行うメモリ制御部３と、を備えている。
【００１５】
具体的に、上記ＮＡＮＤフラッシュメモリ４は、プログラムデータやユーザデータ、プログラムコード以外の設定値などの不揮発データが格納される不揮発性メモリである。そして、NANDフラッシュメモリ４は、所定容量毎（任意の数byte毎）の記憶領域であるデータテーブルに区切られて管理されており、当該データテーブルが複数属する各論理ページが複数形成されている。例えば、図２に示すように、NANDフラッシュメモリ４内には、複数の記憶領域であるテーブル「Table 0」〜「Table Y」が属する論理ページ「Page A」が形成されており、図示しないが、このような論理ページが複数形成されている。そして、NANDフラッシュメモリ４へのデータの書込みは、論理ページ単位で行われる。
【００１６】
また、RAM５は、所定のデータ処理つまり作業を行うための一時メモリであり、揮発性メモリである。本実施形態では、後述するように、上記NANDフラッシュメモリ４に記録される不揮発データがRAM５上に展開され、かかるRAM５上にて一時的にデータ更新などが実行される。そして、RAM５上で不揮発データが更新された後に、当該更新された不揮発データがNANDフラッシュメモリ４に反映される。
【００１７】
また、RAM５は、NANDフラッシュメモリ４の状態管理を行うためのページ更新管理テーブル、データ格納エリアテーブルを持つ。上記ページ更新管理テーブル（図示せず）は、RAM５上で管理している論理ページ内のいずれかのデータテーブルが更新された場合に設定（セット）されるフラグを有する。また、データ格納エリアテーブル（図示せず）は、最新の各論理ページが、どのブロックのどの物理ページに保存されているかを示す情報を格納する。
【００１８】
なお、上記ページ更新管理テーブルと上記データ格納エリアテーブルは、通常はNANDフラッシュメモリ４に記録されているが、メモリ制御装置が起動するなどNANDフラッシュメモリ４に格納されたデータに対する書き込みなどの処理が実行されるときに、自動的にRAM５に読み込まれる。そして、RAM５上に展開されたページ更新管理テーブルやデータ格納エリアテーブルは、NANDフラッシュメモリ４への書き込みが行われる度に更新される。
【００１９】
また、上記CPU１は、予めNANDフラッシュメモリ４などに記憶されたプログラムが組み込まれることで構築された遅延更新部２を備えている。遅延更新部２は、まず、NANDフラッシュメモリ４内の論理ページに記憶されているデータの更新時に、当該論理ページに記憶されているデータをRAM５上に読み出す。そして、RAM５上で論理ページに属するデータテーブル内のデータを更新する。このとき、特に、論理ページ内のいずれかのデータテーブルが最初に更新されてから予め設定された時間（例えば、Z秒）が経過した後に、更新されたデータテーブルが属するRAM５の論理ページを、一括してNANDフラッシュメモリ４に書き込む。上記遅延更新部２の具体的な機能については、以下の動作説明にて詳述する。
【００２０】
なお、上述したように、RAM５上から論理ページをNANDフラッシュメモリ４に書き込みタイミングを決定する「予め設定された時間（Z秒）」は、あらかじめ所定の値に設定されていてもよく、後にメモリ制御装置が組み込まれた情報処理装置を操作する操作者によって変更されて任意の値に設定することも可能である。
【００２１】
［動作］
次に、上記メモリ制御装置の動作を、図４のフローチャート及び図２を参照して説明する。なお、ここでは、NANDフラッシュメモリ４内に格納される不揮発データは、各論理ページにおいてX byte毎のテーブルに区切られて管理される。そして、本実施形態では、書き込みタイマの設定値がZ秒（任意）と設定されており、カウンタ動作中のZ秒間に、作業メモリであるRAM５上の論理Page Aに属する各テーブルTable0、TableY 、Table1の順に、データが更新されることとする。
【００２２】
まず、ＣＰＵ１は、NANDフラッシュメモリ４から論理ページ「Page A」をRAM５上に読み出す（ステップＳ１）。このとき、NANDフラッシュメモリ４から、論理ページ「Page A」に関するページ更新管理テーブルとデータ格納エリアテーブルを、RAM５上に読み出す。
【００２３】
そして、CPU１は、論理ページ「Page A」のデータが更新されると、まず、RAM５上で当該「Page A」を更新する。つまり、RAM５上に展開された論理ページ「Page A」に属するデータテーブル「Table 0」を、当該RAM５上で更新する（ステップＳ２、図２の符号５１参照）。このとき、RAM５上で更新されたデータテーブル「Table 0」が属する「Page A」のページ更新管理データテーブルの更新フラグを「ON」にセットし（ステップＳ３）、「Page A」が更新されている旨を記憶する。
【００２４】
また、同時に、論理ページ「Page A」に対応して設定されたタイマが動作していない場合、つまり、論理ページ「Page A」に属するデータテーブルが初めて更新された場合には、当該論理ページ「Page A」に対応して設定されたタイマによるカウントつまり時間計測を開始する（ステップＳ４）。なお、タイマは、論理ページ毎に設定され、各論理ページに属するデータテーブルがRAM５上で初めて更新された場合に、カウント（時間計測）を開始する。
【００２５】
続いて、上述したように論理ページ「Page A」に対応するタイマが動作中に、当該論理ページ「Page A」に属するデータテーブル「Table Y」、「Table 1」が更新されたとする（ステップＳ５でＹｅｓ）。そして、論理ページ「Page A」に対応して設定されたタイマが作動中である場合には、RAM５上で各データテーブル「Table Y」、「Table 1」を更新する（ステップＳ６）。つまり、RAM５上で論理ページ「Page A」内で最初にデータテーブル「Table 0」が更新されてから（図２の符号５１参照）、予め設定された時間であるZ秒が経過するまでに他のデータテーブルが更新されると、引き続きRAM５上でデータテーブル「Table Y」、「Table 1」の更新が行われる（図２の符号５２，５３参照）。このとき、データテーブルの更新があった論理ページにおいて、すでにタイマによるカウントが開始されているか否かを判断は、当該論理ページに対応するタイマの動作を調べて判断しても良く、あるいは、当該論理ページに対応する更新フラグが設定されていることを確認して判断してもよい。
【００２６】
その後、タイマにてZ秒経過すると（ステップＳ７でＹｅｓ）、RAM５上の更新データをNANDフラッシュメモリ４へ反映させるページデータ書込み処理を行う（ステップＳ８）。このとき、ページデータ書込み処理は、タイマがZ秒経過した論理ページの更新フラグを確認し、更新ありの場合に、RAM５上の論理ページ「Page A」を、当該論理ページ「Page A」に属しているすべてのデータテーブルを一括して、NANDフラッシュメモリ４内の新しい物理ページに書込む。そして、古いデータの書かれた物理ページを無効とすると共に、新しい物理ページを有効となるように、データ格納エリアテーブルを更新する。
【００２７】
今回の実施例では論理Page Aに更新があるので、NANDフラッシュメモリ４の未使用の物理ページに新しいPage Aを書込み、古いPage Aが書かれた物理ページを無効、新しく書込まれた物理ページを有効となるようにデータ格納エリアテーブルを更新する。そして、NANDフラッシュメモリ４への書き込みが完了したらページ更新管理データテーブルの更新フラグをOFFにセット（解除）する（ステップＳ９）。
【００２８】
以上のように、本発明におけるメモリ制御装置によると、短時間で連続して更新されるような関連性のある複数のデータテーブルの場合には同一論理ページ内に配置される可能性が高く、一度のNANDフラッシュメモリへの書込みで複数テーブルを更新できる。従って、図１に開示したテーブル更新ごとに論理ページを書き込む方法と比較して、NANDフラッシュメモリへの書込み回数を削減でき、メモリ寿命の短縮を抑制して寿命の長期化を図ることができる。また、遅延更新の遅延時間を任意に設定する構成とすることで、システム状態や扱うデータに応じて遅延時間を使い分けることができ、書込み回数の削減を最適化することが可能である。
【００２９】
＜実施形態２＞
本発明の第２の実施形態を、図５乃至図７を参照して説明する。図５は、本実施形態におけるメモリ制御装置の構成を示す図である。図６乃至図７は、メモリ制御装置の動作を示すフローチャートである。
【００３０】
［構成］
本実施形態におけるメモリ制御装置は、上述した実施形態１のものとほぼ同様の構成をとっている。これに加え、本実施形態では、CPU１にプログラムが組み込まれることにより構築された、即時更新部６を備えている。この即時更新部６は、RAM５上に展開されたNANDフラッシュメモリ４の論理データが、当該RAM５上で更新されると、即時にNANDフラッシュメモリ４に反映するよう作動する。
【００３１】
そして、上記即時更新部６は、あらかじめメモリ制御装置に対して設定されたデータの更新タイミングを指定する更新モードデータの内容が、「即時更新モード」である場合に作動する。また、更新モードデータの内容が「遅延更新モード」である場合には、上述した遅延更新部２が作動する。ここで、データの更新タイミングを指定する更新モードデータは、更新モード記憶手段として機能するNANDフラッシュメモリ４に記憶されており、論理ページと共にRAM５に読み出される。すると、CPU１は、読み出した更新モードデータに応じて、RAM５に読み出した論理ページに対するNANDフラッシュメモリ４への書き込みタイミングを指定する更新モードを決定する。つまり、更新モードデータが「遅延更新モード」である場合には、遅延更新部２が作動して、RAM５上で一定時間経過してから論理ページをNANDフラッシュメモリ４に記憶し、あるいは、更新モードデータが「即時更新モード」である場合には、即時更新部６が作動してRAM５上で更新されると即時にNANDフラッシュメモリ４に反映する。
【００３２】
なお、更新モードデータによる更新モードの設定（遅延更新部２が作動するか、即時更新部６が作動するか）は、NANDフラッシュメモリ４に記憶されているすべてのデータに対して有効であってもよく、あるいは、各論理ページ毎に設定されていて当該各論理ページ毎に有効であってもよい。例えば、論理ページ「Page A」に対しては遅延更新部２が作動し、その他の論理ページに対しては、即時更新部６が作動する、といった設定も可能である。また、上記更新モードデータは、操作者により変更設定することが可能である。
【００３３】
［動作］
次に、上述したメモリ制御装置の動作を、図６乃至図７を参照して説明する。まず、上述同様に、NANDフラッシュメモリ４から論理ページ「Page A」をRAM５上に読み出す（ステップＳ１１）。このとき、NANDフラッシュメモリ４から、論理ページ「Page A」に関するページ更新管理テーブルとデータ格納エリアテーブルや、更新モードデータがRAM５上に読み出される。
【００３４】
そして、論理ページ「Page A」のデータが更新されると、RAM５上で当該「Page A」を更新する。例えば、図２の符号５１に示すように、RAM５上に展開された論理ページ「Page A」に属するデータテーブル「Table 0」を、当該RAM５上で更新する（ステップＳ１２）。
【００３５】
このとき、更新モードデータの設定を調べて、更新されたデータテーブルが属する論理ページが即時更新を行うよう設定されている場合、あるいは、システム全体において更新設定自体が即時更新を行うよう設定されている場合には（ステップＳ１３でＹｅｓ）、ページ更新管理データテーブルの更新フラグが「ON」にセットされていれば（ステップＳ１４でＹｅｓ）、「OFF」にセットする（ステップＳ１５）。なお、既に遅延更新中であれば、遅延更新が終了するまで待つ（ステップＳ１６でＹｅｓ）。
【００３６】
そして、遅延更新中でなければ、あるいは、遅延更新が終了したら（ステップＳ１６でＮｏ）、即時更新中フラグを「ON」にセットする（ステップＳ１７）。その後、RAM５上で更新したデータテーブルが属する論理ページ「Page A」を、当該RAM５上からNANDフラッシュメモリ５へ書込む処理を行い（ステップＳ１８）、即時更新中フラグを「OFF」にする（ステップＳ１９）。このように、即時更新の場合には、RAM５上で論理データが更新されると、当該論理データをすぐにNANDフラッシュメモリ５に反映するよう作動する。
【００３７】
一方、更新モードデータが、更新されたデータテーブルが属する論理ページが遅延更新を行うよう設定されている場合、あるいは、システムの更新設定自体が遅延更新を行うよう設定されている場合には（ステップＳ１３でＹｅｓ）、まず、ページ更新管理データテーブルの更新フラグを「ON」にセットする（ステップＳ２０）。そして、その後は、上述した実施形態１の場合の動作とほぼ同一である。
【００３８】
具体的には、RAM５上で更新されたデータテーブル「Table 0」が属する「Page A」のページ更新管理データテーブルの更新フラグを「ON」にセットし（ステップＳ２０）、「Page A」が更新された旨を記憶する。同時に、論理ページ「Page A」に対応して設定されたタイマが動作していない場合、つまり、論理ページ「Page A」に属するデータテーブルのいずれかが初めて更新された場合には、当該論理ページ「Page A」に対応して設定されたタイマによるカウントつまり時間計測を開始する（ステップＳ２１）。
【００３９】
このとき、即時更新中であれば即時更新が終了するまで待ち（ステップＳ２２でＹｅｓ）、即時更新中でなく、あるいは、即時更新が終了したら（ステップＳ２２でＮｏ）、遅延更新中フラグを「ON」にセットする（ステップＳ２３）。
【００４０】
そして、上述したように論理ページ「Page A」に対応するタイマが動作中であり、遅延更新中フラグが「ON」である場合に、当該論理ページ「Page A」に属するデータテーブル「Table Y」、「Table 1」が更新されたとする（ステップＳ２４でＹｅｓ）。すると、論理ページ「Page A」に対応して設定されたタイマが作動中である場合には、RAM５上で各データテーブル「Table Y」、「Table 1」を更新する（ステップＳ２５）。つまり、RAM５上で論理ページ「Page A」内で最初にデータテーブル「Table 0」が更新されてから（図２の符号５１参照）、予め設定された時間であるZ秒が経過するまでに他のデータテーブルが更新されると、引き続きRAM５上でデータテーブル「Table Y」、「Table 1」の更新が行われる（図２の符号５２，５３参照）。
【００４１】
その後、タイマにてZ秒経過すると（ステップＳ２６でＹｅｓ）、RAM５上の更新データをNANDフラッシュメモリ４へ反映させるページデータ書込み処理を行う（ステップＳ２７）。このとき、ページデータ書込み処理は、タイマがZ秒経過した論理ページの更新フラグを確認し、更新ありの場合に、RAM５上の論理ページ「Page A」を、NANDフラッシュメモリ４内の新しい物理ページに書込む。そして、古いデータの書かれた物理ページを無効とすると共に、新しい物理ページを有効となるように、データ格納エリアテーブルを更新する。そして、NANDフラッシュメモリ４への書き込みが完了したらページ更新管理データテーブルの更新フラグを「OFF」にセットし（ステップＳ２８）、遅延更新中フラグも「OFF」にセットする（ステップＳ２９）。
【００４２】
以上のように、本実施形態におけるメモリ制御装置によると、即時更新モードと遅延更新モードとを使い分けることができ、システム状態や扱うデータに応じてメモリに対する書込み回数の削減を最適化することができる。その結果、メモリ寿命の長期化を図ることができる。また、上述したように、即時更新中フラグ、遅延更新中フラグを設けることで、即時更新と遅延更新の処理の競合を避けることができる。
【００４３】
＜実施形態３＞
次に、本発明の第３の実施形態を、図８を参照して説明する。図８は、本実施形態におけるメモリ制御装置の構成を示す機能ブロック図である。なお、本実施形態では、メモリ制御装置の構成の概略を説明する。
【００４４】
図８に示すように、本実施形態におけるメモリ制御装置は、
所定容量ごとに区切られた記憶領域であるテーブルが複数属する各論理ページが複数形成された不揮発性メモリ１３と、当該不揮発性メモリ内の上記論理ページに対して当該論理ページ単位でデータの記録再生を行う制御部１１と、上記不揮発性メモリ内のデータを一時的に記憶する揮発性メモリ１４と、を備えている。
そして、上記制御部１１は、上記論理ページに記憶されているデータの更新時に、当該論理ページに記憶されているデータを上記揮発性メモリ上に読み出して、当該揮発性メモリ上で上記論理ページに属する上記テーブル内のデータを更新すると共に、上記論理ページに属するいずれかの上記テーブルが最初に更新されてから予め設定された時間が経過した後に当該更新されたテーブルが属する上記揮発性メモリ上の上記論理ページを上記不揮発性メモリに書き込む遅延更新部１２を備えた、
という構成をとっている。
【００４５】
また、上記メモリ制御装置では、
上記遅延更新部は、上記揮発性メモリ上で上記論理ページに属するいずれかの上記テーブルが最初に更新されてから予め設定された時間内は、当該論理ページに属する上記テーブル内のデータの更新を上記揮発性メモリ上で行う、
という構成をとる。
【００４６】
また、上記メモリ制御装置では、
上記遅延更新部は、上記揮発性メモリ上で上記論理ページに属するいずれかの上記テーブルが最初に更新されたときに当該更新されたテーブルが属する上記論理ページに対応して設定されたタイマのカウントを開始し、当該タイマのカウントが予め設定された値となったときに上記揮発性メモリ上の上記論理ページを上記不揮発性メモリに書き込む、
という構成をとる。
【００４７】
また、上記メモリ制御装置では、
上記遅延更新部は、上記揮発性メモリ上で上記論理ページに属するいずれかの上記テーブルが最初に更新されたときに当該更新されたテーブルが属する上記論理ページに対応して設けられたフラグを設定すると共に当該上記論理ページに対応して設定されたタイマのカウントを開始し、上記揮発性メモリ上の上記論理ページを上記不揮発性メモリに書き込んだ後に上記フラグの設定を解除する、
という構成をとる。
【００４８】
また、上記メモリ制御装置では、
上記制御部は、上記論理ページに記憶されているデータの更新時に、当該論理ページに記憶されているデータを上記揮発性メモリ上に読み出して、当該揮発性メモリ上で上記論理ページに属する上記テーブル内のデータを更新したときに、当該更新されたテーブルが属する上記揮発性メモリ上の上記論理ページを上記不揮発メモリに書き込む即時更新部を備えると共に、
上記不揮発性メモリに対するデータの更新タイミングを指定する更新モードを記憶する更新モード記憶手段を備え、
上記遅延更新部と上記即時更新部とは、上記更新モード記憶手段に記憶され指定された更新モードに応じていずれか一方が作動する、
という構成をとる。
【００４９】
また、上記メモリ制御装置では、
上記更新モード記憶手段は、上記論理ページ毎にデータの更新タイミングを指定する上記更新モードを記憶し、
上記遅延更新部と上記即時更新部とは、上記更新モード記憶手段に記憶され上記論理ページ毎に指定された更新モードに応じて、当該論理ページ毎に対するデータの記憶時にいずれか一方が作動する、
という構成をとる。
【００５０】
また、上述したメモリ制御装置は、情報処理装置の制御部に、プログラムが組み込まれることで実現できる。
具体的に、本発明の他の形態であるプログラムは、
所定容量ごとに区切られた記憶領域であるテーブルが複数属する各論理ページが複数形成された不揮発性メモリと、当該不揮発性メモリ内の上記論理ページに対して当該論理ページ単位でデータの記録再生を行う制御部と、上記不揮発性メモリ内のデータを一時的に記憶する揮発性メモリと、を備えた情報処理装置の上記制御部に、
上記論理ページに記憶されているデータの更新時に、当該論理ページに記憶されているデータを上記揮発性メモリ上に読み出して、当該揮発性メモリ上で上記論理ページに属する上記テーブル内のデータを更新すると共に、上記論理ページに属するいずれかの上記テーブルが最初に更新されてから予め設定された時間が経過した後に当該更新されたテーブルが属する上記揮発性メモリ上の上記論理ページを上記不揮発性メモリに書き込む遅延更新部、
を実現させるためのプログラムである。
【００５１】
そして、上記プログラムでは、
上記遅延更新部は、上記揮発性メモリ上で上記論理ページに属するいずれかの上記テーブルが最初に更新されてから予め設定された時間内は、当該論理ページに属する上記テーブル内のデータの更新を上記揮発性メモリ上で行う、
という構成をとる。
【００５２】
また、上述したメモリ制御装置が作動することにより実行される、本発明の他の形態であるメモリ制御方法は、
所定容量ごとに区切られた記憶領域であるテーブルが複数属する各論理ページが複数形成された不揮発性メモリと、当該不揮発性メモリ内の上記論理ページに対して当該論理ページ単位でデータの記録再生を行う制御部と、上記不揮発性メモリ内のデータを一時的に記憶する揮発性メモリと、を備えた情報処理装置にて、
上記制御部が、上記論理ページに記憶されているデータの更新時に、当該論理ページに記憶されているデータを上記揮発性メモリ上に読み出して、当該揮発性メモリ上で上記論理ページに属する上記テーブル内のデータを更新すると共に、上記論理ページに属するいずれかの上記テーブルが最初に更新されてから予め設定された時間が経過した後に当該更新されたテーブルが属する上記揮発性メモリ上の上記論理ページを上記不揮発性メモリに書き込む、
という構成をとる。
【００５３】
また、上記メモリ制御方法では、
上記論理ページに記憶されているデータの更新時に、上記揮発性メモリ上で上記論理ページに属するいずれかの上記テーブルが最初に更新されてから予め設定された時間内は、当該論理ページに属する上記テーブル内のデータの更新を上記揮発性メモリ上で行う、
という構成をとる。
【００５４】
上述した構成を有する、プログラム、又は、メモリ制御方法、の発明であっても、上記メモリ制御装置と同様の作用を有するために、上述した本発明の目的を達成することができる。
【産業上の利用可能性】
【００５５】
本発明は、情報処理装置に装備されるNANDフラッシュメモリに対する書き込み制御を行うメモリ制御装置として利用することができ、産業上の利用可能性を有する。
【符号の説明】
【００５６】
１      ＣＰＵ
２      遅延更新部
３      メモリ制御部
４      ＮＡＮＤフラッシュメモリ
５      ＲＡＭ
６      即時更新部
１１    制御部
１２    遅延更新部
１３    不揮発性メモリ
１４    揮発性メモリ
【図１】
0005521477.tif 000002
【図２】
0005521477.tif 000003
【図３】
0005521477.tif 000004
【図４】
0005521477.tif 000005
【図５】
0005521477.tif 000006
【図６】
0005521477.tif 000007
【図７】
0005521477.tif 000008
【図８】
0005521477.tif 000009