(57)【要約】【課題】制御バスがデッドロックするような重度の障害が発生した場合であっても、ＬＳＩの大型化やコストの上昇、メモリダンプ処理の低速化をまねくハードウェアの増設を必要としない、制御バスを使用したメモリダンプ方式を実現できるコンピュータシステムを提供する。【解決手段】コンピュータシステムにおいて、ハードウェアに重度の障害が発生した際に、ファームウェアはブート完了時のコントローラおよびＩＯデバイス内部の設定情報をあらかじめ主記憶装置の専用のメモリ領域に格納しておき、マシンチェック割り込みの発生を契機に設定情報を読み出し、コントローラおよびＩＯデバイスに再設定した後でオペレーティングシステムのマシンチェック割り込み処理を起動することによって、主記憶装置の内容をＩＯデバイスに接続される外部記憶装置に移動する。【選択図】　　　　図３
2004139492.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵと、主記憶装置と、ファームウェアと、ＩＯバスと、前記ＩＯバスに接続されるＩＯデバイスと、前記ＣＰＵ、前記主記憶装置および前記ＩＯデバイスを接続し、前記ＣＰＵ、前記主記憶装置および前記ＩＯデバイスの間のアクセスをコントロールするコントローラと、前記ＩＯデバイスに接続される外部記憶装置とからなるコンピュータシステムであって、
前記コンピュータシステムはハードウェアに障害が発生した際に、
前記ＣＰＵ、前記コントローラ、前記ＩＯバスおよび前記ＩＯデバイスのバスインタフェースをリセットし、前記ＣＰＵにマシンチェック割り込みを発生させ、
前記マシンチェック割り込みの処理は、オペレーティングシステムによって実行される前に前記ファームウェアで実行させ、
前記ファームウェアは、ブート完了時の前記コントローラおよび前記ＩＯデバイスの内部の設定情報をあらかじめ前記主記憶装置の所定のメモリ領域に格納しておき、前記マシンチェック割り込みの発生を契機に前記設定情報を読み出し、前記コントローラおよび前記ＩＯデバイスに再設定した後で前記オペレーティングシステムのマシンチェック割り込みの処理を起動して、前記主記憶装置の内容を前記ＩＯデバイスに接続される前記外部記憶装置に移動する機能を有することを特徴とするコンピュータシステム。
【請求項２】
請求項１記載のコンピュータシステムにおいて、
前記コンピュータシステムに発生する障害は、前記主記憶装置に対してメモリアクセスを行う制御バスがデッドロックするような障害であることを特徴とするコンピュータシステム。
【請求項３】
請求項１記載のコンピュータシステムにおいて、
前記ＩＯバスはＰＣＩバスであり、
前記ＩＯデバイスはＰＣＩデバイスであり、
前記外部記憶装置はＳＣＳＩハードディスクあるいはＳＣＳＩテープであることを特徴とするコンピュータシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータシステムにおける保守の方法に関し、特に、障害の発生時に、オペレーティングシステムが主記憶装置情報採取の割り込み処理を実行するコンピュータシステムで、ハードウェアがデッドロック等により正常に動作しなくなるような障害が発生した際にも主記憶装置情報を確実に外部記憶装置に採取する方法に適用して有効な技術に関する。
【０００２】
【従来の技術】
本発明者が検討したところによれば、コンピュータシステムにおける保守の方法に関しては、以下のような技術が考えられる。
【０００３】
たとえば、従来のコンピュータシステムにおいては、システムに障害が発生した際に、障害の解析や再現調査、システムの復帰等に利用するデータを、様々な手段を用いて採取している。障害発生時にオペレーティングシステムに対して割り込み処理を実行し、主記憶装置情報を外部記憶装置に採取するメモリダンプも、障害解析用のデータ採取手法の１つである。
【０００４】
データ採取に関するデータパスとして、通常時にメモリアクセスなどを行うデータパス（以下、制御バス）を用いる方法がある。この方法では、何らかの障害等により制御バスがデッドロックした場合に、メモリダンプの転送経路が確保できず、主記憶装置情報を採取することが不可能となるという課題があった。これに対して、従来、以下のような技術が提案されている。
【０００５】
たとえば、第１の従来技術では、制御バスが使用不可能となるような障害が発生した場合でも、主記憶装置情報を採取するために、システムは制御バスとは別に、ダンプバス、ダンプ制御部、ダンプ記憶部を備えている。バス切り替えスイッチを介してダンプバスと制御バスを接続することで、システムは制御バスが障害によって使用不可能となった場合でも、メモリダンプの実行を可能としている（たとえば、特許文献１参照）。
【０００６】
さらに、第２の従来技術では、システムにＣＰＵとは独立してメモリダンプを実行可能なメモリコントローラと、制御バスとは独立したシリアルポートを設けている。障害発生時には、シリアルポートを通じて外部からメモリコントローラに命令を与えてメモリダンプを実行し、メモリコントローラはシリアルポートを通じて採取した主記憶装置情報を外部記憶装置に転送する（たとえば、特許文献２参照）。
【０００７】
また、第３の従来技術では、電子計算機に接続する通信制御アダプタの障害自動復旧方式において、通信制御アダプタのファームウェアに障害が発生した場合、電子計算機のＣＰＵで動作するソフトウェアにより調査情報を採取し、通信の復旧処理を自動的に行う（たとえば、特許文献３参照）。
【０００８】
【特許文献１】
特開平５−９４３４１号公報（第１頁の要約など）
【０００９】
【特許文献２】
特開平８−３２８９１４号公報（第１頁の要約など）
【００１０】
【特許文献３】
特開平５−１５１００９号公報（第１頁の要約など）
【００１１】
【発明が解決しようとする課題】
ところで、前記のようなコンピュータシステムにおける保守の方法の技術について、本発明者が検討した結果、以下のようなことが明らかとなった。
【００１２】
たとえば、通常のメモリアクセスを行う制御バスを用いてメモリダンプを実行するコンピュータシステムでは、重度の障害が発生し、制御バスがデッドロックしてしまった場合、メモリダンプが実行不可能となる。
【００１３】
この問題を解決するために、前記第１の従来技術のように、制御バスとは独立したダンプバスやダンプ制御部、ダンプ記憶部を設けると、制御バスがデッドロックしてしまった場合にも、ダンプ用のハードウェアを使用してメモリダンプの実行が可能となる。しかし、通常使用する制御バスとは別に、メモリダンプ実行用の独立したハードウェアをシステムに設けると、回路規模が大きくなり、ＬＳＩの大型化やコストの上昇と言った問題が生じる。
【００１４】
一方、前記第２の従来技術のように、システムにＣＰＵとは独立してメモリダンプを実行可能なメモリコントローラと、制御バスとは独立したシリアルポートを設けると、第１の従来技術に比べ、ハードウェアの増大は抑えられるが、障害によりメモリコントローラにデッドロックが生じた際は、メモリダンプが実行できなくなる。また、シリアルポートを通じてのデータ転送は、制御バスを使用したデータ転送に比べ、非常に速度が遅い。
【００１５】
また、前記第３の従来技術は、外部と通信するための通信制御アダプタのファームウェア自体に障害が発生した場合に、このファームウェア自体を復旧させる技術である。さらに、ＣＰＵ、主記憶装置、ＩＯデバイス、外部記憶装置などからなるコンピュータシステム内におけるメモリダンプ方式を実現するものではない。
【００１６】
以上の問題を鑑みて、本発明での目的は、制御バスがデッドロックするような重度の障害が発生した場合であっても、ＬＳＩの大型化やコストの上昇、メモリダンプ処理の低速化をまねくハードウェアの増設を必要としない、制御バスを使用したメモリダンプ方式を実現できるコンピュータシステムを提供することにある。
【００１７】
【課題を解決するための手段】
上記目的達成のため、本発明では、コンピュータシステムにおいて、ハードウェアに重度の障害が発生した際に、ＣＰＵ、コントローラ、ＩＯバスおよびＩＯデバイスのバスインタフェースをリセット（以下、このリセットをバスリセットと呼ぶ）すると同時にＣＰＵにマシンチェック割り込みを発生させ、またマシンチェック割り込みの処理は、オペレーティングシステムによって実行される前に、ファームウェアで実行されることを特徴とし、ファームウェアはブート完了時のコントローラおよびＩＯデバイス内部の設定情報をあらかじめ主記憶装置の専用のメモリ領域に格納しておき、マシンチェック割り込みの発生を契機に設定情報を読み出し、コントローラおよびＩＯデバイスに再設定した後でオペレーティングシステムのマシンチェック割り込み処理を起動することによって、主記憶装置の内容をＩＯデバイスに接続される外部記憶装置に移動することを特徴とするものである。
【００１８】
上記手段により、各ハードウェアの動作が正常に行われなくなるような重度の障害が発生した際、システムはバスリセットにより障害の要因をクリアする。その際、ハードウェアが動作するために必要な設定情報の一部も失われてしまうため、ファームウェアは初期化直後に設定情報を主記憶装置の一部に格納しておき、バスリセット後にコントローラやＩＯデバイスの構成情報を復元し、ハードウェアを動作可能とし、主記憶装置情報を外部記憶装置に送るための転送経路を確保する。
【００１９】
上記のような手順によって、新たなハードウェアの追加を伴わずに、通常時のデータパスと同一の制御バスを用いて主記憶装置の内容を外部記憶装置に移動することが可能となる。
【００２０】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【００２１】
図１により、本発明の一実施の形態におけるコンピュータシステムの構成の一例を説明する。図１はコンピュータシステムの構成図を示す。
【００２２】
本実施の形態におけるコンピュータシステム１は、特に限定されるものではないが、たとえば、１つ以上のＣＰＵ２、コントローラ３、主記憶装置４、ＰＣＩバス５、ＰＣＩカード６、外部記憶装置７などを有する。ＣＰＵ２、コントローラ３、主記憶装置４の間は、アドレス、データ、制御用などの任意の内部バスにより相互に接続されている。外部記憶装置７は、ＰＣＩバス５に接続したＰＣＩカード６を介してシステムに接続されている。
【００２３】
なお、本実施の形態のコンピュータシステム１において、ＰＣＩバス５は他のＩＯバスにも適用でき、またＰＣＩカード６についても他のＩＯデバイスあるいはＰＣＩデバイスに適用可能である。また、外部記憶装置７は、たとえば、ＳＣＳＩハードディスクあるいはＳＣＳＩテープなどからなるが、これに限らず、他の記録媒体についても適用可能であることはいうまでもない。
【００２４】
コントローラ３は、ＣＰＵ２、主記憶装置４、ＰＣＩバス５間のアクセスを制御する。コントローラ３はまた、コントローラ３、主記憶装置４、ＰＣＩバス５、ＰＣＩカード６における障害の発生を監視する。
【００２５】
ファームウェアは、ＣＰＵ２を介して様々な処理を実行する。ファームウェアは、システムの起動時にコントローラ３やＰＣＩバス５、ＰＣＩカード６などのハードウェアに対し、構成情報の設定を行う。ファームウェアは、リセットによりハードウェアの構成情報が消去された場合であっても、各ハードウェアに対して構成情報を設定するためのアクセスが可能である。なお、このファームウェアは、これに限られるものではないが、たとえばコントローラ３に接続される、図示しないＲＯＭなどに格納されている。
【００２６】
次に、図２により、本実施の形態におけるコンピュータシステムの起動手順の一例を説明する。図２はコンピュータシステムの起動手順のフロー図を示す。
【００２７】
コンピュータシステム１の起動時（ステップＳ１１）、ファームウェアはシステムの初期化を実行し、ハードウェアの構成情報を設定する。この構成情報は、各ハードウェアのバス番号、デバイス番号及びＰＣＩカード５上に配置されるコントローラの内部設定情報等、システムの構成によって値が決定される情報である。
【００２８】
続いて、ファームウェアは、主記憶装置４にこれらの構成情報を待避するための領域を確保し、初期化が完了した時点（ステップＳ１２）で、設定した構成情報を主記憶装置４に格納する（ステップＳ１３）。その後、ファームウェアはオペレーティングシステム（ＯＳ）を起動し（ステップＳ１４）、システムの起動処理を完了する。
【００２９】
次に、図３により、本実施の形態のコンピュータシステムにおける、障害発生時のメモリダンプ実行手順の一例を説明する。図３は障害発生時のメモリダンプ実行手順のフロー図を示す。
【００３０】
コンピュータシステム１内で障害が発生すると（ステップＳ２１）、ＣＰＵ２で障害が発生した時にはＣＰＵ２が、コントローラ３、主記憶装置４、ＰＣＩバス５、ＰＣＩカード６の何れかで障害が発生した時にはコントローラ３が、それぞれ、ファームウェアに対し、障害の発生を通知する。
【００３１】
続いて、ＣＰＵ２またはコントローラ３はまた、発生した障害が、バスリセットを必要とする障害であるかどうかを判断する（ステップＳ２２）。ここで、バスリセットが必要となる障害とは、その発生によりデッドロック等が起こり、ハードウェアが正常に動作しなくなる可能性がある障害のことであり、バスリセットを必要としない障害とは、その発生により各ハードウェアが使用不可能な状態に陥ることがなく、ハードウェア間のアクセスが正しく行われる状態を維持可能な障害のことである。
【００３２】
このバスリセットは、ハードウェアを動作不可能とする障害の要因をクリアするが、同時に、システムの初期化時にファームウェアが設定したコントローラ３やＰＣＩカード６の設定情報の一部もクリアしてしまう。そのため、コンピュータシステム１は、バスリセットを実行すると、再び各ハードウェアの構成情報を設定するまで動作不可能となる。
【００３３】
たとえば、発生した障害がバスリセットを必要としないものであった場合（ステップＳ２２においてＮ（Ｎｏ）の場合）、ＣＰＵ２またはコントローラ３は障害の発生をファームウェアに通知するが、バスリセットを実行しない。そして、ファームウェアは障害の発生通知を受け取ると、バスリセットが実行されたかどうかを確認する。
【００３４】
この確認の結果、バスリセットが実行されていなかった場合、ファームウェアはＯＳに対し割り込み処理を行い、メモリダンプを実行する（ステップＳ２５）。これにより、主記憶装置４から採取された主記憶装置情報は、メモリコントローラ３からＰＣＩバス５に転送され、ＰＣＩカード６を介して接続している外部記憶装置７に格納される。
【００３５】
一方、発生した障害が、ハードウェアのデッドロック等を起こし、ハードウェアを使用不可能とするようなものであった場合（ステップＳ２２においてＹ（Ｙｅｓ）の場合）、ＣＰＵ２またはコントローラ３はバスリセットを実行する（ステップＳ２３）。
【００３６】
このバスリセットの結果、ハードウェアを使用不可能としていた要因はクリアされるが、システムの初期化時にファームウェアが設定したコントローラ３、ＰＣＩカード６の構成情報までもクリアされてしまい、ハードウェア間のアクセスは不可能となってしまう。
【００３７】
そこで、ファームウェアはバスリセットが実行されたことを確認すると、マシンチェック割り込み処理を発生させ、主記憶装置４に格納していたコントローラ３、ＰＣＩカード６の構成情報を読み出す。そして、ファームウェアはバスリセット後、読み出した構成情報を再びコントローラ３、ＰＣＩカード６に設定する（ステップＳ２４）。
【００３８】
この構成情報の再設定が完了し、各ハードウェア間でのアクセスが可能になると、ファームウェアはＯＳに対し割り込み処理を行い、メモリダンプを実行する（ステップＳ２５）。これにより、主記憶装置４から採取された主記憶装置情報は、メモリコントローラ３からＰＣＩバス５に転送され、ＰＣＩカード６を介して接続している外部記憶装置７に格納される。
【００３９】
そして、ハードウェアを動作不可能とする障害の要因がクリアされ、各ハードウェアの構成情報の再設定が完了した後は、コンピュータシステム１は再起動可能となる（ステップＳ２６）。
【００４０】
従って、本実施の形態におけるコンピュータシステム１によれば、各ハードウェアの動作が正常に行われなくなるような重度の障害が発生した際、ファームウェアは初期化直後に設定情報を主記憶装置４の一部に格納しておき、バスリセット後にコントローラ３やＰＣＩカード６の構成情報を復元し、ハードウェアを動作可能とし、主記憶装置４に格納された主記憶装置情報を外部記憶装置７に送るための転送経路を確保して、障害解析のために主記憶装置４の内容を外部記憶装置７に採取することができる。
【００４１】
【発明の効果】
本発明によれば、ファームウェアが、初期化直後に主記憶装置の一部にハードウェアの構成情報を格納し、障害発生に伴うバスリセットを実行した後に、主記憶装置に格納した構成情報を読み出して、ハードウェアに再設定することで、メモリダンプ実行用のハードウェアを増設することなく、ハードウェアが動作不可能となるような障害が発生した際にも、主記憶装置情報を採取することが可能となる。
【図面の簡単な説明】
【図１】本発明の一実施の形態におけるコンピュータシステムを示す構成図である。
【図２】本発明の一実施の形態におけるコンピュータシステムの起動手順を示すフロー図である。
【図３】本発明の一実施の形態のコンピュータシステムにおける、障害発生時のメモリダンプ実行手順を示すフロー図である。
【符号の説明】
１…コンピュータシステム、２…ＣＰＵ、３…コントローラ、４…主記憶装置、５…ＰＣＩバス、６…ＰＣＩカード、７…外部記憶装置。
【図１】
2004139492.tif 000003
【図２】
2004139492.tif 000004
【図３】
2004139492.tif 000005