(57)【特許請求の範囲】
【請求項１】
メモリから読み出されたデータのエラーを検出・訂正し、エラー情報を出力する検出訂正部と、
前記エラー情報を、複数の障害発生要因の各々毎に、障害ログ情報として管理する障害ログ制御部と、
前記障害ログ情報を参照して、前記複数の障害発生要因のいずれかでの前記エラーの発生回数が閾値に達したとき、障害通知を出力する診断制御部と
を具備し、
前記診断制御部は、前記障害通知後の障害ログの要求に応答して、前記発生回数が前記閾値に達するまでの前記障害ログ情報を出力し、
前記障害ログ情報は、前記複数の障害発生要因の各々毎に障害が発生する回数である障害発生回数または前記複数の障害発生要因の各々毎に障害が発生する間隔である障害発生間隔を含み、
前記障害ログ制御部は、
前記障害発生回数または前記障害発生間隔を監視するエラーカウント制御部
を具備し、
前記障害発生回数または前記障害発生間隔に基づいて可変の指摘割合で障害部位の切り離しを行う
障害処理装置。
【請求項２】
請求項１に記載の障害処理装置において、
前記エラー情報は、前記データのアドレスに関する情報を含み、
前記複数の障害発生要因は、前記メモリ内に設定された複数の領域であり、
前記障害ログ制御部は、前記エラー情報の前記アドレスに基づいて、前記複数の領域の各々毎に、前記エラー情報を前記障害ログ情報として管理する
障害処理装置。
【請求項３】
請求項２に記載の障害処理装置において、
前記エラー情報は、更に、前記データ内のエラー位置に関する情報を含み、
前記診断制御部は、前記障害ログ情報を参照して、前記複数の領域のいずれかでの前記発生回数又は前記エラー位置での前記発生回数が前記閾値に達したとき、前記障害通知を出力する
障害処理装置。
【請求項４】
請求項３に記載の障害処理装置において、
前記障害ログ制御部は、
前記エラー情報を記憶するエラー情報保持部と、
前記複数の領域の各々毎に設けられた複数のカウント制御部と、
前記障害ログ情報を保持する障害ログ保持部と
を備え、
前記複数のカウント制御部の各々は、前記複数の領域の各々のうちの自身に対応付けられた領域に含まれるアドレスを有する前記エラー情報を取得し、前記アドレスに関する第１カウント値、及び、前記エラー位置に関する第２カウント値をインクリメントし、
前記アドレス、前記第１カウント値、前記エラー位置及び前記第２カウント値を前記障害ログ情報として前記障害ログ保持部へ出力し、
前記診断制御部は、
前記第１カウント値用の第１閾値、及び、前記第２カウント値用の第２閾値の少なくとも一方を保持するカウント閾値保持部と、
前記第１カウント値と前記第１閾値との一致、又は、前記第２カウント値と前記第２閾値との一致の少なくとも一方に基づいて、前記障害通知を出力する比較部と
を備える
障害処理装置。
【請求項５】
請求項１乃至４のいずれか一項に記載の障害処理装置と、
前記障害通知に応答して、前記障害処理装置から、前記発生回数が前記閾値に達するまでの前記障害ログ情報を取得する診断部と、
前記障害処理装置から取得した障害ログ情報に基づいて、前記複数の障害発生要因のうちの前記閾値に対応する障害発生要因を取り除く管理制御部と
を具備する
情報処理装置。
【請求項６】
メモリから読み出されたデータのエラーを検出・訂正し、エラー情報を出力するステップと、
前記エラー情報を、複数の障害発生要因の各々毎に、障害ログ情報として管理するステップと、
前記障害ログ情報を参照して、前記複数の障害発生要因のいずれかでの前記エラーの発生回数が閾値に達したとき、障害通知を出力するステップと、
前記障害通知に応答して、前記発生回数が前記閾値に達するまでの前記障害ログ情報を取得するステップと、
前記取得された障害ログ情報に基づいて、前記複数の障害発生要因のうちの前記閾値に対応する障害発生要因を取り除くステップと
を具備し、
前記障害ログ情報は、前記複数の障害発生要因の各々毎に障害が発生する回数である障害発生回数または前記複数の障害発生要因の各々毎に障害が発生する間隔である障害発生間隔を含み、
前記管理するステップは、
前記障害発生回数または前記障害発生間隔を監視するステップ
を具備し、
前記取り除くステップは、
前記障害発生回数または前記障害発生間隔に基づいて可変の指摘割合で障害部位の切り離しを行うステップ
を具備する
障害処理方法。
【請求項７】
請求項６に記載の障害処理方法において、
前記エラー情報は、前記データのアドレスに関する情報を含み、
前記複数の障害発生要因は、前記メモリ内に設定された複数の領域であり、
前記障害ログ情報として管理するステップは、
前記エラー情報の前記アドレスに基づいて、前記複数の領域の各々毎に、前記エラー情報を前記障害ログ情報として管理するステップを備える
障害処理方法。
【請求項８】
請求項７に記載の障害処理方法において、
前記エラー情報は、更に、前記データ内のエラー位置に関する情報を含み、
前記障害通知を出力するステップは、
前記障害ログ情報を参照して、前記複数の領域のいずれかでの前記発生回数又は前記エラー位置での前記発生回数が前記閾値に達したとき、前記障害通知を出力するステップを備える
障害処理方法。
【請求項９】
請求項８に記載の障害処理方法において、
前記障害ログ情報を管理するステップは、
前記複数の領域の各々毎に、自身に対応付けられた領域に含まれるアドレスを有する前記エラー情報を取得し、前記アドレスに関する第１カウント値、及び、前記エラー位置に関する第２カウント値をインクリメントするステップと、
前記アドレス、前記第１カウント値、前記エラー位置及び前記第２カウント値を前記障害ログ情報として格納するステップと
を備え、
前記障害通知を出力するステップは、
前記第１カウント値用の第１閾値、及び、前記第２カウント値用の第２閾値の少なくとも一方を保持するステップと、
前記第１カウント値と前記第１閾値との一致、又は、前記第２カウント値と前記第２閾値との一致の少なくとも一方に基づいて、前記障害通知を出力するステップと
を備える
障害処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、障害処理装置、それを用いた情報処理装置及び情報処理装置の障害処理方法に関する。
【背景技術】
【０００２】
一般的に、高信頼性を求められるコンピュータシステムは、メモリ内のデータやデータ伝送路上のデータを保護するためにＥＣＣ（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ  Ｃｏｄｅ）を利用している。メモリに誤ったデータが記録された場合や伝送路上に誤ったデータが送出された場合、ＥＣＣを用いて、例えば以下のような障害処理方式を行っている。まず、データのエラーが訂正可能か否かを検出する。そして、訂正可能エラーの場合、エラーしたｂｉｔを訂正してコンピュータシステムを動作継続する。訂正不可能なエラーの場合、訂正不可能であることを検出すると共に、コンピュータシステムの動作継続が不可能であると判断して、システムダウンさせる。
【０００３】
メモリ等で発生するエラーの要因には、ハードウェアにおける論理設計ミスや回路設計ミスにより発生するものや、半導体素子や配線の劣化等によるハードウェア破壊により発生するもの等がある。また、α線等が原因でメモリ上のｂｉｔエラーを一時的に引き起こすようなソフトエラーもある。更に、コンピュータシステムの電源環境や設置環境による温度異常等により引き起こされるエラーもある。
【０００４】
このような様々な状況・要因の下で、障害が多数発生することが考えられる。一般的に、コンピュータシステムに障害が発生すると、診断装置へ障害報告が行われる。この障害報告を契機として、診断装置が障害箇所のログ情報採取のような割り込み処理を実行する。しかし、様々な要因の下、障害が多発すると、診断装置の処理能力以上の割り込み処理が頻発する場合が想定される。その場合、診断装置が割り込み処理をロストしてしまう問題が発生し、必要な障害処理が出来なくなってしまう問題が発生する。
【０００５】
従来は、上述のような障害多発による割り込み処理を軽減させるために、訂正可能エラー検出以後、一定期間障害検出を抑止することやエラー発生回数を閾値で管理することによって、割り込み処理のロストを防止している。但し、この抑止期間中や閾値管理中に検出する訂正可能エラーは訂正される。
【０００６】
関連する技術として、特開２０１０−２６８３１号公報に障害自動通報装置が開示されている。障害自動通報装置は、情報処理システムの障害データ収集部と、障害発生頻度の閾値管理部と、自動通報制御部と、自動通報を発生させる日時、通報対象とする障害の発生期間、通報対象とする障害の種類を指定できる強制自動通報起動部と、を有している。指定期間内で発生した発生頻度の閾値管理を行っている障害が発生頻度の閾値に達しない状態であっても指定の日時に自動通報を強制的に行う。
【０００７】
特開平０９−１２８３０３号公報にメモリ管理装置が開示されている。メモリ管理装置は、メモリＥＣＣを搭載しページ化仮想記憶を採用するコンピュータシステムの装置である。メモリ管理装置は、メモリＥＣＣのコレクタブルエラーを履歴情報としてページ単位に保持する履歴情報保持手段と、ページ割り当て要求が発生したときに、割り当てページに対して書き込みが行なわれるか否か検知し、書き込みが行なわれるときには、履歴情報保持手段にＥＣＣコレクタブルエラーの履歴が保持されていないページを割り当て、書き込みが行なわれないときには、ＥＣＣコレクタブルエラーの履歴有無に関わらずに任意のページを割り当てるページ割り当て手段とを具備する。ＥＣＣエラーの再発を極力抑える。
【０００８】
特開平０６−５９９２０号公報にデータ障害検出回路が開示されている。データ障害検出回路は、複数ビットからなるデータのエラービットの位置を示すビットエラー信号を受けてビットエラーが固定障害なのか間欠障害なのかを検出する。データ障害検出回路は、データの各ビットに対応する複数のカウンタを有し、ビットエラー信号が示すエラービットのエラー発生回数を計数してビット毎のエラー発生回数を示す信号を送出するエラー計数手段と、ビットエラー信号が示す正常なビットに対応するカウンタの計数値を０にするリセット信号を送出するリセット手段と、エラー発生回数を示す信号を受けて、エラー発生回数が所定回数に達したカウンタに対応するビットが固定障害であると判定する手段と、エラー発生回数を示す信号およびリセット信号を受け、リセットされるカウンタの計数値が０でないときに、このカウンタに対応するビットが間欠障害であると判定する手段とを備える。
【０００９】
特開２００８−２７２８４号公報に障害処理システム、障害処理方法、障害処理装置およびプログラムが開示されている。障害処理システムは、情報通信システムと障害処理装置とを備える。障害処理装置は、情報通信システムの特定個所で訂正不可能エラーが発生する前に発生する訂正可能エラー発生回数を計数する手段と、計数値に基づいて閾値を設定する設定手段と、特定個所を修復した後に、特定個所での訂正可能エラー発生回数が閾値と一致したときに情報通信システムに対して通知を行う通知手段とを有する。
【００１０】
特開平１０−３４０８号公報に障害監視カウンタ制御方式が開示されている。障害監視カウンタ制御方式は、監視対象装置それぞれで発生した障害を計数する障害監視カウンタを制御する。障害監視カウンタ制御方式は、監視タイマによる所定監視時間を設けている。この所定監視時間を超過した際には前記障害監視カウンタおよび監視タイマをクリアし、かつ前記所定監視時間内に所定回数以内の障害を発生した監視対象装置を修復してシステムを稼働させたまま挿入稼働する活線挿抜処理を完了した際には前記障害監視カウンタのみをクリアする。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２０１０−２６８３１号公報
【特許文献２】特開平０９−１２８３０３号公報
【特許文献３】特開平０６−５９９２０号公報
【特許文献４】特開２００８−２７２８４号公報
【特許文献５】特開平１０−３４０８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかし、このような一定期間障害検出を抑止する方式やエラー発生回数の閾値で管理する方式の場合、障害報告を抑止する一定期間やエラー発生回数が閾値に到達までの期間には障害報告も抑止される。すなわち、障害ログ情報の採取のような処理が実施されないため、上記の障害報告抑止期間や閾値到達までの期間は、障害が発生していない期間として扱われる。そのため、この期間中に同様な障害が多発してしまうと、訂正不可能エラーに発展し、システムダウンに繋がる恐れがある。
【００１３】
また、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）やソフトウェアには、メモリをページ単位に分け、このページ毎に発生するメモリの訂正可能エラー回数をカウントし、エラー回数が閾値に達すると、障害メモリページを論理的に切り離す機能を備えている。エラー回数のカウントアップ契機は、ハードウェアから報告される障害ログ情報である。しかし、上述のような一定期間障害検出を抑止する方式やエラー発生回数の閾値で管理する方式の場合、障害ログ情報が採取されないため、ＯＳやソフトウェアの上記機能が発揮できず、その効果が得られていない問題が生じていた。
【００１４】
本発明の目的は、情報処理装置における障害箇所の特定を最適化すると共に、障害の予兆監視を効率的に行うことが可能な障害処理装置、それを用いた情報処理装置及び情報処理装置の障害処理方法を提供することにある。
【課題を解決するための手段】
【００１５】
本発明の障害処理装置は、検出訂正部と、障害ログ制御部と、診断制御部とを具備している。検出訂正部は、メモリから読み出されたデータのエラーを検出・訂正し、エラー情報を出力する。障害ログ制御部は、エラー情報を、複数の障害発生要因の各々毎に、障害ログ情報として管理する。診断制御部は、障害ログ情報を参照して、複数の障害発生要因のいずれかでのエラーの発生回数が閾値に達したとき、障害通知を出力する。診断制御部は、障害通知後の障害ログの要求に応答して発生回数が閾値に達するまでの障害ログ情報を出力する。
【００１６】
本発明の情報処理装置は、障害処理装置と、診断部と、管理制御部とを具備している。障害処理装置は上記のとおりである。診断部は、障害通知に応答して、障害処理装置から、発生回数が閾値に達するまでの障害ログ情報を取得する。管理制御部は、障害処理装置が取得した障害ログ情報に基づいて、複数の障害発生要因のうちの閾値に対応する障害発生要因を取り除く。
【００１７】
本発明の障害処理方法は、メモリから読み出されたデータのエラーを検出・訂正し、エラー情報を出力するステップと；エラー情報を、複数の障害発生要因の各々毎に、障害ログ情報として管理するステップと；障害ログ情報を参照して、複数の障害発生要因のいずれかでのエラーの発生回数が閾値に達したとき、障害通知を出力するステップと；障害通知に応答して、発生回数が閾値に達するまでの障害ログ情報を取得するステップと；取得された障害ログ情報に基づいて、複数の障害発生要因のうちの閾値に対応する障害発生要因を取り除くステップとを具備している。
【発明の効果】
【００１８】
本発明により、情報処理装置における障害箇所の特定を最適化すると共に、障害の予兆監視を効率的に行うことが可能な障害処理装置、それを用いた情報処理装置及び情報処理装置の障害処理方法を提供することができる。
【図面の簡単な説明】
【００１９】
【図１】図１は、本発明の実施の形態に係る障害処理装置を用いた情報処理装置のハードウェア構成を示すブロック図である。
【図２】図２は、図１に示すハードウェア構成に対して、コンピュータシステムを管理するソフトウェア（ＯＳ）の概略構成を示すブロック図である。
【図３】図３は、本発明の実施の形態に係る障害処理装置を用いた情報処理装置の動作を示すフローチャートである。
【発明を実施するための形態】
【００２０】
以下、本発明の障害処理装置及び障害処理方法の実施の形態に関して、添付図面を参照して説明する。
【００２１】
本発明の実施の形態に係る障害処理装置を用いた情報処理装置の構成について説明する。図１は、本発明の実施の形態に係る障害処理装置を用いた情報処理装置のハードウェア構成を示すブロック図である。情報処理装置５０は、メモリ１と、メモリコントローラ２と、診断装置６と、プロセッサ８と、記憶装置７とを具備している。情報処理装置５０は、コンピュータシステムに例示される。
【００２２】
メモリ１は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）に例示されるメモリ（主記憶装置）である。メモリ１に書き込まれるデータは、ＥＣＣ（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ  Ｃｏｄｅ）によりデータ破壊から保護されている。メモリ１からデータが読み出されると、ＥＣＣ回路３（後述）によりＥＣＣチェックが行われる。
【００２３】
メモリコントローラ２は、メモリ１の制御を行うメモリコントローラである。本図においては、メモリコントローラ２のうち、本実施の形態の内容に係る障害処理に関する構成のみを図示している。他の構成については、従来と同様の構成を用いることができる。メモリコントローラ２は、ＥＣＣ回路３と、診断制御部４と、障害ログ制御部５とを備えている。
【００２４】
ＥＣＣ回路３は、メモリ１から読み出されたデータに対してＥＣＣチェックを行う回路である。エラー検出部１１とエラー訂正部１２とを含んで着る。エラー検出部１１は、メモリ１から読み出されたデータにエラーが有るか否か、及び、そのエラーは訂正可能エラーか否かを検出する。メモリ１から読み出されたデータに訂正可能エラーがある場合、エラー訂正部１２は、エラーｂｉｔを訂正する。その後、ＥＣＣ回路３は、障害ログ制御部５に対して、ログ情報として、障害が検出されたアドレスやＥＣＣシンドローム（障害情報）を送出する。メモリ１から読み出されたデータに訂正不可能なエラーがある場合、ＥＣＣ回路３は、エラー検出のみを行い、診断制御部４を介して診断装置６に障害報告を行う。なお、訂正不可能なエラー検出をした時の動作は、本実施の形態の本質ではなく、従来知られた方法を用いることができるため、特に言及しない。
【００２５】
診断制御部４は、ＥＣＣ回路３から報告される障害通知制御、障害ログ制御部５から報告される障害発生状況の閾値管理、及び、障害ログ情報の採取時に行われる診断命令の制御を行う。診断制御部４は、診断命令制御部１４とエラーカウント閾値保持部１５と比較部１６とを含んでいる。
【００２６】
診断命令制御部１４は、診断装置６及びプロセッサ８からの診断命令の制御を行う。メモリコントローラ２への各種設定命令や、障害処理における障害ログ情報３６（後述）の採取命令の制御を行う。プロセッサ８は、障害ログ情報保持部１９の障害ログ情報３６を、診断命令制御部１４を介して採取する。
【００２７】
エラーカウント閾値保持部１５は、障害ログ情報保持部１９（後述）に格納されている複数のカウント値の各々毎の閾値が設定されている。本実施の形態では、このエラーカウント閾値保持部１５は、障害ログ情報３６で管理する全エントリの閾値を一元管理するものとしており、エントリ毎に複数の閾値がユニークに設定されるようにしても良い。尚、この閾値設定は、ハードウェアにより初期値として値を設定（例：初期値３）する方法もしくは、ソフトウェア（ＯＳ）により設定する方法のどちらでも良い。
【００２８】
比較部１６は、障害ログ制御部５でカウントされる各エントリのカウント値と、エラーカウント閾値保持部１５に格納された当該エントリの閾値とを比較する。そして、カウント値が閾値に達すると、診断装置６に対して障害通知を行う。
【００２９】
障害ログ制御部５は、ＥＣＣ回路３により障害検出（エラー検出）されたログ情報（障害情報を含む）の制御を行う。障害ログ制御部５は、エラー情報保持部１７と、エラーカウント制御部１８と、障害ログ情報保持部１９とを含んでいる。
【００３０】
エラー情報保持部１７は、ＥＣＣ回路３より受け取る障害情報（エラー情報）を保持するレジスタである。エラー情報保持部１７は、その障害情報をエラーカウント制御部１８及び障害ログ制御部１９に出力する。障害情報は、障害が検出されたアドレスやＥＣＣシンドロームを含んでいる。
【００３１】
エラーカウント制御部１８は、障害情報に基づいて、障害が発生したアドレスに対して、エラー回数（障害回数）のカウント制御を行う。具体的には、エラーカウント制御部１８は、メモリ１に設定される複数のアドレス空間の各々毎に、障害が発生した場合のエラー回数のカウント制御及び障害発生間隔の監視を行う。ただし、メモリ１に設定される複数のアドレス空間は、例えば、以下のように設定される。既述のように、ＯＳやソフトウェアは、それらがメモリを複数のページに分け、ページ毎に発生するメモリの訂正可能エラー回数をカウントし、エラー回数が閾値に達したページが発生すると、当該ページを障害メモリページとして論理的に切り離す機能を有している。従って、複数のアドレス空間は、この機能を有効に働かせることができるように、当該複数のページに対応するように設定されることが好ましい。エラーカウント制御部１８は、複数のエントリ部２２を有している。
【００３２】
複数のエントリ部２２（−ｉ、ｉ＝０〜ｎ）は、複数のアドレス空間に対応して設けられている。各エントリ部２２は、障害情報に基づいて、対応するアドレス空間において発生した、エラー回数と障害発生間隔を計測する。エントリ部２２は、比較情報保持部３１と、比較部３２と、カウンタ３３と、インターバルタイマ３４とを含んでいる。
【００３３】
比較情報保持部３１は、第１レジスタと、第２レジスタとを有している。第１レジスタには、自身が属しているエントリ部２２が障害情報を登録する対象のアドレス空間が設定されている。第１レジスタのアドレス空間はＥＣＣチェックの動作前に予め設定される。第２レジスタは、障害情報（エラー情報）に基づいて、障害が発生した時に、そのアドレス空間で発生したＥＣＣシンドロームが登録される。第２レジスタは初期的には何も登録されていない。ＥＣＣチェックが開始され、エラー情報を受け取って初めてＥＣＣシンドロームが登録されていく。
【００３４】
このアドレス空間は、メモリコントローラ２の配下で管理されるメモリを、複数の空間（例示：ＯＳ等におけるページ単位）に分割したものであり、比較情報保持部３１には、アドレス空間を示すメモリ空間の上限値及び下限値が設定される。例えば、メモリ空間を４ＫＢ単位に分割する場合、エントリ部２２−０の比較情報保持部３１の下限値には、３２’ｈ００００＿００００、上限値には、３２’ｈ００００＿０ＦＦＦの値が設定される。（本表記の３２’ｈ００００＿００００及び３２’ｈ００００＿０ＦＦＦは、３２ｂｉｔのアドレスを１６進数で表したものである。）この設定は、コンピュータシステムのメモリ容量を管理するソフトウェア（ＯＳ）により、最適な値が計算されて行われる。なお、これらは設定の一例であり、本発明はこのような設定方法のみに限定されるものではない。
【００３５】
比較部３２は、エラー情報保持部１７の障害情報（エラー情報）が示すアドレスと比較情報保持部３１のアドレス空間とを比較する。エラー情報保持部１７のアドレスが比較情報保持部３１のアドレス空間に含まれる場合、一致を示す信号がカウンタ３３に出力される。また、比較部３２は、エラー情報保持部１７の障害情報（エラー情報）が示すＥＣＣシンドロームと比較情報保持部３１のＥＣＣシンドロームとを比較する。エラー情報保持部１７のＥＣＣシンドロームが比較情報保持部３１のＥＣＣシンドロームに含まれる場合、一致を示す信号がカウンタ３３に出力される。含まれない場合、その含まれないＥＣＣシンドロームが比較情報保持部３１に新たに登録される。
【００３６】
カウンタ３３は、障害発生アドレス用の第１カウンタとＥＣＣシンドローム用の第２カウンタとを含んでいる。第１カウンタは、エラー情報保持部１７のアドレスが比較情報保持部３１のアドレス空間に含まれていることを示す信号に応答して、カウンタをインクリメントしていく。第２カウンタは、エラー情報保持部１７のＥＣＣシンドロームが比較情報保持部３１のＥＣＣシンドロームに含まれることを示す信号に応答して、カウンタをインクリメントしていく。
【００３７】
インターバルタイマ３４は、障害の発生以後、比較情報保持部３１に一致する障害の発生間隔を監視するタイマである。例えば、カウンタ３３のカウントがインクリメントする間隔を計測し、障害発生間隔として出力する。
【００３８】
本実施の形態の場合、上述のように、メモリ１に複数のアドレス空間を設定し、各アドレス空間をレンジ判定（下限値から上限値までのレンジ）して、そのアドレス空間毎にエントリ部２２を持つようにしている。しかし、これは設定の一例であり、本発明はこの例に限定されるものではなく、エラーアドレス毎にエントリ部２２を登録しても良い。また、それら複数のアドレス空間や、複数のエラーアドレスや、角アドレスでの複数のＥＣＣシンドロームは、それらが障害の元になっていることから、複数の障害発生要因とも見ることができる。
【００３９】
障害ログ情報保持部１９は、エラーカウント制御部１８により管理されている障害発生回数（カウンタ３３）、障害検出されたアドレスやＥＣＣシンドローム（比較情報保持部３１）、障害発生間隔を示す情報（インターバルタイマ３４）を障害ログ情報３６として格納するレジスタ群である。エラーカウント制御部１８と同様のエントリ数（複数のエントリ部２２と同数）を有している。障害ログ情報３６は、エントリ部２２−ｉの番号（図中、“０、１、…ｎ”）、障害が発生したアドレス（図中、“アドレス”）、そのアドレスが含まれるアドレス空間内で発生した障害発生回数（図中、“カウント”）、その障害に関するＥＣＣシンドローム及びその発生回数（図中、“シンドローム、カウント”）、及び、そのアドレス空間内での障害発生間隔（（図中、“インターバル”）を、互いに関連付けて格納する。すなわち、障害ログ情報３６の各エントリは、対応するエントリ部２２−ｉ（対応するメモリページ）に関する、障害発生アドレス、その障害発生回数、そのＥＣＣシンドローム及びその発生回数、及び、その障害発生間隔を含んでいる。エラー情報保持部１７の障害情報のアドレスが、エラーカウント制御部１８の比較情報保持部３１のアドレス空間に含まれるエントリに対して、格納が行われる。
【００４０】
この場合、一つのエントリにおいて、障害発生アドレスについては、下限値から上限値までの範囲に含まれる複数（種類）のアドレスが記載される可能性がある。ただし、その障害発生回数については、その複数（種類）のアドレスの各々での障害発生回数を総合した回数が記載される。更に、その複数（種類）のアドレスの各々に対して、複数（種類）のＥＣＣシンドロームが記載される可能性がある。その場合、その発生回数については、その複数（種類）のＥＣＣシンドロームの各々の発生回数が記載される。なお、障害発生間隔については、その複数（種類）のアドレスの各々毎に障害発生する間隔が記載される。
【００４１】
なお、本実施の形態では、障害ログ情報３６の中にアドレスを格納している。しかし、エラーカウント（障害発生回数の計数）を行うアドレス空間の設定はソフトウェア（ＯＳ）で行っており、ソフトウェア（ＯＳ）は設定段階でエントリ毎に指定するアドレス空間を把握している。そのため、アドレスの格納は行わなくても良い。
【００４２】
診断装置６は、コンピュータシステムの診断制御を行う装置であり、メモリコントローラ２からの障害通知を受け、障害ログ情報３６の採取、障害復旧処理のような制御を行う。
【００４３】
プロセッサ８は、プロセッサ（例示：ＣＰＵ）である。本プロセッサ８上で、ソフトウェアまたはＯＳによるプログラムが実行される。
【００４４】
記憶装置７は、診断装置６により、採取された障害ログを格納する記憶装置である。ハードディスクや不揮発性メモリ等で構成されるのが一般的である。
【００４５】
少なくとも上記のＥＣＣ回路３と、診断制御部４と、障害ログ制御部５とを含む構成（それらの動作に関わるソフトウェアを含んでも良い）は、訂正可能なエラー（障害）を検出・訂正し、障害ログ情報を管理し、障害発生に関する閾値管理をしている障害処理装置を構成していると見ることもできる。
【００４６】
図２は、図１に示すハードウェア構成に対して、コンピュータシステムを管理するソフトウェア（ＯＳ）の概略構成を示すブロック図である。図２は、プロセッサ８上で動作するプログラムの一部を示している。
ソフトウェア（ＯＳ）６０は、コンピュータシステムを管理するソフトウェアまたはＯＳである。メモリコントローラ２への各種設定をプロセッサ８に指示する。本実施の形態では、プロセッサ８からの命令は診断装置６を介して行うこととしている。
【００４７】
また、ソフトウェア（ＯＳ）６０は、コンピュータシステムが使用しているメモリをページ単位に分け、このページ毎に発生するエラー回数をカウントし、エラー回数が閾値に達すると、障害メモリページを論理的に切り離すという障害処理機能を備えている。診断装置６とプロセッサ８との間には通信機能が備えられている。ソフトウェア（ＯＳ）６０は、診断装置６によって採取された障害ログ情報を、プロセッサ８を介して取得する。そして、自身が有する構成制御部６１の構成制御機能及びメモリ管理部６２のメモリ管理機能によって、上述のような障害メモリページの切り離しを行う。
【００４８】
なお、診断装置６やプロセッサ８及びソフトウェア（ＯＳ）６０に関わる詳細動作については、本発明の本質ではなく、従来から備えられている機能であるため、これ以上のことは特に言及しない。
【００４９】
次に、本発明の実施の形態に係る障害処理装置を用いた情報処理装置の動作について説明する。図３は、本発明の実施の形態に係る障害処理装置を用いた情報処理装置の動作を示すフローチャートである。
【００５０】
メモリ１に書き込まれるデータは、ＥＣＣによるデータ保護が行われている。メモリ１からデータが読み出される（ステップＳ１）と、ＥＣＣ回路３はエラー検出部１１でＥＣＣチェックを行う（ステップＳ２）。以下では、主に、メモリ１から読み出されたデータに、訂正可能エラーが発生していた場合について説明する。
【００５１】
エラー検出部１１がＥＣＣチェックにより訂正可能エラーが発生していることを検出した場合（ステップＳ２：ＣＥ（Ｃｏｒｒｅｃｔａｂｌｅ  Ｅｒｒｏｒ））、ＥＣＣ回路３のエラー訂正部１２はエラーしているｂｉｔのエラー訂正を行う（ステップＳ３）。この時、障害ログ制御部５に対して、エラー情報（障害情報）として、障害を検出したアドレスやＥＣＣシンドロームを送出する。エラーが検出されない場合（ステップＳ２：ＮｏＥ（Ｎｏ  Ｅｒｒｏｒ））、障害に関する処理を行わずにデータ読み出しが継続される（ステップＳ１）。
【００５２】
また、メモリ１から読み出したデータに訂正不可能なエラーがある場合（ステップＳ２：ＵＥ（Ｕｎｃｏｒｒｅｃｔａｂｌｅ  Ｅｒｒｏｒ））は、エラー検出のみを行い、診断制御部４を介して診断装置６に障害報告が行われ（ステップＳ８）、訂正不可能なエラーがある場合に対応した処理が行われる（ステップＳ９）。なお、訂正不可能なエラー検出した場合でのステップＳ８、Ｓ９での動作については、本発明の本質ではなく、従来と同様の方法で対応することが可能であるため、ここでは特に言及しない。
【００５３】
ＥＣＣ回路３からエラー情報（障害情報）を受け取った障害ログ制御部５は、障害ログ情報の制御を開始する。エラー情報保持部１７は、このエラー情報を格納する（ステップＳ４）。エラーカウント制御部１８は、このエラー情報に基づいて、エラーカウント制御を行う（ステップＳ５）。障害ログ情報保持部１９は、このエラー情報及びそれに関する情報をエラー情報保持部１７及びエラーカウント制御部１８から受け取り、障害ログ情報３６を生成する（ステップＳ６）。
【００５４】
ここで、エラーカウント制御部１８では、障害が発生したアドレス空間毎に、エラー発生回数の制御を行う。上述のように、エラーカウント制御部１８は、複数のアドレス空間の各々単位でエラー発生回数がカウント出来るように複数のエントリ部２２−１〜ｎを持っている。各エントリ部２２は、比較情報保持部３１を持っている。比較情報保持部３１には、各エントリ部２２に対してエラー回数を管理するアドレス空間が設定される。この設定は、コンピュータシステムのメモリ容量を管理するソフトウェア（ＯＳ）６０によって、最適な値が計算されて行われる。
【００５５】
一例として、このエントリ部２２に対してメモリ空間を４ＫＢ単位に分割する場合の設定方法を説明する。比較情報保持部３１は、アドレス空間を指定するために、アドレスの上限値及び下限値が設定されるようになっている。エントリ部２２−０（エントリ０）を先頭アドレスから４ＫＢまでを設定する場合、下限値は３２’ｈ００００＿００００、上限値は、３２’ｈ００００＿０ＦＦＦの値が設定される。次の４ＫＢをエントリ部２２−１（エントリ１）に設定する場合、下限値は３２’ｈ００００＿１０００、上限値は、３２’ｈ００００＿１ＦＦＦとなる。このようにして、それぞれのエントリ部２２−ｉ（ｉ＝１〜ｎ）に対して設定が行われる。また、この比較情報保持部３１には、ＥＣＣ回路３より送出される障害発生したときのＥＣＣシンドロームの登録も行う。
【００５６】
ここで、障害が発生したアドレスが、エントリ部２２−０（エントリ０）の空間に一致する３２’ｈ００００＿００００番地であった場合におけるステップＳ５、Ｓ６について、以下に説明する。
【００５７】
エントリ部２２−０では、比較部３２が、エラー情報保持部１７で保持しているアドレスの番地と、比較情報保持部３１に設定されているアドレス空間とを比較する。そして、エラー情報保持部１７のアドレスの番地が、比較情報保持部３１のアドレス空間に含まれている場合、エントリ部２２−０に該当するアドレスであると認識し、カウンタ３３のエラー回数用のカウンタをインクリメントする。このカウンタ３３のカウント値は、障害ログ情報保持部１９に出力される（ステップＳ５）。エントリ部２２−０のカウント値及びアドレスの番地は、障害ログ情報保持部１９の障害ログ情報３６のエントリ部２２−０（エントリ０）のカウント領域及びアドレス領域に書き込まれる（ステップＳ６）。
【００５８】
また、上記の動作と同様に、比較部３２が、エラー情報保持部１７で保持している障害が発生した時のＥＣＣシンドロームと、そのエントリ部２２−０の比較情報保持部３１に登録されているＥＣＣシンドロームとを比較する。そして、エラー情報保持部１７のＥＣＣシンドロームと、比較情報保持部３１のＥＣＣシンドロームとが一致しない場合（未だ登録されていないＥＣＣシンドロームの場合）、この時のＥＣＣシンドロームを比較情報保持部３１に残し、登録する（ステップＳ５）。この時のＥＣＣシンドロームは、更に、障害ログ情報保持部１９の障害ログ情報３６のエントリ部２２−０（エントリ０）のシンドローム、カウント領域に登録されるが、カウント値は０となる（ステップＳ６）。この場合（初めてのＥＣＣシンドロームの場合）は、間欠故障と判断される。
【００５９】
一方、エラー情報保持部１７のＥＣＣシンドロームと、比較情報保持部３１のＥＣＣシンドロームとが一致する場合（既に登録されたＥＣＣシンドロームの場合）、カウンタ３３のＥＣＣシンドローム用のカウンタをインクリメントする。このカウンタ３３のカウント値は、障害ログ情報保持部１９に出力される（ステップＳ５）。ＥＣＣシンドロームのカウント値は、障害ログ情報保持部１９の障害ログ情報３６のエントリ部２２−０（エントリ０）のシンドローム、カウント領域に、当該ＥＣＣシンドロームと関連付けられて書き込まれる（ステップＳ６）。
【００６０】
更に、インターバルタイマ３４は、障害発生以後の発生間隔を監視するためタイマを起動する。１回目に発生したタイマ値は０として障害ログ情報保持部１９の障害ログ情報３６のエントリ部２２−０のインターバル領域に登録される。それ以降の障害発生の時には、インターバルタイマ３４で計測されたタイマ値又はインターバル値がエントリ部２２−０のインターバル領域に登録される。
【００６１】
この時点で、障害ログ情報保持部１９の障害ログ情報３６には、エントリ部２２−０（図中、エントリ“０”の欄）のみに障害ログが書き込まれている。その具体的な内容は、例えば、次のようになる。図中の“アドレス”欄にはアドレス番地が書込まれる。図中の“カウント”欄には１（エラー発生回数）が書込まれる。また、図中の“シンドローム、カウント”欄には、未だ登録されていないＥＣＣシンドロームの場合にはＥＣＣシンドローム及び０（間欠障害）が、既に登録されたＥＣＣシンドロームの場合にはＥＣＣシンドローム及び１（ＥＣＣシンドロームの発生回）が、それぞれ書き込まれている。
【００６２】
次に、診断制御部４において、エラー発生回数が閾値に達しているか否かをチェックする（ステップＳ７）。エラーカウント閾値保持部１５には、エラー発生回数又はＥＣＣシンドローム回数の閾値が設定されている。本実施の形態では、一例として閾値が３である場合について説明する。
【００６３】
なお、診断制御部４は常時、障害ログ情報保持部１９の障害ログ情報３６を監視している。すなわち、比較部１６は、エラーカウント閾値保持部１５で設定されている閾値と、障害ログ情報保持部１９の障害ログ情報３６のカウント値又はシンドローム、カウント値とが一致するか否かを監視している。上記の例では、障害が発生した回数が１回又はＥＣＣシンドローム回数が１回であるため、障害ログ情報保持部１９のカウント値（１）又はシンドローム、カウント値（１）とエラーカウント閾値保持部１５で設定されている閾値（３）とは一致しない。そのため、この時点では、診断装置６への障害通知は行われない（ステップＳ７：Ｎｏ）。
【００６４】
以上のステップＳ１〜ステップＳ７（Ｎｏ）が、エラー発生回数又はＥＣＣシンドローム回数が閾値に達していない場合の動作である。そして、エラー発生回数又はＥＣＣシンドローム回数が閾値に到達する（ステップＳ７：Ｙｅｓ）まで、コンピュータシステムは継続動作を行う。エラー発生回数又はＥＣＣシンドローム回数が閾値に到達するまでの動作は、上述同様であるため、その説明を省略する。
【００６５】
次に、エラー発生回数又はＥＣＣシンドローム回数が閾値（例示：３）に到達した場合（ステップＳ７：Ｙｅｓ）の動作について説明する。
障害ログ情報保持部１９のエントリ部２２−０（エントリ０）に設定されているアドレス空間内でのエラー発生回数又は障害が発生したＥＣＣシンドローム回数が３になると、比較部１６は、エラーカウント閾値保持部１５の閾値と、障害ログ情報保持部１９のカウント値又はシンドローム、カウント値とが一致したことを検出する（ステップＳ７：Ｙｅｓ）。それにより、診断制御部４（の比較部１６）は診断装置６に診断報告として障害通知を行う（ステップＳ８）。
【００６６】
診断装置６は、障害通知を契機として、障害ログ情報３６の採取を行う。診断装置６が、診断制御部４に対して、障害ログ情報３６の採取命令を行うことで障害処理を開始する。診断制御部４は、診断装置６から本命令を受け取ると、メモリコントローラ２が保有する障害ログ情報保持部１９から障害ログ情報３６を読み出して、診断装置６に送信する。障害ログ情報３６を採取した診断装置６は、採取した障害ログを記憶装置７に格納する。
【００６７】
この記憶装置７に格納された障害ログ情報３６は、診断装置６とプロセッサ８との間での通信により、障害状態としてソフトウェア（ＯＳ）６０に受け渡される。ソフトウェア（ＯＳ）６０は、この障害状態（障害ログ情報３６）に基づいて、メモリ１の障害状態を解析し、ソフトウェア（ＯＳ）が管理しているエラー発生回数の閾値に達していれば、障害メモリページを論理的に切り離す障害処理を行う（ステップＳ９）。あるいは、この障害状態（障害ログ情報３６）に示される閾値に到達するまでの経過を解析して、追加的な他の障害処理を行っても良い。
【００６８】
本障害ログ情報３６においては、障害発生回数は３回を示しており、ソフトウェア（ＯＳ）６０は、閾値に達したことを認識し、障害メモリページを論理的に切り離す障害処理動作を開始する。切り離し対象となる障害メモリページは、障害ログのアドレス情報より、アドレス空間のうち３２’ｈ００００＿００００〜３２’ｈ００００＿０ＦＦＦであると判定され、ソフトウェア（ＯＳ）６０は、本アドレス空間の切り離し処理を実施する。
【００６９】
以上のようにして、本発明の実施の形態に係る障害処理装置を用いた情報処理装置の動作が実施される。
【００７０】
本実施の形態においては、従来のように、ハードウェアによる障害発生回数の閾値管理が行われていないコンピュータシステムであっても、ソフトウェアやＯＳは、ハードウェアの障害状態を監視することが可能である。そして、ソフトウェアやＯＳが目的としている障害処理動作が害されることなく効率的に処理することが出来る。
【００７１】
従来の場合には、障害発生の度に障害処理を実施していた。これまでに述べたように、このような方式の場合、割り込み処理の多発、また間欠障害の特定が非効率になり、ソフトウェア及びＯＳによる障害処理動作の負担が増大してしまう問題があった。
【００７２】
しかし、本実施の形態においては、エラー発生回数に加えて、更に、同一ＥＣＣシンドロームの障害発生回数、又は、障害発生間隔を障害ログ情報として監視している。そのため、エラー頻度の特定や固定及び間欠障害の切り分けが可能となる。また、このような情報を採取出来ることから、上記のソフトウェア（ＯＳ）による障害メモリページを論理的に切り離す障害処理動作に加えて、障害部位の切り離し指摘割合の最適化も行うことが出来る。これは、従来の障害ログの場合、例えば、メモリ障害が発生した場合、障害部位の切り離し指摘を行う際、経路上の部位もしくはメモリとメモリコントローラを固定の割合（パーセンテージ）を固定値で指摘していた。しかし、本実施の形態においては、ＥＣＣシンドロームの回数や発生間隔を参照することが出来るため、障害状態によって、指摘割合を可変にすることが可能である。
【００７３】
このような障害処理方式を実現させることにより、ソフトウェアやＯＳによる障害処理方式の最適化と、放置しておくとシステムダウンに繋がり兼ねない障害メモリページの切り離しを効率良く実施することで、システムダウンの発生確率を軽減させることが可能である。
【００７４】
本発明は、従来の障害処理技術を踏襲し、かつ障害検出機能を強化する効果を得ることができる。
すなわち、従来技術である障害検出機能は、障害多発による割り込み処理の軽減を目的として閾値管理を実施している。その閾値管理期間中には障害ログ情報の採取のような処理が実施されず、障害が発生していない期間として扱われるため、この期間中に同様な障害が多発してしまうと、訂正不可能エラーに発展し、システムダウンに繋がる恐れがある。しかし、本発明では、この閾値管理期間中の障害ログ採取を可能とし、障害ログに応じて適切な障害処理を継続的に行っているので、この閾値管理期間の間に発生する恐れがあるシステムダウンの発生確率を軽減させることが可能である。
【００７５】
更には、従来ＯＳやソフトウェアによって行われていた障害発生回数の閾値管理機能を障害ログ制御部５等のようなメモリページに対応したハードウェアに持たせているため、ハードウェアとソフトウェアにより連動する障害処理機能において、ＯＳやソフトウェアの目的とする障害監視の効果が得られ、また、固定及び間欠障害の切り分けや障害部位の切り離し指摘割合の最適化（可変）を行うことが可能である。
【００７６】
本発明は上記各実施の形態に限定されず、本発明の技術思想の範囲内において、各実施の形態は適宜変形又は変更され得ることは明らかである。
【符号の説明】
【００７７】
１    メモリ
２    メモリコントローラ
３    ＥＣＣ回路
４    診断制御部
５    障害ログ制御部
６    診断装置
７    記憶装置
８    プロセッサ
１１    エラー検出部
１２    エラー訂正部
１４    診断命令制御部
１５    エラーカウント閾値保持部
１６    比較部
１７    エラー情報保持部
１８    エラーカウント制御部
１９    障害ログ情報保持部
２２、２２−１〜ｎ    エントリ部
３１    比較情報保持部
３２    比較部
３３    カウンタ
３４    インターバルタイマ
５０    情報処理装置
６０    ソフトウェア（ＯＳ）
６１    構成制御部
６２    メモリ管理部
【図１】
0005618204.tif 000002
【図２】
0005618204.tif 000003
【図３】
0005618204.tif 000004