(57)【要約】  障害発生時のメモリダンプの取得処理にかかる時間を短縮する。情報処理装置は、プロセッサ、第１の記憶部、制御部、第２の記憶部を備える。第１の記憶部は、プロセッサの主記憶として機能する。制御部は、プロセッサからの第１の記憶部への第１のアクセスと、第１のアクセスと同期せずに実行される第１の記憶部への第２のアクセスと、メモリダンプの取得に関する処理と、を制御する。第２の記憶部は、第２のアクセスの際に、制御部の指示により、第１の記憶部に記憶されているデータのメモリダンプを記憶する。
2016139774.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、
前記プロセッサの主記憶として機能する第１の記憶部と、
前記プロセッサから前記第１の記憶部への第１のアクセスと、前記第１のアクセスと同期せずに実行される前記第１の記憶部への第２のアクセスと、メモリダンプの取得に関する処理と、を制御する制御部と、
前記第２のアクセスの際に、前記制御部の指示により、前記第１の記憶部に記憶されているデータのメモリダンプを記憶する第２の記憶部と、を備える
ことを特徴とする情報処理装置。
【請求項２】
前記制御部は、
前記第１のアクセスにより、前記第１の記憶部内のデータへの書き込みが行われると、前記第２の記憶部に記憶されているメモリダンプと前記第１の記憶部内のデータとの差分を管理する管理情報を記憶し、
障害が発生すると、前記管理情報に基づいて、差分のある前記第１の記憶部内のデータのメモリダンプを取得し、取得したメモリダンプを第２の記憶部に記憶させる
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第２のアクセスは、メモリパトロールスクラビングである
ことを特徴とする請求項1又は２に記載の情報処理装置。
【請求項４】
前記制御部は、前記管理情報において、前記第２の記憶部に記憶されているメモリダンプと前記第１の記憶部内のデータとの差分を、ダーティビットを用いて管理する
ことを特徴とする請求項２又は３に記載の情報処理装置。
【請求項５】
プロセッサと、
前記プロセッサの主記憶として機能する第１の記憶部と、
前記プロセッサから前記第１の記憶部への第１のアクセスと、前記第１のアクセスと同期せずに実行される前記第１の記憶部への第２のアクセスと、メモリダンプの取得に関する処理と、を制御する制御部と、
前記第２のアクセスの際に、前記制御部の指示により、前記第１の記憶部に記憶されているデータのメモリダンプを記憶する第２の記憶部と、を備える
ことを特徴とする半導体装置。
【請求項６】
前記制御部は、
前記第１のアクセスにより、前記第１の記憶部内のデータへの書き込みが行われると、前記第２の記憶部に記憶されているメモリダンプと前記第１の記憶部内のデータとの差分を管理する管理情報を記憶し、
障害が発生すると、前記管理情報に基づいて、差分のある前記第１の記憶部内のデータのメモリダンプを取得し、取得したメモリダンプを第２の記憶部に記憶させる
ことを特徴とする請求項５に記載の半導体装置。
【請求項７】
前記第２のアクセスは、メモリパトロールスクラビングである
ことを特徴とする請求項５又は６に記載の半導体装置。
【請求項８】
前記制御部は、前記管理情報において、前記第２の記憶部に記憶されているメモリダンプと前記第１の記憶部内のデータとの差分を、ダーティビットを用いて管理する
ことを特徴とする請求項６又は７に記載の半導体装置。
【請求項９】
プロセッサから前記プロセッサの主記憶として機能する主記憶装置への第１のアクセスとは同期せずに実行される前記主記憶装置への第２のアクセスの際に、前記主記憶装置に記憶されているデータのメモリダンプを、外部記憶装置に記憶させる
ことを特徴とする情報処理システム。
【請求項１０】
前記第１のアクセスにより、前記主記憶装置内のデータへの書き込みが行われると、前記外部記憶装置に記憶されているメモリダンプと前記主記憶装置内のデータとの差分を管理する管理情報を記憶し、
障害が発生すると、前記管理情報に基づいて、差分のある前記第１の記憶部内のデータのメモリダンプを取得し、取得したメモリダンプを前記外部記憶装置に記憶させる
ことを特徴とする請求項９に記載の情報処理システム。
【請求項１１】
前記第２のアクセスは、メモリパトロールスクラビングである
ことを特徴とする請求項９又は１０に記載の情報処理システム。
【請求項１２】
前記管理情報において、前記第２の記憶部に記憶されているメモリダンプと前記第１の記憶部内のデータとの差分を、ダーティビットを用いて管理する
ことを特徴とする請求項１０又は１１に記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリダンプに関する。
【背景技術】
【０００２】
コンピュータシステムは、システムに障害が発生した場合に、主記憶装置上のデータを他の記憶装置に保存させる。他の記憶装置に保存されたデータは、メモリダンプと呼ばれる。稼働中のシステムのメモリダンプを取得することは、システム障害の原因解析などを行う際に有効な手段となる。【０００３】
システム再起動後の無アクセス状態時に、磁気テープなどの外部可搬媒体にメモリダンプを退避させるメモリダンプのバックアップ方法が知られている（例えば、特許文献１参照）。【０００４】
主記憶装置は、通常使用領域とリザーブ領域とに予め設定される。障害が発生すると、リザーブ領域を使用領域として運用させ、システム運用に影響なく、通常使用領域のメモリダンプを取得する（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平８−３０４９２号公報
【特許文献２】特開２００４−２８０１４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
近年、主記憶装置の容量がテラバイト（ＴＢ）オーダのサーバが登場し、このようなシステムでは、主記憶装置のメモリダンプを取得する処理に時間がかかる。システムで障害が発生すると、メモリダンプを取得する処理が実行され、その間、システムの運用が停止してしまう。障害が発生後のシステムの運用停止時間が短く、すぐにシステムの運用を再開できることが好ましい。【０００７】
１つの側面において、本発明は、障害発生時のメモリダンプの取得処理にかかる時間を短縮することを目的とする。
【課題を解決するための手段】
【０００８】
情報処理装置は、プロセッサ、第１の記憶部、制御部、第２の記憶部を備える。第１の記憶部は、プロセッサの主記憶として機能する。制御部は、プロセッサからの第１の記憶部への第１のアクセスと、第１のアクセスと同期せずに実行される第１の記憶部への第２のアクセスと、メモリダンプの取得に関する処理と、を制御する。第２の記憶部は、第２のアクセスの際に、制御部の指示により、第１の記憶部に記憶されているデータのメモリダンプを記憶する。
【発明の効果】
【０００９】
障害発生時のメモリダンプの取得処理にかかる時間を短縮できる。
【図面の簡単な説明】
【００１０】
【図１】本実施形態に係る情報処理装置の例を説明する図である。
【図２】コアから主記憶装置へのメモリアクセスにおける制御部の処理の例を説明する図である。
【図３】管理情報の例を説明する図である。
【図４】スクラビングを利用してメモリダンプを取得する処理の例を説明する図である。
【図５】メモリダンプ取得中に主記憶装置への更新がある場合の処理の例を説明する図である。
【図６】システム障害が発生した後にメモリダンプを取得する処理の例を説明する図である。
【図７】コアから主記憶装置へのメモリアクセスにおける制御部の処理の例を説明するフローチャートである。
【図８Ａ】スクラビングを利用してメモリダンプを取得する処理の例を説明するフローチャートである。
【図８Ｂ】スクラビングを利用してメモリダンプを取得する処理の例を説明するフローチャートである。
【図９】メモリダンプ取得中に主記憶装置への更新がある場合の処理の例を説明するフローチャートである。
【図１０】システム障害が発生した後にメモリダンプを取得する処理の例を説明するフローチャートである。
【発明を実施するための形態】
【００１１】
以下、図面を参照しながら、実施形態を詳細に説明する。
図１は、本実施形態に係る情報処理装置の例を説明する図である。情報処理装置１００は、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＣＰＵ）１１０、主記憶装置１２０、外部記憶装置１３０を備える。主記憶装置１２０は、ＣＰＵ１１０の主記憶として機能する。外部記憶装置１３０は、主記憶装置１２０のメモリダンプを記憶するための記憶装置である。外部記憶装置１３０は、例えば、Ｈａｒｄ  Ｄｉｓｃ  Ｄｒｉｖｅ（ＨＤＤ）でもよく、Ｓｏｌｉｄ‐Ｓｔａｔｅ  Ｄｒｉｖｅ（ＳＳＤ）でもよい。
【００１２】
ＣＰＵ１１０は、コア１１１、制御部１５０、ＩＯコントローラ１１２を有する。コア１１１は、プロセッサコアを示し、演算処理をおこなうための論理回路やキャッシュなどを含む。制御部１５０は、メモリコントローラを示す。制御部１５０は、コア１１１から主記憶装置１２０へのメモリアクセスを制御する。ＩＯコントローラ１１２は、制御部１５０の指示に従い、外部記憶装置１３０へのメモリダンプの書き込みを実行するインターフェースである。
【００１３】
制御部１５０は、コア１１１から主記憶装置１２０へのメモリアクセス（Ｆ１）を制御する。更に、制御部１５０は、コア１１１から主記憶装置１２０へのメモリアクセス（Ｆ１）とは別に、メモリパトロールによる主記憶装置１２０へのメモリアクセス（Ｆ２）を行う。なお、メモリパトロール（Ｆ２）は、コア１１１から主記憶装置１２０へのメモリアクセス（Ｆ１）と同期しない。そのため、メモリパトロールのようなアクセス（Ｆ２）は、コア１１１から主記憶装置１２０へのメモリアクセス（Ｆ１）と同期しない非同期アクセス（Ｆ２）とも呼ばれる。メモリパトロール（Ｆ２）は、例えば、メモリパトロールスクラビングである。以降、メモリパトロールスクラビングを、「スクラビング」と称す。
【００１４】
スクラビング（Ｆ２）は、主記憶装置１２０内の記憶領域をメモリアドレス順にアクセスしていき、データを読み込む。その後、スクラビング（Ｆ２）は、データが読み込まれた際に、訂正可能な１ビットエラーが検出されると、検出された１ビットエラーを訂正して書き戻す機能である。スクラビングで、エラーが検出されない場合は、書き戻す処理は行われない。スクラビング（Ｆ２）は、主記憶装置１２０の全体のデータをチェックするために、全メモリアドレスを網羅的にアクセスして行われる。
【００１５】
本実施形態に係る情報処理装置１００は、制御部１５０が実行するメモリパトロールにおける書き込み又は読み込みなどの処理（Ｆ２）を利用して、メモリダンプを取得（Ｆ３）する。例えば、スクラビング（Ｆ２）は主記憶装置１２０の全データを網羅的に読み込む。情報処理装置１００の制御部１５０は、スクラビング（Ｆ２）で読み込まれたデータ（１ビットエラーの場合は訂正されたデータ）をメモリダンプとして利用することで、効率的にメモリダンプを取得できる。制御部１５０は、取得したメモリダンプを、外部記憶装置１３０に記憶させる。言い換えると、コア１１１から主記憶装置１２０へのメモリアクセス（Ｆ１）と平行して、非同期アクセス（Ｆ２）が実行される。該非同期アクセス（Ｆ２）を利用してメモリダンプを外部記憶装置１３０に書き込むことで、コア１１１から主記憶装置１２０へのメモリアクセス（Ｆ１）が実行されるバックグラウンドで、メモリダンプを実現できる。
【００１６】
制御部１５０は、外部記憶装置１３０に記憶させたメモリダンプと、主記憶装置１２０内のデータと、でデータに差分があるかを管理する管理情報を記憶する（図３で後述する）。言い換えると、管理情報は、外部記憶装置１３０に記憶させたメモリダンプ、最新の主記憶装置１２０内のデータであるかどうかを示す情報である。システム障害が発生すると、制御部１５０は、管理情報を読み込み、外部記憶装置１３０に記憶されたメモリダンプから差分のあるデータのメモリアドレスを取得する。制御部１５０は、差分のあるデータのメモリアドレスを指定して、メモリダンプを取得する。
【００１７】
このように、本実施形態に係る情報処理装置１００は、システムに障害が発生していない間、制御部１５０は、コア１１１から主記憶装置１２０へのメモリアクセス（Ｆ１）と平行して、主記憶装置１２０のスクラビング（Ｆ２）を定期的に実行する。制御部１５０は、スクラビング（Ｆ２）で読み込まれたデータを利用してメモリダンプを取得する。システムに障害が発生すると、情報処理装置１００は、取得済みのメモリダンプと差分のあるデータを対象に、主記憶装置１２０内のデータのメモリダンプを取得する。システムに障害が発生した後に、主記憶装置１２０の全データのメモリダンプを取得せず、一部データのメモリダンプを取得することで、処理対象のデータ量を減らすことができる。それに伴い、障害発生後のメモリダンプの取得処理時間も短縮される。
【００１８】
図２は、コアから主記憶装置へのメモリアクセスにおける制御部の処理の例を説明する図である。図２は、図１と同一のものには、同じ番号を付す。制御部１５０は、メモリアクセス制御部１５１、スクラビング制御部１５２、ダンプ制御部１５３、書き込みキュー１５４、読み込みキュー１５５、ＥＣＣエンジン１５６、バッファ１５７、管理情報記憶部１５８を備える。メモリアクセス制御部１５１は、コア１１１から主記憶装置１２０へのメモリアクセスを制御する。スクラビング制御部１５２は、定期的に主記憶装置１２０にスクラビングを実行する制御を行う。ダンプ制御部１５３は、主記憶装置１２０内のデータのメモリダンプを取得する処理の制御をする。書き込みキュー１５４は、メモリアクセス制御部１５１から主記憶装置１２０への書き込み命令を記憶する。書き込み命令には、主記憶装置１２０に書き込むデータ、主記憶装置１２０内での書き込み先のメモリアドレス、タイプ判別情報が含まれる。タイプ判別情報は、例えば、メモリアクセス制御部１５１からのアクセス命令であることを示す情報「００」、スクラビング制御部１５２からのアクセス命令であることを示す情報「０１」、それ以外のアクセス命令であることを示す情報「１０」である。タイプ判別情報は、アクセス命令の種別を判別できればよい。
【００１９】
読み込みキュー１５５は、メモリアクセス制御部１５１が主記憶装置１２０から読み出したデータや、スクラビング制御部１５２がスクラビングの際に主記憶装置１２０から読み出したデータを、一時的に格納する。ＥＣＣエンジン１５６は、書き込みデータに、ＥＣＣビットを付随させる。更に、ＥＣＣエンジン１５６は、ビットエラーを検出した場合に、エラーを訂正する。バッファ１５７は、読み込みキュー１５５に格納されたデータの内、スクラビング制御部１５２がスクラビングの際に主記憶装置１２０から読み出したデータを格納する。管理情報記憶部１５８は、管理情報を記憶する。管理情報は、外部記憶装置１３０に記憶させたメモリダンプと、主記憶装置１２０内のデータと、でデータに差分があるかを管理するための情報を含む。
【００２０】
以下に、本実施形態に係るコア１１１から主記憶装置１２０へのメモリアクセスがあった場合の、制御部１５０の処理の例を説明する。
【００２１】
（Ａ１）コア１１１は、制御部１５０に書き込み要求を出す。書き込み要求は、主記憶装置１２０に書き込むデータ及び書き込み先のメモリアドレス（主記憶装置１２０内のメモリアドレス）を含む。
【００２２】
（Ａ２）メモリアクセス制御部１５１は、書き込み要求にタイプ判別情報「００」を付与する。メモリアクセス制御部１５１は、書き込み要求及びタイプ判別情報を、書き込みキュー１５４に格納する。
【００２３】
（Ａ３）メモリアクセス制御部１５１は、書き込みキュー１５４の先頭に書き込み要求及びタイプ判別情報がくると、主記憶装置１２０に書き込むデータを書き込みキュー１５４から読み出す。
【００２４】
（Ａ４）ＥＣＣエンジン１５６は、主記憶装置１２０に書き込むデータに、ＥＣＣビットを付与する。
【００２５】
（Ａ５）制御部１５１は、主記憶装置１２０内での書き込み先のメモリアドレスを指定して、主記憶装置１２０に書き込むデータを主記憶装置１２０に書き込む。
【００２６】
（Ａ６）ダンプ制御部１５３は、管理情報記憶部１５８に記憶されている管理情報を更新する。
【００２７】
ここで、本実施形態における情報処理装置１００は、主記憶装置１２０を所定のデータサイズ毎に分けて管理する。所定のデータサイズである主記憶装置１２０の管理単位を、「グループ」と称す。管理情報記憶部１５８に記憶されている管理情報は、グループ毎に、メモリダンプのデータが、最新のデータであるかを示す情報を含む。ダンプ制御部１５３は、外部記憶装置130に記憶されているメモリダンプが最新のデータである場合、管理情報に、該データが属するグループは「メモリダンプがダーティではない（最新のデータである）」ことを示す情報を設定する。一方、ダンプ制御部１５３は、外部記憶装置130に記憶されているメモリダンプが最新のデータでない場合、管理情報に、該データが属するグループは「メモリダンプがダーティである（最新のデータではない）」ことを示す情報を設定する。（Ａ６）の処理において、ダンプ制御部１５３は、主記憶装置１２０内での書き込み先のメモリアドレスを含むグループに対して、主記憶装置１２０のデータが更新されており、メモリダンプが最新でない（ダーティである）ことを示す情報を、管理情報に設定する。
【００２８】
図３は、管理情報の例を説明する図である。管理情報は、グループ識別番号、メモリアドレス、ディスクダーティビット、バッファダーティビットなどの情報を含む。グループ識別情報は、主記憶装置１２０内のデータの管理単位であるグループを識別するための情報である。メモリアドレスは、グループ識別番号に対応するグループに含まれるメモリアドレス群である。例えば、グループ識別番号１番のグループには、メモリアドレス「０ｘ００００」〜「０ｘ０００ｆ」が含まれる。グループ識別番号２番のグループには、メモリアドレス「０ｘ００１０」〜「０ｘ００１ｆ」が含まれる。グループ識別番号３番のグループには、メモリアドレス「０ｘ００２０」〜「０ｘ００２ｆ」が含まれる。図３の管理情報の例は、各グループの管理単位であるデータサイズを限定するものではない。
【００２９】
ディスクダーティビットは、グループ毎に、外部記憶装置130に記憶されているメモリダンプが、主記憶装置１２０における最新のデータかどうかを示す情報である。言い換えると、ディスクダーティビットは、外部記憶装置１３０に記憶されているメモリダンプと、主記憶装置１２０内のデータで差分があるかを示す情報である。外部記憶装置１３０に記憶されているメモリダンプが、主記憶装置１２０における最新のデータである場合に、ダーティではないことを示す「０」が管理情報に設定される。外部記憶装置１３０に記憶されているメモリダンプが、主記憶装置１２０における最新のデータでない場合に、ダーティであることを示す「１」が管理情報に設定される。図３の管理情報の例においては、グループ識別番号２番のグループに、該グループ内のデータが（メモリダンプ）がダーティである（最新でなはない）ことを示す「１」が設定されている。そのため、システム障害が発生すると、ダンプ制御部１５３は、管理情報記憶部１５８に記憶されている管理情報内のディスクダーティビットに「１」が設定されているグループの情報を取得し、取得したグループのメモリダンプを取得する。
【００３０】
バッファダーティビットは、グループ毎に、主記憶装置１２０内のデータとバッファ１５７とが記憶しているデータに差分があるかどうかを示す情報である。バッファ１５７に記憶されているデータは、ダンプ制御部１５３がメモリダンプを取得する際に一時的に記憶させたものであり、該メモリダンプが外部記憶装置１３０に記憶される前のデータである。バッファダーティビットは、言い換えると、外部記憶装置１３０にメモリダンプを記憶させる処理の途中で、主記憶装置１２０内のデータが更新され、該メモリダンプが、最新のデータでなくなっているかどうかを示す情報である。外部記憶装置１３０にメモリダンプを記憶させる処理の途中で主記憶装置１２０内のデータが更新されていない場合には、ダーティでない（メモリダンプが最新である）ことを示す「０」が管理情報に設定される。外部記憶装置１３０にメモリダンプを記憶させる処理の途中で主記憶装置１２０内のデータが更新された場合には、ダーティである（メモリダンプが最新でない）ことを示す「１」が管理情報に設定される。図３の管理情報の例においては、グループ識別番号３番のグループに、ダーティ（メモリダンプが最新ではない）ことを示す「１」が設定されている。なお、ダンプ制御部１５３は、スクラビング中にメモリダンプを取得する処理の際に、バッファダーティビットのダーティを示す情報である「１」を、ディスクダーティビットのダーティを示す情報「１」として設定する（図４で詳しく説明する）。システム障害が発生すると、ダンプ制御部１５３は、管理情報内のディスクダーティビットにダーティを示す「１」が設定されているグループを取得し、取得したグループのメモリダンプを取得する。
【００３１】
主記憶装置１２０内のデータのメモリダンプを、メモリアドレス毎に取得してもよい。主記憶装置１２０内のデータをグループ単位のメモリダンプの取得をしない場合、管理情報は、グループ及びバッファダーティビットを含まなくてよい。また、主記憶装置１２０内のデータをグループ単位のメモリダンプの取得をしない場合、図２の制御部１５０は、バッファ１５７を備えなくてよい。
【００３２】
図４は、スクラビングを利用してメモリダンプを取得する処理の例を説明する図である。図４は、図２と同一のものには、同じ番号を付す。以下に、スクラビングを利用してメモリダンプを取得する処理の例を説明する。
【００３３】
（Ｂ１）スクラビング制御部１５２は、スクラビングを実行するメモリアドレスを指定し、指定したメモリアドレスからのデータを主記憶装置１２０から読み出す。
【００３４】
（Ｂ２）ＥＣＣエンジン１５６は、読み出されたデータのＥＣＣビットを確認し、１ビットエラーがある場合に、訂正を行う。
【００３５】
（Ｂ３）スクラビング制御部１５２は、読み出したデータ又は訂正されたデータに、スクラビング制御部１５２からのアクセス命令であることを示すタイプ判別情報「０１」を付与する。スクラビング制御部１５２は、読み出したデータ又は訂正されたデータと、タイプ判別情報を、読み込みキュー１５５に格納する。
【００３６】
（Ｂ４）ダンプ制御部１５３は、読み込みキュー１５５を定期的に確認し、タイプ判別情報が「０１」である（スクラビングにより読み込まれたデータである）かを判定する。ダンプ制御部１５３は、タイプ判別情報を判別する回路などを含む。
【００３７】
（Ｂ５）ダンプ制御部１５３は、タイプ判別情報「０１」が付与されているデータをバッファ１５７に格納する。
【００３８】
（Ｂ６）ダンプ制御部１５３は、グループの全メモリアドレスに対応するデータがバッファ１５７に格納されたかを判定する。言い換えると、（Ｂ１）〜（Ｂ５）までの処理は、スクラビングで指定されたメモリアドレス単位で処理が実行されている。ダンプ制御部１５３は、（Ｂ１）〜（Ｂ５）の処理の結果、グループのデータサイズ分のデータがバッファ１５７に格納されたかを判定している。
【００３９】
（Ｂ７）ダンプ制御部１５３は、グループに対応するデータがバッファ１５７に格納されると、該データを外部記憶装置１３０に書き込むよう、ＩＯコントローラ１１２に指示する。
【００４０】
（Ｂ８）ＩＯコントローラ１１２は、指示に従い、バッファ１５７からデータを読み出し、該データを外部記憶装置１３０に書き込む。外部記憶装置１３０に書き込まれるデータは、メモリダンプである。
【００４１】
（Ｂ９）ダンプ制御部１５３は、管理情報を読み込み、外部記憶装置１３０に書き込みをしたグループに対応するバッファダーティビットにダーティ（メモリダンプが最新でない）であることを示す「１」が設定されているかを判定する。言い換えると、ダンプ制御部１５３は、（Ｂ１）〜（Ｂ８）の処理中に主記憶装置１２０側でデータの更新がされており、（Ｂ７）〜（Ｂ８）で外部記憶装置１３０に書き込まれたメモリダンプが最新でなくなっているかどうかを判定する。
【００４２】
（Ｂ１０）ダンプ制御部１５３は、管理情報において、外部記憶装置１３０に書き込みをしたグループに対応するバッファダーティビットに、ダーティ（メモリダンプが最新でない）を示す「１」が設定されている場合、同グループのディスクダーティビットに「１」を設定する。ダンプ制御部１５３は、外部記憶装置１３０に書き込みをしたグループに対応するバッファダーティビットに、ダーティでない「０」が設定されている場合、同グループのディスクダーティビットに「０」を設定する。
【００４３】
（Ｂ１１）ダンプ制御部１５３は、管理情報において、外部記憶装置１３０に書き込みをしたグループに対応するバッファダーティビットにダーティでない（メモリダンプが最新である）ことを示す「０」を設定する。
【００４４】
このように、制御部１５０は、主記憶装置１２０のスクラビングを定期的に実行する。制御部１５０は、スクラビングで読み込んだデータを利用してメモリダンプを取得することができる。言い換えると、コア１１１から主記憶装置１２０へのメモリアクセス（Ｆ１）と平行して、非同期アクセス（Ｆ２）が実行される。該非同期アクセス（Ｆ２）を利用してメモリダンプを外部記憶装置１３０に書き込むことで、コア１１１から主記憶装置１２０へのメモリアクセス（Ｆ１）が実行されるバックグラウンドで、メモリダンプを実現できる。
【００４５】
図５は、メモリダンプ取得中に主記憶装置への更新がある場合の処理の例を説明する図である。図５は、図３と同一のものには、同じ番号を付す。以下に、メモリダンプ取得中に主記憶装置への更新がある場合の処理の例を説明する。
【００４６】
（Ｃ１）メモリアクセス制御部１５１は、書き込み要求にタイプ判別情報「００」を付与する。メモリアクセス制御部１５１は、書き込み要求及びタイプ判別情報を、書き込みキュー１５４に格納する。
【００４７】
（Ｃ２）ダンプ制御部１５３は、書き込みキュー１５４を定期的に確認し、タイプ判別情報が「００」であるデータが含まれるかを判定する。ダンプ制御部１５３は、タイプ判別情報を判別する回路などを含む。
【００４８】
（Ｃ３）ダンプ制御部１５３は、タイプ判別情報が「００」であるデータの書き込み先のメモリアドレスと同じメモリアドレスが、バッファ１５７又は読み込みキュー１５５が保持するデータに含まれるかを判定する。
【００４９】
（Ｃ４）タイプ判別情報が「００」であるデータの書き込み先のメモリアドレスと同じメモリアドレスが、バッファ１５７又は読み込みキュー１５５が保持するデータに含まれる場合、ダンプ制御部１５３は、管理情報を更新する。具体的には、ダンプ制御部１５３は、タイプ判別情報が「００」であるデータの書き込み先のメモリアドレスを含むグループに対応するバッファダーティビットにメモリダンプがダーティである（最新でない）ことを示す「１」を設定する。
【００５０】
（Ｃ１）〜（Ｃ４）の処理により、メモリダンプ取得中でも主記憶装置１２０内のデータに更新がされた場合には、管理情報に、メモリダンプがダーティである（最新でない）ことを示す情報が記憶される。
【００５１】
図６は、システム障害が発生した後にメモリダンプを取得する処理の例を説明する図である。図６は、図２と同一のものには、同じ番号を付す。以下に、システム障害が発生した後にメモリダンプを取得する処理の例を説明する。
【００５２】
（Ｄ１）システム障害が発生すると、制御部１５０は、Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ（ＯＳ）又はファームウェアからメモリダンプを取得する指示を受信する。
【００５３】
（Ｄ２）ダンプ制御部１５３は、管理情報内のディスクダーティビットにメモリダンプがダーティであることを示す「１」が設定されているグループがあるかを判定する。
【００５４】
（Ｄ３）ダンプ制御部１５３は、管理情報内のディスクダーティビットで「１」が設定されているグループのメモリダンプを主記憶装置１２０から取得し、外部記憶装置１３０に記憶させる。
【００５５】
（Ｄ４）制御部１５０は、情報処理装置１００を再起動する。
【００５６】
このように、本実施形態に係る情報処理装置１００は、システムに障害が発生していない間、制御部１５０は、主記憶装置１２０のスクラビングを定期的に実行する。制御部１５０は、スクラビングで読み込んだデータを利用してメモリダンプを取得する。システムに障害が発生すると、情報処理装置１００は、取得済みのメモリダンプと、主記憶装置１２０内でデータと、で差分のあるデータのメモリダンプを取得する。システムに障害が発生した後に、主記憶装置１２０の全データのメモリダンプを取得せず、一部データのメモリダンプを取得することで、処理対象のデータ量を減らすことができる。それに伴い、障害発生後のメモリダンプの取得処理時間も短縮される。
【００５７】
図７は、コアから主記憶装置へのメモリアクセスにおける制御部の処理の例を説明するフローチャートである。コア１１１は、制御部１５０に書き込み要求を出す。（ステップＳ１０１）。メモリアクセス制御部１５１は、書き込み要求にタイプ判別情報「００」を付与し、書き込み要求及びタイプ判別情報を、書き込みキュー１５４に格納する（ステップＳ１０２）。メモリアクセス制御部１５１は、書き込みキュー１５４の先頭に書き込み要求及びタイプ判別情報がくると、主記憶装置１２０に書き込むデータを書き込みキュー１５４から読み出す（ステップＳ１０３）。ＥＣＣエンジン１５６は、主記憶装置１２０に書き込むデータに、ＥＣＣビットを付与する（ステップＳ１０４）。制御部１５１は、主記憶装置１２０内での書き込み先のメモリアドレスを指定して、主記憶装置１２０に書き込むデータを主記憶装置１２０に書き込む（ステップＳ１０５）。ダンプ制御部１５３は、主記憶装置１２０内での書き込み先のメモリアドレスを含むグループに対する管理情報内のディスクダーティビットにメモリダンプがダーティである（最新でない）ことを示す「１」を設定する（ステップＳ１０６）。
【００５８】
図８Ａと図８Ｂは、スクラビングを利用してメモリダンプを取得する処理の例を説明するフローチャートである。スクラビング制御部１５２は、スクラビングを実行するメモリアドレスを指定し、指定したメモリアドレスからのデータを主記憶装置１２０から読み出す（ステップＳ２０１）。ＥＣＣエンジン１５６は、読み出されたデータのＥＣＣビットを確認し、１ビットエラーがある場合に、訂正を行う（ステップＳ２０２）。スクラビング制御部１５２は、読み出したデータ又は訂正されたデータに、スクラビング制御部１５２からのアクセス命令であることを示すタイプ判別情報「０１」を付与する。スクラビング制御部１５２は、読み出したデータ又は訂正されたデータと、タイプ判別情報を、読み込みキュー１５５に格納する（ステップＳ２０３）。ダンプ制御部１５３は、読み込みキュー１５５を定期的に確認し、タイプ判別情報が「０１」である（スクラビングにより読み込まれたデータである）データを確認する（ステップＳ２０４）。ダンプ制御部１５３は、タイプ判別情報「０１」が付与されているデータをバッファ１５７に格納する（ステップＳ２０５）。ダンプ制御部１５３は、グループの全メモリアドレスに対応するデータがバッファ１５７に格納されたかを判定する（ステップＳ２０６）。グループの全メモリアドレスに対応するデータがバッファ１５７に格納されていない場合（ステップＳ２０６でＮＯ）、制御部１５０は、スクラビング処理の発生間隔の時間待機する（ステップＳ２１３）。
【００５９】
グループの全メモリアドレスに対応するデータがバッファ１５７に格納されている場合（ステップＳ２０６でＹＥＳ）、ダンプ制御部１５３は、データを外部記憶装置１３０に書き込むよう、ＩＯコントローラ１１２に指示する（ステップＳ２０７）。ＩＯコントローラ１１２は、指示に従い、バッファ１５７からデータを読み出し、該データを外部記憶装置１３０に書き込む（ステップＳ２０８）。ダンプ制御部１５３は、管理情報を読み込み、外部記憶装置１３０に書き込みをしたグループに対応するバッファダーティビットにダーティであることを示す「１」が設定されているかを判定する（ステップＳ２０９）。
【００６０】
バッファダーティビットにダーティであることを示す「１」が設定されている場合（ステップＳ２０９でＹＥＳ）、ダンプ制御部１５３は、ディスクダーティビットにダーティであることを示す「１」を設定する（ステップＳ２１０）。バッファダーティビットにダーティであることを示す「１」が設定されていない場合（ステップＳ２０９でＮＯ）、ダンプ制御部１５３は、ディスクダーティビットにダーティでないことを示す「０」を設定する（ステップＳ２１１）。ダンプ制御部１５３は、管理情報において、外部記憶装置１３０に書き込みをしたグループに対応するバッファダーティビットにダーティでない（メモリダンプが最新である）ことを示す「０」を設定する（ステップＳ２１２）。制御部１５０は、スクラビング処理の発生間隔の時間待機する（ステップＳ２１３）。制御部１５０は、ステップＳ２１３の処理の後、処理をステップＳ２０１から繰り返す。
【００６１】
図９は、メモリダンプ取得中に主記憶装置への更新がある場合の処理の例を説明するフローチャートである。メモリダンプ取得中に主記憶装置への書き込みがされた場合、制御部１５０は、図８Ａと図８Ｂに更に、図９に示すフローチャートの処理を追加で実行する。
【００６２】
メモリアクセス制御部１５１は、書き込み要求にタイプ判別情報「００」を付与する。メモリアクセス制御部１５１は、書き込み要求及びタイプ判別情報を、書き込みキュー１５４に格納する（ステップＳ３０１）。ダンプ制御部１５３は、書き込みキュー１５４を定期的に確認し、タイプ判別情報が「００」であるデータが含まれることを確認する（ステップＳ３０２）。ダンプ制御部１５３は、タイプ判別情報が「００」であるデータの書き込み先のメモリアドレスと同じメモリアドレスが、バッファ１５７又は読み込みキュー１５５が保持するデータに含まれるかを判定する（ステップＳ３０３）。該メモリアドレスを含むデータをバッファ１５７又は読み込みキュー１５５が保持している場合（ステップＳ３０３でＹＥＳ）、ダンプ制御部１５３は、データが外部記憶装置に未だ書き込まれていないかを判定する（ステップＳ３０４）。データが外部記憶装置に未だ書き込まれていない場合（ステップＳ３０４でＹＥＳ）、ダンプ制御部１５３は、バッファダーティビットにメモリダンプがダーティであることを示す「１」を設定する（ステップＳ３０５）。
【００６３】
書き込み先のメモリアドレスと同じメモリアドレスを含むデータをバッファ１５７又は読み込みキュー１５５が保持していない場合（ステップＳ３０３でＮＯ）、制御部１５０は、スクラビング処理中に追加で実行される図９に示す追加処理を終了する。データが外部記憶装置１３０に書き込み済みである場合（ステップＳ３０４でＮＯ）、制御部１５０は、スクラビング処理中に追加で実行される図９に示す追加処理を終了する。同様に、制御部１５０は、ステップＳ３０５の処理が終了すると、スクラビング処理中に追加で実行される図９に示す追加処理を終了する。
【００６４】
図１０は、システム障害が発生した後にメモリダンプを取得する処理の例を説明するフローチャートである。
【００６５】
システム障害が発生すると、制御部１５０は、Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ（ＯＳ）又はファームウェアからメモリダンプを取得する指示を受信する（ステップＳ４０１）。ダンプ制御部１５３は、管理情報内の各グループのディスクダーティビットを確認する（ステップＳ４０２）。ダンプ制御部１５３は、管理情報内の１つのグループを選択し、選択したグループのディスクダーティビットにダーティである（メモリダンプが最新ではない）ことを示す「１」が設定されているかを判定する（ステップＳ４０３）。
【００６６】
選択したグループがダーティである場合（ステップＳ４０３でＹＥＳ）、ダンプ制御部１５３は、該グループのメモリダンプを取得し、外部記憶装置１３０に記憶させる（ステップＳ４０４）。ダンプ制御部１５３は、全てのグループを対象に、ステップＳ４０２以降の処理を実行したかを判定する（ステップＳ４０５）。選択したグループがダーティでない場合（ステップＳ４０３でＮＯ）、ダンプ制御部１５３は、ステップＳ４０５の処理を実行する。ステップＳ４０２以降の処理を全グループに対して実行されていない場合（ステップＳ４０５でＮＯ）、制御部１５０は、処理をステップＳ４０２から繰り返す。
【００６７】
ステップＳ４０２以降の処理を、全グループを対象に実行されている場合（ステップＳ４０５でＹＥＳ）、制御部１５０は、情報処理装置１００を再起動する。
【００６８】
このように、本実施形態に係る情報処理装置１００は、システムに障害が発生していない間、制御部１５０は、コア１１１から主記憶装置１２０へのメモリアクセス（Ｆ１）と平行して、主記憶装置１２０のスクラビング（Ｆ２）を定期的に実行する。制御部１５０は、スクラビング（Ｆ２）で読み込んだデータを利用してメモリダンプを取得する。システムに障害が発生すると、情報処理装置１００は、取得済みのメモリダンプと、主記憶装置１２０内でデータと、で差分のあるデータのメモリダンプを取得する。システムに障害が発生した後に、主記憶装置１２０の全データのメモリダンプを取得せず、一部データのメモリダンプを取得することで、処理対象のデータ量を減らすことができる。それに伴い、障害発生後のメモリダンプの取得処理時間も短縮される。
【符号の説明】
【００６９】
１００  情報処理装置
１１０  ＣＰＵ
１１１  コア
１１２  ＩＯコントローラ
１２０  主記憶装置
１３０  外部記憶装置
１５０  制御部
１５１  メモリアクセス制御部
１５２  スクラビング制御部  
１５３  ダンプ制御部
１５４  書き込みキュー
１５５  読み込みキュー
１５６  ＥＣＣエンジン
１５７  バッファ
１５８  管理情報記憶部
【図１】
2016139774.tif 000003
【図２】
2016139774.tif 000004
【図３】
2016139774.tif 000005
【図４】
2016139774.tif 000006
【図５】
2016139774.tif 000007
【図６】
2016139774.tif 000008
【図７】
2016139774.tif 000009
【図８Ａ】
2016139774.tif 000010
【図８Ｂ】
2016139774.tif 000011
【図９】
2016139774.tif 000012
【図１０】
2016139774.tif 000013
【手続補正書】
【提出日】平成29年9月4日(2017.9.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサと、
前記プロセッサの主記憶として機能する第１の記憶部と、
前記プロセッサから前記第１の記憶部への第１のアクセスと、前記第１のアクセスと同期せずに実行される前記第１の記憶部への第２のアクセスと、メモリダンプの取得に関する処理と、を制御する制御部と、
前記第２のアクセスの際に、前記制御部の指示により、前記第１の記憶部に記憶されているデータのメモリダンプを記憶する第２の記憶部と、を備える
ことを特徴とする情報処理装置。
【請求項２】
前記制御部は、
前記第１のアクセスにより、前記第１の記憶部内のデータへの書き込みが行われると、前記第２の記憶部に記憶されているメモリダンプと前記第１の記憶部内のデータとの差分を管理する管理情報を記憶し、
障害が発生すると、前記管理情報に基づいて、差分のある前記第１の記憶部内のデータのメモリダンプを取得し、取得したメモリダンプを第２の記憶部に記憶させる
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第２のアクセスは、メモリパトロールスクラビングである
ことを特徴とする請求項1又は２に記載の情報処理装置。
【請求項４】
前記制御部は、前記管理情報において、前記第２の記憶部に記憶されているメモリダンプと前記第１の記憶部内のデータとの差分を、ダーティビットを用いて管理する
ことを特徴とする請求項２又は３に記載の情報処理装置。
【請求項５】
プロセッサコアと、
前記プロセッサコアの主記憶として機能する第１の記憶部への前記プロセッサコアからの第１のアクセスと、前記第１のアクセスと同期せずに実行される前記第１の記憶部への第２のアクセスと、メモリダンプの取得に関する処理と、前記第２のアクセスの際に、前記制御部の指示により、前記第１の記憶部に記憶されているデータのメモリダンプを第２の記憶部に記憶する処理と、を制御する制御部を備える、
ことを特徴とする半導体装置。
【請求項６】
前記制御部は、
前記第１のアクセスにより、前記第１の記憶部内のデータへの書き込みが行われると、前記第２の記憶部に記憶されているメモリダンプと前記第１の記憶部内のデータとの差分を管理する管理情報を記憶し、
障害が発生すると、前記管理情報に基づいて、差分のある前記第１の記憶部内のデータのメモリダンプを取得し、取得したメモリダンプを第２の記憶部に記憶させる
ことを特徴とする請求項５に記載の半導体装置。
【請求項７】
前記第２のアクセスは、メモリパトロールスクラビングである
ことを特徴とする請求項５又は６に記載の半導体装置。
【請求項８】
前記制御部は、前記管理情報において、前記第２の記憶部に記憶されているメモリダンプと前記第１の記憶部内のデータとの差分を、ダーティビットを用いて管理する
ことを特徴とする請求項６又は７に記載の半導体装置。
【請求項９】
プロセッサから前記プロセッサの主記憶として機能する主記憶装置への第１のアクセスとは同期せずに実行される前記主記憶装置への第２のアクセスの際に、前記主記憶装置に記憶されているデータのメモリダンプを、外部記憶装置に記憶させる
ことを特徴とする情報処理システム。
【請求項１０】
前記第１のアクセスにより、前記主記憶装置内のデータへの書き込みが行われると、前記外部記憶装置に記憶されているメモリダンプと前記主記憶装置内のデータとの差分を管理する管理情報を記憶し、
障害が発生すると、前記管理情報に基づいて、差分のある前記第１の記憶部内のデータのメモリダンプを取得し、取得したメモリダンプを前記外部記憶装置に記憶させる
ことを特徴とする請求項９に記載の情報処理システム。
【請求項１１】
前記第２のアクセスは、メモリパトロールスクラビングである
ことを特徴とする請求項９又は１０に記載の情報処理システム。
【請求項１２】
前記管理情報において、前記第２の記憶部に記憶されているメモリダンプと前記第１の記憶部内のデータとの差分を、ダーティビットを用いて管理する
ことを特徴とする請求項１０又は１１に記載の情報処理システム。
【国際調査報告】
2016139774.tif 000014
2016139774.tif 000015