(57)【特許請求の範囲】
【請求項１】
データの転送処理中に書き込みが発生する確率に応じた値を示す書込発生度データを参照し、参照した前記書込発生度データにより示される値に基づいて、第１転送方式と、前記第１転送方式とは異なる第２転送方式とを含む転送方式のいずれかを設定する転送方式設定手段と、
前記転送方式設定手段によって設定された転送方式に従って、データを転送させる転送制御手段とを備え、
前記第１転送方式は、転送時期が到来した時に、転送すべきデータをローカルコピーした後に、前記転送すべきデータを順次転送する転送方式である
ことを特徴とするデータ転送装置。
【請求項２】
データの転送処理中に書き込みが発生する確率に応じた値を示す書込発生度データを参照し、参照した前記書込発生度データにより示される値に基づいて、第１転送方式と、前記第１転送方式とは異なる第２転送方式とを含む転送方式のいずれかを設定する転送方式設定手段と、
前記転送方式設定手段によって設定された転送方式に従って、データを転送させる転送制御手段とを備え、
第２転送方式は、転送時期が到来した時に、転送すべきデータを順次転送するとともに、前記転送すべきデータのうち未転送のデータに書き込みが発生した場合には、前記未転送のデータをローカルコピーした後に、前記未転送のデータを転送する転送方式である
ことを特徴とするデータ転送装置。
【請求項３】
データの転送処理中に書き込みが発生する確率に応じた値を示す書込発生度データを参照し、参照した前記書込発生度データにより示される値に基づいて、第１転送方式と、前記第１転送方式とは異なる第２転送方式とを含む転送方式のいずれかを設定する転送方式設定手段と、
前記転送方式設定手段によって設定された転送方式に従って、データを転送させる転送制御手段と、
各セグメントの前記書込発生度データを参照し、参照した前記書込発生度データによって示される各セグメントの値と第１閾値とを比較し、前記各セグメントの値が前記第１閾値以上であるか否かを判断する書込発生度判断手段と、
前記書込発生度判断手段によって前記値が前記第１閾値以上であると判断された場合に、当該判断がなされたセグメントの転送方式が前記第１転送方式であることを示す転送方式データを生成し、前記値が前記第１閾値未満であると判断された場合に、当該判断がなされたセグメントの転送方式が前記第２転送方式であることを示す転送方式データを生成する転送方式生成手段と、
前記各セグメントに含まれる転送単位のうち、計数時期と前回の計数時期との間に書き込みが発生した転送単位を特定できる第１ダーティデータを参照し、前記第１ダーティデータを参照することによって書き込みが発生したと特定される転送単位の数をセグメントごとに集計し、集計した値を示すデータを前記書込発生度データとして生成する書込発生度計数手段とを備える
ことを特徴とするデータ転送装置。
【請求項４】
前記書込発生度計数手段は、前記第１ダーティデータと、前記前回の計数時期と前々回の計数時期との間に書き込みが発生した前記転送単位を特定できる第２ダーティデータとを参照し、前記第１ダーティデータを参照することによって書き込みが発生したと特定され、かつ、前記第２ダーティデータを参照することによって書き込みが発生したと特定される転送単位の数をセグメントごとに集計し、集計した値を示すデータを前記書込発生度データとして生成する
ことを特徴とする請求項３に記載のデータ転送装置。
【請求項５】
前記書込発生度計数手段は、転送時期が到来した時に、前記第１ダーティデータを、又は、前記第１ダーティデータと前記第２ダーティデータとを参照する
ことを特徴とする請求項４に記載のデータ転送装置。
【請求項６】
前記書込発生度計数手段は、主記憶部への書き込みが発生した時に、前記第１ダーティデータを、又は、前記第１ダーティデータと前記第２ダーティデータとを参照する
ことを特徴とする請求項４に記載のデータ転送装置。
【請求項７】
前記転送方式設定手段は、所定の時期ごとに、前記書込発生度データを参照し、参照した前記書込発生度データにより示される値に基づいて、前記第１転送方式と前記第２転送方式とを含む転送方式のいずれかを設定する
ことを特徴とする請求項１から６のいずれか１項に記載のデータ転送装置。
【請求項８】
前記転送方式設定手段は、各セグメントの前記書込発生度データを参照し、参照した前記書込発生度データにより示される値に基づいて、前記第１転送方式と前記第２転送方式とを含む転送方式のいずれかをセグメントごとに設定し、
前記転送制御手段は、前記転送方式設定手段によって設定された転送方式に従って、前記各セグメントに含まれるデータを転送させる
ことを特徴とする請求項１から７のいずれか１項に記載のデータ転送装置。
【請求項９】
データの転送処理中に書き込みが発生する確率に応じた値を示す書込発生度データを参照し、参照した前記書込発生度データにより示される値に基づいて、第１転送方式と、前記第１転送方式とは異なる第２転送方式とを含む転送方式のいずれかを設定する転送方式設定手段と、
前記転送方式設定手段によって設定された転送方式に従って、データを転送させる転送
制御手段とを備え、
前記第１転送方式は、転送時期が到来した時に、転送すべきデータをローカルコピーした後に、前記転送すべきデータを順次転送する転送方式である
ことを特徴とするＦＴサーバ。
【請求項１０】
データの転送処理中に書き込みが発生する確率に応じた値を示す書込発生度データを参照し、参照した前記書込発生度データにより示される値に基づいて、第１転送方式と、前記第１転送方式とは異なる第２転送方式とを含む転送方式のいずれかを設定する転送方式設定手段と、
前記転送方式設定手段によって設定された転送方式に従って、データを転送させる転送
制御手段とを備え、
第２転送方式は、転送時期が到来した時に、転送すべきデータを順次転送するとともに、前記転送すべきデータのうち未転送のデータに書き込みが発生した場合には、前記未転送のデータをローカルコピーした後に、前記未転送のデータを転送する転送方式である
ことを特徴とするＦＴサーバ。
【請求項１１】
データの転送処理中に書き込みが発生する確率に応じた値を示す書込発生度データを参照し、参照した前記書込発生度データにより示される値に基づいて、第１転送方式と、前記第１転送方式とは異なる第２転送方式とを含む転送方式のいずれかを設定する転送方式設定手段と、
前記転送方式設定手段によって設定された転送方式に従って、データを転送させる転送
制御手段と、
各セグメントの前記書込発生度データを参照し、参照した前記書込発生度データによって示される各セグメントの値と第１閾値とを比較し、前記各セグメントの値が前記第１閾値以上であるか否かを判断する書込発生度判断手段と、
前記書込発生度判断手段によって前記値が前記第１閾値以上であると判断された場合に、当該判断がなされたセグメントの転送方式が前記第１転送方式であることを示す転送方式データを生成し、前記値が前記第１閾値未満であると判断された場合に、当該判断がなされたセグメントの転送方式が前記第２転送方式であることを示す転送方式データを生成する転送方式生成手段と、
前記各セグメントに含まれる転送単位のうち、計数時期と前回の計数時期との間に書き込みが発生した転送単位を特定できる第１ダーティデータを参照し、前記第１ダーティデータを参照することによって書き込みが発生したと特定される転送単位の数をセグメントごとに集計し、集計した値を示すデータを前記書込発生度データとして生成する書込発生度計数手段とを備える
ことを特徴とするＦＴサーバ。
【請求項１２】
転送方式設定手段が、データの転送処理中に書き込みが発生する確率に応じた値を示す書込発生度データを参照し、参照した前記書込発生度データにより示される値に基づいて、第１転送方式と、前記第１転送方式とは異なる第２転送方式とを含む転送方式のいずれかを設定し、
転送制御手段が、前記設定された前記転送方式に従って、データを転送させ、
前記第１転送方式は、転送時期が到来した時に、転送すべきデータをローカルコピーした後に、前記転送すべきデータを順次転送する転送方式である
ことを特徴とするデータ転送方法。
【請求項１３】
転送方式設定手段が、データの転送処理中に書き込みが発生する確率に応じた値を示す書込発生度データを参照し、参照した前記書込発生度データにより示される値に基づいて、第１転送方式と、前記第１転送方式とは異なる第２転送方式とを含む転送方式のいずれかを設定し、
転送制御手段が、前記設定された前記転送方式に従って、データを転送させ、
第２転送方式は、転送時期が到来した時に、転送すべきデータを順次転送するとともに、前記転送すべきデータのうち未転送のデータに書き込みが発生した場合には、前記未転送のデータをローカルコピーした後に、前記未転送のデータを転送する転送方式である
ことを特徴とするデータ転送方法。
【請求項１４】
転送方式設定手段が、データの転送処理中に書き込みが発生する確率に応じた値を示す書込発生度データを参照し、参照した前記書込発生度データにより示される値に基づいて、第１転送方式と、前記第１転送方式とは異なる第２転送方式とを含む転送方式のいずれかを設定し、
転送制御手段が、前記転送方式設定手段によって設定された転送方式に従って、データを転送させ、
書込発生度判断手段が、各セグメントの前記書込発生度データを参照し、参照した前記書込発生度データによって示される各セグメントの値と第１閾値とを比較し、前記各セグメントの値が前記第１閾値以上であるか否かを判断し、
転送方式生成手段が、前記値が前記第１閾値以上であると判断された場合に、当該判断がなされたセグメントの転送方式が前記第１転送方式であることを示す転送方式データを生成し、前記値が前記第１閾値未満であると判断された場合に、当該判断がなされたセグメントの転送方式が前記第２転送方式であることを示す転送方式データを生成し、
書込発生度計数手段が、前記各セグメントに含まれる転送単位のうち、計数時期と前回の計数時期との間に書き込みが発生した転送単位を特定できる第１ダーティデータを参照し、前記第１ダーティデータを参照することによって書き込みが発生したと特定される転送単位の数をセグメントごとに集計し、集計した値を示すデータを前記書込発生度データとして生成する
ことを特徴とするデータ転送方法。
【請求項１５】
コンピュータを、
データの転送処理中に書き込みが発生する確率に応じた値を示す書込発生度データを参照し、参照した前記書込発生度データにより示される値に基づいて、第１転送方式と、前記第１転送方式とは異なる第２転送方式とを含む転送方式のいずれかを設定する転送方式設定手段、
前記設定された前記転送方式に従って、データを転送させる転送制御手段、として機能させ、
前記第１転送方式を、転送時期が到来した時に、転送すべきデータをローカルコピーした後に、前記転送すべきデータを順次転送する転送方式とさせるためのプログラム。
【請求項１６】
コンピュータを、
データの転送処理中に書き込みが発生する確率に応じた値を示す書込発生度データを参照し、参照した前記書込発生度データにより示される値に基づいて、第１転送方式と、前記第１転送方式とは異なる第２転送方式とを含む転送方式のいずれかを設定する転送方式設定手段、
前記設定された前記転送方式に従って、データを転送させる転送制御手段、として機能させ、
第２転送方式を、転送時期が到来した時に、転送すべきデータを順次転送するとともに、前記転送すべきデータのうち未転送のデータに書き込みが発生した場合には、前記未転送のデータをローカルコピーした後に、前記未転送のデータを転送する転送方式とさせるためのプログラム。
【請求項１７】
コンピュータを、
データの転送処理中に書き込みが発生する確率に応じた値を示す書込発生度データを参照し、参照した前記書込発生度データにより示される値に基づいて、第１転送方式と、前記第１転送方式とは異なる第２転送方式とを含む転送方式のいずれかを設定する転送方式設定手段、
前記設定された前記転送方式に従って、データを転送させる転送制御手段、
各セグメントの前記書込発生度データを参照し、参照した前記書込発生度データによって示される各セグメントの値と第１閾値とを比較し、前記各セグメントの値が前記第１閾値以上であるか否かを判断する書込発生度判断手段、
前記書込発生度判断手段によって前記値が前記第１閾値以上であると判断された場合に、当該判断がなされたセグメントの転送方式が前記第１転送方式であることを示す転送方式データを生成し、前記値が前記第１閾値未満であると判断された場合に、当該判断がなされたセグメントの転送方式が前記第２転送方式であることを示す転送方式データを生成する転送方式生成手段、
前記各セグメントに含まれる転送単位のうち、計数時期と前回の計数時期との間に書き込みが発生した転送単位を特定できる第１ダーティデータを参照し、前記第１ダーティデータを参照することによって書き込みが発生したと特定される転送単位の数をセグメントごとに集計し、集計した値を示すデータを前記書込発生度データとして生成する書込発生度計数手段、として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送装置、そのデータ転送装置を備えるＦＴサーバ、データ転送方法、及びプログラムに関する。
【背景技術】
【０００２】
コンピュータシステムの可用性を高めるために、フォールトトレラントサーバ（ＦＴサーバ）が広く利用されている。フォールトトレラントサーバは、ＣＰＵ、メインメモリなどのハードウェア構成を二重又は多重に備える。ＦＴサーバでは、主系統のＣＰＵの状態を示すデータ、メインメモリが保持しているメモリデータなどは、適宜他系統へ転送される。これによって、各系統のＣＰＵ、メインメモリなどが同じ状態で維持されるため、主系統に障害が発生しても、他系統がその後の処理を継続することができる。
【０００３】
随時更新されるデータを転送する方法に、予め定められた時期（チェックポイント）のデータを転送するチェックポイント方式がある。例えば特許文献１には、チェックポイント方式でプロセッサ内のキャッシュデータを他系統へ転送する方法が開示される。特許文献１に記載された方法では、キャッシュデータが更新されると、その更新の都度、その更新内容がメインメモリに書き出される。そして、チェックポイント時には、メインメモリに保持されたキャッシュデータのすべての更新内容が他系統へ一括して転送される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平７−２７１６２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の技術では、キャッシュデータに更新が発生すると、同じ更新内容が常に、キャッシュメモリとメインメモリとの２つの領域に書き出される。そのため、更新時の処理負荷が大きくなる。また、転送する必要があるのはチェックポイント直前の更新内容であるため、チェックポイント直前以外の更新内容を常にメインメモリに書き出すことは無駄な処理となる。特に、特定の領域に更新が集中する場合などには、結果的に無駄な処理が多くなる。
【０００６】
本発明は、上記の実情に鑑みてなされたものであり、データを効率的に転送することが可能なデータ転送装置などを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記の目的を達成するため、本発明の第１の観点に係るデータ転送装置は、
データの転送処理中に書き込みが発生する確率に応じた値を示す書込発生度データを参照し、参照した前記書込発生度データにより示される値に基づいて、第１転送方式と、前記第１転送方式とは異なる第２転送方式とを含む転送方式のいずれかを設定する転送方式設定手段と、
前記転送方式設定手段によって設定された転送方式に従って、データを転送させる転送制御手段とを備え、
前記第１転送方式は、転送時期が到来した時に、転送すべきデータをローカルコピーした後に、前記転送すべきデータを順次転送する転送方式であることを特徴とする。
また、本発明の第２の観点に係るデータ転送装置は、
データの転送処理中に書き込みが発生する確率に応じた値を示す書込発生度データを参照し、参照した前記書込発生度データにより示される値に基づいて、第１転送方式と、前記第１転送方式とは異なる第２転送方式とを含む転送方式のいずれかを設定する転送方式設定手段と、
前記転送方式設定手段によって設定された転送方式に従って、データを転送させる転送制御手段とを備え、
第２転送方式は、転送時期が到来した時に、転送すべきデータを順次転送するとともに、前記転送すべきデータのうち未転送のデータに書き込みが発生した場合には、前記未転送のデータをローカルコピーした後に、前記未転送のデータを転送する転送方式であることを特徴とする。
さらに、本発明の第３の観点に係るデータ転送装置は、
データの転送処理中に書き込みが発生する確率に応じた値を示す書込発生度データを参照し、参照した前記書込発生度データにより示される値に基づいて、第１転送方式と、前記第１転送方式とは異なる第２転送方式とを含む転送方式のいずれかを設定する転送方式設定手段と、
前記転送方式設定手段によって設定された転送方式に従って、データを転送させる転送制御手段と、
各セグメントの前記書込発生度データを参照し、参照した前記書込発生度データによって示される各セグメントの値と第１閾値とを比較し、前記各セグメントの値が前記第１閾値以上であるか否かを判断する書込発生度判断手段と、
前記書込発生度判断手段によって前記値が前記第１閾値以上であると判断された場合に、当該判断がなされたセグメントの転送方式が前記第１転送方式であることを示す転送方式データを生成し、前記値が前記第１閾値未満であると判断された場合に、当該判断がなされたセグメントの転送方式が前記第２転送方式であることを示す転送方式データを生成する転送方式生成手段と、
前記各セグメントに含まれる転送単位のうち、計数時期と前回の計数時期との間に書き込みが発生した転送単位を特定できる第１ダーティデータを参照し、前記第１ダーティデータを参照することによって書き込みが発生したと特定される転送単位の数をセグメントごとに集計し、集計した値を示すデータを前記書込発生度データとして生成する書込発生度計数手段とを備えることを特徴とする。
【０００８】
さらに、本発明の第４の観点に係るＦＴサーバは、
データの転送処理中に書き込みが発生する確率に応じた値を示す書込発生度データを参照し、参照した前記書込発生度データにより示される値に基づいて、第１転送方式と、前記第１転送方式とは異なる第２転送方式とを含む転送方式のいずれかを設定する転送方式設定手段と、
前記転送方式設定手段によって設定された転送方式に従って、データを転送させる転送制御手段とを備え、
前記第１転送方式は、転送時期が到来した時に、転送すべきデータをローカルコピーした後に、前記転送すべきデータを順次転送する転送方式であることを特徴とする。
さらに、本発明の第５の観点に係るＦＴサーバは、
データの転送処理中に書き込みが発生する確率に応じた値を示す書込発生度データを参照し、参照した前記書込発生度データにより示される値に基づいて、第１転送方式と、前記第１転送方式とは異なる第２転送方式とを含む転送方式のいずれかを設定する転送方式設定手段と、
前記転送方式設定手段によって設定された転送方式に従って、データを転送させる転送制御手段とを備え、
第２転送方式は、転送時期が到来した時に、転送すべきデータを順次転送するとともに、前記転送すべきデータのうち未転送のデータに書き込みが発生した場合には、前記未転送のデータをローカルコピーした後に、前記未転送のデータを転送する転送方式であることを特徴とする。
さらに、本発明の第６の観点に係るＦＴサーバは、
データの転送処理中に書き込みが発生する確率に応じた値を示す書込発生度データを参照し、参照した前記書込発生度データにより示される値に基づいて、第１転送方式と、前記第１転送方式とは異なる第２転送方式とを含む転送方式のいずれかを設定する転送方式設定手段と、
前記転送方式設定手段によって設定された転送方式に従って、データを転送させる転送制御手段と、
各セグメントの前記書込発生度データを参照し、参照した前記書込発生度データによって示される各セグメントの値と第１閾値とを比較し、前記各セグメントの値が前記第１閾値以上であるか否かを判断する書込発生度判断手段と、
前記書込発生度判断手段によって前記値が前記第１閾値以上であると判断された場合に、当該判断がなされたセグメントの転送方式が前記第１転送方式であることを示す転送方式データを生成し、前記値が前記第１閾値未満であると判断された場合に、当該判断がなされたセグメントの転送方式が前記第２転送方式であることを示す転送方式データを生成する転送方式生成手段と、
前記各セグメントに含まれる転送単位のうち、計数時期と前回の計数時期との間に書き込みが発生した転送単位を特定できる第１ダーティデータを参照し、前記第１ダーティデータを参照することによって書き込みが発生したと特定される転送単位の数をセグメントごとに集計し、集計した値を示すデータを前記書込発生度データとして生成する書込発生度計数手段とを備えることを特徴とする。
【０００９】
さらに、本発明の第７の観点に係るデータ転送方法は、
転送方式設定手段が、データの転送処理中に書き込みが発生する確率に応じた値を示す書込発生度データを参照し、参照した前記書込発生度データにより示される値に基づいて、第１転送方式と、前記第１転送方式とは異なる第２転送方式とを含む転送方式のいずれかを設定し、
転送制御手段が、前記設定された前記転送方式に従って、データを転送させ、
前記第１転送方式は、転送時期が到来した時に、転送すべきデータをローカルコピーした後に、前記転送すべきデータを順次転送する転送方式であることを特徴とする。
さらに、本発明の第８の観点に係るデータ転送方法は、
転送方式設定手段が、データの転送処理中に書き込みが発生する確率に応じた値を示す書込発生度データを参照し、参照した前記書込発生度データにより示される値に基づいて、第１転送方式と、前記第１転送方式とは異なる第２転送方式とを含む転送方式のいずれかを設定し、
転送制御手段が、前記設定された前記転送方式に従って、データを転送させ、
第２転送方式は、転送時期が到来した時に、転送すべきデータを順次転送するとともに、前記転送すべきデータのうち未転送のデータに書き込みが発生した場合には、前記未転送のデータをローカルコピーした後に、前記未転送のデータを転送する転送方式であることを特徴とする。
さらに、本発明の第９の観点に係るデータ転送方法は、
転送方式設定手段が、データの転送処理中に書き込みが発生する確率に応じた値を示す書込発生度データを参照し、参照した前記書込発生度データにより示される値に基づいて、第１転送方式と、前記第１転送方式とは異なる第２転送方式とを含む転送方式のいずれかを設定し、
転送制御手段が、前記転送方式設定手段によって設定された転送方式に従って、データを転送させ、
書込発生度判断手段が、各セグメントの前記書込発生度データを参照し、参照した前記書込発生度データによって示される各セグメントの値と第１閾値とを比較し、前記各セグメントの値が前記第１閾値以上であるか否かを判断し、
転送方式生成手段が、前記値が前記第１閾値以上であると判断された場合に、当該判断がなされたセグメントの転送方式が前記第１転送方式であることを示す転送方式データを生成し、前記値が前記第１閾値未満であると判断された場合に、当該判断がなされたセグメントの転送方式が前記第２転送方式であることを示す転送方式データを生成し、
書込発生度計数手段が、前記各セグメントに含まれる転送単位のうち、計数時期と前回の計数時期との間に書き込みが発生した転送単位を特定できる第１ダーティデータを参照し、前記第１ダーティデータを参照することによって書き込みが発生したと特定される転送単位の数をセグメントごとに集計し、集計した値を示すデータを前記書込発生度データとして生成することを特徴とする。
【００１０】
さらに、本発明の第１０の観点に係るプログラムは、
コンピュータを、
データの転送処理中に書き込みが発生する確率に応じた値を示す書込発生度データを参照し、参照した前記書込発生度データにより示される値に基づいて、第１転送方式と、前記第１転送方式とは異なる第２転送方式とを含む転送方式のいずれかを設定する転送方式設定手段、
前記設定された前記転送方式に従って、データを転送させる転送制御手段、として機能させ、
前記第１転送方式を、転送時期が到来した時に、転送すべきデータをローカルコピーした後に、前記転送すべきデータを順次転送する転送方式とさせるためのものである。
さらに、本発明の第１１の観点に係るプログラムは、
コンピュータを、
データの転送処理中に書き込みが発生する確率に応じた値を示す書込発生度データを参照し、参照した前記書込発生度データにより示される値に基づいて、第１転送方式と、前記第１転送方式とは異なる第２転送方式とを含む転送方式のいずれかを設定する転送方式設定手段、
前記設定された前記転送方式に従って、データを転送させる転送制御手段、として機能させ、
第２転送方式を、転送時期が到来した時に、転送すべきデータを順次転送するとともに、前記転送すべきデータのうち未転送のデータに書き込みが発生した場合には、前記未転送のデータをローカルコピーした後に、前記未転送のデータを転送する転送方式とさせるためのものである。
さらに、本発明の第１２の観点に係るプログラムは、
コンピュータを、
データの転送処理中に書き込みが発生する確率に応じた値を示す書込発生度データを参照し、参照した前記書込発生度データにより示される値に基づいて、第１転送方式と、前記第１転送方式とは異なる第２転送方式とを含む転送方式のいずれかを設定する転送方式設定手段、
前記設定された前記転送方式に従って、データを転送させる転送制御手段、
各セグメントの前記書込発生度データを参照し、参照した前記書込発生度データによって示される各セグメントの値と第１閾値とを比較し、前記各セグメントの値が前記第１閾値以上であるか否かを判断する書込発生度判断手段、
前記書込発生度判断手段によって前記値が前記第１閾値以上であると判断された場合に、当該判断がなされたセグメントの転送方式が前記第１転送方式であることを示す転送方式データを生成し、前記値が前記第１閾値未満であると判断された場合に、当該判断がなされたセグメントの転送方式が前記第２転送方式であることを示す転送方式データを生成する転送方式生成手段、
前記各セグメントに含まれる転送単位のうち、計数時期と前回の計数時期との間に書き込みが発生した転送単位を特定できる第１ダーティデータを参照し、前記第１ダーティデータを参照することによって書き込みが発生したと特定される転送単位の数をセグメントごとに集計し、集計した値を示すデータを前記書込発生度データとして生成する書込発生度計数手段、として機能させるためのものである。
【発明の効果】
【００１１】
本発明によれば、異なる転送方式である第１転送方式及び第２転送方式のいずれかを設定し、設定された転送方法に従って、データが転送される。また、転送方法は、データの転送処理中に書き込みが発生する確率に応じた値に基づいて設定される。これによって、転送するデータへのアクセス傾向に応じて転送方式を設定することができる。したがって、データを効率的に転送することが可能になる。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１実施形態に係るＦＴサーバの構成の一例を示す図である。
【図２】第１実施形態に係るページテーブルデータが示すページテーブルの一例を示す図である。
【図３】第１実施形態に係るセグメントテーブルデータが示すセグメントテーブルの一例を示す図である。
【図４】第１実施形態に係るラストダーティページデータが示すラストダーティページの一例を示す図である。
【図５】第１実施形態に係る主制御部の詳細な構成を示す図である。
【図６】第１実施形態に係るメモリデータ更新部の詳細な構成を示す図である。
【図７】第１実施形態に係る転送制御部の詳細な構成を示す図である。
【図８】第１実施形態に係るＤＰカウンタ計数部の詳細な構成を示す図である。
【図９】第１実施形態に係る転送方式設定部の詳細な構成を示す図である。
【図１０】第１実施形態に係る第１系統が、チェックポイントが到来した時に実行する処理の一例を示すフローチャートである。
【図１１】第１実施形態に係る一括コピー方式転送処理の詳細を示すフローチャートである。
【図１２】一括コピー方式での転送処理において、ダーティページのメモリデータが特定された状態を模式的に示す図である。
【図１３】一括コピー方式での転送処理において、ダーティページのメモリデータが退避領域にローカルコピーされた状態を模式的に示す図である。
【図１４】一括コピー方式での転送処理において、ダーティフラグがクリアされた状態を模式的に示す図である。
【図１５】一括コピー方式での転送処理において、ダーティページのメモリデータが転送される状態を模式的に示す図である。
【図１６】第１実施形態に係るＣＯＷ方式転送処理の詳細を示すフローチャートである。
【図１７】ＣＯＷ方式での転送処理において、ダーティページのメモリデータが特定された状態を模式的に示す図である。
【図１８】ＣＯＷ方式での転送処理において、書込禁止フラグが設定されるとともに、ダーティフラグがクリアされた状態を模式的に示す図である。
【図１９】ＣＯＷ方式での転送処理において、書込要求が発生しなかったダーティページのメモリデータが転送される状態を模式的に示す図である。
【図２０】ＣＯＷ方式での転送処理において、未転送のダーティページに書込要求が発生した状態を模式的に示す図である。
【図２１】ＣＯＷ方式での転送処理において、書込要求が発生した未転送のダーティページのメモリデータが退避領域にローカルコピーされた状態を模式的に示す図である。
【図２２】ＣＯＷ方式での転送処理において、書込要求が発生したダーティページのメモリデータが転送される状態を模式的に示す図である。
【図２３】ＣＯＷ方式での転送処理において、書込要求があったダーティページのメモリデータが転送された後の状態を模式的に示す図である。
【図２４】第１実施形態に係る転送方式更新処理の詳細を示すフローチャートである。
【図２５】第１実施形態に係るメモリデータ更新処理を示すフローチャートである。
【図２６】本発明の第２実施形態に係るＦＴサーバの構成の一例を示す図である。
【図２７】第２実施形態に係るページテーブルデータが示すページテーブルの一例を示す図である。
【図２８】第２実施形態に係る主制御部の詳細な構成を示す図である。
【図２９】第２実施形態に係る転送制御部の詳細な構成を示す図である。
【図３０】第２実施形態に係るＤＰカウンタ計数部の詳細な構成を示す図である。
【図３１】第２実施形態に係る第１系統が、チェックポイントが到来した時に実行する処理の一例を示すフローチャートである。
【図３２】第２実施形態に係る一括コピー方式転送処理の詳細を示すフローチャートである。
【図３３】第２実施形態に係るＣＯＷ方式転送処理の詳細を示すフローチャートである。
【図３４】第２実施形態に係るメモリデータ更新処理を示すフローチャートである。
【図３５】第２実施形態に係る新規セグメント追加処理を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、本発明の実施形態について、図面を参照しながら説明する。
【００１４】
（第１実施形態）
本発明の第１実施形態に係るフォールトトレラントサーバ（ＦＴサーバ）について、図１〜２５を参照して説明する。
【００１５】
本実施形態に係るＦＴサーバ１００は、図１に示すように、第１系統１０１ａと第２系統１０１ｂとを備える。第１系統１０１ａと第２系統１０１ｂとは、データを授受するための通信パス１０２で接続されている。
【００１６】
本実施形態に係るＦＴサーバ１００の場合、通常時には、第１系統１０１ａが主系統として稼働し、第２系統１０１ｂは副系統として待機する。そして、チェックポイント時には、主記憶部１０４ａが保持するメモリデータ、主制御部１０３ａの状態を示すコンテキストデータなどが通信パス１０２を介して、第１系統１０１ａから第２系統１０１ｂへ転送される。すなわち、本実施形態において主系統として稼働する第１系統１０１ａは、データを転送する装置（データ転送装置）の一例である。
【００１７】
本実施形態において、第１系統１０１ａと第２系統１０１ｂとの間で一致させるデータ（転送対象データ）は、主記憶部１０３ａ内のデータであって、例えば第１系統１０１ａにおいて実行されるゲストＯＳが使用する、主記憶部１０３ａ内のデータである。
【００１８】
チェックポイントは、ユーザなどにより適宜設定される転送時期である。チェックポイントは、例えば定期的に設定される。チェックポイント時に、両系統１０１ａ，１０１ｂの状態は同じになる。そのため、通常時に稼働する第１系統１０１ａに障害が発生したとしても、その後、第２系統１０１ｂが主系統となって障害発生前のチェックポイントの状態から処理を継続することができる。そして、第１系統１０１ａが復旧すると、その復旧した第１系統（１０１ａ）は副系統として待機する。
【００１９】
図１に示すように、第１系統１０１ａと第２系統１０１ｂとは同様の構成を備える。各系統１０１ａ（１０１ｂ）は、主制御部１０３ａ（１０３ｂ）と、主記憶部１０４ａ（１０４ｂ）と、補助記憶部１０５ａ（１０５ｂ）と、ＦＴ制御部１０６ａ（１０６ｂ）とを備える。各部１０３ａ〜１０６ａ（１０３ｂ〜１０６ｂ）は、データを授受するための内部バス１０７ａ（１０７ｂ）を介して接続される。
【００２０】
主制御部１０３ａ（１０３ｂ）は、各種の演算処理の実行、各部の制御、主記憶部１０４ａ（１０４ｂ）の記憶領域の管理及び更新などをする。主制御部１０３ａ（１０３ｂ）は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＭＰＵ（Ｍｉｃｒｏ−Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などにより実現される。また、主制御部１０３ａ（１０３ｂ）は、ＭＭＵ（Ｍｅｍｏｒｙ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ）、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送用のＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）などを組み合わせて実現されてもよい。
【００２１】
主制御部１０３ａ（１０３ｂ）は、図１に示すように、キャッシュ部１０８ａ（１０８ｂ）を備える。キャッシュ部１０８ａ（１０８ｂ）は、主制御部１０３ａ（１０３ｂ）が高速でデータを読み書きできる記憶部であり、例えばページテーブルデータを保持しているＴＬＢ（Ｔｒａｎｓｌａｔｉｏｎ  Ｌｏｏｋａｓｉｄｅ  Ｂｕｆｆｅｒ）を含む。
【００２２】
キャッシュ部１０８ａ（１０８ｂ）が保持するページテーブルデータは、主記憶部１０４ａ（１０４ｂ）のページを管理するためのテーブルを含むデータである。ページは、主記憶部１０４ａ（１０４ｂ）の記憶領域を管理するために一般的に用いられる一定サイズ（例えば、４ＫＢｙｔｅ）の記憶領域であり、本実施形態ではメモリデータの転送単位でもある。ページ単位で転送することによって、転送処理の高速化が可能になる。
【００２３】
図２は、本実施形態に係るページテーブルデータ（転送単位テーブルデータ）１１０が示すページテーブルの一例を示す。ページテーブルデータ１１０は、同図に示すように、物理アドレスデータ１１１と、仮想アドレスデータ１１２と、ダーティフラグデータ１１３と、書込禁止フラグデータ１１４とを含む。ページテーブルデータ１１０の各データ１１１〜１１４は、ページごとに関連付けられている。
【００２４】
物理アドレスデータ１１１は、主記憶部１０４ａ（１０４ｂ）の記憶領域において各ページを特定するためのデータである。物理アドレスデータ１１１は、物理アドレスにより各ページを特定する。本実施形態の物理アドレスデータ１１１は、各ページの始まりとなる物理アドレスを示す。本実施形態ではページサイズが上述のように一定であるため、各ページの始まりを示す物理アドレスデータ１１１によって、主記憶部１０４ａ（１０４ｂ）における各ページを特定することができる。
【００２５】
なお、図２において、例えば「０ｘ００００  ００００」は、１６進数の「００００  ００００」により示されるアドレスを指す。これは、他の図においても同様である。
【００２６】
仮想アドレスデータ１１２は、物理アドレスデータ１１１と同様に、主記憶部１０４ａ（１０４ｂ）の記憶領域において各ページを特定するためのデータである。仮想アドレスデータ１１２は、仮想アドレスにより各ページを特定する。本実施形態の仮想アドレスデータ１１２は、上述の物理アドレスによる場合と同様に、各ページの始まりとなる仮想アドレスを示す。
【００２７】
ダーティフラグデータ（第１ダーティデータ）１１３は、ダーティページを特定できるデータであって、ページごとのダーティフラグの状態によってダーティページであるか否かを示す。ダーティページは、計数時期と前回の計数時期との間に書き込みが発生したページである。計数時期は任意に設定されてよく、本実施形態ではチェックポイントである。なお、書き込みは、内容の一部又は全部を削除すること、それらを更新することなどを含む。
【００２８】
本実施形態では、ダーティフラグデータ１１３が示すダーティフラグが立っている（「１」である）場合、そのダーティフラグデータ１１３に関連付けられたページはダーティページである。また、ダーティフラグデータ１１３が示すダーティフラグが立っていない（「０」である）場合、そのダーティフラグデータ１１３に関連付けられたページはダーティページでない。
【００２９】
書込禁止フラグデータ１１４は、書込禁止フラグの状態を示すデータである。書込禁止フラグは、書き込みが禁止されているページであるか否かを示す。本実施形態では、書込禁止フラグデータ１１４が示す書込禁止フラグが立っている（「１」である）場合、その書込禁止フラグデータ１１４に関連付けられたページへの書き込みは禁止されている。書込禁止フラグが立っていない（「０」である）場合、その書込禁止フラグデータ１１４に関連付けられたページへの書き込みは許されている。
【００３０】
図１に示す主記憶部１０４ａ（１０４ｂ）は、主制御部１０３ａ（１０３ｂ）がデータを読み書きする記憶部である。主記憶部１０４ａ（１０４ｂ）は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などにより実現される。
【００３１】
主記憶部１０４ａ（１０４ｂ）の記憶領域は、転送対象領域としてのゲストＯＳ領域、退避領域などを含む。ゲストＯＳ領域は、ゲストＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）が使用するゲストＯＳ領域である。退避領域は、一時的にデータを退避させるための領域である。
【００３２】
本実施形態に係る主記憶部１０４ａ（１０４ｂ）は、セグメントテーブルデータを保持する。セグメントテーブルデータは、セグメントを管理するためのセグメントテーブルを示すデータである。セグメントは、主記憶部１０４ａ（１０４ｂ）の転送対象領域を分割した領域である。セグメントは、１つ又は複数のページ（転送単位）で構成される。
【００３３】
図３は、本実施形態に係るセグメントテーブルデータ１２０が示すセグメントテーブルの一例を示す。セグメントテーブルデータ１２０は、セグメント特定データ１２１と、転送方式データ１２２と、ＤＰ（Ｄｉｒｔｙ  Ｐａｇｅ）カウンタデータ１２３とを含む。セグメントテーブルデータ１２０の各データ１２１〜１２３は、セグメントごとに関連付けられている。
【００３４】
セグメント特定データ１２１は、主記憶部１０４ａ（１０４ｂ）の記憶領域において各セグメントを特定するためのデータである。本実施形態に係るセグメント構成データ１２１は、セグメント下限データ１２４とセグメント上限データ１２５とを含む。セグメント下限データ１２４及びセグメント上限データ１２５のそれぞれは、セグメントの下限及び上限となる物理アドレスを示す。したがって、本実施形態のセグメントは、セグメント下限データ１２４が示す物理アドレスからセグメント上限データ１２５が示す物理アドレスまでの領域により構成される。
【００３５】
転送方式データ１２２は、各セグメントに含まれる転送対象データを第２系統１０１ｂへ転送する方式をセグメントごとに示すデータである。
【００３６】
本実施形態での転送方式は、一括コピー方式とコピーオンライト（Ｃｏｐｙ  Ｏｎ  Ｗｒｉｔｅ；ＣＯＷ）方式とのいずれかである。両方式の詳細は後述するため、ここではその概要を説明するにとどめる。
【００３７】
一括コピー方式では、チェックポイント（転送時期）が到来した時に、まず、ダーティページのメモリデータを主記憶部１０４ａの退避領域にコピー（ローカルコピー）される。次に、そのローカルコピーしたメモリデータがページごとに順次転送される。
【００３８】
ＣＯＷ方式では、チェックポイント（転送時期）が到来した時に、ダーティページのメモリデータをページごとに順次転送する。そして、順次転送する途中に未転送のページへの書き込みが発生した場合に、そのページのメモリデータがローカルコピーされる。ローカルコピーされた後に、書き込みが発生した未転送のページのメモリデータが転送される。
【００３９】
ＤＰカウンタデータ１２３は、ＤＰカウンタの値を示すデータである。本実施形態に係るＤＰカウンタの値は、２回のチェックポイント（計数時期）で連続してダーティフラグが立っていたページの数をセグメントごとに集計した値である。すなわち、ＤＰカウンタデータ１２３は、頻度データの一例であって、各セグメントに書き込みが発生した頻度を、より具体的には、各セグメントに含まれるページに所定条件を満たす書き込みが発生した頻度を示す。本実施形態は、２回のチェックポイント（計数時期）で連続してダーティフラグが立っていたことを所定条件としている。
【００４０】
本実施形態に係る主記憶部１０４ａ（１０４ｂ）は、さらに、ラストダーティページ（ＬＤＰ）データ（第２ダーティデータ）を保持する。ＬＤＰデータは、ラストダーティページを特定できるデータである。ラストダーティページは、前々回のチェックポイント（計数時期）と前回のチェックポイント（計数時期）との間に、書き込みが発生したページである。図４は、本実施形態に係るＬＤＰデータ１３０の一例を示す。ＬＤＰデータ１３０は、ラストダーティページの始まりとなる物理アドレスを示す。
【００４１】
本実施形態に係る主記憶部１０４ａ（１０４ｂ）は、さらに、チェックポイントカウンタ（ＣＰカウンタ）データをも保持する。ＣＰカウンタデータは、セグメントテーブルデータ１２０の転送方式データ１２２が書き込まれた後に、チェックポイント（転送時期）が到来した回数（転送回数）を示すデータである。
【００４２】
図１に示す補助記憶部１０５ａ（１０５ｂ）は、ＯＳ、アプリケーションソフトウェアなどのコンピュータプログラムを含む各種データを記憶している大容量の記憶部である。補助記憶部１０５ａ（１０５ｂ）は、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）などにより実現される。
【００４３】
ＦＴ制御部１０６ａ（１０６ｂ）は、各系統１０１ａ，１０１ｂ間でのデータの授受を行い、またそのための制御を行なう。ＦＴ制御部１０６ａ（１０６ｂ）は、ＦＴ制御用のＬＳＩなどにより実現される。
【００４４】
ＦＴ制御部１０６ａ（１０６ｂ）は、主制御部１０３ａ（１０３ｂ）の制御に従って、主記憶部１０４ａ（１０４ｂ）のダーティページのメモリデータを取得し、取得したメモリデータを他の系統１０１ｂ（１０１ａ）へ通信パス１０２を介してページごとに転送する転送部を含む。なお、転送されたメモリデータは、他の系統１０１ｂ（１０１ａ）のＦＴ制御部１０６ｂ（１０６ａ）によって取得され、主記憶部１０４ｂ（１０４ａ）に格納される。
【００４５】
ここから、図５〜９を参照して、本実施形態に係る主制御部１０３ａが備える詳細な構成について説明する。
【００４６】
主制御部１０３ａは、図５に示すように、ＣＰ監視部１４１と、書込要求判断部１４２と、メモリデータ更新部１４３と、転送制御部１４４と、ＤＰカウンタ計数部１４５と、転送方式設定部１４６とを制御部又は処理部として備える。主制御部１０３ａ内の各制御部又は処理部１４１〜１４６とキャッシュ部１０８ａとは、内部バス１４７を介してデータを授受できるように接続される。
【００４７】
ＣＰ監視部１４１は、チェックポイント（計数時期及び転送時期）が到来したか否かを監視する。書込要求判断部１４２は、主記憶部１０４ａへの書込要求が実行中のアプリケーションプログラムなどによって発生したか否かを判断する。
【００４８】
メモリデータ更新部１４３は、書込要求があった場合に、主記憶部１０４ａの記憶領域に保持されているメモリデータを書き込むための制御及び書込処理を実行する。図６は、メモリデータ更新部１４３の詳細な構成を示す。同図に示すように、メモリデータ更新部１４３は、書込禁止フラグ判断部１５１と、ダーティフラグ判断部１５２と、ダーティフラグ設定部１５３と、メモリデータ書込部１５４とを備える。
【００４９】
書込禁止フラグ判断部１５１は、ページテーブルデータ１１０の書込禁止フラグデータ１１４を参照し、それによって、各ページへの書き込みが禁止されているか否かを判断する。
【００５０】
ダーティフラグ判断部１５２は、ページテーブルデータ１１０のダーティフラグデータ１１３を参照する。それによって、ダーティフラグ判断部１５２は、チェックポイント（計数時期及び転送時期）と前回のチェックポイント（計数時期及び転送時期）との間に、すなわち、前回のチェックポイント以降に各ページへの書き込みが発生したか否かを判断する。
【００５１】
ダーティフラグ設定部１５３は、書込要求があった場合に、その書込要求があったページのダーティフラグが立った状態となるようにダーティフラグデータ１１３に設定する。詳細には、ダーティフラグ設定部１５３は、書込要求があった場合に、ダーティフラグデータ１１３を参照し、その書込要求があったページに関連付けられたダーティフラグの状態を判断する。そして、ダーティフラグ設定部１５３は、ダーティフラグが立っていないと判断したときに、そのダーティフラグデータ１１３が示すダーティフラグを立った状態に設定する。
【００５２】
メモリデータ書込部１５４は、書込要求があったページにデータを書き込む。
【００５３】
図５に示す転送制御部１４４は、転送対象データを転送するための制御を行う。転送制御部１４４は、図７に示すように、転送方式判断部１６１と、ダーティページ特定部１６２と、ラストダーティページ設定部１６３と、ローカルコピー部１６４と、フラグ管理部１６５と、転送指示部１６６とを備える。
【００５４】
転送方式判断部１６１は、セグメントテーブルデータ１２０の転送方式データ１２２を参照し、各セグメントに関連付けられた転送方式が、一括コピー方式とＣＯＷ方式とのいずれであるかを判断する。
【００５５】
ダーティページ特定部（ダーティ単位特定手段）１６２は、主記憶部１０４ａ（１０４ｂ）の記憶領域においてダーティページを特定する。具体的には、ダーティページ特定部１６２は、ページテーブルデータ１１０の物理アドレスデータ１１１又は仮想アドレスデータ１１２とダーティフラグデータ１１３とを参照し、転送対象データであるページのうち、ダーティフラグが立っているページを特定する。そして、ダーティページ特定部１６２は、ページテーブルデータ１１０のダーティフラグが立っているページに対応する物理アドレスデータ１１１又は仮想アドレスデータ１１２を参照することによって、ダーティページを特定する。
【００５６】
ダーティページ特定部１６２により特定されたページは、前回のチェックポイント以降に第２系統１０１ｂとの間で異なる内容となっている領域である。そのため、ダーティページ特定部１６２により特定されたページが、転送対象データのうち、転送すべきメモリデータである。ダーティページ特定部１６２がダーティページを特定することによって、転送対象領域のすべてのメモリデータを転送するより場合も、転送するデータ量を減らすことができる。
【００５７】
ラストダーティページ設定部１６３は、ダーティページ特定部１６２が前回のチェックポイント（計数時期）が到来した時に特定したダーティページを特定できるデータをラストダーティページデータ１３０として主記憶部１０４ａに保持させる。
【００５８】
ローカルコピー部１６４は、転送対象データを主記憶部１４０ａの退避領域に適宜コピーする。このローカルコピーは、主制御部１０３ａがＤＭＡ機能又は機構を備える場合、高速で処理できる。
【００５９】
フラグ管理部１６５は、ページテーブルデータ１１０のダーティフラグデータ１１３及び書込禁止フラグデータ１１４を参照し、各フラグの状態を判断し、また適宜更新する。
【００６０】
転送指示部１６６は、転送方式判断部１６１によって判断された転送方式に従って、ダーティページに含まれるメモリデータを転送することを示す指示データをＦＴ制御部（転送部）１０６ａに送信する。このような指示データを転送することによって、転送指示部１６６は、ＦＴ制御部１０６ａにそのメモリデータを転送させる。
【００６１】
図５に示すＤＰカウンタ計数部（書込発生度計数手段）１４５は、書き込みが発生したページが属するセグメントを特定し、書き込みが発生した頻度をセグメントごとに示すＤＰカウンタを用いて、書き込みが発生した頻度をセグメントごとに集計する。そして、ＤＰカウンタ計数部１４５は、集計した値を示すデータを生成するとともに、生成したデータをセグメントテーブルデータ１２０のＤＰカウンタデータ１２３として設定する。ＤＰカウンタ計数部１４５は、図８に示すように、連続書込判断部１７１と、ＤＰカウンタ加算部１７２とを備える。
【００６２】
連続書込判断部１７１は、上記の所定条件を満たす書き込みが発生したか否かをセグメントごとに判断する。本実施形態に係る連続書込判断部１７１は、ラストダーティページデータ１３０とページテーブルデータ１１０のダーティフラグデータ１１３とを参照し、２回のチェックポイント（計数時期）で連続して書き込みが発生していたか否かをページごとに判断する。
【００６３】
ＤＰカウンタ加算部１７２は、連続書込判断部１７１によって２回のチェックポイントで連続して書き込みが発生していたと判断された場合、その判断対象となったページが属するセグメントを特定する。そして、ＤＰカウンタ加算部１７２は、特定したセグメントのＤＰカウンタデータ１２３を参照し、参照したＤＰカウンタデータ１２３が示すＤＰカウンタの値に「１」を加算する。ＤＰカウンタ加算部１７２は、特定したセグメントのＤＰカウンタデータ１２３に加算後の値を設定する。
【００６４】
図５に示す転送方式設定部１４６は、ＣＰカウンタデータを参照し、参照したＣＰカウンタデータが示すＣＰカウンタに基づいて、各セグメントに適した転送方式を示すデータをセグメントテーブルデータ１２０の転送方式データ１２２に所定の時期ごとに設定する。転送方式設定部１４６は、図９に示すように、ＣＰカウンタ判断部１８１と、転送方式更新部１８２と、ＣＰカウンタ加算部１８３と、ＣＰカウンタクリア部１８４とを備える。
【００６５】
ＣＰカウンタ判断部（転送回数判断手段）１８１は、主記憶部１０４ａが保持しているＣＰカウンタデータを参照する。そして、ＣＰカウンタ判断部１８１は、参照したＣＰカウンタデータが示すＣＰカウンタがＣＰカウンタ用の閾値（ＣＰ閾値）以上であるか否かを判断する。
【００６６】
転送方式更新部１８２は、ＣＰカウンタ判断部１８１によってＣＰカウンタがＣＰ閾値以上であると判断された場合に、各セグメントのメモリデータを効率的に転送できる転送方式を示すデータにより、セグメントテーブルデータ１２０の転送方式データ１２２を更新する。転送方式更新部１８２は、図９に示すように、ＤＰカウンタ判断部１８５と、転送方式書込部１８６と、ＤＰカウンタクリア部１８７とを備える。
【００６７】
ＤＰカウンタ判断部（書込発生度判断手段）１８５は、セグメントテーブルデータ１２０のＤＰカウンタデータ１２３を参照する。そして、ＤＰカウンタ判断部１８３は、ＤＰカウンタデータ１２３により示されるＤＰカウンタがＤＰカウンタ用の閾値（ＤＰ閾値）以上であるか否かを各セグメントについて判断する。
【００６８】
転送方式書込部（転送方式生成手段）１８６は、ＤＰカウンタ判断部１８５のセグメントごとの判断結果に基づいて、一括コピー方式及びＣＯＷ方式のいずれかを示すセグメントごとのデータを転送方式データ１２２として主記憶部１０４ａに書き込む。具体的には、ＤＰカウンタがＤＰ閾値以上であると判断された場合に、転送方式書込部１８６は一括コピー方式を示すデータを生成する。また、ＤＰカウンタがＤＰ閾値未満であると判断された場合に、転送方式書込部１８６はＣＯＷ方式を示すデータを生成する。そして、いずれの場合も、転送方式書込部１８６は生成したデータを転送方式データ１２２として主記憶部１０４ａに書き込む。
【００６９】
ＤＰカウンタクリア部１８７は、セグメントテーブルデータ１２０のＤＰカウンタデータ１２３に「０」を設定する。
【００７０】
ＣＰカウンタ加算部１８３は、主記憶部１０４ａが保持しているＣＰカウンタデータにより示されるＣＰカウンタに１を加算し、加算後の値をＣＰカウンタデータに設定する。
【００７１】
ＣＰカウンタクリア部１８４は、主記憶部１０４ａが保持しているＣＰカウンタデータに「０」を設定する。
【００７２】
これまで、本実施形態に係るＦＴサーバ１００の構成について説明した。次に、第１実施形態に係るＦＴサーバ１００の主系統である第１系統１０１ａが実行する処理について、図１０〜２５を参照して説明する。
【００７３】
図１０は、第１実施形態に係る第１系統１０１ａが、チェックポイントが到来した時に実行する処理を示すフローチャートである。
【００７４】
ＣＰ監視部１４１は、チェックポイントが到来したか否かを判断する（ステップＳ１０１）。チェックポイントが到来していないと判断された場合（ステップＳ１０１；Ｎｏ）、主制御部１０３ａは、通常処理を実行する（ステップＳ１０２）。通常処理とは、ＯＳ、アプリケーションソフトウェアなどを実行する処理である。
【００７５】
チェックポイントが到来したと判断された場合（ステップＳ１０１；Ｙｅｓ）、主制御部１０３ａは、各セグメントについて、ループＢ処理（ステップＳ１０４）からＣＯＷ方式転送処理（ステップＳ１０９）までの処理を繰り返す（ステップＳ１０３）。
【００７６】
ＤＰカウンタ計数部１４５は、処理対象となっているセグメント内の各ページについて、ダーティフラグ連続判断処理（ステップＳ１０５）とＤＰカウンタ加算処理（ステップＳ１０６）とを繰り返す（ステップＳ１０４）。
【００７７】
連続書込判断部１７１は、各ページのダーティフラグが２回のチェックポイントで連続して立っているか否かを判断する（ステップＳ１０５）。具体的には、連続書込判断部１７１は、ラストダーティページデータ１３０とページテーブルデータ１１０のダーティフラグデータ１１３とを参照する。連続書込判断部１７１は、ラストダーティページデータ１３０が示すラストダーティページに含まれ、かつ、ダーティフラグデータ１１３が示すダーティフラグが立っているページを特定する。連続書込判断部１７１は、その特定したページについてダーティフラグが連続して立っていたと判断する。また、連続書込判断部１７１は、それ以外のページについてダーティフラグが連続して立っていないと判断する。
【００７８】
ダーティフラグが連続して立っていないと判断した場合（ステップＳ１０５；Ｎｏ）、連続書込判断部１７１は、次のページのダーティフラグ連続判断処理（ステップＳ１０５）を実行する。
【００７９】
ダーティフラグが連続して立っていると判断された場合（ステップＳ１０５；Ｙｅｓ）、ＤＰカウンタ加算部１７２は、連続書込判断部１７１による判断の対象となったページが属するセグメントに関連付けられたＤＰカウンタに１を加算する（ステップＳ１０６）。具体的には、ＤＰカウンタ加算部１７２は、連続書込判断部１７１による判断の対象となったページが属するセグメントを特定する。ＤＰカウンタ加算部１７２は、ＤＰカウンタデータ１２３を参照し、特定したセグメントのＤＰカウンタを取得する。ＤＰカウンタ加算部１７２は、取得したＤＰカウンタに１を加算し、セグメントテーブルデータ１２０のＤＰカウンタデータ１２３として加算後の値を示すデータを主記憶部１０４ａに書き込む。
【００８０】
このように、ループＢ処理（ステップＳ１０４）における処理を実行することによって、２回のチェックポイントで連続してダーティフラグが立っていたページの数がセグメントごとに集計される。これによって、各セグメントに書き込みが発生した頻度を集計することができる。ダーティフラグが連続して立っていた回数を２回として各セグメントの書き込みの発生頻度を集計することによって、各セグメントに含まれる同一ページが頻繁に更新されるか否かを示す指標を、比較的短い期間の履歴に基づいて得ることができる。
【００８１】
続けて、図１０を参照して、転送方式判断部１６１は、処理対象となっているセグメントの転送方式を判断する（ステップＳ１０７）。具体的には、転送方式判断部１６１は、主記憶部１０４ａが保持しているセグメントテーブルデータ１２０の転送方式データ１２２を参照する。転送方式判断部１６１は、参照した転送方式データ１２２によって示される転送方式を特定し、これによって、処理対象となっているセグメントに適用する転送方式を判断する。本実施形態における転送方式は、上述のように、「一括コピー方式」と「ＣＯＷ方式」とのいずれかである。
【００８２】
「一括コピー方式」であると判断された場合（ステップＳ１０７；一括コピー方式）、転送制御部１４４は、処理対象となっているセグメントのダーティページのメモリデータを一括コピー方式で第２系統１０１ｂへ転送するための制御をし、ＦＴ制御部１０６ａが、第２系統１０１ｂへメモリデータを転送する（ステップＳ１０８）。
【００８３】
ここで、一括コピー方式での転送方法について説明する。
図１１は、一括コピー方式転送処理（ステップＳ１０８）の詳細を示すフローチャートである。
【００８４】
ダーティページ特定部１６２は、前回のチェックポイント以降に書き込みが発生したページであるダーティページを特定する（ステップＳ２０１）。具体的には、ダーティページ特定部１６２は、主記憶部１０４ａが保持しているページテーブルデータ１１０に含まれるダーティフラグデータ１１３を参照する。ダーティページ特定部１６２は、参照したダーティフラグデータ１１３により示されるダーティフラグが立っているか否かをページごとに判断する。ダーティページ特定部１６２は、ダーティフラグが立っていると判断した場合に、そのダーティフラグデータ１１３に関連付けられたページをダーティページとして特定する。図１２は、ダーティページ特定処理（ステップＳ２０１）においてダーティページのメモリデータが特定された状態を模式的に示す。
【００８５】
チェックポイント時の転送対象データのうち、転送する必要があるメモリデータは、ダーティページのメモリデータである。ダーティページ特定処理（ステップＳ２０１）によって、転送する必要があるページのメモリデータを特定することができる。
【００８６】
ローカルコピー部１６４は、ダーティページ特定処理（ステップＳ２０１）において特定されたダーティページのメモリデータをローカルコピーする（ステップＳ２０２）。図１３は、ダーティページのメモリデータがローカルコピーされた状態を模式的に示す。ローカルコピー処理（ステップＳ２０２）を実行することによって、チェックポイントにおけるダーティページのメモリデータの内容が確保される。
【００８７】
なお、図１３において退避領域に括弧を付して記載する「（０ｘ００００  ００００）」は、１６進数表記の物理アドレス「０ｘ００００  ００００」から始まるページのメモリデータが退避領域内のページにコピーされていることを示す。「（０ｘ００ＡＤ  ００００）」も同様である。また、他の図においても同様である。
【００８８】
ラストダーティページ設定部１６３は、ダーティページ特定処理（ステップＳ２０１）において特定されたダーティページを特定できるデータをＬＤＰデータとして主記憶部１０４ａに保持させる（ステップＳ２０３）。これによって、ラストダーティページデータ１３０が設定される。
【００８９】
フラグ管理部１６５は、処理対象のセグメントに含まれるすべてのページのダーティフラグをクリアする（ステップＳ２０４）。具体的には、フラグ管理部１６５は、処理対象であるセグメントを構成するページのすべてについて、ダーティフラグデータ１１３に「０」を設定する。図１４は、ダーティページのダーティフラグがクリアされた状態を模式的に示す。
【００９０】
転送指示部１６６は、退避領域にコピーされたダーティページのメモリデータを第２系統１０１ｂへ転送させる（ステップＳ２０５）。具体的には、転送指示部１６６は、退避領域にコピーされたダーティページのメモリデータを第２系統１０１ｂへ転送する指示データをＦＴ制御部１０６ａに出力する。指示データを取得したＦＴ制御部１０６ａは、メモリデータを取得して、第２系統１０１ｂへ転送する。図１５は、一括コピー方式において、ダーティページのメモリデータが転送される状態を模式的に示す。
【００９１】
以上で、一括コピー方式での転送処理（ステップＳ１０８）は終了する。これによって、処理対象となったセグメントのメモリデータについて、両系統１０１ａ，１０１ｂの主記憶部１０４ａ，１０４ｂの状態が同じになる。
【００９２】
図１０に戻り、「ＣＯＷ方式」であると判断された場合（ステップＳ１０７；ＣＯＷ方式）、転送制御部１４４は、処理対象となっているセグメントのダーティページのメモリデータをＣＯＷ方式で第２系統１０１ｂへ転送するための制御をし、ＦＴ制御部１０６ａが、第２系統１０１ｂへメモリデータを転送する（ステップＳ１０９）。
【００９３】
ここで、ＣＯＷ方式での転送方法について説明する。
図１６は、ＣＯＷ方式転送処理（ステップＳ１０９）の詳細を示すフローチャートである。
【００９４】
ダーティページ特定部１６２は、ダーティページ特定処理（ステップＳ２０１）と同様に、ダーティページを特定する（ステップＳ３０１）。図１７は、ダーティページ特定処理（ステップＳ３０１）においてダーティページのメモリデータが特定された状態を模式的に示す。
【００９５】
フラグ管理部１６５は、ダーティページ特定処理（ステップＳ３０１）において特定されダーティページについて、書込禁止フラグデータ１３４に「１」を設定する（ステップＳ３０２）。書込禁止フラグ設定処理（ステップＳ３０２）によって、ダーティページに対応する、主記憶部１０４ａの領域への書き込みが禁止される。そのため、チェックポイントにおけるダーティページのメモリデータの内容が確保される。
【００９６】
ラストダーティページ設定部１６３は、ＬＤＰデータ設定処理（ステップＳ２０３）と同様に、ダーティページ特定処理（ステップＳ３０１）において特定されたダーティページを特定できるデータをＬＤＰデータとして主記憶部１０４ａに保持させる（ステップＳ３０３）。
【００９７】
フラグ管理部１６５は、ダーティフラグクリア処理（ステップＳ２０４）と同様に、処理対象のセグメントに含まれるすべてのページのダーティフラグをクリアする（ステップＳ３０４）。図１８は、ダーティページの書込禁止フラグが設定されるとともに、ダーティフラグがクリアされた状態を模式的に示す。
【００９８】
主制御部１０３ａは、処理対象となっているセグメント内の各ダーティページについて、書込要求判断処理（ステップＳ３０６）からメモリデータ転送処理（ステップＳ３１１）までを繰り返す（ステップＳ３０５）。ここでは、書込禁止フラグ１３４を参照することによって、主制御部１０３ａは、ダーティページであるか否かを判別することができる。
【００９９】
書込要求判断部１４２は、処理対象となるダーティページについて、書込要求があるか否かを判断する（ステップＳ３０６）。書込要求がないと判断した場合（ステップＳ３０６；Ｎｏ）、転送指示部１６６は、ＦＴ制御部１０６ａに指示データを出力することによって、処理対象となるダーティページのメモリデータを第２系統１０１ｂへ転送させる（ステップＳ３０７）。転送指示部１６６から指示データを取得したＦＴ制御部１０６ａは、その指示に従って、メモリデータを第２系統１０１ｂへ転送する。図１９は、書込要求がない場合のダーティページのメモリデータが転送される状態を模式的に示す。
【０１００】
フラグ管理部１６５は、メモリデータ転送処理（ステップＳ３０７）が完了したページに関連付けられた書込禁止フラグをクリアする（ステップＳ３０８）。具体的には、フラグ管理部１６５は、メモリデータ転送処理（ステップＳ３０７）が完了したページに関連付けられた書込禁止フラグデータ１３４に「０」を設定する（更新後の状態につき、図２０参照。）。
【０１０１】
書込要求があると判断された場合（ステップＳ３０６；Ｙｅｓ）、ローカルコピー部１６４は、処理対象となっているダーティページのメモリデータをローカルコピーする（ステップＳ３０９）。図２０は、未転送のダーティページに書込要求が発生した状態を模式的に示す。また、図２１は、書込要求が発生した未転送のダーティページのメモリデータをローカルコピーした状態を模式的に示す。図２１は、１６進数表記の物理アドレス「００００  ００００」から始まるページのメモリデータが、１６進数表記の物理アドレス「０５Ｆ１  Ｄ１００」で特定される退避領域内のページにコピーされることを表す。
【０１０２】
ここでのローカルコピー処理（ステップＳ３０９）は例えば、一般的なＯＳを実行する第１系統１０１ａにおける割り込み処理として実現される。処理対象となっているダーティページに書き込みが発生する場合であっても、ローカルコピー処理（ステップＳ３０９）を実行することによって、書込要求が発生したダーティページのメモリデータの内容をチェックポイント時の状態で確保できる。
【０１０３】
フラグ管理部１６５は、ローカルコピーしたメモリデータを含むページに関連付けられたダーティフラグを立てる（ステップＳ３１０）。具体的には、フラグ管理部１６５は、そのページに関連付けられたダーティフラグデータ１１３に「１」を設定する（図２１参照）。
【０１０４】
転送指示部１６６は、ＦＴ制御部１０６ａに指示データを出力することによって、処理対象となるダーティページのメモリデータを第２系統１０１ｂへ転送させる（ステップＳ３１１）。転送指示部１６６から指示データを取得したＦＴ制御部１０６ａは、その指示に従って、メモリデータを第２系統１０１ｂへ転送する。図２２は、書込要求が発生したダーティページのメモリデータが転送される状態を模式的に示す図である。同図に示すように、転送されるメモリデータは、ローカルコピー元のメモリデータである。そして、メモリデータへの書き込みは、ローカルコピー先のメモリデータになされる。そのため、ローカルコピー先のページに関連付けられたダーティフラグデータ１１３には、「１」が設定される。
【０１０５】
フラグ管理部１６５は、メモリデータ転送処理（ステップＳ３１１）が完了した後に、転送が完了したダーティページの書込禁止フラグをクリアする（ステップＳ３０８）。図２３は、ＣＯＷ方式において書込要求があったダーティページのメモリデータが転送された後の状態を模式的に示す。同図に示すように、メモリデータの転送処理が完了したダーティページに関連付けられた書込禁止フラグデータ１１４には「０」が設定されている。なお、ローカルコピー処理（ステップＳ３０９）の後は、ローカルコピー先のページに書き込みがなされ、そのページが転送対象領域に組み込まれる。
【０１０６】
以上で、ＣＯＷ方式での転送処理（ステップＳ１０９）は終了する。これによって、処理対象となったセグメントのメモリデータについて、両系統１０１ａ，１０１ｂの主記憶部１０４ａ，１０４ｂの状態が同じになる。
【０１０７】
これまで説明したように、一括コピー方式の転送処理（ステップＳ１０８）では、すべてのダーティページのメモリデータが、主記憶部１０４ａの退避領域に一旦ローカルコピーされる。これに対して、ＣＯＷ方式の転送処理（ステップＳ１０９）では、ダーティページのメモリデータが順次転送される。そして、未転送のダーティページに書込要求が発生した場合に、そのダーティページのメモリデータが、主記憶部１０４ａの退避領域にローカルコピーされる。すなわち、ＣＯＷ方式の転送処理（ステップＳ１０９）では、未転送のダーティページへの書き込みがなければ、ローカルコピーは発生しない。
【０１０８】
そのため、転送処理中に発生する書込要求が少ない場合、ＣＯＷ方式による方が一括コピー方式によるよりも転送処理のために第１系統１０１ａに掛かる負荷は小さい。これに対して、転送処理中に発生する書込要求が多い場合、一括コピー方式による方がＣＯＷ方式によるよりも転送処理のために第１系統１０１ａに掛かる負荷は小さい。
【０１０９】
このように、一括コピー方式とＣＯＷ方式とのいずれが効率的であるかは、転送処理中に書込要求が発生するページがセグメント中に多いか少ないかによって異なる。すなわち、転送処理中に書込要求が発生するページがセグメント中に多い場合、一括コピー方式の方が効率的にメモリデータを転送できる。転送処理中に書込要求が発生するページがセグメント中に少ない場合、ＣＯＷ方式の方が効率的にメモリデータを転送できる。したがって、一括コピー方式とＣＯＷ方式とは、転送処理中に書込要求が発生するページがセグメント内に多いか少ないかに応じて設定されるとよい。
【０１１０】
転送処理中に書込要求が発生するページが多いか少ないかは、各セグメントに書き込みが発生した頻度（書込頻度）と相関がある。すなわち、書込頻度が高いセグメントの場合、そのセグメント内の多くのページに対して転送処理中に書込要求が発生する確率が高い。これに対して、書込頻度が低いセグメントの場合、そのセグメント内の多くのページに対して転送処理中に書込要求が発生する確率が低い。そのため、書込頻度が高いセグメントには一括コピー方式を適用し、書込頻度が低いセグメントにはＣＯＷ方式を適用することによって、メモリデータの効率的な転送が可能になる。
【０１１１】
また、セグメントは任意に定められてよいが、例えばページ単位のように小さい領域とすると、セグメントテーブルデータ１２０などデータ転送のために必要になるデータの容量が大きくなってしまう。他方、セグメントを転送対象データ全体のように大きい領域とすると、転送方法を動的に切り替えることによる転送効率の向上はあるものの、各転送時の転送効率の向上は小さくなってしまう。そこで、セグメントは、メモリデータへのアクセス傾向に応じて設定されることが望ましい。一般的に、メモリデータへのアクセス傾向は、実行するアプリケーションプログラムに依存する点が大きい。そのため、例えばアプリケーションプログラムが使用する主記憶部１０４ａの記憶領域に対応してセグメントが設定されるとよい。このようにセグメントごとに転送方式を設定することによって、データ転送のために必要になるデータの容量を抑えながら、各転送時の転送効率の向上を図ることが可能になる。
【０１１２】
再び図１０を参照する。
ＣＰカウンタ判断部１８１は、チェックポイントカウンタがＣＰ閾値以上であるか否かを判断する（ステップＳ１１０）。具体的には、ＣＰカウンタ判断部１８１は、主記憶部１０４ａが保持しているＣＰカウンタデータを参照する。ＣＰカウンタ判断部１８１は、参照したＣＰカウンタデータにより示されるＣＰカウンタと第１閾値とを比較し、これによって判断する。
【０１１３】
ＣＰカウンタの値が第１閾値未満であると判断された場合（ステップＳ１１０；Ｎｏ）、ＣＰカウンタ加算部１８３は、ＣＰカウンタに１を加算した値を示すデータによって、主記憶部１０４ａのＣＰカウンタデータを更新する（ステップＳ１１１）。
【０１１４】
ＣＰカウンタの値が第１閾値以上であると判断された場合（ステップＳ１１０；Ｙｅｓ）、転送方式更新部１８２は、転送方式更新処理（ステップＳ１１２）を実行する。このように、第１閾値として定められた回数に相当するチェックポイントが経過するたびに、転送方式更新処理（ステップＳ１１２）が実行される。これによって、転送方式更新処理（ステップＳ１１２）を実行するためにＦＴサーバ１００に掛かる負荷を適切に調整することができる。
【０１１５】
ここで、転送方式更新処理（ステップＳ１１２）の詳細について、図２４を参照して説明する。
【０１１６】
転送方式更新部１８２は、ＤＰカウンタ判断処理（ステップＳ４０２）からＤＰカウンタクリア処理（ステップＳ４０５）までの処理を各セグメントについて繰り返す（ステップＳ４０１）。
【０１１７】
ＤＰカウンタ判断部１８３は、処理対象となっているセグメントのＤＰカウンタが第２閾値以上であるか否かを判断する（ステップＳ４０２）。具体的には、ＤＰカウンタ判断部１８３は、主記憶部１０４ａが保持しているセグメントテーブルデータ１２０のＤＰカウンタデータ１２３を参照する。ＤＰカウンタ判断部１８３は、参照したセグメントテーブルデータ１２０に含まれるＤＰカウンタデータ１２３により示されるＤＰカウンタのうち、処理対象となっているセグメントのＤＰカウンタを特定する。ＤＰカウンタ判断部１８３は、特定したＤＰカウンタと第２閾値とを比較し、比較結果に基づいて判断する。
【０１１８】
ＤＰカウンタが第２閾値以上であると判断された場合（ステップＳ４０２；Ｙｅｓ）、転送方式書込部１８４は、処理対象となっているセグメントの転送方式データ１２２に「一括コピー」方式を設定する（ステップＳ４０３）。具体的には、転送方式書込部１８４は、処理対象となっているセグメントに関連付けられたセグメントテーブルデータ１２０の転送方式データ１２２として、「一括コピー」であることを示すデータを主記憶部１０４ａに書き込む。
【０１１９】
ＤＰカウンタが第２閾値未満であると判断された場合（ステップＳ４０２；Ｎｏ）、転送方式書込部１８４は、処理対象となっているセグメントの転送方式データ１２２に「ＣＯＷ」方式を設定する（ステップＳ４０５）。ＣＯＷ方式設定処理（ステップＳ４０４）において転送方式書込部１８４が実行する具体的な処理は、一括コピー方式設定処理（ステップＳ４０３）と同様であるため、その説明は省略する。
【０１２０】
ＤＰカウンタクリア部１８６は、ＤＰカウンタ１２３の値をクリアする（ステップＳ４０５）。具体的には、ＤＰカウンタクリア部１８６は、処理対象となっているセグメントに関連付けたセグメントテーブルデータ１２０のＤＰカウンタデータ１２３として、「０」を示すデータを書き込む。
【０１２１】
ＤＰカウンタの値は、上述のように、所定の集計期間に各セグメントに含まれるページに更新がなされる頻度を示す。そのため、ＤＰカウンタの値が大きければ、ＣＯＷ方式で転送すると転送処理中に多くのページに書込要求が発生する可能性が高いため、一括コピー方式での転送が適している。逆に、ＤＰカウンタの値が小さければ、ＣＯＷ方式で転送しても転送処理中に多くのページに書込要求が発生する可能性は低いため、ＣＯＷ方式での転送に適している。本実施形態のように、ＤＰカウンタが第２閾値以上であるセグメントには一括コピー方式を適用し、ＤＰカウンタが第２閾値未満であるセグメントにはＣＯＷ方式を適用することによって、メモリデータを効率的に転送することが可能になる。
【０１２２】
再び図１０を参照して、ＣＰカウンタクリア部１８４は、ＣＰカウンタの値をクリアする（ステップＳ１１３）。具体的には、ＣＰカウンタクリア部１８４は、「０」を示すデータによって、主記憶部１０４ａが保持しているＣＰカウンタデータを更新する。
【０１２３】
第１系統１０１ａは、これまで説明したループＢ処理（ステップＳ１０４）からＣＰカウンタクリア処理（ステップＳ１１３）までの処理をすべてのセグメントについて実行するループＡ処理（ステップＳ１０３）の後に、処理を終了する。
【０１２４】
このように、チェックポイントが到来すると、まず、ＤＰカウンタ計数処理（ステップＳ１０４〜ステップＳ１０６）が実行される。これによって、ＤＰカウンタが計数される。次に、メモリデータ転送処理（ステップＳ１０７〜ステップＳ１０９）が実行される。これによって、主記憶部１０４ａと主記憶部１０４ｂとは、転送対象データについて同じ状態になる。さらに、転送方式設定処理（ステップＳ１１０〜ステップＳ１１３）が実行される。これによって、各セグメントのメモリデータを効率的に転送できる転送方式が更新される。
【０１２５】
次に、図２５は、第１実施形態に係る第１系統１０１ａが実行するメモリデータ更新処理を示すフローチャートである。
【０１２６】
書込要求判断部１４２は、主記憶部１０４ａへの書込要求が発生したか否かを判断する（ステップＳ５２１）。書込要求が発生していないと判断した場合（ステップＳ５２１；Ｎｏ）、書込要求判断部１４２は、書込要求判断処理（ステップＳ５２１）を継続する。
【０１２７】
書込要求が発生したと判断された場合（ステップＳ５２１；Ｙｅｓ）、書込禁止フラグ判断部１５１は、書込要求が発生したページの書込禁止フラグが立っているか否かを判断する（ステップＳ５２２）。具体的には、書込禁止フラグ判断部１５１は、ページテーブルデータ１１０の書込禁止フラグデータ１１４を参照し、書込要求が発生したページに関連付けられている書込禁止フラグの状態に基づいて判断する。
【０１２８】
書込禁止フラグが立っていると判断された場合（ステップＳ５２２；Ｙｅｓ）、メモリデータ書込部１５４は、その書込要求に係るデータを書き込む（ステップＳ５２３）。書込禁止フラグが立っているということは、ＣＯＷ方式での転送処理の途中である。そのため、メモリデータ書込部１５４は、ローカルコピー先のページにデータを書き込む。
【０１２９】
書込禁止フラグが立っていないと判断された場合（ステップＳ５２２；Ｎｏ）、ダーティフラグ判断部１５２は、書込要求が発生したページのダーティフラグが立っているか否かを判断する（ステップＳ５２４）。具体的には、ダーティフラグ判断部１５２は、ページテーブルデータ１１０のダーティフラグデータ１１３を参照し、書込要求が発生したページに関連付けられているダーティフラグの状態に基づいて判断する。
【０１３０】
ダーティフラグが立っていると判断された場合（ステップＳ５２４；Ｙｅｓ）、メモリデータ書込部１５４は、その書込要求に係るデータを書き込む（ステップＳ５２３）。
【０１３１】
ダーティフラグが立っていないと判断された場合（ステップＳ５２４；Ｎｏ）、ダーティフラグ設定部１５３は、ページテーブルデータ１１０のダーティフラグデータ１１３のうち、書込要求があったページに関連付けられているダーティフラグデータ１１３に「１」を設定する（ステップＳ５２５）。これによって、書き込みがなされるページのダーティフラグが立った状態になる。
【０１３２】
続けて、メモリデータ書込部１５４は、書込要求が発生したページにその書込要求に係るデータを書き込む（ステップＳ５２３）。これにより、第１系統１０１ａは、メモリデータ更新処理を終了する。
【０１３３】
このようなメモリデータ更新処理が実行されることによって、主記憶部１０４ａのメモリデータが更新される。また、メモリデータが更新されたページには、ダーティフラグが設定される。
【０１３４】
以上、本発明の第１実施形態について説明した。
本実施形態によれば、セグメントテーブルデータ１２０は、転送方式がセグメントごとに設定されている転送方式データ１２２を含む。設定される転送方式は、一括コピー方式とＣＯＷ方式とのいずれかである。一括コピー方式は、転送処理中に書込要求が発生する頻度が高い場合に、ＣＯＷ方式よりも効率よく転送できる方式である。また、ＣＯＷ方式は、転送処理中に書込要求が発生する頻度が低い場合に、一括コピー方式よりも効率よく転送できる方式である。
【０１３５】
転送方式データ１２２では、セグメントへの書込要求が発生する頻度に応じて、一括コピー方式とＣＯＷ方式とのいずれかの転送方式が各セグメントに設定されている。そのため、転送方式データ１２２を参照し、各セグメントに設定された転送方式に従って各セグメントのメモリデータを転送することによって、効率よく各セグメントのメモリデータを転送することができる。本実施形態では転送対象領域が複数のセグメントに分割されるため、転送対象領域全体のメモリデータを１つの転送方式で転送するよりも、効率的に転送することが可能になる。
【０１３６】
また、本実施形態によれば、転送方式データ１２２が示す各セグメントの転送方式は、ＤＰカウンタデータ１２３が示すＤＰカウンタに基づいて設定される。すなわち、ＤＰカウンタがＤＰ閾値以上である場合に、一括コピー方式が設定される。また、ＤＰカウンタがＤＰ閾値未満である場合に、ＣＯＷ方式が設定される。本実施形態において説明したように、ＤＰカウンタは、各セグメントに書き込みが発生した頻度を示し、転送処理中に各セグメントに書込要求が発生する確率と相関がある。したがって、ＤＰカウンタに基づいて転送方式を設定することによって、効率的な転送に適した転送方式を確実に設定することが可能になる。
【０１３７】
また、本実施形態によれば、ＤＰカウンタは、ページテーブルデータ１１０のダーティフラグデータ１１３及びラストダーティページデータ１３０に基づいて計数される。本実施形態に係るページテーブルデータ１１０は、主記憶部１０４ａの記憶領域をページ単位で管理する場合に、主制御部１０３ａなどに通常保持されるデータである。そのため、ＤＰカウンタは、ラストダーティページデータ１３０を主記憶部１０４ａなどに保持させることによって、容易に実現できる。ＤＰカウンタに基づいて転送方式を設定することによって、効率的な転送に適した転送方式を容易に設定することが可能になる。
【０１３８】
さらに、本実施形態によれば、ＣＰカウンタデータが示すＣＰカウンタがＣＰ閾値以上となった場合に、転送方式データ１２２が示す各セグメントの転送方式の設定を更新する。これによって、チェックポイントが到来するたびに転送方式の設定を更新するよりも、ＦＴサーバ１００に掛かる処理負荷を抑えながら、適切なタイミングで転送方式を見直すことができる。各セグメントのメモリデータへのアクセス傾向は随時変わることがあるが、本実施形態によれば効率的な転送に適した転送方式を維持することができる。したがって、メモリデータの高い転送効率を持続させることが可能になる。
【０１３９】
さらに、本実施形態では主記憶部１０４ａが、セグメントテーブルデータ１２０及びラストダーティページデータ１３０を保持する。これは、一般的なＯＳの機能またはそれを拡張することによって、容易に実現することができる。また、本実施形態では、ＣＯＷ方式で書込要求が発生すると、ローカルコピーする。これは、一般的なＯＳの割り込み機能またはそれを拡張することによって、容易に実現することができる。したがって、本実施形態によれば、メモリデータの効率的な転送を容易に実現することが可能になる。
【０１４０】
（第２実施形態）
本発明の第２実施形態では、主制御部のキャッシュ部が、第１実施形態のセグメントテーブルデータ１２０及びラストダーティページデータ１３０に相当するデータを保持する。この点、両データ１２０及び１３０を主記憶部１０４ａが保持している第１実施形態と異なる。また、これらのデータ１２０，１３０をキャッシュ部に保持させることによって、第１実施形態においてソフトウェアを実行することにより実現された機能の一部をハードウェアにより実現することができる。そのため、本実施形態では、第１実施形態と同様の効果に加えて、処理の高速化が可能になる。
【０１４１】
本発明の第２実施形態について、図２６〜３５を参照して説明する。これらの図では、第１実施形態と同じ構成要素には同一の参照符号を付している。本実施形態では、第１実施形態と異なる構成要素について説明し、第１実施形態と同じ構成要素についての重複する説明は省略する。
【０１４２】
図２６に示すように、本発明の第２実施形態に係るＦＴサーバ２００の構成は、図１に示すＦＴサーバ１００と概ね同様の構成を備えた第１系統２０１ａと第２系統２０１ａとを備える。本実施形態でも、第１系統２０１ａが主系統であり、第２系統２０１ａが副系統である。
【０１４３】
本実施形態と第１実施形態とは、主制御部２０３ａ（２０３ｂ）の詳細な構成と、主記憶部２０４ａ（２０４ｂ）及びキャッシュ部２０８ａ（２０８ｂ）が保持しているデータとが異なる。
【０１４４】
まず、本実施形態に係るキャッシュ部２０８ａ（２０８ｂ）は、第１実施形態と同様のセグメントテーブルデータ１２０（図３参照）と、図２７に示すページテーブルデータ２１０とを保持する。
【０１４５】
本実施形態に係るページテーブルデータ２１０は、図２７に示すように、第１実施形態に係るページテーブルデータ１１０に含まれる各データ１１１〜１１４に加えて、ページごとに関連付けられたラストダーティフラグデータ２１５を含む。
【０１４６】
ラストダーティフラグデータ２１５は、ラストダーティページフラグの状態を示すデータである。ラストダーティフラグデータ２１５が関連付けられたページがラストダーティページである場合、ラストダーティページフラグは、立った状態を示す「１」である。また、ラストダーティフラグデータ２１５が関連付けられたページがラストダーティページでない場合、ラストダーティページフラグは、立っていない状態を示す「０」である。
【０１４７】
すなわち、ラストダーティフラグデータ２１５は、ラストダーティページを特定するためのデータ（ＬＤＰデータ）に相当する。
【０１４８】
本実施形態に係る主制御部２０３ａは、図２８に示すように、主制御部１０３ａが備える構成（図５参照）に加えて、新規セグメント追加部２４８を備える。また、主制御部２０３ａは、第１実施形態に係る転送制御部１４４とＤＰカウンタ計数部１４８とに代えて、転送制御部２４４とＤＰカウンタ計数部２４８とを備える。
【０１４９】
転送制御部２４４は、第１実施形態に係る転送制御部１４４と同様に、メモリデータを転送するための制御を行う。転送制御部２４４は、図２９に示すように、フラグ管理部１６５に代えて、フラグ管理部２６５を備える。なお、転送制御部２４４は、ラストダーティページ設定部１６３（図７参照）を備えない。
【０１５０】
フラグ管理部２６５は、ページテーブルデータ１１０のダーティフラグデータ１１３及び書込禁止フラグデータ１１４に加えて、ラストダーティフラグデータ２１５を参照し、各フラグの状態を判断し、また適宜更新する。このように、本実施形態では、フラグ管理部２６５がＬＤＰデータに相当するデータを管理する。そのため、フラグ管理部２６５は、第１実施形態のフラグ管理部１６５と異なり、キャッシュ部２０８ａにのみアクセスし、主記憶部２０４ａにアクセスすることがない。これによって、フラグ管理部２６５は、フラグ管理部１６５よりも高速に処理ができる。
【０１５１】
図２８に示すＤＰカウンタ計数部２４５は、第１実施形態のＤＰカウンタ計数部１４５と同様に、ＤＰカウンタを計数し、計数した値によってセグメントテーブルデータ１２０のＤＰカウンタデータ１２３を更新する。ＤＰカウンタ計数部２４５は、図３０に示すように、第１実施形態のＤＰカウンタ計数部１４５が備える構成要素に加えて、ラストダーティフラグクリア部２７３を備える。また、ＤＰカウンタ計数部２４５は、第１実施形態の連続書込判断部１７１に代えて、連続書込判断部２７１を備える。
【０１５２】
連続書込判断部２７１は、第１実施形態に係る連続書込判断部１７１と同様に、２回のチェックポイントで連続して書き込みが発生したか否かをページごとに判断する。連続書込判断部２７１は、連続書込判断部１７１とは異なり、ページテーブルデータ２１０のダーティフラグデータ１１３とラストダーティフラグデータ２１５とを参照する。そして、ダーティフラグとラストダーティフラグとが示すフラグの両方が立っている場合に、連続書込判断部２７１は、２回のチェックポイントで連続して書き込みが発生したと判断する。それ以外の場合に、連続書込判断部２７１は、２回のチェックポイントで連続して書き込みが発生しないと判断する。
【０１５３】
ラストダーティフラグクリア部２７３は、すべてのページのラストダーティフラグデータ２１５に「０」を設定する。これによって、すべてのページのラストダーティフラグがクリアされる。
【０１５４】
図２８に戻り、新規セグメント追加部２４８は、セグメントテーブルデータ１２０に新たなセグメントのエントリを追加する。
【０１５５】
これまで、本実施形態に係るＦＴサーバ２００の構成について説明した。次に、本実施形態に係るＦＴサーバ２００の主系統である第１系統２０１ａが実行する処理について、図３１〜３５を参照して説明する。
【０１５６】
図３１は、第２実施形態に係る第１系統２０１ａが、チェックポイントが到来した時に実行する処理を示すフローチャートである。同図に示すように、第２実施形態では、第１実施形態とは異なり（図１０参照）、チェックポイントが到来した時にＤＰカウンタ計数処理（ステップＳ１０４〜ステップＳ１０６）が実行されない。これは、本実施形態では、書込要求が発生した時にＤＰカウンタ計数処理が実行されるためである。本実施形態に係るＤＰカウンタ計数処理の詳細については後に説明する。
【０１５７】
また、本実施形態では、図３１に示す一括コピー方式転送処理（ステップＳ５０８）の詳細が、第１実施形態に係る一括コピー方式転送処理（図１０のステップＳ１０８）とは異なる。図３２は、本実施形態に係る一括コピー方式転送処理（ステップＳ５０８）の詳細を示す。同図に示すように、一括コピー方式転送処理（ステップＳ５０８）では、一括コピー方式転送処理（ステップＳ１０８）とは異なり（図１１参照）、ラストダーティページ設定処理（ステップＳ２０３）が実行されない。また、ダーティフラグクリア処理（ステップＳ２０４）も実行されない。
【０１５８】
さらに、本実施形態では、図３１に示すＣＯＷ方式転送処理（ステップＳ５０９）の詳細が、第１実施形態に係るＣＯＷ方式転送処理（図１０のステップＳ１０９）とは異なる。図３３は、本実施形態に係るＣＯＷ方式転送処理（ステップＳ５０９）の詳細を示す。同図に示すように、ＣＯＷ方式転送処理（ステップＳ５０９）では、ＣＯＷ方式転送処理（ステップＳ１０９）とは異なり（図１６参照）、ラストダーティページ設定処理（ステップＳ３０３）が実行されない。また、ダーティフラグクリア処理（ステップＳ３０４）も実行されない。
【０１５９】
さらに図３１を参照すると、本実施形態では、一括コピー方式及びＣＯＷ方式での転送処理（ステップＳ５０８及びステップＳ５０９）の後に、ラストダーティフラグ設定処理（ステップＳ５１４）が実行される。
【０１６０】
具体的には、フラグ管理部２６４は、ダーティフラグデータ１１３が示す各ページのダーティフラグの状態をそのままラストダーティフラグデータ２１５に移動させる。これによって、ダーティフラグがクリアされるとともに、ラストダーティフラグが設定される。これは、第１実施形態のラストダーティページ設定処理（ステップＳ２０３又はステップＳ３０３）とダーティフラグクリア処理（ステップＳ２０４又はステップＳ２０４）とに相当する。本実施形態でのラストダーティフラグ設定処理（ステップＳ５１４）は、例えばＴＬＢのようなキャッシュ部２０８ａ内でのデータの移動である。そのため、本実施形態によれば、ラストダーティページ設定処理（ステップＳ２０３又はステップＳ３０３）とダーティフラグクリア処理（ステップＳ２０４又はステップＳ２０４）とに相当する処理を第１実施形態よりも高速に実行することが可能になる。
【０１６１】
次に、図３４は、本実施形態に係る第１系統２０１ａが実行するメモリデータ更新処理を示すフローチャートである。同図に示すように、本実施形態に係るメモリデータ更新処理は、第１実施形態に係るメモリデータ更新処理（図２５参照）に加えて、ダーティフラグ連続判断処理（ステップＳ７２６）、ラストダーティフラグクリア処理（ステップＳ７２７）、及びＤＰカウンタ加算処理（ステップＳ１０６）を含む。本実施形態のメモリデータ更新処理において追加された処理（ステップＳ７２６、ステップＳ７２７、及びステップＳ１０６）は、第１実施形態に係るにＤＰカウンタ計数処理（図１０のステップＳ１０４〜ステップＳ１０６）に相当する。
【０１６２】
ダーティフラグ設定処理（ステップＳ５２５）の後に、連続書込判断部２７１は、２回のチェックポイントで連続して書き込みが発生したか否かをページごとに判断する（ステップＳ７２６）。具体的には、連続書込判断部２７１は、ページテーブルデータ２１０のうち、書込要求が発生したページのダーティフラグデータ１１３とラストダーティフラグデータ２１５とを参照する。連続書込判断部２７１は、参照したデータ１１３及び２１５によって示されるフラグの状態に基づいて判断する。
【０１６３】
連続書込判断部２７１は、参照したデータ１１３及び２１５によって示されるフラグのいずれか一方又は両方が立っていない場合に、所定の書き込みが発生していないと判断する（ステップＳ７２６；Ｎｏ）。この場合、データ書込部１５４は、その書込要求に係るデータを書き込み（ステップＳ５２３）、処理を終了する。
【０１６４】
連続書込判断部２７１は、参照したデータ１１３及び２１５によって示されるフラグの両方が立っている場合に、所定の書き込みが発生したと判断する（ステップＳ７２６；Ｙｅｓ）。この場合、ラストダーティフラグクリア部２７３は、すべてのページのラストダーティフラグデータ２１５が示すラストダーティフラグをクリアする（ステップＳ７２７）。
【０１６５】
このように、本実施形態では、メモリデータ更新処理において、すなわち、書込要求が発生したときに、ＤＰカウンタ係数処理（ステップＳ７２６，ステップＳ７２７，及びステップＳ１０６）が実行される。これにより、チェックポイント（転送時期）が到来した時に実行される処理が第１実施形態よりも減少し、その際の処理負荷を軽減することができる。
【０１６６】
さらに、図３５は、本実施形態に係る第１系統２０１ａが実行する新規セグメント追加処理を示すフローチャートである。
【０１６７】
新規セグメント追加部２４８は、セグメントテーブルデータ１２０のセグメント上限データ１２５に新たなセグメントの物理アドレスの上限を設定する（ステップＳ７０１）。新規セグメント追加部２４８は、セグメントテーブルデータ１２０のセグメント下限データ１２４に新たなセグメントの物理アドレスの下限を設定する（ステップＳ７０２）。新規セグメント追加部２４８は、セグメントテーブルデータ１２０の新たなセグメントのＤＰカウンタデータ１２３に「０」を設定する（ステップＳ７０３）。新規セグメント追加部２４８は、セグメントテーブルデータ１２０の新たなセグメントの転送方式データ１２２に初期値を設定し（ステップＳ７０４）、処理を終了する。初期値には、一括コピー方式とＣＯＷ方式とのいずれかが予め定められる。
【０１６８】
このような新規セグメント追加処理によって、新しいセグメントのエントリがセグメントテーブルデータ１２０に追加される。
【０１６９】
以上、本発明の第２実施形態について説明した。
本実施形態によれば、第１実施形態と同様に、転送対象領域全体のメモリデータを１つの転送方式で転送するよりも、効率的に転送することが可能になる。
【０１７０】
また、第１実施形態と同様に、ＤＰカウンタに基づいて転送方式を設定することによって、効率的な転送に適した転送方式を確実に設定することが可能になる。
【０１７１】
さらに、ＤＰカウンタは、ラストダーティページデータ１３０をキャッシュ部２０８ａなどに保持させることによって、容易に実現できる。そのため、第１実施形態と同様に、ＤＰカウンタに基づいて転送方式を設定することによって、効率的な転送に適した転送方式を容易に設定することが可能になる。
【０１７２】
さらに、第１実施形態と同様に、効率的な転送に適した転送方式を維持することができる。したがって、第１実施形態と同様に、メモリデータの高い転送効率を持続させることが可能になる。
【０１７３】
さらに、本実施形態ではキャッシュ部２０８ａが、セグメントテーブルデータ１２０及びラストダーティフラグデータ２１５を保持する。主制御部１０３ａは一般に、主記憶部２０４ａよりもキャッシュ部２０８ａに高速にアクセスできる。そのため、これらのデータ１２０及び２１５へのアクセスを伴う処理の高速化が可能になる。したがって、本実施形態によれば、特にチェックポイントが到来した時に実行される処理の高速化を図ることができる。
【０１７４】
さらに、セグメントテーブルデータ１２０及びラストダーティフラグデータ２１５をＴＬＢに追加的に含めることは、主制御部１０３ａを実現するプロセッサがレジスタや、カウンタを備える場合には、マイクロコードの変更によって実現できる。したがって、このような場合に本実施形態を採用することによって特に容易に、メモリデータの効率的な転送を実現することが可能になる。
【０１７５】
以上、本発明の実施形態について説明したが、本発明はこれまで説明した実施形態に限定されるものではない。
【０１７６】
例えば、本発明に係る各実施形態は、仮想ＯＳ支援機構を備えるＣＰＵにおける仮想環境上での冗長構成を実現する場合にも適用できる。例えば、ＣＰＵが保持するページテーブルにラスとダーティフラグを追加するとともに、ＣＰＵがセグメントテーブルを保持すればよい。これによっても、メモリデータを効率的に転送することが可能になる。また、ハードウェア構成の支援による高速な処理も可能になる。
【０１７７】
また例えば、各実施形態では、転送対象データは、主記憶部１０３ａ内のデータであるとしたが、転送対象データはこれに限られない。転送対象データは、異なる系統又は装置間で転送される任意のデータであってよい。また、転送対象データは、同一装置内で転送される任意のデータであってもよい。また、転送対象データを保持する領域が転送対象領域である。転送対象領域は、主記憶部１０４ａ（１０４ｂ）に限らず、ＦＴサーバが備える任意の記憶手段の記憶領域内に設定されてよい。
【０１７８】
さらに例えば、各実施形態ではＦＴサーバ１００（２００）が２系統１０１ａ，１０１ｂ（２０１ａ，２０１ｂ）を備える例により説明したが、ＦＴサーバはこれに限られない。ＦＴサーバは３系統以上を備えてもよい。ＦＴサーバが３系統以上備える場合も、通常時には、いずれか１つの系統が主系統として稼動し、他の系統が待機する。そして、待機する各系統は主系統の状態を保持する。
【０１７９】
さらに例えば、各実施形態では転送単位は、ページであるとしたが、転送単位はこれに限られない。転送単位は任意のサイズで設定されてよい。
【０１８０】
さらに例えば、各実施形態では転送単位テーブルデータとしてのページテーブルデータが、各ページの始まりとなる物理アドレスを示すデータを物理アドレスデータとして保持するとしたが、物理アドレスデータはこれに限られない。物理アドレスデータは、各ページを特定できるデータであればよく、例えば各転送単位の上限及び下限となる物理アドレスを示すデータであってもよい。また、仮想アドレスデータも、各転送単位の上限及び下限となる仮想アドレスを示すデータであってもよい。さらに、各ページを特定できるデータの他の例として、各ページに付与されたページ番号を示すデータを挙げることができる。
【０１８１】
さらに例えば、各実施形態では、ダーティフラグデータ１１３は、「０」と「１」により示されるフラグを用いてダーティページを特定したが、これに限られない。ダーティフラグデータ１１３はダーティページを特定できるデータであればよく、フラグによって示されなくてもよい。また、フラグを用いる場合であっても、「０」「１」以外の任意の文字、記号などによってフラグの状態が示されてよい。書込禁止フラグデータ１１４、及びラストダーティフラグデータ２１５についても同様である。
【０１８２】
さらに例えば、各実施形態では、転送時期と計数時期とのいずれもが同一のチェックポイントであるとしたが、転送時期と計数時期とはこれに限られない。転送時期は、転送処理を開始する時期として任意に定められてよい。また、計数時期は、ＤＰカウンタ計数処理を開始する時期として任意に定められてよい。ただし、転送時期と計数時期が異なる場合には、転送時期が到来した時のダーティページと計数時期が到来した時のダーティページとのそれぞれを示すデータが必要になる。各データは例えば、ページテーブルデータ１１０，１２０に、ダーティフラグデータ１１３に代えて含まれてよい。
【０１８３】
さらに例えば、各実施形態では転送方式は、一括コピー方式とＣＯＷ方式とであるとしたが、転送方式はこれに限られない。転送方式は例えば、転送対象領域に書き込みがなされると、その都度、書き込まれた内容を退避領域に書き込み、チェックポイント時に退避領域のメモリデータを転送する方式であってもよい。この方式は、書き込み要求が発生する頻度が低く、特に書き込みが特定のページに集中しないセグメントに適用すると、メモリデータを効率よく転送することができる。
【０１８４】
さらに例えば、各実施形態では、各セグメントに書き込みが発生した頻度を計数するための所定条件は、２回のチェックポイントで連続してダーティフラグが立っていたこととしたが、所定条件はこれに限られない。所定条件は例えば、単に、前回のチェックポイント以降に書き込みが発生したことであってもよい。また、所定条件は例えば、ある１回のチェックポイントでダーティフラグが立っていたことであってもよい。この場合、ＤＰカウンタは例えば、各チェックポイントにおいてダーティフラグデータ１１３が示すダーティフラグが立っているページの数をセグメントごとに集計した値となる。さらに、所定条件は、３回以上の所定の回数のチェックポイントで連続してダーティフラグが立っていたことであってもよい。この場合、ＤＰカウンタは例えば、３回以上のチェックポイントで連続してダーティフラグが立っていたページの数をセグメントごとに集計した値となる。
【０１８５】
さらに例えば、各実施形態では、各セグメントに書き込みが発生した頻度（書込頻度）に基づいて、転送方式を設定したが、転送方式を設定するための指標は書込頻度に限られない。転送方式は、転送処理中にセグメント内で書き込みが発生する確率に応じた値（書込発生度）に基づいて、設定されればよい。すなわち、書込頻度及びそれを示す頻度データのそれぞれは、書込発生度及びそれを示す書込発生度データの一例である。
【０１８６】
書込発生度は、各セグメントに書き込みが発生した頻度（書込頻度）の他に、例えば、各セグメントに書き込みが発生した確率又は割合（書込確率又は書込割合）を含む。また、各セグメント内に一定サイズの監視領域をセグメントのサイズに応じた数だけ予め定め、監視領域に発生した書き込みの有無を数値化し、その書き込み発生の有無を示す値をセグメントごとに集計して得られる値が書込発生度とされてもよい。さらに、その監視領域に対する、書き込みが発生した領域の割合が書込発生度とされてもよい。そして、これらの書込発生度を集計する時期は、任意に定められてよい。
【０１８７】
このような書込発生度は、転送処理中にセグメント内で書き込みが発生する確率が高くなるに従って、大きな値となる。そのため、このような書込発生度を採用する場合、転送方式設定部１４６は、例えば各実施形態と同様の処理を実行すればよい。すなわち、転送方式設定部１４６は、書込発生度データを取得し、取得した書込発生度データが示す書込発生度が閾値以上であるセグメントには、例えば一括コピー方式を設定するとよい。また、転送方式設定部１４６は、取得した書込発生度データが示す書込発生度が閾値以上であるセグメントには、例えばＣＯＷ方式を設定すればよい。
【０１８８】
さらに、書込発生度は、転送処理中にセグメント内で書き込みが発生する確率が高くなるに従って、小さくなる値であってもよい。このような書込発生度の例として、書込頻度、書込確率その他のこれまで例示した書込発生度の逆数を挙げることができる。この場合、転送方式設定部は、書込発生度データを取得し、取得した書込発生度データが示す書込発生度が閾値以下であるセグメントには、例えば一括コピー方式を設定するとよい。また、転送方式設定部は、取得した書込発生度データが示す書込発生度が閾値より大きいセグメントには、例えばＣＯＷ方式を設定すればよい。
【０１８９】
このように書込発生度には、転送処理中にセグメント内で書き込みが発生する確率に応じた種々の値が採用されうる。転送方式設定部が各セグメントの書込発生度に基づいて各セグメントの転送方式を設定し、設定された転送方式に従って転送制御部１４４，２４４が転送対象データを転送させることによって、転送対象データを効率的に転送することが可能になる。
【０１９０】
データ転送装置としてのＦＴサーバ１００の第１系統１０１ａが備える主制御部１０３ａ、主記憶部１０４ａ、補助記憶部１０５ａ、ＦＴ制御部１０６ａなどから構成される第１系統１０１ａの処理を行う中心となる部分は、専用のシステム、通常のコンピュータシステムなどを用いて実現可能である。たとえば、各実施形態において説明した第１系統１０１ａの動作を実行するためのコンピュータプログラムを、コンピュータが読み取り可能な記録媒体（フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等）に格納して配布し、そのコンピュータプログラムをコンピュータにインストールすることにより、上記の処理を実行する第１系統１０１ａを構成してもよい。また、インターネット等の通信ネットワーク上のサーバ装置が有する記憶装置にそのコンピュータプログラムを格納しておき、通常のコンピュータシステムがダウンロード等することで第１系統１０１ａを構成してもよい。
【０１９１】
また、第１系統１０１ａの機能を、ＯＳ（オペレーティングシステム）とアプリケーションプログラムの分担、またはＯＳとアプリケーションプログラムとの協働により実現する場合などには、アプリケーションプログラム部分及びＯＳを一部変更するためのアプリケーションプログラムの一方又は両方を必要に応じて記録媒体や記憶装置に格納してもよい。
【０１９２】
また、搬送波にコンピュータプログラムを重畳し、通信ネットワークを介して配信することも可能である。たとえば、通信ネットワーク上の掲示板（ＢＢＳ，Ｂｕｌｌｅｔｉｎ  Ｂｏａｒｄ  Ｓｙｓｔｅｍ）に上記のコンピュータプログラムを掲示し、ネットワークを介してそのコンピュータプログラムを配信してもよい。そして、このコンピュータプログラムを起動し、ＯＳの制御下で、他のアプリケーションプログラムと同様に実行することにより、上記の処理を実行できるように構成してもよい。
【０１９３】
本発明は、本発明の範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。
【０１９４】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【０１９５】
（付記１）
データの転送処理中に書き込みが発生する確率に応じた値を示す書込発生度データを参照し、参照した前記書込発生度データにより示される値に基づいて、第１転送方式と、前記第１転送方式とは異なる第２転送方式とを含む転送方式のいずれかを設定する転送方式設定手段と、
前記転送方式設定手段によって設定された転送方式に従って、データを転送させる転送制御手段とを備える
ことを特徴とするデータ転送装置。
【０１９６】
（付記２）
前記転送方式設定手段は、所定の時期ごとに、前記書込発生度データを参照し、参照した前記書込発生度データにより示される値に基づいて、前記第１転送方式と前記第２転送方式とを含む転送方式のいずれかを設定する
ことを特徴とする付記１に記載のデータ転送装置。
【０１９７】
（付記３）
前記第１転送方式は、転送処理中に書き込みが発生する確率が高い場合に、前記第２転送方式よりもデータを効率的に転送できる転送方式であり、
前記第２転送方式は、転送処理中に書き込みが発生する確率が低い場合に、前記第１転送方式よりもデータを効率的に転送できる転送方式である
ことを特徴とする付記１又は２に記載のデータ転送装置。
【０１９８】
（付記４）
前記第１転送方式は、転送時期が到来した時に、転送すべきデータをローカルコピーした後に、前記転送すべきデータを順次転送する転送方式である
ことを特徴とする付記１から３のいずれか１つに記載のデータ転送装置。
【０１９９】
（付記５）
第２転送方式は、転送時期が到来した時に、転送すべきデータを順次転送するとともに、前記転送すべきデータのうち未転送のデータに書き込みが発生した場合には、前記未転送のデータをローカルコピーした後に、前記未転送のデータを転送する転送方式である
ことを特徴とする付記１から４のいずれか１つに記載のデータ転送装置。
【０２００】
（付記６）
前記転送方式設定手段は、各セグメントの前記書込発生度データを参照し、参照した前記書込発生度データにより示される値に基づいて、前記第１転送方式と前記第２転送方式とを含む転送方式のいずれかをセグメントごとに設定し、
前記転送制御手段は、前記転送方式設定手段によって設定された転送方式に従って、前記各セグメントに含まれるデータを転送させる
ことを特徴とする付記１から５のいずれか１つに記載のデータ転送装置。
【０２０１】
（付記７）
各セグメントの前記書込発生度データを参照し、参照した前記書込発生度データによって示される各セグメントの値と第１閾値とを比較し、前記各セグメントの値が前記第１閾値以上であるか否かを判断する書込発生度判断手段と、
前記書込発生度判断手段によって前記値が前記第１閾値以上であると判断された場合に、当該判断がなされたセグメントの転送方式が前記第１転送方式であることを示す前記転送方式データを生成し、前記値が前記第１閾値未満であると判断された場合に、当該判断がなされたセグメントの転送方式が前記第２転送方式であることを示す前記転送方式データを生成する転送方式生成手段とを備える
ことを特徴とする付記１から６のいずれか１つに記載のデータ転送装置。
【０２０２】
（付記８）
前記転送方式生成手段によって転送方式データが生成された後の転送回数を示す転送回数データを参照し、参照した前記転送回数データによって示される転送回数と第２閾値とを比較し、前記転送回数が前記第２閾値以上であるか否かを判断する転送回数判断手段を備え、
前記書込発生度判断手段は、前記転送回数判断手段によって前記転送回数が前記第２閾値以上であると判断された場合に、前記書込発生度データを参照し、参照した前記書込発生度データによって示される各セグメントの値と第１閾値とを比較し、前記各セグメントの値が前記第１閾値以上であるか否かを判断する
ことを特徴とする付記２から７のいずれか１つに記載のデータ転送装置。
【０２０３】
（付記９）
前記各セグメントに含まれる転送単位のうち、計数時期と前回の計数時期との間に書き込みが発生した転送単位を特定できる第１ダーティデータを参照し、前記第１ダーティデータを参照することによって書き込みが発生したと特定される転送単位の数をセグメントごとに集計し、集計した値を示すデータを前記書込発生度データとして生成する書込発生度計数手段を備える
ことを特徴とする付記７又は８に記載のデータ転送装置。
【０２０４】
（付記１０）
前記書込発生度計数手段は、前記第１ダーティデータと、前記前回の計数時期と前々回の計数時期との間に書き込みが発生した前記転送単位を特定できる第２ダーティデータとを参照し、前記第１ダーティデータを参照することによって書き込みが発生したと特定され、かつ、前記第２ダーティデータを参照することによって書き込みが発生したと特定される転送単位の数をセグメントごとに集計し、集計した値を示すデータを前記書込発生度データとして生成する
ことを特徴とする付記９に記載のデータ転送装置。
【０２０５】
（付記１１）
前記計数時期は、予め定められる転送時期と同一である
ことを特徴とする付記８又は９に記載のデータ転送装置。
【０２０６】
（付記１２）
前記書込発生度計数手段は、転送時期が到来した時に、前記第１ダーティデータを、又は、前記第１ダーティデータと前記第２ダーティデータとを参照する
ことを特徴とする付記９から１１のいずれか１つに記載のデータ転送装置。
【０２０７】
（付記１３）
前記書込発生度計数手段は、主記憶部への書き込みが発生した時に、前記第１ダーティデータを、又は、前記第１ダーティデータと前記第２ダーティデータとを参照する
ことを特徴とする付記９から１１のいずれか１つに記載のデータ転送装置。
【０２０８】
（付記１４）
前記転送方式データ、前記書込発生度データ、前記第１ダーティデータ、及び前記第２ダーティデータの全部又は一部を保持しているキャッシュ部を備える
ことを特徴とする付記１から１３のいずれか１つに記載のデータ転送装置。
【０２０９】
（付記１５）
前記転送方式データ、前記書込発生度データ、前記第１ダーティデータ、及び前記第２ダーティデータの全部又は一部を保持している主記憶部を備える
ことを特徴とする付記１から１３のいずれか１つに記載のデータ転送装置。
【０２１０】
（付記１６）
前記転送制御手段は、
前記転送方式データを参照し、参照した前記転送方式データが示す前記転送方式によって前記各セグメントの転送方式を判断する転送方式判断手段と、
前記各セグメントに含まれる転送単位の各々への書き込みが前回の転送時期以降に発生したか否かを示す第３ダーティデータを参照し、書き込みが発生したことが前記第３ダーティデータによって示される転送単位を特定するダーティ単位特定手段と、
前記転送方式判断手段によって判断された転送方式に従って、前記各セグメントに含まれるデータのうち特定した転送単位に含まれるデータを転送させる転送指示手段とを備える
ことを特徴とする付記１から１５のいずれか１つに記載のデータ転送装置。
【０２１１】
（付記１７）
前記転送制御手段は、転送方式判断手段によって前記第１転送方式であると判断された場合に、前記ダーティ単位特定手段によって特定された転送単位に含まれるデータを主記憶部内の退避領域にコピーするローカルコピー手段を備え、
前記転送指示手段は、前記転送方式判断手段によって前記第１転送方式であると判断された場合に、前記ローカルコピー手段によってコピーされた前記退避領域のデータを転送させる
ことを特徴とする付記１６に記載のデータ転送装置。
【０２１２】
（付記１８）
前記転送制御手段は、転送方式判断手段によって前記第２転送方式であると判断された場合であって、前記ダーティ単位特定手段によって特定された転送単位への書き込みが発生したときに、当該書き込みが発生した転送単位に含まれるデータを主記憶部内の退避領域にコピーするローカルコピー手段を備え、
前記転送指示手段は、転送方式判断手段によって前記第２転送方式であると判断された場合であって、前記ダーティ単位特定手段によって特定された転送単位への書き込みが発生したときには、前記ローカルコピー手段がコピーした後に、当該書き込みが発生した転送単位に含まれるデータを転送させ、前記ダーティ単位特定手段によって特定された転送単位への書き込みが発生しないときには、当該転送単位に含まれるデータを転送させる
ことを特徴とする付記１６又は１７に記載のデータ転送装置。
【０２１３】
（付記１９）
データの転送処理中に書き込みが発生する確率に応じた値を示す書込発生度データを参照し、参照した前記書込発生度データにより示される値に基づいて、第１転送方式と、前記第１転送方式とは異なる第２転送方式とを含む転送方式のいずれかを設定する転送方式設定手段と、
前記転送方式設定手段によって設定された転送方式に従って、データを転送させる転送制御手段を備える
ことを特徴とするＦＴサーバ。
【０２１４】
（付記２０）
データの転送処理中に書き込みが発生する確率に応じた値を示す書込発生度データを参照し、
参照した前記書込発生度データにより示される値に基づいて、第１転送方式と、前記第１転送方式とは異なる第２転送方式とを含む転送方式のいずれかを設定し、
設定された前記転送方式に従って、データを転送させる
ことを特徴とするデータ転送方法。
【０２１５】
（付記２１）
データの転送処理中に書き込みが発生する確率に応じた値を示す書込発生度データを参照し、
参照した前記書込発生度データにより示される値に基づいて、第１転送方式と、前記第１転送方式とは異なる第２転送方式とを含む転送方式のいずれかを設定し、
設定された前記転送方式に従って、データを転送させることをコンピュータに実行させる
ことを特徴とするプログラム。
【０２１６】
（付記２２）
データの転送処理中に書き込みが発生する確率に応じた値を示す書込発生度データを参照し、
参照した前記書込発生度データにより示される値に基づいて、第１転送方式と、前記第１転送方式とは異なる第２転送方式とを含む転送方式のいずれかを設定し、
設定された前記転送方式に従って、データを転送させることをコンピュータに実行させるプログラムを記録した
コンピュータ読み取り可能な記録媒体。
【符号の説明】
【０２１７】
１００,２００  ＦＴサーバ
１０１ａ，２０１ａ  第１系統
１０１ｂ，２０１ｂ  第２系統
１０２  通信パス
１０３ａ，１０３ｂ，２０３ａ，２０３ｂ  主制御部
１０４ａ，１０４ｂ，２０４ａ，２０４ｂ  主記憶部
１０５ａ，１０５ｂ  補助記憶部
１０６ａ，１０６ｂ  ＦＴ制御部
１０８ａ，１０８ｂ，２０８ａ，２０８ｂ  キャッシュ部
１４１  ＣＰ監視部
１４２  書込要求判断部
１４３  メモリデータ更新部
１４４，２４４  転送制御部
１４５，２４５  ＤＰカウンタ計数部
１４６  転送方式設定部
１５１  書込禁止フラグ判断部
１５２  ダーティフラグ判断部
１５３  ダーティフラグ設定部
１５４  メモリデータ書込部
１６１  転送方式判断部
１６２  ダーティページ特定部
１６３  ラストダーティページ設定部
１６４  ローカルコピー部
１６５，２６５  フラグ管理部
１６６  転送指示部
１７１，２７１  連続書込判断部
１７２  ＤＰカウンタ加算部
１８１  ＣＰカウンタ判断部
１８２  転送方式更新部
１８３  ＣＰカウンタ加算部
１８４  ＣＰカウンタクリア部
１８５  ＤＰカウンタ判断部
１８６  転送方式書込部
１８７  ＤＰカウンタクリア部
２７３  ラストダーティフラグクリア部
【図１】
0005699691.tif 000002
【図２】
0005699691.tif 000003
【図３】
0005699691.tif 000004
【図４】
0005699691.tif 000005
【図５】
0005699691.tif 000006
【図６】
0005699691.tif 000007
【図７】
0005699691.tif 000008
【図８】
0005699691.tif 000009
【図９】
0005699691.tif 000010
【図１０】
0005699691.tif 000011
【図１１】
0005699691.tif 000012
【図１２】
0005699691.tif 000013
【図１３】
0005699691.tif 000014
【図１４】
0005699691.tif 000015
【図１５】
0005699691.tif 000016
【図１６】
0005699691.tif 000017
【図１７】
0005699691.tif 000018
【図１８】
0005699691.tif 000019
【図１９】
0005699691.tif 000020
【図２０】
0005699691.tif 000021
【図２１】
0005699691.tif 000022
【図２２】
0005699691.tif 000023
【図２３】
0005699691.tif 000024
【図２４】
0005699691.tif 000025
【図２５】
0005699691.tif 000026
【図２６】
0005699691.tif 000027
【図２７】
0005699691.tif 000028
【図２８】
0005699691.tif 000029
【図２９】
0005699691.tif 000030
【図３０】
0005699691.tif 000031
【図３１】
0005699691.tif 000032
【図３２】
0005699691.tif 000033
【図３３】
0005699691.tif 000034
【図３４】
0005699691.tif 000035
【図３５】
0005699691.tif 000036