(57)【要約】【課題】メモリダンプを行う場合においてもシステムの運用再開までの時間を短縮する。【解決手段】第１プロセッサと、第１プロセッサによりアクセス可能な第１メモリ領域とアクセス不可能な第２メモリ領域とを有するメモリと、第２プロセッサと、を有するシステムによって実行されるメモリ制御方法は、第１プロセッサが実行する第１プログラムによる処理が異常停止した後に、第２プロセッサが第１メモリ領域における第１領域のデータを退避し、第２プロセッサが第１領域に第２プログラムをロードし、第１プロセッサが当該第２プログラムを実行し、第１プロセッサが実行する第２プログラムが、第１メモリ領域を第１プロセッサによりアクセス不可能なメモリ領域に変更し、第２メモリ領域を第１のプロセッサによりアクセス可能なメモリ領域に変更し、第１プロセッサが、変更された第２メモリ領域を使用して第１プログラムの実行を開始する処理を含む。【選択図】図１
2015200932.tif 000002
【特許請求の範囲】
【請求項１】
第１のプロセッサと、前記第１のプロセッサによりアクセス可能な第１のメモリ領域とアクセス不可能な第２のメモリ領域とを有するメモリと、第２のプロセッサと、を有するシステムによって実行されるメモリ制御方法であって、
前記第１のプロセッサが実行する第１のプログラムによる処理が異常停止した後に、前記第２のプロセッサが前記第１のメモリ領域における第１の領域のデータを退避し、
前記第２のプロセッサが前記第１の領域に第２のプログラムをロードし、前記第１のプロセッサが当該第２のプログラムを実行し、
前記第１のプロセッサが実行する前記第２のプログラムが、前記第１のメモリ領域を前記第１のプロセッサによりアクセス不可能なメモリ領域に変更し、前記第２のメモリ領域を前記第１のプロセッサによりアクセス可能なメモリ領域に変更し、
前記第１のプロセッサが、変更された前記第２のメモリ領域を使用して前記第１のプログラムの実行を開始する
メモリ制御方法。
【請求項２】
前記第１のプロセッサが実行する前記第２のプログラムが、さらに、
前記変更する処理の前に、前記第２のプログラムの少なくとも一部を、前記第２のメモリ領域へのアクセスを可能にする所定の命令で前記第２のメモリ領域にコピーし、
前記第１のプログラムの実行を開始する処理を、前記第２のメモリ領域にコピーされた前記第２のプログラムの少なくとも一部が実行する
請求項１記載のメモリ制御方法。
【請求項３】
前記第２のメモリ領域に、前記第１のメモリ領域において前記第１の領域以外の部分に記憶されているデータを前記第２のメモリ領域へのアクセスを可能にする所定の命令で退避させる第３のプログラムをロードして前記第１のプロセッサが実行する
処理をさらに含む請求項１又は２記載のメモリ制御方法。
【請求項４】
前記第３のプログラムの処理が、前記第１のプログラムによる処理負荷が所定レベル以下である場合に実行される
請求項３記載のメモリ制御方法。
【請求項５】
前記第１のメモリ領域は、
前記第１のプロセッサによりアクセス可能な領域のサイズが設定により調整可能である
請求項１乃至４のいずれか１つ記載のメモリ制御方法。
【請求項６】
第１のプロセッサと、
第２のプロセッサと、
前記第１のプロセッサによりアクセス可能な領域のサイズが設定により調整可能となっており且つ前記第１のプロセッサによりアクセス可能な第１のメモリ領域とアクセス不可能な第２のメモリ領域とを有するメモリと、
を有し、
前記第１のプロセッサで実行される第１のプログラムによる処理が異常停止した後に、前記第２のプロセッサにより、前記第１のメモリ領域における第１の領域のデータを退避し、
前記第２のプロセッサにより、前記第１の領域に、第２のプログラムをロードし、当該第２のプログラムを、前記第１のプロセッサに実行させ、
前記第１のプロセッサによって前記第２のプログラムを実行することで、前記第１のメモリ領域を前記第１のプロセッサによりアクセス不可能なメモリ領域に、前記第２のメモリ領域を前記第１のプロセッサによりアクセス可能なメモリ領域に変更し、
前記第１のプロセッサに、前記第１のプログラムの実行を開始させる
情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置におけるメモリの制御技術に関する。
【背景技術】
【０００２】
システムの運用中に、システムがダウンした場合、原因究明のため、メモリダンプを行うことがある。超大規模システムではメモリの容量が多く、メモリダンプに時間を要するため、システムの運用再開までに時間がかかることになる。
【０００３】
一方、システムの運用再開を優先するため、メモリダンプを行わないと、原因究明に時間を要する。このため、システムの運用再開までの時間を短縮できるような、メモリダンプの方法が求められている。
【０００４】
なお、ある文献には、使用可能なメモリの中で、システムダウン時に未使用であったメモリを用いてシステムを再開する技術が開示されている。しかしながら、未使用メモリの容量は、システムの状態によって異なり、未使用メモリが少なくて、システムを再開するには不十分な場合もある。
【０００５】
また、他の文献では、予めシステムリソースを二重化しておく技術も存在しているが、それではハードウエアのコストが高くなる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００１−２９０６７８号公報
【特許文献２】特開２０００−２６７８７２号公報
【特許文献３】特表２００５−５１５５２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従って、本発明の目的は、一側面によれば、メモリダンプを行う場合においてもシステムの運用再開までの時間を短縮するための技術を提供することである。
【課題を解決するための手段】
【０００８】
本発明の一態様に係るメモリ制御方法は、第１のプロセッサと、第１のプロセッサによりアクセス可能な第１のメモリ領域とアクセス不可能な第２のメモリ領域とを有するメモリと、第２のプロセッサと、を有するシステムによって実行されるメモリ制御方法である。そして、本メモリ制御方法は、（Ａ）第１のプロセッサが実行する第１のプログラムによる処理が異常停止した後に、第２のプロセッサが第１のメモリ領域における第１の領域のデータを退避し、（Ｂ）第２のプロセッサが第１の領域に第２のプログラムをロードし、第１のプロセッサが当該第２のプログラムを実行し、（Ｃ）第１のプロセッサが実行する第２のプログラムが、（ｃ１）第１のメモリ領域を第１のプロセッサによりアクセス不可能なメモリ領域に変更し、第２のメモリ領域を第１のプロセッサによりアクセス可能なメモリ領域に変更し、（ｃ２）第１のプロセッサが、変更された第２のメモリ領域を使用して第１のプログラムの実行を開始する処理を含む。
【発明の効果】
【０００９】
一側面によれば、メモリダンプを行う場合においてもシステムの運用再開までの時間を短縮できるようになる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施の形態に係るシステムの概要を示す図である。
【図２】図２は、ＳＶＰの機能ブロック図である。
【図３】図３は、メモリ配置データの一例を示す図である。
【図４】図４は、メモリ配置データの他の例を示す図である。
【図５】図５は、ディスク装置に格納されるデータの一例を示す図である。
【図６】図６は、実施の形態に係る処理フローを示す図である。
【図７】図７は、メモリ切替プログラムの起動処理の処理フローを示す図である。
【図８】図８は、メインメモリの第１の状態を示す図である。
【図９】図９は、メインメモリの第２の状態を示す図である。
【図１０】図１０は、実施の形態に係るＣＰＵの機能の概要を示す図である。
【図１１】図１１は、メインメモリの第３の状態を示す図である。
【図１２】図１２は、メインメモリの第４の状態を示す図である。
【図１３】図１３は、メモリコントローラの動作の概要を説明するための図である。
【図１４】図１４は、メモリコントローラの動作の概要を説明するための図である。
【図１５】図１５は、実施の形態に係る処理フローを示す図である。
【図１６】図１６は、メインメモリの第５の状態を示す図である。
【発明を実施するための形態】
【００１１】
図１に本発明の実施の形態に係るシステムの概要を示す。本実施の形態に係る情報処理装置１００には、当該情報処理装置１００に対する設定を行ったり、指示を入力するためのコンソール２００が接続されている。
【００１２】
情報処理装置１００は、バス１０１に接続されているディスク装置１０３とシステムボード１０２とＳＶＰ（SerVice Processor）１０４とを有する。なお、情報処理装置１００は、他のコンピュータにネットワークを介して接続されている場合もある。
【００１３】
システムボード１０２は、ＣＰＵ（Central Processing Unit）１０２１（第１のプロセッサとも呼ぶ）と、メモリコントローラ１０２２と、メインメモリ１０２３とを有する。メモリコントローラ１０２２は、ＣＰＵ１０２１によっては、ＣＰＵ１０２１に含まれる場合もある。また、システムボード１０２には、ＣＰＵ１０２１が複数設けられる場合もあれば、情報処理装置１００には、システムボード１０２が複数設けられる場合もある。さらに、情報処理装置１００は、ディスク装置１０３だけではなく、ＣＭＴ（Cartridge Magnetic Tape）装置その他の外部記憶装置を有している場合もある。
【００１４】
ＳＶＰ１０４は、ＣＰＵ１０４１（第２のプロセッサとも呼ぶ）及びメモリ１０４２を有する。ＳＶＰ１０４は、情報処理装置１００の状態を監視すると共に、コンソール２００からの指示に応じて、各種設定や処理を行う。なお、図２に示すように、ＳＶＰ１０４は、ＣＰＵ１０４１でＳＶＰ用のプログラムを実行することで、後に説明するメモリ切替プログラムの補助を行うメモリ切替補助部１０４５と、メインメモリ１０２３のメモリ配置データ等を管理するメモリ管理部１０４６とを実現する。
【００１５】
本実施の形態では、メインメモリ１０２３のメモリ配置データは、例えば図３に示すようなメインメモリ１０２３の設定状態の一例を表す。図３の例では、メインメモリ１０２３は、全体として８Ｇバイトのサイズを有しており、物理アドレス０から４Ｇバイト分の領域（使用中メモリ又は第１のメモリ領域と呼ぶ）だけＣＰＵ１０２１によってアクセス可能に設定されており、物理アドレス４Ｇから４Ｇバイト分の領域（余剰メモリ又は第２のメモリ領域と呼ぶ）についてはＣＰＵ１０２１によるアクセスは通常は禁止されている。
【００１６】
余剰メモリは、メインメモリ１０２３の二重化のために用意されているメモリではなく、情報処理装置１００のユーザがメモリ増設を物理的に行うことなく、後からＣＰＵ１０２１によって使用可能なメモリの容量を増加できるようにするための予備的なメモリである。例えばコンソール２００からＳＶＰ１０４に指示すると、ＳＶＰ１０４はシステムボード１０２におけるメモリコントローラ１０２２などに設定を行って、ＣＰＵ１０２１がアクセス可能なメモリ領域が変化する。
【００１７】
例えば、図４に示すように、初期的には、物理アドレス０から２Ｇバイト分の領域だけＣＰＵ１０２１によってアクセス可能に設定されており、物理アドレス２Ｇから６Ｇバイト分の領域が余剰メモリとなっている。ここで、設定変更を行うことで、図２に示すような状態に変更することができる。このような設定変更については、キャパシティオンディマンドというようなサービスとしてよく知られているので、これ以上の説明は省略する。
【００１８】
なお、本実施の形態に係るＣＰＵ１０２１は、通常の命令の場合には、使用中メモリのみにアクセスできるようになっているが、本実施の形態で導入される特別命令の場合には、余剰メモリにもアクセスできるようになっている。
【００１９】
また、本実施の形態では、ディスク装置１０３は、例えば図５に示すようなプログラム等を格納している。具体的には、ディスク装置１０３は、本実施の形態における主要な処理を実行するメモリ切替プログラム１０３１と、ＩＰＬ（Initial Program Loader）プログラム１０３２と、ダンププログラム１０３３と、ＯＳ（Operating System）を含む運用システム用のプログラム１０３４（第１のプログラムとも呼ぶ）と格納している。なお、ディスク装置１０３は、メモリ切替プログラム１０３１やダンププログラム１０３３等によって退避されたメモリダンプデータ１０３５も、後に格納されることになる。
【００２０】
メモリ切替プログラム１０３１は、主に使用中メモリと余剰メモリとの関係を切り替える処理を行う。ＩＰＬプログラム１０３２は、運用システム用のプログラム１０３４をメインメモリ１０２３にロードするための処理を実行すると共に、ＳＶＰ１０４のメモリ切替補助部１０４５と連携する。ダンププログラム１０３３は、余剰メモリに記憶されているデータをダンプするプログラムである。
【００２１】
次に、図６乃至図１６を用いて、情報処理装置１００で実行される処理について説明する。
【００２２】
まず、通常のシステム起動時には、ＩＰＬプログラム１０３２が、メインメモリ１０２３にロードされて、ＣＰＵ１０２１によって実行されると、ＩＰＬプログラム１０３２は、ＳＶＰ１０４のメモリ切替補助部１０４５に対してメモリ切替プログラム１０３１のディスク装置１０３における格納位置を通知する（図６：ステップＳ１）。
【００２３】
ＳＶＰ１０４１のメモリ切替補助部１０４５は、ＩＰＬプログラム１０３２からメモリ切替プログラム１０３１のディスク装置１０３における格納位置を受け取ると、例えばメモリ１０４２に保持しておく。
【００２４】
そして、ＩＰＬプログラム１０３２をさらに実行すると、ＯＳを含む運用システム用のプログラム１０３４を、メインメモリ１０２３にロードして実行する。その後、プログラム１０３４の処理が異常終了したものとする（ステップＳ３）。本ステップは、プログラムによる意図した処理ではないので、点線ブロックで示されている。
【００２５】
このシステムダウン（ステップＳ３）を、ユーザはＳＶＰ１０４及びコンソール２００を介して認識して、メモリダンプを伴うシステム再起動の指示を行うものとする。
【００２６】
すなわち、ＳＶＰ１０４のメモリ切替補助部１０４５は、ユーザから、メモリダンプを伴うシステム再起動の指示を受け付ける（ステップＳ４）。そうすると、ＳＶＰ１０４のメモリ切替補助部１０４５等によって、メモリ切替プログラム１０３１の起動処理を実行する（ステップＳ５）。この起動処理については、図７乃至図９を用いて説明する。
【００２７】
まず、ＳＶＰ１０４のメモリ切替補助部１０４５は、使用中メモリの先頭部分（例えば物理アドレス０から５１２バイト。第１の領域と呼ぶ。）を、ＳＶＰ１０４のメモリ１０４２又はディスク装置１０３に退避させる（ステップＳ３１）。これによって、メモリ切替プログラム１０３１の一部をメインメモリ１０２３にロードするための領域を空けることができる。
【００２８】
そして、ＳＶＰ１０４のメモリ切替補助部１０４５は、ステップＳ１で受け取ったメモリ切替プログラム１０３１の格納位置を用いてメモリ切替プログラム１０３１のブート処理部分を読み出し、ステップＳ３１でデータが退避された第１の領域へロードさせる（ステップＳ３３）。
【００２９】
さらに、ＳＶＰ１０４のメモリ切替補助部１０４５は、メインメモリ１０２３における第１の領域にロードされたブート処理部分を実行させる。そうするとメモリ切替プログラム１０３１のブート処理部分は、メモリ切替プログラム１０３１の本体部分（ブート処理部分以外の部分）を格納するための第２の領域に記憶されているデータを、ディスク装置１０３に退避させる（ステップＳ３５）。ここまで処理を実行すると、図８に模式的に示すように、使用中メモリにおける先頭部分である第１の領域８０１にロードされたブート処理部分は、第２の領域８０２に記憶されているデータを、ディスク装置１０３に退避させる。
【００３０】
さらに、メモリ切替プログラム１０３１のブート処理部分は、データを退避させた第２の領域８０２に、本体部分をディスク装置１０３からロードする（ステップＳ３７）。そうすると、メインメモリ１０２３は、図９に示すような状態となり、メモリ切替プログラム１０３１全体を、ＣＰＵ１０２１が実行できるようになる。
【００３１】
すなわち、ＣＰＵ１０２１は、メモリ切替プログラム１０３１の本体部分の実行を開始する（ステップＳ３９）。ここまで処理すると、処理は呼び出し元の処理に戻る。
【００３２】
図６の処理の説明に戻って、ＣＰＵ１０２１によって実行されるメモリ切替プログラム１０３１は、ＳＶＰ１０４のメモリ管理部１０４６等から、メモリ配置データを取得する（ステップＳ７）。図３に模式的に示すように、使用中メモリのサイズ及び余剰メモリの開始アドレス及びサイズなどのメモリ配置データを取得する。このようなメモリ配置データについては、ディスク装置１０３に格納しておき、後でダンププログラム１０３３によって参照できるようにしておいても良い。なお、メモリ切替前の使用中メモリにロードされたメモリ切替プログラム１０３１をメモリ切替プログラムＡと呼ぶものとする。
【００３３】
そして、ＣＰＵ１０２１によって実行されるメモリ切替プログラム１０３１は、メモリ切替プログラム１０３１自身を、余剰メモリ側に、特別命令でコピーする（ステップＳ９）。
【００３４】
一般的なＣＰＵは、アクセス可能なメモリ領域が制限されている場合には、それ以外のメモリ領域へアクセスすることができない。本実施の形態に係るＣＰＵ１０２１は、例えば図１０に示すように、実行すべき命令が、本実施の形態に係る特別な命令であるか否かを判断し、特別な命令であれば（ステップＳ５１：Ｙｅｓルート）、アクセス可能なメモリ領域外であっても、そのままその命令を実行する（ステップＳ５３）。一方、実行すべき命令が通常の命令であれば（ステップＳ５１：Ｎｏルート）、ＣＰＵ１０２１は、当該命令のアクセス先が、アクセス可能なメモリ領域内であるか否かを判断する（ステップＳ５５）。アクセス先がアクセス可能なメモリ領域外であれば、ＣＰＵ１０２１はエラーを発生させる（ステップＳ５７）。一方、アクセス先がアクセス可能なメモリ領域内であれば、ＣＰＵ１０２１は、当該命令を実行する（ステップＳ５９）。このように、本実施の形態に係るＣＰＵ１０２１は、ステップＳ５１及びＳ５３のような処理を行うことができるようになっている。
【００３５】
このようなＣＰＵ１０２１によって、図１１に模式的に示すように、余剰メモリ側に、メモリ切替プログラム１０３１（メモリ切替プログラムＢ）がコピーされる。
【００３６】
そして、ＣＰＵ１０２１によって実行されるメモリ切替プログラム１０３１（メモリ切替プログラムＡ）は、使用中メモリと余剰メモリとを切り替えるメモリ配置の変更を実行する（ステップＳ１１）。
【００３７】
具体的には、図１２に示すような状態にメモリ配置を切り替える。より具体的には、アドレスについても、切替前の０を４Ｇバイトに設定し、切替前の８Ｇバイトを４Ｇバイトに設定し、切替前の４Ｇバイトを０に設定する。すなわち、余剰メモリが使用中メモリに変更され、使用中メモリが余剰メモリに変更される。
【００３８】
これによって、切替前の４Ｇバイトから８Ｇバイトまでの領域を、ＯＳを含む運用システム用のプログラム１０３４がアクセスできるようになるが、切替前の０から４Ｇバイトまでの領域にアクセスできなくなる。すなわち、切替前の使用中メモリに格納されているデータが保護されることになる。
【００３９】
例えば、このような切り替えは、メモリコントローラ１０２２によって実現される。例えば、切り替え前では、図１３に示すように、物理アドレスａがメモリコントローラ１０２２に入力されると、メモリコントローラ１０２２は、メインメモリ１０２３における使用中メモリの記憶場所Ａをアクセスすることになる。また、物理アドレスｂがメモリコントローラ１０２２に入力されると、メモリコントローラ１０２２は、メインメモリ１０２３における使用中メモリの記憶場所Ｂをアクセスすることになる。さらに、物理アドレスｃがメモリコントローラ１０２２に入力されると、メモリコントローラ１０２２は、メインメモリ１０２３における使用中メモリの記憶場所Ｃをアクセスすることになる。
【００４０】
これに対して、切り替え後では、図１４に示すように、物理アドレスａがメモリコントローラ１０２２に入力されると、メモリコントローラ１０２２は、メインメモリ１０２３における切り替え後使用中メモリの記憶場所Ｅをアクセスことになる。また、物理アドレスｂがメモリコントローラ１０２２に入力されると、メモリコントローラ１０２２は、メインメモリ１０２３における切り替え後使用中メモリの記憶場所Ｆをアクセスすることになる。さらに、物理アドレスｃがメモリコントローラ１０２２に入力されると、メモリコントローラ１０２２は、メインメモリ１０２３における切り替え後使用中メモリの記憶場所Ｇをアクセスすることになる。このように切り替え前のアクセス先から４Ｇバイト分（余剰メモリの容量分）オフセットした形でアクセスするようになる。
【００４１】
このような切り替えを行うと、制御はメモリ切替プログラムＡからメモリ切替プログラムＢに切り替わる。
【００４２】
処理は端子Ａを介して図１５の処理に移行して、ＣＰＵ１０２１によって実行されるメモリ切替プログラム１０３１（メモリ切替プログラムＢ）は、ディスク装置１０３に格納されたＩＰＬプログラム１０３２をメインメモリ１０２３にロードしてＣＰＵ１０２１に実行させる（ステップＳ１３）。これによってメモリ切替プログラム１０３１は、メインメモリ１０２３において上書きされてしまう。そうすると、ＯＳを含む運用システム用のプログラム１０３４が自動的にメインメモリ１０２３にロードされて、ＣＰＵ１０２１によって実行されるようになる。すなわちシステムが起動される（ステップＳ１５）。システムの起動は、従来技術におけるシステム起動と変わらない状態を表すので、点線ブロックで表されている。
【００４３】
また、運用システム用のプログラム１０３４と共に又はＳＶＰ１０４等からの指示に応じて、ディスク装置１０３に格納されたダンププログラム１０３３は、メインメモリ１０２３にロードされ、ＣＰＵ１０２１によって実行されるようになる（ステップＳ１７）。
【００４４】
ここでは、図１６に模式的に示すように、切り替え後の使用中メモリには、運用システム用のプログラム１０３４がロードされて、ダンププログラム１０３３も、メインメモリ１０２３の使用中メモリにロードされる。
【００４５】
ＣＰＵ１０２１により実行されるダンププログラム１０３３は、ＳＶＰ１０４のメモリ管理部１０４６又はディスク装置１０３（ダンプデータと共にメモリ配置データが格納された場合）から、メモリ配置データを取得して、当該メモリ配置データに従って、切り替え後の余剰メモリに対して、特別命令によってダンプを実行し、余剰メモリ内のデータをディスク装置１０３に退避させる（ステップＳ１９）。
【００４６】
すなわち、余剰メモリの開始アドレス（より具体的にはメモリ切替プログラム１０３１の分をオフセットする）及びサイズを、メモリ配置データから特定して、ダンププログラム１０３３は、ディスク装置１０３におけるメモリダンプデータ１０３５として格納する。保存先は他の外部記憶装置などであっても良い。
【００４７】
なお、ダンププログラム１０３３は、システム運用に悪影響を及ぼさないように、例えばＯＳから取得されるＣＰＵ使用率など処理負荷が閾値以下の場合にダンプを実行するのが好ましい。
【００４８】
以上説明した処理を行うことによって、使用中メモリのダンプを完全に行ってからシステムの運用再開を行うよりも、早期にシステムの運用開始を行うことができるようになる。また、後からダンプすべきメモリ領域が余剰メモリとなって、通常のプログラムによっては書き換え不可能な状態にしておくことで、処理負荷に応じて後からダンプを行うことができる。
【００４９】
以上本発明の実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、メモリ切替プログラム１０３１自身のコピーを、余剰メモリ側に行う処理については、メモリ切替処理の後に用いる部分のみをコピーするようにしても良い。例えばＩＰＬプログラム１０３２をメインメモリ１０２３にロードして実行させるようにする部分のみをコピーしても良い。また、例えばＩＰＬプログラム１０３２をメインメモリ１０２３にロードして実行させるようにする部分を、特別命令によって切り替え前の余剰メモリ側にロードさせるようにしても良い。
【００５０】
ステップＳ３１及びＳ３５で使用中メモリのデータを退避させるが、メモリ切替プログラム１０３１より大きな領域のデータを退避させるようにしても良い。
【００５１】
上でも述べたが、余剰メモリは、メインメモリ１０２３の二重化ではなく、要求に応じて使用可能なメモリを拡張できるようにするための予備的なメモリであり、使用中メモリの容量より大きい場合もあれば、同じ場合も小さい場合もある。小さい場合には、状況に応じて本実施の形態に係る処理実行の有無が判断される。
【００５２】
さらに、図１に情報処理装置１００の機能構成例を示したが、実質的にこのような機能構成であればよく、実際のハードウエア構成とは一致しない場合もある。
【００５３】
処理フローについても、処理結果が変わらない限り、ステップの実行順番を入れ替えたり、複数ステップを並列に実行したりできる場合もある。
【００５４】
以上述べた本実施の形態をまとめると、以下のようになる。
【００５５】
本実施の形態に係るメモリ制御方法は、第１のプロセッサと、第１のプロセッサによりアクセス可能な第１のメモリ領域とアクセス不可能な第２のメモリ領域とを有するメモリとを有するシステムによって実行されるメモリ制御方法である。そして、本メモリ制御方法は、（Ａ）第１のプロセッサで実行される第１のプログラムによる処理が異常停止した後に、第１のメモリ領域における第１の領域のデータを退避し、（Ｂ）第１の領域に、第２のプログラム（例えば実施の形態に係るメモリ切替プログラム）をロードし、当該第２のプログラムを、第１のプロセッサによって実行し、（Ｃ）第１のプロセッサによって第２のプログラムを実行することで、（ｃ１）第１のメモリ領域を第１のプロセッサによりアクセス不可能なメモリ領域に、第２のメモリ領域を第１のプロセッサによりアクセス可能なメモリ領域に変更し、（ｃ２）第１のプロセッサに、第１のプログラムの実行を開始させる処理を含む。
【００５６】
このような処理を行うことで、第１のメモリ領域におけるデータの退避を最小限度に抑えているので、システムの運用再開を早期に行うことができるようになる。但し、第１のメモリ領域は、通常のプログラムである第１のプログラムによっては書き換えられなくなるので、状態が保存されている。なお、第１のメモリ領域は、第１のプロセッサによりアクセス可能な領域のサイズが設定により調整可能となっていることもある。
【００５７】
なお、第１のプロセッサによって第２のプログラムを実行することで、さらに、上記変更する処理の前に、第２のプログラムの少なくとも一部を、第２のメモリ領域へのアクセスを可能にする所定の命令で第２のメモリ領域にコピーさせ、第１のプログラムの実行を開始させる処理を、第２のメモリ領域にコピーされた第２のプログラムの少なくとも一部を第１のプロセッサに実行させることで実行するようにしても良い。第２のプログラムによってメモリの切り替えに加えて運用システムの再開が自動的に行われるようになる。
【００５８】
また、上記メモリ制御方法は、（Ｄ）第２のメモリ領域に、第１のメモリ領域において第１の領域以外の部分に記憶されているデータを第２のメモリ領域へのアクセスを可能にする所定の命令で退避させる第３のプログラムをロードして第１のプロセッサにより実行するようにしても良い。これによって、運用システムの通常運用中にダンプを行うことができるようになる。
【００５９】
さらに、上記第３のプログラムの処理が、第１のプログラムによる処理負荷が所定レベル以下である場合に実行される場合もある。運用システムへの影響を抑えるためである。
【００６０】
また、上記退避する処理及び上記第１の領域に第２のプログラムをロードする処理の少なくとも一部を、上記システムに含まれる第２のプロセッサにより実行する場合もある。このようにすれば、既存の資源を有効活用して、上で述べたような効果を得ることができるようになる。
【００６１】
本実施の形態の第２の態様に係るメモリ制御方法は、第１のプロセッサと、第１のプロセッサによりアクセス可能な領域のサイズが設定により調整可能となっており且つ第１のプロセッサにより第１の命令群によってアクセス可能な第１のメモリ領域とアクセス不可能な第２のメモリ領域とを有するシステムによって実行されるメモリ制御方法である。そして、このメモリ制御方法は、（Ａ）第１のプロセッサで実行される第１のプログラムによる処理が異常停止した後に、第１のメモリ領域を第１のプロセッサによりアクセス不可能なメモリ領域に設定し、（Ｂ）第２のメモリ領域を第１のプロセッサによりアクセス可能なメモリ領域に設定し、（Ｃ）第１のプロセッサによって、第２のメモリ領域に、第１のプログラムをロードして実行し、（Ｄ）第１の命令群以外の第２の命令群によって第１のメモリ領域に記憶されているデータを読み出す処理を含む。
【００６２】
なお、上で述べたような処理をプロセッサに実行させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、ＣＤ−ＲＯＭなどの光ディスク、光磁気ディスク、半導体メモリ（例えばＲＯＭ）、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、ＲＡＭ等の記憶装置に一時保管される。
【００６３】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００６４】
（付記１）
第１のプロセッサと、前記第１のプロセッサによりアクセス可能な第１のメモリ領域とアクセス不可能な第２のメモリ領域とを有するメモリと、第２のプロセッサと、を有するシステムによって実行されるメモリ制御方法であって、
前記第１のプロセッサが実行する第１のプログラムによる処理が異常停止した後に、前記第２のプロセッサが前記第１のメモリ領域における第１の領域のデータを退避し、
前記第２のプロセッサが前記第１の領域に第２のプログラムをロードし、前記第１のプロセッサが当該第２のプログラムを実行し、
前記第１のプロセッサが実行する前記第２のプログラムが、前記第１のメモリ領域を前記第１のプロセッサによりアクセス不可能なメモリ領域に変更し、前記第２のメモリ領域を前記第１のプロセッサによりアクセス可能なメモリ領域に変更し、
前記第１のプロセッサが、変更された前記第２のメモリ領域を使用して前記第１のプログラムの実行を開始する
メモリ制御方法。
【００６５】
（付記２）
前記第１のプロセッサが実行する前記第２のプログラムが、さらに、
前記変更する処理の前に、前記第２のプログラムの少なくとも一部を、前記第２のメモリ領域へのアクセスを可能にする所定の命令で前記第２のメモリ領域にコピーし、
前記第１のプログラムの実行を開始する処理を、前記第２のメモリ領域にコピーされた前記第２のプログラムの少なくとも一部が実行する
付記１記載のメモリ制御方法。
【００６６】
（付記３）
前記第２のメモリ領域に、前記第１のメモリ領域において前記第１の領域以外の部分に記憶されているデータを前記第２のメモリ領域へのアクセスを可能にする所定の命令で退避させる第３のプログラムをロードして前記第１のプロセッサが実行する
処理をさらに含む付記１又は２記載のメモリ制御方法。
【００６７】
（付記４）
前記第３のプログラムの処理が、前記第１のプログラムによる処理負荷が所定レベル以下である場合に実行される
付記３記載のメモリ制御方法。
【００６８】
（付記５）
前記第１のメモリ領域は、
前記第１のプロセッサによりアクセス可能な領域のサイズが設定により調整可能である
付記１乃至４のいずれか１つ記載のメモリ制御方法。
【００６９】
（付記６）
第１のプロセッサと、
第２のプロセッサと、
前記第１のプロセッサによりアクセス可能な領域のサイズが設定により調整可能となっており且つ前記第１のプロセッサによりアクセス可能な第１のメモリ領域とアクセス不可能な第２のメモリ領域とを有するメモリと、
を有し、
前記第１のプロセッサで実行される第１のプログラムによる処理が異常停止した後に、前記第２のプロセッサにより、前記第１のメモリ領域における第１の領域のデータを退避し、
前記第２のプロセッサにより、前記第１の領域に、第２のプログラムをロードし、当該第２のプログラムを、前記第１のプロセッサに実行させ、
前記第１のプロセッサによって前記第２のプログラムを実行することで、前記第１のメモリ領域を前記第１のプロセッサによりアクセス不可能なメモリ領域に、前記第２のメモリ領域を前記第１のプロセッサによりアクセス可能なメモリ領域に変更し、
前記第１のプロセッサに、前記第１のプログラムの実行を開始させる
情報処理装置。
【符号の説明】
【００７０】
１０２１  ＣＰＵ
１０２２  メモリコントローラ
１０２３  メインメモリ
１０４  ＳＶＰ
１０３１  メモリ切替プログラム
１０３２  ＩＰＬプログラム
１０３３  ダンププログラム
１０３４  運用システム用のプログラム
１０３５  メモリダンプデータ
【図１】
2015200932.tif 000003
【図２】
2015200932.tif 000004
【図３】
2015200932.tif 000005
【図４】
2015200932.tif 000006
【図５】
2015200932.tif 000007
【図６】
2015200932.tif 000008
【図７】
2015200932.tif 000009
【図８】
2015200932.tif 000010
【図９】
2015200932.tif 000011
【図１０】
2015200932.tif 000012
【図１１】
2015200932.tif 000013
【図１２】
2015200932.tif 000014
【図１３】
2015200932.tif 000015
【図１４】
2015200932.tif 000016
【図１５】
2015200932.tif 000017
【図１６】
2015200932.tif 000018