JP6004115B2 - メモリ制御装置、情報処理装置、及びメモリ制御方法 - Google Patents

メモリ制御装置、情報処理装置、及びメモリ制御方法 Download PDF

Info

Publication number
JP6004115B2
JP6004115B2 JP2015538652A JP2015538652A JP6004115B2 JP 6004115 B2 JP6004115 B2 JP 6004115B2 JP 2015538652 A JP2015538652 A JP 2015538652A JP 2015538652 A JP2015538652 A JP 2015538652A JP 6004115 B2 JP6004115 B2 JP 6004115B2
Authority
JP
Japan
Prior art keywords
storage device
data
unit
dimm
access history
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015538652A
Other languages
English (en)
Other versions
JPWO2015044999A1 (ja
Inventor
勝 竹原
勝 竹原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Application granted granted Critical
Publication of JP6004115B2 publication Critical patent/JP6004115B2/ja
Publication of JPWO2015044999A1 publication Critical patent/JPWO2015044999A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/122Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、メモリ制御装置、情報処理装置、及びメモリ制御方法に関する。
情報処理装置においては、一時記憶装置としてDual Inline Memory Module(DIMM)が使用されている。そして、このDIMMのデータを、Solid State Drive(SSD)等の他の記憶装置にバックアップするために、メモリコントロールLarge Scale Integration(LSI)が使用されることがある。
図10は、従来の情報処理装置101のハードウェア構成を模式的に示す図である。
情報処理装置101は、例えば、サーバ機能をそなえた情報処理装置であり、Central Processing Unit(CPU)110、メモリコントロールLSI102、SSD103、及びDIMM104をそなえる。
この情報処理装置101は、例えば、基幹系サーバであり、顧客情報(例えば、顧客の氏名や生年月日等)など、一度書き込まれると、その後は殆ど更新されることがない情報を、DIMM104に対して読み書きを行なう。
CPU110は、種々の制御や演算を行なう処理装置であり、DIMM104に格納されたOperating System(OS)やプログラムを実行することにより、種々の機能を実現する。
DIMM104は、CPU110が実行するプログラムや種々のデータ(以下、ユーザデータとも呼ぶ)や、CPU110の動作により得られたデータ等を一時的に格納する。
SSD103は、DIMM104に記憶されているデータのバックアップ用の不揮発性記憶装置である。
メモリコントロールLSI102は、DIMM104の制御を行なうLSIである。又、メモリコントロールLSI102は、後述するコントロールIntellectual property(IP)コア105及びユーザ論理コントロール106経由で、DIMM104に記憶されているデータをSSD103にコピーして当該データをバックアップする。そして、メモリコントロールLSI102は、コントロールIPコア105及びユーザ論理コントロール106経由で、SSD103にバックアップしたデータをDIMM104に書き戻す(リストアする)。
メモリコントロールLSI102は、コントロールIPコア105、ユーザ論理コントロール106、メモリコントローラ109、及び管理情報111をそなえる。
メモリコントローラ109は、DIMM104からのユーザデータの読み出し(Read)、及びDIMM104へのユーザデータの書き込み(Write)を制御する。
コントロールIPコア105及びユーザ論理コントロール106は、SSD103とDIMM104との間の通信を制御するインタフェースである。詳細には、コントロールIPコア105はSSD103と、ユーザ論理コントロール106はメモリコントローラ109とそれぞれ通信を行なう。
ここで、IPコアとは、Field Programmable Gate Array(FPGA)やApplication-Specific Integrated Circuit(ASIC)等の開発において、設計資産の再利用性を高めるために、頻繁に使用される回路をブロック化した回路ブロックのことであり、各種のIPコアが存在する。IPコアを使用することにより、FPGAやASIC設計やデバッグが容易となる。つまり、IPコアはソフトウェア開発におけるライブラリに相当する。ここでは、コントロールIPコア105は、SSD制御用IPコアである。
ユーザ論理コントロール106は、ユーザデータのフォーマットに応じて、SSD103とDIMM104との間の通信を制御するインタフェースである。
管理情報111は、メモリコントロールLSI102の管理に使用される情報であり、例えば、メモリコントロールLSI102内の不図示の不揮発性メモリに格納される。管理情報111には、DIMM104に記憶されるデータ単位(以下、この単位をデータセットと呼ぶ)がバックアップされているか否かを示す情報が記憶されている。
ここで、例えば、メモリコントローラ109は、バックアップ時間を短縮するために、DIMM104からSSD103にバックアップされていない部分を特定し、その部分をSSD103にバックアップする手法を採用している。
図11は、図10に示したメモリコントロールLSI102の動作を示すフローチャート(ステップS101〜S105)である。
ステップS101において、メモリコントロールLSI102は、DIMM104内のデータセット毎の管理情報111を読み出す。
ステップS102において、メモリコントロールLSI102は、ステップS101で読み出した管理情報111に基づいて、DIMM104内のデータをバックアップしているかどうかを判定する。
DIMM104内のデータがバックアップされていない場合(ステップS102のNOルート参照)、ステップS104において、メモリコントロールLSI102は、DIMM104内の全データセットをSSD103にバックアップする。その後、処理はステップS105に移動する。
一方、DIMM104内のデータがバックアップされている場合(ステップS102のYESルート参照)、ステップS103において、メモリコントロールLSI102は、管理情報111に基づいて、DIMM104内のデータが前回のバックアップ実施後に更新されているかどうかを判定する。
DIMM104内のデータが前回のバックアップ実施後に更新されている場合(ステップS103のYESルート参照)、ステップS104において、メモリコントロールLSI102は、DIMM104内の更新されているデータセットをSSD103にバックアップする。その後、処理はステップS105に移動する。
一方、DIMM104内のデータが前回のバックアップから更新されていない場合(ステップS103のNOルート参照)、処理が前述のステップS101に戻る。
ステップS105において、情報処理装置101の運用が継続しているかどうかが判定される。
情報処理装置101の運用が継続している場合(ステップS105のYESルート参照)、処理はステップS101に戻る。
情報処理装置101の運用が終了している場合(ステップS105のNOルート参照)、処理が終了する。
なお、情報処理装置101が基幹サーバなどである場合、DIMM104に一度しか更新されないデータが多く存在する場合がある。
このような場合、DIMM104に内には、頻繁に更新されるデータと、一度だけ更新された(すなわち、一度書き込まれて以降更新されていない)データとが相当量存在する。
特許第4126706号公報
ここで、図11に示したバックアップ方式においては、DIMM104のデータが更新されていれば、データがSSD103にバックアップされる。このため、一度だけ更新された(すなわち、一度書き込まれて以降更新されていない)データと頻繁に更新されるデータとがそれぞれ相当量存在する場合、SSD103へのバックアップの直後にDIMM104内のデータが更新されることが多くなる。このため、バックアップ時間の無駄が生じてしまう。
さらに、SSD103の書き込み可能回数には制限があるため、頻繁にバックアップを実施するとSSD103の寿命が短くなってしまう。
上記課題に鑑みて、1つの側面では、本発明は、メモリデータのバックアップ時間を短縮することを目的とする。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の1つとして位置付けることができる。
このため、メモリ制御装置は、第1の記憶装置へのアクセス履歴を記憶するアクセス履歴記憶部と、前記第1の記憶装置にアクセスが行なわれるたびに前記アクセス履歴記憶部にアクセス履歴を記憶し、前記アクセス履歴記憶部に記憶された前記アクセス履歴に基づいて、前記第1の記憶装置のデータのうち、前記第1の記憶装置への書き込みが1回のみであり、かつ前記第1の記憶装置への前記1回の書き込みが行なわれてから、基準時間が経過したデータのみを第2の記憶装置に記憶する制御部と、前記第1の記憶装置への書き込みが所定回数行なわれるのに要する時間を測定し、測定した当該時間を前記基準時間として決定する抽出部と、をそなえる。
又、情報処理装置は、第1の記憶装置と、第2の記憶装置と、前記第1の記憶装置へのアクセス履歴を記憶するアクセス履歴記憶部と、前記第1の記憶装置にアクセスが行なわれるたびに前記アクセス履歴記憶部にアクセス履歴を記憶し、前記アクセス履歴記憶部に記憶された前記アクセス履歴に基づいて、前記第1の記憶装置のデータのうち、前記第1の記憶装置への書き込みが1回のみであり、かつ前記第1の記憶装置への前記1回の書き込みが行なわれてから、基準時間が経過したデータのみを前記第2の記憶装置に記憶する制御部と、前記第1の記憶装置への書き込みが所定回数行なわれるのに要する時間を測定し、測定した当該時間を前記基準時間として決定する抽出部と、をそなえる。
さらに、メモリ制御方法は、第1の記憶装置にアクセスが行なわれるたびに、当該アクセスへのアクセス履歴をアクセス履歴記憶部に記録し、前記アクセス履歴記憶部に記憶された前記アクセス履歴に基づいて、前記第1の記憶装置のデータのうち、前記第1の記憶装置への書き込みが1回のみであり、かつ前記第1の記憶装置への前記1回の書き込みが行なわれてから、基準時間が経過したデータのみを第2の記憶装置に記憶し、前記第1の記憶装置への書き込みが所定回数行なわれるのに要する時間を測定し、測定した当該時間を前記基準時間として決定する。
開示の技術によれば、メモリデータのバックアップ時間を短縮することができる。
実施形態の一例としての情報処理装置のハードウェア構成を模式的に示す図である。 実施形態の一例としての情報処理装置における先行退避部の回路構成例を示す模式図である。 実施形態の一例としてのブロック管理テーブルを例示する図である。 実施形態の一例としての先行退避判定部の回路構成例を示す模式図である。 実施形態の一例としての情報処理装置におけるカウンタの動作論理を表形式で例示する図である。 実施形態の一例としての基準時間抽出部の回路構成例を示す模式図である。 実施形態の一例としてのメモリコントロールLSIの動作を示すフローチャートである。 実施形態の一例としての先行退避部による先行退避処理を示すフローチャートである。 実施形態の一例としての基準時間抽出部による基準時間抽出処理を示すフローチャートである。 従来の情報処理装置のハードウェア構成を模式的に示す図である。 従来のメモリコントロールLSIの動作を示すフローチャートである。
(A)ハードウェア構成
以下、図面を参照して本実施形態の一例としてのメモリ制御装置、情報処理装置及びメモリ制御方法を説明する。
最初に、情報処理装置1の構成について説明する。
図1は、実施形態の一例としての情報処理装置1のハードウェア構成を模式的に示す図である。
情報処理装置1は、例えば、サーバ機能をそなえた情報処理装置であり、CPU10、メモリコントロールLSI(メモリ制御装置)2、SSD(第2の記憶装置)3、及びDIMM(第1の記憶装置)4をそなえる。
本実施形態の一例としての情報処理装置1は、例えば、基幹系サーバであり、顧客情報(例えば、顧客の氏名や生年月日等)など、一度書き込まれると、その後は殆ど更新されることがない情報を、DIMM4に対して読み書きを行なう。
CPU10は、種々の制御や演算を行なう処理装置であり、DIMM4に格納されたOSやプログラムを実行することにより、種々の機能を実現する。CPU10としては、例えば、公知のCPUを用いることができる。
DIMM4は、CPU10が実行するプログラムや種々のデータ(以下、ユーザデータとも呼ぶ)や、CPU10の動作により得られたデータ等を一時的に格納する。DIMM4としては、例えば、RAMなどの公知のメモリを用いることができる。
SSD3は、DIMM4に記憶されているデータのバックアップ用の不揮発性記憶装置である。SSD3としては、公知のSSDを使用することができる。
メモリコントロールLSI2は、DIMM4の制御を行なうLSIである。又、メモリコントロールLSI2は、後述するコントロールIPコア5及びユーザ論理コントロール6経由で、DIMM4に記憶されているデータをSSD3にコピーして当該データをバックアップする。そして、メモリコントロールLSI2は、コントロールIPコア5及びユーザ論理コントロール6経由で、SSD3にバックアップしたデータをDIMM4に書き戻す(リストアする)。
本実施形態の一例としてのメモリコントロールLSI2は、DIMM4に記憶されているデータのうち、頻繁に更新されるデータは通常運用中はバックアップせず、情報処理装置1の電源断時など、DIMM4のバックアップ命令が発行された時にのみバックアップする。
一方、メモリコントロールLSI2は、DIMM4に記憶されているデータのうち、所定時間内に一度だけ更新された(すなわち、一度書き込まれて以降更新されていない)データを、通常運用中にバックグラウンドでバックアップする。以降、所定時間内に一度だけ更新されたデータをバックアップする処理を「先行退避」と呼ぶ。
このため、本実施形態の一例としてのメモリコントロールLSI2は、情報処理装置1の通常運用のバックグラウンドで、DIMM4の更新状態をブロック単位で監視し、1回更新されてから基準時間経過したブロックのみを、SSD3に先行退避する。
ここで、ブロックとは、メモリコントロールLSI2がSSD3に対してアクセスを行なう際の単位であり、例えば1ブロックは4キロバイト(KB)である。メモリコントロールLSI2は、DIMM4からSSD3へのデータのバックアップ(コピー)をブロック単位で行なうので、DIMM4のアクセスも、このブロック単位で監視している。
又、情報処理装置1の通常運用とは、情報処理装置1が電源投入されて完全に起動された後に、情報処理装置1がユーザにより目的の業務に使用されている状態を指す。
メモリコントロールLSI2は、コントロールIPコア5、ユーザ論理コントロール6、先行退避部(制御部)7、基準時間抽出部(抽出部)8、及びメモリコントローラ9をそなえる。
メモリコントローラ9は、DIMM4からのユーザデータの読み出し(Read)、及びDIMM4へのユーザデータの書き込み(Write)を制御する。
コントロールIPコア5及びユーザ論理コントロール6は、SSD3とDIMM4との間の通信を制御するインタフェースである。詳細には、コントロールIPコア5はSSD3と、ユーザ論理コントロール6はメモリコントローラ9とそれぞれ通信を行なう。
ユーザ論理コントロール6は、ユーザデータのフォーマットに応じて、SSD3とDIMM4との間の通信を制御するインタフェースである。
コントロールIPコア5及びユーザ論理コントロール6としては、公知のメモリインタフェースを使用することができる。
先行退避部7は、所定時間毎に、DIMM4内のデータの更新を監視し、DIMM4の全ブロックのうち、SSD3にデータを先行退避するブロックを特定する。
図2は、実施形態の一例としての情報処理装置1における先行退避部7の回路構成例を示す模式図である。
先行退避部7は、図8を用いて後述する先行退避処理を実行し、DIMM4に記憶されているデータのうち、所定時間内に一度だけ更新された(すなわち、一度書き込まれて以降更新されていない)データを、通常運用中にバックグラウンドでバックアップする。先行退避部7は、通常運用中に、先行退避処理を所定の時間間隔おきに実行する。この先行退避処理の実行間隔は、システム管理者等が、情報処理装置1の運用に応じて適宜設定することができる。
先行退避部7は、ブロック管理テーブル15と、先行退避判定部16とをそなえる。
ブロック管理テーブル15は、DIMM4へのデータの更新状況(アクセス履歴)を、DIMM4のブロック毎に更新フラグとして管理するテーブルである。ブロック管理テーブル15は、例えば、メモリコントロールLSI2内の不図示のStatic RAM(SRAM)などの揮発性メモリに記憶される。ブロック管理テーブル15のデータ構造例については、図3を用いて後述する。
先行退避判定部16は、後述するブロック管理テーブル15から更新フラグを読み出し、読み出した更新フラグに基づいて、DIMM4内の各ブロックについて、SSD3にデータを先行退避すべきかどうかの判定を行なう。つまり、先行退避判定部16は、DIMM4内の一度だけ更新された(つまり1回の書き込みのみの)各ブロックについて、その状態のまま(すなわち、ブロックのデータがその後更新されず)、基準時間が経過したかどうかを判定する。先行退避判定部16の詳細な構成及び機能については、図4を用いて後述する。
図3は、実施形態の一例としてのブロック管理テーブル15を例示する図である。
ブロック管理テーブル15は、DIMM4の全ブロックについて、そのブロックのデータの更新状況を示す更新フラグを格納している。
図3の例では、ブロック管理テーブル15は、アドレスADRS_1にDIMM4のブロック1,2の更新フラグを、アドレスADRS_2にブロック3,4の更新フラグを、アドレスADRS_3にブロック5,6の更新フラグ…を、それぞれ格納している。つまり、ブロック管理テーブル15のアドレス毎に、DIMM4の2ブロック分の更新フラグが格納される。
なお、ブロック管理テーブル15は、先行退避判定部16によって更新される。
各ブロックの更新フラグのデータ長は、例えば2ビットである。例えば、DIMM4の各ブロックについて、そのブロックが未更新の場合は“00”が、ブロックの更新が1回のみの場合は“01”が、ブロックが2回以上更新されている場合は“11”が、当該ブロックの更新フラグとして、それぞれブロック管理テーブル15に格納される。
図4は、実施形態の一例としての先行退避判定部16の回路構成例を示す模式図である。
先行退避判定部16は、基準時間レジスタ17、比較部18、カウンタ19、レジスタ20、及び論理演算部21,22をそなえる。
基準時間レジスタ17は、図3を用いて前述した基準時間抽出部8が抽出した基準時間を格納しているレジスタである。
比較部18は、基準時間レジスタ17の値とカウンタ19の値とを比較し、例えば両者が不一致の場合はLOW(例えば“0”)を、両者が一致する場合はHIGH(例えば“1”)を、後述するレジスタ20に出力する。
カウンタ19は、DIMM4のブロックが最初に更新されてからの経過時間をカウントするカウンタである。詳細には、カウンタ19は、ブロック更新テーブル15の2ビットの更新フラグの値が“01”を示したときに、後述する論理演算部21によってHIGHを入力され、カウントアップを開始する。その後、カウンタ19は、例えば、1時間毎に1カウントアップする。つまり、カウンタ19は、DIMM4への最初の書き込みが発生するとカウントアップが開始され、1時間毎に1カウントアップされる。
又、カウンタ19は、カウンタ値が基準時間値に達するとLOWが入力されてクリアされる。
図5に、カウンタ19の動作論理を表形式で例示する。
カウンタ19にLOWが入力されると、カウンタ19がリセットされ、図5の図に示すようにカウンタ値が“000”にセットされる。
そして、ブロック管理テーブル15の当該ブロックの更新フラグの値が“01”になると、カウンタ19のカウントアップが開始されて、例えば1時間毎にカウンタ値が1カウントアップされる。
図4のレジスタ20は、ブロック更新テーブル15から読み出された更新フラグ(2ビット)と、比較部18の比較結果(1ビット)とを保持するレジスタである。
論理演算部21は、図4の例ではAND回路である。論理演算部21は、レジスタ20の更新フラグ値の2ビット値が“01”以外のときはカウンタ19にLOWを出力する。論理演算部21は、レジスタ20の更新フラグ値の2ビット値が“01”のときはカウンタ19にHIGHを出力して、カウントアップを開始させる。
論理演算部22は、図4の例ではAND回路である。論理演算部22は、基準時間の経過を検知すると、HIGHを出力する。
つまり、図4の回路は、DIMM4内のブロックが、最初に書き込まれた後、基準時間が経過するまで、一度も更新されなかった(すなわち、一度だけ更新された)かどうかを判定する。ブロックが、最初の書き込み後、基準時間の経過までに一度も更新されなかった(つまり、一度だけ更新された)場合、論理演算部22は、例えばHIGHを出力して、当該ブロックをSSD3に先行退避させる対象である旨を先行退避部7に指示する。
図1を再度参照すると、基準時間抽出部8は、先行退避部7が、DIMM4内のデータが所定時間内に一度だけ更新されたかどうかを判定する際に用いる基準時間を抽出する。
図6は、実施形態の一例としての基準時間抽出部8の回路構成例を示す模式図である。
基準時間抽出部8は、DIMM4への書き込みが所定回数行なわれるのに要する時間を測定し、測定した時間を基準時間として決定(抽出)する。この基準時間は、先行退避部7によって、DIMM4内のデータが所定時間内に一度だけ更新されたかどうかを判定する際に用いられる。基準時間抽出部8は、相対時計11、比較部12、閾値レジスタ13、及びWRITE_ENABLE(WE)カウンタ14をそなえる。
相対時計11は、基準時間抽出処理に使用されるタイマである。相対時計11は、情報処理装置1の電源起動又はリセット(パワーオンリセット)時にカウントアップが開始され、比較部12によって停止される。そして、相対時計11は、比較部12によって停止された時点の相対時計11のカウンタ値を、基準時間として抽出して、必要に応じて変換を行なったのち、例えば基準時間レジスタ17(図4参照)に記憶する。
比較部12は、後述する閾値レジスタ13の値とWEカウンタ14の値とを比較する。両者が一致した場合、比較部12は、例えばHIGHを出力して、相対時計11のカウントダウンを停止させる。
閾値レジスタ13は、WEカウンタ14の値と比較される閾値を保持しているレジスタである。閾値レジスタ13に設定される閾値は、DIMM4への書き込み回数の閾値例えばシステム管理者等によって任意の適切な値に設定される。
WEカウンタ14は、DIMM4のブロックのデータの更新回数をカウントするカウンタである。WEカウンタ14は、DIMM4の書き込みを許可するWRITE_ENABLE信号を受信すると、例えばカウンタを1カウントアップする。
(B)動作
次に、実施形態の一例としてのメモリコントロールLSI2の動作を説明する。
図7は、実施形態の一例としてのメモリコントロールLSI2の動作を示すフローチャート(ステップS1〜S14)である。
ステップS1において、情報処理装置1の電源が投入されて、情報処理装置1の通常運用が開始される。
ステップS2において、先行退避部7がブロック管理テーブル15をクリアし、DIMM4の全ブロックの更新フラグを“00”にリセットする。
ステップS3において、先行退避判定部16が、DIMM4に対するアクセス命令を待機し、命令を受信したかどうかを判定する。
命令を受信していない場合(ステップS3のNOルート参照)、処理がステップS3に戻る。
一方、命令を受信した場合(ステップS3のYESルート参照)、ステップS4において、先行退避判定部16は、受信した命令がバックアップ命令かどうかを判定する。
バックアップ命令の場合(ステップS4のYESルート参照)、ステップS3で受信した命令が電源切断時のバックアップ命令であるので、ステップS5において、先行退避部7は、ブロック管理テーブル15から、DIMM4の全ブロックの更新フラグを読み出す。
ステップS6において、先行退避部7は、ブロック管理テーブル15の更新フラグの値が“00”以外のDIMM4のブロックのデータを、SSD3に退避(バックアップ)する。
ステップS7において、先行退避部7は、ステップS6でSSD3に退避した全ブロックについて、ブロック管理テーブル15の対応する更新フラグの値を“00”にセットする。その後、情報処理装置1の電源が切断されて通常運用が終了する。
一方、ステップS3で受信した命令がバックアップ命令ではない場合(ステップS4のNOルート参照)、ステップS8において、先行退避判定部16は、ステップS3で受信した命令がメモリライト命令かどうかを判定する。
ステップS3で受信した命令がメモリライト命令ではない場合(ステップS8のNOルート参照)、命令はメモリリード命令である。このため、ステップS9において、メモリコントローラ9はDIMM4に対するメモリリード命令を実行し、その後ステップS3に戻り、次の命令を待機する。
一方、ステップS3で受信した命令がメモリライト命令の場合(ステップS8のYESルート参照)、ステップS10において、メモリコントローラ9はDIMM4に対するメモリライトを実行する。
ステップS10でメモリライトを実行した後、ステップS3に戻って通常運用が継続される。これと並行して、先行退避部7は、ステップS11〜S14のフラグ更新処理を、通常運用のバックグラウンドで開始する。
ステップS11において、先行退避判定部16は、ステップS10でDIMM4にライトしたブロックに対応する、ブロック管理テーブル15の更新フラグの値を読み込む。
ステップS12において、先行退避判定部16は、レジスタ20に読み込んだ更新フラグの値が“00”であるかどうかを判定する。前述のように、“00”は更新フラグの初期値であり、更新フラグにこの値が設定されているブロックは、情報処理装置1の起動後、未だ更新されていない(データが書き込まれていない)ことを示す。
更新フラグの値が“00”の場合(ステップS12のYESルート参照)、ステップS13において、先行退避判定部16は、ブロック管理テーブル15の対応する更新フラグの値を、対応するブロックが1回のみ更新されていることを示す“01”にセットして、フラグ更新処理を終了する(通常運用は継続される)。
更新フラグの値が“00”以外の場合(ステップS12のNOルート参照)、ステップS14において、先行退避判定部16は、ブロック管理テーブル15の対応する更新フラグの値を、対応するブロックが2回以上書き込まれていることを示す値である“11”にセットして、フラグ更新処理を終了する(通常運用は継続される)。
図8は、実施形態の一例としての先行退避部7による先行退避処理を示すフローチャート(ステップS21〜S24)である。
この先行退避処理は、通常運用中に、通常運用の処理と並行してバックグラウンドで実行される。
ステップS21において、先行退避部7は、情報処理装置1の電源が切断されたかどうかを判定する。
情報処理装置1の電源が切断された場合(ステップS21のYESルート参照)、先行退避部7は先行退避処理を終了する。
情報処理装置1の電源が切断されていない場合(ステップS21のNOルート参照)、ステップS22において、先行退避部7は、ブロック管理テーブル15から、全更新フラグを読み出す。そして、読み出した更新フラグの値が“01”であり、かつ更新フラグが値“01”にセットされてから、基準時間抽出部8によって抽出された基準時間が経過したブロックが存在するかどうかを判定する。
ステップS22で条件を満たすブロック(すなわち、1回書き込まれてから更新されていないデータ)が存在しない場合(ステップS22のNOルート参照)、先行退避部7はステップS21に戻って、先行退避処理を繰り返す。
一方、ステップS22で条件を満たすブロックが存在する場合(ステップS22のYESルート参照)、ステップS23において、先行退避部7は、更新フラグの値が“01”であり、かつ更新フラグが値“01”にセットされてから基準時間が経過した全てのブロックのデータを、SSD3にコピーする。
次にステップS24において、先行退避部7は、ステップS23でSSD3にコピーしたブロックに対応する、ブロック更新テーブル15の更新フラグをクリア(すなわち“00”をセット)する。その後、先行退避部7はステップS21に戻って、先行退避処理を繰り返す。
図9は、実施形態の一例としての基準時間抽出部8による基準時間抽出処理を示すフローチャート(ステップS31〜S37)である。
基準時間抽出部8は、情報処理装置1の電源が投入されている間は常に、基準時間抽出処理を実行する。そして基準時間抽出部8が抽出した最新の基準時間が、先行退避部7によって、図8のステップS22で用いられる。
ステップS31において、基準時間抽出部8は、相対時計11をリセットする。
次に、ステップS32において、相対時計11はタイマ動作(計時)を開始する。
ステップS33において、基準時間抽出部8は、DIMM4のライトアクセス(WRITE_ENABLE等)を監視し、ライトアクセスを観測したらWEカウンタ14をカウントアップする。
ステップS34において、比較部12は、WEカウンタ14のカウンタ値が閾値レジスタ13に格納されている、DIMM4のアクセス回数閾値に達したかどうかを判定する。
WEカウンタ14のカウンタ値が閾値に達していない場合(ステップS34のNOルート参照)、処理はステップS33に戻り、基準時間抽出部8はDIMM4のアクセスの監視を続ける。
一方、WEカウンタ14のカウンタ値が閾値に達した場合(ステップS34のYESルート参照)、ステップS35において、基準時間抽出部8はWEカウンタ14をクリアする。
ステップS36において、比較部12は、相対時計11を停止させ、基準時間抽出部8は、相対時計11のタイマ値を、基準時間として抽出する。
ステップS37において、相対時計11は、ステップS36で抽出したタイマ値を、基準時間として適用する(例えば、必要に応じて時間の単位を変換した後、図4の基準時間レジスタ17に格納する)。
その後処理がステップS31に戻り、基準時間抽出部8は上記の基準時間抽出処理を繰り返す。
(C)効果
前述の如く、上記の実施形態の一例によれば、先行退避部7が、DIMM4のデータの更新状況を監視し、更新状況を、DIMM4のブロック単位でブロック管理テーブル15に記録する。そして、先行退避部7は、ブロック管理テーブル15に基づいて、DIMM4の全ブロックのうち、一度だけ更新された(すなわち、一度書き込まれて以降更新されていない)ブロックのデータのみをSSD3に先行退避する。
つまり、頻繁に更新されるデータは通常運用時には退避せず、情報処理装置1の電源断時など、DIMM4のバックアップ命令が発行された時にのみ退避する。一方、所定時間内に一度だけ更新された(すなわち、一度書き込まれて以降更新されていない)データは、通常運用中のバックグラウンドで先行退避を実施する。
これにより、情報処理装置1の電源切断時など、DIMM4に対してバックアップ命令が発行されたときに、ブロック管理テーブル15の更新フラグに、例えば“00”以外の値が設定されているブロックのみをSSD3にバックアップするだけで済む。このため、DIMM4のデータのバックアップが高速化される。例えば、従来は10分要していたバックアップが、本実施形態の一例においては1分程度で終了する。
一例を挙げると、DIMM4全体のメモリ空間が128GBの情報処理装置1において、DIMM4の実使用エリアが合計32GB程度であり、1回しか更新されないデータがDIMM4全体の6割程度を占める場合、この6割のデータが通常運用中に先行退避される。情報処理装置1の故障の際等に、DIMM4のバックアップを行なう場合、1回しか更新されないデータは先にSSD3に先にコピーされているので、バックアップすべき残りの容量は12.8GBである。このため、DIMM4のバックアップ時間を大幅に短縮できる。
又、先行退避部7は、この先行退避を、通常運用のバックグラウンドで実行するため、先行退避によって通常運用が妨害されることはない。
さらに、DIMM4のメモリ空間がブロックに分割されるので、DIMM4のアクセス管理の効率が向上する。又、SSD3への無駄な退避を減少でき、エラーによる情報処理装置1の電源断時など、バックアップ時にバックアップ時間が短縮される。
さらに、基準時間抽出部8が、常時、基準時間抽出処理を実行し、DIMM4へのデータアクセス状況に応じて、SSD3への先行退避の判定に用いる基準時間を求める。このため、DIMM4へのデータアクセス状況に応じて、先行退避の頻度を最適化することができる。
DIMM4のデータの更新頻度を監視して、バックアップ対象のブロックを事前に特定することで、SSD3への書き込み回数を抑えることができ、SSD3の長寿命化を図ることができる。
(D)その他
なお、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、上記の実施形態の一例においては、メモリのバックアップ媒体としてSSD3を使用したが、バックアップ媒体として他の不揮発性記憶装置を使用してもよい。
又は、上記の実施形態においては、DIMM4の内容をSSD3にバックアップしたが、情報処理装置1の他のメモリの内容をSSD3にバックアップしてもよい。
或いは、上記の実施形態の一例においては、最初に更新されてから1時間経過したDIMM4のブロックのデータをSSD3に先行退避させていたが、情報処理装置1の運用状況等に応じて、システム管理者等によって、ほかの任意の待機時間が設定されてもよい。例えば、上記の実施形態の一例においては、カウンタ19が1時間毎に1カウントアップしていたが、カウンタ19が7時間毎に1カウントアップしてもよい。
又は、図3に示したブロック管理テーブル15の構造は例示に過ぎず、ブロック管理テーブル15にほかのデータ構造を採用してもよい。
さらに、上記の実施形態の一例においては、先行退避部7、基準時間抽出部8及び先行退避判定部16をハードウェアによって実装していたが、これらの少なくとも1つを、ソフトウェア及び/又はファームウェアによって実装してもよい。
先行退避部7、基準時間抽出部8、及び先行退避判定部16をソフトウェアによって実装する場合、先行退避部7、基準時間抽出部8、及び先行退避判定部16としての機能を実現するためのプログラムは、例えばフレキシブルディスク,CD(CD−ROM,CD−R,CD−RW等),DVD(DVD−ROM,DVD−RAM,DVD−R,DVD+R,DVD−RW,DVD+RW,HD DVD等),ブルーレイディスク,磁気ディスク,光ディスク,光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、情報処理装置1はその記録媒体から図示しないドライブ装置を介してプログラムを読み取って内部記録装置又は外部記録装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体)に記録しておき、その記憶装置から通信経路を介して情報処理装置1に提供してもよい。
先行退避部7、基準時間抽出部8、及び先行退避判定部16としての機能を実現する際には、不図示の記録媒体に格納されたプログラムが情報処理装置1のマイクロプロセッサ(CPU10など)によって実行される。このとき、記録媒体に記録されたプログラムを情報処理装置1が読み取って実行してもよい。
以上の実施形態に関し、さらに以下の付記を開示する。
(付記1)
第1の記憶装置へのアクセス履歴を記憶するアクセス履歴記憶部と、
前記第1の記憶装置にアクセスが行なわれるたびに前記アクセス履歴記憶部にアクセス履歴を記憶し、前記アクセス履歴記憶部に記憶された前記アクセス履歴に基づいて、前記第1の記憶装置のデータのうち、アクセス回数が所定値以下のデータを第2の記憶装置に記憶する制御部と、
をそなえることを特徴とするメモリ制御装置。
(付記2)
前記制御部は、前記アクセス履歴に基づいて、前記第1の記憶装置への書き込みが1回のみのデータを前記第2の記憶装置に記憶することを特徴とする付記1記載のメモリ制御装置。
(付記3)
前記制御部は、前記アクセス履歴に基づいて、前記第1の記憶装置への書き込みが1回のみであり、かつ前記第1の記憶装置への前記1回の書き込みが行なわれてから、基準時間が経過したデータのみを前記第2の記憶装置に記憶することを特徴とする付記2記載のメモリ制御装置。
(付記4)
前記第1の記憶装置への書き込みが所定回数行なわれるのに要する時間を測定し、測定した当該時間を前記基準時間として決定する抽出部をさらにそなえることを特徴とする付記3記載のメモリ制御装置。
(付記5)
前記制御部は、前記第1の記憶装置のデータのバックアップ指示が行なわれると、前記第1の記憶装置の前記データのうち、前記第2の記憶装置に記憶したデータ以外の全データを、前記第2の記憶装置に記憶することを特徴とする付記1〜4のいずれか1項に記載のメモリ制御装置。
(付記6)
第1の記憶装置と、
第2の記憶装置と、
前記第1の記憶装置へのアクセス履歴を記憶するアクセス履歴記憶部と、
前記第1の記憶装置にアクセスが行なわれるたびに前記アクセス履歴記憶部にアクセス履歴を記憶し、前記アクセス履歴記憶部に記憶された前記アクセス履歴に基づいて、前記第1の記憶装置のデータのうち、アクセス回数が所定値以下のデータを前記第2の記憶装置に記憶する制御部と、
をそなえることを特徴とする情報処理装置。
(付記7)
前記制御部は、前記アクセス履歴に基づいて、前記第1の記憶装置への書き込みが1回のみのデータを前記第2の記憶装置に記憶することを特徴とする付記6記載の情報処理装置。
(付記8)
前記制御部は、前記アクセス履歴に基づいて、前記第1の記憶装置への書き込みが1回のみであり、かつ前記第1の記憶装置への前記1回の書き込みが行なわれてから、基準時間が経過したデータのみを前記第2の記憶装置に記憶することを特徴とする付記7記載の情報処理装置。
(付記9)
前記第1の記憶装置への書き込みが所定回数行なわれるのに要する時間を測定し、測定した当該時間を前記基準時間として決定する抽出部をさらにそなえることを特徴とする付記8記載の情報処理装置。
(付記10)
前記制御部は、前記第1の記憶装置のデータのバックアップ指示が行なわれると、前記第1の記憶装置の前記データのうち、前記第2の記憶装置に記憶したデータ以外の全データを、前記第2の記憶装置に記憶することを特徴とする付記6〜9のいずれか1項に記載の情報処理装置。
(付記11)
第1の記憶装置にアクセスが行なわれるたびに、当該アクセスへのアクセス履歴をアクセス履歴記憶部に記録し、
前記アクセス履歴記憶部に記憶された前記アクセス履歴に基づいて、前記第1の記憶装置のデータのうち、アクセス回数が所定値以下のデータを第2の記憶装置に記憶する
ことを特徴とするメモリ制御方法。
(付記12)
前記アクセス履歴に基づいて、前記第1の記憶装置への書き込みが1回のみのデータを前記第2の記憶装置に記憶することを特徴とする付記11記載のメモリ制御方法。
(付記13)
前記アクセス履歴に基づいて、前記第1の記憶装置への書き込みが1回のみであり、かつ前記第1の記憶装置への前記1回の書き込みが行なわれてから、基準時間が経過したデータのみを前記第2の記憶装置に記憶することを特徴とする付記12記載のメモリ制御方法。
(付記14)
前記第1の記憶装置への書き込みが所定回数行なわれるのに要する時間を測定し、測定した当該時間を前記基準時間として決定することを特徴とする付記13記載のメモリ制御方法。
(付記15)
前記第1の記憶装置のデータのバックアップ指示が行なわれると、前記第1の記憶装置の前記データのうち、前記第2の記憶装置に記憶したデータ以外の全データを、前記第2の記憶装置に記憶することを特徴とする付記11〜14のいずれか1項に記載のメモリ制御方法。
1 情報処理装置
2 メモリコントロールLSI(メモリ制御装置)
3 SSD(第2の記憶装置)
4 DIMM(第1の記憶装置)
5 コントロールIPコア
6 ユーザ論理コントロール
7 先行退避部(制御部)
8 基準時間抽出部(抽出部)
9 メモリコントローラ
10 CPU
11 相対時計
12 比較部
13 閾値レジスタ
14 WEカウンタ
15 ブロック管理テーブル
16 先行退避判定部
17 基準時間レジスタ
18 比較部
19 カウンタ
20 レジスタ
21,22 論理演算部

