(57)【特許請求の範囲】
【請求項１】
ハイバネーションから復帰するための方法であって、
ハイバネーションプロセスにおいて、メインメモリから外部記憶部に複数のページを書き込んで、ハイバネーションイメージファイルを生成するステップと、
復帰プロセスにおいて、前記ハイバネーションイメージファイルに基づいて、前記外部記憶部から前記メインメモリの連続ページ領域に前記ページを順次書き戻すステップと、を含み、
前記復帰プロセスは前記ハイバネーションプロセスよりも後に実行され、
前記ハイバネーションイメージファイルを生成する前記ステップは、
前記ハイバネーションイメージファイルのサイズを事前計算するステップと、
前記ハイバネーションイメージファイルに属し、かつ、前記連続ページ領域内にあるページをマーキングしてマークページとするステップであって、前記ハイバネーションイメージファイルに属し、かつ、前記連続ページ領域外にあるページは非マークページであり、前記連続ページ領域は前記メインメモリのキャッシュ領域の最初のページから始まって前記ハイバネーションイメージファイルの前記サイズの分の領域であるステップと、
前記非マークページを１つずつ前記外部記憶部に書き込み、前記マークページをスキップするステップと、
前記マークページを１つずつ前記外部記憶部に書き込むステップと、をさらに含む、
方法。
【請求項２】
外部記憶部と、
メインメモリと、
ハイバネーションプロセスにおいて、前記メインメモリから前記外部記憶部に複数のページを書き込んで、ハイバネーションイメージファイルを生成するイメージ生成回路と、
復帰プロセスにおいて、前記ハイバネーションイメージファイルに基づいて、前記外部記憶部から前記メインメモリの連続ページ領域に前記ページを順次書き戻すページ移動回路と、を含み、
前記復帰プロセスは前記ハイバネーションプロセスよりも後に実行され、
前記イメージ生成回路は、
前記ハイバネーションイメージファイルのサイズを事前計算することと、
前記ハイバネーションイメージファイルに属し、かつ、前記連続ページ領域内にあるページをマーキングしてマークページとすることであって、前記ハイバネーションイメージファイルに属し、かつ、前記連続ページ領域外にあるページは非マークページであり、前記連続ページ領域は前記メインメモリのキャッシュ領域の最初のページから始まって前記ハイバネーションイメージファイルの前記サイズの分の領域であることと、
前記非マークページを１つずつ前記外部記憶部に書き込み、前記マークページをスキップすることと、
前記マークページを１つずつ前記外部記憶部に書き込むことと、を行うようにさらに構成される、
電子機器。
【請求項３】
ハイバネーションから復帰するための方法であって、
ハイバネーションプロセスにおいて、第１の処理部又は第２の処理部によって、メインメモリから外部記憶部に複数のページを書き込んで、ハイバネーションイメージファイルを生成するステップと、
復帰プロセスにおいて、前記第１の処理部によってコアローディング及び初期化プロセスを実行し、並列的に、前記第２の処理部によって前記ハイバネーションイメージファイルの前記ページを前記メインメモリに移動するステップと、を含み、
前記復帰プロセスは前記ハイバネーションプロセスよりも後に実行され、
前記ハイバネーションイメージファイルを生成する前記ステップは、
前記ハイバネーションイメージファイルのサイズを事前計算するステップと、
前記ハイバネーションイメージファイルに属し、かつ、連続ページ領域内にあるページをマーキングしてマークページとするステップであって、前記ハイバネーションイメージファイルに属し、かつ、前記連続ページ領域外にあるページは非マークページであり、前記連続ページ領域は前記メインメモリのキャッシュ領域の最初のページから始まって前記ハイバネーションイメージファイルの前記サイズの分の領域であるステップと、
前記非マークページを１つずつ前記外部記憶部に書き込み、前記マークページをスキップするステップと、
前記マークページを前記外部記憶部に書き込むステップと、をさらに含む、
方法。
【請求項４】
一時記憶ページが、前記復帰プロセスにおいて発生するページコンフリクトを解決するために割り当てられ、
前記マークページを前記外部記憶部に書き込む前記ステップは、
前記マークページを１つずつ前記外部記憶部に書き込むステップを含む、
請求項３に記載の方法。
【請求項５】
前記ハイバネーションイメージファイルを生成する前記ステップが、
前記メインメモリのキャッシュ領域の最初のページから前記マークページまでのページ数であるページカウントを記録するステップをさらに含み、
前記マークページを前記外部記憶部に書き込む前記ステップが、
前記マークページの前記ページカウントに到達した場合に、前記マークページを前記外部記憶部に書き込むステップを含む、
請求項３に記載の方法。
【請求項６】
前記ハイバネーションイメージファイルを生成する前記ステップが、
前記ハイバネーションイメージファイルを圧縮して、圧縮されたハイバネーションイメージファイルを生成するステップと、
前記ハイバネーションイメージファイルの前記サイズを前記圧縮されたハイバネーションイメージファイルに記録するステップと、をさらに含む、
請求項３に記載の方法。
【請求項７】
外部記憶部と、
メインメモリと、
第１の処理部と、
第２の処理部と、と含み、
ハイバネーションプロセスにおいて、前記第１の処理部又は前記第２の処理部は、前記メインメモリから前記外部記憶部に複数のページを書き込んで、ハイバネーションイメージファイルを生成し、復帰プロセスにおいて、前記第１の処理部はコアローディング及び初期化プロセスを実行し、並列的に、前記第２の処理部は前記ハイバネーションイメージファイルの前記ページを前記メインメモリへと移動し、
前記復帰プロセスは前記ハイバネーションプロセスよりも後に実行され、
前記第１の処理部は、前記ハイバネーションイメージファイルのサイズを事前計算し、前記ハイバネーションイメージファイルに属し、かつ、連続ページ領域内にあるページをマーキングしてマークページとし、
前記ハイバネーションイメージファイルに属し、かつ、前記連続ページ領域外にあるページは非マークページであり、前記連続ページ領域は前記メインメモリのキャッシュ領域の最初のページから始まって前記ハイバネーションイメージファイルの前記サイズの分の領域であり、
前記第１の処理部は、前記非マークページを１つずつ前記外部記憶部に書き込み、前記マークページをスキップし、その後、前記マークページを前記外部記憶部に書き込む、
電子機器。
【請求項８】
前記第１の処理部は、前記復帰プロセスにおいて発生するページコンフリクトを解決するために一時記憶ページを割り当て、
前記第１の処理部は、前記マークページを１つずつ前記外部記憶部に書き込む、
請求項７に記載の電子機器。
【請求項９】
前記第１の処理部は、前記メインメモリのキャッシュ領域の最初のページから前記マークページまでのページ数であるページカウントを記録し、
前記マークページの前記ページカウントが前記キャッシュ領域の前記最初のページに到達した場合に、前記マークページは前記外部記憶部に書き込まれる、
請求項７に記載の電子機器。
【請求項１０】
前記第１の処理部は、前記ハイバネーションイメージファイルを圧縮して、圧縮されたハイバネーションイメージファイルを生成し、前記ハイバネーションイメージファイルの前記サイズを前記圧縮されたハイバネーションイメージファイルに記録する、
請求項７に記載の電子機器。
【請求項１１】
外部記憶部と、
メインメモリと、
ハイバネーションプロセスにおいて、複数のページを前記外部記憶部に書き込んで、ハイバネーションイメージファイルを生成し、復帰プロセスにおいて、前記ハイバネーションイメージファイルに基づいて、前記ページを前記外部記憶部から前記メインメモリの連続ページ領域に順次書き戻す中央処理装置（ＣＰＵ）と、を含み、
前記復帰プロセスは前記ハイバネーションプロセスよりも後に実行され、
前記ＣＰＵは、
前記ハイバネーションイメージファイルのサイズを事前計算することと、
前記ハイバネーションイメージファイルに属し、かつ、前記連続ページ領域内にあるページをマーキングしてマークページとすることであって、前記ハイバネーションイメージファイルに属し、かつ、前記連続ページ領域外にあるページは非マークページであり、前記連続ページ領域は前記メインメモリのキャッシュ領域の最初のページから始まって前記ハイバネーションイメージファイルの前記サイズの分の領域であることと、
前記非マークページを１つずつ前記外部記憶部に書き込み、前記マークページをスキップすることと、
前記マークページを１つずつ前記外部記憶部に書き込むことと、を行うようにさらに構成される、
電子機器。
【請求項１２】
外部記憶部と、
メインメモリと、
ハイバネーションプロセスにおいて、前記メインメモリから前記外部記憶部に複数のページを書き込んで、ハイバネーションイメージファイルを生成し、前記ページに関連する第１のページテーブルを第２のページテーブルに更新し、復帰プロセスにおいて、前記ハイバネーションイメージファイルの先頭又は前記ページのページ情報の先頭に基づいて、前記ページを、前記外部記憶部から、前記第２のページテーブルに記録された前記メインメモリ内の前記ページの位置に書き戻す中央処理装置（ＣＰＵ）と、を含み、
前記復帰プロセスは前記ハイバネーションプロセスよりも後に実行され、
前記ＣＰＵは、
前記ハイバネーションイメージファイルのサイズを事前計算することと、
前記ハイバネーションイメージファイルに属し、かつ、連続ページ領域内にあるページをマーキングしてマークページとすることであって、前記ハイバネーションイメージファイルに属し、かつ、前記連続ページ領域外にあるページは非マークページであり、前記連続ページ領域は前記メインメモリのキャッシュ領域の最初のページから始まって前記ハイバネーションイメージファイルの前記サイズの分の領域であることと、
前記非マークページを１つずつ前記外部記憶部に書き込み、前記マークページをスキップすることと、
前記マークページを１つずつ前記外部記憶部に書き込むことと、を行うようにさらに構成される、
電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示はハイバネーション（hibernation）から復帰（resume）するための電子機器及び方法に関する。
【背景技術】
【０００２】
生活のペースの速まりとともに、電子機器の高速ブート（fast  boot）がより重要になっている。ほとんどの高性能機器はスタンバイモード（standby  mode）として設定されるシャットダウン（shutdown）ボタンを有しているが、このスタンバイモードは真のシャットダウンモードではない。スタンバイモードは待機時間を効果的に短縮させることができるが、電子システム全体は依然として継続的に電力を消費し、このような技術は「電力を必要とする高速ブート（power-hungry  fast  boot）」に属する。スタンバイモードで消費される電力は全世界の二酸化炭素排出を１％増加させている。欧州連合は、高性能の家庭用電化製品のシャットダウン時の電力消費は０．１ワット未満でなければならないと決定した。
【０００３】
「ブートレコードリカバリ（Boot  record  recovery）」と題する特許文献１は、ブートレコードリカバリを実行するための方法、コンピューターシステム、及び機器を開示している。ブートレコードがフリー（free）であるとわかっている場合、ブートレコードのスナップショットコピー（snapshot  copy）が不揮発性メモリ（non-volatile  memory）に記憶される。ブートアップ（boot-up）時には、カレントブートレコードと対応するスナップショットとが比較される。それら２つの間で関連のある差異（relevant  differences）が存在する場合（ブートレコードが改変されたということを意味する）には、メッセージがユーザに伝えられる。ユーザは改変されたブートレコードからブートする（任意にスナップショットを更新する）ことを選んでもよいし、記憶されたスナップショットからブートする（任意にブートレコードを復元（restore）させる）ことを選んでもよい。
【０００４】
以上より、ハイバネーション、パワーオフ、又はシャットダウンモードにおける高速ブート法を開発し、電力を消費するスタンバイ／ウェイク（standby/wake）モードに取って代えさせることが必要である。ハイバネーション／ウェイクアップ（hibernation/wake-up）モードは実行可能な解決方法である。しかしながら、ハイバネーションから復帰するための従来の方法は、ブート時にページ（page）をページバッファ（page  buffer）に１つずつ書き込み、パージバッファからメインメモリ（main  memory）のターゲットページ（target  page）にページを１つずつコピーしており、このプロセスには非常に時間がかかるため、現在の産業界は新たな高速ウェイクアップ／ブート法を必要としている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許第６，７９２，５５６号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本開示はハイバネーションから復帰するための電子機器及び方法に関する。
【課題を解決するための手段】
【０００７】
一実施形態によれば、ハイバネーションから復帰するための方法が提供される。ハイバネーションから復帰するための方法は、ハイバネーションプロセス（hibernation  process）において、メインメモリから外部記憶部（external  storage）に複数のページを書き込んでハイバネーションイメージファイル（hibernation  image  file）を生成するステップと、復帰プロセス（resume  process）において、前記ハイバネーションイメージファイルに基づいて、前記外部記憶部から前記メインメモリの連続ページ領域（continuous  page  range）に前記ページを順次書き戻すステップと、を含む。前記復帰プロセスは前記ハイバネーションプロセスよりも後に実行される。
【０００８】
他の一実施形態によれば、電子機器が提供される。電子機器は外部記憶部と、メインメモリと、イメージ生成回路（image  generating  circuit）と、ページ移動回路（page  moving  circuit）と、を含む。前記イメージ生成回路は、ハイバネーションプロセスにおいて、前記メインメモリから前記外部記憶部に複数のページを書き込んでハイバネーションイメージファイルを生成する。前記ページ移動回路は、復帰プロセスにおいて、前記ハイバネーションイメージファイルに基づいて、前記外部記憶部から前記メインメモリの連続ページ領域に前記ページを順次書き戻す。前記復帰プロセスは前記ハイバネーションプロセスよりも後に実行される。
【０００９】
別の一実施形態によれば、ハイバネーションから復帰するための方法が提供される。ハイバネーションから復帰するための方法は、ハイバネーションプロセスにおいて、メインメモリから外部記憶部に複数のページを書き込んでハイバネーションイメージファイルを生成し、前記ページに関連する第１のページテーブル（page  table）を第２のページテーブルに更新するステップと、復帰プロセスにおいて、前記ハイバネーションイメージファイルの先頭（head  of  the  hibernation  image  file）又は前記ページのページ情報の先頭（page  information  heads  for  the  pages）に基づいて、前記外部記憶部から、前記第２のページテーブルとマッチする前記メインメモリ内の前記ページの位置に前記ページを書き戻すステップと、を含む。前記復帰プロセスは前記ハイバネーションプロセスよりも後に実行される。
【００１０】
別の一の実施形態によれば、電子機器が提供される。電子機器は外部記憶部と、メインメモリと、イメージ生成回路と、ページ移動回路と、を含む。前記イメージ生成回路は、ハイバネーションプロセスにおいて、前記メインメモリから前記外部記憶部に複数のページを書き込んでハイバネーションイメージファイルを生成し、前記ページに関連する第１のページテーブルを第２のページテーブルに更新する。前記ページ移動回路は、復帰プロセスにおいて、前記ハイバネーションイメージファイルの先頭又は前記ページのページ情報の先頭に基づいて、前記外部記憶部から、第２のページテーブルに記録された前記メインメモリ内の前記ページの位置に前記ページを書き戻す。前記復帰プロセスは前記ハイバネーションプロセスよりも後に実行される。
【００１１】
別の一実施形態によると、ハイバネーションから復帰するための方法が提供される。ハイバネーションから復帰するための方法は、ハイバネーションプロセスにおいて、第１の処理部（processing  unit）又は第２の処理部によって、メインメモリから外部記憶部に複数のページを書き込んでハイバネーションイメージファイルを生成するステップと、復帰プロセスにおいて、第１の処理部によってコアローディング及び初期化プロセス（core  loading  and  initializing  process）を実行し、並列的に、第２の処理部によって前記ハイバネーションイメージファイルの前記ページを前記メインメモリに移動するステップと、を含む。前記復帰プロセスは前記ハイバネーションプロセスよりも後に実行される。
【００１２】
別の一実施形態によると、電子機器が提供される。電子機器は外部記憶部と、メインメモリと、第１の処理部と、第２の処理部と、と含む。ハイバネーションプロセスにおいて、前記第１の処理部又は前記第２の処理部は、前記メインメモリから前記外部記憶部に複数のページを書き込んでハイバネーションイメージファイルを生成する。復帰プロセスにおいて、前記第１の処理部はコアローディング及び初期化プロセスを実行し、並列して、前記第２の処理部は前記ハイバネーションイメージファイルの前記ページを前記メインメモリに移動する。前記復帰プロセスは前記ハイバネーションプロセスよりも後に実行される。
【００１３】
別の一実施形態によると、電子機器が提供される。電子機器は外部記憶部と、メインメモリと、中央処理部（ＣＰＵ）と、を備える。前記ＣＰＵは、ハイバネーションプロセスにおいて、複数のページを前記外部記憶部に書き込んでハイバネーションイメージファイルを生成し、復帰プロセスにおいて、前記ハイバネーションイメージファイルに基づいて、前記外部記憶部から前記メインメモリの連続ページ領域に前記ページを順次書き戻す。前記復帰プロセスは前記ハイバネーションプロセスよりも後に実行される。
【００１４】
別の一実施形態によれば、電子機器が提供される。電子機器は外部記憶部と、メインメモリと、中央処理部（ＣＰＵ）と、を備える。前記ＣＰＵは、ハイバネーションプロセスにおいて、前記メインメモリから前記外部記憶部に複数のページを書き込んでハイバネーションイメージファイルを形成し、前記ページに関連する第１のページテーブルを第２のページテーブルに更新し、復帰プロセスにおいて、前記ハイバネーションイメージファイルの先頭又は前記ページのページ情報の先頭に基づいて、前記外部記憶部から、前記第２のページテーブルに記録された前記メインメモリ内の前記ページの位置に前記ページを書き戻す。前記復帰プロセスは前記ハイバネーションプロセスよりも後に実行される。
【図面の簡単な説明】
【００１５】
【図１】第１の実施形態に係る電子機器のブロック図である。
【図２】第１の実施形態に係るハイバネーションプロセスにおけるメインメモリ及び外部記憶部を図示した概略図である。
【図３】第１の実施形態に係るシャットダウンのフローチャートである。
【図４】復帰プロセスにおけるメインメモリ及び外部記憶部を図示した模式図である。
【図５】第１の実施形態に係るブートのフローチャートである。
【図６】第２の実施形態に係るメインメモリ及び外部記憶部を図示した模式図である。
【図７】第２の実施形態に係るシャットダウンのフローチャートである。
【図８】第２の実施形態に係るブートのフローチャートである。
【図９】第３の実施形態に係る電子機器のブロック図である。
【図１０Ａ】第３の実施形態に係るブートのフローチャートである。
【図１０Ｂ】第３の実施形態に係るブートのフローチャートである。
【図１１】第４の実施形態に係るハイバネーションプロセスにおけるメインメモリ及び外部記憶部を図示した模式図である。
【図１２】第４の実施形態に係る復帰プロセスにおけるメインメモリ及び外部記憶部を図示した模式図である。
【図１３】第４の実施形態に係るシャットダウンのフローチャートである。
【図１４】第５の実施形態に係るハイバネーションプロセスにおけるメインメモリ及び外部記憶部を図示した模式図である。
【図１５】第５の実施形態に係る復帰プロセスにおけるメインメモリ及び外部記憶部を図示した模式図である。
【図１６】第５の実施形態に係るシャットダウンのフローチャートである。
【図１７】第６の実施形態に係るブートのフローチャートである。
【図１８】第７の実施形態に係るブートのフローチャートである。
【図１９】ステップ６０３の詳細なフローチャートである。
【発明を実施するための形態】
【００１６】
以下の詳細な説明においては、開示された実施形態の完全な理解のために、説明を目的として特定の細目が多く記されている。しかしながら、これらの特定の細目がなくても、１以上の実施形態を実施することができることは明白であろう。他の例では、公知の構成や機器が図面を簡略化するために模式的に図示されている。
【００１７】
［第１の実施形態］図１は、第１の実施形態に係る電子機器１のブロック図である。図１を参照すると、電子機器１は外部記憶部１１、メインメモリ１２、イメージ生成回路１３、及びページ移動回路１６を含む。電子機器１は、例えば携帯電話（mobile  phone）、タブレット型コンピュータ（tablet  computer）、ノート型コンピュータ（notebook  computer）、スマートテレビ（smart  television）、車載型コンピュータ（vehicle  computer）、又は他の携帯機器（handheld  apparatus）であり、外部記憶部１１は、例えばハードディスクドライブ（hard  disk  drive）、フラッシュメモリ（flash  memory）、又は他の不揮発性メモリ（non-volatile  memory）である。イメージ生成回路１３は、例えば中央処理装置（ＣＰＵ）によって実装され、ページ移動回路１６は、例えばＣＰＵ、デジタル信号プロセッサ（ＤＳＰ）、又はダイレクトメモリアクセス（ＤＭＡ）コントローラによって実装される。一実施形態においては、イメージ生成回路１３とページ移動回路１６は同一の回路（the  same  circuitry）、例えば同一のＣＰＵなどである。
【００１８】
ハイバネーションプロセスにおいて、イメージ生成回路１３はメインメモリ１２から外部記憶部１１にページを書き込んでハイバネーションイメージファイルＳＩを生成する。ハイバネーションプロセスにおいて、イメージ生成回路１３はメインメモリ１２の連続ページ領域ＲＡにおけるハイバネーションイメージファイルのページの相対位置に基づいて、第１のページテーブルを第２のページテーブルに更新する。第１のページテーブルは元々のページテーブル（original  page  table）であり、第２のページテーブルは新しいページテーブルである。ハイバネーションプロセスにおいて、イメージ生成回路１３は復元情報（recovery  information）をハイバネーションファイルの先頭（hibernation  file  head）に記憶する。第１のテーブルはページアドレスに関連する。一実施形態においては、第１のページテーブルは、ページが連続ページ領域ＲＡに移動される前のページの位置を記録するために使われ、第２のページテーブルはページが連続ページ領域ＲＡに移動される前のページの位置を記録するために使われる。ハイバネーションプロセスにおいて、イメージ生成回路１３はページを外部記憶部１１に書き込んでハイバネーションイメージファイルＳＩを生成する。復帰プロセスにおいて、ページ移動回路１６は、ハイバネーションイメージファイルＳＩに基づいて、ページを外部記憶部１１からメインメモリ１２の連続ページ領域ＲＡへと順次書き戻す。復帰プロセスはハイバネーションプロセスよりも後で実行される。さらに、復帰プロセスにおいて、ページ移動回路１６はハイバネーションイメージファイルＳＩの先頭（head  of  the  hibernation  image  file  SI）、又はページのページ情報の先頭（page  information  heads  for  the  pages）に基づいて、ページを外部記憶部１１からメインメモリ１２の連続ページ領域ＲＡへと順次書き戻す。連続ページ領域ＲＡに対応するページアドレスは第２のページテーブルによって記録される。
【００１９】
ページが外部記憶部１１からメインメモリ１２に書き戻される場所であるターゲットアドレス（target  address）は、ハイバネーションイメージファイルＳＩの先頭に記録される。ページ移動回路１６はハイバネーションイメージファイルＳＩを一回のシーケンシャル伝送（one-time  sequential  transmission）によって伝送する。ハイバネーションイメージファイルＳＩのページは、ページ間に他のデータが含まれないように、連続的に外部記憶部１１に配置される。ハイバネーションイメージファイルＳＩのページがメインメモリ１２に書き戻された後、メインメモリにおける各ページの位置は、第２のページテーブルに記録された位置と一致する。メインメモリ１２の連続ページ領域ＲＡは、例えばメインメモリ１２のキャッシュ領域（cache  region）１２ａのページ領域である。一実施形態においては、ページ移動回路１６はハイバネーションイメージファイルＳＩを非シーケンシャル伝送（non-sequential  transmission）によって伝送する。ページ移動回路１６は、ハイバネーションイメージファイルＳＩの先頭又はページのページ情報の先頭に基づいて、ページを外部記憶部１１からメインメモリ１２に１つずつ書き戻す。メインメモリ１２における各ページの位置は第２のページテーブルに記録された位置に一致する。ウェイクアップ方法は電子機器１に適用可能であり、下記のブートプロセス及びシャットダウンプロセスを含む。
【００２０】
図２は、第１の実施形態に係るハイバネーションプロセスにおけるメインメモリと外部記憶部を示す模式図である。図３は、第１の実施形態に係るシャットダウンのフローチャートである。図１から図３を参照してほしい。まず、ステップ３１に示すように、ＣＰＵ（イメージ生成回路１３を実現するＣＰＵであってもよいし、ページ移動回路１６を実現するＣＰＵであってもよいし、機器１内の他のＣＰＵであってもよい）は高速ブートモードを実行するか否かを判断する。高速ブートモードが実行されるべき場合にはステップ３２が実行される。ステップ３２に示すように、電子機器１はハイバネーションプロセスに入る。次に、ステップ３３に示すように、ハイバネーションプロセスにおいて、イメージ生成回路１３はページＰＡ−ＰＫを連続ページ領域ＲＡに集めてシーケンシャルページアレイ（sequential  page  array）ＳＰＡを形成する。例えば、ページＰＡ−ＰＫはユーザ空間ページ（user  space  pages）である。次に、ステップ３４に示すように、ハイバネーションプロセスにおいて、イメージ生成回路１３は、シーケンシャルページアレイＳＰＡに基づいて、第１のページテーブルを第２のページテーブルに更新する。なお、ページをページＰＡ−ＰＫに集めるため、ページの物理的位置は変えられ、それに応じて第１のページテーブルは第２のページテーブルに更新される。
【００２１】
次に、ステップ３５に示すように、イメージ生成回路１３はシーケンシャルページアレイＳＰＡに基づいてハイバネーションイメージファイルＳＩを生成する。即ち、イメージ生成回路１３は、シーケンシャルＩ／Ｏ（sequential  I/O）によってメインメモリ１２のページＰＡ−ＰＫを外部記憶部１１に順次書き込んで、ハイバネーションイメージファイルＳＩを生成する。ページＰＡ−ＰＫは、先頭／上端への集中（concentration  at  head/top）、末端／終端への集中（concentration  at  tail/end）、又は特定領域への集中（specific-region  concentration）など、異なる集中方法を用いて集められてもよい。例えば、連続ページ領域ＲＡは、固定されていないメモリアドレス空間（non-fixed  memory  address  space）であり、先のハイバネーションプロセスにおいてページ移動（page  migration）が実行されることによって形成される。即ち、連続ページ領域ＲＡは、先のハイバネーションプロセスにおいて先のハイバネーションイメージファイルが記憶されるメインメモリ１２のメモリ位置（memory  position）であってもよい。一方、高速ブートモードが実行されるべきでない場合にはステップ３６が実行される。ステップ３６に示すように、ＣＰＵは一般的なシャットダウンプロセスを実行する。
【００２２】
図４は、復帰プロセスにおけるメインメモリ及び外部記憶部を示す模式図である。図５は、第１の実施形態に係るブートのフローチャートである。図１、図４及び図５を参照してほしい。まず、ステップ５１に示すように、ＣＰＵは高速ブートモードを実行するか否かを判断する。高速ブートモードが実行されるべき場合にはステップ５２が実行される。ステップ５２に示すように、電子機器１は復帰プロセスに入る。次に、ステップ５３に示すように、復帰プロセスにおいて、ページ移動回路１６は、ハイバネーションイメージファイルＳＩに基づいて、ページＰＡ−ＰＫを外部記憶部１１からメインメモリ１２の連続ページ領域ＲＡに順次書き戻す。一方、高速ブートモードが実行されるべきでない場合にはステップ５４が実行される。ステップ５４に示すように、ＣＰＵは一般的なブートプロセスを実行する。ユーザが高速ブートモードの実行を選択した場合には、ページバッファ（page  buffer）を用いることなく、直接、ページＰＡ−ＰＫがメインメモリ１２の連続ページ領域ＲＡに順次書き戻されてもよい。その結果として、ブート時間を短縮することができ、ブート速度を上げることができる。
【００２３】
［第２の実施形態］図６は、第２の実施形態に係るメインメモリ及び外部記憶部を示す模式図である。図７は、第２の実施形態に係るシャットダウンのフローチャートである。図１、図６、及び図７を参照してほしい。第２の実施形態と第１の実施形態の違いは、主に、第２の実施形態は連続ページ領域を確保（reserve）する点にある。まず、ステップ７１に示すように、ＣＰＵ（イメージ生成回路１３を実現するＣＰＵであってもよいし、ページ移動回路１６を実現するＣＰＵであってもよいし、機器１の他のＣＰＵであってもよい）は高速ブートモードを実行するか否かを判断する。高速ブートモードが実行されるべき場合にはステップ７２が実行される。ステップ７２に示すように、電子機器１はハイバネーションプロセスに入る。次に、ステップ７３に示すように、ハイバネーションプロセスにおいて、イメージ生成回路１３は、第１のページテーブルを第２のページテーブルに更新するために、ハイバネーションイメージファイルＳＩにおけるページＰＡ−ＰＫの順序に基づいて、連続ページ領域ＲＡにおけるページＰＡ−ＰＫの位置を決定する。次に、ステップ７４に示すように、イメージ生成回路１３は、シーケンシャルＩ／Ｏによってメインメモリ１２のページＰＡ−ＰＫを外部記憶部１１に順次書き込んで、ハイバネーションイメージファイルＳＩを生成する。一方で、高速ブートモードが実行されるべきでない場合にはステップ７５が実行される。ステップ７５に示すように、ＣＰＵは一般的なシャットダウンプロセスを実行する。
【００２４】
図８は、第２の実施形態に係るブートのフローチャートである。図１、図６、及び図８を参照してほしい。まず、ステップ８１に示すように、コア初期化プロセス（core  initialization  process）において、ＣＰＵは連続ページ領域ＲＡを確保する。連続ページ領域ＲＡは、例えばハイバネーションプロセスにおいて第２のページテーブルによって記録された位置であり、固定されたメモリアドレス空間（fixed  memory  address  space）である。次に、ステップ８２に示すように、ＣＰＵは高速ブートモードを実行するか否かを判断する。高速ブートモードが実行されるべき場合にはステップ８３が実行される。ステップ８３に示すように、電子機器１は復帰プロセスに入る。次に、ステップ８４に示すように、復帰プロセスにおいて、ページ移動回路１６は、ハイバネーションイメージファイルＳＩに基づいて、ページＰＡ−ＰＫを外部記憶部１１からメインメモリ１２の連続ページ領域ＲＡに順次書き戻す。さらにページ移動回路１６は、ハイバネーションイメージファイルＳＩの先頭又はページＰＡ−ＰＫのページ情報の先頭に基づいて、ページＰＡ−ＰＫを、外部記憶部１１から、第２のページテーブルに記録された、メインメモリ１２の連続ページ領域ＲＡにおけるページＰＡ−ＰＫの位置へと順次書き戻す。
【００２５】
一方、高速ブートモードが実行されるべきでない場合にはステップ８５が実行される。ステップ８５に示すように、ＣＰＵは一般的なブートプロセスを実行する。次に、ステップ８６に示すように、ＣＰＵは連続ページ領域ＲＡを開放（release）する。連続ページ領域ＲＡは非高速ブートモード（non-fast  boot  mode）では使用する必要がないため、連続ページ領域ＲＡは解放され、他のプロセスで使用されてもよい。ユーザが高速ブートモードの実行を選択した場合には、ページバッファを用いることなく、直接、ページＰＡ−ＰＫがメインメモリ１２の連続ページ領域ＲＡに順次書き戻されてもよい。その結果として、ブート時間を短縮することができ、ブート速度を上げることができる。
【００２６】
［第３の実施形態］表１、図１、図９、図１０Ａ、及び図１０Ｂを参照してほしい。表１はデッドロックアレイ（dead-lock  array）の例示形態である。図９は、第３の実施形態に係る電子機器のブロック図である。図１０Ａ及び図１０Ｂは、第３の実施形態に係るブートのフローチャートである。電子機器８は、外部記憶部１１、メインメモリ１２、処理部１４、及び処理部１５を含む。ハイバネーションプロセスにおいて、処理部１４又は処理部１５によって、ページがメインメモリ１２から外部記憶部１１に書き込まれてハイバネーションイメージファイルＳＩが生成される。復帰プロセスにおいて、処理部１４はコアローディング及び初期化プロセス（core  loading  and  initializing  process）を実行し、並列的に、処理部１５はハイバネーションイメージファイルＳＩのページをメインメモリ１２へと移動する。処理部１４及び処理部１５は、例えばマルチコアプロセッサ（multi-core  processor）内の異なるコアである。または、例えば、処理部１４及び処理部１５はそれぞれ中央処理装置（ＣＰＵ）及びダイレクトメモリアクセス（ＤＭＡ）コントローラである。あるいは、例えば、処理部１４及び処理部１５はそれぞれＣＰＵ及びデジタル信号プロセッサ（ＤＳＰ）であってもよい。なお、処理部１４及び処理部１５はイメージ生成回路１３及びページ移動回路１６であってもよい。
【００２７】
復帰プロセスにおいて、ブートプロセスは以下のステップを含む。処理部１５が外部記憶部１１内のハイバネーションイメージファイルＳＩのページをメインメモリ１２のキャッシュ領域１２ａへとシーケンシャル伝送によって書き戻すことを完了した後、ステップ２０１に示すように、処理部１５がマルチコアプロセッサの異なるコア又はＤＳＰであれば、処理部１５は一回にキャッシュ領域１２ａ中の１ページだけをターゲットページに移動することができる。この場合、キャッシュ領域１２ａ中のページはターゲットページに１つずつ戻される。ＤＭＡコントローラは一回にキャッシュ領域１２ａ中の１ページだけをターゲットページに戻すのではない。処理部１５がＤＭＡコントローラであれば、処理部１４がキャッシュ領域１２ａ中のページをターゲットページに１つずつ戻す。本開示では、以降の記載において、１つずつのページの移動（one-by-one  moving  operation  on  the  pages）の実行について記述する場合、処理部１５はマルチコアプロセッサの異なるコア又はＤＳＰである。本実施形態では、以降の記載において、１つずつのページの移動の実行について記述する場合であって、かつ、処理部１５がＤＭＡコントローラである場合、処理部１４がキャッシュ領域１２ａの中のページをターゲットページに１つずつ戻す。
【００２８】
ターゲットページの位置は、シャットダウン状態の前のメインメモリ１２におけるページの位置である。ターゲットページの位置にコンフリクト（conflict）があれば、キャッシュ領域１２内の次のページが、ハイバネーションイメージファイルＳＩの最後のページに至るまで、ターゲットページに移動される。次に、ステップ２０２に示すように、処理部１５は、移動ページカウント（moving-out  page  count）が０であるか否かを確認する。移動ページカウントは、キャッシュ領域１２ａから外に移動されたページ数を表す。移動ページカウントが０であれば、ステップ２０７が実行される。一方で、移動ページカウントが０でなければ、ステップ２０３が実行される。
【００２９】
ステップ２０３に示すように、処理部１５は移動ページカウントをリセットする。ステップ２０４に示すように、処理部１５は、キャッシュ領域１２ａ内の復元されなかったページを、キャッシュ領域１２ａの復元されなかった最初のページから１つずつターゲットページに戻す。ターゲットページの位置にコンフリクトがあれば、キャッシュ領域１２内の次のページが、ターゲットページに戻されていない最後のページに至るまで、ターゲットページに移動される。なお、ターゲットページの位置が他の復元されていないページの位置と同一であれば、ターゲットページの位置にコンフリクトがあるということを意味している。ステップ２０５に示すように、処理部１５は、復元されていないページがキャッシュ領域にあるか否かを判断する。復元されていないページがキャッシュ領域にない場合にはステップ２１３が実行される。ステップ２１３に示すように、ハイバネーションイメージファイルＳＩの全てのページの復元が完了する。一方、復元されていないページがキャッシュ領域に１ページ以上ある場合にはステップ２０６が実行される。ステップ２０６に示すように、処理部１５は移動ページカウントが０であるか否かを判断する。移動ページカウントが０でない場合にはステップ２０３が実行される。一方、移動ページカウントが０である場合にはステップ２０７が実行される。
【００３０】
ステップ２０７に示すように、処理部１５はソースページフレーム番号（source  page  frame  number）を、復元されていない最初のページのページフレーム番号（ＰＦＮ）に設定し、ターゲットページフレーム番号（target  page  frame  number）を、復元されていない最初のページに対応するターゲットページのページフレーム番号に設定する。そして処理部１５はソースページフレーム番号とターゲットページフレーム番号を１つのページフレーム番号の組合せとしてデッドロックアレイに記録する。ステップ２０８に示すように、処理部１５は、デッドロックアレイ内の末尾のページフレーム番号の組合せにおけるターゲットページフレーム番号を、次のページフレーム番号の組合せにおけるソースページフレーム番号として取得し、復元されていないページのターゲットページのページフレーム番号を、デッドロックアレイに記録される次のページフレーム番号の組合せにおけるターゲットページフレーム番号として取得する。例えば処理部１５は、デッドロックアレイ内の末尾のターゲットページフレーム番号の組合せＺ２をソースページフレーム番号として取得し、復元されていないページのターゲットページフレーム番号Ａ２を取得し、ターゲットページフレーム番号Ａ２をデッドロックアレイに記録する。ステップ２０９に示すように、処理部１５は、デッドロックアレイ内の末尾のページフレーム番号の組合せにおけるターゲットページフレーム番号が、先頭のページフレーム番号の組合せにおけるソースページフレーム番号に等しいか否かを判断する。デッドロックアレイ内の末尾のページフレーム番号の組合せにおけるターゲットページフレーム番号が、先頭のページフレーム番号の組合せにおけるソースページフレーム番号と等しくない場合にはステップ２０８が実行される。
【００３１】
デッドロックアレイ内の末尾のページフレーム番号の組合せにおけるターゲットページフレーム番号が、先頭のページフレーム番号の組合せにおけるソースページフレーム番号と等しい場合にはステップ２１０が実行される。ステップ２１０に示すように、処理部１５は一時記憶ページ（temporarily  stored  page）を割り当て、末尾のソースページフレームを一時記憶ページにコピーする。末尾のソースページフレームは、デッドロックアレイ内の末尾のページフレーム番号の組合せにおけるソースページフレーム番号に対応している。ステップ２１１に示すように、処理部１５は、デッドロックアレイにおける末尾から二番目のページフレーム番号の組合せから前に向かって、１つずつページ復元を実行する。ステップ２１２に示すように、処理部１５は、一時記憶ページを先頭のソースページフレームに復元する。先頭のソースページフレームは、デッドロックアレイ内の先頭のページフレームの組合せにおけるソースページフレーム番号に対応している。次に、ステップ２０３が実行される。上記のフローによれば、ページコンフリクトを引き起こしているデッドロックを発見することができ、デッドロックの解消後にページコンフリクトを伴うページをターゲットページに復元することができる。
【００３２】
【表１】
0005923583.tif 000002
【００３３】
［第４の実施形態］図１１は、第４の実施形態に係るハイバネーションプロセスにおけるメインメモリ及び外部記憶部の模式図である。図１２は、第４の実施形態に係る復帰プロセスにおけるメインメモリ及び外部記憶部の模式図である。図１３は第４の実施形態に係るシャットダウンのフローチャートである。図９、図１１、図１２、及び図１３を参照してほしい。ステップ３０１に示すように、処理部１５はハイバネーションイメージファイルＳＩのサイズＳＺ１を事前計算する。ステップ３０２に示すように、処理部１５は、ハイバネーションイメージファイルＳＩに属し、かつ、連続ページ領域ＲＡ内にあるページをマーキングしてマークページ（marked  page）とする。ハイバネーションイメージファイルＳＩに属し、かつ、連続ページ領域ＲＡ外にあるページは非マークページ（unmarked  page）となる。連続ページ領域ＲＡは、メインメモリ１２のキャッシュ領域１２ａにおける第１ページから始まり、ハイバネーションイメージファイルＳ１のサイズＳＺ１分ある。第４の実施形態では、マークページはページＲＰＡ−ＲＰＤを含み、一方、非マークページはページＰＡ−ＰＧを含む。
【００３４】
ステップ３０３に示すように、処理部１５は、最後の非マークページに至るまで、非マークページを外部記憶部１１に１つずつ書き込み、マークページをスキップ（skip）する。即ち、処理部１５はページＰＡ−ＰＧを外部記憶部に１つずつ書き込み、ページＲＰＡ、ＲＰＢ、ＲＰＣ、及びＲＰＤをスキップする。ステップ３０４に示すように、処理部１５はマークページを外部記憶部１１に１つずつ書き込む。即ち、処理部１５はページＲＰＡ−ＲＰＤを外部記憶部１１に１つずつ書き込む。
【００３５】
復帰プロセスにおいて、処理部１５はキャッシュ領域１２ａ内のページをメインメモリ１２のターゲットページに１つずつ戻す。即ち、処理部１５はキャッシュ領域１２ａ内のページＰＡ，ＰＢ，ＰＣ，ＰＤ，ＰＥ，ＰＦ，ＰＧ，ＲＰＡ，ＲＰＢ，ＲＰＣ，及びＲＰＤをメインメモリ１２のターゲットページに１つずつ戻す。復帰プロセスでは、シャットダウン状態の前のメモリアロケーションに復元する必要があるため、図１１のメインメモリ１２内のページＰＡ，ＰＢ，ＰＣ，ＰＤ，ＰＥ，ＰＦ，ＰＧ，ＲＰＡ，ＲＰＢ，ＲＰＣ，及びＲＰＤはターゲットページとみなされる。なお、ページＰＡ−ＰＧのターゲットページはキャッシュ領域１２ａ内にないため、ページコンフリクトは発生しない。ページＲＰＡ−ＲＰＤのターゲットページはキャッシュ領域１２ａ内にあるが、ページＰＡ−ＰＧは復元されているため、元々ページＰＡ−ＰＧによって占められていたページも解放され、他のページ復元に用いられる。そのため、ページＲＰＡ−ＲＰＤについてページコンフリクトは発生しない。
【００３６】
［第５の実施形態］図１４は、第５の実施形態に係るハイバネーションプロセスにおけるメインメモリ及び外部記憶部を示す模式図である。図１５は、第５の実施形態に係る復帰プロセスにおけるメインメモリ及び外部記憶部を示す模式図である。図１６は、第５の実施形態に係るシャットダウンのフローチャートを示す。図９、図１４、図１５、及び図１６を参照してほしい。シャットダウンプロセスは以下のステップを含む。ステップ４０１に示すように、処理部１５はハイバネーションイメージファイルＳＩのサイズＳＺ１の事前計算を行う。ステップ４０２に示すように、処理部１５は、ハイバネーションイメージファイルＳＩに属し、かつ、連続ページ領域ＲＡ内にあるページをマーキングしてマークページとし、メインメモリ１２のキャッシュ領域１２ａの開始ページ（starting  page）からマークページまでのページ数であるページカウントＰｄを記録する。ページカウントＰｄは、キャッシュ領域１２ａの開始ページから数えてＰｄ番目のページとみなしてもよい。ハイバネーションイメージファイルＳＩに属し、かつ、連続ページ領域ＲＡの外にあるページは非マークページである。連続ページ領域ＲＡは、メインメモリ１２のキャッシュ領域１２ａの開始ページから始まり、ハイバネーションイメージファイルＳＩのサイズＳＺ１分ある。第５の実施形態では、マークページはページＲＰＡ−ＲＰＤを含み、非マークページはページＰＡ−ＰＧを含む。
【００３７】
ステップ４０３に示すように、処理部１５は非マークページを外部記憶部１１に１つずつ書き込み、Ｐｄ番目のページに到達する前においては、マークページをスキップする。ステップ４０４に示すように、処理部１５は、キャッシュ領域１２ａの開始ページからマークページまでのページ数であるページカウントＰｄに到達すると、マークページを外部記憶部１１に書き込む。即ち、処理部１５は、最後のページに至るまで、Ｐｄ番目のページを外部記憶部１１に書き込む。言い換えると、処理部１５はページＲＰＡ，ＰＡ，ＲＰＢ，ＰＢ，ＰＣ，ＰＤ，ＲＰＣ，ＰＥ，ＰＦ，ＲＰＤ，及びＰＧを外部記憶部に１つずつ書き込む。
【００３８】
復帰プロセスにおいて、ページＰＡ−ＰＧのターゲットページはキャッシュ領域１２ａ内にないため、ページコンフリクトは発生しない。ページＲＰＡ−ＲＰＤのターゲットページはキャッシュ領域１２ａ内にあるが、ページＲＰＡ−ＲＰＤのターゲットページは先のハイバネーションの前におけるページの位置であるため、復元は必要でない。
【００３９】
［第６の実施形態］図１７は、第６の実施形態に係るブートのフローチャートを示す。図９及び図１７を参照してほしい。ハイバネーションプロセスにおいて、処理部１５は圧縮されていないハイバネーションイメージファイルＳＩのサイズＳＺ１を計算し、その後、圧縮法を用いて圧縮されたハイバネーションイメージファイルを生成し、ハイバネーションイメージファイルＳＩのサイズＳＺ１を圧縮されたハイバネーションイメージファイルに記録する。復帰プロセスにおけるブートプロセスは以下のステップを含む。ステップ５０１に示すように、ブートローダープロセス（boot  loader  process）においてハイバネーションイメージファイルＳＩのサイズＳＺ１が読み出される。ステップ５０２に示すように、コア初期化プロセスにおけるメモリ初期化期間において、サイズＳＺ１を有する連続ページ領域ＲＡが確保される。ステップ５０３に示すように、処理部１５は、圧縮されたハイバネーションイメージファイルを連続ページ領域ＲＡの末尾（bottom）にロードする。ステップ５０４に示すように、圧縮されたハイバネーションイメージファイルが解凍（圧縮解除）される。処理部１５は、圧縮されたハイバネーションイメージファイルのページを１つずつ解凍し、圧縮されたハイバネーションイメージファイルの全てのページが解凍されるまで、解凍されたページの内容をキャッシュ領域１２ａの最初のページから順次書き込んでいく。ページ解凍後のターゲットページへの復元方法は、第３、第４、及び第５の実施形態のページ復元方法と併せて実行されてもよい。
【００４０】
［第７の実施形態］図１８は、第７の実施形態に係るブートのフローチャートを示す。図１９は、ステップ６０３の詳細なフローチャートを示す。図９、図１８、及び図１９を参照してほしい。ブートプロセスにおける復帰プロセスは以下のステップを含む。ステップ６０１に示すように、圧縮されたハイバネーションイメージファイルが解凍される。ステップ６０１では、単一中央処理装置が、圧縮されたハイバネーションイメージファイルのページのヘッダを１つずつ読み出すために最初に使用されてもよい。電子機器８がマルチコアプロセッサを使用していれば、全てのページ解凍ジョブ（page  decompressing  job）の割り当てが完了するまで、ページ解凍ジョブは他の中央処理装置に割り当てられる。中央処理装置は、割り当てられたページのヘッダ内のターゲットページフレーム番号を最初に読み出し、その後、ターゲットページフレーム番号に基づいてターゲットページを復元することが可能であるか否かを判断する。ターゲットページを復元することが可能な場合、解凍されたページ内容はページ復元方法に従ってターゲットページに直接書き込まれる。一方、ターゲットページを復元することができない場合、解凍されたページ内容は一時記憶ページリスト（temporarily  stored  page  list）内のページに直接書き込まれる。
【００４１】
ステップ６０２に示すように、処理部１５は一時記憶ページリストのページ復元を実行する。処理部１５は、一時記憶ページリスト内のページとそれに対応するターゲットページとを１つずつ復元することができるか否かを確認する。ターゲットページを復元できる場合、処理部１５はページ復元方法に従って一時記憶ページリストのページ内容をターゲットページに書き込んでいく。電子機器８がマルチコアプロセッサを用いている場合には、全てのページ復元ジョブの割り当てが完了するまで、１つの中央処理装置が１つのページ復元ジョブを担当する。一時記憶ページリスト内の残りページがデッドロックを有していれば、後続のステップ６０３が実行される。
【００４２】
ステップ６０３に示すように、一時記憶ページリストにおけるデッドロックが解決される。ステップ６０３はステップ６０３１−６０３７をさらに含む。ステップ６０３１に示すように、デッドロックが割り当てられる。電子機器８がマルチコアプロセッサを用いている場合、全てのデッドロックの割り当てが完了するまで、１つの中央処理装置が１つのデッドロックを担当する。ステップ６０３２に示すように、ソースページフレーム番号は、復元されていない第１ページのページフレーム番号に設定され、ターゲットページフレーム番号は、復元されていない第１ページに対応するターゲットページのページフレーム番号に設定され、ソースページフレーム番号とターゲットページフレーム番号はページフレーム番号の１つの組合せとしてデッドロックアレイに記録される。ステップ６０３３に示すように、デッドロックアレイ内の末尾のページフレーム番号の組合せにおけるターゲットページフレーム番号は、次のページフレーム番号の組合せにおけるソースページフレーム番号となり、復元されていないページのターゲットページのページフレーム番号が取り出され、デッドロックアレイに記録される次のページフレーム番号の組合せにおけるターゲットページフレーム番号となる。ステップ６０３４に示すように、デッドロックアレイ内の末尾のページフレーム番号の組合せにおけるターゲットページフレーム番号が、先頭のページフレーム番号の組合せにおけるソースページフレーム番号に等しいか否かが判断される。デッドロックアレイ内の末尾のページフレーム番号の組合せにおけるターゲットページフレーム番号が、先頭のページフレーム番号の組合せにおけるソースページフレーム番号に等しくない場合には、ステップ６０３３が実行される。デッドロックアレイ内の末尾のページフレーム番号の組合せにおけるターゲットページフレーム番号が、先頭のページフレーム番号の組合せにおけるソースページフレーム番号に等しい場合には、ステップ６０３５が実行される。ステップ６０３５に示すように、一時記憶ページが割り当てられ、デッドロックアレイ内の末尾のページフレーム番号の組合せにおけるソースページフレーム番号が一時記憶ページにコピーされる。ステップ６０３６に示すように、ページ復元プロセスは、デッドロックアレイ内の末尾から２番目のページフレーム番号の組合せから前に向かって１つずつ実行される。ステップ６０３７に示すように、一時的に記憶されるページは、先頭のページフレーム番号の組合せにおけるソースページフレーム番号に復元される。
【００４３】
ステップ６０４に示すように、復元されていないページが一時記憶ページリストにないか否かが判断される。復元されていないページが一時記憶ページリストにある場合にはステップ６０１が実行される。一方、復元されていないページが一時記憶ページリストにない場合にはステップ６０５が実行される。ステップ６０５に示すように、ハイバネーションイメージファイルの全てのページの復元が完了する。
【００４４】
開示された実施形態に対しては様々な変形や変更が可能であることは当業者にとって明らかである。明細書及び例は単なる例示とみなされ、本開示の真の範囲は後述の請求項とその均等物によって示されることが意図されている。
【図１】
0005923583.tif 000003
【図２】
0005923583.tif 000004
【図３】
0005923583.tif 000005
【図４】
0005923583.tif 000006
【図５】
0005923583.tif 000007
【図６】
0005923583.tif 000008
【図７】
0005923583.tif 000009
【図８】
0005923583.tif 000010
【図９】
0005923583.tif 000011
【図１０Ａ】
0005923583.tif 000012
【図１０Ｂ】
0005923583.tif 000013
【図１１】
0005923583.tif 000014
【図１２】
0005923583.tif 000015
【図１３】
0005923583.tif 000016
【図１４】
0005923583.tif 000017
【図１５】
0005923583.tif 000018
【図１６】
0005923583.tif 000019
【図１７】
0005923583.tif 000020
【図１８】
0005923583.tif 000021
【図１９】
0005923583.tif 000022