(57)【要約】      （修正有）【課題】システムの状態を高速で復元する。【解決手段】情報処理方法は、（Ａ）複数の領域に分割され且つ該複数の領域の各々にはメモリミラーリングによって同一のデータが格納されている、コンピュータのメモリにおける複数の領域のいずれかに、コンピュータのプロセッサの状態を示すコンテキストを格納する格納処理と、（Ｂ）コンテキストが格納された領域を、メモリミラーリングの対象となる領域からデータを退避させる領域に切り替える設定をする設定処理と、（Ｃ）コンピュータのリセットが行われた場合に、データを退避させる領域に格納されているデータを用いて、プロセッサの状態を復元する復元処理とを含む。【選択図】図２
2014010739.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが実行する情報処理方法であって、
複数の領域に分割され且つ該複数の領域の各々にはメモリミラーリングによって同一のデータが格納されている、前記コンピュータのメモリにおける前記複数の領域のいずれかに、前記コンピュータのプロセッサの状態を示すコンテキストを格納する格納処理と、
前記コンテキストが格納された領域を、前記メモリミラーリングの対象となる領域からデータを退避させる領域に切り替える設定をする設定処理と、
前記コンピュータのリセットが行われた場合に、前記データを退避させる領域に格納されているデータを用いて、前記プロセッサの状態を復元する復元処理と、
を含む情報処理方法。
【請求項２】
前記設定処理が、
前記データを退避させる領域にタイムスタンプを格納する処理
を含み、
前記格納処理及び前記設定処理を複数の時点において実行し、
前記復元処理が、
前記データを退避させる領域に格納されているタイムスタンプに基づき、復元に用いるデータを特定する処理
を含む請求項１記載の情報処理方法。
【請求項３】
前記メモリにエラーが発生した場合に、該エラーが発生した領域を、前記ミラーリングの対象となる領域から外す設定をする処理
をさらに含む請求項１又は２記載の情報処理方法。
【請求項４】
複数の領域に分割され且つ該複数の領域の各々にはメモリミラーリングによって同一のデータが格納されているメモリと、
プロセッサと、
前記複数の領域のいずれかに、前記プロセッサの状態を示すコンテキストを格納する第１処理部と、
前記コンテキストが格納された領域を、前記メモリミラーリングの対象となる領域からデータを退避させる領域に切り替える設定をする第２処理部と、
を有し、
前記コンピュータのリセットが行われた場合に、前記第１処理部が、前記データを退避させる領域に格納されているデータを用いて、前記プロセッサの状態を復元する、
ことを特徴とする情報処理装置。
【請求項５】
コンピュータに実行させるためのプログラムであって、
複数の領域に分割され且つ該複数の領域の各々にはメモリミラーリングによって同一のデータが格納されている、前記コンピュータのメモリにおける前記複数の領域のいずれかに、前記コンピュータのプロセッサの状態を示すコンテキストを格納し、
前記コンテキストが格納された領域を、前記メモリミラーリングの対象となる領域からデータを退避させる領域に切り替える設定をし、
前記コンピュータのリセットが行われた場合に、前記データを退避させる領域に格納されているデータを用いて、前記プロセッサの状態を復元する、
処理を前記コンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムの状態を復元する技術に関する。
【背景技術】
【０００２】
メモリを利用したデータベース（例えばインメモリデータベース）のスナップショットイメージを、異常の発生等に備えてディスクに保存する技術が知られている。しかし、メモリの容量が多くなると、スナップショットイメージをディスク保存するのに時間がかかってしまうため、システムの運用を停止しなければならないことがある。また、実際に異常が発生した際にスナップショットイメージをディスクからメモリに戻すのにも同様に時間がかかってしまうため、システムの状態の復元が遅くなることがある。
【０００３】
また、ディスク上のデータのバックアップをディスク上に保存する技術が存在する。しかし、ディスク上のデータをバックアップするだけでは、システムの状態（例えば、プロセッサの状態）を復元することはできない。
【０００４】
また、メモリを二重化し、障害が発生した際に一方のメモリを切り離し、切り離されたメモリからダンプデータを採取する技術が存在する。しかし、この技術はダンプデータの採取を目的としており、システムの状態を復元することはできない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−３５３０５５号公報
【特許文献２】特開平１１−２３２１４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従って、１つの側面では、本発明の目的は、システムの状態を高速で復元するための技術を提供することである。
【課題を解決するための手段】
【０００７】
一態様の情報処理方法は、複数の領域に分割され且つ該複数の領域の各々にはメモリミラーリングによって同一のデータが格納されている、コンピュータのメモリにおける複数の領域のいずれかに、コンピュータのプロセッサの状態を示すコンテキストを格納する格納処理と、コンテキストが格納された領域を、メモリミラーリングの対象となる領域からデータを退避させる領域に切り替える設定をする設定処理と、コンピュータのリセットが行われた場合に、データを退避させる領域に格納されているデータを用いて、プロセッサの状態を復元する復元処理とを含む。
【発明の効果】
【０００８】
一態様によれば、システムの状態を高速で復元できるようになる。
【図面の簡単な説明】
【０００９】
【図１】図１は、メモリ分割の説明図である。
【図２】図２は、情報処理装置の機能ブロック図である。
【図３】図３は、メモリミラーリングを開始する際の処理の処理フローを示す図である。
【図４】図４は、メモリミラーリングの実行中の処理の処理フローを示す図である。
【図５】図５は、ミラーメモリから待機メモリへの切り替えについて説明するための図である。
【図６】図６は、メモリミラーリングを実行中に異常が発生した場合の処理の処理フローを示す図である。
【図７】図７は、復元処理の処理フローを示す図である。
【図８】図８は、待機メモリからミラーメモリへの切り替えについて説明するための図である。
【図９】図９は、メモリミラーリングを実行中にユーザによりリセットスイッチが押下された場合における処理の処理フローを示す図である。
【図１０】図１０は、メモリミラーリングを実行中にメモリエラーが発生した場合の処理の処理フローを示す図である。
【図１１】図１１は、メモリミラーリングを実行中に正常にシャットダウンをする場合の処理の処理フローを示す図である。
【図１２】図１２は、管理テーブルの状態の遷移について説明するための図である。
【発明を実施するための形態】
【００１０】
図１に、本実施の形態におけるメモリ分割の説明図を示す。本実施の形態においては、物理メモリ（垂直方向に長い、太い実線で示した部分）をｎ（ｎは２以上の自然数）個の領域に分割することにより、ｎ個のミラーメモリ（ミラーメモリ１乃至ｎ）として使用できるようにする。図１において、ミラーメモリ１乃至ｎは水平方向に並ぶように示されており、各ミラーメモリの容量が同じになるように各ミラーメモリのアドレスが設定されている。但し、必ずしも各ミラーメモリの容量は同じでなくてもよい。
【００１１】
図２に、本実施の形態における情報処理装置１の機能ブロック図を示す。情報処理装置１は、ミラーメモリ１乃至ｎに分割されている主メモリ１００と、ＯＳ（Operating System）１０１と、レジスタ１０２１を含むプロセッサ１０２と、管理テーブル１０３１を含むファームウェア１０３と、プロセッサ制御部１０４と、メモリ制御部１０５と、エラー検出部１０６とを含む。また、入力装置３及び出力装置５が、バス１０７を介して情報処理装置１に接続されている。
【００１２】
情報処理装置１のユーザは、例えばモニタである出力装置５の表示内容を見ながら、例えばキーボードである入力装置３を操作して分割指示を入力する。ファームウェア１０３は、分割指示の入力を受け付けると、メモリ分割のための処理等を行う。主メモリ１００がメモリミラーリングシステムとして運用されている場合、主メモリ１００におけるミラーメモリ１乃至ｎの各々には、同じデータがリアルタイムで書き込まれる。ＯＳ１０１は、主メモリ１００上に起動している。プロセッサ１０２は、バス１０７を介して主メモリ１００上のデータを読み書きする。プロセッサ１０２におけるレジスタ１０２１には、プロセッサの状態を示す情報（例えば、汎用レジスタ、プログラムカウンタ及びスタックポインタの情報。以下、コンテキストと呼ぶ）が保持されている。エラー検出部１０６は、主メモリ１００においてメモリエラーが発生したことを検出すると、エラーに関する情報（例えば、メモリエラーが発生した部分の情報、メモリエラーの種類の情報等）をプロセッサ制御部１０４及びメモリ制御部１０５に出力する。プロセッサ制御部１０４は、エラーに関する情報をプロセッサ１０２に出力する。メモリ制御部１０５は、メモリエラーが発生したミラーメモリをアンマップ（すなわち、当該ミラーメモリに対応するアドレス範囲のマップを削除）して切り離す。また、メモリ制御部１０５は、待機メモリにするミラーメモリをアンマップして切り離す。
【００１３】
次に、図３乃至図１２を用いて、図２に示した情報処理装置１の動作について説明する。はじめに、図３を用いて、メモリミラーリングを開始する際における動作について説明する。
【００１４】
まず、情報処理装置１のユーザは、出力装置５に表示されたＢＩＯＳ（Basic Input/Output System）設定画面を見ながら、入力装置３を介して物理メモリの分割指示を入力する。分割指示には、例えば、ミラーメモリの個数ｎが含まれる。すると、ファームウェア１０３は、分割指示の入力を受け付ける（図３：ステップＳ１）。
【００１５】
その後、情報処理装置１のハードウェアがリセットされると、ファームウェア１０３は、分割指示に従いメモリミラーリングのための設定を行う（ステップＳ３）。具体的には、ファームウェア１０３が、プロセッサ制御部１０４を介してメモリ制御部１０５に分割指示を出力する。これに応じ、メモリ制御部１０５は、ミラーメモリ１乃至ｎの各々についてアドレス範囲の設定を行う。
【００１６】
プロセッサ制御部１０４は、主メモリ１００の内容をクリアすることをメモリ制御部１０５に指示する。これに応じ、メモリ制御部１０５は、主メモリ１００の内容をクリアする（ステップＳ５）。
【００１７】
プロセッサ制御部１０４は、ブートを開始する（ステップＳ７）。具体的には、ＯＳ１０１を主メモリ１００へロードし、ＯＳ１０１を起動する。そして処理を終了する。
【００１８】
以上のようにすれば、主メモリ１００の容量等に応じて適切にメモリミラーリングを行えるようになる。
【００１９】
次に、図４及び図５を用いて、メモリミラーリングの実行中における動作について説明する。
【００２０】
情報処理装置１において、主メモリ１００はメモリミラーリングシステムとして運用されている（図４：ステップＳ１１）。すなわち、ミラーメモリ１乃至ｎの各々には、同一のデータがリアルタイムで書き込まれるようになっている。なお、ステップＳ１１は状態を示すステップであるため、図４においてステップＳ１１のブロックを点線で示している。
【００２１】
ＯＳ１０１は、例えば定期的に、コンテキストをミラーメモリ１乃至ｎのうちいずれかのミラーメモリに保存する（ステップＳ１３）。
【００２２】
メモリ制御部１０５は、ステップＳ１５においてコンテキストが保存されたミラーメモリに対応するアドレス範囲をアンマップし、待機メモリとして切り離すと共に（ステップＳ１５）、そのメモリ領域にタイムスタンプを格納する。すなわち、そのメモリ領域が参照されないようにすることで、そのメモリ領域に格納されているデータを退避させる。これにより、その領域はリスタート時における初期化の対象から外れるので、その領域に格納されているデータをスナップショットとして利用できるようになる。
【００２３】
ステップＳ１５の後、ファームウェア１０３は、管理テーブル１０３１を更新する（ステップＳ１７）。管理テーブル１０３１には、ミラーメモリに該当するメモリ領域の識別情報と、待機メモリに該当するメモリ領域の識別情報と、メモリエラーが発生したメモリ領域の識別情報とが登録される。例えばステップＳ１５においてミラーメモリｎが待機メモリとして切り離された場合、図５に示すように、管理テーブル１０３１には待機メモリに該当するメモリ領域の識別情報として「ｎ」が登録される。
【００２４】
図４の説明に戻り、情報処理装置１は、ユーザからメモリミラーリングの終了指示を受け付けたか判断する（ステップＳ１９）。終了指示を受け付けていない場合（ステップＳ１９：Ｎｏルート）、メモリミラーリングを継続するため、ステップＳ１１に戻る。一方、終了指示を受け付けた場合（ステップＳ１９：Ｙｅｓルート）、処理を終了する。
【００２５】
以上のように、メモリに格納されているデータをディスクに保存するのではなく、ミラーメモリから待機メモリへの切替えを行っているので、スナップショットの採取に要する時間を削減することができるようになる。そして、スナップショットの採取に時間がかからないので、情報処理装置１の運用に与える影響は少なくて済む。
【００２６】
なお、メモリの切り離しを繰り返すと待機メモリの数が次第に多くなる。そこで、待機メモリの数が所定の閾値に達した場合には、最も古いタイムスタンプが格納されているメモリ領域をミラーメモリに戻し、代わりにミラーメモリの１つを待機メモリとして切り離すようにしてもよい。
【００２７】
次に、図６乃至図８を用いて、メモリミラーリングを実行中に異常が発生した場合における動作について説明する。
【００２８】
まず、情報処理装置１において異常が発生したことが検出された場合、ＯＳ１０１は、異常に対処するための処理を行う（図６：Ｓ２１）。例えば、パニックが発生した場合又はウォッチドッグタイマによって異常が検出された場合に、ステップＳ２１の処理が行われる。
【００２９】
そして、情報処理装置１は、復元処理を実施する（ステップＳ２３）。復元処理については、図７を用いて説明する。
【００３０】
異常発生後にハードウェアのリセットが行われると、ファームウェア１０３は、プロセッサ制御部１０４を介してメモリ制御部１０５に復元指示を出力する。復元指示には、管理テーブル１０３１において待機メモリに該当するメモリ領域の識別情報が含まれる。メモリ制御部１０５は、待機メモリのメモリ領域に格納されているタイムスタンプを用いて、待機メモリのうち最新のものを特定し、特定された待機メモリのメモリ内容を各ミラーメモリにコピーする（図７：ステップＳ３１）。
【００３１】
メモリ制御部１０５は、ステップＳ３１において特定された待機メモリをミラーメモリに切り替える（ステップＳ３３）。
【００３２】
ステップＳ３３の後、ファームウェア１０３は、管理テーブル１０３１を更新する（ステップＳ３５）。例えば図５に示した状態において異常が発生した場合に、ステップＳ３１及びＳ３３の処理が行われると、図８に示すような状態になる。すなわち、管理テーブル１０３１には、ミラーメモリに該当するメモリ領域の識別情報として「１乃至ｎ」が登録されており、待機メモリに該当するメモリ領域の識別情報は登録されていない。
【００３３】
図７の説明に戻り、ＯＳ１０１に制御が移ると、ＯＳ１０１は、ステップＳ３１において特定された待機メモリのメモリ内容及び当該待機メモリに保存されているコンテキストを用いて、システムの状態を復元する（ステップＳ３７）。これにより、プロセッサの状態が異常発生前の状態に戻る。そして図６に戻り、処理を終了する。
【００３４】
以上のように、ディスクからメモリへデータを転送するのではなく、待機メモリからミラーメモリへの切替えを行っているので、システムの状態の復元を高速で行うことができるようになる。また、異常発生後の再起動の際に自動的に待機メモリからミラーメモリへの切替えが行われるので、ユーザは情報処理装置１の保守の状態を意識することなく運用を行うことが可能になる。さらに、複雑な制御をすることなく、リセットを契機として簡便にシステムの状態を復元することができる。
【００３５】
次に、図９を用いて、メモリミラーリングを実行中にユーザによりリセットスイッチが押下された場合における動作について説明する。
【００３６】
例えば情報処理装置１がハングアップした場合に、ユーザが情報処理装置１のリセットスイッチを押下する（図９：ステップＳ４１）。ステップＳ４１は情報処理装置１の動作ではないため、図９においてステップＳ４１のブロックを点線で示している。
【００３７】
情報処理装置１は、復元処理を実施する（ステップＳ４３）。復元処理については図７を用いて説明したとおりなので説明を省略する。そして、復元処理の後、処理を終了する。
【００３８】
このようにすれば、ユーザによりリセットが指示された場合にも対応できるようになる。
【００３９】
次に、図１０を用いて、メモリミラーリングを実行中にメモリエラーが発生した場合における動作について説明する。
【００４０】
まず、エラー検出部１０６は、主メモリ１００においてメモリエラーを検出したか判断する（図１０：ステップＳ５１）。メモリエラーを検出していない場合（ステップＳ５１：Ｎｏルート）、ステップＳ５７に移行する。
【００４１】
一方、メモリエラーを検出した場合（ステップＳ５１：Ｙｅｓルート）、エラー検出部１０６は、エラーに関する情報（例えば、メモリエラーが発生したメモリ領域の識別情報、メモリエラーの種類の情報等）をプロセッサ制御部１０４及びメモリ制御部１０５に出力する。その後のプロセッサ制御部１０４の処理については本実施の形態における主要な部分ではないので、説明を省略する。
【００４２】
メモリ制御部１０５は、エラーに関する情報をエラー検出部１０６から受け取ると、メモリエラーが発生したミラーメモリに対応するアドレス範囲をアンマップし、待機メモリとして切り離す（ステップＳ５３）。
【００４３】
ステップＳ５３の後、ファームウェア１０３は、管理テーブル１０３１を更新する（ステップＳ５５）。具体的には、管理テーブル１０３１に、メモリエラーが発生したメモリ領域の識別情報を登録する。
【００４４】
そして、情報処理装置１は、メモリエラーの検出を終了するか判断する（ステップＳ５７）。例えば、情報処理装置１を停止することをユーザから指示されている場合には、メモリエラーの検出を終了すると判断する。メモリエラーの検出を終了しない場合（ステップＳ５７：Ｎｏルート）、ステップＳ５１に戻る。一方、メモリエラーの検出を終了する場合（ステップＳ５７：Ｙｅｓルート）、処理を終了する。
【００４５】
以上のようにすれば、一部のメモリ領域にメモリエラーが発生した場合であっても、ミラーメモリに該当する残りのメモリ領域によって運用を継続できるようになる。
【００４６】
次に、図１１を用いて、メモリミラーリングを実行中に正常にシャットダウンをする場合における動作について説明する。
【００４７】
情報処理装置１のシャットダウンをする場合に、ＯＳ１０１は、シャットダウンのための処理を開始すると共に、正常にシャットダウンすることをファームウェア１０３に通知する（図１１：ステップＳ６１）。
【００４８】
その後、情報処理装置１のハードウェアがリセットされた後、情報処理装置１の電源が一旦オフになり、その後情報処理装置１は自動的に再起動する（ステップＳ６３）。
【００４９】
ファームウェア１０３は、ステップＳ６１においてＯＳ１０１から通知を受けているため、待機メモリをミラーメモリに切り替えることをメモリ制御部１０５にプロセッサ制御部１０４を介して指示する。これに応じ、メモリ制御部１０５は、待機メモリに該当するメモリ領域をミラーメモリに切り替える（ステップＳ６５）。また、メモリ制御部１０５は、主メモリ１００の内容をクリアする。
【００５０】
ステップＳ６５の後、ファームウェア１０３は、管理テーブル１０３１を更新する（ステップＳ６７）。具体的には、管理テーブル１０３１に、ミラーメモリに該当するメモリ領域の識別情報として「１乃至ｎ」を登録する。
【００５１】
プロセッサ制御部１０４は、ブートを開始する（ステップＳ６９）。具体的には、ＯＳ１０１を主メモリ１００へロードし、ＯＳ１０１を起動する。そして処理を終了する。
【００５２】
以上のようにすれば、システムの状態を復元しない場合には、通常どおりメモリミラーリングシステムの運用を開始することができるようになる。
【００５３】
上で述べたように、本実施の形態においては、管理テーブル１０３１を用いてミラーメモリと待機メモリとの切り替えを管理している。図１２を用いて、管理テーブルの遷移について説明する。
【００５４】
管理テーブル１０３１の初期状態が、図１２における１２１のような状態であったとする。この状態において、例えばミラーメモリｎを待機メモリに切り替えると、管理テーブル１０３１は１２２のような状態になる。すなわち、ミラーメモリに該当するメモリ領域の識別情報として「１乃至（ｎ−１）」が登録され、待機メモリに該当するメモリ領域の識別情報として「ｎ」が登録された状態になる。
【００５５】
１２２のような状態において、さらにミラーメモリ（ｎ−１）を待機メモリに切り替えると、管理テーブル１０３１は１２３のような状態になる。すなわち、ミラーメモリに該当するメモリ領域の識別情報として「１乃至（ｎ−２）」が登録され、待機メモリに該当するメモリ領域の識別情報として「ｎ及び（ｎ−１）」が登録された状態になる。
【００５６】
１２３のような状態において、ミラーメモリｍにメモリエラーが検出されると、管理テーブル１０３１は１２４のような状態になる。すなわち、ミラーメモリに該当するメモリ領域の識別情報として「１乃至（ｎ−２）」が登録され（但し、ｍを除く）、待機メモリに該当するメモリ領域の識別情報として「ｎ及び（ｎ−１）」が登録され、メモリエラーが発生したメモリ領域の識別情報として「ｍ」が登録された状態になる。
【００５７】
１２４のような状態において、自動又は手動でのリセットが行われると、管理テーブル１０３１は１２５に示すような状態になる。すなわち、ミラーメモリに該当するメモリ領域の識別情報として「１乃至（ｎ−１）」が登録され（但し、ｍを除く）、待機メモリに該当するメモリ領域の識別情報として「ｎ」が登録され、メモリエラーが発生したメモリ領域の識別情報として「ｍ」が登録された状態になる。
【００５８】
１２５のような状態において、正常にシャットダウンが実行されると、１２６に示すような状態になる。すなわち、ミラーメモリに該当するメモリ領域の識別情報として「１乃至ｎ」が登録され（但し、ｍを除く）、メモリエラーが発生したメモリ領域の識別情報として「ｍ」が登録された状態になる。
【００５９】
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明した情報処理装置１の機能ブロック構成は必ずしも実際のプログラムモジュール構成に対応するものではない。
【００６０】
また、上で説明した各テーブルの構成は一例であって、必ずしも上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【００６１】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【００６２】
本実施の形態に係る情報処理方法は、（Ａ）複数の領域に分割され且つ該複数の領域の各々にはメモリミラーリングによって同一のデータが格納されている、コンピュータのメモリにおける複数の領域のいずれかに、コンピュータのプロセッサの状態を示すコンテキストを格納する格納処理と、（Ｂ）コンテキストが格納された領域を、メモリミラーリングの対象となる領域からデータを退避させる領域に切り替える設定をする設定処理と、（Ｃ）コンピュータのリセットが行われた場合に、データを退避させる領域に格納されているデータを用いて、プロセッサの状態を復元する復元処理とを含む。
【００６３】
このようにすれば、復元の際にディスクからメモリにデータを転送しなくてもよいので、復元を高速で行うことができるようになる。また、メモリの内容をディスクに格納しなくてもよいので、データの退避に要する時間も短縮することができるようになる。
【００６４】
また、上で述べた設定処理が、（ｂ１）データを退避させる領域にタイムスタンプを格納する処理を含むようにしてもよい。そして、上で述べた格納処理及び設定処理を複数の時点において実行してもよい。そして、上で述べた復元処理が、（ｃ１）データを退避させる領域に格納されているタイムスタンプに基づき、復元に用いるデータを特定する処理を含むようにしてもよい。
【００６５】
このようにすれば、例えば最新のデータを用いてコンピュータの状態を復元する等、適切なデータを復元に利用することができるようになる。
【００６６】
また、本情報処理方法が、（Ｄ）メモリにエラーが発生した場合に、該エラーが発生した領域を、ミラーリングの対象となる領域から外す設定をする処理をさらに含むようにしてもよい。
【００６７】
このようにすれば、一部の領域にエラーが発生した場合であっても、メモリミラーリングを継続することができるようになる。
【００６８】
また、上で述べた設定処理が、（ｂ２）コンテキストが格納された領域に対応するアドレス範囲をアンマップする処理を含むようにしてもよい。
【００６９】
このようにすれば、リセット時におけるメモリの初期化の対象外となるので、データを退避させることができるようになる。
【００７０】
また、上で述べたコンテキストが、プロセッサのレジスタの情報を含むようにしてもよい。このようにすれば、プロセッサの状態を復元できるようになる。
【００７１】
また、情報処理装置のリセットが、ユーザによりリセットスイッチが押下された場合又はコンピュータの異常が検出された場合に行われるようにしてもよい。
【００７２】
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【００７３】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００７４】
（付記１）
コンピュータが実行する情報処理方法であって、
複数の領域に分割され且つ該複数の領域の各々にはメモリミラーリングによって同一のデータが格納されている、前記コンピュータのメモリにおける前記複数の領域のいずれかに、前記コンピュータのプロセッサの状態を示すコンテキストを格納する格納処理と、
前記コンテキストが格納された領域を、前記メモリミラーリングの対象となる領域からデータを退避させる領域に切り替える設定をする設定処理と、
前記コンピュータのリセットが行われた場合に、前記データを退避させる領域に格納されているデータを用いて、前記プロセッサの状態を復元する復元処理と、
を含む情報処理方法。
【００７５】
（付記２）
前記設定処理が、
前記データを退避させる領域にタイムスタンプを格納する処理
を含み、
前記格納処理及び前記設定処理を複数の時点において実行し、
前記復元処理が、
前記データを退避させる領域に格納されているタイムスタンプに基づき、復元に用いるデータを特定する処理
を含む付記１記載の情報処理方法。
【００７６】
（付記３）
前記メモリにエラーが発生した場合に、該エラーが発生した領域を、前記ミラーリングの対象となる領域から外す設定をする処理
をさらに含む付記１又は２記載の情報処理方法。
【００７７】
（付記４）
前記設定処理が、
前記コンテキストが格納された領域に対応するアドレス範囲をアンマップする処理
を含む付記１乃至３のいずれか１つ記載の情報処理装置。
【００７８】
（付記５）
前記コンテキストが、前記プロセッサのレジスタの情報を含む
ことを特徴とする付記１乃至４のいずれか１つ記載の情報処理方法。
【００７９】
（付記６）
前記情報処理装置のリセットが、ユーザによりリセットスイッチが押下された場合又は前記コンピュータに異常が検出された場合に行われる
ことを特徴とする付記１乃至３のいずれか１つ記載の情報処理方法。
【００８０】
（付記７）
複数の領域に分割され且つ該複数の領域の各々にはメモリミラーリングによって同一のデータが格納されているメモリと、
プロセッサと、
前記複数の領域のいずれかに、前記プロセッサの状態を示すコンテキストを格納する第１処理部と、
前記コンテキストが格納された領域を、前記メモリミラーリングの対象となる領域からデータを退避させる領域に切り替える設定をする第２処理部と、
を有し、
前記コンピュータのリセットが行われた場合に、前記第１処理部が、前記データを退避させる領域に格納されているデータを用いて、前記プロセッサの状態を復元する、
ことを特徴とする情報処理装置。
【００８１】
（付記８）
コンピュータに実行させるためのプログラムであって、
複数の領域に分割され且つ該複数の領域の各々にはメモリミラーリングによって同一のデータが格納されている、前記コンピュータのメモリにおける前記複数の領域のいずれかに、前記コンピュータのプロセッサの状態を示すコンテキストを格納し、
前記コンテキストが格納された領域を、前記メモリミラーリングの対象となる領域からデータを退避させる領域に切り替える設定をし、
前記コンピュータのリセットが行われた場合に、前記データを退避させる領域に格納されているデータを用いて、前記プロセッサの状態を復元する、
処理を前記コンピュータに実行させるためのプログラム。
【符号の説明】
【００８２】
１  情報処理装置    １００  主メモリ
１０１  ＯＳ    １０２  プロセッサ
１０２１  レジスタ    １０３  ファームウェア
１０３１  管理テーブル    １０４  プロセッサ制御部
１０５  メモリ制御部    １０６  エラー検出部
１０７  バス
３  入力装置    ５  出力装置
【図１】
2014010739.tif 000003
【図２】
2014010739.tif 000004
【図３】
2014010739.tif 000005
【図４】
2014010739.tif 000006
【図５】
2014010739.tif 000007
【図６】
2014010739.tif 000008
【図７】
2014010739.tif 000009
【図８】
2014010739.tif 000010
【図９】
2014010739.tif 000011
【図１０】
2014010739.tif 000012
【図１１】
2014010739.tif 000013
【図１２】
2014010739.tif 000014