(57)【要約】【課題】マルチコアＣＰＵモジュールを搭載し、メインＣＰＵ上で動作しているアプリケーション処理を中断することなく、サブＣＰＵでメモリ診断を行う計算機システムを得る。【解決手段】計算機システム１は、マルチコアＣＰＵモジュール４を搭載し、メインＣＰＵ２とサブＣＰＵ３上で、それぞれ、ＯＳ１とＯＳ２が動作し、ＯＳ１はアプリケーション１１と障害対処処理を行う障害対処処理部１４を動作させ、ＯＳ２は、定期的にメモリ５の診断を行うメモリ診断処理部１３と、メモリ診断処理部１３の診断結果を障害対処処理部１４に通知する障害監視処理部１２とを動作させ、障害対処処理部１４は、メモリ障害の通知を受けると、計算機システム１を停止させるようにする。【選択図】図１
2010186242.tif 000002
【特許請求の範囲】
【請求項１】
マルチコアＣＰＵモジュールを搭載し、複数のオペレーティングシステムが異なるコアＣＰＵ上で動作する計算機システムであって、
第１のコアＣＰＵ上の第１のオペレーティングシステムで動作するアプリケーション、
上記第２のコアＣＰＵ上の第２のオペレーティングシステムで動作し、上記アプリケーションに用いられるメモリの診断を行うメモリ診断手段、
上記第２のオペレーティングシステムで動作し、上記メモリ診断手段により上記メモリの異常が検出されたとき、上記異常を通知する異常通知手段、
上記第１のオペレーティングシステムで動作し、上記異常通知手段からの通知を受けて、障害発生時の対処を行う障害対処手段を備えたことを特徴とする計算機システム。
【請求項２】
上記障害対処手段は、上記メモリ診断手段によるメモリ診断の結果、異常と判定されたメモリのページが、未使用のメモリページかどうかを判定するメモリページ使用判定手段と、
上記異常と判定されたメモリのページが、上記アプリケーションにより使用されないように設定するメモリページ管理設定手段とを有することを特徴とする請求項１記載の計算機システム。
【請求項３】
上記メモリに格納され、上記第１のオペレーティングシステムによって管理されるメモリページ管理情報、
上記第１のオペレーティングシステムで動作し、上記メモリページ管理情報を参照するためのメモリページ管理情報参照情報を上記メモリ診断手段に通知するメモリページ管理情報通知手段を備え、
上記メモリ診断手段は、上記メモリページ管理情報通知手段により通知されたメモリページ管理情報参照情報をもとに、上記メモリページ管理情報を参照して、診断するメモリページを決定する診断メモリ決定手段を有することを特徴とする請求項１または請求項２記載の計算機システム。
【請求項４】
上記診断メモリ決定手段は、上記メモリページ管理情報の参照に先立って、当該メモリページ管理情報が格納されているメモリページを診断するように構成されていることを特徴とする請求項３記載の計算機システム。
【請求項５】
マルチコアＣＰＵモジュールを搭載し、複数のオペレーティングシステムが異なるコアＣＰＵ上で動作する計算機システムであって、
第１のコアＣＰＵ上の第１のオペレーティングシステムで動作するアプリケーション、
上記第２のコアＣＰＵ上の第２のオペレーティングシステムで動作し、上記アプリケーションに用いられるメモリの診断を行うメモリ診断手段、
上記第２のオペレーティングシステムで動作し、上記メモリ診断手段により上記メモリの異常が検出されたとき、上記異常を通知する異常通知手段、
上記第２のオペレーティングシステムで動作し、上記異常通知手段からの通知を受けて、障害発生時の対処を行う障害対処手段を備えたことを特徴とする計算機システム。
【請求項６】
マルチコアＣＰＵモジュールを搭載し、複数のオペレーティングシステムが異なるコアＣＰＵ上で動作する計算機システムであって、
第１のコアＣＰＵ上の第１のオペレーティングシステムで動作するアプリケーション、
上記第２のコアＣＰＵ上の第２のオペレーティングシステムで動作し、上記アプリケーションに用いられるメモリの診断を行うメモリ診断手段を備えたことを特徴とする計算機システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、マルチコアＣＰＵモジュールを搭載し、アプリケーションが動作するＣＰＵとは別のＣＰＵでメモリ診断を行い、故障検出を行う計算機システムに関するものである。
【背景技術】
【０００２】
従来の計算機システムでは、アプリケーションがメモリアクセスした場合に、メモリ故障が検出されるようになっていた。
また、特許文献１に示される障害監視システムでは、複数のＯＳ（オペレーティングシステム）が、相互に監視し合うことが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−１８６１７３号公報（第３〜９頁、図１）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の計算機システムでは、アプリケーションがメモリをアクセスした場合に初めてメモリ故障が検出されるため、２重系の計算機システムで、待機系となっていた計算機が動作しようとした場合に、メモリ故障を検出して、両系異常となる場合があった。
メモリ診断を同一のＯＳ上で実施する場合、リアルタイムアプリケーションの処理を極力継続する必要がある産業用のシステムでは、メモリ診断にＣＰＵを利用するため、リアルタイム応答性に影響を与えるという問題があった。
また、特許文献１は、複数のＯＳが相互にその状態を監視しているが、この場合は、ＯＳまたはアプリケーションが異常により動作しなくなるまで、障害の検出を行うことができず、障害に対してすぐに対処することができない、また、メモリなどハードウェアの障害を検出しないなどの問題があった。
【０００５】
この発明は、上述のような課題を解決するためになされたものであり、マルチコアＣＰＵモジュールを搭載し、メインＣＰＵ上で動作しているアプリケーション処理を中断することなく、サブＣＰＵでメモリ診断を行う計算機システムを得ることを目的としている。
【課題を解決するための手段】
【０００６】
この発明に係わる計算機システムにおいては、マルチコアＣＰＵモジュールを搭載し、複数のオペレーティングシステムが異なるコアＣＰＵ上で動作する計算機システムであって、
第１のコアＣＰＵ上の第１のオペレーティングシステムで動作するアプリケーション、
第２のコアＣＰＵ上の第２のオペレーティングシステムで動作し、アプリケーションに用いられるメモリの診断を行うメモリ診断手段、
第２のオペレーティングシステムで動作し、メモリ診断手段によりメモリの異常が検出されたとき、異常を通知する異常通知手段、
第１のオペレーティングシステムで動作し、異常通知手段からの通知を受けて、障害発生時の対処を行う障害対処手段を備えたものである。
【発明の効果】
【０００７】
この発明は、以上に説明したように、マルチコアＣＰＵモジュールを搭載し、複数のオ
ペレーティングシステムが異なるコアＣＰＵ上で動作する計算機システムであって、
第１のコアＣＰＵ上の第１のオペレーティングシステムで動作するアプリケーション、
第２のコアＣＰＵ上の第２のオペレーティングシステムで動作し、アプリケーションに用いられるメモリの診断を行うメモリ診断手段、
第２のオペレーティングシステムで動作し、メモリ診断手段によりメモリの異常が検出されたとき、異常を通知する異常通知手段、
第１のオペレーティングシステムで動作し、異常通知手段からの通知を受けて、障害発生時の対処を行う障害対処手段を備えたので、第１のコアＣＰＵ上で動作しているアプリケーション処理を中断することなく、メモリ診断を行うことができる。
【図面の簡単な説明】
【０００８】
【図１】この発明の実施の形態１による計算機システムを示す構成図である。
【図２】この発明の実施の形態２による計算機システムを示す構成図である。
【図３】この発明の実施の形態３による計算機システムを示す構成図である。
【図４】この発明の実施の形態４による計算機システムを示す構成図である。
【図５】この発明の実施の形態５による計算機システムを示す構成図である。
【発明を実施するための形態】
【０００９】
実施の形態１．
以下、この発明の実施の形態１を図１に基づいて説明する。
図１は、この発明の実施の形態１による計算機システムを示す構成図である。
図１において、計算機システム１は、ワークステーション、パーソナルコンピュータ、あるいはその他の計算機からなる。この計算機システム１は、メインＣＰＵ２およびサブＣＰＵ３の複数のＣＰＵコアを含むマルチコアＣＰＵモジュール４と、主記憶としてのメモリ５とが、システムバスブリッジ６により接続されている。
システムバスブリッジ６は、メモリ制御を行うメモリ制御部、割り込み制御を行う割り込み制御部、システムバス制御を行うシステムバス制御部を持ち、このシステムバスブリッジ６には、システムバス７を介して複数の周辺装置インタフェース８が接続されている。複数の周辺装置インタフェース８には、各種周辺装置が接続される。
なお、上述では、マルチコアＣＰＵモジュール４とメモリ５の接続に、システムバスブリッジ６を用いているが、発明を適用する計算機の構成は、これに限らない。
【００１０】
メインＣＰＵ２（第１のコアＣＰＵ）とサブＣＰＵ３（第２のコアＣＰＵ）上で、それぞれ独立に、ＯＳ１（９）（第１のオペレーティングシステム）およびＯＳ２（１０）（第２のオペレーティングシステム）が動作する構成とする。
メインＣＰＵ２は、ＯＳ１（９）とＯＳ２（１０）との間のＯＳ間通信を行うマルチＯＳ管理処理部３０と、ＯＳ１（９）上で動作するアプリケーション１１を有し、またＯＳ１（９）は、障害検出時に障害対処処理を行う障害対処処理部１４（障害対処手段）を有している。
アプリケーション１１は、メモリ５をアクセスしながら所定の処理を実行する。
サブＣＰＵ３は、ＯＳ２（１０）上で、障害発生時にマルチＯＳ管理処理部３０を介して、ＯＳ１（９）の障害対処処理部１４に障害内容を通知する障害監視処理部１２（異常通知手段）と、定期的に起床してメモリ５の診断を行うメモリ診断処理部１３（メモリ診断手段）とが動作する構成となっている。
【００１１】
次に、動作について説明する。
ＯＳのブートローダは、メインＣＰＵ２で、ＯＳ１（９）をメモリ５にロードし、起動をかける。ＯＳ１（９）は、起動後、マルチＯＳ管理処理部３０およびＯＳ２（１０）をメモリ５にロードし、マルチＯＳ管理処理部３０を介して、ＯＳ２（１０）をサブＣＰＵ３に割り付けて、ＯＳ２（１０）の起動を行う。
【００１２】
ＯＳ２（１０）は、起動後、障害監視処理部１２、メモリ診断処理部１３に起動をかける。メモリ診断処理部１３は、起動時に引数として渡された時間の間隔で、定期的にメモリ５に対して、アドレスを変更しながらアクセスを行い、メモリ異常の発生を確認する。
ここで、アクセスする単位は、例えばバイト単位、ワード単位、キャッシュページ単位、ＯＳで管理するページ単位などがあり、アドレス変更は、ランダム、シーケンシャル、ページの先頭アドレス毎などがある。
【００１３】
メモリ診断処理部１３で、メモリ異常が検出された場合、メモリ診断処理部１３は、障害監視処理部１２にメモリ異常が検出されたこと、およびメモリ異常を発生したアドレス、サイズなどメモリ異常に関する情報を通知する。
メモリ異常検出を通知された障害監視処理部１２は、マルチＯＳ管理処理部３０を介して、ＯＳ１（９）の障害対処処理部１４にメモリ異常が検出されたこと、およびメモリ異常を発生したアドレス、サイズなどメモリ異常に関する情報を通知する。
【００１４】
メモリ異常検出を通知されたＯＳ１（９）の障害対処処理部１４は、計算機システム停止などの対処を行う。
【００１５】
実施の形態１によれば、定期的に起床してメモリの診断を行うメモリ診断処理部を、アプリケーションが動作するＣＰＵとは異なるＣＰＵ上で独立して動作するように構成したため、アプリケーションの実行を中断することなく、メモリの診断を行うことができる。
また、定期的に起床してメモリの診断を行うメモリ診断処理部を備えたことにより、アプリケーションやＯＳが、エラーを発生するメモリにアクセスする前に、メモリ故障を検出することができ、例えば、待機系となっている計算機の異常を事前に検出し、障害に対応することで、計算機のダウン時間を少なくすることができる。
【００１６】
実施の形態２．
実施の形態１では、サブＣＰＵ上で定期的にメモリ診断を行い、メインＣＰＵ上の障害対処処理部にて計算機システムの停止などの対処を行う機能について述べた。実施の形態２は、さらに、障害対処処理部で、メモリ診断の結果、異常と判定されたメモリが、未使用のメモリかどうかを判定し、未使用メモリの場合、該当メモリがＯＳ１で使用されないように設定するようにする。
【００１７】
図２は、この発明の実施の形態２による計算機システムを示す構成図である。
図２において、１〜１４、３０は図１におけるものと同一のものである。図２では、障害対処処理部１４に、ＯＳ１（９）およびアプリケーション１１により使用されているメモリかどうかを判定するメモリページ使用判定処理部１５（メモリページ使用判定手段）と、該当べージを割り当てない処理などを行うメモリページ管理設定処理部１６（メモリページ管理設定手段）とを設けている。
【００１８】
次に、図２を用いて、実施の形態２について説明する。実施の形態１では、計算機システムの全体的な動作について説明したが、実施の形態２は、障害対処処理について説明する。
図２の計算機システムは、ＯＳ１（９）の障害対処処理部１４にメモリ異常検出が通知されるまでは、実施の形態１と同じ動作を行う。
ここで、通知されたメモリのアドレスとサイズから、ＯＳ１（９）およびアプリケーション１１で使用されているメモリかどうかの判定をメモリページ使用判定処理部１５が行う。この使用されているメモリかどうかの判定は、例えば、未使用のページのリストなどを利用する方法や、各ページに対応したテーブルをあらかじめメモリ上に作成し、使用された場合にフラグを設定するようにし、エラーを発生したメモリに対応するテーブルのフ
ラグを参照する方法などがある。
【００１９】
未使用のページリストを利用した場合は、エラーを発生したメモリが未使用であると判定されたら、未使用のページリストからエラー部分を削除する。
また、各ページに対応したテーブルを利用した場合は、使用不可のフラグをテーブルに設定し、ＯＳ１（９）のメモリ管理でメモリを獲得しようとした場合に、該当べージを割り当てない等の処理をメモリページ管理設定処理部１６で実施する。
【００２０】
実施の形態２によれば、障害対処処理部により、メモリ診断の結果、異常と判定されたメモリが、未使用のメモリかどうかを判定し、未使用メモリの場合、該当メモリがＯＳ１で使用されないようにすることができる。
このため、エラーを発生したメモリに対して、アクセスしないようにすることによって、アプリケーションおよびＯＳでメモリエラーの発生を事前に抑止し、動作継続性を高めることができる。
【００２１】
実施の形態３．
実施の形態２では、サブＣＰＵ上で定期的にメモリ診断を行い、メインＣＰＵ上の障害対処処理部にて未使用のメモリであった場合、使用されないように設定する機能について述べたが、実施の形態３は、さらに、ＯＳ１で管理されている未使用ページのリストへのアドレス等、ＯＳ１上で管理されているメモリページ管理情報を、メモリ診断処理で参照して、未使用メモリかどうかを判断し、未使用メモリに対してのみ診断を行うようにするものである。
【００２２】
図３は、この発明の実施の形態３による計算機システムを示す構成図である。
図３において、１〜１６、３０は図２におけるものと同一のものである。図３では、メモリ５に、未使用のページリストを含むメモリページを管理する情報であり、メインＣＰＵ２のＯＳ１（９）で管理されるメモリページ管理情報１８を持たせ、サブＣＰＵ３のメモリ診断処理部１３に、メモリページ管理情報１８を参照し、未使用のページかどうかを判定する診断メモリ決定処理部１９（診断メモリ決定手段）を設けている。
また、ＯＳ１（９）に、メモリページ管理情報１８のアドレスなどのメモリページ管理情報１８を参照するための情報を、メモリ診断処理部１３の診断メモリ決定処理部１９に通知するメモリページ管理情報通知処理部１７（メモリページ管理情報通知手段）を設けている。
【００２３】
次に、図３を用いて、実施の形態３について説明する。実施の形態２では、ＯＳ１の障害対処処理について説明したが、実施の形態３は、メモリページ管理情報通知処理、診断メモリ判定処理について説明する。
図３に示す計算機システムでは、ＯＳ１（９）のメモリページ管理情報通知処理部１７は、メモリ診断処理部１３が起動するときに、マルチＯＳ管理処理部３０を介して、メモリページ管理情報１８のアドレスなどのメモリページ管理情報１８を参照するための情報を、メモリ診断処理部１３の診断メモリ決定処理部１９に通知する。
メモリ診断処理部１３は、定期的に起動されると、診断メモリ決定処理部１９で、例えば未使用のページリストなどのメモリページ管理情報１８を参照し、未使用のページかどうかを判定、未使用のページに対してのみメモリ診断処理部１３で診断を行わせる。
メモリエラーが検出されてから以降は、実施の形態２で述べたものと同じである。
【００２４】
なお、上述の実施の形態３の説明では、診断メモリ決定処理部１９の処理は、未使用のページかどうかを判定するものとしたが、使用中のページを診断するなど、診断するメモリを指定できるインタフェースを診断メモリ決定処理部１９に設けてもよい。
【００２５】
実施の形態３によれば、メモリページ管理情報を、メモリ診断処理で参照することで、未使用メモリかどうかを判断し、未使用メモリに対してのみ診断を行うようにしたので、アプリケーションおよびＯＳ１でメモリを使用する前にエラーの発生を抑止し、動作継続性を高めることができる。
【００２６】
実施の形態４．
実施の形態３では、サブＣＰＵ上で定期的にメモリ診断を行うメモリを、メインＣＰＵ上のＯＳで管理されている情報にしたがって、判定する機能について述べたが、実施の形態４は、さらに、メインＣＰＵ上のＯＳで管理されているメモリページ管理情報が格納されているメモリを、先に診断することで、診断メモリ決定処理が誤動作することを防止するようにした。
図４は、この発明の実施の形態４による計算機システムを示す構成図である。
図４において、１〜１９、３０は図３におけるものと同一のものである。図４では、診断メモリ決定処理部１９に、メモリページ管理情報１８のアドレスを、診断するメモリとして決定するメモリページ管理情報アドレス判定処理部２０を設けている。
【００２７】
次に、図４を用いて、実施の形態４について説明する。実施の形態３では、メモリ診断処理部１３の診断メモリ決定処理部１９について説明したが、実施の形態４は、診断メモリ決定処理のメモリページ管理情報アドレス判定処理について説明する。
図４の計算機システム１では、メモリ診断処理部１３は、定期的に起動されると、診断メモリ決定処理部１９で、メモリページ管理情報１８を参照する前に、起動時に通知されたメモリページ管理情報１８の参照情報をもとに、メモリページ管理情報アドレス判定処理部２０で、メモリページ管理情報１８のアドレスを、診断するメモリとして決定し、診断を行う。
メモリページ管理情報１８に対するメモリ診断が正常に終了した場合、メモリページ管理情報１８を参照する以降の動作は、実施の形態３で述べたものと同じである。
また、メモリページ管理情報１８に対するメモリ診断の結果、メモリエラーが検出された以降の動作は、実施の形態２で述べたものと同じである。
【００２８】
実施の形態４によれば、ＯＳ１で管理されているメモリページ管理情報が格納されているメモリを、先に診断するようにしたので、診断メモリ決定処理が誤動作することを防止することができる。
【００２９】
実施の形態５．
実施の形態１では、サブＣＰＵ上で定期的にメモリ診断を行い、メインＣＰＵ上の障害対処処理部にて計算機システムの停止を行う機能について述べたが、実施の形態５は、メモリ診断でエラーが検出された場合に、メインＣＰＵ上のＯＳ１の障害対処処理部ではなく、サブＣＰＵ上の障害対処処理部に通知し、エラーに対して、メインＣＰＵの動作を停止させる構成とした。
【００３０】
図５は、この発明の実施の形態５による計算機システムを示す構成図である。
図５において、１〜１３、３０は図１におけるものと同一のものである。図１の障害対処処理部１４に替えて、サブＣＰＵ３に、ＯＳ２（１０）上で動作し、エラー停止などの障害対処を行う障害対処処理部２１（障害対処手段）を設けている。
【００３１】
次に、図５を用いて、実施の形態５について説明する。実施の形態１では、全体的な動作について説明したが、実施の形態５は、サブＣＰＵ上で動作する障害監視処理および障害対処処理について説明する。
図１と同様にして、メモリ異常検出を通知された障害監視処理部１２（異常通知手段）は、ＯＳ２（１０）上で動作する障害対処処理部２１にメモリ異常が検出されたこと、お
よびメモリ異常を発生したアドレス、サイズなどメモリ異常に関する情報を通知する。メモリ異常検出を通知された障害対処処理部２１は、マルチＯＳ管理処理部３０に対して、メインＣＰＵ２の停止を指示して、ＯＳ１（９）の動作を停止し、計算機システム１を停止させる。
【００３２】
なお、障害対処処理部２１での対処については、例として計算機停止について述べたが、故障対処テーブルなどを参照し、対処方法を決定するように構成してもよい。
【００３３】
実施の形態５によれば、メモリ診断でエラーが検出された場合に、メインＣＰＵ上のＯＳ１の障害対処処理部ではなく、サブＣＰＵ上の障害対処処理部に通知し、エラーに対して、メインＣＰＵの動作を停止できるようにしたので、メモリエラーの場合にＯＳ１が動作できない可能性がある場合にも計算機システムをエラー停止させることができる。
【符号の説明】
【００３４】
１  計算機システム
２  メインＣＰＵ
３  サブＣＰＵ
４  マルチコアＣＰＵモジュール
５  メモリ
６  システムバスブリッジ
７  システムバス
８  周辺装置インタフェース
９  ＯＳ１
１０  ＯＳ２
１１  アプリケーション
１２  障害監視処理部
１３  メモリ診断処理部
１４  障害対処処理部
１５  メモリページ使用判定処理部
１６  メモリページ管理設定処理部
１７  メモリページ管理情報通知処理部
１８  メモリページ管理情報
１９  診断メモリ決定処理部
２０  メモリページ管理情報アドレス判定処理部
２１  障害対処処理部
３０  マルチＯＳ管理処理部
【図１】
2010186242.tif 000003
【図２】
2010186242.tif 000004
【図３】
2010186242.tif 000005
【図４】
2010186242.tif 000006
【図５】
2010186242.tif 000007