Claims (4)

  1. 第1の記憶装置へのアクセス履歴を記憶するアクセス履歴記憶部と、
    前記第1の記憶装置にアクセスが行なわれるたびに前記アクセス履歴記憶部にアクセス履歴を記憶し、前記アクセス履歴記憶部に記憶された前記アクセス履歴に基づいて、前記第1の記憶装置のデータのうち、前記第1の記憶装置への書き込みが1回のみであり、かつ前記第1の記憶装置への前記1回の書き込みが行なわれてから、基準時間が経過したデータのみを第2の記憶装置に記憶する制御部と、
    前記第1の記憶装置への書き込みが所定回数行なわれるのに要する時間を測定し、測定した当該時間を前記基準時間として決定する抽出部と、
    をそなえることを特徴とするメモリ制御装置。
  2. 前記制御部は、前記第1の記憶装置のデータのバックアップ指示が行なわれると、前記第1の記憶装置の前記データのうち、前記第2の記憶装置に記憶したデータ以外の全データを、前記第2の記憶装置に記憶することを特徴とする請求項1に記載のメモリ制御装置。
  3. 第1の記憶装置と、
    第2の記憶装置と、
    前記第1の記憶装置へのアクセス履歴を記憶するアクセス履歴記憶部と、
    前記第1の記憶装置にアクセスが行なわれるたびに前記アクセス履歴記憶部にアクセス履歴を記憶し、前記アクセス履歴記憶部に記憶された前記アクセス履歴に基づいて、前記
    第1の記憶装置のデータのうち、前記第1の記憶装置への書き込みが1回のみであり、かつ前記第1の記憶装置への前記1回の書き込みが行なわれてから、基準時間が経過したデータのみを前記第2の記憶装置に記憶する制御部と、
    前記第1の記憶装置への書き込みが所定回数行なわれるのに要する時間を測定し、測定した当該時間を前記基準時間として決定する抽出部と、
    をそなえることを特徴とする情報処理装置。
  4. 第1の記憶装置にアクセスが行なわれるたびに、当該アクセスへのアクセス履歴をアクセス履歴記憶部に記録し、
    前記アクセス履歴記憶部に記憶された前記アクセス履歴に基づいて、前記第1の記憶装置のデータのうち、前記第1の記憶装置への書き込みが1回のみであり、かつ前記第1の記憶装置への前記1回の書き込みが行なわれてから、基準時間が経過したデータのみを第2の記憶装置に記憶し、
    前記第1の記憶装置への書き込みが所定回数行なわれるのに要する時間を測定し、測定した当該時間を前記基準時間として決定する
    ことを特徴とするメモリ制御方法。
