(57)【特許請求の範囲】
【請求項１】
第１の記憶装置へのアクセス履歴を記憶するアクセス履歴記憶部と、
前記第１の記憶装置にアクセスが行なわれるたびに前記アクセス履歴記憶部にアクセス履歴を記憶し、前記アクセス履歴記憶部に記憶された前記アクセス履歴に基づいて、前記第１の記憶装置のデータのうち、前記第１の記憶装置への書き込みが１回のみであり、かつ前記第１の記憶装置への前記１回の書き込みが行なわれてから、基準時間が経過したデータのみを第２の記憶装置に記憶する制御部と、
前記第１の記憶装置への書き込みが所定回数行なわれるのに要する時間を測定し、測定した当該時間を前記基準時間として決定する抽出部と、
をそなえることを特徴とするメモリ制御装置。
【請求項２】
前記制御部は、前記第１の記憶装置のデータのバックアップ指示が行なわれると、前記第１の記憶装置の前記データのうち、前記第２の記憶装置に記憶したデータ以外の全データを、前記第２の記憶装置に記憶することを特徴とする請求項１に記載のメモリ制御装置。
【請求項３】
第１の記憶装置と、
第２の記憶装置と、
前記第１の記憶装置へのアクセス履歴を記憶するアクセス履歴記憶部と、
前記第１の記憶装置にアクセスが行なわれるたびに前記アクセス履歴記憶部にアクセス履歴を記憶し、前記アクセス履歴記憶部に記憶された前記アクセス履歴に基づいて、前記
第１の記憶装置のデータのうち、前記第１の記憶装置への書き込みが１回のみであり、かつ前記第１の記憶装置への前記１回の書き込みが行なわれてから、基準時間が経過したデータのみを前記第２の記憶装置に記憶する制御部と、
前記第１の記憶装置への書き込みが所定回数行なわれるのに要する時間を測定し、測定した当該時間を前記基準時間として決定する抽出部と、
をそなえることを特徴とする情報処理装置。
【請求項４】
第１の記憶装置にアクセスが行なわれるたびに、当該アクセスへのアクセス履歴をアクセス履歴記憶部に記録し、
前記アクセス履歴記憶部に記憶された前記アクセス履歴に基づいて、前記第１の記憶装置のデータのうち、前記第１の記憶装置への書き込みが１回のみであり、かつ前記第１の記憶装置への前記１回の書き込みが行なわれてから、基準時間が経過したデータのみを第２の記憶装置に記憶し、
前記第１の記憶装置への書き込みが所定回数行なわれるのに要する時間を測定し、測定した当該時間を前記基準時間として決定する
ことを特徴とするメモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ制御装置、情報処理装置、及びメモリ制御方法に関する。
【背景技術】
【０００２】
情報処理装置においては、一時記憶装置としてDual Inline Memory Module（ＤＩＭＭ）が使用されている。そして、このＤＩＭＭのデータを、Solid State Drive（ＳＳＤ）等の他の記憶装置にバックアップするために、メモリコントロールLarge Scale Integration（ＬＳＩ）が使用されることがある。
図１０は、従来の情報処理装置１０１のハードウェア構成を模式的に示す図である。【０００３】
情報処理装置１０１は、例えば、サーバ機能をそなえた情報処理装置であり、Central Processing Unit（ＣＰＵ）１１０、メモリコントロールＬＳＩ１０２、ＳＳＤ１０３、及びＤＩＭＭ１０４をそなえる。
この情報処理装置１０１は、例えば、基幹系サーバであり、顧客情報（例えば、顧客の氏名や生年月日等）など、一度書き込まれると、その後は殆ど更新されることがない情報を、ＤＩＭＭ１０４に対して読み書きを行なう。【０００４】
ＣＰＵ１１０は、種々の制御や演算を行なう処理装置であり、ＤＩＭＭ１０４に格納されたOperating System（ＯＳ）やプログラムを実行することにより、種々の機能を実現する。
ＤＩＭＭ１０４は、ＣＰＵ１１０が実行するプログラムや種々のデータ（以下、ユーザデータとも呼ぶ）や、ＣＰＵ１１０の動作により得られたデータ等を一時的に格納する。  【０００５】
ＳＳＤ１０３は、ＤＩＭＭ１０４に記憶されているデータのバックアップ用の不揮発性記憶装置である。
メモリコントロールＬＳＩ１０２は、ＤＩＭＭ１０４の制御を行なうＬＳＩである。又、メモリコントロールＬＳＩ１０２は、後述するコントロールIntellectual property（ＩＰ）コア１０５及びユーザ論理コントロール１０６経由で、ＤＩＭＭ１０４に記憶されているデータをＳＳＤ１０３にコピーして当該データをバックアップする。そして、メモリコントロールＬＳＩ１０２は、コントロールＩＰコア１０５及びユーザ論理コントロール１０６経由で、ＳＳＤ１０３にバックアップしたデータをＤＩＭＭ１０４に書き戻す（リストアする）。【０００６】
メモリコントロールＬＳＩ１０２は、コントロールＩＰコア１０５、ユーザ論理コントロール１０６、メモリコントローラ１０９、及び管理情報１１１をそなえる。
メモリコントローラ１０９は、ＤＩＭＭ１０４からのユーザデータの読み出し（Ｒｅａｄ）、及びＤＩＭＭ１０４へのユーザデータの書き込み（Ｗｒｉｔｅ）を制御する。
コントロールＩＰコア１０５及びユーザ論理コントロール１０６は、ＳＳＤ１０３とＤＩＭＭ１０４との間の通信を制御するインタフェースである。詳細には、コントロールＩＰコア１０５はＳＳＤ１０３と、ユーザ論理コントロール１０６はメモリコントローラ１０９とそれぞれ通信を行なう。【０００７】
ここで、ＩＰコアとは、Field Programmable Gate Array（ＦＰＧＡ）やApplication-Specific Integrated Circuit（ＡＳＩＣ）等の開発において、設計資産の再利用性を高めるために、頻繁に使用される回路をブロック化した回路ブロックのことであり、各種のＩＰコアが存在する。ＩＰコアを使用することにより、ＦＰＧＡやＡＳＩＣ設計やデバッグが容易となる。つまり、ＩＰコアはソフトウェア開発におけるライブラリに相当する。ここでは、コントロールＩＰコア１０５は、ＳＳＤ制御用ＩＰコアである。【０００８】
ユーザ論理コントロール１０６は、ユーザデータのフォーマットに応じて、ＳＳＤ１０３とＤＩＭＭ１０４との間の通信を制御するインタフェースである。
管理情報１１１は、メモリコントロールＬＳＩ１０２の管理に使用される情報であり、例えば、メモリコントロールＬＳＩ１０２内の不図示の不揮発性メモリに格納される。管理情報１１１には、ＤＩＭＭ１０４に記憶されるデータ単位（以下、この単位をデータセットと呼ぶ）がバックアップされているか否かを示す情報が記憶されている。【０００９】
ここで、例えば、メモリコントローラ１０９は、バックアップ時間を短縮するために、ＤＩＭＭ１０４からＳＳＤ１０３にバックアップされていない部分を特定し、その部分をＳＳＤ１０３にバックアップする手法を採用している。
図１１は、図１０に示したメモリコントロールＬＳＩ１０２の動作を示すフローチャート（ステップＳ１０１〜Ｓ１０５）である。【００１０】
ステップＳ１０１において、メモリコントロールＬＳＩ１０２は、ＤＩＭＭ１０４内のデータセット毎の管理情報１１１を読み出す。
ステップＳ１０２において、メモリコントロールＬＳＩ１０２は、ステップＳ１０１で読み出した管理情報１１１に基づいて、ＤＩＭＭ１０４内のデータをバックアップしているかどうかを判定する。【００１１】
ＤＩＭＭ１０４内のデータがバックアップされていない場合（ステップＳ１０２のＮＯルート参照）、ステップＳ１０４において、メモリコントロールＬＳＩ１０２は、ＤＩＭＭ１０４内の全データセットをＳＳＤ１０３にバックアップする。その後、処理はステップＳ１０５に移動する。
一方、ＤＩＭＭ１０４内のデータがバックアップされている場合（ステップＳ１０２のＹＥＳルート参照）、ステップＳ１０３において、メモリコントロールＬＳＩ１０２は、管理情報１１１に基づいて、ＤＩＭＭ１０４内のデータが前回のバックアップ実施後に更新されているかどうかを判定する。【００１２】
ＤＩＭＭ１０４内のデータが前回のバックアップ実施後に更新されている場合（ステップＳ１０３のＹＥＳルート参照）、ステップＳ１０４において、メモリコントロールＬＳＩ１０２は、ＤＩＭＭ１０４内の更新されているデータセットをＳＳＤ１０３にバックアップする。その後、処理はステップＳ１０５に移動する。
一方、ＤＩＭＭ１０４内のデータが前回のバックアップから更新されていない場合（ステップＳ１０３のＮＯルート参照）、処理が前述のステップＳ１０１に戻る。【００１３】
ステップＳ１０５において、情報処理装置１０１の運用が継続しているかどうかが判定される。
情報処理装置１０１の運用が継続している場合（ステップＳ１０５のＹＥＳルート参照）、処理はステップＳ１０１に戻る。
情報処理装置１０１の運用が終了している場合（ステップＳ１０５のＮＯルート参照）、処理が終了する。【００１４】
なお、情報処理装置１０１が基幹サーバなどである場合、ＤＩＭＭ１０４に一度しか更新されないデータが多く存在する場合がある。
このような場合、ＤＩＭＭ１０４に内には、頻繁に更新されるデータと、一度だけ更新された（すなわち、一度書き込まれて以降更新されていない）データとが相当量存在する。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特許第４１２６７０６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１６】
ここで、図１１に示したバックアップ方式においては、ＤＩＭＭ１０４のデータが更新されていれば、データがＳＳＤ１０３にバックアップされる。このため、一度だけ更新された（すなわち、一度書き込まれて以降更新されていない）データと頻繁に更新されるデータとがそれぞれ相当量存在する場合、ＳＳＤ１０３へのバックアップの直後にＤＩＭＭ１０４内のデータが更新されることが多くなる。このため、バックアップ時間の無駄が生じてしまう。【００１７】
さらに、ＳＳＤ１０３の書き込み可能回数には制限があるため、頻繁にバックアップを実施するとＳＳＤ１０３の寿命が短くなってしまう。
上記課題に鑑みて、１つの側面では、本発明は、メモリデータのバックアップ時間を短縮することを目的とする。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の１つとして位置付けることができる。
【課題を解決するための手段】
【００１８】
このため、メモリ制御装置は、第１の記憶装置へのアクセス履歴を記憶するアクセス履歴記憶部と、前記第１の記憶装置にアクセスが行なわれるたびに前記アクセス履歴記憶部にアクセス履歴を記憶し、前記アクセス履歴記憶部に記憶された前記アクセス履歴に基づいて、前記第１の記憶装置のデータのうち、前記第１の記憶装置への書き込みが１回のみであり、かつ前記第１の記憶装置への前記１回の書き込みが行なわれてから、基準時間が経過したデータのみを第２の記憶装置に記憶する制御部と、前記第１の記憶装置への書き込みが所定回数行なわれるのに要する時間を測定し、測定した当該時間を前記基準時間として決定する抽出部と、をそなえる。
【００１９】
又、情報処理装置は、第１の記憶装置と、第２の記憶装置と、前記第１の記憶装置へのアクセス履歴を記憶するアクセス履歴記憶部と、前記第１の記憶装置にアクセスが行なわれるたびに前記アクセス履歴記憶部にアクセス履歴を記憶し、前記アクセス履歴記憶部に記憶された前記アクセス履歴に基づいて、前記第１の記憶装置のデータのうち、前記第１の記憶装置への書き込みが１回のみであり、かつ前記第１の記憶装置への前記１回の書き込みが行なわれてから、基準時間が経過したデータのみを前記第２の記憶装置に記憶する制御部と、前記第１の記憶装置への書き込みが所定回数行なわれるのに要する時間を測定し、測定した当該時間を前記基準時間として決定する抽出部と、をそなえる。
【００２０】
さらに、メモリ制御方法は、第１の記憶装置にアクセスが行なわれるたびに、当該アクセスへのアクセス履歴をアクセス履歴記憶部に記録し、前記アクセス履歴記憶部に記憶された前記アクセス履歴に基づいて、前記第１の記憶装置のデータのうち、前記第１の記憶装置への書き込みが１回のみであり、かつ前記第１の記憶装置への前記１回の書き込みが行なわれてから、基準時間が経過したデータのみを第２の記憶装置に記憶し、前記第１の記憶装置への書き込みが所定回数行なわれるのに要する時間を測定し、測定した当該時間を前記基準時間として決定する。
【発明の効果】
【００２１】
開示の技術によれば、メモリデータのバックアップ時間を短縮することができる。
【図面の簡単な説明】
【００２２】
【図１】実施形態の一例としての情報処理装置のハードウェア構成を模式的に示す図である。
【図２】実施形態の一例としての情報処理装置における先行退避部の回路構成例を示す模式図である。
【図３】実施形態の一例としてのブロック管理テーブルを例示する図である。
【図４】実施形態の一例としての先行退避判定部の回路構成例を示す模式図である。
【図５】実施形態の一例としての情報処理装置におけるカウンタの動作論理を表形式で例示する図である。
【図６】実施形態の一例としての基準時間抽出部の回路構成例を示す模式図である。
【図７】実施形態の一例としてのメモリコントロールＬＳＩの動作を示すフローチャートである。
【図８】実施形態の一例としての先行退避部による先行退避処理を示すフローチャートである。
【図９】実施形態の一例としての基準時間抽出部による基準時間抽出処理を示すフローチャートである。
【図１０】従来の情報処理装置のハードウェア構成を模式的に示す図である。
【図１１】従来のメモリコントロールＬＳＩの動作を示すフローチャートである。
【発明を実施するための形態】
【００２３】
（Ａ）ハードウェア構成
以下、図面を参照して本実施形態の一例としてのメモリ制御装置、情報処理装置及びメモリ制御方法を説明する。
最初に、情報処理装置１の構成について説明する。
図１は、実施形態の一例としての情報処理装置１のハードウェア構成を模式的に示す図である。
【００２４】
情報処理装置１は、例えば、サーバ機能をそなえた情報処理装置であり、ＣＰＵ１０、メモリコントロールＬＳＩ（メモリ制御装置）２、ＳＳＤ（第２の記憶装置）３、及びＤＩＭＭ（第１の記憶装置）４をそなえる。
本実施形態の一例としての情報処理装置１は、例えば、基幹系サーバであり、顧客情報（例えば、顧客の氏名や生年月日等）など、一度書き込まれると、その後は殆ど更新されることがない情報を、ＤＩＭＭ４に対して読み書きを行なう。
【００２５】
ＣＰＵ１０は、種々の制御や演算を行なう処理装置であり、ＤＩＭＭ４に格納されたＯＳやプログラムを実行することにより、種々の機能を実現する。ＣＰＵ１０としては、例えば、公知のＣＰＵを用いることができる。
ＤＩＭＭ４は、ＣＰＵ１０が実行するプログラムや種々のデータ（以下、ユーザデータとも呼ぶ）や、ＣＰＵ１０の動作により得られたデータ等を一時的に格納する。ＤＩＭＭ４としては、例えば、ＲＡＭなどの公知のメモリを用いることができる。
【００２６】
ＳＳＤ３は、ＤＩＭＭ４に記憶されているデータのバックアップ用の不揮発性記憶装置である。ＳＳＤ３としては、公知のＳＳＤを使用することができる。
メモリコントロールＬＳＩ２は、ＤＩＭＭ４の制御を行なうＬＳＩである。又、メモリコントロールＬＳＩ２は、後述するコントロールＩＰコア５及びユーザ論理コントロール６経由で、ＤＩＭＭ４に記憶されているデータをＳＳＤ３にコピーして当該データをバックアップする。そして、メモリコントロールＬＳＩ２は、コントロールＩＰコア５及びユーザ論理コントロール６経由で、ＳＳＤ３にバックアップしたデータをＤＩＭＭ４に書き戻す（リストアする）。
【００２７】
本実施形態の一例としてのメモリコントロールＬＳＩ２は、ＤＩＭＭ４に記憶されているデータのうち、頻繁に更新されるデータは通常運用中はバックアップせず、情報処理装置１の電源断時など、ＤＩＭＭ４のバックアップ命令が発行された時にのみバックアップする。
一方、メモリコントロールＬＳＩ２は、ＤＩＭＭ４に記憶されているデータのうち、所定時間内に一度だけ更新された（すなわち、一度書き込まれて以降更新されていない）データを、通常運用中にバックグラウンドでバックアップする。以降、所定時間内に一度だけ更新されたデータをバックアップする処理を「先行退避」と呼ぶ。
【００２８】
このため、本実施形態の一例としてのメモリコントロールＬＳＩ２は、情報処理装置１の通常運用のバックグラウンドで、ＤＩＭＭ４の更新状態をブロック単位で監視し、１回更新されてから基準時間経過したブロックのみを、ＳＳＤ３に先行退避する。
ここで、ブロックとは、メモリコントロールＬＳＩ２がＳＳＤ３に対してアクセスを行なう際の単位であり、例えば１ブロックは４キロバイト（ＫＢ）である。メモリコントロールＬＳＩ２は、ＤＩＭＭ４からＳＳＤ３へのデータのバックアップ（コピー）をブロック単位で行なうので、ＤＩＭＭ４のアクセスも、このブロック単位で監視している。
【００２９】
又、情報処理装置１の通常運用とは、情報処理装置１が電源投入されて完全に起動された後に、情報処理装置１がユーザにより目的の業務に使用されている状態を指す。
メモリコントロールＬＳＩ２は、コントロールＩＰコア５、ユーザ論理コントロール６、先行退避部（制御部）７、基準時間抽出部（抽出部）８、及びメモリコントローラ９をそなえる。
【００３０】
メモリコントローラ９は、ＤＩＭＭ４からのユーザデータの読み出し（Ｒｅａｄ）、及びＤＩＭＭ４へのユーザデータの書き込み（Ｗｒｉｔｅ）を制御する。
コントロールＩＰコア５及びユーザ論理コントロール６は、ＳＳＤ３とＤＩＭＭ４との間の通信を制御するインタフェースである。詳細には、コントロールＩＰコア５はＳＳＤ３と、ユーザ論理コントロール６はメモリコントローラ９とそれぞれ通信を行なう。
【００３１】
ユーザ論理コントロール６は、ユーザデータのフォーマットに応じて、ＳＳＤ３とＤＩＭＭ４との間の通信を制御するインタフェースである。
コントロールＩＰコア５及びユーザ論理コントロール６としては、公知のメモリインタフェースを使用することができる。
先行退避部７は、所定時間毎に、ＤＩＭＭ４内のデータの更新を監視し、ＤＩＭＭ４の全ブロックのうち、ＳＳＤ３にデータを先行退避するブロックを特定する。
【００３２】
図２は、実施形態の一例としての情報処理装置１における先行退避部７の回路構成例を示す模式図である。
先行退避部７は、図８を用いて後述する先行退避処理を実行し、ＤＩＭＭ４に記憶されているデータのうち、所定時間内に一度だけ更新された（すなわち、一度書き込まれて以降更新されていない）データを、通常運用中にバックグラウンドでバックアップする。先行退避部７は、通常運用中に、先行退避処理を所定の時間間隔おきに実行する。この先行退避処理の実行間隔は、システム管理者等が、情報処理装置１の運用に応じて適宜設定することができる。
【００３３】
先行退避部７は、ブロック管理テーブル１５と、先行退避判定部１６とをそなえる。
ブロック管理テーブル１５は、ＤＩＭＭ４へのデータの更新状況（アクセス履歴）を、ＤＩＭＭ４のブロック毎に更新フラグとして管理するテーブルである。ブロック管理テーブル１５は、例えば、メモリコントロールＬＳＩ２内の不図示のStatic RAM（ＳＲＡＭ）などの揮発性メモリに記憶される。ブロック管理テーブル１５のデータ構造例については、図３を用いて後述する。
【００３４】
先行退避判定部１６は、後述するブロック管理テーブル１５から更新フラグを読み出し、読み出した更新フラグに基づいて、ＤＩＭＭ４内の各ブロックについて、ＳＳＤ３にデータを先行退避すべきかどうかの判定を行なう。つまり、先行退避判定部１６は、ＤＩＭＭ４内の一度だけ更新された（つまり１回の書き込みのみの）各ブロックについて、その状態のまま（すなわち、ブロックのデータがその後更新されず）、基準時間が経過したかどうかを判定する。先行退避判定部１６の詳細な構成及び機能については、図４を用いて後述する。
【００３５】
図３は、実施形態の一例としてのブロック管理テーブル１５を例示する図である。
ブロック管理テーブル１５は、ＤＩＭＭ４の全ブロックについて、そのブロックのデータの更新状況を示す更新フラグを格納している。
図３の例では、ブロック管理テーブル１５は、アドレスＡＤＲＳ＿１にＤＩＭＭ４のブロック１，２の更新フラグを、アドレスＡＤＲＳ＿２にブロック３，４の更新フラグを、アドレスＡＤＲＳ＿３にブロック５，６の更新フラグ…を、それぞれ格納している。つまり、ブロック管理テーブル１５のアドレス毎に、ＤＩＭＭ４の２ブロック分の更新フラグが格納される。
【００３６】
なお、ブロック管理テーブル１５は、先行退避判定部１６によって更新される。
各ブロックの更新フラグのデータ長は、例えば２ビットである。例えば、ＤＩＭＭ４の各ブロックについて、そのブロックが未更新の場合は“００”が、ブロックの更新が１回のみの場合は“０１”が、ブロックが２回以上更新されている場合は“１１”が、当該ブロックの更新フラグとして、それぞれブロック管理テーブル１５に格納される。
【００３７】
図４は、実施形態の一例としての先行退避判定部１６の回路構成例を示す模式図である。
先行退避判定部１６は、基準時間レジスタ１７、比較部１８、カウンタ１９、レジスタ２０、及び論理演算部２１，２２をそなえる。
基準時間レジスタ１７は、図３を用いて前述した基準時間抽出部８が抽出した基準時間を格納しているレジスタである。
【００３８】
比較部１８は、基準時間レジスタ１７の値とカウンタ１９の値とを比較し、例えば両者が不一致の場合はＬＯＷ（例えば“０”）を、両者が一致する場合はＨＩＧＨ（例えば“１”）を、後述するレジスタ２０に出力する。
カウンタ１９は、ＤＩＭＭ４のブロックが最初に更新されてからの経過時間をカウントするカウンタである。詳細には、カウンタ１９は、ブロック更新テーブル１５の２ビットの更新フラグの値が“０１”を示したときに、後述する論理演算部２１によってＨＩＧＨを入力され、カウントアップを開始する。その後、カウンタ１９は、例えば、１時間毎に１カウントアップする。つまり、カウンタ１９は、ＤＩＭＭ４への最初の書き込みが発生するとカウントアップが開始され、１時間毎に１カウントアップされる。
【００３９】
又、カウンタ１９は、カウンタ値が基準時間値に達するとＬＯＷが入力されてクリアされる。
図５に、カウンタ１９の動作論理を表形式で例示する。
カウンタ１９にＬＯＷが入力されると、カウンタ１９がリセットされ、図５の図に示すようにカウンタ値が“０００”にセットされる。
【００４０】
そして、ブロック管理テーブル１５の当該ブロックの更新フラグの値が“０１”になると、カウンタ１９のカウントアップが開始されて、例えば１時間毎にカウンタ値が１カウントアップされる。
図４のレジスタ２０は、ブロック更新テーブル１５から読み出された更新フラグ（２ビット）と、比較部１８の比較結果（１ビット）とを保持するレジスタである。
【００４１】
論理演算部２１は、図４の例ではＡＮＤ回路である。論理演算部２１は、レジスタ２０の更新フラグ値の２ビット値が“０１”以外のときはカウンタ１９にＬＯＷを出力する。論理演算部２１は、レジスタ２０の更新フラグ値の２ビット値が“０１”のときはカウンタ１９にＨＩＧＨを出力して、カウントアップを開始させる。
論理演算部２２は、図４の例ではＡＮＤ回路である。論理演算部２２は、基準時間の経過を検知すると、ＨＩＧＨを出力する。
【００４２】
つまり、図４の回路は、ＤＩＭＭ４内のブロックが、最初に書き込まれた後、基準時間が経過するまで、一度も更新されなかった（すなわち、一度だけ更新された）かどうかを判定する。ブロックが、最初の書き込み後、基準時間の経過までに一度も更新されなかった（つまり、一度だけ更新された）場合、論理演算部２２は、例えばＨＩＧＨを出力して、当該ブロックをＳＳＤ３に先行退避させる対象である旨を先行退避部７に指示する。
【００４３】
図１を再度参照すると、基準時間抽出部８は、先行退避部７が、ＤＩＭＭ４内のデータが所定時間内に一度だけ更新されたかどうかを判定する際に用いる基準時間を抽出する。
図６は、実施形態の一例としての基準時間抽出部８の回路構成例を示す模式図である。
基準時間抽出部８は、ＤＩＭＭ４への書き込みが所定回数行なわれるのに要する時間を測定し、測定した時間を基準時間として決定（抽出）する。この基準時間は、先行退避部７によって、ＤＩＭＭ４内のデータが所定時間内に一度だけ更新されたかどうかを判定する際に用いられる。基準時間抽出部８は、相対時計１１、比較部１２、閾値レジスタ１３、及びWRITE_ENABLE（ＷＥ）カウンタ１４をそなえる。
【００４４】
相対時計１１は、基準時間抽出処理に使用されるタイマである。相対時計１１は、情報処理装置１の電源起動又はリセット（パワーオンリセット）時にカウントアップが開始され、比較部１２によって停止される。そして、相対時計１１は、比較部１２によって停止された時点の相対時計１１のカウンタ値を、基準時間として抽出して、必要に応じて変換を行なったのち、例えば基準時間レジスタ１７（図４参照）に記憶する。
【００４５】
比較部１２は、後述する閾値レジスタ１３の値とＷＥカウンタ１４の値とを比較する。両者が一致した場合、比較部１２は、例えばＨＩＧＨを出力して、相対時計１１のカウントダウンを停止させる。
閾値レジスタ１３は、ＷＥカウンタ１４の値と比較される閾値を保持しているレジスタである。閾値レジスタ１３に設定される閾値は、ＤＩＭＭ４への書き込み回数の閾値例えばシステム管理者等によって任意の適切な値に設定される。
【００４６】
ＷＥカウンタ１４は、ＤＩＭＭ４のブロックのデータの更新回数をカウントするカウンタである。ＷＥカウンタ１４は、ＤＩＭＭ４の書き込みを許可するWRITE_ENABLE信号を受信すると、例えばカウンタを１カウントアップする。
（Ｂ）動作
次に、実施形態の一例としてのメモリコントロールＬＳＩ２の動作を説明する。
【００４７】
図７は、実施形態の一例としてのメモリコントロールＬＳＩ２の動作を示すフローチャート（ステップＳ１〜Ｓ１４）である。
ステップＳ１において、情報処理装置１の電源が投入されて、情報処理装置１の通常運用が開始される。
ステップＳ２において、先行退避部７がブロック管理テーブル１５をクリアし、ＤＩＭＭ４の全ブロックの更新フラグを“００”にリセットする。
【００４８】
ステップＳ３において、先行退避判定部１６が、ＤＩＭＭ４に対するアクセス命令を待機し、命令を受信したかどうかを判定する。
命令を受信していない場合（ステップＳ３のＮＯルート参照）、処理がステップＳ３に戻る。
一方、命令を受信した場合（ステップＳ３のＹＥＳルート参照）、ステップＳ４において、先行退避判定部１６は、受信した命令がバックアップ命令かどうかを判定する。
【００４９】
バックアップ命令の場合（ステップＳ４のＹＥＳルート参照）、ステップＳ３で受信した命令が電源切断時のバックアップ命令であるので、ステップＳ５において、先行退避部７は、ブロック管理テーブル１５から、ＤＩＭＭ４の全ブロックの更新フラグを読み出す。
ステップＳ６において、先行退避部７は、ブロック管理テーブル１５の更新フラグの値が“００”以外のＤＩＭＭ４のブロックのデータを、ＳＳＤ３に退避（バックアップ）する。
【００５０】
ステップＳ７において、先行退避部７は、ステップＳ６でＳＳＤ３に退避した全ブロックについて、ブロック管理テーブル１５の対応する更新フラグの値を“００”にセットする。その後、情報処理装置１の電源が切断されて通常運用が終了する。
一方、ステップＳ３で受信した命令がバックアップ命令ではない場合（ステップＳ４のＮＯルート参照）、ステップＳ８において、先行退避判定部１６は、ステップＳ３で受信した命令がメモリライト命令かどうかを判定する。
【００５１】
ステップＳ３で受信した命令がメモリライト命令ではない場合（ステップＳ８のＮＯルート参照）、命令はメモリリード命令である。このため、ステップＳ９において、メモリコントローラ９はＤＩＭＭ４に対するメモリリード命令を実行し、その後ステップＳ３に戻り、次の命令を待機する。
一方、ステップＳ３で受信した命令がメモリライト命令の場合（ステップＳ８のＹＥＳルート参照）、ステップＳ１０において、メモリコントローラ９はＤＩＭＭ４に対するメモリライトを実行する。
【００５２】
ステップＳ１０でメモリライトを実行した後、ステップＳ３に戻って通常運用が継続される。これと並行して、先行退避部７は、ステップＳ１１〜Ｓ１４のフラグ更新処理を、通常運用のバックグラウンドで開始する。
ステップＳ１１において、先行退避判定部１６は、ステップＳ１０でＤＩＭＭ４にライトしたブロックに対応する、ブロック管理テーブル１５の更新フラグの値を読み込む。
【００５３】
ステップＳ１２において、先行退避判定部１６は、レジスタ２０に読み込んだ更新フラグの値が“００”であるかどうかを判定する。前述のように、“００”は更新フラグの初期値であり、更新フラグにこの値が設定されているブロックは、情報処理装置１の起動後、未だ更新されていない（データが書き込まれていない）ことを示す。
更新フラグの値が“００”の場合（ステップＳ１２のＹＥＳルート参照）、ステップＳ１３において、先行退避判定部１６は、ブロック管理テーブル１５の対応する更新フラグの値を、対応するブロックが１回のみ更新されていることを示す“０１”にセットして、フラグ更新処理を終了する（通常運用は継続される）。
【００５４】
更新フラグの値が“００”以外の場合（ステップＳ１２のＮＯルート参照）、ステップＳ１４において、先行退避判定部１６は、ブロック管理テーブル１５の対応する更新フラグの値を、対応するブロックが２回以上書き込まれていることを示す値である“１１”にセットして、フラグ更新処理を終了する（通常運用は継続される）。
図８は、実施形態の一例としての先行退避部７による先行退避処理を示すフローチャート（ステップＳ２１〜Ｓ２４）である。
【００５５】
この先行退避処理は、通常運用中に、通常運用の処理と並行してバックグラウンドで実行される。
ステップＳ２１において、先行退避部７は、情報処理装置１の電源が切断されたかどうかを判定する。
情報処理装置１の電源が切断された場合（ステップＳ２１のＹＥＳルート参照）、先行退避部７は先行退避処理を終了する。
【００５６】
情報処理装置１の電源が切断されていない場合（ステップＳ２１のＮＯルート参照）、ステップＳ２２において、先行退避部７は、ブロック管理テーブル１５から、全更新フラグを読み出す。そして、読み出した更新フラグの値が“０１”であり、かつ更新フラグが値“０１”にセットされてから、基準時間抽出部８によって抽出された基準時間が経過したブロックが存在するかどうかを判定する。
【００５７】
ステップＳ２２で条件を満たすブロック（すなわち、１回書き込まれてから更新されていないデータ）が存在しない場合（ステップＳ２２のＮＯルート参照）、先行退避部７はステップＳ２１に戻って、先行退避処理を繰り返す。
一方、ステップＳ２２で条件を満たすブロックが存在する場合（ステップＳ２２のＹＥＳルート参照）、ステップＳ２３において、先行退避部７は、更新フラグの値が“０１”であり、かつ更新フラグが値“０１”にセットされてから基準時間が経過した全てのブロックのデータを、ＳＳＤ３にコピーする。
【００５８】
次にステップＳ２４において、先行退避部７は、ステップＳ２３でＳＳＤ３にコピーしたブロックに対応する、ブロック更新テーブル１５の更新フラグをクリア（すなわち“００”をセット）する。その後、先行退避部７はステップＳ２１に戻って、先行退避処理を繰り返す。
図９は、実施形態の一例としての基準時間抽出部８による基準時間抽出処理を示すフローチャート（ステップＳ３１〜Ｓ３７）である。
【００５９】
基準時間抽出部８は、情報処理装置１の電源が投入されている間は常に、基準時間抽出処理を実行する。そして基準時間抽出部８が抽出した最新の基準時間が、先行退避部７によって、図８のステップＳ２２で用いられる。
ステップＳ３１において、基準時間抽出部８は、相対時計１１をリセットする。
次に、ステップＳ３２において、相対時計１１はタイマ動作（計時）を開始する。
【００６０】
ステップＳ３３において、基準時間抽出部８は、ＤＩＭＭ４のライトアクセス（ＷＲＩＴＥ＿ＥＮＡＢＬＥ等）を監視し、ライトアクセスを観測したらＷＥカウンタ１４をカウントアップする。
ステップＳ３４において、比較部１２は、ＷＥカウンタ１４のカウンタ値が閾値レジスタ１３に格納されている、ＤＩＭＭ４のアクセス回数閾値に達したかどうかを判定する。
【００６１】
ＷＥカウンタ１４のカウンタ値が閾値に達していない場合（ステップＳ３４のＮＯルート参照）、処理はステップＳ３３に戻り、基準時間抽出部８はＤＩＭＭ４のアクセスの監視を続ける。
一方、ＷＥカウンタ１４のカウンタ値が閾値に達した場合（ステップＳ３４のＹＥＳルート参照）、ステップＳ３５において、基準時間抽出部８はＷＥカウンタ１４をクリアする。
【００６２】
ステップＳ３６において、比較部１２は、相対時計１１を停止させ、基準時間抽出部８は、相対時計１１のタイマ値を、基準時間として抽出する。
ステップＳ３７において、相対時計１１は、ステップＳ３６で抽出したタイマ値を、基準時間として適用する（例えば、必要に応じて時間の単位を変換した後、図４の基準時間レジスタ１７に格納する）。
【００６３】
その後処理がステップＳ３１に戻り、基準時間抽出部８は上記の基準時間抽出処理を繰り返す。
（Ｃ）効果
前述の如く、上記の実施形態の一例によれば、先行退避部７が、ＤＩＭＭ４のデータの更新状況を監視し、更新状況を、ＤＩＭＭ４のブロック単位でブロック管理テーブル１５に記録する。そして、先行退避部７は、ブロック管理テーブル１５に基づいて、ＤＩＭＭ４の全ブロックのうち、一度だけ更新された（すなわち、一度書き込まれて以降更新されていない）ブロックのデータのみをＳＳＤ３に先行退避する。
【００６４】
つまり、頻繁に更新されるデータは通常運用時には退避せず、情報処理装置１の電源断時など、ＤＩＭＭ４のバックアップ命令が発行された時にのみ退避する。一方、所定時間内に一度だけ更新された（すなわち、一度書き込まれて以降更新されていない）データは、通常運用中のバックグラウンドで先行退避を実施する。
これにより、情報処理装置１の電源切断時など、ＤＩＭＭ４に対してバックアップ命令が発行されたときに、ブロック管理テーブル１５の更新フラグに、例えば“００”以外の値が設定されているブロックのみをＳＳＤ３にバックアップするだけで済む。このため、ＤＩＭＭ４のデータのバックアップが高速化される。例えば、従来は１０分要していたバックアップが、本実施形態の一例においては１分程度で終了する。
【００６５】
一例を挙げると、ＤＩＭＭ４全体のメモリ空間が１２８ＧＢの情報処理装置１において、ＤＩＭＭ４の実使用エリアが合計３２ＧＢ程度であり、１回しか更新されないデータがＤＩＭＭ４全体の６割程度を占める場合、この６割のデータが通常運用中に先行退避される。情報処理装置１の故障の際等に、ＤＩＭＭ４のバックアップを行なう場合、１回しか更新されないデータは先にＳＳＤ３に先にコピーされているので、バックアップすべき残りの容量は１２．８ＧＢである。このため、ＤＩＭＭ４のバックアップ時間を大幅に短縮できる。
【００６６】
又、先行退避部７は、この先行退避を、通常運用のバックグラウンドで実行するため、先行退避によって通常運用が妨害されることはない。
さらに、ＤＩＭＭ４のメモリ空間がブロックに分割されるので、ＤＩＭＭ４のアクセス管理の効率が向上する。又、ＳＳＤ３への無駄な退避を減少でき、エラーによる情報処理装置１の電源断時など、バックアップ時にバックアップ時間が短縮される。
【００６７】
さらに、基準時間抽出部８が、常時、基準時間抽出処理を実行し、ＤＩＭＭ４へのデータアクセス状況に応じて、ＳＳＤ３への先行退避の判定に用いる基準時間を求める。このため、ＤＩＭＭ４へのデータアクセス状況に応じて、先行退避の頻度を最適化することができる。
ＤＩＭＭ４のデータの更新頻度を監視して、バックアップ対象のブロックを事前に特定することで、ＳＳＤ３への書き込み回数を抑えることができ、ＳＳＤ３の長寿命化を図ることができる。
【００６８】
（Ｄ）その他
なお、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、上記の実施形態の一例においては、メモリのバックアップ媒体としてＳＳＤ３を使用したが、バックアップ媒体として他の不揮発性記憶装置を使用してもよい。
【００６９】
又は、上記の実施形態においては、ＤＩＭＭ４の内容をＳＳＤ３にバックアップしたが、情報処理装置１の他のメモリの内容をＳＳＤ３にバックアップしてもよい。
或いは、上記の実施形態の一例においては、最初に更新されてから１時間経過したＤＩＭＭ４のブロックのデータをＳＳＤ３に先行退避させていたが、情報処理装置１の運用状況等に応じて、システム管理者等によって、ほかの任意の待機時間が設定されてもよい。例えば、上記の実施形態の一例においては、カウンタ１９が１時間毎に１カウントアップしていたが、カウンタ１９が７時間毎に１カウントアップしてもよい。
【００７０】
又は、図３に示したブロック管理テーブル１５の構造は例示に過ぎず、ブロック管理テーブル１５にほかのデータ構造を採用してもよい。
さらに、上記の実施形態の一例においては、先行退避部７、基準時間抽出部８及び先行退避判定部１６をハードウェアによって実装していたが、これらの少なくとも１つを、ソフトウェア及び／又はファームウェアによって実装してもよい。
【００７１】
先行退避部７、基準時間抽出部８、及び先行退避判定部１６をソフトウェアによって実装する場合、先行退避部７、基準時間抽出部８、及び先行退避判定部１６としての機能を実現するためのプログラムは、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ等），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ  ＤＶＤ等），ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、情報処理装置１はその記録媒体から図示しないドライブ装置を介してプログラムを読み取って内部記録装置又は外部記録装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介して情報処理装置１に提供してもよい。
【００７２】
先行退避部７、基準時間抽出部８、及び先行退避判定部１６としての機能を実現する際には、不図示の記録媒体に格納されたプログラムが情報処理装置１のマイクロプロセッサ（ＣＰＵ１０など）によって実行される。このとき、記録媒体に記録されたプログラムを情報処理装置１が読み取って実行してもよい。
以上の実施形態に関し、さらに以下の付記を開示する。
（付記１）
第１の記憶装置へのアクセス履歴を記憶するアクセス履歴記憶部と、
前記第１の記憶装置にアクセスが行なわれるたびに前記アクセス履歴記憶部にアクセス履歴を記憶し、前記アクセス履歴記憶部に記憶された前記アクセス履歴に基づいて、前記第１の記憶装置のデータのうち、アクセス回数が所定値以下のデータを第２の記憶装置に記憶する制御部と、
をそなえることを特徴とするメモリ制御装置。
（付記２）
前記制御部は、前記アクセス履歴に基づいて、前記第１の記憶装置への書き込みが１回のみのデータを前記第２の記憶装置に記憶することを特徴とする付記１記載のメモリ制御装置。
（付記３）
前記制御部は、前記アクセス履歴に基づいて、前記第１の記憶装置への書き込みが１回のみであり、かつ前記第１の記憶装置への前記１回の書き込みが行なわれてから、基準時間が経過したデータのみを前記第２の記憶装置に記憶することを特徴とする付記２記載のメモリ制御装置。
（付記４）
前記第１の記憶装置への書き込みが所定回数行なわれるのに要する時間を測定し、測定した当該時間を前記基準時間として決定する抽出部をさらにそなえることを特徴とする付記３記載のメモリ制御装置。
（付記５）
前記制御部は、前記第１の記憶装置のデータのバックアップ指示が行なわれると、前記第１の記憶装置の前記データのうち、前記第２の記憶装置に記憶したデータ以外の全データを、前記第２の記憶装置に記憶することを特徴とする付記１〜４のいずれか１項に記載のメモリ制御装置。
（付記６）
第１の記憶装置と、
第２の記憶装置と、
前記第１の記憶装置へのアクセス履歴を記憶するアクセス履歴記憶部と、
前記第１の記憶装置にアクセスが行なわれるたびに前記アクセス履歴記憶部にアクセス履歴を記憶し、前記アクセス履歴記憶部に記憶された前記アクセス履歴に基づいて、前記第１の記憶装置のデータのうち、アクセス回数が所定値以下のデータを前記第２の記憶装置に記憶する制御部と、
をそなえることを特徴とする情報処理装置。
（付記７）
前記制御部は、前記アクセス履歴に基づいて、前記第１の記憶装置への書き込みが１回のみのデータを前記第２の記憶装置に記憶することを特徴とする付記６記載の情報処理装置。
（付記８）
前記制御部は、前記アクセス履歴に基づいて、前記第１の記憶装置への書き込みが１回のみであり、かつ前記第１の記憶装置への前記１回の書き込みが行なわれてから、基準時間が経過したデータのみを前記第２の記憶装置に記憶することを特徴とする付記７記載の情報処理装置。
（付記９）
前記第１の記憶装置への書き込みが所定回数行なわれるのに要する時間を測定し、測定した当該時間を前記基準時間として決定する抽出部をさらにそなえることを特徴とする付記８記載の情報処理装置。
（付記１０）
前記制御部は、前記第１の記憶装置のデータのバックアップ指示が行なわれると、前記第１の記憶装置の前記データのうち、前記第２の記憶装置に記憶したデータ以外の全データを、前記第２の記憶装置に記憶することを特徴とする付記６〜９のいずれか１項に記載の情報処理装置。
（付記１１）
第１の記憶装置にアクセスが行なわれるたびに、当該アクセスへのアクセス履歴をアクセス履歴記憶部に記録し、
前記アクセス履歴記憶部に記憶された前記アクセス履歴に基づいて、前記第１の記憶装置のデータのうち、アクセス回数が所定値以下のデータを第２の記憶装置に記憶する
ことを特徴とするメモリ制御方法。
（付記１２）
前記アクセス履歴に基づいて、前記第１の記憶装置への書き込みが１回のみのデータを前記第２の記憶装置に記憶することを特徴とする付記１１記載のメモリ制御方法。
（付記１３）
前記アクセス履歴に基づいて、前記第１の記憶装置への書き込みが１回のみであり、かつ前記第１の記憶装置への前記１回の書き込みが行なわれてから、基準時間が経過したデータのみを前記第２の記憶装置に記憶することを特徴とする付記１２記載のメモリ制御方法。
（付記１４）
前記第１の記憶装置への書き込みが所定回数行なわれるのに要する時間を測定し、測定した当該時間を前記基準時間として決定することを特徴とする付記１３記載のメモリ制御方法。
（付記１５）
前記第１の記憶装置のデータのバックアップ指示が行なわれると、前記第１の記憶装置の前記データのうち、前記第２の記憶装置に記憶したデータ以外の全データを、前記第２の記憶装置に記憶することを特徴とする付記１１〜１４のいずれか１項に記載のメモリ制御方法。
【符号の説明】
【００７３】
１          情報処理装置
２          メモリコントロールＬＳＩ（メモリ制御装置）
３          ＳＳＤ（第２の記憶装置）
４          ＤＩＭＭ（第１の記憶装置）
５          コントロールＩＰコア
６          ユーザ論理コントロール
７          先行退避部（制御部）
８          基準時間抽出部（抽出部）
９          メモリコントローラ
１０        ＣＰＵ
１１        相対時計
１２        比較部
１３        閾値レジスタ
１４        ＷＥカウンタ
１５        ブロック管理テーブル
１６        先行退避判定部
１７        基準時間レジスタ
１８        比較部
１９        カウンタ
２０        レジスタ
２１，２２  論理演算部
【図１】
0006004115.tif 000002
【図２】
0006004115.tif 000003
【図３】
0006004115.tif 000004
【図４】
0006004115.tif 000005
【図５】
0006004115.tif 000006
【図６】
0006004115.tif 000007
【図７】
0006004115.tif 000008
【図８】
0006004115.tif 000009
【図９】
0006004115.tif 000010
【図１０】
0006004115.tif 000011
【図１１】
0006004115.tif 000012