(57)【要約】【課題】バスアクセスエラーが発生した際に、より多くの状況において、バスアクセスエラーから回復可能にする。【解決手段】バスエラー回復装置は、バスデバイスに対するバスアクセスにおいてエラーが発生した際に、バスとバスに接続されたバスデバイスとに電源電圧を供給するバス電源に、所定の範囲内において段階的に可変な値の内の各電源電圧を供給させるための設定を行い、各電源電圧が供給されたバスデバイスに対するバスアクセスにおいてエラーが発生しない場合に、設定においてバス電源を動作させるバスエラー回復手段とを備える。【選択図】      図９
2018055560.tif 000002
【特許請求の範囲】
【請求項１】
バスデバイスに対するバスアクセスにおいてエラーが発生した際に、バスと前記バスに接続された前記バスデバイスとに電源電圧を供給するバス電源に、所定の範囲内において段階的に可変な値の内の各前記電源電圧を供給させるための設定を行い、前記各電源電圧が供給された前記バスデバイスに対するバスアクセスにおいてエラーが発生しない場合に、前記設定において前記バス電源を動作させるバスエラー回復手段
を備えたバスエラー回復装置。
【請求項２】
前記バスエラー回復手段は、所定の上限値以下の回数だけ前記バスデバイスに対するバスアクセスを行い、前記バスデバイスに対するバスアクセスにおいてエラーが発生しない場合に、前記設定において前記バス電源を動作させる
請求項１に記載のバスエラー回復装置。
【請求項３】
前記バスデバイスにおけるバスアクセスを試験するために、前記バスを含む情報処理装置の起動時に、前記バスデバイスにおけるバスアクセスを行う
請求項１又は２に記載のバスエラー回復装置。
【請求項４】
バスと、
前記バスに接続されたバスデバイスと、
前記バスと前記バスに接続された前記バスデバイスとに電源電圧を供給するバス電源と、
前記バスデバイスに対するバスアクセスにおいてエラーが発生した際に、前記バス電源に、所定の範囲内において段階的に可変な値の内の各前記電源電圧を供給させるための設定を行い、前記各電源電圧が供給された前記バスデバイスに対するバスアクセスにおいてエラーが発生しない場合に、前記設定において前記バス電源を動作させるバスエラー回復手段
を含むバスエラー回復装置と
を備えた情報処理装置。
【請求項５】
前記バスエラー回復手段は、所定の上限値以下の回数だけ前記バスデバイスに対するバスアクセスを行い、前記バスデバイスに対するバスアクセスにおいてエラーが発生しない場合に、前記設定において前記バス電源を動作させる
請求項４に記載の情報処理装置。
【請求項６】
前記バスデバイスにおけるバスアクセスを試験するために、前記バスを含む情報処理装置の起動時に、前記バスデバイスにおけるバスアクセスを行う
請求項４又は５に記載の情報処理装置。
【請求項７】
バスデバイスに対するバスアクセスにおいてエラーが発生した際に、バスと前記バスに接続された前記バスデバイスとに電源電圧を供給するバス電源に、所定の範囲内において段階的に可変な値の内の各前記電源電圧を供給させるための設定を行い、前記各電源電圧が供給された前記バスデバイスに対するバスアクセスにおいてエラーが発生しない場合に、前記設定において前記バス電源を動作させる
バスエラー回復方法。
【請求項８】
バスと、
前記バスに接続されたバスデバイスと、
前記バスと前記バスに接続された前記バスデバイスとに電源電圧を供給するバス電源と
を備えた情報処理装置において、
前記バスデバイスに対するバスアクセスにおいてエラーが発生した際に、前記バス電源に、所定の範囲内において段階的に可変な値の内の各前記電源電圧を供給させるための設定を行い、前記各電源電圧が供給された前記バスデバイスに対するバスアクセスにおいてエラーが発生しない場合に、前記設定において前記バス電源を動作させるバスエラー回復処理
をコンピュータに実行させるバスエラー回復プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置において発生したバスアクセスエラーから回復するための技術に関する。
【背景技術】
【０００２】
バスは、コンピュータにおいて、装置又はコンピュータ内の回路間で、データを交換するための経路である。バスデータにおけるアクセスのエラーについて、Ｉ２Ｃ（Inter-Integrated Circuit）規格に準拠するＩ２Ｃバスを例に説明する。
【０００３】
１つのＩ２Ｃマスタデバイス（ＢＭＣ：Base Management Controller等）と複数のＩ２Ｃスレーブデバイス（温度センサ、電圧センサ等）とを含むＩ２Ｃバスツリーを有する情報処理装置（サーバ等）について説明する。このような情報処理装置では、情報処理装置の高負荷状態に起因するＩ２ＣスレーブデバイスやＩ２Ｃバスへ供給された電源電圧の低下や、情報処理装置の周辺環境の変化に起因するＩ２Ｃスレーブデバイスの動作異常等の異常が発生することがある。このような異常が発生すると、Ｉ２ＣマスタデバイスからＩ２ＣスレーブデバイスへのＩ２Ｃバスアクセスにおいてエラーが発生することがある。Ｉ２Ｃバスアクセスにおけるエラーが発生すると、Ｉ２Ｃマスタデバイス上で動作するファームウェア（ＢＭＣ用のファームウェア等）は、Ｉ２Ｃバスアクセスにおけるエラーに対するエラー処理を行う。
【０００４】
Ｉ２Ｃバスアクセスにおけるエラー処理の一例について説明する。
【０００５】
図１１は、Ｉ２Ｃバスを有するサーバにおける、Ｉ２Ｃバスツリー及び電源供給経路に関する構成の一例を示すブロック図である。
【０００６】
サーバ１０９は、Ｉ２Ｃマスタデバイス１１０をマスタとするＩ２Ｃバスツリーを有する。Ｉ２Ｃマスタデバイス１１０のＩ２Ｃバス１３０には、Ｉ２Ｃスレーブデバイス１１１、１１２、１１３、１１４が接続される。Ｉ２Ｃバス１３１には、Ｉ２Ｃバス電源１２０が接続される。Ｉ２Ｃバス電源１２０は、Ｉ２Ｃバス１３０とＩ２Ｃスレーブデバイス１１１、１１２、１１３、１１４とに電源電圧を供給する。Ｉ２Ｃバス電源１２０は、メイン電源１２５から給電を受ける。メイン電源１２５は、Ｉ２Ｃバス電源１２０の他に、Ｉ２Ｃバス以外の電源１２６（ＣＰＵ、メモリ、ＩＯカード等の電源）へも電源電圧を供給する。
【０００７】
Ｉ２Ｃマスタデバイス１１０からＩ２Ｃスレーブデバイス１１１、１１２、１１３、１１４へのＩ２Ｃバスアクセスの動作について説明する。
【０００８】
図１２は、Ｉ２Ｃマスタデバイスのエラー処理に関する動作を示すフローチャートである。尚、初期状態では、リトライ回数（後述）は０（リセット状態）である。
【０００９】
まず、Ｉ２Ｃマスタデバイス１１０は、Ｉ２Ｃスレーブデバイス１１１、１１２、１１３、１１４のいずれか１つにＩ２Ｃバスアクセスを行う。Ｉ２Ｃマスタデバイス１１０は、Ｉ２Ｃバスアクセスにおけるアクセス先から返却されたデータが期待値か否か、又はＡＣＫ（Acknowledgement）が返却されたか否か等に基づいて、Ｉ２Ｃバスアクセスが成功したか否かを判定する（ステップＳ１）。
【００１０】
Ｉ２Ｃバスアクセスが成功した場合には（ステップＳ１：Ｙｅｓ）、Ｉ２Ｃマスタデバイス１１０は、Ｉ２Ｃバスアクセスを再試行（リトライ）した回数（リトライ回数）を０にリセットし（ステップＳ２）、Ｉ２Ｃバスアクセスが成功した状態でＩ２Ｃバスアクセスの処理を終了する。
【００１１】
Ｉ２Ｃバスアクセスが失敗した場合には（ステップＳ１：Ｎｏ）、Ｉ２Ｃマスタデバイス１１０は、リトライ回数がリトライ回数の上限値（リトライ閾値）以上であるか否かを判定する（ステップＳ３）。リトライ回数がリトライ閾値未満ならば（ステップＳ３：Ｎｏ）、Ｉ２Ｃマスタデバイス１１０は、リトライ回数をカウントアップし（ステップＳ４）、ステップＳ１の処理へ戻る（Ｉ２Ｃバスアクセスをリトライする）。リトライ回数がリトライ閾値以上ならば（ステップＳ３：Ｙｅｓ）、Ｉ２Ｃマスタデバイス１１０は、Ｉ２Ｃバスアクセスが失敗した状態でＩ２Ｃバスアクセスの処理を終了する。
【００１２】
以上説明したように、Ｉ２Ｃマスタデバイス１１０は、Ｉ２Ｃバスアクセスが失敗した場合には、リトライ回数がリトライ閾値を超えない範囲でＩ２Ｃバスアクセスをリトライする。Ｉ２Ｃマスタデバイス１１０は、リトライ回数がリトライ閾値を超えた場合には、Ｉ２Ｃバスアクセスが失敗した状態でＩ２Ｃバスアクセスの処理を終了する。
【００１３】
このようなＩ２Ｃバスアクセスのリトライのみを行うエラー処理では、Ｉ２Ｃバス電源１２０により供給される電源電圧の低下やサーバ１００の周辺環境の変化による、Ｉ２Ｃスレーブデバイスの動作異常等に起因するＩ２Ｃバスアクセスエラーから回復できないという問題がある。又、Ｉ２Ｃスレーブデバイスの個体差による動作のばらつきに起因して、規定の電源電圧で動作できないＩ２Ｃスレーブデバイスが存在する状況においても、Ｉ２Ｃバスアクセスのリトライによるエラー処理では、エラーから回復できないという問題もある。
【００１４】
バスアクセスのリトライ以外の方法でバスアクセスエラーから回復するための技術の一例が、特許文献１に開示されている。特許文献１の制御方式は、自経路上の信号の転送速度及びこの信号の電位差に制限値が定められた信号経路と、この信号経路に接続されたドライバ及びレシーバ、このドライバ及びレシーバに出力電圧を与える電源器を有するモジュールとを含む、バス又は回線の制御方式である。このモジュールは、自モジュールが転送する信号の転送速度に応じて電源器の出力レベルを調節する手段、及びエラー発生に続くリトライ時に電源器の出力電圧を十分に高く設定する手段を含むプログラム制御手段を有するプロセッサを含む。
【００１５】
上記構成の結果、特許文献１の制御方式は、バスにおける高速転送時のビット化け等のエラーの発生を抑えると共に、エラー発生時のリトライの際にリトライ成功率を上げてシステムの信頼性を向上させる。
【先行技術文献】
【特許文献】
【００１６】
【特許文献１】特開平１−２４０９５０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１７】
特許文献１の制御方式では、バスアクセスエラーから回復可能な状況は、電源の出力電圧を十分に高く設定することによりバスアクセスエラーから回復可能な状況に限定される。しかしながら、Ｉ２Ｃバスアクセスのリトライを繰り返したり、電源の出力電圧を十分に高く設定したりすることでは、回復できないエラーがある。例えば、電源の出力電圧の上昇に起因して、バスアクセスエラーが発生する状況があり得る。又は、電源の出力電圧が特定の範囲ではバスアクセスエラーが発生しないが、電源の出力電圧が、特定の範囲を超えて、高くても或いは低くてもバスアクセスエラーが発生する状況があり得る。つまり、特許文献１の制御方式では、電源の出力電圧を十分に高く設定することでは回復できないエラーに対処できないという問題がある。
【００１８】
本発明は、上記の課題に鑑みてなされたもので、バスアクセスエラーが発生した際に、より多くの状況において、バスアクセスエラーから回復可能にすることを主たる目的とする。
【課題を解決するための手段】
【００１９】
本発明の一態様において、バスエラー回復装置は、バスデバイスに対するバスアクセスにおいてエラーが発生した際に、バスとバスに接続されたバスデバイスとに電源電圧を供給するバス電源に、所定の範囲内において段階的に可変な値の内の各電源電圧を供給させるための設定を行い、各電源電圧が供給されたバスデバイスに対するバスアクセスにおいてエラーが発生しない場合に、設定においてバス電源を動作させるバスエラー回復手段を備える。
【００２０】
本発明の一態様において、情報処理装置は、バスと、バスに接続されたバスデバイスと、バスとバスに接続されたバスデバイスとに電源電圧を供給するバス電源と、バスデバイスに対するバスアクセスにおいてエラーが発生した際に、バス電源に、所定の範囲内において段階的に可変な値の内の各電源電圧を供給させるための設定を行い、各電源電圧が供給されたバスデバイスに対するバスアクセスにおいてエラーが発生しない場合に、設定においてバス電源を動作させるバスエラー回復手段を含むバスエラー回復装置とを備える。
【００２１】
本発明の一態様において、バスエラー回復方法は、バスデバイスに対するバスアクセスにおいてエラーが発生した際に、バスとバスに接続されたバスデバイスとに電源電圧を供給するバス電源に、所定の範囲内において段階的に可変な値の内の各電源電圧を供給させるための設定を行い、各電源電圧が供給されたバスデバイスに対するバスアクセスにおいてエラーが発生しない場合に、設定においてバス電源を動作させる。
【００２２】
本発明の一態様において、バスエラー回復プログラム又は、係るバスエラー回復プログラムが格納された記録媒体は、バスと、バスに接続されたバスデバイスと、バスとバスに接続されたバスデバイスとに電源電圧を供給するバス電源とを備えた情報処理装置において、バスデバイスに対するバスアクセスにおいてエラーが発生した際に、バス電源に、所定の範囲内において段階的に可変な値の内の各電源電圧を供給させるための設定を行い、各電源電圧が供給されたバスデバイスに対するバスアクセスにおいてエラーが発生しない場合に、設定においてバス電源を動作させるバスエラー回復処理をコンピュータに実行させる。
【発明の効果】
【００２３】
本発明によれば、バスアクセスエラーが発生した際に、より多くの状況において、バスアクセスエラーから回復可能であるという効果がある。
【図面の簡単な説明】
【００２４】
【図１】本発明の第１の実施形態におけるサーバの構成の一例を示すブロック図である。
【図２】本発明の第１の実施形態におけるＩ２ＣマスタデバイスのＩ２Ｃバスアクセスの動作を示すフローチャートである。
【図３】本発明の第１の実施形態における第１の動作例の、Ｉ２Ｃバス電源におけるトリム調整値に対応する、出力電圧の規定値と実際の出力電圧値とを示す表である。
【図４】本発明の第１の実施形態における第２の動作例の、Ｉ２Ｃバス電源におけるトリム調整値に対応する、出力電圧の規定値と実際の出力電圧値とを示す表である。
【図５】本発明の第２の実施形態におけるサーバの構成の一例を示すブロック図である。
【図６】本発明の第２の実施形態におけるＩ２ＣマスタデバイスのＩ２Ｃバスアクセスの動作を示すフローチャートである。
【図７】本発明の第２の実施形態における第１の動作例の、Ｉ２Ｃバス電源におけるトリム調整値に対応する、出力電圧の規定値と実際の出力電圧値とを示す表である。
【図８】本発明の第２の実施形態における第２の動作例の、Ｉ２Ｃバス電源におけるトリム調整値に対応する、出力電圧の規定値と実際の出力電圧値とを示す表である。
【図９】本発明の第３の実施形態における情報処理装置の構成の一例を示すブロック図である。
【図１０】本発明の各実施形態における情報処理装置を実現可能なハードウェア構成の一例を示すブロック図である。
【図１１】Ｉ２Ｃバスを有するサーバにおける、Ｉ２Ｃバスツリー及び電源供給経路に関する構成の一例を示すブロック図である。
【図１２】Ｉ２Ｃマスタデバイスのエラー処理に関する動作を示すフローチャートである。
【発明を実施するための形態】
【００２５】
以下、本発明の実施形態について、図面を参照して詳細に説明する。尚、すべての図面において、同等な構成要素には同じ符号を付し、適宜説明を省略する。
（第１の実施形態）
本実施形態では、Ｉ２Ｃバスアクセスエラーが発生した際に、Ｉ２Ｃマスタデバイスが、Ｉ２Ｃバス及びＩ２Ｃスレーブデバイスへ電源電圧を供給しているＩ２Ｃバス電源の出力電圧を典型値を中心に段階的に増減させて調整（以下、「トリム調整」と称す）する。トリム調整により、サーバは、Ｉ２Ｃバスアクセスのリトライや電源電圧を十分に高く設定することにより回復できないＩ２Ｃバスアクセスエラーから回復可能になる。Ｉ２Ｃバスアクセスのリトライや電源電圧を十分に高く設定することにより回復できないＩ２Ｃバスアクセスエラーは、例えば、電源電圧の上昇又は低下、電源電圧の変動に伴う信号の波形歪に起因するＩ２Ｃバスアクセスエラーである。
【００２６】
本実施形態における構成について説明する。
【００２７】
図１は、本発明の第１の実施形態におけるサーバの構成の一例を示すブロック図である。
【００２８】
本実施形態のサーバ１００は、Ｉ２Ｃバスを含む情報処理装置である。サーバ１００は、Ｉ２Ｃマスタデバイス１１５と、Ｉ２Ｃスレーブデバイス１１１等と、Ｉ２Ｃバス電源１２１と、メイン電源１２５とを含む。サーバ１００は、Ｉ２Ｃバス以外の電源１２６（ＣＰＵ、メモリ、ＩＯカード等の電源）を含んでもよい。
【００２９】
サーバ１００は、Ｉ２Ｃマスタデバイス１１５をマスタとするＩ２Ｃバスツリーを有する。Ｉ２Ｃバスツリーは、Ｉ２Ｃバス１３０と、Ｉ２Ｃバス１３１とを含む。
【００３０】
Ｉ２Ｃバス１３０には、Ｉ２Ｃスレーブデバイス１１１等が接続される。
【００３１】
Ｉ２Ｃバス１３１には、Ｉ２Ｃバス電源１２１が接続される。
【００３２】
Ｉ２Ｃバス電源１２１は、電源供給経路１４２を介してＩ２Ｃバス１３０に電源電圧を供給する。又、Ｉ２Ｃバス電源１２１は、電源供給経路１４３を介してＩ２Ｃスレーブデバイス１１１等に電源電圧を供給する。
【００３３】
メイン電源１２５は、電源供給経路１４１を介してＩ２Ｃバス電源１２１に給電する。メイン電源１２５は、電源供給経路１４０を介してＩ２Ｃバス以外の電源１２６へも給電してもよい。
【００３４】
Ｉ２Ｃスレーブデバイス１１１等は、Ｉ２Ｃバス１３０を経由して、Ｉ２Ｃマスタデバイス１１５からＩ２Ｃバスアクセスを行われる。Ｉ２Ｃスレーブデバイス１１１等は、例えば、温度センサ、電圧センサである。
【００３５】
Ｉ２Ｃマスタデバイス１１５は、Ｉ２Ｃバス１３０を経由して、Ｉ２Ｃスレーブデバイス１１１等に対してＩ２Ｃバスアクセスを行う。Ｉ２Ｃマスタデバイス１１５は、例えば、ＢＭＣである。Ｉ２Ｃマスタデバイス１１５は、バスエラー回復部１５１を含む。
【００３６】
バスエラー回復部１５１は、Ｉ２Ｃバス１３１を経由して、Ｉ２Ｃバス電源１２１の出力電圧を典型値を中心に段階的に増減させる。又、バスエラー回復部１５１は、Ｉ２Ｃバスツリーにおいて発生したＩ２Ｃバスアクセスエラーからの回復処理を行う。
【００３７】
本実施形態における動作について説明する。
【００３８】
図２は、本発明の第１の実施形態におけるＩ２ＣマスタデバイスのＩ２Ｃバスアクセスの動作を示すフローチャートである。尚、図２に示すフローチャート及び以下の説明は一例であり、適宜求める処理に応じて、処理順等を入れ替えたり、処理を戻したり、又は処理を繰り返したりしてもよい。又、初期状態では、リトライ回数（後述）は０（リセット状態）である。
【００３９】
まず、Ｉ２Ｃマスタデバイス１１５のバスエラー回復部１５１は、Ｉ２Ｃスレーブデバイス１１１等のいずれか１つに対してＩ２Ｃバスアクセスを行う。バスエラー回復部１５１は、Ｉ２Ｃバスアクセスにおけるアクセス先から返却されたデータが期待値か否か、又はＡＣＫ（Acknowledgement）が返却されたか否か等に基づいて、Ｉ２Ｃバスアクセスが成功したか否かを判定する（ステップＳ１）。
【００４０】
Ｉ２Ｃバスアクセスが成功した場合には（ステップＳ１：Ｙｅｓ）、バスエラー回復部１５１は、Ｉ２Ｃバスアクセスを再試行（リトライ）した回数（リトライ回数）を０にリセットし（ステップＳ２）、Ｉ２Ｃバスアクセスが成功した状態でＩ２Ｃバスアクセスの処理を終了する。
【００４１】
Ｉ２Ｃバスアクセスが失敗した場合には（ステップＳ１：Ｎｏ）、バスエラー回復部１５１は、リトライ回数がリトライ回数の上限値（リトライ閾値）以上であるか否かを判定する（ステップＳ３）。
【００４２】
リトライ回数がリトライ閾値未満ならば（ステップＳ３：Ｎｏ）、バスエラー回復部１５１は、リトライ回数をカウントアップし（ステップＳ４）、ステップＳ１の処理へ戻る（Ｉ２Ｃバスアクセスをリトライする）。
【００４３】
リトライ回数がリトライ閾値以上ならば（ステップＳ３：Ｙｅｓ）、バスエラー回復部１５１は、トリム調整を伴うＩ２Ｃバスアクセスの処理を行う。
【００４４】
トリム調整を伴うＩ２Ｃバスアクセスの処理は、リトライ回数のリセットの処理（ステップＳ５）と、トリム調整処理（ステップＳ６）と、Ｉ２Ｃバスアクセスのリトライ処理（ステップＳ７）と、Ｉ２Ｃバスアクセスのリトライ回数の判断（ステップＳ８）と、Ｉ２Ｃバスアクセスのリトライ回数のカウントアップ処理（ステップＳ９）と、全てのトリム調整を実施したか否かの判断（ステップＳ１０）とを含む。
【００４５】
トリム調整を伴うＩ２Ｃバスアクセスの詳細について説明する。
【００４６】
まず、バスエラー回復部１５１は、リトライ回数をリセットする（ステップＳ５）。
【００４７】
次に、バスエラー回復部１５１は、Ｉ２Ｃバス電源１２１のトリム調整値を設定する（ステップＳ６）。トリム調整値を変更することにより、Ｉ２Ｃバス電源１２１の出力電圧が変更される。例えば、トリム調整値は、まず基準値より大きい値のうち基準値に近い側の値から遠い側の値に向けて増加され、その後に基準値より小さい値のうち基準値に近い側の値から遠い側の値に向けて減少される。
【００４８】
続いて、バスエラー回復部１５１は、Ｉ２Ｃスレーブデバイス１１１等に対して、Ｉ２Ｃバスアクセスを行い、Ｉ２Ｃバスアクセスが成功したか否かを判定する（ステップＳ７）。
【００４９】
Ｉ２Ｃバスアクセスが成功した場合には（ステップＳ７：Ｙｅｓ）、バスエラー回復部１５１は、ステップＳ２の処理へ進む。
【００５０】
Ｉ２Ｃバスアクセスが失敗した場合には（ステップＳ７：Ｎｏ）、バスエラー回復部１５１は、Ｉ２Ｃバスアクセスのリトライ回数がリトライ閾値以上であるか否かを判定する（ステップＳ８）。
【００５１】
リトライ回数がリトライ閾値未満であれば（ステップＳ８：Ｎｏ）、バスエラー回復部１５１は、リトライ回数をカウントアップし（ステップＳ９）、ステップＳ７の処理へ戻る。ステップＳ８：Ｎｏ、ステップＳ９、及びステップＳ７の処理は、Ｉ２Ｃバス電源１２１のトリム調整が行われた後に、リトライで回復できるＩ２Ｃバスアクセスエラーから回復するための処理である。
【００５２】
リトライ回数がリトライ閾値以上であれば（ステップＳ８：Ｙｅｓ）、バスエラー回復部１５１は、Ｉ２Ｃバス電源１２１のトリム調整値において設定可能な値をすべて設定したか否かを判定する（ステップＳ１０）。尚、ステップＳ８におけるリトライ閾値は、ステップＳ３におけるリトライ閾値と同じであってもよいし、異なっていてもよい。
【００５３】
すべての値を設定した場合には（ステップＳ１０：Ｙｅｓ）、バスエラー回復部１５１は、Ｉ２Ｃバスアクセスが失敗した状態でＩ２Ｃバスアクセスの処理を終了する。
【００５４】
すべての値を設定していない場合には（ステップＳ１０：Ｎｏ）、バスエラー回復部１５１は、ステップＳ５の処理へ戻る。
【００５５】
本実施形態における動作例について説明する。
【００５６】
本動作例では、Ｉ２Ｃバス１３０とＩ２Ｃスレーブデバイス１１１等の電源電圧の典型値は３．３Ｖであるものとする。
【００５７】
図３は、本発明の第１の実施形態における第１の動作例の、Ｉ２Ｃバス電源におけるトリム調整値に対応する、出力電圧の規定値と実際の出力電圧値とを示す表である。図３では、第１列はトリム調整値を、第２列は出力電圧の規定値を、第３列は実際の出力電圧値を示す。トリム調整値は、−３以上、３以下の整数である。トリム調整値が０の場合、出力電圧の規定値と実際の出力電圧値とは共に３．３Ｖである。トリム調整値が正の場合、出力電圧の規定値と実際の出力電圧値とは共に、トリム調整値の増加に応じて０．１Ｖ単位で増加する。トリム調整値が負の場合、出力電圧の規定値と実際の出力電圧値とは共に、トリム調整値の減少に応じて０．１Ｖ単位で減少する。
【００５８】
本動作例では、サーバ１００において、図３に示された状態のＩ２Ｃバス電源１２１が、トリム調整値が０である状態において動作しているものとする。
【００５９】
本動作例では、Ｉ２Ｃバス電源１２１は典型値である３．３Ｖの電圧を出力する。そこで、Ｉ２Ｃスレーブデバイス１１１等が正常であれば、Ｉ２Ｃマスタデバイス１１５からＩ２Ｃスレーブデバイス１１１へのＩ２Ｃバスアクセスは成功する（ステップＳ１：Ｙｅｓ）。そして、バスエラー回復部１５１は、リトライ回数をリセットし（ステップＳ２）、Ｉ２Ｃバスアクセスが成功した状態で処理を終了する。
【００６０】
次に、トリム調整が必要な場合について説明する。例えば、サーバ１００の負荷の増加に伴い、メイン電源１２５からＩ２Ｃバス以外の電源１２６への電力供給が増加した結果、Ｉ２Ｃバス電源１２１の出力電圧が低下した状況である。
【００６１】
図４は、本発明の第１の実施形態における第２の動作例の、Ｉ２Ｃバス電源におけるトリム調整値に対応する、出力電圧の規定値と実際の出力電圧値とを示す表である。図４では、トリム調整値が０の場合、実際の出力電圧値が３．１Ｖである等、実際の出力電圧値が出力電圧の規定値よりも０．２Ｖだけ低下している。図４のその他の内容は、図３と同じである。
【００６２】
本動作例では、サーバ１００において、図４に示された状態のＩ２Ｃバス電源１２１が、トリム調整値が０である状態において動作しているものとする。又、説明を簡単にするために、Ｉ２Ｃスレーブデバイス１１１等は、電源電圧の典型値においてのみ正常に動作するものとする。
【００６３】
この状態で、Ｉ２Ｃマスタデバイス１１５がＩ２Ｃスレーブデバイス１１１へＩ２Ｃバスアクセスを行った場合には、Ｉ２Ｃバスアクセスが失敗する（ステップＳ１：Ｎｏ）。
【００６４】
次に、バスエラー回復部１５１は、Ｉ２Ｃバスアクセスのリトライを行っても、Ｉ２Ｃバスアクセスエラーから回復しない（ステップＳ３：Ｎｏ、ステップＳ４、ステップＳ１：Ｎｏ）。
【００６５】
続いて、リトライ回数がリトライ閾値を超えると（ステップＳ３：Ｙｅｓ）、バスエラー回復部１５１は、リトライ回数をリセットし（ステップＳ５）、ステップＳ６の処理へ進む。
【００６６】
ステップＳ６では、バスエラー回復部１５１は、Ｉ２Ｃバス電源１２１のトリム調整値を設定する。この際、バスエラー回復部１５１は、まず、トリム調整値を１に設定する。
【００６７】
ステップＳ６におけるトリム調整処理の後に、バスエラー回復部１５１は、Ｉ２Ｃスレーブデバイス１１１へのＩ２Ｃバスアクセスをリトライする（ステップＳ７）。Ｉ２Ｃバスアクセスが成功した場合には（ステップＳ７：Ｙｅｓ）、バスエラー回復部１５１は、リトライ回数をリセットし（ステップＳ２）、Ｉ２Ｃバスアクセスが成功した状態で処理を終了する。しかしながら、本動作例では、トリム調整値が１では、出力電圧が３．２Ｖまでしか上がらず、電源電圧の典型値である３．３Ｖに達しないため、Ｉ２Ｃバスアクセスが失敗する（ステップＳ７：Ｎｏ）。
【００６８】
Ｉ２Ｃバスアクセスが失敗すると（ステップＳ７：Ｎｏ）、バスエラー回復部１５１は、リトライ回数がリトライ閾値以上であるか否かを判定する（ステップＳ８）。リトライ回数がリトライ閾値未満であれば（ステップＳ８：Ｎｏ）、バスエラー回復部１５１は、リトライ回数のカウントアップを行い（ステップＳ９）、Ｉ２Ｃバスアクセスのリトライを行う（ステップＳ７）。
【００６９】
本動作例では、トリム調整値が１では、出力電圧が３．２Ｖまでしか上がらず、電源電圧の典型値である３．３Ｖに達しないため、Ｉ２Ｃバスアクセスのリトライは失敗する（ステップＳ７：Ｎｏ、ステップＳ８：Ｎｏ、ステップＳ９）。
【００７０】
リトライ回数がリトライ閾値を超えると（ステップＳ８：Ｙｅｓ）、バスエラー回復部１５１は、Ｉ２Ｃバス電源１２１に設定可能な全てのトリム調整値の設定を試したか否かを判定する（ステップＳ１０）。Ｉ２Ｃバス電源１２１に設定可能な全てのトリム調整値を試した場合には（ステップＳ１０：Ｙｅｓ）、バスエラー回復部１５１は、Ｉ２Ｃバスアクセスが失敗した状態で処理を終了する。しかしながら、本動作例では、まだ調整していないトリム調整値が存在するため（ステップＳ１０：Ｎｏ）、バスエラー回復部１５１は、ステップＳ５の処理へ戻る。
【００７１】
続いて、バスエラー回復部１５１は、トリム調整値を２に設定する（ステップＳ６）。
【００７２】
ステップＳ６におけるトリム調整処理の後に、バスエラー回復部１５１は、Ｉ２Ｃスレーブデバイス１１１へのＩ２Ｃバスアクセスをリトライする（ステップＳ７）。Ｉ２Ｃバスアクセスが成功した場合には（ステップＳ７：Ｙｅｓ）、バスエラー回復部１５１は、リトライ回数をリセットし（ステップＳ２）、Ｉ２Ｃバスアクセスが成功した状態で処理を終了する。Ｉ２Ｃバスアクセス失敗した場合には（ステップＳ７：Ｎｏ）、バスエラー回復部１５１は、再度ステップＳ８の処理へ進む。
【００７３】
本動作例では、トリム調整値が２では、出力電圧が３．３Ｖとなり、電源電圧の典型値である３．３Ｖに達するため、Ｉ２Ｃバスアクセスのリトライは成功する（ステップＳ７：Ｙｅｓ）。
【００７４】
以上説明したように、本実施形態のサーバ１００では、Ｉ２Ｃバスアクセスエラーが発生した際に、バスエラー回復部１５１は、Ｉ２Ｃバス電源１２１のトリム調整により電源電圧を典型値を中心に段階的に増減させる。そして、バスエラー回復部１５１は、バスエラーが発生しない電源電圧が見つかるまで、Ｉ２Ｃバス電源１２１のトリム調整により設定可能な全ての電源電圧において、Ｉ２Ｃバスアクセスのリトライを行う。その結果、サーバ１００では、Ｉ２Ｃバスアクセスのリトライ又は電源電圧を十分に高く設定することでは回復できないＩ２Ｃバスアクセスエラーから回復することが可能である。このようなＩ２Ｃバスアクセスエラーは、例えば、Ｉ２Ｃ電源の出力電圧の上昇に起因するＩ２Ｃバスアクセスエラーである。或いは、このようなバスアクセスエラーは、例えば、電源電圧が特定の範囲では発生しないが、電源電圧が、特定の範囲を超えて、高くても或いは低くても発生するバスアクセスエラーである。より具体的には、例えば、電源電圧の適正値に対する過不足に伴う信号の波形歪等に起因するＩ２Ｃバスアクセスエラーである。
【００７５】
従って、本実施形態のサーバ１００には、バスアクセスエラーが発生した際に、より多くの場合において、バスアクセスエラーから回復することができるという効果がある。
（第２の実施形態）
次に、本発明の第１の実施形態を基本とする、本発明の第２の実施形態について説明する。本実施形態では、サーバの起動時に、Ｉ２Ｃスレーブデバイス毎にＩ２Ｃバスアクセスの試験が行われ、前述したＩ２Ｃバスアクセスエラーからの回復処理を利用して、Ｉ２Ｃバス電源のトリム調整値が適切な値に調整される。これにより、サーバは、Ｉ２Ｃ電源の出力電圧の変化や、Ｉ２Ｃスレーブデバイスにおける個体毎の動作可能電圧のばらつき等に起因する、Ｉ２Ｃバスアクセスエラーの発生を抑制することができる。
【００７６】
本実施形態における構成について説明する。
【００７７】
図５は、本発明の第２の実施形態におけるサーバの構成の一例を示すブロック図である。
【００７８】
本実施形態のサーバ１０１は、Ｉ２Ｃバスを含む情報処理装置である。サーバ１０１は、Ｉ２Ｃマスタデバイス１１６と、Ｉ２Ｃスレーブデバイス１１１等と、Ｉ２Ｃバス電源１２１と、メイン電源１２５とを含む。サーバ１０１は、Ｉ２Ｃバス以外の電源１２６を含んでもよい。
【００７９】
サーバ１０１は、Ｉ２Ｃマスタデバイス１１６をマスタとするＩ２Ｃバスツリーを有する。Ｉ２Ｃバスツリーは、Ｉ２Ｃバス１３０と、Ｉ２Ｃバス１３１とを含む。
【００８０】
Ｉ２Ｃマスタデバイス１１６は、Ｉ２Ｃバス１３０を経由して、Ｉ２Ｃスレーブデバイス１１１等に対してＩ２Ｃバスアクセスを行う。Ｉ２Ｃマスタデバイス１１６は、例えば、ＢＭＣである。Ｉ２Ｃマスタデバイス１１６は、バスエラー回復部１５３を含む。
【００８１】
バスエラー回復部１５３は、Ｉ２Ｃバス１３１を経由して、Ｉ２Ｃバス電源１２１の出力電圧を典型値を中心に段階的に増減させる。又、バスエラー回復部１５３は、Ｉ２Ｃバスツリーにおいて発生したＩ２Ｃバスアクセスエラーからの回復処理を行う。又、バスエラー回復部１５３は、サーバ１０１の起動時に、Ｉ２Ｃスレーブデバイス１１１等についてＩ２Ｃバスアクセスを実行し、何れかのＩ２ＣスレーブデバイスにおいてＩ２Ｃバスアクセスエラーが発生した場合には、Ｉ２Ｃバスアクセスエラーからの回復処理を行う。
【００８２】
本実施形態におけるサーバ１０１のその他の構成は、本発明の第１の実施形態におけるサーバ１００の構成と同じである。
【００８３】
本実施形態における動作について説明する。
【００８４】
図６は、本発明の第２の実施形態におけるＩ２ＣマスタデバイスのＩ２Ｃバスアクセスの動作を示すフローチャートである。尚、図６に示すフローチャート及び以下の説明は一例であり、適宜求める処理に応じて、処理順等を入れ替えたり、処理を戻したり、又は処理を繰り返したりしてもよい。
【００８５】
まず、Ｉ２Ｃマスタデバイス１１６のバスエラー回復部１５３は、Ｉ２Ｃスレーブデバイス１１１等の各々に対してＩ２Ｃバスアクセスを行い、全てのＩ２Ｃスレーブデバイス１１１等においてＩ２Ｃバスアクセスが成功したか否かを判定する（ステップＳ２１）。
【００８６】
全てのＩ２Ｃスレーブデバイス１１１等においてＩ２Ｃバスアクセスが成功した場合には（ステップＳ２１：Ｙｅｓ）、バスエラー回復部１５３は、Ｉ２Ｃバスアクセスエラーが発生していない状態で処理を終了する。
【００８７】
何れかのＩ２Ｃスレーブデバイス１１１等においてＩ２Ｃバスアクセスが失敗した場合には（ステップＳ２１：Ｎｏ）、バスエラー回復部１５３は、１つのトリム調整値を選択してＩ２Ｃバス電源１２１に設定する（ステップＳ２２）。例えば、トリム調整値は、まず基準値より大きい値のうち基準値に近い側の値から遠い側の値に向けて増加され、その後に基準値より小さい値のうち基準値に近い側の値から遠い側の値に向けて減少される。
【００８８】
次に、バスエラー回復部１５３は、ステップＳ２２で設定したトリム調整値について、Ｉ２Ｃスレーブデバイス１１１等の各々に対してＩ２Ｃバスアクセスを行い、全てのＩ２Ｃスレーブデバイス１１１等においてＩ２Ｃバスアクセスが成功したか否かを判定する（ステップＳ２３）。
【００８９】
全てのＩ２Ｃスレーブデバイス１１１等においてＩ２Ｃバスアクセスが成功した場合には（ステップＳ２３：Ｙｅｓ）、バスエラー回復部１５３は、Ｉ２Ｃバスアクセスエラーが発生していない状態で処理を終了する。
【００９０】
何れかのＩ２Ｃスレーブデバイス１１１等においてＩ２Ｃバスアクセスが失敗した場合には（ステップＳ２３：Ｎｏ）、バスエラー回復部１５３は、Ｉ２Ｃバス電源１２１に設定できる全てのトリム調整値の設定を実行したか否かを判定する（ステップＳ２４）。
【００９１】
全てのトリム調整値の設定を実行していない場合には（ステップＳ２４：Ｎｏ）、バスエラー回復部１５３は、ステップＳ２２の処理へ戻る。
【００９２】
全てのトリム調整値の設定を実行した場合には（ステップＳ２４：Ｙｅｓ）、バスエラー回復部１５３は、Ｉ２Ｃバスアクセスエラーの発生から回復していない状態で処理を終了する。
【００９３】
本実施形態における動作例について説明する。
【００９４】
図７は、本発明の第２の実施形態における第１の動作例の、Ｉ２Ｃバス電源におけるトリム調整値に対応する、出力電圧の規定値と実際の出力電圧値とを示す表である。図７では、第１列はトリム調整値を、第２列は出力電圧の規定値を、第３列は実際の出力電圧値を、第４列は全てのＩ２ＣスレーブデバイスにおいてＩ２Ｃバスアクセスが成功したか否かの結果を示す。図７のその他の内容は、図３と同じである。
【００９５】
本動作例では、サーバ１０１が、図７に示された状態のＩ２Ｃバス電源１２１が、トリム調整値が０である状態で起動したものとする。
【００９６】
Ｉ２Ｃスレーブデバイス１１１等における個体毎のばらつきがなく、全てのＩ２Ｃスレーブデバイス１１１等が３．３Ｖの電源電圧において正常に動作するものとする。
【００９７】
本動作例では、トリム調整値が０である場合に、全てのＩ２Ｃスレーブデバイス１１１等においてＩ２Ｃバスアクセスが成功する（ステップＳ２１：Ｙｅｓ）。そのため、バスエラー回復部１５３は、全てのＩ２Ｃスレーブデバイス１１１等において、Ｉ２Ｃバスアクセスが成功したと判断し（ステップＳ２１：Ｙｅｓ）、Ｉ２Ｃバスアクセスエラーが発生していない状態で処理を終了する。
【００９８】
次に、トリム調整が必要な場合について説明する。
【００９９】
図８は、本発明の第２の実施形態における第２の動作例の、Ｉ２Ｃバス電源におけるトリム調整値に対応する、出力電圧の規定値と実際の出力電圧値とを示す表である。図８の内容は、第４列を除いて、図７と同じである。
【０１００】
本動作例では、説明を簡単にするために、Ｉ２Ｃスレーブデバイス１１１等は１台を除いて、図８に示された電源電圧の全ての規定値において正常に動作するが、Ｉ２Ｃスレーブデバイス１１１等のうち１台は、電源電圧が３．２Ｖ以下でのみ正常に動作するものとする。
【０１０１】
本動作例では、Ｉ２Ｃスレーブデバイス１１１等においてＩ２Ｃバスアクセスを行った際に、Ｉ２Ｃスレーブデバイス１１１等における個体毎のばらつきに起因して、トリム調整値が０のままでは、Ｉ２Ｃバスアクセスが成功しないＩ２Ｃスレーブデバイスが存在する。そのため、バスエラー回復部１５３は、何れかのＩ２Ｃスレーブデバイス１１１等においてＩ２Ｃバスアクセスが失敗したと判定する（ステップＳ２１：Ｎｏ）。何れかのＩ２Ｃスレーブデバイス１１１等においてＩ２Ｃバスアクセスが失敗したと判定された場合には（ステップＳ２１：Ｎｏ）、バスエラー回復部１５３は、ステップＳ２２の処理へ進む。
【０１０２】
続いて、バスエラー回復部１５３は、１つのトリム調整値を選択してＩ２Ｃバス電源１２１に設定する（ステップＳ２２）。ここでは、バスエラー回復部１５３は、まずトリム調整値に１を設定する。
【０１０３】
続いて、バスエラー回復部１５３は、全てのＩ２Ｃスレーブデバイス１１１等においてＩ２Ｃバスアクセスを行い、全てのＩ２Ｃバスアクセスが成功したか否かを判定する（ステップＳ２３）。全てのＩ２Ｃバスアクセスが成功した場合には（ステップＳ２３：Ｙｅｓ）、バスエラー回復部１５３は、Ｉ２Ｃバスアクセスが成功した状態で処理を終了する。しかしながら、本動作例では、トリム調整値が１では、全てのＩ２ＣスレーブデバイスへのＩ２Ｃバスアクセスは成功しない（ステップＳ２３：Ｎｏ）。
【０１０４】
そこで、バスエラー回復部１５３は、Ｉ２Ｃバス電源１２１に設定できる全てのトリム調整値の設定を実行したか否かを判定する（ステップＳ２４）。Ｉ２Ｃバス電源１２１に設定できる全てのトリム調整値を実行した場合には（ステップＳ２４：Ｙｅｓ）、バスエラー回復部１５３は、Ｉ２Ｃバスアクセスが失敗した状態で処理を終了する。しかしながら、本動作例では、まだ調整していないトリム調整値が存在するため、バスエラー回復部１５３は、ステップＳ２２の処理へ戻る。
【０１０５】
続いて、バスエラー回復部１５３は、トリム調整値を２に設定する（ステップＳ２２）。
【０１０６】
続いて、バスエラー回復部１５３は、全てのＩ２Ｃスレーブデバイス１１１等においてＩ２Ｃバスアクセスを実行し、全てのＩ２Ｃスレーブデバイス１１１等においてＩ２Ｃバスアクセスが成功したか否かを判定する（ステップＳ２３）。
【０１０７】
全てのＩ２Ｃバスアクセスが成功した場合には（ステップＳ２３：Ｙｅｓ）、バスエラー回復部１５３は、Ｉ２Ｃバスアクセスが成功した状態で処理を終了する。
【０１０８】
何れかのＩ２Ｃバスアクセスが失敗した場合には（ステップＳ２３：Ｎｏ）、バスエラー回復部１５３は、ステップＳ２４の処理へ進む。
【０１０９】
本動作例では、トリム調整値が２では、何れかのＩ２Ｃスレーブデバイス１１１等においてＩ２Ｃバスアクセスができない（ステップＳ２３：Ｎｏ）。バスエラー回復部１５３は、ステップＳ２３：Ｎｏ、ステップＳ２４：Ｎｏ、及びステップＳ２２の処理を繰り返した結果、トリム調整値が３まで設定して、Ｉ２Ｃバスアクセスが失敗すると、次にトリム調整値を−１に設定する（ステップＳ２２）。
【０１１０】
続いて、バスエラー回復部１５３は、全てのＩ２Ｃスレーブデバイス１１１等においてＩ２Ｃバスアクセスを実行し、全てのＩ２Ｃバスアクセスが成功したか否かを判定する（ステップＳ２３）。全てのＩ２Ｃバスアクセスが成功した場合には（ステップＳ２３：Ｙｅｓ）、バスエラー回復部１５３は、Ｉ２Ｃバスアクセスが成功した状態で処理を終了する。何れかのＩ２Ｃバスアクセスが失敗した場合には（ステップＳ２３：Ｎｏ）、バスエラー回復部１５３は、ステップＳ２４の処理へ進む。
【０１１１】
本動作例では、トリム調整値が−１で、全てのＩ２ＣスレーブデバイスにおけるＩ２Ｃバスアクセスが成功する（ステップＳ２３：Ｙｅｓ）。そして、バスエラー回復部１５３は、Ｉ２Ｃバスアクセスが成功した状態で処理を終了する。
【０１１２】
以上説明したように、本実施形態のサーバ１０１では、サーバ１０１の起動時に、バスエラー回復部１５３は、Ｉ２Ｃバスに接続されているすべてのＩ２ＣスレーブデバイスにおいてＩ２Ｃバスアクセスを実行する。そして、バスエラー回復部１５３は、全てのＩ２ＣスレーブデバイスにおいてＩ２Ｃバスアクセスが成功するまで、Ｉ２Ｃバス電源に対するトリム調整を行う。従って、本実施形態におけるサーバ１０１には、Ｉ２Ｃスレーブデバイスの個体毎のばらつきと電源電圧との不整合に起因する、Ｉ２Ｃバスアクセスエラーの発生を抑制することができるという効果がある。
【０１１３】
又、本実施形態のサーバ１０１では、Ｉ２Ｃバスアクセスエラーの発生が抑制される結果、サーバ１０１の可用性が向上するという効果がある。
（第３の実施形態）
次に、本発明の第１の実施形態の基本である、本発明の第３の実施形態について説明する。本実施形態は、本発明の最小限の構成を有する。
【０１１４】
図９は、本発明の第３の実施形態における情報処理装置の構成の一例を示すブロック図である。
【０１１５】
本実施形態の情報処理装置１０５は、バス１３５と、バス１３６と、バスデバイス１１７と、バスデバイス１１８と、バス電源１２２と、バスエラー回復装置１５５とを含む。
【０１１６】
バス１３５は、バスデバイス１１７とバスデバイス１１８とをバス接続する。
【０１１７】
バス１３６は、バスデバイス１１７とバス電源１２２とをバス接続する。
【０１１８】
バスデバイス１１７は、バスコントローラの機能を有するマスタデバイスである。バスデバイス１１７は、例えば、ＢＭＣ（Base Management Controller）である。
【０１１９】
バスデバイス１１８は、バスコントローラの機能を有しないスレーブデバイスである。
【０１２０】
バス電源１２２は、電源供給経路１４２を介してバス１３５及びバスデバイス１１７に電源電圧を供給する。又、バス電源１２２は、電源供給経路１４３を介してバスデバイス１１８に電源電圧を供給する。バス電源１２２は、所定の範囲内において段階的に可変な値の内の各電源電圧を供給するように、バスデバイス１１７を介してバスエラー回復装置１５５により設定可能である。
【０１２１】
バス１３５、バス１３６、バスデバイス１１７、バスデバイス１１８、及びバス電源１２２は、例えば、Ｉ２Ｃ（Inter-Integrated Circuit）規格、ＰＣＩ  Ｅｘｐｒｅｓｓ規格、ＵＳＢ（Universal Serial Bus）規格等のバス規格に準拠するが、これらの規格には限定されない。
【０１２２】
バスエラー回復装置１５５は、バスアクセスエラーからの回復処理を行う。バスエラー回復装置１５５は、バスデバイス１１７に接続される。或いは、バスエラー回復装置１５５は、バスデバイス１１７に含まれてもよい。バスエラー回復装置１５５は、バスエラー回復部１５６を含む。
【０１２３】
バスエラー回復部１５６は、バスデバイス１１８に対するバスアクセスにおいてエラーが発生した際に、バス電源１２２に、前述の各電源電圧を供給させるための設定を行う。そして、バスエラー回復部１５６は、当該電源電圧が供給されたバスデバイス１１８に対するバスアクセスにおいてエラーが発生しない場合に、当該設定においてバス電源１２２を動作させる。
【０１２４】
以上説明したように、本実施形態の情報処理装置１０５では、バスエラー回復部１５６は、バス電源１２２が供給する電源電圧を所定の範囲内において段階的に可変な値の内から選択する設定を行う。そして、バスエラー回復部１５６は、バスデバイス１１８に対するバスアクセスにおいてエラーが発生しない設定において、バス電源１２２を動作させる。つまり、情報処理装置１０５は、バスエラー回復装置１５５がバスに供給される電源電圧を所定の範囲内において段階的に可変な値の内から選択することにより回復できるバスアクセスエラーから回復することができる。このようなバスアクセスエラーは、例えば、電源の出力電圧が特定の範囲では発生しないが、電源の出力電圧が、特定の範囲を超えて、高くても或いは低くても発生するバスアクセスエラーである。
【０１２５】
従って、本実施形態の情報処理装置１０５には、バスアクセスエラーが発生した際に、より多くの場合において、バスアクセスエラーから回復することができるという効果がある。
【０１２６】
又、本実施形態の情報処理装置１０５におけるバスエラー回復部１５６は、バス電源１２２における電源電圧の特定の設定において、所定の上限値以下の回数だけバスデバイス１１８に対するバスアクセスを行ってもよい。そして、バスエラー回復部１５６は、バスデバイス１１８に対するバスアクセスにおいてエラーが発生しない設定においてバス電源１２２を動作させてもよい。この場合には、本実施形態の情報処理装置１０５には、バスアクセスの再試行により回復できるバスアクセスエラーから回復することができるという効果がある。バスアクセスの再試行により回復できるバスアクセスエラーは、例えば、バスデバイス１１８の過渡的な動作電圧特性の変化や、過渡的な電源電圧の変化に起因するバスアクセスエラーである。
【０１２７】
又、本実施形態の情報処理装置１０５におけるバスエラー回復部１５６は、バスデバイス１１８におけるバスアクセスを試験するために、情報処理装置１０５の起動時に、バスデバイス１１８におけるバスアクセスを行ってもよい。この場合には、本実施形態の情報処理装置１０５には、情報処理装置１０５の起動後にバスアクセスエラーが発生する可能性を低減できるという効果がある。
【０１２８】
図１０は、本発明の各実施形態における情報処理装置を実現可能なハードウェア構成の一例を示すブロック図である。
【０１２９】
情報処理装置９０７は、記憶装置９０２と、ＣＰＵ（Central Processing Unit）９０３と、キーボード９０４と、モニタ９０５と、Ｉ／Ｏ（Input/Output）９０８とを備え、これらが内部バス９０６で接続されている。記憶装置９０２は、バスエラー回復部１５６等のＣＰＵ９０３の動作プログラムを格納する。ＣＰＵ９０３は、情報処理装置９０７全体を制御し、記憶装置９０２に格納された動作プログラムを実行し、Ｉ／Ｏ９０８を介してバスエラー回復部１５６等のプログラムの実行やデータの送受信を行なう。尚、上記の情報処理装置９０７の内部構成は一例である。情報処理装置９０７は、必要に応じて、キーボード９０４、モニタ９０５を接続する装置構成であってもよい。
【０１３０】
上述した本発明の各実施形態における情報処理装置は、専用の装置によって実現してもよいが、コンピュータによっても実現可能である。この場合、係るコンピュータは、記憶装置９０２に格納されたソフトウェア・プログラムをＣＰＵ９０３に読み出し、読み出したソフトウェア・プログラムをＣＰＵ９０３において実行する。上述した各実施形態の場合、係るソフトウェア・プログラムには、上述したところの、図１に示したバスエラー回復部１５１の機能、図５に示したバスエラー回復部１５３の機能、図９に示したバスエラー回復部１５６の機能を実現可能な記述がなされていればよい。ただし、これらの各部には、適宜ハードウェアを含むことも想定される。そして、このような場合、係るソフトウェア・プログラム（コンピュータ・プログラム）は、本発明を構成すると捉えることができる。更に、係るソフトウェア・プログラムを格納した、コンピュータ読み取り可能な記憶媒体も、本発明を構成すると捉えることができる。
【０１３１】
以上、本発明を、上述した各実施形態及びその変形例によって例示的に説明した。しかしながら、本発明の技術的範囲は、上述した各実施形態及びその変形例に記載した範囲に限定されない。当業者には、係る実施形態に対して多様な変更又は改良を加えることが可能であることは明らかである。そのような場合、係る変更又は改良を加えた新たな実施形態も、本発明の技術的範囲に含まれ得る。そしてこのことは、特許請求の範囲に記載した事項により明らかである。
【産業上の利用可能性】
【０１３２】
本発明は、情報処理装置、電子機器等において、バスアクセスエラーから回復したり、バスアクセスエラーの発生を低減したりする用途において利用できる。
【符号の説明】
【０１３３】
１００、１０１、１０９  サーバ
１１１、１１２、１１３、１１４  Ｉ２Ｃスレーブデバイス
１１０、１１５、１１６  Ｉ２Ｃマスタデバイス
１２０、１２１  Ｉ２Ｃバス電源
１２５  メイン電源
１２６  Ｉ２Ｃバス以外の電源
１３０、１３１  Ｉ２Ｃバス
１４０、１４１、１４２、１４３  電源供給経路
１５１、１５３、１５６  バスエラー回復部
１５５  バスエラー回復装置
１０５  情報処理装置
１１７  バスデバイス
１１８  バスデバイス
１２２  バス電源
１３５、１３６  バス
９０２  記憶装置
９０３  ＣＰＵ
９０４  キーボード
９０５  モニタ
９０６  内部バス
９０７  情報処理装置
９０８  Ｉ／Ｏ
【図１】
2018055560.tif 000003
【図２】
2018055560.tif 000004
【図３】
2018055560.tif 000005
【図４】
2018055560.tif 000006
【図５】
2018055560.tif 000007
【図６】
2018055560.tif 000008
【図７】
2018055560.tif 000009
【図８】
2018055560.tif 000010
【図９】
2018055560.tif 000011
【図１０】
2018055560.tif 000012
【図１１】
2018055560.tif 000013
【図１２】
2018055560.tif 000014