(57)【要約】  データのバックアップに要する時間を短縮する。  記憶制御装置は、記憶部（１３）および制御部（１４）を有する。記憶部（１３）は、記憶装置（１１）の記憶領域のうち、データが書き込まれた領域を示す使用領域（＃１，＃２）が登録された領域管理情報（１３ａ）を記憶する。制御部（１４）は、記憶装置（１１）の記憶領域のうち、領域管理情報（１３ａ）に登録された使用領域（＃１，＃２）に記憶されたデータを、記憶装置（１２）に保存する。これにより、記憶装置（１１）におけるデータが書き込まれた領域のみ、記憶内容の転送処理が行われる。
2015040694.tif 000002
【特許請求の範囲】
【請求項１】
第１の記憶装置の記憶領域のうち、データが書き込まれた領域を示す使用領域が登録される領域管理情報を記憶する記憶部と、
前記第１の記憶装置の記憶領域のうち、前記領域管理情報に登録された使用領域に記憶されたデータを、第２の記憶装置に保存する制御部と、
を有することを特徴とする記憶制御装置。
【請求項２】
前記第１の記憶装置へのデータの書き込み要求および書き込みアドレスを受信したとき、受信した書き込みアドレスが示す書き込み領域を、使用領域として前記領域管理情報に登録する領域管理部をさらに有することを特徴とする請求項１記載の記憶制御装置。
【請求項３】
前記領域管理情報には、それぞれ連続するアドレス範囲を示す使用領域が１以上登録され、
前記領域管理部は、前記領域管理情報に登録されている使用領域のうち、前記書き込み領域と重複する１以上の使用領域を、前記書き込み領域とマージし、前記重複する１以上の使用領域を前記領域管理情報から削除し、マージによって生成された使用領域を前記領域管理情報に登録する、
ことを特徴とする請求項２記載の記憶制御装置。
【請求項４】
前記領域管理部は、前記領域管理情報に登録されている使用領域のうち、前記書き込み領域と重複している使用領域が存在しない場合、前記書き込み領域との間隔が最も近い使用領域を選択し、選択した使用領域を前記書き込み領域とマージし、前記選択した使用領域をマージによって生成された使用領域に置き換えることを特徴とする請求項２または３のいずれか１項に記載の記憶制御装置。
【請求項５】
前記領域管理部は、前記選択した使用領域と前記書き込み領域との距離が閾値未満の場合に、前記選択した使用領域を前記書き込み領域とマージし、前記選択した使用領域をマージによって生成された使用領域に置き換えることを特徴とする請求項４記載の記憶制御装置。
【請求項６】
前記領域管理部は、前記書き込み領域が前記領域管理情報に登録されている使用領域のいずれかに包含されている場合、前記領域管理情報の更新を回避することを特徴とする請求項２乃至５のいずれか１項に記載の記憶制御装置。
【請求項７】
前記第１の記憶装置の記憶領域は、複数の分割領域に分割され、
前記記憶部は、前記複数の分割領域それぞれにおける使用領域が登録される複数の領域管理情報を記憶し、前記複数の領域管理情報のそれぞれには一定数を上限とする複数の使用領域が登録されることを特徴とする請求項１乃至６のいずれか１項に記載の記憶制御装置。
【請求項８】
前記制御部は、前記第２の記憶装置にデータを保存する際、前記保存したデータに対応する使用領域に関する情報を前記第２の記憶装置に保存し、前記第２の記憶装置に保存されたデータを前記第１の記憶装置へ書き戻す際、前記使用領域に関する情報に基づき、前記第１の記憶装置におけるデータの記憶状態を、前記第２の記憶装置にデータを保存する直前の状態に復元することを特徴とする請求項１乃至７のいずれか１項に記載の記憶制御装置。
【請求項９】
第１の記憶装置の記憶領域のうち、データが書き込まれた領域を示す使用領域を領域管理情報に登録し、
前記第１の記憶装置の記憶領域のうち、前記領域管理情報に登録された使用領域に記憶されたデータを、第２の記憶装置に保存する、
ことを特徴とする記憶制御方法。
【請求項１０】
前記領域管理情報への使用領域の登録では、前記第１の記憶装置へのデータの書き込み要求および書き込みアドレスを受信したとき、受信した書き込みアドレスが示す書き込み領域を、使用領域として前記領域管理情報に登録することを特徴とする請求項９記載の記憶制御方法。
【請求項１１】
前記領域管理情報には、それぞれ連続するアドレス範囲を示す使用領域が１以上登録され、
前記領域管理情報への使用領域の登録では、前記領域管理情報に登録されている使用領域のうち、前記書き込み領域と重複する１以上の使用領域を、前記書き込み領域とマージし、前記重複する１以上の使用領域を前記領域管理情報から削除し、マージによって生成された使用領域を前記領域管理情報に登録する、
ことを特徴とする請求項１０記載の記憶制御方法。
【請求項１２】
前記領域管理情報への使用領域の登録では、前記領域管理情報に登録されている使用領域のうち、前記書き込み領域と重複している使用領域が存在しない場合、前記書き込み領域との間隔が最も近い使用領域を選択し、選択した使用領域を前記書き込み領域とマージし、前記選択した使用領域をマージによって生成された使用領域に置き換えることを特徴とする請求項１０または１１のいずれか１項に記載の記憶制御方法。
【請求項１３】
前記領域管理情報への使用領域の登録では、前記選択した使用領域と前記書き込み領域との距離が閾値未満の場合に、前記選択した使用領域を前記書き込み領域とマージし、前記選択した使用領域をマージによって生成された使用領域に置き換えることを特徴とする請求項１２記載の記憶制御方法。
【請求項１４】
前記領域管理情報への使用領域の登録では、前記書き込み領域が前記領域管理情報に登録されている使用領域のいずれかに包含されている場合、前記領域管理情報の更新を回避することを特徴とする請求項１０乃至１３のいずれか１項に記載の記憶制御方法。
【請求項１５】
前記第１の記憶装置の記憶領域は、複数の分割領域に分割され、前記領域管理情報は、前記複数の分割領域それぞれにおける使用領域が登録されるように複数用意され、前記複数の領域管理情報のそれぞれには一定数を上限とする複数の使用領域が登録されることを特徴とする請求項９乃至１４のいずれか１項に記載の記憶制御方法。
【請求項１６】
前記第２の記憶装置にデータを保存する際、前記保存したデータに対応する使用領域に関する情報を前記第２の記憶装置に保存し、
前記記憶制御方法は、さらに、前記第２の記憶装置に保存された前記使用領域に関する情報に基づいて、前記第２の記憶装置に保存されたデータを前記第１の記憶装置へ書き戻し、前記第１の記憶装置におけるデータの記憶状態を、前記第２の記憶装置にデータを保存する直前の状態に復元する、
処理を含むことを特徴とする請求項９乃至１５のいずれか１項に記載の記憶制御方法。
【請求項１７】
コンピュータに、
第１の記憶装置の記憶領域のうち、データが書き込まれた領域を示す使用領域を領域管理情報に登録し、
前記第１の記憶装置の記憶領域のうち、前記領域管理情報に登録された使用領域に記憶されたデータを、第２の記憶装置に保存する、
処理を実行させることを特徴とする記憶制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶制御装置、記憶制御方法および記憶制御プログラムに関する。
【背景技術】
【０００２】
データのバックアップ技術の一例として、ある記憶装置の記憶領域全体の内容を、その中に実際にデータが書き込まれているかに関係なく、他の記憶装置へバックアップするという技術がある。この技術は、バックアップの制御が簡単になる反面、実際にデータが書き込まれていない記憶領域の内容も他の記憶装置へ転送される分だけ、転送に要する時間が長くなるという問題がある。【０００３】
このような問題に関連し、ハイバネーションの高速化を図る技術として次のようなものがある。
例えば、計算機システムを起動する前に、主記憶装置の全領域に予め決められた固定データを書き込み、ハイバネーション処理の実施時に、主記憶装置の領域を区切った分割領域のうち、全域に固定データが書き込まれたままの領域を未使用領域と判定し、その領域に対しては、内容の固定記憶装置への転送を省略する技術が提案されている。【０００４】
また、例えば、ハイバネーションの際に、ページ毎にプログラムのマッピング状態を示すページインフォメーションに基づいて、空き領域および破棄可能領域を除く他の領域のみを使用中メモリとして、ＨＤＤ（Hard Disk Drive）へセーブする技術が提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平９−３１９６６７号公報
【特許文献２】特開平１０−３３３９９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、ハイバネーションの高速化を図る上記技術のいずれも、メモリ領域を予め決められた一定の大きさに分割した分割領域毎に、ＨＤＤへデータを転送するか否かを判定するものである。このため、依然として、実際にはデータが書き込まれていない領域の内容がＨＤＤに転送され、その分だけデータ転送に要する時間が長くなるという問題が残る。【０００７】
１つの側面では、本発明は、データのバックアップに要する時間を短縮した記憶制御装置、記憶制御方法および記憶制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
１つの案では、記憶制御装置が提供される。記憶制御装置は、記憶部および制御部を有する。記憶部は、第１の記憶装置の記憶領域のうち、データが書き込まれた領域を示す使用領域が登録される領域管理情報を記憶する。制御部は、第１の記憶装置の記憶領域のうち、領域管理情報に登録された使用領域に記憶されたデータを、第２の記憶装置に保存する。【０００９】
また、１つの案では、上記記憶制御装置と同様の処理を実行する記憶制御方法が提供される。
さらに、１つの案では、上記記憶制御装置と同様の機能を実現する記憶制御プログラムが提供される。
【発明の効果】
【００１０】
一側面では、データのバックアップに要する時間を短縮できる。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【図面の簡単な説明】
【００１１】
【図１】第１の実施の形態の記憶制御装置の構成例および処理例を示す図である。
【図２】第２の実施の形態の情報処理システムの例を示す図である。
【図３】管理装置のハードウェア構成例を示す図である。
【図４】システム記憶装置のハードウェア構成例を示す図である。
【図５】データの書き込みの制限の例を示す図である。
【図６】データの書き込みの制限の例を示す図（続き）である。
【図７】管理レジスタの例を示す図である。
【図８】書き込み要求に伴う管理レジスタへの登録処理の例を示す図である。
【図９】書込要求領域が実使用領域と重複しない場合の管理レジスタの更新例を示す図である。
【図１０】書込要求領域が実使用領域と重複しない場合の管理レジスタの更新例を示す図（続き）である。
【図１１】書込要求領域が実使用領域と重複する場合の管理レジスタの更新例を示す図である。
【図１２】書込要求領域が実使用領域と重複する場合の管理レジスタの更新例を示す図（続き）である。
【図１３】書込要求領域が実使用領域と重複する場合の管理レジスタの更新例を示す図（続き２）である。
【図１４】書込要求領域が実使用領域に包含される場合の管理レジスタの更新例を示す図である。
【図１５】書込要求領域と実使用領域との間隔に基づく管理レジスタの更新例を示す図である。
【図１６】書込要求領域と実使用領域との間隔に基づく管理レジスタの更新例を示す図（続き）である。
【図１７】書込要求領域が複数の実使用領域と重複する場合の管理レジスタの更新例を示す図である。
【図１８】書込要求領域が複数のいずれの実使用領域とも重複しない場合の管理レジスタの更新例を示す図である。
【図１９】管理レジスタの更新処理の例を示すフローチャートである。
【図２０】管理レジスタの更新処理の例を示すフローチャート（続き）である。
【図２１】復元管理情報およびその記録処理の例を示す図である。
【図２２】バックアップ処理の例を示すフローチャートである。
【図２３】復元処理の例を示すフローチャートである。
【図２４】第３の実施の形態に係るシステム記憶装置のハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１２】
以下、本実施の形態を図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態の記憶制御装置の構成例および処理例を示す図である。記憶制御装置１０は、記憶装置１１（第１の記憶装置）に記憶されているデータを、記憶装置１２（第２の記憶装置）にバックアップする機能を有する装置である。記憶装置１１，１２は、ＲＡＭ（Random Access Memory）やＤＩＭＭ（Dual Inline Memory Module）等の揮発性メモリでもよく、ＳＳＤ（Solid State Drive）やＨＤＤ等の不揮発性記憶装置であってもよい。また、記憶装置１１，１２は、異なる種類の記憶装置であってもよい。例えば、記憶装置１１が揮発性メモリであり、記憶装置１２が不揮発性記憶装置であってもよい。また、記憶装置１１，１２は、複数個の揮発性メモリまたは不揮発性記憶装置で構成されたものであってもよい。
【００１３】
記憶制御装置１０は、記憶部１３および制御部１４を有する。
記憶部１３は、領域管理情報１３ａを記憶する。領域管理情報１３ａには、記憶装置１１の記憶領域のうち、データが書き込まれた領域を示す使用領域が登録される。なお、データが書き込まれた領域を領域管理情報１３ａに登録する方法としては、例えば、記憶制御装置１０が第１の記憶装置１１へのデータの書き込み要求と書き込みアドレスとを受信したとき、受信した書き込みアドレスが示す書込領域を、使用領域として領域管理情報１３ａに登録する方法がある。
【００１４】
制御部１４は、記憶装置１１の記憶領域のうち、領域管理情報１３ａに登録された使用領域に記憶されたデータを、記憶装置１２に保存する。
例えば、図１では、“０ｘ０１００〜０ｘ０２００”のアドレス範囲である使用領域＃１と、“０ｘ０３００〜０ｘ０５００”のアドレス範囲である使用領域＃２とが、領域管理情報１３ａに登録されているとする。この場合、制御部１４は、第１の記憶装置１１の記憶領域のうち、使用領域＃１に記憶されているデータと、使用領域＃２に記憶されているデータのみを第２の記憶装置１２に保存する。
【００１５】
このように、記憶制御装置１０は、使用領域が登録された領域管理情報１３ａに基づいて、第１の記憶装置１１のデータを第２の記憶装置１２へ保存する。これにより、記憶制御装置１０は、第１の記憶装置１１の記憶領域のうち、データが書き込まれた領域の内容だけを第２の記憶装置１２へ転送することができる。その結果、必要最小限の領域の内容だけが第１の記憶装置１１から第２の記憶装置１２へ転送され、データのバックアップに要する時間が短縮される。
【００１６】
［第２の実施の形態］
図２は、第２の実施の形態の情報処理システムの例を示す図である。第２の実施の形態の情報処理システムは、システム記憶装置１００、管理装置２００および複数のサーバ装置３００ａ，３００ｂ，…を有する。システム記憶装置１００は、管理装置２００およびサーバ装置３００ａ，３００ｂ，…と接続されている。また、管理装置２００は、サーバ装置３００ａ，３００ｂ，…と接続されている。さらに、情報処理システムは、システム内の上記各装置に電源を供給するための装置として、無停電電源装置（ＵＰＳ： Uninterruptible Power Supply）５１および電源ユニット（ＰＳＵ：Power Supply Unit）５２を有している。
【００１７】
ＵＰＳ５１には、外部電源５０が接続されている。ＵＰＳ５１は、外部電源５０から供給された電力を、ＰＳＵ５２を介してシステム内の各装置に供給する。また、ＵＰＳ５１は、充電池を有し、外部電源５０から供給された電力を用いて充電池を充電する。ＵＰＳ５１は、停電などによる、外部電源５０からＵＰＳ５１への電源断を検出したとき、充電池から一定時間ＰＳＵ５２に電力を供給すると共に、電源断の状態である旨をＰＳＵ５２を経由して管理装置２００へ通知する。
【００１８】
ＰＳＵ５２は、コンピュータに電力を供給する装置である。ＰＳＵ５２は、ＵＰＳ５１から供給された交流の電力を直流に変換し、変換した電力をシステム記憶装置１００および管理装置２００へ供給する。
【００１９】
なお、ＰＳＵ５２は、管理装置２００およびシステム記憶装置１００だけでなく、サーバ装置３００ａ，３００ｂ，…にも電力を供給してもよい。あるいは、サーバ装置３００ａ，３００ｂ，…には、ＰＳＵ５２とは別のＰＳＵから電力が供給されてもよい。
【００２０】
システム記憶装置１００は、第１の実施の形態の記憶制御装置１０の一例である。システム記憶装置１００は、揮発性メモリおよび不揮発性記憶装置を備える。システム記憶装置１００は、サーバ装置３００ａ，３００ｂ，…のいずれかの要求に応じて、揮発性メモリへのアクセスを実行し、実行結果を要求元のサーバ装置に送信する。これにより、システム記憶装置１００は、揮発性メモリの記憶領域をサーバ装置３００ａ，３００ｂ，…によって共有されるメモリ領域として提供する。
【００２１】
また、システム記憶装置１００は、管理装置２００の要求に応じて、揮発性メモリ上のデータを、不揮発性記憶装置にバックアップする。さらに、システム記憶装置１００は、管理装置２００の要求に応じて、バックアップされたデータ（以下、“バックアップデータ”）を揮発性メモリに復元する。
【００２２】
管理装置２００は、システムの状態を管理するコンピュータである。管理装置２００は、外部電源５０からの電源断の有無を監視する。例えば、電源ユニット５２は、ＵＰＳ５１が外部電源５０からの電源断を検出したことの通知を、ＰＳＵ５２を介して受信したとき、電源断を判定する。また、管理装置２００は、ＰＳＵ５２の故障の有無を監視し、ＰＳＵ５２の故障を検知したときに、電源断と判定してもよい。
【００２３】
管理装置２００は、電源断と判定した場合、システム記憶装置１００に揮発性メモリ上のデータのバックアップを要求する。また、管理装置２００は、電源が復旧したと判定した場合、システム記憶装置１００にバックアップデータの復元を要求する。
【００２４】
サーバ装置３００ａ，３００ｂ，…は、それぞれ所定の処理を実行するコンピュータである。サーバ装置３００ａ，３００ｂ，…は、システム記憶装置１００が備える揮発性メモリを共有して処理を実行することが可能である。サーバ装置３００ａ，３００ｂ，…は、システム記憶装置１００が備える揮発性メモリへのアクセスをシステム記憶装置１００へ要求し、アクセス結果をシステム記憶装置１００から受信する。サーバ装置３００ａ，３００ｂ，…はそれぞれ、例えば、マルチクラスタコンピュータシステムにおけるクラスタを構成する。
【００２５】
図３は、管理装置のハードウェア構成例を示す図である。管理装置２００は、プロセッサ２０１、ＲＡＭ２０２、ＨＤＤ２０３、画像信号処理部２０４、入力信号処理部２０５、ディスクドライブ２０６および通信インタフェース２０７を有する。これらのユニットは、管理装置２００内でバス２０８に接続されている。
【００２６】
プロセッサ２０１は、プログラムの命令を実行する演算器を含むプロセッサである。プロセッサ２０１は、ＨＤＤ２０３に記憶されているプログラムやデータの少なくとも一部をＲＡＭ２０２にロードしてプログラムを実行する。なお、プロセッサ２０１は複数のプロセッサコアを備えてもよい。また、管理装置２００は、複数のプロセッサを備えてもよい。また、管理装置２００は、複数のプロセッサまたは複数のプロセッサコアを用いて並列処理を行ってもよい。また、２以上のプロセッサの集合、ＦＰＧＡ（Field Programmable Gate Array）やＡＳＩＣ（Application Specific Integrated Circuit）等の専用回路、２以上の専用回路の集合、プロセッサと専用回路の組み合わせ等を「プロセッサ」と呼んでもよい。
【００２７】
ＲＡＭ２０２は、プロセッサ２０１が実行するプログラムやプログラムから参照されるデータを一時的に記憶する揮発性メモリである。なお、管理装置２００は、ＲＡＭ以外の種類のメモリを備えてもよく、複数個の揮発性メモリを備えてもよい。
【００２８】
ＨＤＤ２０３は、ＯＳ（Operating System）やファームウェアやアプリケーションソフトウェア等のソフトウェアのプログラムおよびデータを記憶する不揮発性の記憶装置である。なお、管理装置２００は、フラッシュメモリ等の他の種類の記憶装置を備えてもよく、複数個の不揮発性の記憶装置を備えてもよい。
【００２９】
画像信号処理部２０４は、プロセッサ２０１からの命令に従って、管理装置２００に接続されたディスプレイ２１に画像を出力する。ディスプレイ２１としては、ＣＲＴ（Cathode Ray Tube）ディスプレイや液晶ディスプレイ等を用いることができる。
【００３０】
入力信号処理部２０５は、管理装置２００に接続された入力デバイス２２から入力信号を取得し、プロセッサ２０１に通知する。入力デバイス２２としては、マウスやタッチパネル等のポインティングデバイス、キーボード等を用いることができる。
【００３１】
ディスクドライブ２０６は、記録媒体２３に記録されたプログラムやデータを読み取る駆動装置である。記録媒体２３として、例えば、フレキシブルディスク（ＦＤ：Flexible Disk）やＨＤＤ等の磁気ディスク、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）等の光ディスク、光磁気ディスク（ＭＯ：Magneto-Optical disk）を使用できる。ディスクドライブ２０６は、プロセッサ２０１からの命令に従って、記録媒体２３から読み取ったプログラムやデータをＲＡＭ２０２またはＨＤＤ２０３に格納する。
【００３２】
通信インタフェース２０７は、他の情報処理装置（例えば、システム記憶装置１００等）と通信を行う。
なお、管理装置２００はディスクドライブ２０６を備えていなくてもよく、専ら他の情報処理装置からアクセスされる場合には、画像信号処理部２０４や入力信号処理部２０５を備えていなくてもよい。また、ディスプレイ２１や入力デバイス２２は、管理装置２００の筐体と一体に形成されていてもよい。
【００３３】
なお、サーバ装置３００ａ，３００ｂ，…も、管理装置２００と同様のハードウェアを用いて実現できる。
図４は、システム記憶装置のハードウェア構成例を示す図である。システム記憶装置１００は、通信インタフェース１０１，１０２、ＤＩＭＭ１１０、ＳＳＤ１２０および記憶制御回路１３０を有する。ＤＩＭＭ１１０は、第１の実施の形態の記憶装置１１の一例である。ＳＳＤ１２０は、第１の実施の形態の記憶装置１２の一例である。記憶制御回路１３０は、第１の実施の形態の制御部１４の一例である。
【００３４】
ＤＩＭＭ１１０は、サーバ装置３００ａ，３００ｂ，…から参照されるデータを一時的に記憶する揮発性メモリである。なお、システム記憶装置１００は、ＲＡＭ等ＤＩＭＭ以外の種類の揮発性メモリを備えてもよく、複数個の揮発性メモリを備えてもよい。
【００３５】
ＳＳＤ１２０は、ＤＩＭＭ１１０に記憶されているデータのバックアップデータを記憶する不揮発性の記憶装置である。なお、システム記憶装置１００は、フラッシュメモリやＨＤＤ等の他の種類の記憶装置を備えてもよく、複数個の不揮発性の記憶装置を備えてもよい。
【００３６】
通信インタフェース１０１は、サーバ装置３００ａ，３００ｂ，…からＤＩＭＭ１１０へのアクセス要求を受信し、受信したアクセス要求を記憶制御回路１３０へ出力する。アクセス要求の種類は、ＤＩＭＭ１１０へデータの書き込みを要求する書込要求、または、ＤＩＭＭ１１０からのデータの読出しを要求する読出要求となる。また、通信インタフェース１０１は、アクセス要求に対するアクセス結果を記憶制御回路１３０から受信し、受信したアクセス結果をアクセス要求元のサーバ装置３００ａ，３００ｂ，…に送信する。
【００３７】
通信インタフェース１０２は、管理装置２００からバックアップ要求を受信し、受信したバックアップ要求を記憶制御回路１３０へ出力する。バックアップ要求は、管理装置２００がシステム記憶装置１００にＤＩＭＭ１１０上のデータのバックアップを要求するための通知である。また、通信インタフェース１０２は、記憶制御回路１３０からバックアップ完了通知を受信すると、受信したバックアップ完了通知を管理装置２００へ送信する。
【００３８】
さらに、通信インタフェース１０２は、管理装置２００から復元要求を受信し、受信した復元要求を記憶制御回路１３０へ出力する。復元要求は、管理装置２００がシステム記憶装置１００にＳＳＤ１２０上のバックアップデータの復元を要求するための通知である。また、通信インタフェース１０２は、記憶制御回路１３０から復元完了通知を受信すると、受信した復元完了通知を管理装置２００へ送信する。
【００３９】
記憶制御回路１３０は、ＤＩＭＭ１１０やＳＳＤ１２０を用いたデータの読み書き、およびＤＩＭＭ１１０上のデータのバックアップに関する処理を制御する回路である。記憶制御回路１３０は、ＤＩＭＭ入出力部１４０、管理情報記憶部１５０、ＳＳＤ入出力部１６０、メモリ制御部１７０、アドレス管理部１８０および転送制御部１９０を有する。
【００４０】
ＤＩＭＭ入出力部１４０は、メモリ制御部１７０または転送制御部１９０からの要求に応じて、ＤＩＭＭ１１０へのデータの入出力を制御する。ＤＩＭＭ入出力部１４０は、例えば、ＤＩＭＭ１１０に対してデータの読み出しアドレスを出力するためのＤＩＭＭリードレジスタや、ＤＩＭＭ１１０に対してデータの書き込み先アドレスを出力するためのＤＩＭＭライトレジスタを有する。これらのＤＩＭＭリードレジスタやＤＩＭＭライトレジスタへのアドレスの設定は、データ入出力の要求元のメモリ制御部１７０または転送制御部１９０から行われる。
【００４１】
ＳＳＤ入出力部１６０は、転送制御部１９０からの要求に応じて、ＳＳＤ１２０へのデータの入出力を制御する。ＳＳＤ入出力部１６０は、例えば、ＳＳＤ１２０に対してデータの読み出しアドレスを出力するためのＳＳＤリードレジスタや、ＳＳＤ１２０に対してデータの書き込み先アドレスを出力するためのＳＳＤライトレジスタを有する。これらのＳＳＤリードレジスタやＳＳＤライトレジスタへのアドレスの設定は、データ入出力の要求元の転送制御部１９０から行われる。
【００４２】
管理情報記憶部１５０は、第１の実施の形態の記憶部１３の一例である。管理情報記憶部１５０は、ＤＩＭＭ１１０上の使用中の領域を示す情報をそれぞれ記憶する複数の管理レジスタを有する。使用中の領域とは、例えば、サーバ装置３００ａ，３００ｂ，…の要求によりデータが書き込まれた領域である。以下、ＤＩＭＭ１１０における使用中の領域を“実使用領域”と記載する場合がある。
【００４３】
メモリ制御部１７０は、通信インタフェース１０１を経由して、サーバ装置３００ａ，３００ｂ，…からＤＩＭＭ１１０へのアクセス要求を受信する。アクセス要求には、データの入出力先領域の先頭アドレスとデータ長とが含まれる。メモリ制御部１７０は、アクセス要求に含まれる先頭アドレスとデータ長とに基づいて、データの入出力先のアドレスをＤＩＭＭ入出力部１４０へ指定することで、ＤＩＭＭ１１０のデータの入出力を実行する。また、メモリ制御部１７０は、受信したアクセス要求の種類が書込要求である場合、アドレス管理部１８０へ、書き込み先領域の先頭アドレスとデータ長とを出力する。
【００４４】
アドレス管理部１８０は、メモリ制御部１７０が書込要求を受信し、書き込み先領域の先頭アドレスとデータ長とがメモリ制御部１７０から出力されると、その書込要求で指定された書き込み先のアドレス範囲と、管理レジスタに格納されている実使用領域とに基づいて、管理レジスタを更新する。以下、書込要求で指定された書き込み先のアドレス範囲を“書込要求領域”と記載する場合がある。
【００４５】
転送制御部１９０は、通信インタフェース１０２を経由して、管理装置２００からのバックアップ要求および復元要求を受信する。転送制御部１９０は、管理装置２００からのバックアップ要求に応じて、ＤＩＭＭ１１０からＳＳＤ１２０へデータをバックアップする。この際、転送制御部１９０は、管理レジスタを参照して、実使用領域のデータのみをＳＳＤ１２０へバックアップする。また、転送制御部１９０は、管理装置２００からの復元要求に応じて、ＳＳＤ１２０からＤＩＭＭ１１０へバックアップデータを復元する。転送制御部１９０は、データのバックアップや復元の際、ＤＩＭＭ入出力部１４０およびＳＳＤ入出力部１６０を用いて、ＤＩＭＭ１１０とＳＳＤ１２０との間のデータの転送を制御する。
【００４６】
なお、記憶制御回路１３０は、例えば、同一基板上に実装された１つ以上のハードウェア回路として実現可能である。このようなハードウェア回路としては、プロセッサ、ＬＳＩ（Large Scale Integration）、ＦＰＧＡ、ＡＳＩＣ等がある。
【００４７】
次に、図５〜６を用いて、本実施の形態で例として適用されるＤＩＭＭ１１０へのデータの書き込みの制限について説明する。なお、以下の説明において、“０ｘ…”は１６進数で表記したことを示す。
【００４８】
図５は、データの書き込みの制限の例を示す図である。アドレス１１１は、ＤＩＭＭ１１０上のアドレスの位置を０ｘ１０バイト間隔で表したものである。バイト位置１１２は、アドレス１１１上の位置を先頭としたバイト位置を示す。例えば、領域＃１のアドレス範囲は、“０ｘ０＿ＦＦＢ０”〜“０ｘ０＿ＦＦＢ７”となり、領域＃２のアドレス範囲は、“０ｘ０＿ＦＦＤ８”〜“０ｘ０＿ＦＦＥ７”となる。また、領域＃３のアドレス範囲は、“０ｘ１＿００１１”〜“０ｘ１＿００１８”となる。
【００４９】
アライン境界１１３は、ＤＩＭＭ１１０において、書き込み先のアドレス範囲の先頭のアドレスとして許容されるアドレスの位置を示す。システム記憶装置１００では、８バイト毎にアライン境界が存在する。すなわち、システム記憶装置１００において、書き込み先の先頭のアドレスは、８の倍数であるときのみ許容される。例えば、領域＃１，＃２は、先頭のアドレスが８の倍数であるため、書込要求領域として、領域＃１または領域＃２を指定することができる。しかし、領域＃３は、先頭のアドレスが８の倍数でないため、書込要求領域として領域＃３を指定することはできない。
【００５０】
図６は、データの書き込みの制限の例を示す図（続き）である。ＤＩＭＭ１１０は、固定サイズであるページ単位で分割されている。ページ境界１１４は、ページ毎の境界を示す。ここでは、１ページのサイズを６４キロバイトとする。
【００５１】
サーバ装置３００ａ，３００ｂ，…は、ＤＩＭＭ１１０への書き込みを要求する際、ページ境界１１４をまたがるような書込要求領域を指定することはできない。例えば、領域＃４のアドレス範囲は、“０ｘ０＿ＦＦＣ８”〜“０ｘ１＿０００７”であり、ページ境界である“０ｘ０＿ＦＦＦＦ”をまたがっている。そのため、サーバ装置３００ａ，３００ｂ，…は、ＤＩＭＭ１１０への書き込みを要求する際、領域＃４を指定することはできない。
【００５２】
次に、図７〜９を用いて、システム記憶装置１００が用いるデータについて説明する。
図７は、管理レジスタの例を示す図である。管理レジスタ群１５１は、実使用領域を示す情報を格納する管理レジスタ１５２の集合である。管理レジスタ群１５１は、複数の分割領域の数分存在し、これらの分割領域それぞれに対応づけられている。本実施例では、各管理レジスタ群１５１は、４つずつ管理レジスタ１５２を有する。なお、管理レジスタ群１５１が有する管理レジスタ１５２の数は、４つ未満でもよいし、５つ以上でもよい。
【００５３】
分割領域とは、ＤＩＭＭ１１０の記憶領域が分割された領域である。また、本実施の形態では、ＤＩＭＭ１１０は８つの分割領域に分割されている。各分割領域は、各分割領域のアドレスの上位３ビットの値により識別される。例えば、“０ｘ０＿００００＿００００”〜“０ｘ０＿ＦＦＦＦ＿ＦＦＦＦ”のアドレス範囲で示される分割領域の場合、識別子は“０ｘ０”となる。また、“０ｘ１＿００００＿００００”〜“０ｘ１＿ＦＦＦＦ＿ＦＦＦＦ”のアドレス範囲で示される分割領域の場合、識別子は“０ｘ１”となり、“０ｘ７＿００００＿００００”〜“０ｘ７＿ＦＦＦＦ＿ＦＦＦＦ”のアドレス範囲で示される分割領域の場合、識別子は“０ｘ７”となる。以下、識別子が“０ｘ０”である分割領域を“分割領域（０ｘ０）”と記載する場合がある。また、分割領域（０ｘ０）に対応する複数の管理レジスタ群１５１を“管理レジスタ群（０ｘ０）”と記載する場合がある。
【００５４】
なお、分割領域の数は７つ以下でもよいし、９つ以上でもよい。その場合、分割領域の識別子を取得するためのビット数は、分割領域の数に応じて変わる。例えば、分割領域を１６個にする場合、分割領域の識別子は、アドレスの上位４ビットとする。
【００５５】
管理レジスタ１５２は、レジスタ、有効ビット、先頭ポインタおよび末尾ポインタの項目を有する。レジスタの項目には、管理レジスタ群１５１内の管理レジスタ１５２を識別するための識別子が設定される。管理レジスタ群１５１それぞれについて、各管理レジスタ１５２のレジスタの項目には、“Ｒ０”〜“Ｒ３”のいずれかの異なる識別子が設定される。以下、管理レジスタ群（０ｘ０）に属する管理レジスタ１５２の識別子が“Ｒ０”の場合、その管理レジスタ１５２を“管理レジスタ（０＃Ｒ０）”と記載する場合がある。また、管理レジスタ（０＃Ｒ０）に対応する実使用領域を、“実使用領域（０＃Ｒ０）”と記載する場合がある。
【００５６】
有効ビットの項目には、管理レジスタ１５２が有効であるかを示す情報が設定される。有効な管理レジスタ１５２とは、実使用領域に関する情報が設定されている管理レジスタ１５２のことである。管理レジスタ１５２が有効である場合、有効ビットの項目には“１”が設定され、管理レジスタ１５２が無効である場合、有効ビットの項目には“０”が設定される。
【００５７】
先頭ポインタの項目には、実使用領域の先頭のアドレスが設定される。末尾ポインタの項目には、実使用領域の末尾のアドレスの次のアドレスが設定される。例えば、実使用領域のアドレス範囲が“０ｘ０＿００００＿０１００”〜“０ｘ０＿００２０＿００ＦＦ”である場合、先頭ポインタには“０ｘ０＿００００＿０１００”が設定され、末尾ポインタには“０ｘ０＿００２０＿０１００”が設定される。
【００５８】
上記のように、ＤＩＭＭ１１０の記憶領域を複数の分割領域に分割し、分割領域毎に一定数の管理レジスタ１５２を割り当てて実使用領域を登録するようにした。これにより、有限個の管理レジスタ１５２を使用しながらも、実際にデータが書き込まれた実使用領域を、ＤＩＭＭ１１０の記憶領域全体にわたって偏りなく管理することができる。
【００５９】
図８は、書き込み要求に伴う管理レジスタへの登録処理の例を示す図である。書込要求３１は、サーバ装置３００ａ，３００ｂ，…からシステム記憶装置１００へ、データの書き込みを要求するための通知である。書込要求３１には、書込要求領域に関する情報が含まれる。書込要求３１は、先頭アドレス、データ長およびデータの項目を有する。
【００６０】
先頭アドレスの項目には、ＤＩＭＭ１１０における書込要求領域の先頭のアドレス（以下、先頭アドレス）が設定される。データ長の項目には、ＤＩＭＭ１１０における書込要求領域のデータ長が設定される。データの項目には、書込要求領域に書き込むデータが設定される。
【００６１】
アドレス管理部１８０は、書込要求３１に含まれる書込要求領域を管理レジスタ１５２に登録する場合、管理レジスタ１５２の先頭ポインタの項目に、書込要求３１の先頭アドレスを設定する。また、管理レジスタ１５２の末尾ポインタの項目に、書込要求３１の先頭アドレスにデータ長を加えた値を設定する。
【００６２】
例えば、書込要求３１において、先頭アドレスには“０ｘ０＿００００＿０１００”が設定され、データ長には“０ｘ２０＿００００”が設定されているとする。この書込要求３１で示される書込要求領域を実使用領域（０＃Ｒ０）として登録する際、管理レジスタ（０＃Ｒ０）の先頭ポインタには“０ｘ０＿００００＿０１００”が設定され、末尾ポインタには“０ｘ０#００２０#０１００”が設定される。
【００６３】
ここで、第２の実施の形態のシステムにおいて、書き込みが要求されるたびに全ての書込要求領域を実使用領域として管理レジスタ１５２に登録できることが望ましい。しかし、物理的に設置可能な管理レジスタ１５２の数は限られているため、書き込みが要求されるたびに全ての書込要求領域を登録することは不可能である。そこで、第２の実施の形態のシステムでは、一定の条件下において、書込要求領域と登録済みの実使用領域とをマージして別の実使用領域に置き換えて管理レジスタ１５２に登録し直す。以下の図９〜１７では、書込要求領域と実使用領域との位置関係に基づいて、書込要求領域と実使用領域とをマージした実使用領域で管理レジスタ１５２を更新する例について説明する。
【００６４】
まず、図９〜１０を用いて、書込要求領域が実使用領域と重複しない場合の管理レジスタ１５２の更新例について説明し、図１１〜１３を用いて、書込要求領域が実使用領域と重複する場合の管理レジスタ１５２の更新例について説明する。次に、図１４を用いて、書込要求領域が実使用領域に包含される場合の管理レジスタ１５２の更新例について説明し、図１５〜１６を用いて、書込要求領域と実使用領域との間隔に基づく管理レジスタ１５２の更新例について説明する。そして、図１７〜１８を用いて、書込要求領域と複数の実使用領域それぞれとを比較した場合について、管理レジスタ１５２を更新する例について説明する。
【００６５】
なお、図９〜１８の説明では、分割領域（０ｘ０）上の領域について書込要求３１がされたものとする。また、図９〜１８の説明では、ＤＩＭＭ１１０上のアドレスを５桁の１６進数（例えば、“０ｘ０＿１０００”）で表すものとする。また、図９〜１８の説明では、管理レジスタ１５２における有効ビットの項目の記載を省略する。また、図９〜１８の説明では、無効な（すなわち、有効ビットが“０”である）管理レジスタ１５２の記載を省略する。
【００６６】
図９は、書込要求領域が実使用領域と重複しない場合の管理レジスタの更新例を示す図である。アドレス管理部１８０は、有効な管理レジスタ１５２に登録されている実使用領域と、書込要求領域との間隔に基づき、書込要求領域と実使用領域との位置関係を判定し、判定した位置関係に基づいてその実使用領域に対応する管理レジスタ１５２を更新する。
【００６７】
位置関係判定表１５３は、書込要求領域と実使用領域との位置関係に関する情報を格納する表である。位置関係判定表１５３は、説明をわかりやすくするために示した表であるが、例えば、アドレス管理部１８０が処理結果を一時的に保持して参照するために、記憶制御回路１３０内の記憶装置（図示せず）に一時的に格納されてもよい。位置関係判定表１５３は、レジスタ、間隔Ａ、間隔Ｂ、間隔Ｃ、間隔Ｄおよび位置関係の項目を有する。
【００６８】
レジスタの項目には、管理レジスタ１５２を識別する識別子が設定される。レジスタの項目の値により、書込要求領域との位置関係を比較する実使用領域を特定できる。
間隔Ａの項目には、“書込要求領域の先頭アドレス−実使用領域の先頭ポインタ”により算出された間隔が設定される。間隔Ｂの項目には、“書込要求領域の先頭アドレス−実使用領域の末尾ポインタ”により算出された間隔が設定される。間隔Ｃの項目には、“実使用領域の先頭ポインタ−書込要求領域の先頭アドレスにデータ長を加算したアドレス（以下、末尾アドレス）”により算出された間隔が設定される。間隔Ｄの項目には、“実使用領域の末尾ポインタ−書込要求領域の末尾アドレス”により算出された間隔が設定される。
【００６９】
位置関係の項目には、書込要求領域と実使用領域の位置関係を示す情報が設定される。例えば、対応する管理レジスタ１５２に登録された実使用領域が書込要求領域と重複しない場合、位置関係の項目には、“重複無し”が設定される。また、対応する管理レジスタ１５２に登録された実使用領域の一部が書込要求領域と重複する場合、位置関係の項目には、“重複”が設定される。また、対応する管理レジスタ１５２に登録された実使用領域が書込要求領域を包含する場合、位置関係の項目には、“包含”が設定される。さらに、対応する管理レジスタ１５２が無効である場合、位置関係の項目には、“無効”が設定される。なお、図９〜１８の説明では、位置関係が“無効”であるレコードの記載を省略する。
【００７０】
図９上段のように、実使用領域と重複せず、かつ、実使用領域より後ろの記憶領域への書込要求がされた場合、間隔Ａ，Ｂそれぞれが０より大きくなる。この場合、アドレス管理部１８０は、書込要求領域と実使用領域との位置関係を“重複無し”と判定する。
【００７１】
例えば、先頭ポインタが“０ｘ０＿２０００”であり、かつ、末尾ポインタが“０ｘ０＿３０００”である実使用領域（０＃Ｒ０）がＤＩＭＭ１１０上に存在している。この状態で、先頭アドレスが“０ｘ０＿４０００”であり、かつ、データ長が“０ｘ１０００”である書込要求領域への書込要求３１が受信されたとする。この場合、アドレス管理部１８０は、書込要求領域と実使用領域との位置関係を次のように判定する。
【００７２】
まず、アドレス管理部１８０は、間隔Ａ〜Ｄを算出する。その結果、図９の位置関係判定表１５３が示すように、間隔Ａは“０ｘ２０００”となり、間隔Ｂは“０ｘ１０００”となり、間隔Ｃは“−０ｘ３０００”となり、間隔Ｄは“−０ｘ２０００”となる。この場合、間隔Ａ，Ｂそれぞれが０より大きいため、アドレス管理部１８０は、書込要求領域と実使用領域との位置関係を“重複無し”と判定する。
【００７３】
そして、位置関係が“重複無し”の場合、アドレス管理部１８０は、書込要求３１で指定された書込要求領域を、実使用領域として管理レジスタ１５２へ登録する。具体的には、アドレス管理部１８０は、先頭ポインタが“０ｘ０＿４０００”であり、かつ、末尾ポインタが“０ｘ０＿４０００＋０ｘ１０００＝０ｘ０＿５０００”である実使用領域を、新たに無効な管理レジスタ１５２（ここでは、管理レジスタ（０＃Ｒ１）とする）へ登録する。
【００７４】
図１０は、書込要求領域が実使用領域と重複しない場合の管理レジスタの更新例を示す図（続き）である。図１０上段のように、実使用領域と重複せず、かつ、実使用領域より手前の記憶領域への書込要求がされた場合、間隔Ｃ，Ｄそれぞれが０より大きくなる。この場合、アドレス管理部１８０は、書込要求領域と実使用領域との位置関係を“重複無し”と判定する。
【００７５】
例えば、先頭ポインタが“０ｘ０＿４０００”であり、かつ、末尾ポインタが“０ｘ０＿５０００”である実使用領域（０＃Ｒ０）がＤＩＭＭ１１０上に存在している。この状態で、先頭アドレスが“０ｘ０＿２０００”であり、かつ、データ長が“０ｘ１０００”である書込要求領域への書込要求３１が受信されたとする。
【００７６】
この場合、まず、アドレス管理部１８０は、書込要求領域と実使用領域との位置関係を次のように判定する。まず、アドレス管理部１８０は、間隔Ａ〜Ｄを算出する。その結果、図１０の位置関係判定表１５３が示すように、間隔Ａは“−０ｘ２０００”となり、間隔Ｂは“−０ｘ３０００”となり、間隔Ｃは“０ｘ１０００”となり、間隔Ｄは“０ｘ２０００”となる。この場合、間隔Ｃ，Ｄそれぞれが０より大きいため、アドレス管理部１８０は、書込要求領域と実使用領域との位置関係を“重複無し”と判定する。
【００７７】
そして、図９と同様に、アドレス管理部１８０は、書込要求３１で指定された書込要求領域を、実使用領域として無効である管理レジスタ１５２（ここでは、管理レジスタ（０＃Ｒ１））へ登録する。具体的には、アドレス管理部１８０は、先頭ポインタが“０ｘ０＿２０００”であり、かつ、末尾ポインタが“０ｘ０＿２０００＋０ｘ１０００＝０ｘ０＿３０００”である実使用領域を新たに管理レジスタ（０＃Ｒ１）へ登録する。
【００７８】
図１１は、書込要求領域が実使用領域と重複する場合の管理レジスタの更新例を示す図である。図１１上段のように、実使用領域と重複し、かつ、実使用領域の先頭ポインタより後ろの記憶領域への書込要求がされた場合、間隔Ａが０以上となり、間隔Ｂが０以下となり、間隔Ｃ，Ｄそれぞれは０未満となる。この場合、アドレス管理部１８０は、書込要求領域と実使用領域との位置関係を“重複”と判定する。
【００７９】
例えば、先頭ポインタが“０ｘ０＿２０００”であり、かつ、末尾ポインタが“０ｘ０＿４０００”である実使用領域（０＃Ｒ０）がＤＩＭＭ１１０上に存在している。この状態で、先頭アドレスが“０ｘ０＿３０００”であり、かつ、データ長が“０ｘ２０００”である書込要求領域への書込要求３１が受信されたとする。
【００８０】
この場合、まず、アドレス管理部１８０は、書込要求領域と実使用領域との位置関係を次のように判定する。まず、アドレス管理部１８０は、間隔Ａ〜Ｄを算出する。その結果、図１１の位置関係判定表１５３が示すように、間隔Ａは“０ｘ１０００”となり、間隔Ｂは“−０ｘ１０００”となり、間隔Ｃは“−０ｘ３０００”となり、間隔Ｄは“−０ｘ１０００”となる。この場合、間隔Ａが０以上であり、間隔Ｂが０以下となり、かつ、間隔Ｃ，Ｄそれぞれは０未満であるため、アドレス管理部１８０は、書込要求領域と実使用領域との位置関係を“重複”と判定する。
【００８１】
そして、位置関係が“重複”の場合、アドレス管理部１８０は、書込要求３１で指定された書込要求領域と実使用領域（０＃Ｒ０）とをマージした領域で、実使用領域（０＃Ｒ０）を更新する。マージ後の実使用領域の先頭ポインタには、書込要求領域の先頭アドレスおよび“重複”と判定された実使用領域の先頭ポインタの中で最小のものが設定される。マージ後の実使用領域の末尾ポインタには、書込要求領域の末尾アドレスおよび“重複”と判定された実使用領域の末尾ポインタの中で最大のものが設定される。
【００８２】
図１１上段では、実使用領域（０＃Ｒ０）の先頭ポインタは、書込要求領域の先頭アドレスより小さいため、実使用領域（０＃Ｒ０）の先頭ポインタがマージ後の実使用領域の先頭ポインタとなる。また、書込要求領域の末尾アドレスは、実使用領域（０＃Ｒ０）の末尾ポインタより大きいため、書込要求領域の末尾アドレスがマージ後の実使用領域の末尾ポインタとなる。そのため、実使用領域（０＃Ｒ０）の末尾ポインタが、書込要求領域の末尾アドレスで更新される。
【００８３】
具体的には、アドレス管理部１８０は、書込要求領域の末尾アドレスである“０ｘ０＿３０００＋０ｘ２０００＝０ｘ０＿５０００”で、管理レジスタ（０＃Ｒ０）における末尾ポインタを更新する。これにより、図１１上段のように、実使用領域（０＃Ｒ０）は、書込要求領域と実使用領域（０＃Ｒ０）を１つに纏めた新たな実使用領域に置き換えられる。
【００８４】
図１２は、書込要求領域が実使用領域と重複する場合の管理レジスタの更新例を示す図（続き）である。図１２上段のように、実使用領域と重複し、かつ、実使用領域の先頭ポインタより手前の記憶領域への書込要求がされた場合、間隔Ｄが０以上となり、間隔Ｃが０以下となり、間隔Ａ，Ｂそれぞれは０未満となる。この場合、アドレス管理部１８０は、書込要求領域と実使用領域との位置関係を“重複”と判定する。
【００８５】
例えば、先頭ポインタが“０ｘ０＿３０００”であり、かつ、末尾ポインタが“０ｘ０＿５０００”の実使用領域（０＃Ｒ０）がＤＩＭＭ１１０上に存在している。この状態で、先頭アドレスが“０ｘ０＿２０００”であり、かつ、データ長が“０ｘ２０００”である書込要求領域への書込要求３１が受信されたとする。
【００８６】
この場合、まず、アドレス管理部１８０は、書込要求領域と実使用領域との位置関係を次のように判定する。まず、アドレス管理部１８０は、間隔Ａ〜Ｄを算出する。その結果、図１２の位置関係判定表１５３が示すように、間隔Ａは“−０ｘ１０００”となり、間隔Ｂは“−０ｘ３０００”となり、間隔Ｃは“−０ｘ１０００”となり、間隔Ｄは“０ｘ１０００”となる。この場合、間隔Ｄが０以上であり、間隔Ｃが０以下となり、かつ、間隔Ａ，Ｂそれぞれは０未満であるため、アドレス管理部１８０は、書込要求領域と実使用領域との位置関係を“重複”と判定する。
【００８７】
そして、図１１と同様に、アドレス管理部１８０は、書込要求３１で指定された書込要求領域と実使用領域（０＃Ｒ０）とをマージした領域で、実使用領域（０＃Ｒ０）を更新する。図１２上段では、書込要求領域の先頭アドレスは、実使用領域（０＃Ｒ０）の先頭ポインタより小さいため、書込要求領域の先頭アドレスがマージ後の実使用領域の先頭ポインタとなる。また、実使用領域（０＃Ｒ０）の末尾ポインタは、書込要求領域の末尾アドレスより大きいため、実使用領域（０＃Ｒ０）の末尾ポインタがマージ後の実使用領域の末尾ポインタとなる。そのため、実使用領域（０＃Ｒ０）の先頭ポインタが、書込要求領域の先頭アドレスで更新される。
【００８８】
具体的には、アドレス管理部１８０は、書込要求領域の先頭アドレスである“０ｘ０＿２０００”で、管理レジスタ（０＃Ｒ０）における先頭ポインタを更新する。これにより、図１２上段のように、実使用領域（０＃Ｒ０）が、書込要求領域と実使用領域（０＃Ｒ０）を１つに纏めた新たな実使用領域に置き換えられる。
【００８９】
図１３は、書込要求領域が実使用領域と重複する場合の管理レジスタの更新例を示す図（続き２）である。図１３上段のように、実使用領域が包含される記憶領域への書込要求がされた場合、間隔Ａ，Ｂ，Ｃ，Ｄはそれぞれ０未満となる。この場合、アドレス管理部１８０は、書込要求領域と実使用領域との位置関係を“重複”と判定する。
【００９０】
例えば、先頭ポインタが“０ｘ０＿３０００”であり、かつ、末尾ポインタが“０ｘ０＿４０００”の実使用領域（０＃Ｒ０）がＤＩＭＭ１１０上に存在している。このとき、先頭アドレスが“０ｘ０＿２０００”であり、かつ、データ長が“０ｘ３０００”である書込要求領域への書込要求３１が受信されたとする。この場合、次のように、アドレス管理部１８０は、書込要求領域と実使用領域との位置関係を判定する。
【００９１】
まず、アドレス管理部１８０は、間隔Ａ〜Ｄを算出する。その結果、図１３の位置関係判定表１５３が示すように、間隔Ａは“−０ｘ１０００”となり、間隔Ｂは“−０ｘ２０００”となり、間隔Ｃは“−０ｘ２０００”となり、間隔Ｄは“−０ｘ１０００”となる。この場合、間隔Ａ，Ｂ，Ｃ，Ｄそれぞれは０未満であるため、アドレス管理部１８０は、書込要求領域と実使用領域との位置関係を“重複”と判定する。
【００９２】
そして、図１１と同様に、アドレス管理部１８０は、書込要求３１で指定された書込要求領域と実使用領域（０＃Ｒ０）とをマージした領域で、実使用領域（０＃Ｒ０）を更新する。図１３上段では、書込要求領域の先頭アドレスは、実使用領域（０＃Ｒ０）の先頭ポインタより小さいため、書込要求領域の先頭アドレスがマージ後の実使用領域の先頭ポインタとなる。また、書込要求領域の末尾アドレスは、実使用領域（０＃Ｒ０）の末尾ポインタより大きいため、書込要求領域の末尾アドレスがマージ後の実使用領域の末尾ポインタとなる。そのため、実使用領域（０＃Ｒ０）の先頭ポインタが、書込要求領域の先頭アドレスで更新され、実使用領域（０＃Ｒ０）の末尾ポインタが、書込要求領域の末尾アドレスで更新される。
【００９３】
具体的には、アドレス管理部１８０は、書込要求領域の先頭アドレスである“０ｘ０＿２０００”で、管理レジスタ（０＃Ｒ０）の先頭ポインタを更新する。同様に、アドレス管理部１８０は、書込要求領域の末尾アドレスである“０ｘ０＿２０００＋０ｘ３０００＝０ｘ０＿５０００”で、管理レジスタ（０＃Ｒ０）の末尾ポインタを更新する。これにより、図１３上段のように、実使用領域（０＃Ｒ０）が、書込要求領域と実使用領域（０＃Ｒ０）を１つに纏めた新たな実使用領域に置き換えられる。
【００９４】
図１１〜１３で説明したように、書込要求領域と実使用領域との位置関係が重複している場合、これらの領域は実質的に１つの実使用領域と判断できる。そのため、アドレス管理部１８０は、書込要求領域と重複する実使用領域を、書込要求領域とマージして管理レジスタ１５２を更新する。これにより、実使用領域を登録するための管理レジスタ１５２の数が節約され、管理レジスタ１５２を有効に利用できる。
【００９５】
図１４は、書込要求領域が実使用領域に包含される場合の管理レジスタの更新例を示す図である。図１４上段のように、実使用領域に包含される記憶領域への書込要求がされた場合、間隔Ａ，Ｄそれぞれは０以上となり、間隔Ｂ，Ｃそれぞれは０未満となる。この場合、アドレス管理部１８０は、書込要求領域と実使用領域との位置関係を“包含”と判定する。
【００９６】
例えば、先頭ポインタが“０ｘ０＿２０００”であり、かつ、末尾ポインタが“０ｘ０＿５０００”の実使用領域（０＃Ｒ０）がＤＩＭＭ１１０上に存在している。この状態で、先頭アドレスが“０ｘ０＿３０００”であり、かつ、データ長が“０ｘ１０００”である書込要求領域への書込要求３１が受信されたとする。
【００９７】
この場合、まず、アドレス管理部１８０は、書込要求領域と実使用領域との位置関係を次のように判定する。まず、アドレス管理部１８０は、間隔Ａ〜Ｄを算出する。その結果、図１４の位置関係判定表１５３が示すように、間隔Ａは“０ｘ１０００”となり、間隔Ｂは“−０ｘ２０００”となり、間隔Ｃは“−０ｘ２０００”となり、間隔Ｄは“０ｘ１０００”となる。この場合、間隔Ａ，Ｄそれぞれは０以上となり、間隔Ｂ，Ｃそれぞれは０未満であるため、アドレス管理部１８０は、書込要求領域と実使用領域との位置関係を“包含”と判定する。
【００９８】
図１４上段のように、実使用領域（０＃Ｒ０）に書込要求領域が包含されている場合、実使用領域（０＃Ｒ０）と書込要求領域とをマージしても実使用領域（０＃Ｒ０）の記憶領域は変わらない。また、複数の実使用領域それぞれは互いに重複しない領域に存在するため、１の実使用領域に包含されている書込要求領域が、他の実使用領域と重複することはない。そのため、位置関係が“包含”の実使用領域が、書込要求領域に対応する分割領域に含まれる場合、管理レジスタ１５２は、アドレス管理部１８０により更新されず、そのままとなる。
【００９９】
図１５は、書込要求領域と実使用領域との間隔に基づく管理レジスタの更新例を示す図である。図１５上段のように、実使用領域と重複しない場合でも、間隔Ｂが閾値未満である場合、アドレス管理部１８０は、書込要求領域と実使用領域との位置関係を“重複”と判定する。以下、図１５〜１６の説明では、閾値を“０ｘ５０”とする。
【０１００】
例えば、先頭ポインタが“０ｘ０＿２０００”であり、かつ、末尾ポインタが“０ｘ０＿３０００”の実使用領域（０＃Ｒ０）がＤＩＭＭ１１０上に存在している。この状態で、先頭アドレスが“０ｘ０＿３０２０”であり、かつ、データ長が“０ｘ１０００”である書込要求領域への書込要求３１が受信されたとする。
【０１０１】
この場合、アドレス管理部１８０は、書込要求領域と実使用領域との位置関係を次のように判定する。まず、アドレス管理部１８０は、間隔Ａ〜Ｄを算出する。その結果、図１５の位置関係判定表１５３が示すように、間隔Ａは“０ｘ１０２０”となり、間隔Ｂは“０ｘ２０”となり、間隔Ｃは“−０ｘ２０２０”となり、間隔Ｄは“−０ｘ１０２０”となる。この場合、間隔Ａ，Ｂそれぞれが０より大きいが、間隔Ｂが閾値未満のため、アドレス管理部１８０は、書込要求領域と実使用領域との位置関係を“重複”と判定する。
【０１０２】
そして、アドレス管理部１８０は、書込要求領域と実使用領域（０＃Ｒ０）とこれらの間の未使用の領域（以下、未使用領域）をマージする。これらの領域のマージの方法は、図１１で説明した方法と同様である。すなわち、図１５上段では、実使用領域（０＃Ｒ０）の先頭ポインタは、書込要求領域の先頭アドレスより小さいため、実使用領域（０＃Ｒ０）の先頭ポインタがマージ後の実使用領域の先頭ポインタとなる。また、書込要求領域の末尾アドレスは、実使用領域（０＃Ｒ０）の末尾ポインタより大きいため、書込要求領域の末尾アドレスがマージ後の実使用領域の末尾ポインタとなる。そのため、実使用領域（０＃Ｒ０）の末尾ポインタが、書込要求領域の末尾アドレスで更新される。
【０１０３】
具体的には、アドレス管理部１８０は、書込要求領域の末尾アドレスである“０ｘ０＿３０２０＋０ｘ１０００＝０ｘ０＿４０２０”で、管理レジスタ（０＃Ｒ０）の末尾ポインタを更新する。これにより、図１５上段のように、書込要求領域と実使用領域（０＃Ｒ０）とこれらの間の未使用領域とを１つに纏めた新たな実使用領域に、実使用領域（０＃Ｒ０）が置き換えられる。
【０１０４】
図１６は、書込要求領域と実使用領域との間隔に基づく管理レジスタの更新例を示す図（続き）である。図１６上段のように、実使用領域と重複しない場合でも、間隔Ｃが閾値未満である場合、アドレス管理部１８０は、書込要求領域と実使用領域との位置関係を“重複”と判定する。
【０１０５】
例えば、先頭ポインタが“０ｘ０＿３０２０”であり、かつ、末尾ポインタが“０ｘ０＿４０２０”の実使用領域（０＃Ｒ０）がＤＩＭＭ１１０上に存在している。このとき、先頭アドレスが“０ｘ０＿２０００”であり、かつ、データ長が“０ｘ１０００”である書込要求領域への書込要求３１が受信されたとする。
【０１０６】
この場合、アドレス管理部１８０は、書込要求領域と実使用領域との位置関係を次のように判定する。
まず、アドレス管理部１８０は、間隔Ａ〜Ｄを算出する。その結果、図１６の位置関係判定表１５３が示すように、間隔Ａは“−０ｘ１０２０”となり、間隔Ｂは“−０ｘ２０２０”となり、間隔Ｃは“０ｘ２０”となり、間隔Ｄは“０ｘ１０２０”となる。この場合、間隔Ｃ，Ｄそれぞれが０より大きいが、間隔Ｃが閾値未満のため、アドレス管理部１８０は、書込要求領域と実使用領域との位置関係を“重複”と判定する。
【０１０７】
そして、アドレス管理部１８０は、図１１と同様に、書込要求領域と実使用領域（０＃Ｒ０）とこれらの間の未使用領域をマージする。すなわち、図１６上段では、書込要求領域の先頭アドレスは、実使用領域（０＃Ｒ０）の先頭ポインタより小さいため、書込要求領域の先頭アドレスがマージ後の実使用領域の先頭ポインタとなる。また、実使用領域（０＃Ｒ０）の末尾ポインタは、書込要求領域の末尾アドレスより大きいため、実使用領域（０＃Ｒ０）の末尾ポインタがマージ後の実使用領域の末尾ポインタとなる。そのため、実使用領域（０＃Ｒ０）の先頭ポインタが、書込要求領域の先頭アドレスで更新される。
【０１０８】
具体的には、アドレス管理部１８０は、書込要求領域の先頭アドレスである“０ｘ０＿２０００”で、実使用領域（０＃Ｒ０）の先頭ポインタを更新する。これにより、図１６上段のように、書込要求領域と、実使用領域（０＃Ｒ０）と、書込要求領域と実使用領域（０＃Ｒ０）との間の未使用領域とを、１つに纏めた新たな実使用領域に実使用領域（０＃Ｒ０）が置き換えられる。
【０１０９】
図１５〜１６で説明したように、書込要求領域と実使用領域が重複しない場合でも、間隔Ｂまたは間隔Ｃが閾値未満の場合、書込要求領域、実使用領域およびこれらの間の使用されていない領域（以下、未使用領域）がマージされることになる。この場合、実使用領域に実際にはデータが記録されていない領域（未使用領域）が含まれることになる。しかし、間隔Ｂまたは間隔Ｃが閾値未満である場合、未使用領域の存在によるデータのバックアップの速度への影響は少ないと考えられる。そこで、システム記憶装置１００は、このようなバックアップへの影響が少ない未使用領域は、実使用領域とみなし、書込要求領域および実使用領域と共に１つに纏めた実使用領域に置き換える。これにより、管理する実使用領域の数が減少し、管理レジスタ１５２の数を節約することができる。
【０１１０】
なお、アドレス管理部１８０は、例えば、図１５または図１６のような状況の場合でも、管理レジスタ群１５１に空きの管理レジスタ１５２（すなわち、有効ビットが“０”の管理レジスタ１５２）がある場合には、マージを行わずに、書き込み要求領域を新たな実使用領域として空きの管理レジスタ１５２に登録してもよい。
【０１１１】
図１７は、書込要求領域が複数の実使用領域と重複する場合の管理レジスタの更新例を示す図である。図１７上段のように、複数の実使用領域と重複する記憶領域への書込要求がされた場合、アドレス管理部１８０は、書込要求領域と重複する複数の実使用領域とを１つに纏めた実使用領域に、これらの複数の実使用領域を置き換える。図１７では、位置関係判定表１５３の各レコードが、各管理レジスタ１５２に対応づけて記載されている。そのため、位置関係判定表１５３のレジスタの項目の記載を省略する。以下、図１８についても同様とする。
【０１１２】
例えば、先頭ポインタが“０ｘ０＿３８００”であり、かつ、末尾ポインタが“０ｘ０＿４８００”である実使用領域（０＃Ｒ０）と、先頭ポインタが“０ｘ０＿２０００”であり、かつ、末尾ポインタが“０ｘ０＿３０００”である実使用領域Ｒ１がＤＩＭＭ１１０上に存在している。さらに、先頭ポインタが“０ｘ０＿６８００”であり、かつ、末尾ポインタが“０ｘ０＿７８００”である実使用領域Ｒ２と、先頭ポインタが“０ｘ０＿５０００”であり、かつ、末尾ポインタが“０ｘ０＿６０００”である実使用領域Ｒ３がＤＩＭＭ１１０上に存在している。この状態で、先頭アドレスが“０ｘ０＿２８００”であり、かつ、データ長が“０ｘ３０００”である書込要求領域への書込要求３１が受信されたとする。
【０１１３】
この場合、アドレス管理部１８０は、書込要求領域と実使用領域との位置関係を次のように判定する。
まず、アドレス管理部１８０は、各実使用領域について、間隔Ａ〜Ｄを算出する。その結果、図１７の位置関係判定表１５３が示すように、実使用領域（０＃Ｒ０）について、間隔Ａは“−０ｘ１０００”となり、間隔Ｂは“−０ｘ２０００”となり、間隔Ｃは“−０ｘ２０００”となり、間隔Ｄは“−０ｘ１０００”となる。また、実使用領域Ｒ１について、間隔Ａは“０ｘ８００”となり、間隔Ｂは“−０ｘ８００”となり、間隔Ｃは“−０ｘ３８００”となり、間隔Ｄは“−０ｘ２８００”となる。また、実使用領域Ｒ２について、間隔Ａは“−０ｘ４０００”となり、間隔Ｂは“−０ｘ５０００”となり、間隔Ｃは“０ｘ１０００”となり、間隔Ｄは“０ｘ２０００”となる。また、実使用領域Ｒ３について、間隔Ａは“−０ｘ２８００”となり、間隔Ｂは“−０ｘ３８００”となり、間隔Ｃは“−０ｘ８００”となり、間隔Ｄは“０ｘ８００”となる。この場合、アドレス管理部１８０は、書込要求領域と実使用領域（０＃Ｒ０，０＃Ｒ１，０＃Ｒ３）との位置関係を“重複”と判定し、書込要求領域と実使用領域Ｒ２との位置関係を“重複無し”と判定する。
【０１１４】
このとき、アドレス管理部１８０は、書込要求３１で指定された書込要求領域と実使用領域（０＃Ｒ０，０＃Ｒ１，０＃Ｒ３）とをマージした領域で、実使用領域（０＃Ｒ０，０＃Ｒ１，０＃Ｒ３）を更新する。これらの領域のマージの方法は、図１１で説明した方法と同様である。すなわち、図１７上段では、書込要求領域の先頭アドレスおよび実使用領域（０＃Ｒ０，０＃Ｒ１，０＃Ｒ３）それぞれの先頭ポインタのうち、実使用領域Ｒ１の先頭ポインタが最小（すなわち、一番手前）である。そのため、実使用領域Ｒ１の先頭ポインタがマージ後の実使用領域の先頭ポインタとなる。また、書込要求領域の末尾アドレスおよび実使用領域（０＃Ｒ０，０＃Ｒ１，０＃Ｒ３）それぞれの末尾ポインタのうち、実使用領域Ｒ３の末尾ポインタが最大（すなわち、一番後ろ）である。そのため、実使用領域Ｒ３の末尾ポインタがマージ後の実使用領域の末尾ポインタとなる。したがって、先頭ポインタが実使用領域Ｒ１の先頭ポインタであり、かつ、末尾ポインタが実使用領域Ｒ３の末尾ポインタである新たな実使用領域に、実使用領域（０＃Ｒ０，０＃Ｒ１，０＃Ｒ３）が置き換わる。
【０１１５】
具体的には、まず、アドレス管理部１８０は、実使用領域（０＃Ｒ０，０＃Ｒ１，０＃Ｒ３）に対応する管理レジスタ（０＃Ｒ０，０＃Ｒ１，０＃Ｒ３）から管理レジスタ１５２を１つ選択する。ここでは、管理レジスタ（０＃Ｒ０）を選択したとする。次に、アドレス管理部１８０は、実使用領域Ｒ１の先頭ポインタである“０ｘ０＿２０００”で、選択した管理レジスタ（０＃Ｒ０）における実使用領域（０＃Ｒ０）の先頭ポインタを更新する。同様に、アドレス管理部１８０は、実使用領域Ｒ３の末尾ポインタである“０ｘ０＿６０００”で、管理レジスタ（０＃Ｒ０）における実使用領域（０＃Ｒ０）の末尾ポインタを更新する。さらに、アドレス管理部１８０は、管理レジスタ（０＃Ｒ１，０＃Ｒ３）それぞれの有効ビットを“０”に更新する（図示無し）。これにより、図１７上段のように、書込要求領域と実使用領域（０＃Ｒ０，０＃Ｒ１，０＃Ｒ３）を１つに纏めた新たな実使用領域に、実使用領域（０＃Ｒ０，０＃Ｒ１，０＃Ｒ３）が置き換えられる。
【０１１６】
図１７の例では、管理レジスタ群１５１の更新前は、有効な管理レジスタ１５２の数が４つである。これに対し、管理レジスタ群１５１の更新後は、３つの実使用領域と書込要求領域とを１つの実使用領域に置き換えることで、有効な管理レジスタ１５２の数は２つに減少する。このように、書込要求領域は、位置関係が“重複”であれば、複数の実使用領域に対してもマージが可能である。これにより、より管理レジスタ１５２の数を節約できる。
【０１１７】
図１８は、書込要求領域が複数のいずれの実使用領域とも重複しない場合の管理レジスタの更新例を示す図である。図１８上段のように、複数のいずれの実使用領域とも重複しない記憶領域への書込要求がされたとき、管理レジスタ群１５１に登録可能な（有効ビットが“０”である）管理レジスタ１５２が存在する場合、アドレス管理部１８０は、書込要求領域をその登録可能な管理レジスタ１５２へ登録する。
【０１１８】
登録可能な管理レジスタ１５２が存在しない場合、まず、アドレス管理部１８０は、書込要求領域との距離が最小である実使用領域を選択する。そして、アドレス管理部１８０は、書込要求領域と選択した実使用領域とを１つに纏めた実使用領域に、これらの複数の実使用領域を置き換える。図１８では、書込要求領域が複数のいずれの実使用領域とも重複せず、かつ、登録可能な管理レジスタ１５２が存在しない場合について説明する。
【０１１９】
例えば、先頭ポインタが“０ｘ０＿４８００”であり、かつ、末尾ポインタが“０ｘ０＿５８００”である実使用領域Ｒ０と、先頭ポインタが“０ｘ０＿１０００”であり、かつ、末尾ポインタが“０ｘ０＿２０００”である実使用領域Ｒ１がＤＩＭＭ１１０上に存在している。さらに、先頭ポインタが“０ｘ０＿７８００”であり、かつ、末尾ポインタが“０ｘ０＿８８００”である実使用領域Ｒ２と、先頭ポインタが“０ｘ０＿６０００”であり、かつ、末尾ポインタが“０ｘ０＿７０００”である実使用領域Ｒ３がＤＩＭＭ１１０上に存在している。この状態で、先頭アドレスが“０ｘ０＿２８００”であり、かつ、データ長が“０ｘ１０００”である書込要求領域への書込要求３１が受信されたとする。この場合、アドレス管理部１８０は、書込要求領域と実使用領域との位置関係を次のように判定する。
【０１２０】
まず、アドレス管理部１８０は、各実使用領域について、間隔Ａ〜Ｄを算出する。その結果、図１８の位置関係判定表１５３が示すように、実使用領域Ｒ０について、間隔Ａは“−０ｘ２０００”となり、間隔Ｂは“−０ｘ３０００”となり、間隔Ｃは“０ｘ１０００”となり、間隔Ｄは“０ｘ２０００”となる。また、実使用領域Ｒ１について、間隔Ａは“０ｘ１８００”となり、間隔Ｂは“０ｘ８００”となり、間隔Ｃは“−０ｘ２８００”となり、間隔Ｄは“−０ｘ１８００”となる。また、実使用領域Ｒ２について、間隔Ａは“−０ｘ５０００”となり、間隔Ｂは“−０ｘ６０００”となり、間隔Ｃは“０ｘ４０００”となり、間隔Ｄは“０ｘ５０００”となる。また、実使用領域Ｒ３について、間隔Ａは“−０ｘ３８００”となり、間隔Ｂは“−０ｘ４８００”となり、間隔Ｃは“０ｘ２８００”となり、間隔Ｄは“０ｘ３８００”となる。この場合、アドレス管理部１８０は、書込要求領域と実使用領域（０＃Ｒ０，０＃Ｒ１，０＃Ｒ２，０＃Ｒ３）との位置関係を“重複無し”と判定する。
【０１２１】
このとき、まず、アドレス管理部１８０は、間隔Ｂの絶対値が一番小さい実使用領域と、間隔Ｃの絶対値が一番小さい実使用領域とを抽出する。図１８の示すように、間隔Ｂが一番小さい実使用領域は、実使用領域Ｒ１であり、間隔Ｃが一番小さい実使用領域は実使用領域Ｒ０である。次に、アドレス管理部１８０は、間隔Ｂ（Ｒ１）と間隔Ｃ（Ｒ０）とを比較し、値の小さい間隔Ｂが算出された実使用領域Ｒ１を選択する。“間隔Ｂ（Ｒ１）”は、実使用領域Ｒ１について算出された間隔Ｂを意味する。
【０１２２】
そして、アドレス管理部１８０は、図１８に示すように管理レジスタ群１５１に無効な管理レジスタ１５１が存在しない場合、書込要求３１で指定された書込要求領域と選択した実使用領域Ｒ１とをマージした領域で、実使用領域Ｒ１を更新する。これらの領域のマージの方法は、図１１で説明した方法と同様である。すなわち、図１８上段では、書込要求領域の先頭アドレスおよび実使用領域Ｒ１の先頭ポインタのうち、実使用領域Ｒ１の先頭ポインタが最小（すなわち、一番手前）である。そのため、実使用領域Ｒ１の先頭ポインタがマージ後の実使用領域の先頭ポインタとなる。また、書込要求領域の末尾アドレスおよび実使用領域Ｒ１の末尾ポインタのうち、書込要求領域の末尾ポインタが最大（すなわち、一番後ろ）である。そのため、書込要求領域の末尾ポインタがマージ後の実使用領域の末尾ポインタとなる。したがって、先頭ポインタが実使用領域Ｒ１の先頭ポインタであり、かつ、末尾ポインタが書込要求領域の末尾ポインタである新たな実使用領域に、実使用領域Ｒ１が置き換わる。
【０１２３】
具体的には、まず、アドレス管理部１８０は、実使用領域Ｒ１に対応する管理レジスタ（０＃Ｒ１）を選択する。次に、アドレス管理部１８０は、実使用領域Ｒ１の先頭ポインタである“０ｘ０＿１０００”で、選択した管理レジスタ（０＃Ｒ１）における実使用領域Ｒ１の先頭ポインタを更新する。同様に、アドレス管理部１８０は、書込要求領域の末尾ポインタである“０ｘ０＿３８００”で、管理レジスタ（０＃Ｒ１）における実使用領域Ｒ１の末尾ポインタを更新する。これにより、図１８上段のように、書込要求領域と実使用領域Ｒ１を１つに纏めた新たな実使用領域に、実使用領域Ｒ１が置き換えられる。
【０１２４】
図１８の例では、管理レジスタ群１５１に無効な（すなわち、使用可能な）管理レジスタ１５１が存在せず、書込要求領域と重複する実使用領域が存在しない。この場合に、書込要求領域との間隔が最小の実使用領域と書込要求領域とを１つの実使用領域に置き換えることで、書込要求領域に関する情報を管理レジスタ群１５１のいずれかの管理レジスタ１５２に登録できる。
【０１２５】
次に、図１９〜２０を用いて、システム記憶装置１００が管理レジスタ１５２を更新する処理について、フローチャートを用いて説明する。
図１９は、管理レジスタの更新処理の例を示すフローチャートである。以下、図１９に示す処理をステップ番号に沿って説明する。ここでは、サーバ装置３００ａがシステム記憶装置１００へデータの書込要求３１を送信したものとする。
【０１２６】
（ステップＳ１１）メモリ制御部１７０は、書込要求３１をサーバ装置３００ａから受信する。
（ステップＳ１２）アドレス管理部１８０は、書込要求３１に含まれる先頭アドレスに基づいて、書込要求３１により特定される書込要求領域（以下、書込要求領域）の属する分割領域を特定する。具体的には、アドレス管理部１８０は、書込要求３１に含まれる先頭アドレスの上位３ビットの値により、書込要求領域の属する分割領域を特定する。
【０１２７】
これ以後、例として、前述した位置関係判定表１５３を利用し、位置関係判定表１５３に適宜情報を登録しながら処理を進めるものとする。位置関係判定表１５３は、１つの分割領域に割り当てられた所定数（ここでは“４”）の管理レジスタ１５２にそれぞれ対応するレコードを有する。また、各レコードの「レジスタ」の項目には、対応する管理レジスタ１５２の識別子が登録されている。
【０１２８】
（ステップＳ１３）アドレス管理部１８０は、特定した分割領域に対応する管理レジスタ群１５１から、管理レジスタ１５２を１つ選択する。
（ステップＳ１４）アドレス管理部１８０は、選択した管理レジスタ１５２が有効か判定する。具体的には、アドレス管理部１８０は、選択した管理レジスタ１５２の有効ビットの項目が“１”であるか判定する。選択した管理レジスタ１５２が有効である場合、処理をステップＳ１５へ進める。選択した管理レジスタ１５２が無効である場合、処理をステップＳ１７へ進める。
【０１２９】
（ステップＳ１５）アドレス管理部１８０は、図９等で説明したように、選択した管理レジスタ１５２で特定される実使用領域（以下、選択した実使用領域）と、書込要求領域との間隔Ａ〜Ｄを算出する。
【０１３０】
アドレス管理部１８０は、選択した管理レジスタ１５２に対応するレコードを位置関係判定表１５３から検索し、検索されたレコードの間隔Ａ〜Ｄそれぞれの項目に対応する算出結果を登録する。選択した管理レジスタ１５２に対応するレコードは、レジスタの項目の値が、選択した管理レジスタ１５２の識別子（レジスタの項目）と一致するレコードであり、以下同様とする。
【０１３１】
（ステップＳ１６）アドレス管理部１８０は、算出した間隔Ａ〜Ｄに基づいて、図９〜１８で説明したように、選択した管理レジスタ１５２で特定される実使用領域と、書込要求３１で特定される書込要求領域との位置関係を判定する。
【０１３２】
すなわち、アドレス管理部１８０は、次のような判定条件に従って位置関係を判定する。
・間隔Ａ，Ｂがともに０より大きい場合、“重複無し”と判定する。
【０１３３】
・間隔Ｃ，Ｄがともに０より大きい場合、“重複無し”と判定する。
・間隔Ａが０以上であり、間隔Ｂが０以下であり、かつ、間隔Ｃ，Ｄがともに０未満である場合、“重複”と判定する。
【０１３４】
・間隔Ｄが０以上であり、間隔Ｃが０以下であり、かつ、間隔Ａ，Ｂがともに０未満である場合、“重複”と判定する。
・間隔Ａ，Ｂ，Ｃ，Ｄがともに０未満である場合、“重複”と判定する。
【０１３５】
・間隔Ａ，Ｄがともに０以上であり、かつ、間隔Ｂ，Ｃがともに０未満である場合、“包含”と判定する。
アドレス管理部１８０は、選択した管理レジスタ１５２に対応するレコードを位置関係判定表１５３から検索し、検索されたレコードの位置関係の項目を判定結果で更新する。
【０１３６】
（ステップＳ１７）アドレス管理部１８０は、選択した管理レジスタ１５２に対応するレコードを位置関係判定表１５３から検索し、検索されたレコードの位置関係の項目を“無効”で更新する。
【０１３７】
（ステップＳ１８）アドレス管理部１８０は、ステップＳ１２で特定した分割領域に対応する管理レジスタ群１５１において、全管理レジスタ１５２を選択済みか判定する。全管理レジスタ１５２を選択済みの場合、処理をステップＳ２１へ進める。未選択の管理レジスタ１５２が存在する場合、処理をステップＳ１３へ進める。
【０１３８】
図２０は、管理レジスタの更新処理の例を示すフローチャート（続き）である。以下、図２０に示す処理をステップ番号に沿って説明する。
（ステップＳ２１）アドレス管理部１８０は、図１９のステップＳ１２で特定された分割領域上に存在する複数の実使用領域のうち、図１９のステップＳ１６で、書込要求領域との位置関係が“包含”と判定された実使用領域が存在するか判定する。具体的には、アドレス管理部１８０は、位置関係判定表１５３に位置関係が“包含”であるレコードが含まれているか判定する。“包含”と判定された実使用領域が存在する場合、処理を終了する。“包含”と判定された実使用領域が存在しない場合、処理をステップＳ２２へ進める。
【０１３９】
（ステップＳ２２）アドレス管理部１８０は、図１９のステップＳ１２で特定された分割領域に対応する実使用領域が存在しないか判定する。具体的には、アドレス管理部１８０は、位置関係判定表１５３の全レコードにおいて、位置関係の項目に“無効”が設定されているか判定する。実使用領域が存在しない場合、処理をステップＳ２７へ進める。実使用領域が存在する場合、処理をステップＳ２３へ進める。
【０１４０】
（ステップＳ２３）アドレス管理部１８０は、図１９のステップＳ１２で特定された分割領域に対応する複数の実使用領域のうち、図１９のステップＳ１６で、書込要求領域との位置関係が“重複”と判定された実使用領域が存在するか判定する。具体的には、アドレス管理部１８０は、位置関係判定表１５３に位置関係が“重複”であるレコードが含まれているか判定する。“重複”と判定された実使用領域が存在する場合、処理をステップＳ３０へ進める。“重複”と判定された実使用領域が存在しない場合、処理をステップＳ２４へ進める。
【０１４１】
（ステップＳ２４）アドレス管理部１８０は、図１９のステップＳ１２で特定された分割領域に対応する複数の実使用領域のうち、書込要求領域との距離が最小の実使用領域を選択する。書込要求領域との距離とは、書込要求領域との間隔Ｂ，Ｃのうち０より大きい間隔である。
【０１４２】
具体的には、アドレス管理部１８０は、まず、位置関係判定表１５３において、位置関係の項目に“無効”以外が設定されているレコードを検索する。次に、アドレス管理部１８０は、検索された各レコードについて、間隔Ｂ，Ｃの項目のうち０より大きい間隔を、書込要求領域との距離として取得する。そして、アドレス管理部１８０は、取得した距離が最小であるレコードを選択する。
【０１４３】
（ステップＳ２５）アドレス管理部１８０は、選択した実使用領域と書込要求領域との距離が閾値未満か判定する。距離が閾値未満である場合、処理をステップＳ２９へ進める。距離が閾値以上である場合、処理をステップＳ２６へ進める。
【０１４４】
（ステップＳ２６）アドレス管理部１８０は、図１９のステップＳ１２で特定された分割領域に対応する管理レジスタ群１５１において、登録可能な管理レジスタ１５２が存在するか判定する。具体的には、アドレス管理部１８０は、位置関係判定表１５３において、位置関係の項目に“無効”が設定されているレコードが存在するか判定する。登録可能な管理レジスタ１５２が存在する場合、処理をステップＳ２７へ進める。登録可能な管理レジスタ１５２が存在しない場合、処理をステップＳ２９へ進める。
【０１４５】
（ステップＳ２７）アドレス管理部１８０は、登録可能な管理レジスタ１５２を１つ選択する。具体的には、アドレス管理部１８０は、図１９のステップＳ１２で特定された分割領域に対応する管理レジスタ群１５１において、有効ビットが“０”である管理レジスタ１５２を選択する。
【０１４６】
（ステップＳ２８）アドレス管理部１８０は、選択した管理レジスタ１５２に書込要求領域を新たな実使用領域として登録する。具体的には、アドレス管理部１８０は、選択した管理レジスタ１５２の有効ビットの項目に“１”を設定し、先頭ポインタの項目に書込要求領域の先頭アドレスを設定する。同様に、アドレス管理部１８０は、選択した管理レジスタ１５２の末尾ポインタの項目に書込要求領域の末尾アドレス（すなわち、“書込要求領域の先頭アドレス＋書込要求領域のデータ長”であり、以下同様）を設定する。
【０１４７】
（ステップＳ２９）アドレス管理部１８０は、位置関係判定表１５３において、ステップＳ２４で選択した実使用領域に対応するレコードの位置関係の項目を“重複”で更新する。すなわち、アドレス管理部１８０は、ステップＳ２４で選択した実使用領域を書込要求領域と重複しているとみなす。
【０１４８】
（ステップＳ３０）アドレス管理部１８０は、マージ後の実使用領域の先頭ポインタを、以下のように算出する。
まず、アドレス管理部１８０は、位置関係判定表１５３から位置関係が“重複“であるレコードに対応する管理レジスタ１５２を検索する。具体的には、アドレス管理部１８０は、重複であるレコードに設定されているレジスタの識別子と一致する管理レジスタ１５２を、図１９のステップＳ１２で特定された分割領域に対応する管理レジスタ群１５１から検索する。次に、アドレス管理部１８０は、選択した各管理レジスタ１５２の先頭ポインタおよび書込要求３１の先頭アドレスのうち最小値を、マージ後の実使用領域の先頭ポインタとして算出する。
【０１４９】
（ステップＳ３１）アドレス管理部１８０は、マージ後の実使用領域の末尾ポインタを、以下のように算出する。
まず、アドレス管理部１８０は、ステップＳ３０と同様に、位置関係が“重複“であるレコードに対応する管理レジスタ１５２を位置関係判定表１５３から検索する。次に、アドレス管理部１８０は、検索した各管理レジスタ１５２の末尾ポインタおよび書込要求３１の末尾アドレスのうち最大値を、マージ後の実使用領域の末尾ポインタとして算出する。
【０１５０】
（ステップＳ３２）アドレス管理部１８０は、検索した管理レジスタ１５２から管理レジスタ１５２を１つ選択する。例えば、アドレス管理部１８０は、検索した管理レジスタ１５２のうち、レジスタの識別子が最小の管理レジスタ１５２を選択する。次に、アドレス管理部１８０は、選択した管理レジスタ１５２の先頭ポインタを、ステップＳ３０で算出されたマージ後の先頭ポインタで更新する。次に、アドレス管理部１８０は、選択した管理レジスタ１５２の末尾ポインタを、ステップＳ３１で算出されたマージ後の末尾ポインタで更新する。
【０１５１】
（ステップＳ３３）アドレス管理部１８０は、ステップＳ３２で選択されなかった各管理レジスタ１５２の有効ビットを“０”に更新する。
以上の図１９，図２０の処理により、書込要求領域と１つ以上の実使用領域とが必要に応じてマージされ、有限個の管理レジスタ１５２を効率的に使用して実使用領域を管理できるようになる。
【０１５２】
また、アドレス管理部１８０は、サーバ装置３００ａ，３００ｂ，…からＤＩＭＭ１１０への書込要求をシステム記憶装置１００が受信するたびに、対応する管理レジスタ群１５１に対する実使用領域の登録や、登録されている実使用領域の更新を行う。このため、管理装置２００からのバックアップ要求をシステム記憶装置１００が受信したとき、その時点でＤＩＭＭ１１０にデータが書き込まれている領域の情報が、管理レジスタ群１５１に登録されている状態となる。
【０１５３】
これにより、転送制御部１９０は、バックアップ要求を受信してバックアップ処理を開始する際に、管理レジスタ群１５１に登録された情報を参照するだけで、ＤＩＭＭ１１０の記憶領域のうちデータを読み出すべき領域を認識できる。このため、例えば、バックアップ処理を開始する時点で、ＤＩＭＭ１１０の記憶領域のうちデータを読み出すべき領域を調査するといった負荷がかかる処理を実行しなくて済むので、バックアップ処理を即座に開始することができる。
【０１５４】
次に、ＤＩＭＭ１１０に格納されたデータのバックアップ処理、およびバックアップデータの復元処理について説明する。
図２１は、復元管理情報およびその記録処理の例を示す図である。なお、図２１の説明では、管理レジスタ１５２における有効ビットの項目の記載を省略する。また、図２１の説明では、無効な管理レジスタ１５２の記載を省略する。
【０１５５】
復元管理情報１２１は、ＳＳＤ１２０に記憶されているバックアップデータを復元するための情報を格納する。復元管理情報は、種別、先頭アドレスおよびデータ長の項目を有する。
【０１５６】
種別の項目には、復元管理情報の種別を示す情報が設定される。種別が“復元”の場合、復元管理情報がバックアップデータの復元先に関する情報であることを示す。種別が“終了”の場合、復元管理情報がバックアップデータの終端であることを示す。以下、バックアップデータの終端であることを示す復元管理情報１２１を“復元管理情報（終了）”と記載する場合がある。
【０１５７】
先頭アドレスの項目には、復元先の実使用領域の先頭アドレスが設定される。データ長の項目には、復元先の実使用領域のデータ長が設定される。
例えば、復元管理情報１２１が復元先の実使用領域に関するものである場合、復元先の先頭ポインタが“０ｘ０＿００００＿０１００”であり、末尾ポインタ“０ｘ０＿００２０＿０１００”である実使用領域の場合、先頭アドレスの項目には、“０ｘ０＿００００＿０１００”が設定される。同様に、データ長の項目には、末尾ポインタと先頭ポインタとの差分である“０ｘ２０＿００００”が設定される。また、復元管理情報１２１が復元管理情報（終了）である場合、先頭アドレスおよびデータ長の項目には、例えば、“ＮＵＬＬ”が設定される。
【０１５８】
ＳＳＤ１２０は、復元管理情報１２１と、復元管理情報１２１に対応する実使用領域のデータとを交互に並べたデータをバックアップデータとして記憶する。例えば、ＤＩＭＭ１１０には、分割領域（０ｘ０）上の実使用領域（０＃Ｒ０，０＃Ｒ１）および、分割領域（０ｘ７）上の実使用領域（７＃Ｒ０）のみが存在するとした場合、次のように、ＤＩＭＭ１１０のバックアップデータがＳＳＤ１２０に記憶される。
【０１５９】
まず、ＳＳＤ１２０の所定のアドレス（例えば、先頭アドレス）から実使用領域（０＃Ｒ０）に対応する復元管理情報１２１が記憶される。以下、実使用領域（０＃Ｒ０）に対応する復元管理情報１２１を“復元管理情報（０＃Ｒ０）”と記載する場合がある。次に、ＳＳＤ１２０上の復元管理情報（０＃Ｒ０）の末尾の次のアドレスから、実使用領域（０＃Ｒ０）内のデータが記憶される。なお、「実使用領域内のデータ」とは、実使用領域の記憶内容全体を表す。以下、実使用領域（０＃Ｒ０）上のデータを“データ（０＃Ｒ０）”と記載する場合がある。次に、データ（０＃Ｒ０）の末尾の次のアドレスから、復元管理情報（０＃Ｒ１）、データ（０＃Ｒ１）の順にデータが記憶され、続けて、復元管理情報（７＃Ｒ０）、データ（７＃Ｒ０）の順にデータが記憶される。そして、最後に、復元管理情報（終了）が記憶される。
【０１６０】
次に、図２２〜２５を用いて、システム記憶装置１００におけるバックアップ処理および復元処理の例について、フローチャートを用いて説明する。
図２２は、バックアップ処理の例を示すフローチャートである。図２２〜２３で説明する処理は、管理装置２００からバックアップを要求されたときに、転送制御部１９０により実行される処理である。以下、図２２に示す処理をステップ番号に沿って説明する。
【０１６１】
（ステップＳ４１）転送制御部１９０は、ＤＩＭＭ１１０から分割領域を１つ選択する。具体的には、転送制御部１９０は、ＤＩＭＭ１１０から分割領域に対応する管理レジスタ群１５１を１つ選択する。選択の順番は、分割領域のアドレスの値が小さい順とする。
【０１６２】
（ステップＳ４２）転送制御部１９０は、選択した管理レジスタ群１５１から管理レジスタ１５２を１つ選択する。選択の順番は、レジスタの識別子の値が小さい順とする。
（ステップＳ４３）転送制御部１９０は、選択した管理レジスタ１５２の有効ビットが“１”であるか判定する。有効ビットが“１”である場合、処理をステップＳ４４へ進める。有効ビットが“０”である場合、処理をステップＳ４２へ進める。
【０１６３】
（ステップＳ４４）転送制御部１９０は、選択した管理レジスタ１５２に基づき復元管理情報１２１を生成する。生成される復元管理情報１２１の種別の項目には、“復元”が設定される。また、生成される復元管理情報１２１の先頭アドレスの項目には、選択した管理レジスタ１５２の先頭ポインタの項目の値が設定される。さらに、生成される復元管理情報１２１のデータ長の項目には、“選択した管理レジスタ１５２の末尾ポインタ−選択した管理レジスタ１５２の先頭ポインタ”により算出された値が設定される。
【０１６４】
転送制御部１９０は、生成された復元管理情報１２１を、ＳＳＤ入出力部１６０を通じて、ＳＳＤ１２０の空き領域の先頭領域に書き込む。なお、本フローチャートにおいて、ＳＳＤ１２０への書き込みは、ＳＳＤ１２０の記憶領域の先頭を起点として、直前に書き込みが行われた領域に続く領域へ行われる。
【０１６５】
（ステップＳ４５）転送制御部１９０は、ＤＩＭＭ１１０の記憶領域のうち、選択した管理レジスタ１５２に登録されている実使用領域から、ＤＩＭＭ入出力部１４０を通じてデータを読み出す。具体的には、転送制御部１９０は、ＤＩＭＭ入出力部１４０のＤＩＭＭリードレジスタに、選択した管理レジスタ１５２に登録されている先頭ポインタの値を設定して、ＤＩＭＭ入出力部１４０にデータの読み出しを要求する。それ以後、転送制御部１９０は、ＤＩＭＭリードレジスタの設定値を、選択した管理レジスタ１５２に登録されている末尾ポインタの値に達するまでカウントアップする。これにより、実使用領域のデータがＤＩＭＭ１１０から読み出される。
【０１６６】
転送制御部１９０は、読み出されたデータを、ＳＳＤ入出力部１６０を通じて、ＳＳＤ１２０の空き領域の先頭領域に書き込む。
（ステップＳ４６）転送制御部１９０は、ステップＳ４１で選択した管理レジスタ群１５１から全管理レジスタ１５２を選択したか判定する。全管理レジスタ１５２を選択した場合、処理をステップＳ４７へ進める。未選択の管理レジスタ１５２が存在する場合、処理をステップＳ４２へ進める。
【０１６７】
（ステップＳ４７）転送制御部１９０は、全管理レジスタ群１５１を選択したか判定する。全管理レジスタ群１５１を選択した場合、処理をステップＳ４８へ進める。未選択の管理レジスタ群１５１が存在する場合、処理をステップＳ４１へ進める。
【０１６８】
（ステップＳ４８）転送制御部１９０は、復元管理情報（終了）を生成する。生成される復元管理情報（終了）の種別の項目には、“終了”が設定される。また、生成される復元管理情報（終了）のその他の項目には“ＮＵＬＬ”が設定される。転送制御部１９０は、生成された復元管理情報（終了）を、ＳＳＤ入出力部１６０を通じて、ＳＳＤ１２０の空き領域の先頭領域へ書き込む。
【０１６９】
（ステップＳ４９）転送制御部１９０は、バックアップ完了通知を管理装置２００に送信するよう、通信インタフェース１０２に要求する。すると、バックアップ完了通知が通信インタフェース１０２により、管理装置２００に送信される。
【０１７０】
図２３は、復元処理の例を示すフローチャートである。図２３で説明する処理は、管理装置２００からバックアップデータの復元を要求されたときに、記憶制御回路１３０により実行される処理である。また、図２３では、ＳＳＤ１２０上の先頭の復元管理情報１２１は、復元管理情報（終了）以外であるもの（すなわち、ＳＳＤ１２０には、１以上の実使用領域のバックアップデータが格納されている）とする。以下、図２３に示す処理をステップ番号に沿って説明する。
【０１７１】
（ステップＳ７１）転送制御部１９０は、全ての管理レジスタ１５２をリセットする。具体的には、転送制御部１９０は、全ての管理レジスタ１５２について、有効ビットの項目に“０”を設定し、先頭ポインタおよび末尾ポインタの各項目の設定値を消去する。
【０１７２】
（ステップＳ７２）転送制御部１９０は、ＳＳＤ入出力部１６０を通じて、ＳＳＤ１２０の所定のアドレス（例えば、先頭アドレス）から先頭の復元管理情報１２１を読み出す。
【０１７３】
（ステップＳ７３）転送制御部１９０は、読み出した復元管理情報１２１に設定されている先頭アドレスの上位３ビットと、識別子が一致する管理レジスタ群１５１を特定する。
【０１７４】
（ステップＳ７４）転送制御部１９０は、特定された管理レジスタ群１５１における空きの管理レジスタ１５２（有効ビットが“０”である管理レジスタ１５２）のうち、先頭の管理レジスタ１５２（レジスタの識別子が最小の管理レジスタ１５２）を選択する。
【０１７５】
（ステップＳ７５）転送制御部１９０は、ステップＳ７２または後述するステップＳ７７で読み出した復元管理情報１２１に基づいて、選択した管理レジスタ１５２に実使用領域に関する情報を登録し、管理レジスタ１５２を復元する。
【０１７６】
具体的には、転送制御部１９０は、選択した管理レジスタ１５２の有効ビットの項目に“１”を設定し、選択した管理レジスタ１５２の先頭ポインタの項目に、読み出した復元管理情報１２１に設定されている先頭アドレスを設定する。同様に、転送制御部１９０は、選択した管理レジスタ１５２の末尾ポインタの項目に、“読み出した復元管理情報１２１に設定されている先頭アドレス＋読み出した復元管理情報１２１に設定されているデータ長”によって算出される値を設定する。
【０１７７】
（ステップＳ７６）転送制御部１９０は、選択した管理レジスタ１５２に対してステップＳ７５で設定されたポインタに基づき、ＳＳＤ１２０からデータを読み出してＤＩＭＭ１１０へ書き込む。
【０１７８】
具体的には、転送制御部１９０は、ＳＳＤ入出力部１６０を通じて、直前に復元管理情報１２１が読み出された領域に続くＳＳＤ１２０の記憶領域から、管理レジスタ１５２にそれぞれ設定された先頭ポインタと末尾ポインタとの差分に対応するサイズの分だけ、データを読み出す。転送制御部１９０は、読み出されたデータをＤＩＭＭ入出力部１４０に転送する。
【０１７９】
また、転送制御部１９０は、ＤＩＭＭ入出力部１４０のＤＩＭＭライトレジスタに、管理レジスタ１５２に設定された先頭ポインタを設定し、ＤＩＭＭ入出力部１４０にデータの書き込みを要求する。それ以後、転送制御部１９０は、ＤＩＭＭライトレジスタの設定値を、管理レジスタ１５２に設定された末尾ポインタの値に達するまでカウントアップする。これにより、管理レジスタ１５２が示すＤＩＭＭ１１０上の実使用領域に、ＳＳＤ１２０から読み出されたバックアップデータが書き込まれ、実使用領域が復元される。
【０１８０】
（ステップＳ７７）転送制御部１９０は、ＳＳＤ入出力部１６０を通じて、ＳＳＤ１２０から次の復元管理情報１２１を読み出す。ＳＳＤ１２０からの読み出しは、ステップＳ７６でデータが読み出された領域の次から行われる。
【０１８１】
（ステップＳ７８）転送制御部１９０は、読み出した復元管理情報１２１に設定されている種別が“終了”であるか判定する。すなわち、転送制御部１９０は、読み出した復元管理情報１２１が復元管理情報（終了）であるか判定する。種別が“終了”である場合、処理をステップＳ７９へ進める。種別が“終了”以外（すなわち、“復元”）である場合、処理をステップＳ７３へ進める。
【０１８２】
（ステップＳ７９）転送制御部１９０は、復元完了通知を管理装置２００に送信するよう、通信インタフェース１０２に要求する。すると、復元完了通知が通信インタフェース１０２により、管理装置２００に送信される。
【０１８３】
以上の図２３の処理により、バックアップ処理の直前において、各分割領域に対応する管理レジスタ群１５１に登録されていた情報が復元される。なお、図２３の処理例では、１つの管理レジスタ群１５１の中においては、情報が登録される管理レジスタ１５２の位置が、バックアップ処理の前と復元後とで変わる場合がある。その理由は、図２３の処理例では、管理レジスタ群１５１内の先頭の管理レジスタ群１５１から順に、情報が登録されているからである。ただし、復元される情報の内容（すなわち、実使用領域の範囲）は変更されない。
【０１８４】
第２の実施の形態の情報処理システムによれば、ＤＩＭＭ１１０上のデータをＳＳＤ１２０へバックアップする際、管理レジスタ１５２に登録されている実使用領域に格納されているデータのみをＳＳＤ１２０へバックアップする。また、管理レジスタ１５２には、書込要求により指定される書込要求領域に基づいて実使用領域が設定される。これにより、実使用領域には実際に書込要求された記憶領域のみが含まれ、実使用領域と判定された領域の中に未使用領域が含まれなくなる。よって、ＤＩＭＭ１１０の全記憶領域のうち使用中の記憶領域のみをＳＳＤ１２０へバックアップすることができ、ＤＩＭＭ１１０からＳＳＤ１２０へのデータのバックアップが効率化される。
【０１８５】
また、アドレス管理部１８０は、書込要求領域と重複する実使用領域が管理レジスタ１５２に登録されている場合、書込要求領域と重複する実使用領域とをマージした領域で、重複する実使用領域を置き換えて管理レジスタ１５２に登録する。これにより、実使用領域を登録する管理レジスタ１５２の数を減らすことができるため、管理レジスタ１５２全体の記憶容量を抑制することができる。
【０１８６】
また、書込要求領域を包含する実使用領域が管理レジスタ１５２に登録されている場合、アドレス管理部１８０は、管理レジスタ１５２を更新しない。これにより、管理レジスタ１５２の数を減らすことができるため、管理レジスタ１５２の記憶容量を抑制することができる。また、この場合、書込要求領域と実使用領域とをマージする処理を省略できるため、処理速度が向上する。
【０１８７】
また、アドレス管理部１８０は、書込要求領域と重複する実使用領域が管理レジスタ１５２に登録されていない場合、管理レジスタ１５２に登録されている実使用領域のうち、書込要求領域との距離が最も近い実使用領域を、書込要求領域をマージした実使用領域で置き換えて管理レジスタ１５２に登録する。これにより、書込要求領域を実使用領域とマージすることが多くなるため、管理レジスタ１５２の数をより減少することができる。よって、管理レジスタ１５２の記憶容量を抑制することができる。
【０１８８】
また、システム記憶装置１００は、管理レジスタ１５２の数を制限することで、レジスタの容量を節約することができる。
また、上記のように、実使用領域のアドレスに基づいて分割領域を判定することで、書込要求領域のアドレスに応じて、一意に更新する管理レジスタ１５２の候補を特定することができるため、更新する管理レジスタ１５２の候補を高速に特定できる。
【０１８９】
［第３の実施の形態］
第２の実施の形態に示したシステム記憶装置１００は、図２４に示すようなコンピュータとして実現されてもよい。
【０１９０】
図２４は、第３の実施の形態に係るシステム記憶装置のハードウェア構成例を示す図である。システム記憶装置１００ａは、プロセッサ４０１、ＲＡＭ４０２、ＨＤＤ４０３、入力信号処理部４０４、ディスクドライブ４０５、通信インタフェース４０６，４０７、ＤＩＭＭ入出力部４０８およびＳＳＤ入出力部４０９を有する。これらのユニットは、システム記憶装置１００ａ内でバス４１０に接続されている。また、システム記憶装置１００ａは、第２の実施の形態と同様のＤＩＭＭ１１０およびＳＳＤ１２０を有する。
【０１９１】
プロセッサ４０１は、プログラムの命令を実行する演算器を含むプロセッサである。ＲＡＭ４０２は、プロセッサ４０１が実行するプログラムやプログラムから参照されるデータを一時的に記憶する揮発性メモリである。ＨＤＤ４０３は、ＯＳやファームウェアやアプリケーションソフトウェア等のプログラムおよびデータを記憶する不揮発性の記憶装置である。
【０１９２】
入力信号処理部４０４は、システム記憶装置１００ａに接続された入力デバイス４０４ａから入力信号を取得し、プロセッサ４０１に通知する。ディスクドライブ４０５は、記録媒体４０５ａに記録されたプログラムやデータを読み取る駆動装置である。ディスクドライブ４０５は、プロセッサ４０１からの命令に従って、記録媒体４０５ａから読み取ったプログラムやデータをＲＡＭ４０２またはＨＤＤ４０３に格納する。
【０１９３】
通信インタフェース４０６は、管理装置２００と通信を行う。通信インタフェース４０６は、例えば、管理装置２００から、バックアップ要求や復元要求を受信する。通信インタフェース４０７は、サーバ装置３００ａ，３００ｂ，…と通信を行う。通信インタフェース４０７は、例えば、サーバ装置３００ａ，３００ｂ，…から、ＤＩＭＭ１１０に対するアクセス要求を受信する。
【０１９４】
ＤＩＭＭ入出力部４０８は、図４のＤＩＭＭ入出力部１４０に対応するハードウェアであり、ＤＩＭＭ１１０へのアクセスを行う。ＳＳＤ入出力部４０９は、図４のＳＳＤ入出力部１６０に対応するハードウェアであり、ＳＳＤ１２０へのアクセスを行う。
【０１９５】
第３の実施の形態のシステム記憶装置１００ａにおいては、図４のメモリ制御部１７０、アドレス管理部１８０および転送制御部１９０の処理が、所定のプログラムをプロセッサ４０１が実行することによって実現される。また、図４の管理情報記憶部１５０は、例えば、ＲＡＭ４０２またはＨＤＤ４０３の記憶領域によって実現され、このような記憶領域に、管理レジスタ１５２と同様の情報が記憶される。これにより、システム記憶装置１００ａは、図４のシステム記憶装置１００と同様の処理を実行することができる。
【０１９６】
なお、前述のように、第１の実施の形態の情報処理は、記憶制御装置１０にプログラムを実行させることで実現でき、第２の実施の形態の情報処理は、システム記憶装置１００や管理装置２００やサーバ装置３００ａ，３００ｂ，…にプログラムを実行させることで実現できる。また、第３の実施の形態の情報処理は、システム記憶装置１００ａにプログラムを実行させることで実現できる。このようなプログラムは、コンピュータ読み取り可能な記録媒体（例えば、記録媒体２３）に記録しておくことができる。記録媒体としては、例えば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリ等を使用できる。磁気ディスクには、ＦＤおよびＨＤＤが含まれる。光ディスクには、ＣＤ、ＣＤ−Ｒ（Recordable）／ＲＷ（Rewritable）、ＤＶＤおよびＤＶＤ−Ｒ／ＲＷが含まれる。
【０１９７】
プログラムを流通させる場合、例えば、当該プログラムを記録した可搬記録媒体が提供される。また、プログラムを他のコンピュータの記憶装置に格納しておき、ネットワーク３０経由でプログラムを配布することもできる。コンピュータは、例えば、可搬記録媒体に記録されたプログラムまたは他のコンピュータから受信したプログラムを、記憶装置（例えば、ＨＤＤ２０３）に格納し、当該記憶装置からプログラムを読み込んで実行する。ただし、可搬記録媒体から読み込んだプログラムを直接実行してもよく、他のコンピュータからネットワークを介して受信したプログラムを直接実行してもよい。また、上記の情報処理の少なくとも一部を、ＤＳＰ、ＡＳＩＣ、ＰＬＤ（Programmable Logic Device）等の電子回路で実現することも可能である。
【０１９８】
上記については単に本発明の原理を示すものである。さらに、多数の変形や変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応する全ての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【符号の説明】
【０１９９】
１０  記憶制御装置
１１，１２  記憶装置
１３  記憶部
１４  制御部
＃１，＃２  使用領域
【図１】
2015040694.tif 000003
【図２】
2015040694.tif 000004
【図３】
2015040694.tif 000005
【図４】
2015040694.tif 000006
【図５】
2015040694.tif 000007
【図６】
2015040694.tif 000008
【図７】
2015040694.tif 000009
【図８】
2015040694.tif 000010
【図９】
2015040694.tif 000011
【図１０】
2015040694.tif 000012
【図１１】
2015040694.tif 000013
【図１２】
2015040694.tif 000014
【図１３】
2015040694.tif 000015
【図１４】
2015040694.tif 000016
【図１５】
2015040694.tif 000017
【図１６】
2015040694.tif 000018
【図１７】
2015040694.tif 000019
【図１８】
2015040694.tif 000020
【図１９】
2015040694.tif 000021
【図２０】
2015040694.tif 000022
【図２１】
2015040694.tif 000023
【図２２】
2015040694.tif 000024
【図２３】
2015040694.tif 000025
【図２４】
2015040694.tif 000026
【手続補正書】
【提出日】平成27年8月18日(2015.8.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１の記憶装置の記憶領域のうち、データが書き込まれた領域を示す使用領域が登録される領域管理情報を記憶する記憶部と、
前記第１の記憶装置の記憶領域のうち、前記領域管理情報に登録された使用領域に記憶されたデータを、第２の記憶装置に保存する制御部と、
を有することを特徴とする記憶制御装置。
【請求項２】
前記第１の記憶装置へのデータの書き込み要求および書き込みアドレスを受信したとき、受信した書き込みアドレスが示す書き込み領域を、使用領域として前記領域管理情報に登録する領域管理部をさらに有することを特徴とする請求項１記載の記憶制御装置。
【請求項３】
前記領域管理情報には、それぞれ連続するアドレス範囲を示す使用領域が１以上登録され、
前記領域管理部は、前記領域管理情報に登録されている使用領域のうち、前記書き込み領域と重複する１以上の使用領域を、前記書き込み領域とマージし、前記重複する１以上の使用領域を前記領域管理情報から削除し、マージによって生成された使用領域を前記領域管理情報に登録する、
ことを特徴とする請求項２記載の記憶制御装置。
【請求項４】
前記領域管理部は、前記領域管理情報に登録されている使用領域のうち、前記書き込み領域と重複している使用領域が存在しない場合、前記書き込み領域との間隔が最も近い使用領域を選択し、選択した使用領域を前記書き込み領域とマージし、前記選択した使用領域をマージによって生成された使用領域に置き換えることを特徴とする請求項２または３のいずれか１項に記載の記憶制御装置。
【請求項５】
前記領域管理部は、前記選択した使用領域と前記書き込み領域との距離が閾値未満の場合に、前記選択した使用領域を前記書き込み領域とマージし、前記選択した使用領域をマージによって生成された使用領域に置き換えることを特徴とする請求項４記載の記憶制御装置。
【請求項６】
前記領域管理部は、前記書き込み領域が前記領域管理情報に登録されている使用領域のいずれかに包含されている場合、前記領域管理情報の更新を回避することを特徴とする請求項２乃至５のいずれか１項に記載の記憶制御装置。
【請求項７】
前記第１の記憶装置の記憶領域は、複数の分割領域に分割され、
前記記憶部は、前記複数の分割領域それぞれにおける使用領域が登録される複数の領域管理情報を記憶し、前記複数の領域管理情報のそれぞれには一定数を上限とする複数の使用領域が登録されることを特徴とする請求項１乃至６のいずれか１項に記載の記憶制御装置。
【請求項８】
前記制御部は、前記第２の記憶装置にデータを保存する際、前記保存したデータに対応する使用領域に関する情報を前記第２の記憶装置に保存し、前記第２の記憶装置に保存されたデータを前記第１の記憶装置へ書き戻す際、前記使用領域に関する情報に基づき、前記第１の記憶装置におけるデータの記憶状態を、前記第２の記憶装置にデータを保存する直前の状態に復元することを特徴とする請求項１乃至７のいずれか１項に記載の記憶制御装置。
【請求項９】
第１の記憶装置の記憶領域のうち、データが書き込まれた領域を示す使用領域を領域管理情報に登録し、
前記第１の記憶装置の記憶領域のうち、前記領域管理情報に登録された使用領域に記憶されたデータを、第２の記憶装置に保存する、
ことを特徴とする記憶制御方法。
【請求項１０】
コンピュータに、
第１の記憶装置の記憶領域のうち、データが書き込まれた領域を示す使用領域を領域管理情報に登録し、
前記第１の記憶装置の記憶領域のうち、前記領域管理情報に登録された使用領域に記憶されたデータを、第２の記憶装置に保存する、
処理を実行させることを特徴とする記憶制御プログラム。
【手続補正書】
【提出日】平成28年9月28日(2016.9.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１の記憶装置の記憶領域のうち、データが書き込まれた領域を示し、かつ連続するアドレス範囲を示す使用領域が、１以上登録される領域管理情報を記憶する記憶部と、
前記第１の記憶装置へのデータの書き込み要求および書き込みアドレスを受信したとき、受信した書き込みアドレスが示す書き込み領域を、使用領域として前記領域管理情報に登録する領域管理部と、
前記第１の記憶装置の記憶領域のうち、前記領域管理情報に登録された使用領域に記憶されたデータを、第２の記憶装置に保存する制御部と、
を有し、
前記領域管理部は、前記領域管理情報に登録されている使用領域のうち、前記書き込み領域と重複する１以上の使用領域を、前記書き込み領域とマージし、前記重複する１以上の使用領域を前記領域管理情報から削除し、マージによって生成された使用領域を前記領域管理情報に登録することを特徴とする記憶制御装置。
【請求項２】
前記領域管理部は、前記領域管理情報に登録されている使用領域のうち、前記書き込み領域と重複している使用領域が存在しない場合、前記書き込み領域との間隔が最も近い使用領域を選択し、選択した使用領域を前記書き込み領域とマージし、前記選択した使用領域をマージによって生成された使用領域に置き換えることを特徴とする請求項１記載の記憶制御装置。
【請求項３】
前記領域管理部は、前記選択した使用領域と前記書き込み領域との距離が閾値未満の場合に、前記選択した使用領域を前記書き込み領域とマージし、前記選択した使用領域をマージによって生成された使用領域に置き換えることを特徴とする請求項２記載の記憶制御装置。
【請求項４】
前記領域管理部は、前記書き込み領域が前記領域管理情報に登録されている使用領域のいずれかに包含されている場合、前記領域管理情報の更新を回避することを特徴とする請求項１乃至３のいずれか１項に記載の記憶制御装置。
【請求項５】
第１の記憶装置の記憶領域を分割した複数の分割領域にそれぞれ対応する複数の領域管理情報を記憶する記憶部であって、前記複数の領域管理情報それぞれには、前記複数の分割領域のうち対応する分割領域におけるデータが書き込まれた領域を示す使用領域が、一定数を上限として登録される、前記記憶部と、
前記第１の記憶装置の記憶領域のうち、前記複数の領域管理情報に登録された使用領域に記憶されたデータを、第２の記憶装置に保存する制御部と、
を有することを特徴とする記憶制御装置。
【請求項６】
前記制御部は、前記第２の記憶装置にデータを保存する際、前記保存したデータに対応する使用領域に関する情報を前記第２の記憶装置に保存し、前記第２の記憶装置に保存されたデータを前記第１の記憶装置へ書き戻す際、前記第２の記憶装置に保存された、使用領域に関する情報に基づき、前記第１の記憶装置におけるデータの記憶状態を、前記第２の記憶装置にデータを保存する直前の状態に復元することを特徴とする請求項１乃至５のいずれか１項に記載の記憶制御装置。
【請求項７】
第１の記憶装置の記憶領域のうち、データが書き込まれた領域を示し、かつ連続するアドレス範囲を示す使用領域を、領域管理情報に１以上登録し、
前記第１の記憶装置の記憶領域のうち、前記領域管理情報に登録された使用領域に記憶されたデータを、第２の記憶装置に保存する、
処理を含み、
前記領域管理情報への登録では、
前記第１の記憶装置へのデータの書き込み要求および書き込みアドレスを受信したとき、受信した書き込みアドレスが示す書き込み領域を、使用領域として前記領域管理情報に登録し、
前記領域管理情報に登録されている使用領域のうち、前記書き込み領域と重複する１以上の使用領域を、前記書き込み領域とマージし、前記重複する１以上の使用領域を前記領域管理情報から削除し、マージによって生成された使用領域を前記領域管理情報に登録する、
ことを特徴とする記憶制御方法。
【請求項８】
第１の記憶装置の記憶領域を分割した複数の分割領域に複数の領域管理情報がそれぞれ対応付けられており、前記複数の分割領域それぞれにおけるデータが書き込まれた領域を示す使用領域を、前記複数の領域管理情報のうち対応する領域管理情報に対して、一定数を上限として登録し、
前記第１の記憶装置の記憶領域のうち、前記複数の領域管理情報に登録された使用領域に記憶されたデータを、第２の記憶装置に保存する、
ことを特徴とする記憶制御方法。
【請求項９】
コンピュータに、
第１の記憶装置の記憶領域のうち、データが書き込まれた領域を示し、かつ連続するアドレス範囲を示す使用領域を、領域管理情報に１以上登録し、
前記第１の記憶装置の記憶領域のうち、前記領域管理情報に登録された使用領域に記憶されたデータを、第２の記憶装置に保存する、
処理を実行させ、
前記領域管理情報への登録では、
前記第１の記憶装置へのデータの書き込み要求および書き込みアドレスを受信したとき、受信した書き込みアドレスが示す書き込み領域を、使用領域として前記領域管理情報に登録し、
前記領域管理情報に登録されている使用領域のうち、前記書き込み領域と重複する１以上の使用領域を、前記書き込み領域とマージし、前記重複する１以上の使用領域を前記領域管理情報から削除し、マージによって生成された使用領域を前記領域管理情報に登録する、
ことを特徴とする記憶制御プログラム。
【請求項１０】
コンピュータに、
第１の記憶装置の記憶領域を分割した複数の分割領域に複数の領域管理情報がそれぞれ対応付けられており、前記複数の分割領域それぞれにおけるデータが書き込まれた領域を示す使用領域を、前記複数の領域管理情報のうち対応する領域管理情報に対して、一定数を上限として登録し、
前記第１の記憶装置の記憶領域のうち、前記複数の領域管理情報に登録された使用領域に記憶されたデータを、第２の記憶装置に保存する、
処理を実行させることを特徴とする記憶制御プログラム。
【国際調査報告】
2015040694.tif 000027
2015040694.tif 000028
2015040694.tif 000029