(57)【要約】      （修正有）【課題】演算装置のメモリに格納された所望のデータを採取することができるデータ採取装置、メモリコントローラ、演算装置、情報処理装置、データ採取システム、及びデータ採取方法を提供する。【解決手段】データ採取システム１００ａの情報処理装置４において、演算装置のデータ採取機能付メモリコントローラ１２ａは、予め定められた第１プログラムが格納された第１メモリ領域へのプロセッサのアクセスを検出すると、データを採取するための第２プログラムに含まれるコード情報を、第１メモリ領域に格納された第１プログラムに含まれるコード情報の代わりにプロセッサに通知するデータ採取部、を備える。【選択図】図３
2019160148.tif 000002
【特許請求の範囲】
【請求項１】
予め定められた第１プログラムが格納された第１メモリ領域へのプロセッサのアクセスを検出すると、データ採取用の第２プログラムに含まれるコード情報を、前記第１プログラムに含まれるコード情報の代わりに前記プロセッサに返答するデータ採取部、
を備えるデータ採取装置。
【請求項２】
前記第２プログラムは、障害の解析に必要なデータを採取するように作成されたプログラムであって、
前記データ採取部は、前記プロセッサが稼働する情報処理装置の障害に応じたデータを採取する前記第２プログラムを取得して第２メモリ領域に格納する、
請求項１に記載のデータ採取装置。
【請求項３】
前記データ採取部は、前記第２プログラムによって採取するデータを変更する可能性がある前記第１プログラムのコード情報が格納された前記第１メモリ領域への前記プロセッサのアクセスに対し、セルフループ命令を返答し、前記プロセッサによる前記第１プログラムの実行を休止する、
請求項２に記載のデータ採取装置。
【請求項４】
前記データ採取部は、前記第２メモリ領域および前記第２プログラムの実行により採取したデータを格納する第３メモリ領域、
を備える請求項２から請求項３の何れか１項に記載のデータ採取装置。
【請求項５】
メインメモリへのアクセスを実行する機能を有するメモリコントローラであって、
請求項１から請求項４の何れか１項に記載のデータ採取装置、
を備えるメモリコントローラ。
【請求項６】
プロセッサと、
メインメモリと、
請求項１から請求項４の何れか１項に記載のデータ採取装置と、
を備える演算装置。
【請求項７】
請求項６に記載の演算装置を備える情報処理装置。
【請求項８】
プロセッサと、
メインメモリと、
請求項１から請求項４の何れか１項に記載のデータ採取装置と、
前記データ採取装置へ前記第２プログラムを送信し、前記データ採取装置から前記第２プログラムの実行により採取したデータを受信する外部装置と、
を備えるデータ採取システム。
【請求項９】
予め定められた第１プログラムが格納された第１メモリ領域へのプロセッサのアクセスを検出すると、データ採取用の第２プログラムに含まれるコード情報を、前記第１メモリ領域に格納された前記第１プログラムに含まれるコード情報の代わりに前記プロセッサに返答する、
データ採取方法。
【請求項１０】
プロセッサとメモリを備える情報処理装置に障害が発生したときに前記プロセッサによる前記メモリのプログラムが格納された領域へのアクセスに対してセルフループ命令を設定するステップと、
前記障害の解析に必要なデータを採取するための採取用プログラムを取得するステップと、
前記プロセッサが前記採取用プログラムを実行するステップと、
前記採取用プログラムを実行して採取したデータを出力するステップと、
を有するデータ採取方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ採取装置、メモリコントローラ、演算装置、情報処理装置、データ採取システム、データ採取方法に関する。
【背景技術】
【０００２】
情報処理装置で障害が発生した場合、エラーログを採取し、これを解析して原因を特定する。エラーログには、例えば、レジスタダンプ、メモリダンプなどの情報が含まれる。例えば、特許文献１には、物理コア上に構築された仮想コアが用いる現在のレジスタ値を取得することができるプログラムを、その仮想コアの実行コンテキストに影響を与えることなく実行できる手段を有する中央演算装置について記載がある。この中央演算装置を用いれば、仮想コア上で動作するプログラムの動作検証が容易になる。
【０００３】
特許文献２には、無線基地局で発生する障害について、自己診断機能の実行結果に応じて、障害を解析するための検証用プログラムを選択し、選択した検証用プログラムを実行する障害検査装置が記載されている。
【０００４】
特許文献３には、複数のコンピュータを含むネットワークシステムの遠隔保守システムについて記載がある。遠隔保守システムは、保守マネージャ端末と、保守対象の複数のコンピュータを含む。この遠隔保守システムでは、保守実行プログラムが、１台のコンピュータで実行され、実行が完了すると、次のコンピュータへ送信されて実行される、という工程が、全コンピュータについて保守実行プログラムの実行が完了するまで繰り返される。また、各コンピュータにおける保守実行プログラムの実行結果が保守マネージャ端末へ送信される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第６０８６２３０号公報
【特許文献２】特開２０１６−１６７１０８号公報
【特許文献３】特開平１１−２２４２１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
一般的に演算装置は、障害が発生するとエラーログを出力し、エラーログの出力完了後は、状態をリセットし通常動作を継続するか、動作を停止することが多い。つまり、障害発生時の状態を保持したまま、追加のログデータを採取することが出来ない。従って、エラーログだけで障害の原因を特定できなかった場合、障害の原因追及が困難になる。また、特許文献１〜特許文献３には、情報処理装置の障害時に、障害発生時における情報処理装置の状態を示すデータを障害の種類等に応じて任意に採取することができる技術が開示されていない。
【０００７】
そこでこの発明は、上述の課題を解決するデータ採取装置、メモリコントローラ、演算装置、情報処理装置、データ採取システム、データ採取方法を提供することを目的としている。
【課題を解決するための手段】
【０００８】
本発明の一態様によれば、予め定められた第１プログラムが格納された第１メモリ領域へのプロセッサのアクセスを検出すると、データ採取用の第２プログラムに含まれるコード情報を、前記第１プログラムに含まれるコード情報の代わりに前記プロセッサに返答するデータ採取部、を備えるデータ採取装置である。
【０００９】
本発明の一態様によれば、プロセッサと、メインメモリと、上記のデータ採取装置と、を備える演算装置である。
【００１０】
本発明の一態様によれば、プロセッサと、メインメモリと、上記のデータ採取装置と、前記データ採取装置へ前記第２プログラムを送信し、前記データ採取装置から前記第２プログラムの実行により採取したデータを受信する外部装置と、を備えるデータ採取システムである。
【００１１】
本発明の一態様によれば、予め定められた第１プログラムが格納された第１メモリ領域へのプロセッサのアクセスを検出すると、データ採取用の第２プログラムに含まれるコード情報を、前記第１プログラムに含まれるコード情報の代わりに前記プロセッサに返答する、データ採取方法である。
【発明の効果】
【００１２】
本発明のデータ採取装置によれば、所望のデータを採取することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態によるデータ採取システムの概要を示す図である。
【図２】本発明の一実施形態によるデータ採取装置の最小構成を示す図である。
【図３】本発明の一実施形態によるデータ採取システムの一例を示す図である。
【図４】本発明の一実施形態によるデータ採取装置の一例を示す図である。
【図５】本発明の一実施形態によるデータ採取装置が備える内部メモリの一例を示す図である。
【図６】本発明の一実施形態によるデータ採取処理に用いるメモリアクセスの一例を示す図である。
【図７】本発明の一実施形態による演算装置が備えるメモリの一例を示す図である。
【図８】本発明の一実施形態によるデータ採取処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１４】
＜実施形態＞
以下、本発明の一実施形態によるデータ採取システムについて図１〜図８を参照して説明する。
図１は、本発明の一実施形態によるデータ採取システムの概要を示す図である。
データ採取システム１００は、演算装置１と、外部装置２と、コンソール端末３とを含む。演算装置１は、ＣＰＵ（central processing unit）等のプロセッサ１１と、データ採取装置１２と、ＲＡＭ（random access memory）等のメインメモリ１３と、を備える。
データ採取装置１２は、外部装置２と信号線により通信可能に接続されている。外部装置２とコンソール端末３とは、ＬＡＮ（local network area）等のネットワークによって通信可能に接続されている。コンソール端末３は、外部装置２を介して、データ採取装置１２とデータの送受信を行うことができる。外部装置２とコンソール端末３は、コンピュータを備える。
【００１５】
データ採取システム１００は、コンソール端末３からデータ採取装置１２へ転送されるデータ採取用プログラムを実行することにより、メインメモリ１３に格納された任意のデータを採取することを可能とするシステムである。データ採取システム１００は、障害発生時のログデータの採取に用いることができる。
【００１６】
図１に示すようにプロセッサ１１と、データ採取装置１２と、メインメモリ１３はバスで接続される。プロセッサ１１とメインメモリ１３の間に配置されるデータ採取装置１２は、プロセッサ１１によるメインメモリ１３へのアクセス情報を取得することができる。また、データ採取装置１２は、メインメモリ１３に対してメモリアクセスを実行する機能を有する。例えば、データ採取装置１２は、メインメモリ１３の任意のアドレスのデータを読み出すことができ、任意のアドレスにデータを書き込むことができる。また、データ採取装置１２は、メインメモリ１３に対して発行されたメモリアクセスを解析し、アクセス元の装置、アクセス先のアドレス、リード・ライトのアクセス種別、等の情報を取得することができる。例えば、データ採取装置１２は、プロセッサ１１が発行したメモリアクセスを解析し、プロセッサ１１がアクセスするメモリ領域のアドレスを取得することができる。従って、データ採取装置１２は、プロセッサ１１のアクセス種別がリードで、アクセス先のアドレスがメインメモリ１３のプログラムを格納する領域であれば、プロセッサ１１が当該アドレスから命令データを読み出して実行すると判断することができる。
【００１７】
さらにデータ採取装置１２は、メインメモリ１３に対するアクセス種別がリードのアクセスに対して、メインメモリ１３から読み出したデータではなく、外部に接続されたコンソール端末３から外部装置２を介して転送されたデータをリードデータとして返すという特徴的な機能を有する。この機能を用いて、データ採取装置１２を、プロセッサ１１による命令コード（コード情報）の読み出しのアクセスを検出し、このアクセスに対して、データ採取用プログラムのコード情報を返答するよう構成する。すると、プロセッサ１１にデータ採取用プログラムを実行させることが可能となる。これにより、データ採取装置１２はプロセッサ１１にデータ採取用プログラムを実行させることで、データ採取用プログラムが目的とする任意のデータを採取することが可能になる。
【００１８】
図２は、本発明の一実施形態によるデータ採取装置の最小構成を示す図である。
図示するようにデータ採取装置１２は、少なくともデータ採取部１２１、を備える。
データ採取部１２１は、メモリアクセスの参照や実行が可能である。例えば、データ採取部１２１は、予め定められた第１プログラムが格納された第１メモリ領域（メインメモリ１３の所定の領域）へのプロセッサのアクセスを検出すると、データ採取用の第２プログラム（以下、データ採取用プログラム）に含まれるコード情報を、第１メモリ領域に格納された第１プログラムのコード情報の代わりにプロセッサ１１に返答する。ここで、第１プログラムとは、例えば、演算装置１を備える情報処理装置で障害が発生したときに実行される一つ又は複数の命令コードのことである。この命令コードは、障害発生時にメモリダンプ等の汎用的な障害ログデータを採取する一連の処理の完了後に実行されるように構成されている。第１プログラムが実行されると、演算装置１の状態（メインメモリ１３の記憶内容など）が遷移し、障害発生時の演算装置１の状態が消失してしまう。従って、採取済みの汎用的な障害ログデータとは別に、障害発生時のデータを追加で採取しようとしても困難な場合が多い。そこで、データ採取部１２１は、その実行により障害発生時のデータを変更する可能性がある第１プログラムのコード情報が格納されている第１メモリ領域へのプロセッサ１１のアクセスに対し、セルフループ命令を表すコード情報を返答し、プロセッサ１１による第１プログラムの実行を休止させる。第１プログラムの実行が休止すると、障害発生時の状態が保存される。データ採取部１２１は、例えば、データ採取用プログラムの実行準備ができるまでの間、セルフループ命令の返答を繰り返す。この間、演算装置１の状態が障害発生時のまま保存される。一方、データ採取用プログラムの実行準備ができると、データ採取部１２１は、データ採取用プログラムに含まれるコード情報をその処理順に読み出して取得し、読み出したコード情報をプロセッサ１１に通知して、第２プログラムを実行させる。これにより、障害発生時のまま保存されたデータを採取することができる。なお、データ採取用プログラム（第２プログラム）は、障害の解析に必要なデータを採取するように（例えば、メインメモリ１３の目的とするアドレスに格納された情報を読み出すように）作成されたプログラムである。データ採取用プログラムは、発生した障害に応じて作成されてもよい。
【００１９】
次に図３、図４に本実施形態のデータ採取システムの一実装例を示す。
図３は、本発明の一実施形態によるデータ採取システムの一例を示す図である。
図３に示すようにデータ採取システム１００ａは、情報処理装置４と、コンソール端末３とを含む。情報処理装置４は、演算装置１ａと、外部装置２と、を含む。演算装置１ａは、プロセッサコア１１ａと、データ採取機能付きメモリコントローラ１２ａ（以下、メモリコントローラ１２ａ）と、ＤＤＲ(double data rate) ＲＡＭ１３ａと、ＰＣＩ Ｅｘｐｒｅｓｓ（以下、ＰＣＩｅ）コントローラ１４と、を備える。プロセッサコア１１ａと、メモリコントローラ１２ａと、ＤＤＲ ＲＡＭ１３ａと、ＰＣＩｅコントローラ１４とは、演算装置１の内部バス１７で接続される。また、外部装置２と演算装置１ａとは、ＰＣＩｅ１８で接続されている。外部装置２は、ＰＣＩｅ１８および内部バス１７を介して、メモリコントローラ１２ａと通信可能である。データ採取を行うオペレータは、コンソール端末３を操作することにより、外部装置２を介してメモリコントローラ１２ａ（データ採取部１２１）を操作することができる。
【００２０】
メモリコントローラ１２ａは、上記のデータ採取装置１２の機能を備える。メモリコントローラ１２ａは、情報処理装置４の通常動作時には、一般的なメモリコントローラとして動作する。つまり、メモリコントローラ１２ａは、プロセッサコア１１ａからのアクセス要求を受け、ＤＤＲ ＲＡＭ１３ａに対してデータのリード・ライトを行う。また、メモリコントローラ１２ａは、所定のメモリアクセスが発行されると、データ採取用プログラムをコンソール端末３から取得し、プロセッサコア１１ａに実行させる機能を有している。このメモリアクセスは、情報処理装置４に障害が発生したときに発行される。次に図４〜図６を用いて、メモリコントローラ１２ａについて詳しく説明する。
【００２１】
図４は、本発明の一実施形態によるデータ採取装置の一例を示す図である。
メモリコントローラ１２ａは、データ採取部１２１と、ローカルバスインタフェース部１２２と、ＤＤＲＲＡＭインタフェース部１２３と、を含んで構成される。データ採取部１２１は、命令コード変換機１２１１と、内部メモリ１２１２と、を含んで構成される。データ採取部１２１と内部バス１７とは、ローカルバスインタフェース部１２２を介して、アドレス信号線１２１３、制御信号線１２１４、データ信号線１２１５で接続している。データ採取部１２１とＤＤＲ ＲＡＭ１３ａとは、ＤＤＲＲＡＭインタフェース部１２３を介して、アドレス信号線１２１３、制御信号線１２１４、データ信号線１２１５で接続している。また、データ採取部１２１の内部では、命令コード変換機１２１１と、内部メモリ１２１２とが、信号線１２１６で接続している。
【００２２】
アドレス信号線１２１３は、ＤＤＲ ＲＡＭ１３ａにおけるアクセス先のアドレス情報を伝送する。制御信号線１２１４は、ＤＤＲ ＲＡＭ１３ａへのアクセスタイミングや、リード・ライトを識別するためアクセス種別等の制御信号を伝送する。データ信号線１２１５は、ＤＤＲ ＲＡＭ１３ａへライトするデータや、ＤＤＲ ＲＡＭ１３ａからリードしたデータを伝送する。
【００２３】
命令コード変換機１２１１は、アドレス信号線１２１３と、制御信号線１２１４と、データ信号線１２１５が伝送するデータを参照、中継する。より具体的には、データ採取部１２１は、アドレス信号線１２１３が伝送するアドレス情報と、データ信号線１２１５が伝送するデータと、制御信号線１２１４が伝送する制御信号とを参照し、アクセス種別がリードの場合は、アドレス信号線１２１３で伝送されるアドレス情報が示すＤＤＲ ＲＡＭ１３ａのアドレスからデータを読み出し、読み出したデータをデータ信号線１２１５を介して内部バス１７へ伝送する。アクセス種別がライトの場合、命令コード変換機１２１１は、アドレス信号線１２１３で伝送されるアドレス情報が示すＤＤＲ ＲＡＭ１３ａのアドレスに、内部バス１７からデータ信号線１２１５を介して伝送されるデータを書き込む。
【００２４】
また、命令コード変換機１２１１は、アドレス信号線１２１３と、制御信号線１２１４を参照して、データ信号線１２１５が伝送するデータを制御することができる。例えば、命令コード変換機１２１１は、アクセス先のアドレスが、メインメモリ１３におけるプログラムを格納する領域でアクセス種別がリードの場合、内部メモリ１２１２に格納された任意のデータ（例えば、セルフループ命令を表すコード情報やデータ採取用プログラムのコード情報）を、ＤＤＲ ＲＡＭ１３ａから読み出したリードデータとして、プロセッサコア１１ａへ伝送することができる。ここで、内部メモリ１２１２について説明する。
【００２５】
図５は、本発明の一実施形態によるデータ採取装置が備える内部メモリの一例を示す図である。
内部メモリ１２１２は、図５に示すように、セルフループ命令を格納するセルフループ命令格納領域１２１２１と、データ採取用プログラムを格納するプログラム格納領域１２１２２と、採取したデータを格納するために使用するワークエリア１２１２３とを備える。命令コード変換機１２１１は、これらの各領域に対して任意にリード、ライトを実行することができる。命令コード変換機１２１１は、ＤＤＲ ＲＡＭ１３ａへの通常のメモリアクセスに加え、所定のメモリアクセスが発行されると、図５に例示する内部メモリ１２１２へアクセスを行う。
【００２６】
次に内部メモリ１２１２へのアクセスの契機となるメモリアクセスについて説明する。
図６は、本発明の一実施形態によるデータ採取処理に用いるメモリアクセスの一例を示す図である。
命令コード変換機１２１１は、プロセッサコア１１ａが行う通常のメモリアクセスの他に、図６に示すような特殊なアドレスと制御信号の組み合わせを有するメモリアクセスを検出すると、そのメモリアクセスを、データ採取のためのコマンドと判断する。例えば、図６の１行目のメモリアクセスの場合、アドレス信号線１２１３で伝送されるアクセス先のアドレスが「０ｘＦＦＦＦ０００Ａ」で、制御信号線１２１４で伝送される制御信号が「ライト」の場合、命令コード変換機１２１１は、このメモリアクセスを、通常のメモリアクセスではなく、データ採取開始指示であると判断する。データ採取開始指示であると判断すると、命令コード変換機１２１１は、データ採取処理（データ採取用プログラムの実行）を開始する。
【００２７】
同様に、アクセス先のアドレスが「０ｘＦＦＦＦ０００Ｂ」で、制御信号が「ライト」の場合、命令コード変換機１２１１は、このメモリアクセスがプログラム転送開始指示であると判断する。すると、命令コード変換機１２１１は、コンソール端末３から外部装置２を介して転送されるデータ採取用プログラムを取得して、プログラム格納領域１２１２２に格納する。
【００２８】
また、アクセス先のアドレスが「０ｘＦＦＦＦ０００Ｃ」で、制御信号が「ライト」の場合、命令コード変換機１２１１は、このメモリアクセスがプログラム転送終了指示であると判断する。すると、命令コード変換機１２１１は、プログラム格納領域１２１２２に格納したデータ採取用プログラムを実行する。
【００２９】
また、アクセス先のアドレスが「０ｘＦＦＦＦ０００Ｄ」で、制御信号が「ライト」の場合、命令コード変換機１２１１は、このメモリアクセスがデータ採取用プログラムによるデータ採取の完了通知であると判断する。すると、命令コード変換機１２１１は、ワークエリア１２１２３の採取したデータを、外部装置２を介してコンソール端末３へ転送する。
【００３０】
図３に戻る。プロセッサコア１１ａは、例えば、ＣＰＵである。ＤＤＲ ＲＡＭ１３ａは、メインメモリである。ＤＤＲ ＲＡＭ１３ａは、図７に示す各領域を備える。
図７は、本発明の一実施形態による演算装置が備えるメモリの一例を示す図である。
図７に示すようにＤＤＲ ＲＡＭ１３ａは、プロセッサコア１１ａが実行するプログラム（コード情報）を格納するプログラムコード領域１３１と、当該プログラムの実行中に使用するデータを格納するデータ格納領域１３２とを備える。例えば、命令コード変換機１２１１は、アドレス信号線１２１３で伝送されるアクセス先のアドレスと、制御信号線１２１４で伝送される制御信号を参照し、アクセス先アドレスがプログラムコード領域１３１で、制御信号が「リード」であれば、このアクセスが、プロセッサコア１１ａが実行するプログラムコードの読み出しであると判断することができる。
【００３１】
ＰＣＩｅコントローラ１４は、高速インタフェースであるＰＣＩｅ１８に接続された外部の機器と、メモリコントローラ１２ａ等の各モジュールと間の通信を制御する。
【００３２】
外部装置２は、コンソール端末３からデータ採取用プログラムを受信して、演算装置１ａ（メモリコントローラ１２ａ）へデータ採取用プログラムを送信する。また、外部装置２は、データ採取用プログラムの送信前と送信後に、上記のプログラム転送開始および終了を意味するメモリアクセスを、メモリコントローラ１２ａへ発行する。
また、外部装置２は、メモリコントローラ１２ａが転送した採取後のデータを取得し、このデータをコンソール端末３へ送信する。
【００３３】
コンソール端末３は、障害の解析などを行うオペレータが使用する端末である。オペレータは、情報処理装置４の障害発生時に、障害の原因を追究するのに必要なデータを判断する。オペレータは、必要なデータを採取することができるデータ採取用プログラムを、メモリコントローラ１２ａへ送信するようコンソール端末３に指示操作を行う。コンソール端末３は、指定されたデータ採取用プログラムを、外部装置２を介してメモリコントローラ１２ａへ転送する。
【００３４】
なお、情報処理装置４で障害が発生すると、情報処理装置４に備わる保守機能により、メモリダンプ等の各種ログを採取する汎用的な障害ログデータを収集するプログラムが実行される。また、情報処理装置４は、障害ログデータの収集プログラムの実行が完了すると、図６で例示した「データ採取開始」を意味するメモリアクセスを発行するように構成されている。
【００３５】
次に本実施形態のデータ採取処理の流れについて、図８を用いて説明する。
図８は、本発明の一実施形態によるデータ採取処理の一例を示すフローチャートである。
まず、情報処理装置４で障害が発生したとする。すると、情報処理装置４は、障害ログデータの収集プログラムを実行する。収集プログラムの実行が完了すると、情報処理装置４は、障害の発生とログ収集の完了とを、コンソール端末３等へ出力する等してオペレータに通知する。情報処理装置４は、収集プログラム実行の完了を検知すると（ステップＳ１１）、障害時のＤＤＲ ＲＡＭ１３ａ等の状態を保存するため、「データ採取開始」メモリアクセスを発行する（ステップＳ１２）。具体的には、情報処理装置４は、アクセス先のアドレスが「０ｘＦＦＦＦ０００Ａ」で制御信号が「ライト」のライトアクセスを発行する。すると、メモリコントローラ１２ａでは、命令コード変換機１２１１が、このメモリアクセスを検出する。
【００３６】
命令コード変換機１２１１は、「データ採取開始」を意味するメモリアクセスを検出すると、データ採取の準備処理を行う（ステップＳ１３）。具体的には、（１）まず、命令コード変換機１２１１は、アドレス信号線１２１３で伝送されるアドレス情報（「０ｘＦＦＦＦ０００Ａ」）と、制御信号線１２１４で伝送される制御信号（「ライト」）を、ＤＤＲＲＡＭインタフェース部１２３に伝送せず破棄する。（２）また、命令コード変換機１２１１は、プロセッサコア１１ａを休止させるため、次にプロセッサコア１１ａのコード情報の読み出し（図７で例示したプログラムコード領域１３１のアドレスに対するリードアクセス）を検出した場合、アドレス信号線１２１３および制御信号線１２１４で伝送されるデータを、ＤＤＲＲＡＭインタフェース部１２３に伝送せず破棄する。（３）そして、命令コード変換機１２１１は、データ信号線１２１５を介して、内部メモリ１２１２のセルフループ命令格納領域１２１２１に格納されたセルフループ命令をプロセッサコア１１ａへ伝送する。セルフループ命令とは、例えば、同じアドレスを再度、読み取るように指示する命令である。プロセッサコア１１ａは、伝送されたセルフループ命令を実行する。セルフループ命令で指定される次の実行アドレスは変化しないため、プロセッサコア１１ａは、次もまた同じアドレスに対するリードアクセスを実行する。命令コード変換機１２１１は、（２）、（３）の処理を繰り返し、プログラムコード領域１３１へのリードアクセスに対し、セルフループ命令を設定して返す。これにより、同一アドレスに対してプログラムコードの読み出しが繰り返し発生し、プロセッサコア１１ａは見かけ上停止する。命令コード変換機１２１１は、必要なデータの採取が完了し、プロセッサコア１１ａの休止が解除できるようになるまで、セルフループ命令を繰り返しプロセッサコア１１ａに伝送する。これにより、プロセッサコア１１ａによる第１プログラム（例えば、システムのリセットを実行するコード情報の集まり）の実行を一時停止させる。プロセッサコア１１ａを休止させるのは、ＤＤＲ ＲＡＭ１３ａに格納された障害発生時の状態を示す種々のデータが変更されてしまうのを防ぐためである。
【００３７】
次にオペレータは、障害ログデータを参考にして、障害ログデータの収集プログラムが出力したログ以外に必要なデータを判断する。そして、オペレータは、必要なデータを追加で採取するためのデータ採取用プログラムを特定する。収集プログラムが収集するログは、障害発生時の情報処理装置４の全体的な状態が記録されていて、障害原因のおおよその見当をつけることができても、正確に原因を追究したり、対処したりするには情報が不足することがある。このような場合、オペレータは、データ採取用プログラムを情報処理装置４で実行して必要なデータを追加で採取する。オペレータは、特定したデータ採取用プログラムをメモリコントローラ１２ａへ送信するようにコンソール端末３へ指示する。すると、コンソール端末３は、データ採取用プログラムを、外部装置２を介してメモリコントローラ１２ａへ送信する。このとき、外部装置２は、データ採取用プログラムの転送に先立ち、「プログラム転送開始」を指示するメモリアクセスをメモリコントローラ１２ａへ発行する（ステップＳ１４）。具体的には、情報処理装置４は、アクセス先のアドレスが「０ｘＦＦＦＦ０００Ｂ」で制御信号が「ライト」のライトアクセスを発行する。続いて、外部装置２は、データ採取用プログラムのプログラムデータを、任意のアドレスに対してライトすることを示すメモリアクセスを、データ採取用プログラムの容量分連続して、メモリコントローラ１２ａへ発行する。
【００３８】
これらのメモリアクセス発行に対し、メモリコントローラ１２ａでは、命令コード変換機１２１１が、「プログラム転送開始」を意味するメモリアクセスを検出する。また、命令コード変換機１２１１は、ライトアクセスと共に分割して転送されるデータ採取用プログラムを受信する（ステップＳ１５）。まず、（１）命令コード変換機１２１１は、プログラム転送開始指示を意味するメモリアクセスを検出した場合、アドレス信号線１２１３で伝送されるアドレス情報（「０ｘＦＦＦＦ０００Ｂ」）と、制御信号線１２１４で伝送される制御信号（「ライト」）を、ＤＤＲＲＡＭインタフェース部１２３に伝送せず破棄する。（２）また、命令コード変換機１２１１は、「プログラム転送開始」を検出すると、それ以降のメモリアクセスについては、データ採取用プログラムのデータ送信であると判断する。すると、命令コード変換機１２１１は、データ信号線１２１５で伝送されたデータを、ＤＤＲＲＡＭインタフェース部１２３に伝送せず、プログラム格納領域１２１２２に順に書き込む。なお、データ採取用プログラムは、実行順にデータ分割されて送信され、これを送信順にプログラム格納領域１２１２２に書き込み、書き込んだ順に読み出して実行すれば、目的とするデータが採取できるように構成されているとする。（３）命令コード変換機１２１１は、データ採取用プログラムのデータをプログラム格納領域１２１２２に格納する一方で、プロセッサコア１１ａからのセルフループの命令読み出しアクセスを検出すると、再度セルフループ命令を設定し、プロセッサコア１１ａへ返す処理を継続する。
【００３９】
データ採取用プログラムの転送が完了すると、外部装置２は、プログラム転送終了のメモリアクセスを発行する（ステップＳ１６）。具体的には、外部装置２は、アクセス先のアドレスが「０ｘＦＦＦＦ０００Ｃ」で制御信号が「ライト」のライトアクセスを発行する。すると、メモリコントローラ１２ａでは、命令コード変換機１２１１が、このメモリアクセスを検出する。命令コード変換機１２１１は、アドレス信号線１２１３で伝送されるアドレス情報（「０ｘＦＦＦＦ０００Ｃ」）と、制御信号線１２１４で伝送される制御信号（「ライト」）を、ＤＤＲＲＡＭインタフェース部１２３に伝送せず破棄する。
【００４０】
命令コード変換機１２１１は、データ採取用プログラムの転送完了を検出すると、プロセッサコア１１ａにデータ採取用プログラムを実行させる（ステップＳ１７）。具体的には、命令コード変換機１２１１は、プロセッサコア１１ａのプログラム読み出しのリードアクセスに対して、セルフループ命令ではなく、プログラム格納領域１２１２２に格納したデータ採取用プログラムのデータ（コード情報）を、実行順に読み出して伝送する。プロセッサコア１１ａは、伝送されたコード情報を実行する。
【００４１】
命令コード変換機１２１１は、データ採取用プログラムの実行中、プロセッサコア１１ａが発行するメモリアクセスについて以下のように処理する。
（Ａ）プログラムコード領域１３１へのアクセスに対しては、ＤＤＲＲＡＭインタフェース部１２３に伝送せず、プログラム格納領域１２１２２に格納したデータ採取用プログラムのデータを順次読み出してプロセッサコア１１ａへ伝送し、実行させる。
（Ｂ）データ格納領域１３２へのライトアクセスは、データ採取用プログラムが採取したデータの書き込み命令と判断し、ＤＤＲＲＡＭインタフェース部１２３に伝送せず、内部メモリ１２１２のワークエリア１２１２３に書き込む。この際、ワークエリア１２１２３の書き込み先のアドレスについては、例えば、ワークエリア１２１２３の範囲内のアドレスを順次割り当てて使用する。
（Ｃ）データ格納領域１３２へのリードアクセスは、データ採取用プログラムの実行による採取対象データの読み出し命令と判断し、ＤＤＲＲＡＭインタフェース部１２３に伝送する。命令コード変換機１２１１は、ＤＤＲ ＲＡＭ１３ａにて読み出されたデータを、データ信号線１２１５を介してデータをプロセッサコア１１ａへ伝送する。
（Ａ）により、採取用プログラムが実行され、（Ｃ）により採取対象のデータが採取され、（Ｂ）により採取対象のデータが保存される。
【００４２】
データ採取用プログラムはデータ採取処理が完了すると、最後に命令コード変換機１２１１へ、データ採取完了を意味するメモリアクセスを発行する（ステップＳ１８）。具体的には、データ採取用プログラムは、アクセス先のアドレスが「０ｘＦＦＦＦ０００Ｄ」で制御信号が「ライト」のライトアクセスを発行する。すると、メモリコントローラ１２ａでは、命令コード変換機１２１１が、このメモリアクセスを検出する。命令コード変換機１２１１は、アドレス信号線１２１３で伝送されるアドレス情報（「０ｘＦＦＦＦ０００Ｄ」）と、制御信号線１２１４で伝送される制御信号（「ライト」）を、ＤＤＲＲＡＭインタフェース部１２３に伝送せず破棄する。命令コード変換機１２１１は、データ採取完了のメモリアクセスを検出すると、データ採取処理が完了したと判断する。次に命令コード変換機１２１１は、外部装置２を介してコンソール端末３へデータ採取完了を通知する（ステップＳ１９）。また、命令コード変換機１２１１は、ワークエリア１２１２３に格納された採取されたデータを読み出して、外部装置２を介してコンソール端末３へ転送する（ステップＳ２０）。
【００４３】
また、命令コード変換機１２１１は、プロセッサコア１１ａから発行されたプログラムコード領域１３１へのリードアクセスに対し、引き続きセルフループ命令を返す。これは、今回採取したデータに加えて、さらにデータの採取が必要となる可能性があり、引き続き障害発生時の状態を保存するためである。
【００４４】
オペレータは、採取されたデータを解析し、障害原因が特定できれば追加のデータ採取は必要ないと判断し（ステップＳ２１；Ｎｏ）、データ採取を完了する指示をコンソール端末３へ入力する。メモリコントローラ１２ａの命令コード変換機１２１１は、この指示情報を取得すると、セルフループ命令の返答を解除する。すると、プロセッサコア１１ａは、第１プログラムを実行して、情報処理装置４で稼働するシステムのリセットなどを行う。
【００４５】
追加のデータ採取が必要であれば（ステップＳ２１；Ｙｅｓ）、オペレータは、別のデータ採取用プログラムを、コンソール端末３から外部装置２を介してメモリコントローラ１２ａに転送し、ステップＳ１４以降の処理を行って、再度データ採取用プログラムを実行させる。
【００４６】
本実施形態によれば、障害発生後の障害処理で採取される汎用的なログデータから障害の原因が特定できず、追加のデータ採取を必要とした場合でも、障害状況に応じた任意のデータ採取用プログラムを実行させることで原因の解析に役立つデータを採取することができる。
また、データ採取の必要がなくなるまで、任意のデータ採取用プログラムを繰り返しコンソール端末３からメモリコントローラ１２ａへ転送し、実行させることができる。また、その間、演算装置１を障害発生時の状態のまま保存することができるため、必要なデータを採取することができる。
【００４７】
なお、本実施形態のデータ採取用プログラムの実行タイミングは、汎用的な障害ログデータの採取後に限らない、障害後、直ちにデータ採取用プログラムを実行するように構成してもよい。
また、本実施形態によるデータ採取方法は、障害の原因究明だけではなく、情報処理装置４で稼働する各種ソフトウェアの検証などの目的にも用いることができる。
【００４８】
その他、本発明の趣旨を逸脱しない範囲で、上記した実施の形態における構成要素を周知の構成要素に置き換えることは適宜可能である。また、この発明の技術範囲は上記の実施形態に限られるものではなく、本発明の趣旨を逸脱しない範囲において種々の変更を加えることが可能である。
プログラムコード領域１３１は第１メモリ領域の一例、プログラム格納領域１２１２２は第２メモリ領域の一例、ワークエリア１２１２３は第３メモリ領域の一例である。
【符号の説明】
【００４９】
１、１ａ・・・演算装置
２・・・外部装置
３・・・コンソール端末
４・・・情報処理装置
１１・・・プロセッサ
１１ａ・・・プロセッサコア
１２・・・データ採取装置
１２ａ・・・メモリコントローラ
１３・・・メインメモリ
１３ａ・・・ＤＤＲ ＲＡＭ
１４・・・ＰＣＩｅコントローラ
１７・・・内部バス
１８・・・ＰＣＩｅ
１２１・・・データ採取部
１２２・・・ローカルバスインタフェース部
１２３・・・ＤＤＲＲＡＭインタフェース部
１２１１・・・命令コード変換機
１２１２・・・内部メモリ
１２１２１・・・セルフループ命令格納領域
１２１２２・・・プログラム格納領域
１２１２３・・・ワークエリア
１２１３・・・アドレス信号線
１２１４・・・制御信号線
１２１５・・・データ信号線
１２１６・・・信号線
１３１・・・プログラムコード領域
１３２・・・データ格納領域
１００、１００ａ・・・データ採取システム
【図１】
2019160148.tif 000003
【図２】
2019160148.tif 000004
【図３】
2019160148.tif 000005
【図４】
2019160148.tif 000006
【図５】
2019160148.tif 000007
【図６】
2019160148.tif 000008
【図７】
2019160148.tif 000009
【図８】
2019160148.tif 000010