JP2015538652A 2013-09-24 2013-09-24 メモリ制御装置、情報処理装置、及びメモリ制御方法 Active JP6004115B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/075684 WO2015044999A1 (ja) 2013-09-24 2013-09-24 メモリ制御装置、情報処理装置、及びメモリ制御方法

Publications (2)

Publication Number Publication Date
JP6004115B2 true JP6004115B2 (ja) 2016-10-05
JPWO2015044999A1 JPWO2015044999A1 (ja) 2017-03-02

Family

ID=52742213

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015538652A Active JP6004115B2 (ja) 2013-09-24 2013-09-24 メモリ制御装置、情報処理装置、及びメモリ制御方法

Country Status (2)

Country Link
JP (1) JP6004115B2 (ja)
WO (1) WO2015044999A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7302392B2 (ja) * 2019-09-05 2023-07-04 富士通株式会社 ファイルデータ管理装置,ファイルデータ管理プログラム及びファイルデータ管理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0457131A (ja) * 1990-06-26 1992-02-24 Nec Corp データ退避方式
US20070208917A1 (en) * 2006-03-03 2007-09-06 Takashi Inagaki Method and apparatus for performing data backup
US20090281690A1 (en) * 2008-05-12 2009-11-12 Denso Corporation Electronic apparatus and program storage medium

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0457131A (ja) * 1990-06-26 1992-02-24 Nec Corp データ退避方式
US20070208917A1 (en) * 2006-03-03 2007-09-06 Takashi Inagaki Method and apparatus for performing data backup
JP2007233961A (ja) * 2006-03-03 2007-09-13 Internatl Business Mach Corp <Ibm> データバックアップのための装置、方法、及びプログラム
US20090281690A1 (en) * 2008-05-12 2009-11-12 Denso Corporation Electronic apparatus and program storage medium
JP2009276820A (ja) * 2008-05-12 2009-11-26 Denso Corp 電子機器及びプログラム

