(57)【要約】【課題】確率的に発生するエラーを適切に検出することを目的とする。【解決手段】情報処理装置１は、伝送されたデータからエラーの検出を行う。また、情報処理装置１は、第１の時間間隔内に検出したエラーの数を計数し、計数した数が、第１の閾値以上となる回数を計測する。そして、情報処理装置１は、第１の時間間隔よりも長い第２の時間間隔内に計測した回数が第２の閾値以上となる場合は、データの伝送経路上で故障が検出された旨を通報する。【選択図】図１
2014220576.tif 000002
【特許請求の範囲】
【請求項１】
伝送されたデータからエラーを検出する検出部と、
第１の時間間隔内に前記検出部が検出したエラーの数が第１の閾値以上となる回数を計測する計測部と、
前記第１の時間間隔よりも長い第２の時間間隔内に前記計測部が計測した回数が第２の閾値以上となる場合は、前記データの伝送経路上で故障が検出された旨を通報する通報部と
を有することを特徴とする情報処理装置。
【請求項２】
前記検出部が検出したエラーの数を計数する第１の計数部と、
前記第１の閾値を保持する第１の保持部と、
前記第１の時間間隔が経過する度に、前記第１の計数部が計数する値を初期値に戻す計数制御部と
を有し、
前記計測部は、前記第１の計数部が計数する値と前記第１の保持部が保持する前記第１の閾値とが一致した場合は、計測中の値に１を加算することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
所定の時間間隔で値を進める第２の計数部と、
前記第１の時間間隔を示す値を保持する第２の保持部と
を有し、
前記計数制御部は、前記第２の計数部が計数する値と前記第２の保持部が保持する値とが一致した場合は、前記第１の計数部が計数する値を初期値に戻すことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記検出部は、伝送されたデータから訂正可能なエラー、または、訂正不可能なエラーを検出し、
前記計測部は、前記検出部が訂正不可能なエラーを検出した場合は、計測中の値に１を加算することを特徴とする請求項１〜３のいずれか１つに記載の情報処理装置。
【請求項５】
演算処理を実行する処理装置と前記処理装置の制御を行う制御装置とを有する情報処理装置において、
前記処理装置は、
伝送されたデータからエラーを検出する検出部と、
第１の時間間隔内に前記検出部が検出したエラーの数が第１の閾値を超えた場合は、前記制御装置にエラーが発生した旨を通知する通知部と、
を有し、
前記制御装置は、
前記第１の時間間隔よりも長い第２の時間間隔内に、前記通知部からの通知回数が第２の閾値を超えた場合は、前記データの伝送経路上で故障が検出された旨を通報する通報部と
を有することを特徴とする情報処理装置。
【請求項６】
データの送受信を行う情報処理装置の制御プログラムにおいて、
伝送されたデータからエラーを検出し、
前記検出されたエラーの数が第１の時間間隔内に第１の閾値以上となる回数を計数し、
前記第１の時間間隔よりも長い第２の時間間隔内に前記計数した回数が第２の閾値以上となる場合は、前記データの伝送経路上で故障が検出された旨を通報する
処理を実行させることを特徴とする情報処理装置の制御プログラム。
【請求項７】
データの送受信を行う情報処理装置の制御方法において、
伝送されたデータからエラーを検出し、
前記検出されたエラーの数が第１の時間間隔内に第１の閾値以上となる回数を計数し、
前記第１の時間間隔よりも長い第２の時間間隔内に前記計数した回数が第２の閾値以上となる場合は、前記データの伝送経路上で故障が検出された旨を通報する
処理を実行させることを特徴とする情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理装置の制御プログラムおよび情報処理装置の制御方法に関する。
【背景技術】
【０００２】
従来、集積回路間や情報処理装置間でデータの伝送を行う技術が知られている。このようなデータの伝送速度を高速化した場合は、伝送経路上でエラーが発生し易くなるので、データの伝送方式は、伝送経路上でエラーが確率的に発生することを前提として、予め定義された頻度のエラーを許容するように設計される。そして、このような伝送方式が適用された情報処理装置は、発生したエラーの頻度が許容される頻度を超えると、伝送経路上で故障が発生したと判定する。
【０００３】
例えば、パラレルデータをシリアルデータに変換して送受信を行うＳｅｒＤｅｓ（Serializer/Deserializer）伝送路は、エラーが発生したビット数を伝送されたデータのビット数で除算したビット誤り率が１０−１２以下となるように設計される。このようなＳｅｒＤｅｓ伝送路を介してデータの伝送を行う情報処理装置は、所定の時間間隔内でのビット誤り率が１０−１２以上となる場合は、伝送経路上で故障が発生したと判定する。また、他の例では、情報処理装置は、所定の時間間隔ごとに、エラーが発生した数を計数し、計数した数が所定の閾値を超えると、伝送経路上で故障が発生したと判定する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−１０１５５０号公報
【特許文献２】特開２０００−２５０８９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した所定の時間間隔内のビット誤り率を監視する技術やエラーが発生した数が所定の閾値以上であるか監視する技術では、１つの時間間隔、又は、１つの閾値を用いて故障を判断する。このため、確率的に発生するエラーを適切に検出できないという問題がある。
【０００６】
以下、ビット誤り率が１０−１２以下となるように設計されたＳｅｒＤｅｓを介して、データを伝送する情報処理装置について説明する。例えば、情報処理装置は、１０１５ビットのデータを転送する時間間隔内のビット誤り率を監視する場合は、９９９回エラーが連続して発生したとしてもエラーを通報せず、１０００回目のエラーが発生した際にエラーを通報する。しかしながら、１０１３ビットのデータを転送する時間間隔で考えた場合、９９９回エラーが発生した際のビット誤り率は、１０−１０程度となるので、検出能力が不足すると考えられる。
【０００７】
また、例えば、情報処理装置は、１０１３ビットのデータを送信する時間間隔ごとに、発生したエラーの数が１０以上となるか監視する場合は、それまでに伝送が成功したビット数によらず、１０回のバーストエラーが発生した際に、故障が発生したと判定する。このため、情報処理装置は、瞬間的なバーストエラーに対して、過剰反応する場合がある。
【０００８】
１つの側面では、本願は、確率的に発生するエラーを適切に検出する情報処理装置、情報処理装置の制御プログラムおよび情報処理装置の制御方法の提供を目的とする。
【課題を解決するための手段】
【０００９】
１つの側面では、情報処理装置は、伝送されたデータからエラーを検出する。また、情報処理装置は、第１の時間間隔内に検出したエラーの数が第１の閾値以上となる回数を計測する。そして、情報処理装置は、第１の時間間隔よりも長い第２の時間間隔内に計測した回数が第２の閾値以上となる場合は、データの伝送経路上で故障が検出された旨を通報する。
【発明の効果】
【００１０】
１つの側面では、確率的に発生するエラーを適切に検出する情報処理装置、情報処理装置の制御プログラムおよび情報処理装置の制御方法を提供できる。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例１に係る情報処理装置を説明する図である。
【図２】図２は、検出されるエラーの違いを説明する図である。
【図３】図３は、情報処理装置が実行するエラー検出方法を説明する図である。
【図４】図４は、実施例１に係る監視回路と監視部との機能構成を説明する図である。
【図５】図５は、エラーチェッカが用いるデータの一例を説明する図である。
【図６】図６は、実施例１に係る監視回路の動作を説明するためのシーケンス図である。
【図７】図７は、ＡＳＩＣ側で実行する処理の流れを説明するフローチャートである。
【図８】図８は、サービスプロセッサ側で実行する処理の流れを説明するフローチャートである。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照して本願に係る情報処理装置、情報処理装置の制御プログラムおよび情報処理装置の制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例により開示技術が限定されるものではない。また、各実施例は、矛盾しない範囲で適宜組みあわせてもよい。
【実施例１】
【００１３】
以下の実施例１では、図１を用いて、本願に係る情報処理装置を説明する。図１は、実施例１に係る情報処理装置を説明する図である。図１に示すように、情報処理装置１は、利用者端末２とＩ２Ｃ（Inter-Integrated  Circuit）ブリッジの機能を有するメンテナンスバスを介して接続される。また、情報処理装置１は、システムボード３、メンテナンスボード４、インターコネクト５、Ｉ／Ｏ（Input/Output）装置６を有する。なお、図１では、記載を省略したが、情報処理装置１は、システムボード３と同様のシステムボードを複数有し、インターコネクト５を介して、各システムボードを接続する。
【００１４】
また、システムボード３は、複数のＡＳＩＣ（Application  Specific  Integrated  Circuit）１０ａ、１０ｂ、ＡＳＩＣ１０ａと接続されたメモリ１１ａ、１１ｂ、ＡＳＩＣ１０ｂと接続されたメモリ１１ｃ、１１ｄを有する。また、システムボード３は、ＰＣＩｅ（Peripheral  Component  Interconnect  Express）１２を有する。また、各ＡＳＩＣ１０ａ、１０ｂは、監視回路２０ａ、２０ｂを有する。
【００１５】
なお、システムボード３は、ＡＳＩＣ１０ａ、１０ｂに変えて、ＣＰＵ（Central  Processing  Unit）等、任意の演算処理装置を有してもよい。また、図１には、システムボード３が、２つのＡＳＩＣ１０ａ、１０ｂを有する例について記載したが、実施例はこれに限定されるものではなく、システムボード３は、任意の数のＡＳＩＣを備えてもよい。
【００１６】
また、メンテナンスボード４は、サービスプロセッサ１４、Ｉ２Ｃインターフェース１７を有する。また、サービスプロセッサ１４は、ファームウェア１５を実行することにより、監視部１６として動作する回路を有する。
【００１７】
以下、図１に示す情報処理装置１が有する機能構成について説明する。なお、以下の説明では、ＡＳＩＣ１０ｂは、ＡＳＩＣ１０ａと同様の機能を発揮するものとして、説明を省略する。メモリ１１ｂ〜１１ｄは、メモリ１１ａと同様の機能を発揮するものとして、説明を省略する。
【００１８】
インターコネクト５は、情報処理装置１が有する各ＡＳＩＣ１０ａ、１０ｂ間のデータ通信を中継する。詳細には、インターコネクト５は、データを１ビット単位で送受信するシリアル伝送路である。Ｉ／Ｏ装置６は、ＰＣＩｅ１２を介してシステムボード３と接続されるＨＤＤ（Hard  Disk  Drive）等のＩ／Ｏ装置である。
【００１９】
ＡＳＩＣ１０ａは、例えば、ｃｃＮＵＭＡの技術を用いて、各メモリ１１ａ〜１１ｄに格納されたデータを取得し、取得したデータを用いて、各種演算処理を実行する演算処理装置である。例えば、ＡＳＩＣ１０ａは、インターコネクト５を介して、ＡＳＩＣ１０ｂに接続されたメモリ１１ｄに格納されたデータを取得し、取得したデータを用いて、演算処理を実行する。なお、メモリ１１ａは、ＡＳＩＣ１０ａと接続されたメモリ装置である。また、ＰＣＩｅ１２は、各ＡＳＩＣ１０ａ、１０ｂとＩ／Ｏ装置６とを接続するシリアルバスである。
【００２０】
サービスプロセッサ１４は、情報処理装置１が有するシステムボード３、および図示を省略した他のシステムボードの制御を行うための演算処理装置である。具体的には、サービスプロセッサ１４は、情報処理装置１が有する各種ハードウェアの管理を行うためのファームウェア１５を実行し、各種制御を実行する。
【００２１】
そして、サービスプロセッサ１４は、例えば、メンテナンスバスを介して、ＡＳＩＣ１０ａ上の障害を検出した場合は、Ｉ２Ｃインターフェース１７を介して、利用者端末２に、ＡＳＩＣ１０ａが故障した旨を通知する。なお、サービスプロセッサ１４は、例えば、障害が発生したＡＳＩＣ、メモリ、システムボード３等を情報処理装置１上のシステムから切り離しを行う機能を有してもよい。
【００２２】
Ｉ２Ｃインターフェース１７は、メンテナンスバスを介して、利用者端末２、サービスプロセッサ１４間の通信を制御する。例えば、Ｉ２Ｃインターフェース１７は、利用者端末２からＡＳＩＣ１０ａ、１０ｂに対する設定情報を受け付けると、メンテナンスバスを介して、ＡＳＩＣ１０ａ、１０ｂが有する設定用のレジスタに対し、設定情報の書き込みを行う。また、例えば、Ｉ２Ｃインターフェース１７は、サービスプロセッサ１４からＡＳＩＣ１０ａが故障した旨の通報を受信すると、受信した通報を利用者端末２に対して出力する。
【００２３】
ここで、情報処理装置１は、シリアル伝送路であるインターコネクト５を介して、ＡＳＩＣ１０ａ、１０ｂ間のデータ通信を行う。しかし、シリアル伝送路を介してデータ通信を行う場合は、外乱等により、送受信するデータにビット化け等のエラーが発生する場合がある。このため、ＡＳＩＣ１０ａは、予め定義された頻度のエラーを許容するようにデータの転送を行う。
【００２４】
例えば、ＡＳＩＣ１０ａは、予め定義された頻度のエラーを訂正可能なＥＣＣ（Error  Detection  and  Correction）ビットを付加したデータを送受信する。そして、ＡＳＩＣ１０ａは、受信したデータからエラーを検出した場合は、データに付加されたＥＣＣビットを用いて、エラーの訂正を行う。
【００２５】
ここで、情報処理装置１は、データからエラーが発生する頻度が所定の閾値よりも高い場合は、データの伝送経路上に障害が発生したと判定する。しかしながら、データの伝送経路上では、エラーが確率的に発生するため、情報処理装置１は、１つの閾値で障害を判定した場合は、適切な判定を行えない場合がある。
【００２６】
例えば、図２は、検出されるエラーの違いを説明する図である。なお、図２には、時間を横軸に取り、エラーの発生回数を縦軸として、エラーの発生回数をプロットした。また、図２には、最初に連続してエラーが発生するバーストエラーが発生し、その後、あまりエラーが発生しない監視期間＃１と、伝送経路上で故障が発生し、エラーが発生し続ける監視期間＃２について、エラーの発生回数をプロットした。
【００２７】
例えば、従来の情報処理装置は、所定の時間間隔で、検出したエラーの数を計数し、計数したエラーの数が所定の閾値以上となる場合は、データの伝送経路に故障が発生したと判定する。しかしながら、このような従来の情報処理装置は、監視期間＃１のように、バーストエラーが発生し、エラーの数が閾値を越えた場合は、伝送経路に障害が発生していないにもかかわらず、伝送経路に障害が発生したと判定してしまう。すなわち、従来の情報処理装置は、バーストエラーに対して過剰反応してしまう。
【００２８】
一方、従来の情報処理装置は、所定の時間間隔内でのビット誤り率が閾値以上となる場合は、伝送経路上で故障が発生したと判定する。しかしながら、このような従来の情報処理装置は、設定した時間間隔や閾値が適切ではない場合は、監視期間＃１のようにエラーを検出し続ける際に、伝送経路に障害が発生したと判定する場合がある。
【００２９】
また、このような従来の情報処理装置は、設定した時間間隔や閾値が適切ではない場合は、監視期間＃２のように、伝送経路に障害が発生してエラーが発生し続ける際に、伝送経路に障害が発生したと判定しない場合がある。そこで、情報処理装置１は、複数の閾値を組み合わせて、伝送経路の障害を判定する。以下、図３を用いて、情報処理装置１が実行するエラーの検出方法について説明する。
【００３０】
図３は、情報処理装置が実行するエラー検出方法を説明する図である。まず、ＡＳＩＣ１０ａは、図３中（Ａ）に示すように、エラーチェッカを用いて、インターコネクト５を介して送受信するデータからエラーの検出を行う。また、図３中（Ｂ）に示すように、ＡＳＩＣ１０ａが有する監視回路２０ａは、エラーチェッカがエラーを検出した回数を計数する。そして、監視回路２０ａは、第１の時間間隔内に、エラーチェッカが検出したエラーの数が第１の閾値以上となる場合は、サービスプロセッサ１４に対し、エラーが発生した旨の報告を出力する。
【００３１】
例えば、監視回路２０ａは、図３中（Ｃ）に示すように、エラーチェッカが１秒間で４回以上のエラーを検出した場合は、サービスプロセッサ１４に対して、エラーが発生した旨の報告を出力する。このような処理を実行することで、監視回路２０ａは、ビットエラーレートに基づいたエラー検出を行う。
【００３２】
一方、サービスプロセッサ１４が実行するファームウェア１５の監視部１６は、エラーが発生した旨の報告を受信した回数を計数する。そして、監視部１６は、第１の時間間隔よりも長い第２の時間間隔内に計数した値が所定の閾値以上となる場合は、利用者端末２に対して、伝送経路に障害が発生した旨を通知する。
【００３３】
例えば、監視部１６は、図３中（Ｄ）に示すように、１時間に報告を８回以上受信した場合は、利用者端末２に対して、伝送経路に障害が発生した旨の報告を出力する。すなわち、監視部１６は、伝送経路の障害を判定するために十分な時間内に、許容されるビットエラーレートを超えたエラーが検出された回数に応じて、伝送経路の障害が発生したか否かを判定する。
【００３４】
このように、情報処理装置１は、第１の時間間隔内に発生したエラーの回数が第１の閾値以上となる回数を計数する。そして、情報処理装置１は、第１の時間間隔よりも長い第２の時間間隔内に計数した回数が第２の閾値よりも多い場合は、利用者端末２に対して、伝送経路に障害が発生した旨を報告する。このため、情報処理装置１は、確率的に発生するエラーを適切に検出できる。
【００３５】
例えば、監視回路２０ａは、外乱が発生し、バーストエラーが発生した際に、監視部１６へエラーが発生した旨を報告するが、外乱が解消し、バーストエラーが発生しなくなると監視部１６へエラーが発生した旨を報告しない。このような場合は、監視部１６は、利用者端末２に障害の報告を行わない。このため、情報処理装置１は、バーストエラーに対して、過剰に反応しない。
【００３６】
また、監視回路２０ａは、伝送経路に障害が発生し、定常的にエラーが発生し続ける場合は、監視部１６に対して、エラーが発生した旨を報告し続ける。このような場合は、監視部１６は、利用者端末２に障害の報告を行うこととなる。このため、情報処理装置１は、伝送経路の障害を適切に検出できる。
【００３７】
次に、図４を用いて、監視回路２０ａ、および、監視部１６の機能構成について説明する。図４は、実施例１に係る監視回路と監視部との機能構成を説明する図である。例えば、ＡＳＩＣ１０ａは、複数のコア１８ａ〜１８ｄ、メモリコントローラ１９、Ｉ／Ｏ（Input/Output）コントローラ２１、インターコネクトコントローラ２２を有する。
【００３８】
また、インターコネクトコントローラ２２は、監視回路２０ａ、ＳｅｒＤｅｓ２３、エラーチェッカ２４を有する。また、監視回路２０ａは、閾値レジスタ２５、閾値レジスタ２６、タイマ回路２７、カウンタ回路２８、報告回路２９を有する。また、サービスプロセッサ１４の監視部１６は、タイマ部３０、カウント部３１、出力部３２を有する。なお、以下の説明では、コア１８ｂ〜１８ｄは、コア１８ａと同様の機能を発揮するものとして、説明を省略する。
【００３９】
なお、図４に示す例では、サービスプロセッサ１４が監視回路２０ａに対応する監視部１６を有する例について記載した。しかしながら、サービスプロセッサ１４は、監視部１６と同様の機能を発揮し、他のＡＳＩＣ１０ｂが有する監視回路２０ｂに対応する監視部をさらに有するものとする。つまり、サービスプロセッサ１４は、制御を行う各ＡＳＩＣと一対一で対応する監視部を複数有するものとする。
【００４０】
コア１８ａは、各種演算処理を実行する演算処理装置である。例えば、コア１８ａは、メモリコントローラ１９に対してデータ読み出しのリクエストを発行し、メモリ１１ａ、１１ｂから読み出されたデータを用いて、演算処理を実行する。また、例えば、コア１８ａは、Ｉ／Ｏ装置６に格納されたデータの読出しを要求するリクエストをＩ／Ｏコントローラ２１に発行し、Ｉ／Ｏ装置６から読み出されたデータを用いて、演算処理を実行する。
【００４１】
メモリコントローラ１９は、メモリ１１ａ、１１ｂに対するメモリアクセスを制御する。例えば、メモリコントローラ１９は、コア１８ａからのリクエストに応じて、メモリ１１ａ、１１ｂに格納されたデータの書き込みや読み出しを実行する。なお、メモリコントローラ１９は、メモリ１１ａ、１１ｂに格納されていないデータのリクエストを受信した場合は、Ｉ／Ｏコントローラ２１にリクエストを転送し、Ｉ／Ｏ装置６に格納されたデータの読出しを要求する。その後、メモリコントローラ１９は、読み出されたデータをメモリ１１ａ、１１ｂに格納するとともに、読み出されたデータをリクエスト発行元のコア、例えばコア１８ａに出力する。
【００４２】
Ｉ／Ｏコントローラ２１は、ＰＣＩｅ１２を介して接続されたＩ／Ｏ装置６とコア１８ａ〜１８ｄとのデータの送受信を制御する。例えば、Ｉ／Ｏコントローラ２１は、コア１８ａからデータ読み出しのリクエストを受信すると、ＰＣＩｅ１２を介して、Ｉ／Ｏ装置６からデータを取得し、取得したデータをコア１８ａに出力する。
【００４３】
インターコネクトコントローラ２２は、インターコネクト５を介するデータの伝送を制御する制御装置である。ＳｅｒＤｅｓ２３は、シリアルデータとパラレルデータとの変換を行う。例えば、ＳｅｒＤｅｓ２３は、コア１８ａから送信されるデータを受信した場合は、受信したデータからエラーを訂正するためのＥＣＣをデータに付加する。例えば、ＳｅｒＤｅｓ２３は、６４ビットのデータから２ビットのエラーを検出し、１ビットのエラーを訂正できる８ビットのＥＣＣを付加する。
【００４４】
そして、ＳｅｒＤｅｓ２３は、ＥＣＣを付加したデータをシリアルデータに変換し、変換後のデータをインターコネクト５に送信する。また、ＳｅｒＤｅｓ２３は、インターコネクト５を介して、シリアルデータを受信すると、受信したシリアルデータをパラレルデータに変換し、変換後のデータをエラーチェッカ２４に出力する。
【００４５】
なお、ＳｅｒＤｅｓ２３は、送信するデータをコア１８ａ〜１８ｄから受信していない場合は、所定のデータパターンにＥＣＣを付加して送信し続ける。また、ＳｅｒＤｅｓ２３は、他のＡＳＩＣ１０ｂ等からＡＳＩＣ１０ａに対して送信するデータが無い場合は、ＥＣＣが付加された所定のデータパターンを受信する。そして、ＳｅｒＤｅｓ２３は、受信したデータパターンをエラーチェッカ２４に出力する。
【００４６】
エラーチェッカ２４は、ＳｅｒＤｅｓ２３が受信したデータからエラーの検出、および、訂正を行う。例えば、図５は、エラーチェッカが用いるデータの一例を説明する図である。図５に示すように、エラーチェッカ２４は、７２ビットのデータを受信する度に、受信したデータから６４ビットのデータと８ビットのＥＣＣとを取得する。そして、エラーチェッカ２４は、ＥＣＣを用いて、データからエラーを検出する。
【００４７】
ここで、エラーチェッカ２４は、訂正可能なエラーを検出した場合は、カウンタ回路２８に対し、エラーを検出した旨の通知を出力する。また、エラーチェッカ２４は、ＥＣＣを用いて、エラーの訂正を試行し、エラーを訂正できた場合は、データの送信先となるコア、例えばコア１８ａにデータを出力する。また、エラーチェッカ２４は、エラーを検出しなかった場合は、データをそのままデータの送信先となるコアに出力する。
【００４８】
一方、エラーチェッカ２４は、エラーの訂正を行えなかった場合は、データを破棄し、データの送信先となるコアにデータを正常に受信できなかった旨を出力する。また、エラーチェッカ２４は、エラーの訂正を行えなかった場合は、報告回路２９に対し、訂正不可能なエラー、すなわちＵｎｃｏｒｒｅｃｔａｂｌｅエラーを検出した旨を通知する。
【００４９】
なお、エラーチェッカ２４は、ＡＳＩＣ１０ａの動作クロックや、エラーが連続して発生すると考えられる最短の時間間隔等に応じた周期で動作する。例えば、エラーチェッカ２４は、ＡＳＩＣ１０ａの動作クロックが２ＧＨｚ（ギガヘルツ）であり、エラーが連続して発生する最短の時間間隔が１ｎｓ（ナノ秒）である場合は、０．５ｎｓ単位で動作し、エラーの検出等を実行する。
【００５０】
また、エラーチェッカ２４は、受信したデータが、ＥＣＣが付加されたデータパターンである場合は、エラーの検出、および、訂正を行う。そしてエラーチェッカ２４は、訂正可能なエラーを検出した場合は、カウンタ回路２８に対して通知を行い、訂正不可能なエラーを検出した場合は、報告回路２９に対して通知を行う。その後、エラーチェッカ２４は、データパターンを破棄する。
【００５１】
閾値レジスタ２５は、メンテナンスバスを介して、利用者端末２から書き換え可能なレジスタである。詳細には、閾値レジスタ２５には、第１の時間間隔を示す値が格納されている。また、閾値レジスタ２６は、閾値レジスタ２５と同様、メンテナンスバスを介して、利用者端末２から書き換え可能なレジスタであり、第１の閾値が格納されている。
【００５２】
タイマ回路２７は、第１の時間間隔でカウンタ回路２８がカウントする値をリセットする回路である。例えば、タイマ回路２７は、ＡＳＩＣ１０ａのクロック信号を用いて、カウントを行い、カウント値が第１の時間間隔となった場合は、カウンタ回路２８がカウントする値を「０」にリセットする。
【００５３】
例えば、タイマ回路２７は、カウンタ回路と、比較回路とを有する。ここで、カウンタ回路は、複数のＤ型フリップフロップを多段に接続し、ＡＳＩＣ１０ａのクロック信号を分周した信号がＨｉｇｈとなる際にカウントを行う。例えば、カウンタ回路は、ＡＳＩＣ１０ａのクロック信号を０．１秒周期の信号に分周し、分周した信号がＨｉｇｈとなるタイミングでカウントを行う。
【００５４】
また、比較回路は、閾値レジスタ２５に格納された値と、カウンタ回路がカウントする値とを比較し、各値が一致した場合は、カウンタ回路２８に対し、カウント値をリセットする信号を出力する。１つの例では、比較回路は、閾値レジスタ２５に格納された値とカウンタ回路がカウントする値との論理積をカウンタ回路２８に出力するＡＮＤゲートである。
【００５５】
カウンタ回路２８は、第１の時間間隔内にエラーチェッカ２４がエラーを検出した回数を計数するカウンタである。具体的には、カウンタ回路２８は、エラーチェッカ２４からエラーを検出した旨の信号を受信すると、カウント値を１進める。また、カウンタ回路２８は、第１の時間間隔が経過した場合、すなわち、タイマ回路２７からカウント値をリセットする信号を受信した場合は、カウント値を「０」に戻す。
【００５６】
例えば、カウンタ回路２８は、複数のＤ型フリップフロップを多段に接続したカウンタ回路であり、エラーチェッカ２４から出力される信号がＨｉｇｈとなるタイミングでカウントを行う。また、カウンタ回路２８は、タイマ回路２７から受信する信号がＨｉｇｈとなった場合は、カウントする値をリセットする。
【００５７】
報告回路２９は、第１の時間間隔内に検出されたエラーの数が第１の閾値以上となる場合は、メンテナンスバスを介して、サービスプロセッサ１４にエラーが検出された旨を通知する。具体的には、報告回路２９は、閾値レジスタ２６に格納された値とカウンタ回路２８のカウント値とを比較し、各値が一致した場合は、メンテナンスバスを介して、サービスプロセッサ１４に対し、エラーが検出された旨を通知する。
【００５８】
また、報告回路２９は、エラーチェッカ２４から訂正不可能なエラーを検出した旨の通知を受信した場合は、カウンタ回路２８のカウント値によらず、サービスプロセッサ１４に対し、エラーが検出された旨を通知する。すなわち、監視回路２０ａは、訂正不可能なエラーが検出された場合は、サービスプロセッサ１４に対し、エラーが検出された旨をすぐに通知する。なお、一例では、報告回路２９は、閾値レジスタ２６とカウンタ回路２８の出力とが入力されるＡＮＤゲート、および、エラーチェッカ２４が訂正不可能なエラーを検出した際に信号を出力する信号線とＡＮＤゲートの出力とが入力されるＯＲゲートで実現できる。
【００５９】
次に、サービスプロセッサ１４が有する監視部１６の機能構成について説明する。タイマ部３０は、第２の時間間隔が経過する度にカウント部３１がカウントした値をリセットする。例えば、タイマ部３０は、１時間おきに、カウント部３１に対して、カウントした値をリセットするよう要求する。
【００６０】
カウント部３１は、第２の時間間隔内に、検出されたエラーの数を計数する。具体的には、カウント部３１は、メンテナンスバスを介して、ＡＳＩＣ１０ａからエラーを検出した旨の信号を受信すると、カウント中の値に１を加算する。また、カウント部３１は、タイマ部３０からカウントした値をリセットするよう要求された場合は、カウント中の値を「０」にリセットする。
【００６１】
出力部３２は、カウント部３１が第２の時間間隔内にカウントした値が第２の閾値以上となる場合は、利用者端末２に対して、伝送経路の障害が発生した旨を通知する。例えば、出力部３２は、１秒間隔で、カウント部３１と第２の閾値とを比較し、カウント部３１がカウントする値が第２の閾値以上となる場合は、Ｉ２Ｃを介し、利用者端末２に対して、伝送経路の障害が発生した旨を通知する。
【００６２】
次に、図６を用いて、監視回路２０ａがエラーを検出した旨をサービスプロセッサ１４に通知する際の動作について説明する。図６は、実施例１に係る監視回路の動作を説明するためのシーケンス図である。なお、図６に示す例では、タイマ回路２７が０．１秒ごとに「０」から「９」までのカウントを行いカウントが「９」から「０」に移行する際に、カウンタ回路２８がカウントする値をリセットする例について記載した。
【００６３】
また、図６に示す例では、カウンタ回路２８のカウント値が「４」となった際に、エラーを検出した旨をサービスプロセッサ１４に通知する例について記載した。つまり、図６に示す例では、監視回路２０ａは、１秒間にエラーを４回以上検出した場合は、サービスプロセッサ１４にエラーを検出した旨を通知する。
【００６４】
例えば、エラーチェッカ２４は、タイマ回路２７のカウント値が「９」の際に、エラーを検出すると、図６中（Ｅ）に示すように、カウンタ回路２８に出力する信号の電位をＨｉｇｈに遷移させる。すると、カウンタ回路２８は、図６中（Ｆ）に示すように、カウント値を「０」から「１」にカウントアップする。
【００６５】
また、図６中（Ｇ）に示すように、タイマ回路２７は、カウント値が「９」となってから０．１秒が経過すると、カウント値を「０」に更新する。この結果、図６中（Ｈ）に示すように、カウンタ回路２８のカウント値が「０」にリセットされる。
【００６６】
ここで、エラーチェッカ２４は、図６中（Ｉ）に示すように、５回連続でエラーを検出する。このような場合は、カウンタ回路２８は、エラーを検出した回数をカウントする。そして、報告回路２９は、図６中（Ｊ）に示すように、カウンタ回路２８のカウント値が「４」となった場合は、図６中（Ｋ）に示すように、Ｉ２Ｃに出力する信号を「Ｈｉｇｈ」にする。この結果、サービスプロセッサ１４に対し、エラーが検出された旨を通知する。
【００６７】
なお、カウンタ回路２８は、図６中（Ｌ）に示すように、エラーが検出された回数を計数し、カウント値を「５」とする。しかしながら、バーストエラーに対する過剰反応を防ぐため、報告回路２９は、エラーが検出された旨の信号を出力しない。すなわち、監視回路２０ａは、１秒間、エラーが検出され続けたとしても、エラーが検出された旨を１回だけサービスプロセッサ１４に通知する。
【００６８】
次に、図７、図８を用いて、情報処理装置１が実行する処理の流れを説明する。まず、図７を用いて、ＡＳＩＣ１０ａに設置された監視回路２０ａが実行する処理の流れについて説明する。図７は、ＡＳＩＣ側で実行する処理の流れを説明するフローチャートである。なお、図７に示す例では、１秒間に４回以上のエラーが検出された際に、エラーが検出された旨をサービスプロセッサ１４に通知する処理の流れについて記載した。
【００６９】
まず、監視回路２０ａは、タイマ回路２７が１秒をカウントしたか判定し（ステップＳ１０１）、１秒をカウントしていない場合は（ステップＳ１０１否定）、エラーが検出されたか判定する（ステップＳ１０２）。また、監視回路２０ａは、エラーが検出された場合は（ステップＳ１０２肯定）、カウンタ回路２８のカウント値をカウントアップする（ステップＳ１０３）。
【００７０】
次に、監視回路２０ａは、カウンタ回路２８のカウント値が「４」であるか否かを判定する（ステップＳ１０４）。そして、監視回路２０ａは、カウント値が「４」である場合は（ステップＳ１０４肯定）、サービスプロセッサ１４に対し、エラーが検出された旨を通知して（ステップＳ１０５）、サービスプロセッサ１４の通知の受信（図８のステップＳ２０２の工程）へと処理を引き継ぎ（図７中Ａ、図８中Ａ）、監視回路２０aとしては処理を終了する。
【００７１】
一方、監視回路２０ａは、タイマ回路２７が１秒をカウントした場合は（ステップＳ１０１肯定）、カウンタ回路２８のカウント値をクリアし（ステップＳ１０６）、再度ステップＳ１０１を実行する。また、監視回路２０ａは、エラーが検出されなかった場合は（ステップＳ１０２否定）、再度ステップＳ１０１を実行する。また、監視回路２０ａは、カウンタ回路２８のカウント値が「４」ではない場合は（ステップＳ１０４否定）、再度ステップＳ１０１を実行する。
【００７２】
次に、図８を用いて、サービスプロセッサ１４が実行する処理の流れを説明する。図８は、サービスプロセッサ側で実行する処理の流れを説明するフローチャートである。なお、図８に示す例では、１時間にエラーが検出された旨の通知を８回以上受信した際に、伝送経路に故障が発生した旨を通知する処理の流れについて記載した。なお、図８中Ａは、監視回路２０ａが図７に記載の処理を実行し、通知が行われた旨を示す。
【００７３】
まず、サービスプロセッサ１４は、タイマ部３０が１時間をカウントしたか判定し（ステップＳ２０１）、１時間カウントしていない場合は（ステップＳ２０１否定）、監視回路２０ａからエラーが検出された旨の通知を受信したか判定する（ステップＳ２０２）。また、サービスプロセッサ１４は、通知を受信した場合は（ステップＳ１０５、図７中Ａ、図８中Ａ、ステップＳ２０２肯定）、カウント部３１のカウント値をカウントアップする（ステップＳ２０３）。
【００７４】
次に、サービスプロセッサ１４は、カウント部３１のカウント値が「８」であるか否かを判定する（ステップＳ２０４）。そして、サービスプロセッサ１４は、カウント値が「８」である場合は（ステップＳ２０４肯定）、利用者端末２に対し、伝送経路が故障した旨を報告して（ステップＳ２０５）、処理を終了する。つまり、サービスプロセッサ１４は、１秒以内に４回以上エラーが検出される事象が、１時間以内に８回以上発生した場合は、伝送経路が故障した旨を利用者端末２に報告する。
【００７５】
一方、サービスプロセッサ１４は、タイマ部３０が１時間をカウントした場合は（ステップＳ２０１肯定）、カウント部３１のカウント値をクリアし（ステップＳ２０６）、再度ステップＳ２０１を実行する。また、サービスプロセッサ１４は、エラーが検出された旨の通知を受信しなかった場合は（ステップＳ２０２否定）、再度ステップＳ２０１を実行する。また、サービスプロセッサ１４は、カウント部３１のカウント値が「８」ではない場合は（ステップＳ２０４否定）、再度ステップＳ２０１を実行する。
【００７６】
［情報処理装置１の効果］
上述したように、情報処理装置１は、伝送されたデータからエラーを検出するエラーチェッカ２４を有する。また、情報処理装置１は、第１の時間間隔内にエラーチェッカ２４がエラーを検出した数が第１の閾値以上となる場合は、サービスプロセッサ１４にエラーが発生した旨を通知する監視回路２０ａを有する。また、情報処理装置１は、第１の時間間隔より長い第２の時間間隔内に受信した通知の数が第２の閾値以上となる場合は、データの伝送経路上で故障が検出された旨を通報するサービスプロセッサ１４を有する。
【００７７】
このため、情報処理装置１は、確率的に発生するエラーを適切に検出できる。例えば、情報処理装置１は、監視回路２０ａを用いて、伝送経路が許容するエラーの頻度に応じた十分に短い時間間隔で、エラーの検出を行うことができる。また、情報処理装置１は、伝送経路が故障したと判定するために十分長い時間間隔で、故障が生じたか判定する。このため、情報処理装置１は、外乱等により、伝送経路の故障ではないバーストエラーが一時的に発生した際に、伝送経路が故障したと判定するといった過剰反応を防ぐことができる。
【００７８】
また、監視回路２０ａは、検出されたエラーの数を計数するカウンタ回路２８と、第１の時間間隔で、カウンタ回路２８のカウント値をリセットするタイマ回路２７を有する。そして、監視回路２０ａは、カウンタ回路２８のカウント値が閾値レジスタ２６に格納された第１の閾値以上となる場合は、エラーが発生した旨をサービスプロセッサ１４に出力する。このため、監視回路２０ａは、任意の値を第１の閾値として容易に設定できる。
【００７９】
また、監視回路２０ａは、第１の時間間隔を保持する閾値レジスタ２５を有する。そして、監視回路２０ａはタイマ回路２７のカウント値が閾値レジスタ２５に格納された値と一致した場合は、カウンタ回路２８のカウント値をリセットする。このため、監視回路２０ａは、任意の時間間隔を第１の時間間隔として容易に設定できる。
【００８０】
また、監視回路２０ａは、訂正不可能なエラーが検出された場合は、カウンタ回路２８のカウント値によらず、エラーが検出された旨をサービスプロセッサ１４に通知する。このため、監視回路２０ａは、伝送経路が許容できないエラーが連続して発生した場合は、伝送経路が故障した旨を迅速に通知することができる。
【実施例２】
【００８１】
これまで本発明の実施例について説明したが実施例は、上述した実施例以外にも様々な異なる形態にて実施されてよいものである。そこで、以下では実施例２として本発明に含まれる他の実施例を説明する。
【００８２】
（１）情報処理装置１の機能構成について
上述した例では、情報処理装置１は、第１の時間間隔内に検出されたエラーの数が第１の閾値よりも多い場合は、サービスプロセッサ１４に通知を送信する監視回路２０ａを有する。また、情報処理装置１は、第２の時間間隔内に受信した通知の数が第２の閾値よりも多い場合は、利用者端末２に伝送経路に故障が発生した旨を通知する監視部１６を有する。ここで、実施例１では、監視回路２０ａは、ハードウェアにより実現され、監視部１６は、ソフトウェアにより実現された。
【００８３】
しかしながら、実施例はこれに限定されるものではない。例えば、監視回路２０ａが発揮する機能は、ＡＳＩＣ１０ａによって実行される監視ソフトウェアによって実現されてもよい。例えば、監視ソフトウェアは、監視部１６と同様の機能構成により実現されてもよい。
【００８４】
また、サービスプロセッサ１４が実行する監視部１６の機能は、ハードウェアとしてＡＳＩＣ１０ａ内に実装されてもよい。このような場合には、監視部１６は、監視回路２０ａと同様の回路構成で実現可能である。例えば、監視部１６は、報告回路２９が信号を出力した回数を計数するカウンタ回路と、第２の時間間隔でカウンタ回路のカウント値をリセットするタイマ回路と、カウンタ回路のカウント値が第２の閾値以上となった際に報告を行う報告回路とで実現可能である。
【００８５】
また、監視回路２０ａ、および、監視部１６は、物理的に異なる装置に設置される必要は無い。例えば、監視回路２０ａと監視部１６との機能を発揮する監視機構は、ＡＳＩＣ１０ａの内部に設置されてもよい。また、このような監視機構は、インターコネクト５を介して送受信するデータだけではなく、インターネット等、任意の伝送経路を介して送受信するデータからエラーを検出することもできる。また、このような監視機構は、演算処理装置の内部に設置される必要はなく、例えば、ＡＳＩＣ１０ａとは別の通信制御装置に設置されてもよい。
【００８６】
（２）閾値について
上述した情報処理装置１は、第１の時間間隔として「１」秒、第１の閾値として「４」回、第２の時間間隔として「１」時間、第２の閾値として「８」回を適用した。しかしながら、実施例はこれに限定されるものではない。すなわち、情報処理装置１は、回路構成やインターコネクト５が許容するエラーの頻度、エラーチェッカ２４がエラーを検出する頻度等により、任意の閾値を設定できる。
【００８７】
（３）回路構成について
上述した実施例１では、監視回路２０ａを実現する回路の一例について説明したが、実施例はこれに限定されるものではなく、同様の機能を発揮する任意の回路により実現されてもよい。
【００８８】
（４）プログラム
本実施例で説明したファームウェア１５、および、監視回路２０ａと同様の機能を発揮する監視プログラムは、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現できる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ（Compact  Disc  Read  Only  Memory）、ＭＯ（Magneto  Optical  Disc）、ＤＶＤ（Digital  Versatile  Disc）などのコンピュータで読取可能な記録媒体に記録される。また、このプログラムは、コンピュータによって記録媒体から読出されることによって実行することもできる。
【００８９】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００９０】
（付記１）伝送されたデータからエラーを検出する検出部と、
第１の時間間隔内に前記検出部が検出したエラーの数が第１の閾値以上となる回数を計測する計測部と、
前記第１の時間間隔よりも長い第２の時間間隔内に前記計測部が計測した回数が第２の閾値以上となる場合は、前記データの伝送経路上で故障が検出された旨を通報する通報部と
を有することを特徴とする情報処理装置。
【００９１】
（付記２）前記検出部が検出したエラーの数を計数する第１の計数部と、
前記第１の閾値を保持する第１の保持部と、
前記第１の時間間隔が経過する度に、前記第１の計数部が計数する値を初期値に戻す計数制御部と
を有し、
前記計測部は、前記第１の計数部が計数する値と前記第１の保持部が保持する前記第１の閾値とが一致した場合は、計測中の値に１を加算することを特徴とする付記１に記載の情報処理装置。
【００９２】
（付記３）所定の時間間隔で値を進める第２の計数部と、
前記第１の時間間隔を示す値を保持する第２の保持部と
を有し、
前記計数制御部は、前記第２の計数部が計数する値と前記第２の保持部が保持する値とが一致した場合は、前記第１の計数部が計数する値を初期値に戻すことを特徴とする付記２に記載の情報処理装置。
【００９３】
（付記４）前記検出部は、伝送されたデータから訂正可能なエラー、または、訂正不可能なエラーを検出し、
前記計測部は、前記検出部が訂正不可能なエラーを検出した場合は、計測中の値に１を加算することを特徴とする付記１〜３のいずれか１つに記載の情報処理装置。
【００９４】
（付記５）演算処理を実行する処理装置と前記処理装置の制御を行う制御装置とを有する情報処理装置において、
前記処理装置は、
伝送されたデータからエラーを検出する検出部と、
第１の時間間隔内に前記検出部が検出したエラーの数が第１の閾値を超えた場合は、前記制御装置にエラーが発生した旨を通知する通知部と、
を有し、
前記制御装置は、
前記第１の時間間隔よりも長い第２の時間間隔内に、前記通知部からの通知回数が第２の閾値を超えた場合は、前記データの伝送経路上で故障が検出された旨を通報する通報部と
を有することを特徴とする情報処理装置。
【００９５】
（付記６）前記処理装置は、
前記検出部が検出したエラーの数を計数する第１の計数部と、
前記第１の閾値を保持する第１の保持部と、
前記第１の時間間隔が経過する度に、前記第１の計数部が計数する値を初期値に戻す計数制御部と
を有し、
前記通知部は、前記第１の計数部が計数する値と前記第１の保持部が保持する前記第１の閾値とが一致した場合は、前記制御装置にエラーが発生した旨を通知することを特徴とする付記５に記載の情報処理装置。
【００９６】
（付記７）前記処理装置は、
所定の時間間隔で値を進める第２の計数と、
前記第１の時間間隔を示す値を保持する第２の保持部と
を有し、
前記計数制御部は、前記第２の計数部が計数する値と前記第２の保持部が保持する値とが一致した場合は、前記第１の計数部が計数する値を初期値に戻すことを特徴とする付記６に記載の情報処理装置。
【００９７】
（付記８）前記検出部は、伝送されたデータから訂正可能なエラー、または、訂正不可能なエラーを検出し、
前記通知部は、前記検出部が訂正不可能なエラーを検出した場合は、前記制御装置にエラーが発生した旨を通知することを特徴とする付記５〜７のいずれか１つに記載の情報処理装置。
【００９８】
（付記９）データの送受信を行う情報処理装置の制御プログラムにおいて、
伝送されたデータからエラーを検出し、
前記検出されたエラーの数が第１の時間間隔内に第１の閾値以上となる回数を計数し、
前記第１の時間間隔よりも長い第２の時間間隔内に前記計数した回数が第２の閾値以上となる場合は、前記データの伝送経路上で故障が検出された旨を通報する
処理を実行させることを特徴とする情報処理装置の制御プログラム。
【００９９】
（付記１０）データの送受信を行う情報処理装置の制御方法において、
伝送されたデータからエラーを検出し、
前記検出されたエラーの数が第１の時間間隔内に第１の閾値以上となる回数を計数し、
前記第１の時間間隔よりも長い第２の時間間隔内に前記計数した回数が第２の閾値以上となる場合は、前記データの伝送経路上で故障が検出された旨を通報する
処理を実行させることを特徴とする情報処理装置の制御方法。
【符号の説明】
【０１００】
１  情報処理装置
２  利用者端末
３  システムボード
４  メンテナンスボード
５  インターコネクト
６  Ｉ／Ｏ装置
１０ａ、１０ｂ  ＡＳＩＣ
１１ａ〜１１ｄ  メモリ
１２  ＰＣＩｅ
１４  サービスプロセッサ
１５  ファームウェア
１６  監視部
１８ａ〜１８ｄ  コア
１９  メモリコントローラ
２０ａ、２０ｂ  監視回路
２１  Ｉ／Ｏコントローラ
２２  インターコネクトコントローラ
２３  ＳｅｒＤｅｓ
２４  エラーチェッカ
２５、２６  閾値レジスタ
２７  タイマ回路
２８  カウンタ回路
２９  報告回路
３０  タイマ部
３１  カウント部
３２  出力部
【図１】
2014220576.tif 000003
【図２】
2014220576.tif 000004
【図３】
2014220576.tif 000005
【図４】
2014220576.tif 000006
【図５】
2014220576.tif 000007
【図６】
2014220576.tif 000008
【図７】
2014220576.tif 000009
【図８】
2014220576.tif 000010