(57)【要約】【課題】    主記憶装置にメモリダンプ手順を読み込むことなくメモリダンプを採取することを可能とするメモリダンプ採取方法を提供する。【解決手段】  キャッシュメモリ１１を備えたＣＰＵ１０と、ＣＰＵが使用する主記憶装置３０と、プログラムが使用していたメモリ内容を外部記憶装置５０にダンプするためのメモリダンプ手順を格納したＲＯＭ２０とを備え、メモリダンプ手順をキャッシュメモリ１１に格納し、格納したメモリダンプ手順にしたがってプログラムが使用していたメモリ内容を外部記憶装置５０にダンプする計算機のメモリダンプの採取方法であって、計算機に障害が発生したとき、該計算機を再起動したのち、キャッシュメモリ１１を主記憶装置３０のアドレス空間の一部に対応させ、主記憶装置３０の初期化を行う前に、キャッシュメモリ１１に前記メモリダンプ手順２１を読み込ませて該手順を実行することによりメモリダンプを採取する。【選択図】  図１
2006285848.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュメモリを備えたＣＰＵと、
ＣＰＵが使用する主記憶装置と、
プログラムが使用していたメモリ内容を外部記憶装置にダンプするためのメモリダンプ手順を格納したＲＯＭとを備え、
メモリダンプ手順をキャッシュメモリに格納し、格納したメモリダンプ手順にしたがってプログラムが使用していたメモリ内容を外部記憶装置にダンプする計算機のメモリダンプの採取方法であって、
計算機に障害が発生したとき、該計算機を再起動したのち、キャッシュメモリを主記憶装置のアドレス空間の一部に対応させ、主記憶装置の初期化を行う前に、キャッシュメモリに前記メモリダンプ手順を読み込ませて該手順を実行することによりメモリダンプを採取することを特徴とするメモリダンプ採取方法。  
【請求項２】
請求項１記載のメモリダンプ採取方法において、
キャッシュメモリに前記メモリダンプ手順の一部を読み込ませて該手順を実行することにより、主記憶装置の一部のメモリダンプを採取し、該採取により空いた領域が正常か検査を行い、正常な場合に該領域に外部記憶装置からメモリダンプ手順の残部を読み込ませて実行することにより、キャッシュメモリの容量に制限されることなくメモリダンプを採取することを特徴とするメモリダンプ採取方法。
【請求項３】
請求項１記載のメモリダンプ採取方法において、
キャッシュメモリを主記憶装置のアドレス空間の一部に対応させることに代えて、メモリダンプ手順の書き込まれた記憶装置を主記憶装置のアドレス空間の一部へ対応させ、主記憶装置への書き込みはキャッシュメモリに行い、明示的に命令するかキャッシュメモリの容量を超えて書き込みをしなければキャッシュメモリの内容が主記憶装置に書き込まれることがない場合、メモリダンプを採取する手順を実行するのに必要なメモリ容量をキャッシュメモリの容量に収まる容量とし、メモリダンプを採取するときに前記手順における記憶装置を主記憶装置のアドレス空間の一部へ対応させ前記手順を実行することにより、メモリダンプを採取することを特徴とするメモリダンプ採取方法。
【請求項４】
請求項１記載のメモリダンプ採取方法において、
キャッシュメモリを主記憶装置のアドレス空間の一部に対応させることに代え、キャッシュメモリが主記憶装置とは別のアドレス空間を有し、キャッシュメモリを主記憶装置と同等に扱える機構を有する場合、メモリダンプ手順をキャッシュメモリに読み込み実行することにより、メモリダンプを採取することを特徴とするメモリダンプ採取方法。
【請求項５】
請求項１記載のメモリダンプ採取方法において、
メモリダンプを採取する手順を実行するのに十分な容量のキャッシュメモリがない場合に、主記憶装置に対する読み込み機能、書き込み機能、および読み書き位置変更機能と同等の機能を有する入出力機能を有し、メモリダンプを採取する手順のキャッシュメモリに対する読み書きを上記入出力機能に対する読み書きにかえることによって、メモリダンプを採取することを特徴とするメモリダンプ採取方法。
【請求項６】
キャッシュメモリを備えたＣＰＵと、
ＣＰＵが使用する主記憶装置と、
プログラムが使用していたメモリ内容を外部記憶装置にダンプするためのメモリダンプ手順を格納したＲＯＭとを備え、
該ＲＯＭに格納されているメモリダンプ手順をキャッシュメモリに格納し、格納したメモリダンプ手順にしたがってプログラムが使用していたメモリ内容を外部記憶装置にダンプする計算機であって、
該計算機は、再起動後にキャッシュメモリを主記憶装置のアドレス空間の一部に対応させ、主記憶装置の初期化を行う前にキャッシュメモリに前記メモリダンプ手順を読み込ませてメモリダンプ手順を実行することを特徴とする計算機。  
【請求項７】
請求項６記載の計算機において、
該計算機は、主記憶装置の一部のメモリダンプを採取し、該採取により空いた領域が正常か検査を行い、正常な場合に該領域に外部記憶装置からメモリダンプ手順の残部を読み込ませて実行することを特徴とする計算機。
【請求項８】
請求項６記載の計算機において、
該計算機は、主記憶装置に対する読み込み機能、書き込み機能、および読み書き位置変更機能を有する入出力機能を有し、メモリダンプを採取する手順のキャッシュメモリに対する読み書きを上記入出力機能に対する読み書きに代える手段を備えたことを特徴とする計算機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリダンプ採取技術に係り、特に主記憶装置の記憶内容を破壊することなくメモリダンプを採取することのできるメモリダンプ採取技術に関する。
【背景技術】
【０００２】
従来、システムダンプ採取方法としては、例えば、計算機システムの主記憶装置上の領域に通常稼働時には使用されない空き領域を設け、ハングアップ等によりシステムダンプが採取できないときに、上記計算機システムをリセットした後、オペレーティングシステムを上記主記憶装置上に再ロードする前に、外部記憶装置からシステムダンプ採取プログラムを上記空き領域にロードして実行することによりシステムダンプを採取する方法が知られている（特許文献１，２参照）。
【特許文献１】特開平８−９５８３４号公報
【特許文献２】特開２０００−１３７６３０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、上記の従来技術には、次のような問題点がある。第１の問題点は、主記憶装置に障害が発生し正常な情報の転送が不可能となった場合、メモリダンプ手順を主記憶装置へ書き込むことができず、メモリダンプ採取を実施することができない。また、予め書き込みを行っておいても、該手順を読み出すことができないため、メモリダンプ採取を実施することができない。
【０００４】
第２の問題点は、まれにしか実行されないメモリダンプ採取手順のために、常に主記憶装置に該手順用のメモリを確保しておかなければならない。
【０００５】
本発明は、これらの問題点に鑑みてなされたもので、主記憶装置にメモリダンプ手順を読み込むことなくメモリダンプを採取することを可能とするメモリダンプ採取技術を提供するものである。
【課題を解決するための手段】
【０００６】
本発明は上記課題を解決するため、次のような手段を採用した。
【０００７】
キャッシュメモリを備えたＣＰＵと、ＣＰＵが使用する主記憶装置と、プログラムが使用していたメモリ内容を外部記憶装置にダンプするためのメモリダンプ手順を格納したＲＯＭとを備え、メモリダンプ手順をキャッシュメモリに格納し、格納したメモリダンプ手順にしたがってプログラムが使用していたメモリ内容を外部記憶装置にダンプする計算機のメモリダンプの採取方法であって、計算機に障害が発生したとき、該計算機を再起動したのち、キャッシュメモリを主記憶装置のアドレス空間の一部に対応させ、主記憶装置の初期化を行う前に、キャッシュメモリに前記メモリダンプ手順を読み込ませて該手順を実行することによりメモリダンプを採取する。
【発明の効果】
【０００８】
本発明は、以上の構成を備えるため、主記憶装置にメモリダンプ手順を読み込むことなくメモリダンプを採取することを可能とする。
【発明を実施するための最良の形態】
【０００９】
以下、最良の実施形態を添付図面を参照しながら説明する。図１は、本発明の第１の実施形態に係る計算機システムを説明する図、図２は該計算機システムの処理を説明する図である。
【００１０】
図１に示すように、計算機システムはＣＰＵ１０、記憶装置（ＲＯＭ）２０、主記憶装置３０、不揮発性メモリ４０、磁気ディスク装置５０により構成される。そして、ＣＰＵ１０、記憶装置（ＲＯＭ）２０、主記憶装置３０、不揮発性メモリ４０、および磁気ディスク装置５０間における相互のデータの受け渡しは、バス６０を介して行われる。
【００１１】
ＣＰＵ１０は、データを書き込むとき、キャッシュメモリ１１へ書き込み、明示的に命令するかキャッシュメモリの容量を超えて書き込みを実行しない限り、キャッシュメモリ１１の内容を主記憶装置３０へは反映しない。
【００１２】
キャッシュメモリ１１は、ＣＰＵ１０の内部に存在し、メモリダンプ手順２１を読み込み実行できる容量を有する。記憶装置（ＲＯＭ）２０は、主記憶装置３０のアドレス空間の一部に対応付けすることができる。メモリダンプ手順２１は、記憶装置（ＲＯＭ）２０に格納されており、主記憶装置３０から磁気ディスク装置等の外部記憶装置５０へメモリダンプを採取する手順である。異常終了フラグ４１は、オペレーティングシステムが異常終了した場合は値が１となり、正常終了した場合は値が０となる。
【００１３】
次に、図１の動作について、図２のフローチャートを参照し、メモリダンプ採取の手順を説明する。通常動作時は、異常終了フラグ４１が０であり、計算機の電源を投入すると、主記憶装置３０の初期化を実施し（ステップＡ１，Ａ２）、異常終了フラグ４１の値を１に設定し（ステップＡ３）、オペレーティングシステムを起動し（ステップＡ４）、通常の運用が行われる（ステップＡ５）。オペレーティングシステムの終了時には、異常終了フラグ４１の値を０に設定して（ステップＡ６，Ａ７，Ａ８）、処理を終了する。
【００１４】
オペレーティングシステム運用中に、主記憶装置３０上の情報が正常に読み出せない等の障害が発生し、計算機システムがハングアップした場合は（ステップＡ６）、オペレータは計算機のリセットを行なう（ステップＡ９）。
【００１５】
再起動後は、異常終了フラグ４１は１に設定されているため、主記憶装置３０の初期化がバイパスされ（ステップＡ１，Ａ１０）、障害発生時の状態を保存したままとなる。この場合、記憶装置（ＲＯＭ）２０を主記憶装置３０のアドレス空間に対応付けし（ステップＡ１１）、キャッシュメモリ１１を使用してメモリダンプ手順２１を実行し、主記憶装置３０の内容を磁気ディスク５０に退避する。これによりメモリダンプを採取することができる（ステップＡ１２）。
【００１６】
メモリダンプを採取した後は、異常終了フラグ４１の値を０に設定し（ステップＡ８）、メモリダンプ採取の手順を終了する。
【００１７】
図３は、本発明の第２の実施形態に係る計算機システムを説明する図、図４は該計算機システムの処理を説明する図である。
【００１８】
図３に示すように、計算機システムはＣＰＵ１０、記憶装置（ＲＯＭ）２０、主記憶装置３０、不揮発性メモリ４０、磁気ディスク装置５０を備える。さらに、ネットワークインタフェース７０、外部計算機８０を備える。
【００１９】
ネットワークインタフェース７０とのデータの受け渡しは、データバス６０を介して行われる。外部計算機８０とネットワークインターフェース７０とのデータの受け渡しは、ネットワーク９０を介して行われる。
【００２０】
キャッシュメモリ１１は、ＣＰＵ１０の内部に存在し、メモリダンプ手順２２を読み込み実行できる容量を有する。しかしメモリダンプ手順２３を読み込み実行できる容量を有していない。一時メモリダンプ４２は、メモリダンプ手順２３を主記憶装置３０で実行するために必要な容量を一時的に確保するために、主記憶装置３０のメモリダンプの一部を保存する。
【００２１】
メモリダンプ手順２２は、記憶装置（ＲＯＭ）２０に保存されており、メモリダンプ手順２３を主記憶装置３０で実行するために必要な領域の分だけ主記憶装置３０から一時メモリダンプ４２へメモリダンプを採取し、それにより空いた領域へ、メモリダンプ手順２３を読み込み、メモリダンプ手順２３を実行する手順である。なお、前記採取により空いた領域が正常か検査を行い、正常な場合にのみ前記領域に外部記憶装置からメモリダンプ手順の残部を読み込ませることが望ましい。
【００２２】
メモリダンプ手順２３は、記憶装置（ＲＯＭ）２０に保存されており、一時メモリダンプ４２の内容と主記憶装置３０の残りのメモリダンプを採取し、ネットワークインタフェース７０を介して、外部に接続された計算機８０へ転送する手順である。
【００２３】
次に、図４のフローチャートを参照し、メモリダンプ採取の手順を説明する。なお、通常動作時の処理（ステップＢ２〜Ｂ８）は、図２に示す通常時の処理（Ａ２〜Ａ８）と同一である。
【００２４】
オペレーティングシステム運用中に障害が発生した場合は（ステップＢ６）、オペレータは計算機のリセットを行なう（ステップＢ９）。
【００２５】
再起動後は、異常終了フラグ４１が１であるため、主記憶装置３０の初期化がバイパスされ（ステップＢ１，Ｂ１０）、障害発生時の状態を保存したままとなる。
【００２６】
この場合、記憶装置（ＲＯＭ）２０を主記憶装置３０のアドレス空間に対応付けし（ステップＢ１１）、メモリダンプ手順２２を実行し、主記憶装置３０の内容の一部を一時メモリダンプ４２に退避する（ステップＢ１２）。この退避により空いた領域へメモリダンプ手順２３を読み込み（ステップＢ１３）、メモリダンプ手順２３の実行を行う。メモリダンプ手順２３は、一時メモリダンプ４２の内容と主記憶装置３０の残りの内容をネットワークインタフェース７０を介して接続された計算機８０へ退避する。これにより、メモリダンプを採取することができる（ステップＢ１４）。
【００２７】
メモリダンプを採取した後は、異常終了フラグ４１の値を０に設定し（ステップＢ８）、メモリダンプ採取の手順を終了する。
【００２８】
図５は、キャッシュメモリのメインメモリの一部への対応付けによるメモリダンプ採取方法を説明する図である。
【００２９】
バスインタフェース１２はＣＰＵ１０の内部に存在し、ＣＰＵ１０とバス６０との間でやりとりされるデータの制御を行う装置である。キャッシュメモリ１１はＣＰＵ１０の内部に存在し、バスインタフェース１２と演算処理装置１３の間で主記憶装置３０のキャッシュ動作を行う装置である。演算処理装置１３はＣＰＵ１０の内部に存在し各種演算処理を行う装置であり、キャッシュメモリ１１が有効の場合はキャッシュメモリ１１にアクセスを行い、キャッシュメモリ１１が無効の場合はバスインタフェース１２を介して主記憶装置３０にアクセスする。
【００３０】
バスインタフェース１２は、ＣＰＵキャッシュのメモリキャッシュ動作が無効化された状態で演算処理装置１３がバスインタフェース１２を介して主記憶装置３０の存在する最後のアドレスからキャッシュメモリサイズ分までの間の領域３１にアクセスを行う場合に、アクセスを行うアドレスから主記憶装置の最後のアドレスを減算してキャッシュメモリのアドレスに変換し、データの読み込み書き込み動作を主記憶装置３０に対して行うのではなくキャッシュメモリ１１に対して行うことにより、主記憶装置３０の最後尾（領域３１）にキャッシュメモリが存在しているように見せる機構を有する。
【００３１】
メモリダンプ手順はこのバスインタフェース１２の動作により、主記憶装置３０の一部として対応付けされたキャッシュメモリ１１上に読み込まれ実行される。これにより主記憶装置３０の内容を破壊することなくメモリダンプを採取することができる。
【００３２】
図６は、キャッシュメモリの通常の使用方法によるメモリダンプ採取方法を説明する図である。図６に示すように、ＣＰＵ１０内のキャッシュメモリ１１に納まるメモリダンプ手順２１を記録した記憶装置２０を有し、その記憶装置２０を主記憶装置３０の一部３２に対応させる機構を有する。ＣＰＵ１０はメモリダンプ手順２１を主記憶装置３０の一部３２に対応させられた記憶装置２０から読み込み、メモリダンプ手順１１ｂとしてＣＰＵ内のキャッシュメモリ１１内に格納する。
【００３３】
メモリダンプ手順実行に使用される作業用のデータの主記憶装置への入出力を行う場合、キャッシュメモリに読み込まれた範囲内での入出力であれば主記憶装置３０に入出力を行うことはない。メモリダンプ手順がメモリダンプの採取のため主記憶装置３０を読み込み、同時に主記憶装置３０から読み込んだ内容がキャッシュメモリ１１に主記憶装置の内容１１ａとして転送され、キャッシュメモリ１１に空きがなくなると使用頻度の低い内容から破棄されるが、メモリダンプ手順は常に実行されているためキャッシュメモリ上に留まる。このため、過去に読み込んだ主記憶装置の内容が破棄されることになり主記憶装置の内容を破壊することなくメモリダンプを採取することができる。
【００３４】
図７は、十分な容量のキャッシュメモリがない場合のＩ／Ｏ装置７１を使用したメモリダンプ採取方法を説明する図である。図７に示すように、メモリダンプ手順を記録した記憶装置２０を有し、その記憶装置２０を主記憶装置３０の一部３２に対応させる機構を有する。ＣＰＵ１０はメモリダンプ手順２１を主記憶装置の一部に対応させられた記憶装置から読み込み実行する。Ｉ／Ｏ装置７１は、装置内にデータを記憶する機構を有し、データ記憶位置の指定用にポートＸ７２を、またデータの読み込みと書き込み用にポートＹ７３を有する装置である。この装置では、主記憶装置３０のあるアドレスへデータを書き込む操作の代わりに、Ｉ／Ｏ装置７１のポートＸ７２へアドレスを書き込みポートＹ７３へデータの書き込みを行う。また、主記憶装置３０のあるアドレスからデータを読み込む操作の代わりに、Ｉ／Ｏ装置７１のポートＸ７２にアドレスを書き込み、ポートＹ７３からデータを読み込む。このように、メモリダンプ手順実行に必要となる作業用のデータの主記憶装置３０への入出力をＩ／Ｏ装置７１への入出力へ置き換えることにより、主記憶装置３０の内容を破壊することなくメモリダンプを採取することができる。
【００３５】
以上説明したように、本発明の実施形態によれば、計算機システムが主記憶装置の障害などによりハングアップした状態においても、キャッシュメモリを使用してメモリダンプ手順を実行することが可能なため、障害発生時のメモリダンプを取得することが可能となり、ハングアップの要因の調査の効率を飛躍的に向上させることができる。また、キャッシュメモリを使用してメモリダンプを取得するため、主記憶装置にメモリダンプ手順用の領域を確保しておく必要がなく、オペレーティングシステムが効率的に主記憶装置を使用することが可能となる。
【図面の簡単な説明】
【００３６】
【図１】本発明の第１の実施形態に係る計算機システムを説明する図である。
【図２】図１に示す計算機システムの処理を説明する図である。
【図３】本発明の第２の実施形態に係る計算機システムを説明する図である。
【図４】図３に示す計算機システムの処理を説明する図である。
【図５】キャッシュメモリのメインメモリの一部への対応付けによるメモリダンプ採取方法を説明する図である。
【図６】キャッシュメモリの通常の使用方法によるメモリダンプ採取方法を説明する図である。
【図７】十分な容量のキャッシュメモリがない場合のＩ／Ｏ装置を使用したメモリダンプ採取方法を説明する図である。
【符号の説明】
【００３７】
１０  ＣＰＵ
１１  キャッシュメモリ
１１ａ  キャッシュされた主記憶装置の内容
１１ｂ  キャッシュされたメモリダンプ手順
１２  バスインタフェース
１３  演算処理装置
２０  記憶装置（ＲＯＭ）
２１  メモリダンプ手順
２２  メモリダンプ手順
２３  メモリダンプ手順
３０  主記憶装置
３１  主記憶装置の一部として見えるキャッシュメモリ
３２  主記憶装置の一部に対応付けられたメモリダンプ手順記憶装置
３３  主記憶装置の一部に対応付けられたメモリダンプ手順
４０  不揮発性メモリ
４１  異常終了フラグ
４２  一時メモリダンプ
５０  外部記憶装置
６０  バス
７０  ネットワークインタフェース
７１  Ｉ／Ｏ装置
７２  ポートＸ
７３  ポートＹ
８０  外部計算機
９０  ネットワーク
【図１】
2006285848.tif 000003
【図２】
2006285848.tif 000004
【図３】
2006285848.tif 000005
【図４】
2006285848.tif 000006
【図５】
2006285848.tif 000007
【図６】
2006285848.tif 000008
【図７】
2006285848.tif 000009