Also Published As

Publication number Publication date
JPWO2015044999A1 (ja) 2017-03-02
WO2015044999A1 (ja) 2015-04-02

Similar Documents

Publication Publication Date Title
US8370720B2 (en) Mass storage device and method for offline background scrubbing of solid-state memory devices
TWI353536B (en) Virtualized storage computer system and method of
RU2728816C2 (ru) Отслеживание &#34;грязных&#34; областей энергонезависимых носителей
JP4215746B2 (ja) 情報処理装置および寿命監視方法
JP6105165B2 (ja) Nandメモリデバイス内に記憶されたデータのフェールセーフリフレッシュ
TW201528281A (zh) 資料儲存裝置以及快閃記憶體控制方法
JP2014137711A (ja) ストレージ装置、バックアッププログラム、およびバックアップ方法
JP2014048679A (ja) Ssd(ソリッドステートドライブ)装置
US20140317444A1 (en) Storage control device and storage device
CN105224891A (zh) 磁盘光盘融合数据安全存储方法、系统及装置
US20110145480A1 (en) Flash memory storage system for simulating rewritable disc device, flash memory controller, computer system, and method thereof
US9910859B2 (en) Support for WORM cartridges realized by linear tape file system (LTFS)
JP2019133633A (ja) 電子コンピュータ装置及び方法
JP6069962B2 (ja) 情報処理装置、領域解放制御プログラム、および領域解放制御方法
JP6004115B2 (ja) メモリ制御装置、情報処理装置、及びメモリ制御方法
JP7063445B2 (ja) 障害情報処理プログラム、コンピュータ、障害通知方法、コンピュータシステム
JP5217452B2 (ja) 情報処理装置及びシステム、並びに、記憶領域管理方法及びプログラム
JP2006343923A (ja) ディスク記録装置
JP6264012B2 (ja) 制御装置、及び制御プログラム
JP6142608B2 (ja) ストレージシステム、制御装置および制御方法
CN115904787A (zh) 一种丢盘原因确定方法、装置及介质
US9286936B1 (en) Zone based band mapping
US20170357545A1 (en) Information processing apparatus and information processing method
JP2007094767A (ja) メモリ制御装置及びメモリ制御方法
JP2008059007A (ja) 半導体記憶装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160719

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160809

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160822

R150 Certificate of patent or registration of utility model

Ref document number: 6004115

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150