(57)【要約】【課題】余分にメモリを備えることなく、揮発メモリから不揮発メモリへの書き出し処理を高速化させる。【解決手段】情報処理装置１００は、揮発メモリ２０２のデータを不揮発メモリ２０３に書き出すハイバネーションやスワップアウトを実行する。この場合に、不揮発メモリ２０３への書き出し指示が発行されていない場合に、揮発メモリ２０２が保持する複数のデータの少なくとも１つを不揮発メモリ２０３に複製する。そして、不揮発メモリ２０３への書き出し指示があったとき、揮発メモリ２０２の書き出し対象となるデータが不揮発メモリ２０３に複製済みであるか否かを判定する。このように、揮発メモリ２０２から不揮発メモリ２０３へのデータの複製処理を事前に行うので、不揮発メモリ２０３への書き出し指示があった後に低速な不揮発メモリ２０３への書き込みを行う必要がなくなる。【選択図】図１
2014174752.tif 000002
【特許請求の範囲】
【請求項１】
揮発メモリのデータを不揮発メモリに書き出す処理を実行する情報処理装置であって、
データの保存先を管理するための管理情報を格納する格納手段と、
前記不揮発メモリへの書き出し指示が発行されていない場合に、前記揮発メモリが保持する複数のデータの少なくとも１つを前記不揮発メモリに複製する複製手段と、
前記不揮発メモリへの書き出し指示が発行されると、当該書き出し指示により書き出し対象と指定されているデータのうち、前記不揮発メモリに複製済みであるデータについて前記管理情報を変更する制御手段とを有することを特徴とする情報処理装置。
【請求項２】
前記揮発メモリが保持するデータを前記不揮発メモリに複製するタイミングを決めて、複製を指示する複製トリガー生成手段と、
前記不揮発メモリに複製したデータについて、前記管理情報を書き換える手段とを備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記揮発メモリの複製元データに対する書き換えを監視するデータ書き換え監視手段と、
前記データ書き換え監視手段によって書き換えが検知された前記揮発メモリの複製元データと、前記不揮発メモリの複製データとの間で差異が発生しているか否かを確認する確認手段と、
前記確認手段によって前記複製元データと前記複製データとの間で差異が発生していることが確認されたときに、整合性を保つために前記管理情報を更新する更新手段とを備えることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
ＣＰＵリソースに所定の空きがある場合、前記揮発メモリのデータを前記不揮発メモリに複製するタイミングとすることを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
一定周期で、前記揮発メモリのデータを前記不揮発メモリに複製することを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記揮発メモリからデータを選択して前記不揮発メモリに複製するときに、前記揮発メモリのデータのうち書き換えが発生しないデータを優先に選択することを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
書き換え頻度が少ないデータを次に優先して選択することを特徴とする請求項６に記載の情報処理装置。
【請求項８】
揮発メモリと、不揮発メモリと、データの保存先を管理するための管理情報を格納する格納手段と、を備え前記揮発メモリのデータを前記不揮発メモリに書き出す処理を実行する情報処理装置の制御方法であって、
前記不揮発メモリへの書き出し指示が発行されていない場合に、前記揮発メモリが保持する複数のデータの少なくとも１つを前記不揮発メモリに複製する複製工程と、
前記不揮発メモリへの書き出し指示が発行されると、当該書き出し指示により書き出し対象と指定されているデータのうち、前記不揮発メモリに複製済みであるデータについて前記管理情報を変更する制御工程とを有することを特徴とする制御方法。
【請求項９】
揮発メモリのデータを不揮発メモリに書き出す処理を実行する情報処理装置を、
データの保存先を管理するための管理情報を格納する格納手段と、
前記不揮発メモリへの書き出し指示が発行されていない場合に、前記揮発メモリが保持する複数のデータの少なくとも１つを前記不揮発メモリに複製する複製手段と、
前記不揮発メモリへの書き出し指示が発行されると、当該書き出し指示により書き出し対象と指定されているデータのうち、前記不揮発メモリに複製済みであるデータについて前記管理情報を変更する制御手段として機能させることを特徴とするコンピュータが読み取り可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、揮発メモリのデータを不揮発メモリに書き出すハイバネーションやスワップアウトを実行する情報処理装置、その制御方法及びプログラムに関する。
【背景技術】
【０００２】
情報処理装置に用いられるメモリとして、電力が供給されないと保持している内容が消える揮発メモリと、電力が供給されなくとも内容を保持し続けることができる不揮発メモリとが存在する。一般的に、揮発メモリの方が不揮発メモリよりも高速に動作する反面、単位容量あたりのコストも大きい。
【０００３】
情報処理装置は、揮発メモリ及び不揮発メモリの両方を備え、状態に応じてこれらを使い分ける。
例えば、現在動作している情報処理装置の状態（レジスタや揮発メモリの内容）を不揮発メモリに書き出して、休止状態に移行するハイバネーション機能がある。休止状態とは、現在の情報処理装置の状態を不揮発メモリに保存し終え、情報処理装置への電源供給を低下させた状態を示す。休止状態から復帰する際に、保存した情報を元に戻すことにより、移行前と同じ状態を再現することが可能となる。
また、情報処理装置の稼働中に揮発メモリの容量が不足した際に、揮発メモリのデータを一時的に不揮発メモリに書き出すスワップアウト機能がある。書き出し済みのデータが必要になった際に、不揮発メモリから揮発メモリにデータを読み込む操作をスワップインと呼ぶ。
ハイバネーションやスワップアウトは、不揮発メモリへの書き込みを伴う。速度が遅い不揮発メモリへの書き込みによって、ハイバネーションでは休止状態への移行時間の増大、スワップアウトでは書き出し処理がボトルネックとなり、処理性能、応答性能の低下といった問題が生じる。
【０００４】
特許文献１では、揮発メモリから不揮発メモリへの書き出し処理を高速化するために、複数の不揮発メモリを用意し、並列に書き出すことで書き出し処理時間を短縮化させる構成が開示されている。
特許文献２では、読み書きが高速な不揮発メモリと、低速な不揮発メモリを用意し、揮発メモリから高速な不揮発メモリに書き込むことで書き出し処理時間を短縮化させ、その後、高速な不揮発メモリから低速な不揮発メモリにデータを転送する構成が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第３１３２６４６号公報
【特許文献２】特許第３０９２６６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１や特許文献２の構成では、複数の不揮発メモリを用いることにより揮発メモリから不揮発メモリへの書き出し処理を高速化しており、余分にメモリを備える必要があり、コストがかかってしまう。
【０００７】
本発明は上記のような点に鑑みてなされたものであり、余分にメモリを備えることなく、揮発メモリから不揮発メモリへの書き出し処理を高速化させることを目的とする。
【課題を解決するための手段】
【０００８】
本発明の情報処理装置は、揮発メモリのデータを不揮発メモリに書き出す処理を実行する情報処理装置であって、データの保存先を管理するための管理情報を格納する格納手段と、前記不揮発メモリへの書き出し指示が発行されていない場合に、前記揮発メモリが保持する複数のデータの少なくとも１つを前記不揮発メモリに複製する複製手段と、前記不揮発メモリへの書き出し指示が発行されると、当該書き出し指示により書き出し対象と指定されているデータのうち、前記不揮発メモリに複製済みであるデータについて前記管理情報を変更する制御手段とを有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、余分にメモリを備えることなく、書き出し指示に基づく揮発メモリから不揮発メモリへの書き出し処理を高速化させることができる。
【図面の簡単な説明】
【００１０】
【図１】本発明を適用した情報処理装置の機能構成を示す図である。
【図２】本発明を適用可能な情報処理装置のハードウェア構成の一例を示す図である。
【図３】既存のスワップアウトの流れを示すフローチャートである。
【図４】第１の実施形態に係る情報処理装置の機能構成を示す図である。
【図５】ページ保存先管理テーブルを説明するための図である。
【図６】ページ保存先管理テーブルの一例を示す図である。
【図７】第１の実施形態におけるページの複製処理の流れを示すフローチャートである。
【図８】第１の実施形態におけるスワップアウトの流れを示すフローチャートである。
【図９】第１の実施形態におけるページの整合性を保つための処理の流れを示すフローチャートである。
【図１０】第２の実施形態におけるハイバネーション移行処理の流れを示すフローチャートである。
【図１１】ハイバネーション移行処理での既存の書き出し処理の流れを示すフローチャートである。
【図１２】第２の実施形態におけるハイバネーション移行処理での書き出し処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して、本発明の好適な実施形態について説明する。
（基本態様）
本発明を適用した具体的な実施形態を説明する前に、本発明を適用した情報処理装置の基本態様について説明する。
図１は、本発明を適用した情報処理装置１００の機能構成を示す図である。また、図２は、本発明を適用可能な情報処理装置１００のハードウェア構成の一例を示す図である。
図２において、２０１は情報処理装置１００の全体を制御するＣＰＵ（Central Processing Unit）であり、オペレーティングシステム（以下、ＯＳと記す）やプログラムを実行する。２０２は揮発メモリであり、プログラムやデータを一時記憶するＲＡＭ（Random Access Memory）により構成される。揮発メモリ２０２は、システムメモリとも呼ぶ。２０３は不揮発メモリであり、ハードディスクドライブのような、データやプログラムを記録しておくことができる不揮発な記録媒体である。
【００１２】
情報処理装置１００は、揮発メモリ２０２のデータを不揮発メモリ２０３に書き出すハイバネーションやスワップアウトを実行する。この場合に、不揮発メモリ２０３への書き出し指示が発行されていない場合に、揮発メモリ２０２が保持する複数のデータの少なくとも１つを不揮発メモリ２０３に複製する。そして、不揮発メモリ２０３への書き出し指示があったとき、揮発メモリ２０２の書き出し対象となるデータが不揮発メモリ２０３に複製済みであるか否かを判定する。このように、揮発メモリ２０２から不揮発メモリ２０３へのデータの複製処理を事前に行うので、不揮発メモリ２０３への書き出し指示があった後に低速な不揮発メモリ２０３への書き込みを行う必要がなくなる。
【００１３】
図１において、１０１はデータ保存先管理テーブル格納部であり、情報処理装置１００で使用するデータ（プログラムも含む）の保存先を管理するデータ保存先管理テーブルを格納する。データ保存先管理テーブルは、情報処理装置１００が使用するデータが揮発メモリ２０２及び不揮発メモリ２０３のどこに保存されているかを管理する。保存先は一つだけではなく、複数存在することもありえる。
【００１４】
１０２は複製トリガー生成部であり、揮発メモリ２０２が保持するデータを不揮発メモリ２０３に複製するタイミングを決めて、複製を指示する。複製トリガー生成部１０２による指示は、ハイバネーションやスワップアウトの指示が発行されていない場合に、ＣＰＵリソースに所定の空きがある場合や一定周期等、利用システムに適したタイミングで実行される。ハイバネーションやスワップアウトの指示が発行されている際に、複製トリガー生成部１０２が指示を重複して発行すると、データの移動とデータの複製とが混在し、ハイバネーションやスワップアウトの信頼性が低下してしまう。
１０３は複製データ選択部であり、揮発メモリ２０２から不揮発メモリ２０３に複製するデータを選択する。
１０４はデータ複製部であり、複製データ選択部１０３によって選択したデータを不揮発メモリ２０３に複製し、データ保存先管理テーブルが保持する対象データのテーブルを書き換える。
【００１５】
１０５はデータ書き換え監視部であり、揮発メモリ２０２の複製元データに対する書き換えを監視し、複製元データに対する書き換えが検知された場合、書き換えられたデータの情報を確認部１０６に通知する。
１０６は確認部であり、データ書き換え監視部１０５によって書き換えが検知された揮発メモリ２０２の複製元データと、不揮発メモリ２０３の複製データとの間で差異が発生しているか否かを確認する。両データに差異が発生していることが確認された場合、管理テーブル更新部（制御部）１０７に、整合性を保つためにデータ保存先管理テーブルを更新するよう依頼する。
１０７は管理テーブル更新部であり、揮発メモリ２０２の複製元データと、不揮発メモリ２０３の複製データとの間の整合性を保つためにデータ保存先管理テーブルが保持する対象データの情報を更新する。
【００１６】
（第１の実施形態）
第１の実施形態として、スワップアウトを説明する。
図４は、第１の実施形態に係る情報処理装置４００の機能構成を示す図である。
４０１はページ保存先管理テーブル格納部であり、ページの保存先を管理するページ保存先管理テーブルを格納する。図５（ａ）に、ページ保存先管理テーブルの構造例を示す。ページとは、メモリ空間を一定のサイズに分割して管理する際の単位を表す。ページ保存先管理テーブルは、一つのページに対し、ページ保存先、複製ページ保存先を保持する。ページ保存先、複製ページ保存先が保持する値は、インデクス番号５０２となる。インデクス番号５０２は、図５（ｂ）、（ｃ）に示すように、揮発メモリ２０２及び不揮発メモリ２０３に振り分けられた番号である。
ページ保存先管理テーブルが保持するページの状態は、３種類の状態、すなわち揮発メモリ２０２のみに保持されている状態、不揮発メモリ２０３のみに保持されている状態、揮発メモリ２０２及び不揮発メモリ２０３の両方に保持されている状態のいずれかとなる。５０３が揮発メモリ２０２のみに保持されている状態、５０４が不揮発メモリ２０３のみに保持されている状態、５０５が揮発メモリ２０２及び不揮発メモリ２０３の両方に保持されている状態を表す。図５の例では、ページＡは揮発メモリ２０２のみに保持されている状態、ページＢは不揮発メモリ２０３のみに保持されている状態、ページＦは揮発メモリ２０２及び不揮発メモリ２０３の両方に保持されている状態となっている。
【００１７】
４０２は複製トリガー生成部であり、揮発メモリ２０２が保持するページを不揮発メモリ２０３に複製するタイミングを決めて、複製を指示する。複製トリガー生成部４０２による指示は、ＣＰＵリソースに所定の空きがある場合や一定周期等、利用システムに適したタイミングで実行される。
４０３は複製ページ選択部であり、揮発メモリ２０２から不揮発メモリ２０３に複製するページを選択する。本実施形態では、ＯＳに備えられるスワップアウト機構に用いられている選択手段を用いて、複製するページを選択する。
４０４はページ複製部であり、複製ページ選択部４０３によって選択したページを不揮発メモリ２０３に複製し、ページ保存先管理テーブルの対応するページの複製ページ保存先に、複製先の不揮発メモリ２０３のインデクス番号を追加する。
【００１８】
４０５はページ書き換え監視部であり、揮発メモリ２０２の複製元ページに対する書き換えを監視し、複製元ページに対する書き換えが検知された場合、書き換えられたページの情報を確認部４０６に通知する。本手段の実現方法を、ＣＰＵがＩｎｔｅｌ社の３２ｂｉｔ８０ｘ８６（以下、ｘ８６と記す）で、ＯＳがＬｉｎｕｘ（登録商標）である場合で説明する。ｘ８６ではページング機構をＨＷで処理するページング回路を備えており、図６に示す仕様にページ管理用テーブル６００は規定されている。読み取り・書き込みビット６０１はページのアクセス権（読み取り・書き込み又は読み取り専用）を表し、アクセス権が読み取り専用に設定されているページに対して書き込み処理を行った場合、例外が発生する。本システムでは、未複製のページのアクセス権を読み取り・書き込みに設定し、複製済みページのアクセス権を読み取り専用に設定することで、複製元ページに対する書き換え処理の検知を実現する。
４０６は確認部であり、ページ書き換え監視部４０５によって書き換えが検知された揮発メモリ２０２のページの状態を確認する。書き換えられた結果、揮発メモリ２０２の複製元ページと、不揮発メモリ２０３の複製ページとの間で差異が発生した場合、管理テーブル更新部４０７に、整合性を保つためにページ保存先管理テーブルを更新するよう依頼する。
４０７は管理テーブル更新部であり、揮発メモリ２０２の複製元ページと、不揮発メモリ２０３の複製ページとの間の整合性を保つためにページ保存先管理テーブルが保持する対象ページの情報を更新する。
【００１９】
ここで、まず図３を参照して、既存のスワップアウトを説明する。図３は、既存のスワップアウトの流れを示すフローチャートである。この処理は、定期的、又は揮発メモリ２０２の残容量が閾値以下に低下した場合に、スワップアウト命令が発行されることにより開始される。
ステップＳ３００で、スワップアウトにおける書き出し対象となるページが存在するか否かを確認する。存在する場合、ステップＳ３０１に進み、存在しない場合、本処理を終了する。
ステップＳ３０１で、揮発メモリから不揮発メモリに退避させるページを選択する。スワップアウト対象として選択されるページは、ＬＲＵ（Ｌｅａｓｔ Ｒｅｃｅｎｔｌｙ Ｕｓｅｄ）アルゴリズムによって決定される。本アルゴリズムによって、参照される頻度が最も低かったページが選択される。
ステップＳ３０２で、不揮発メモリのスワップ領域にページを書き出す分の空きがあるか否かを確認する。空きがある場合、ステップＳ３０３に進み、空きがない場合、本処理を終了する。
ステップＳ３０３で、退避先となるスワップ領域を選択する。
ステップＳ３０４で、ステップＳ３０３において選択したスワップ領域に、ステップＳ３０１において選択したページを書き込む。
ステップＳ３０５で、ページ保存先管理テーブルが保持する選択したページの保存先を、ステップＳ３０４において書き込みを終えたスワップ領域に変更する。また、ステップＳ３０６で、揮発メモリに存在する選択したページを削除して揮発メモリを開放することにより、スワップアウトが完了する。
【００２０】
既存のスワップアウトでは、スワップアウト命令の発行後に、ステップＳ３０３で、低速な不揮発メモリ２０３への書き込みを行う。そのため、例えばスワップアウトが重複する場合、不揮発メモリ２０３への書き込み速度がボトルネックとなり、全体の処理速度が低下してしまう。
【００２１】
次に、本実施形態に係る情報処理装置４００による処理を説明する。
図７は、本実施形態に係る情報処理装置４００が実行するページの複製処理の流れを示すフローチャートである。この処理は、複製トリガー生成部４０２によってトリガーが発行されることにより開始される。複製トリガー生成部４０２によるトリガーの発行は、ＣＰＵリソースに所定の空きがある場合や一定周期等、利用システムに適したタイミングで実行される。
ステップＳ７００で、ＣＰＵ２０１は、揮発メモリ２０２に複製する必要があるページが存在するか否かを確認する。存在する場合、ステップＳ７０１に進み、存在しない場合、本処理を終了する。複製する必要があるページとは、スワップアウト対象で、かつ複製が行われていないページを指す。
ステップＳ７０１で、ＣＰＵ２０１は、複製するページを選択する。スワップアウトされる可能性が高いページを優先して複製するため、スワップアウト時にページを選択する際に用いられるアルゴリズムを利用する。
【００２２】
ステップＳ７０２で、ＣＰＵ２０１は、不揮発メモリ２０３のスワップ領域にページを書き出す分の空きがあるか否かを確認する。空きがある場合、ステップＳ７０３に進み、空きがない場合、本処理を終了する。なお、ここでは、複製トリガー生成部４０２によるトリガーの発行後に、不揮発メモリ２０３のスワップ領域に空きがあるか否かを確認する例を説明したが、不揮発メモリ２０３のスワップ領域に空きがあることを複製トリガー生成部４０２によるトリガーの発行条件とする形態でもよい。
ステップＳ７０３で、ＣＰＵ２０１は、複製先となるスワップ領域として、例えば最初に見つかったスワップ領域を選択する。
ステップＳ７０４で、ＣＰＵ２０１は、ステップＳ７０３において選択したスワップ領域に、ステップＳ７０１において選択したページを複製する。また、ステップＳ７０５で、ＣＰＵ２０１は、ページ保存先管理テーブルを更新する。すなわち、ページ保存先管理テーブルの対応するページの複製ページ保存先に、複製先の不揮発メモリ２０３のインデクス番号を追加する。これにより、ページ保存先管理テーブルが保持する当該ページの状態は、揮発メモリ２０２及び不揮発メモリ２０３の両方に保持されている状態となる。
【００２３】
図８は、本実施形態に係る情報処理装置４００が実行するスワップアウトの流れを示すフローチャートである。この処理は、既存のスワップアウトと同様に、定期的、又は揮発メモリ２０２の残容量が閾値以下に低下した場合に、スワップアウト命令が発行されることにより開始される。
ステップＳ８００、Ｓ８０１はそれぞれ図３のステップＳ３００、Ｓ３０１と同様であり、その説明を省略する。
ステップＳ８０２で、ＣＰＵ２０１は、ステップＳ８０１において選択したページが既に複製されているか否かを確認する。未複製の場合、ステップＳ８０５に進み、図３に示した既存のスワップアウトのステップＳ３０２〜Ｓ３０６と同じ処理を行う。複製済みの場合、ステップＳ８０３に進む。
ステップＳ８０３で、ＣＰＵ２０１は、ページ保存先管理テーブルを更新する。すなわち、ページ保存先管理テーブルが保持するページの状態を、揮発メモリ２０２及び不揮発メモリ２０３の両方に保持されている状態だったものを、不揮発メモリ２０３のみに保持されている状態に更新する。また、ステップＳ８０４で、揮発メモリ２０２に存在する選択したページ、すなわち複製済みページを削除して揮発メモリ２０２を開放することにより、スワップアウトが完了する。
【００２４】
以上のように、揮発メモリ２０２から不揮発メモリ２０３へのページの複製処理を事前に行うので、スワップアウト命令の発行後に低速な不揮発メモリ２０３への書き込みを行う必要がなくなる。これにより、例えばスワップアウトが重複する場合にも全体の処理速度が低下するのを防ぐことができ、余分にメモリを備えることなく、揮発メモリから不揮発メモリへの書き出し処理を高速化させることができる。
【００２５】
ところで、揮発メモリ２０２のページを不揮発メモリ２０３に複製した状態で、揮発メモリ２０２の複製元ページに対して書き換え処理が発生することもありえる。この場合、複製元ページと複製ページとの間で差異が発生しているおそれがあるため、その整合性を保つための処理を行う必要がある。そこで、ページ書き込み監視部４０５によって複製元ページに対する書き替え処理があるか否かを監視し、確認部４０６によって複製元ページと複製ページとの間で差異が発生しているか否かを確認する。
【００２６】
図９は、揮発メモリ２０２の複製元ページに対して書き換え処理が発生したときの処理の流れを示すフローチャートである。
ステップＳ９０１で、ＣＰＵ２０１は、揮発メモリ２０２の複製元ページに対する書き換えを確認後、複製元ページと複製先ページとの間で差異が発生しているか否かを確認する。差異が発生している場合、ステップＳ９０２に進み、ＣＰＵ２０１は、複製先ページを削除し、ページ保存先管理テーブルの複製ページ保存先の情報を削除することでページの整合性を保つ。なお、書き込みが確認されたが、複製元ページと複製先ページとの間で差異が発生していない場合は、ページの整合性が維持されているため、本処理を終了する。
【００２７】
（第２の実施形態）
第２の実施形態として、ハイバネーションを説明する。以下では、第１の実施形態との相違点を中心に説明し、第１の実施形態と同様の構成や処理については説明を省略する。第２の実施形態でも、第１の実施形態の図７で説明したページの複製処理、及び図９で説明した整合性を保つための処理が実施される。
【００２８】
第２の実施形態に係る情報処理装置の機能構成は第１の実施形態と同様であり、同様の構成要素には同一の符号を付し、第１の実施形態に係る情報処理装置との相違点だけを説明する。
複製ページ選択部４０３は、揮発メモリ２０２から不揮発メモリ２０３に複製するページを選択する。ハイバネーションでは、揮発メモリ２０２の全てのページを不揮発メモリ２０３のスワップ領域に書き出す必要がある。本実施形態では、揮発メモリ２０２に常に存在し、かつ変更が加えられないページ（例えばカーネルの定数領域）を優先して複製するページとして選択する。これ以外のページ選択については、第１の実施形態の複製ページ選択部４０３に準じる。
【００２９】
ここで、図１０を参照して、ハイバネーション移行処理を説明する。図１０は、ハイバネーション移行処理の流れを示すフローチャートである。この処理は、ユーザ又はユーザアプリケーションが仮想ファイルシステムへアクセスすることで開始される。
ステップＳ１０００で、ＣＰＵ２０１は、プロセススケジューラの停止を行う。
ステップＳ１００１で、ＣＰＵ２０１は、各デバイスを停止させる。
ステップＳ１００２で、ＣＰＵ２０１は、揮発メモリ２０２から不揮発メモリ２０３への書き出しを行う。
ステップＳ１００３で、ＣＰＵ２０１は、ＣＰＵレジスタの退避を行う。
【００３０】
ステップＳ１００２では、揮発メモリ２０２のデータ（プログラムを含む）全てを、順次不揮発メモリ２０３に書き出す。
図１１に、ステップＳ１００２における既存の不揮発メモリへの書き出し処理の流れを示す。
ステップＳ１１００で、書き出し対象となるページが存在するか否かを確認する。存在する場合、ステップＳ１００１に進み、存在しない場合、本処理を終了する。揮発メモリの浅い番地から順番にページを選択していき、書き出し対象となるページが存在する限り、ステップＳ１１０１以降の処理を繰り返し、揮発メモリの全てのページの書き出しが終わったときに処理を終える。
ステップＳ１１０１で、揮発メモリから不揮発メモリに退避させるページを選択する。
ステップＳ１１０２で、不揮発メモリのスワップ領域にページを書き出す分の空きがあるか否かを確認する。空きがある場合、ステップＳ１１０３に進み、空きがない場合、本処理を終了する。
ステップＳ１１０３〜Ｓ１１０６はそれぞれ図３のステップＳ３０３〜Ｓ３０６と同様であり、その説明を省略する。
【００３１】
それに対して、図１２に、ステップＳ１００２において本実施形態に係る情報処理装置４００が実行する不揮発メモリ２０３への書き出し処理の流れを示す。
ステップＳ１２００、Ｓ１２０１はそれぞれ図１１のステップＳ１１００、Ｓ１１０１と同様であり、その説明を省略する。
ステップＳ１２０２で、ＣＰＵ２０１は、ステップＳ１２０１において選択したページが既に複製されているか否かを確認する。未複製の場合、ステップＳ１２０５に進み、図１１に示した既存の書き出し処理のステップＳ１１０２〜Ｓ１１０６と同じ処理を行う。複製済みの場合、ステップＳ１２０３に進む。
ステップＳ１２０３で、ＣＰＵ２０１は、ページ保存先管理テーブルを更新する。すなわち、ページ保存先管理テーブルが保持するページの状態を、揮発メモリ２０２及び不揮発メモリ２０３の両方に保持されている状態だったものを、不揮発メモリ２０３のみに保持されている状態に更新する。また、ステップＳ１２０４で、揮発メモリ２０２に存在する選択したページ、すなわち複製済みページを削除して揮発メモリ２０２を開放することにより、不揮発メモリ２０３への書き出しが完了する。
【００３２】
以上のように、揮発メモリ２０２から不揮発メモリ２０３へのページの複製処理を事前に行うので、ハイバネーション時に低速な不揮発メモリ２０３への書き込みを行う必要がなくなる。これにより、余分にメモリを備えることなく、揮発メモリから不揮発メモリへの書き出し処理を高速化させることができる。
【００３３】
なお、書き換えが発生しない（すなわち、内容が変更されない）ページを優先し、次に書き換え頻度が少ないページを優先して選択して複製することで、ハイバネーション移行処理時に揮発メモリ２０２から不揮発メモリ２０３に書き出すときに、書き出すページが複製済みである確率を高めることができる。この結果、ハイバネーション移行処理内での書き出し処理にかかる処理時間を短縮化させることが可能である。
【００３４】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。すなわち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。したがって、各種記憶媒体等にはコンピュータが読み取り可能な状態でプログラムを保持しておく必要がある。
【符号の説明】
【００３５】
１００：情報処理装置、１０１：データ保存先管理テーブル格納部、１０２：複製トリガー生成部、１０３：複製データ選択部、１０４：データ複製部、１０５：データ書き換え監視部、１０６：確認部、１０７：管理テーブル更新部、２０１：ＣＰＵ、２０２：揮発メモリ、２０３：不揮発メモリ
【図１】
2014174752.tif 000003
【図２】
2014174752.tif 000004
【図３】
2014174752.tif 000005
【図４】
2014174752.tif 000006
【図５】
2014174752.tif 000007
【図６】
2014174752.tif 000008
【図７】
2014174752.tif 000009
【図８】
2014174752.tif 000010
【図９】
2014174752.tif 000011
【図１０】
2014174752.tif 000012
【図１１】
2014174752.tif 000013
【図１２】
2014174752.tif 000014