(57)【要約】【課題】  第１装置と第２装置とが互いに離れて配置される場合にも、第２装置からのデータを、第１通信回線を介して第１装置により受信可能にする。【解決手段】  情報処理装置は、第１通信回線に第１アクセス要求を出力する第１装置と、第１通信回線を介して受信する第１アクセス要求を第２アクセス要求に変換して第２通信回線に出力する第１中継装置と、第２通信回線を介して受信する第２アクセス要求を第１通信回線のプロトコルにしたがった第３アクセス要求に変換して第３通信回線に出力する第２中継装置と、第３アクセス要求に基づいて動作し、データを出力する第２装置を有する。第１中継装置は、第２中継装置を介して受信する第２装置からのデータを保持する記憶部と、データが記憶部に保持された後に新たな第１アクセス要求を受信した場合に、記憶部に保持されたデータを第１装置に出力する制御部を有する。【選択図】    図１
2015154260.tif 000002
【特許請求の範囲】
【請求項１】
第１通信回線に第１アクセス要求を出力する第１装置と、
前記第１通信回線のプロトコルと第２通信回線のプロトコルとを相互に変換し、前記第１通信回線を介して受信する前記第１アクセス要求を前記第２通信回線のプロトコルにしたがった第２アクセス要求に変換して前記第２通信回線に出力する第１中継装置と、
前記第２通信回線のプロトコルと第３通信回線のプロトコルとを相互に変換し、前記第２通信回線を介して受信する前記第２アクセス要求を前記第１通信回線のプロトコルにしたがった第３アクセス要求に変換して前記第３通信回線に出力する第２中継装置と、
前記第３通信回線に接続され、前記第３アクセス要求に基づいて動作し、データを出力する第２装置を有し、
前記第１中継装置は、
前記第２装置から出力されるデータであって、前記第２中継装置を介して受信するデータを保持する記憶部と、
データが前記記憶部に保持された後に新たな前記第１アクセス要求を受信した場合に、前記記憶部に保持されたデータを前記第１装置に出力する制御部を有することを特徴とする情報処理装置。
【請求項２】
前記第１装置は、前記第１アクセス要求を繰り返し出力し、
前記第１中継装置の前記制御部は、
最初の前記第１アクセス要求を前記第２アクセス要求に変換し、
最初の前記第１アクセス要求に対応して前記第２装置から出力されるデータが前記記憶部に保持される前に受信する２番目以降の前記第１アクセス要求に応答して、無効を示す情報を前記第１装置に出力し、
最初の前記第１アクセス要求に対応して前記第２装置から出力されるデータが前記記憶部に保持された後に受信する２番目以降の前記第１アクセス要求に応答して、前記記憶部に保持されたデータを前記第１装置に出力することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記第１中継装置の前記制御部は、前記記憶部に保持されたデータを前記第１装置に出力した後、前記記憶部に保持されたデータを無効にすることを特徴とする請求項１または請求項２記載の情報処理装置。
【請求項４】
前記第１装置は、最初の前記第１アクセス要求を出力してから所定時間内に前記第１中継装置からデータを受信しない場合、前記第２装置からのデータの読み出しエラーを検出することを特徴とする請求項２または請求項３記載の情報処理装置。
【請求項５】
前記第１中継装置は、前記第１中継装置と前記第２中継装置との間の通信の応答時間の測定を指示する第１コマンドを前記第１装置から受信した場合、前記第２中継装置に疎通状態を確認する第２コマンドを出力し、前記第２中継装置から前記第２コマンドの応答を受信するまでの時間を前記応答時間として求め、
前記第１装置は、前記所定時間を、前記第２中継装置が前記第３アクセス要求を出力してから、前記第２装置からデータを受信するまでの時間に、前記応答時間を加えた時間に設定することを特徴とする請求項４記載の情報処理装置。
【請求項６】
前記第１中継装置は、前記第１装置からの第３コマンドの受信に応答して、前記応答時間の未測定を示す情報、前記応答時間の測定中を示す情報、または前記応答時間を示す情報を前記第１装置に出力し、
前記第１装置は、前記第３コマンドに応答して前記第１中継装置から前記応答時間の未測定を示す情報を受信した場合、前記第１コマンドを出力し、前記第３コマンドに応答して前記第１中継装置から前記応答時間の測定中を示す情報を受信した場合、前記応答時間を示す情報を受信するまで、前記第３コマンドを繰り返し出力することを特徴とする請求項５記載の情報処理装置。
【請求項７】
前記第１装置および前記第１中継装置は、第１情報処理装置に搭載され、
前記第１情報処理装置は、
プリント基板と、
前記プリント基板に取り付けられ、前記プリント基板上に配線される前記第１通信回線に接続され、前記第１中継装置が装着されるコネクタと、
前記プリント基板に取り付けられ、前記コネクタに装着された前記第１中継装置との接触を検出する検出部を有し、
前記第１装置は、前記第１中継装置の前記コネクタへの装着が前記検出部により検出された場合に、前記応答時間の測定処理を実行することを特徴とする請求項５または請求項６記載の情報処理装置。
【請求項８】
第１通信回線に第１アクセス要求を出力する第１装置と、前記第１通信回線のプロトコルと第２通信回線のプロトコルとを相互に変換し、前記第１通信回線を介して受信する前記第１アクセス要求を前記第２通信回線のプロトコルにしたがった第２アクセス要求に変換して前記第２通信回線に出力する第１中継装置と、前記第２通信回線のプロトコルと第３通信回線のプロトコルとを相互に変換し、前記第２通信回線を介して受信する前記第２アクセス要求を前記第１通信回線のプロトコルにしたがった第３アクセス要求に変換して前記第３通信回線に出力する第２中継装置と、前記第３通信回線に接続され、前記第３アクセス要求に基づいて動作し、データを出力する第２装置を有する情報処理装置の制御方法において、
前記第１中継装置は、
前記第２装置から出力されるデータであって、前記第２中継装置を介して受信するデータを記憶部に保持し、
データが前記記憶部に保持された後に新たな前記第１アクセス要求を受信した場合に、前記記憶部に保持されたデータを前記第１装置に出力することを特徴とする情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および情報処理装置の制御方法に関する。
【背景技術】
【０００２】
イントラネットとインターネットの間に配置されるプロキシサーバが、インターネットから受けた文書をキャッシュに保持し、キャッシュに保持した文書をインターネットにアクセスすることなく要求元に送信する手法が提案されている（例えば、特許文献１参照）。コンピュータとＩ２Ｃ（Inter-Integrated Circuit；登録商標）デバイスの制御装置とを、ネットワークを介して接続し、コンピュータからＩ２Ｃデバイスにアクセス可能にする手法が提案されている（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−５７０４１号公報
【非特許文献】
【０００４】
【非特許文献１】ＡｎａＧａｔｅＩ２Ｃ  Ｄａｔａｓｈｅｅｔ（Ａｎａｌｙｔｉｃａ  ＧｍｂＨ）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
例えば、Ｉ２Ｃのプロトコルを用いて動作するマスタとスレーブとは、Ｉ２Ｃバスのタイミング仕様を満足する距離に配置される。一方、Ｉ２Ｃバスのタイミング仕様を満足する距離を超えた位置に配置されるマスタとスレーブとの間でのＩ２Ｃのプロトコルを用いたアクセスは、誤動作の原因になる。例えば、マスタが搭載される装置に新たなスレーブを搭載する余裕がない場合、新たなスレーブは、新たなマスタとともに他の装置に搭載され、マスタと新たなマスタとは、Ｉ２Ｃバスと異なるプロトコルのバスを用いて接続される。この場合、マスタは、マスタが搭載される装置に搭載されるスレーブと、新たなスレーブとを、互いに異なるプロトコルを用いてアクセスするため、アクセスの制御が複雑になる。
【０００６】
本件開示の情報処理装置および情報処理装置の制御方法は、第１装置と第２装置とが、第１通信回線のタイミング仕様を満足しない距離を置いて配置される場合にも、第２装置からのデータを、第１通信回線を介して第１装置により受信可能にすることを目的とする。
【課題を解決するための手段】
【０００７】
一つの観点によれば、情報処理装置は、第１通信回線に第１アクセス要求を出力する第１装置と、第１通信回線のプロトコルと第２通信回線のプロトコルとを相互に変換し、第１通信回線を介して受信する第１アクセス要求を第２通信回線のプロトコルにしたがった第２アクセス要求に変換して第２通信回線に出力する第１中継装置と、第２通信回線のプロトコルと第３通信回線のプロトコルとを相互に変換し、第２通信回線を介して受信する第２アクセス要求を第１通信回線のプロトコルにしたがった第３アクセス要求に変換して第３通信回線に出力する第２中継装置と、第３通信回線に接続され、第３アクセス要求に基づいて動作し、データを出力する第２装置を有し、第１中継装置は、第２装置から出力されるデータであって、第２中継装置を介して受信するデータを保持する記憶部と、データが記憶部に保持された後に新たな第１アクセス要求を受信した場合に、記憶部に保持されたデータを第１装置に出力する制御部を有する。
【０００８】
別の観点によれば、第１通信回線に第１アクセス要求を出力する第１装置と、第１通信回線のプロトコルと第２通信回線のプロトコルとを相互に変換し、第１通信回線を介して受信する第１アクセス要求を第２通信回線のプロトコルにしたがった第２アクセス要求に変換して第２通信回線に出力する第１中継装置と、第２通信回線のプロトコルと第３通信回線のプロトコルとを相互に変換し、第２通信回線を介して受信する第２アクセス要求を第１通信回線のプロトコルにしたがった第３アクセス要求に変換して第３通信回線に出力する第２中継装置と、第３通信回線に接続され、第３アクセス要求に基づいて動作し、データを出力する第２装置を有する情報処理装置の制御方法では、第１中継装置は、第２装置から出力されるデータであって、第２中継装置を介して受信するデータを記憶部に保持し、データが記憶部に保持された後に新たな第１アクセス要求を受信した場合に、記憶部に保持されたデータを第１装置に出力する。
【発明の効果】
【０００９】
本件開示の情報処理装置および情報処理装置の制御方法は、第１装置と第２装置とが、第１通信回線のタイミング仕様を満足しない距離を置いて配置される場合にも、第２装置からのデータを、第１通信回線を介して第１装置により受信することができる。
【図面の簡単な説明】
【００１０】
【図１】情報処理装置および情報処理装置の制御方法の一実施形態を示す図である。
【図２】情報処理装置および情報処理装置の制御方法の別の実施形態を示す図である。
【図３】スロットが搭載されるサーバ内に設けられるプリント基板の例を示す図である。
【図４】ＩＣ２バスを用いたリード動作およびライト動作のタイミング仕様の例を示す図である。
【図５】図２に示すカードと拡張装置との間の応答時間を測定するシーケンスの例を示す図である。
【図６】図２に示すカードと拡張装置との間の応答時間を測定するシーケンスの別の例を示す図である。
【図７】図５および図６に示すシーケンスにおいて、カードに搭載されるＣＰＵがリード要求に応答してサービスプロセッサに返す情報の例を示す図である。
【図８】図２に示すカードに搭載されるＲＡＭ内のキャッシュの割り当ての例を示す図である。
【図９】図２に示す拡張装置内のＩ２Ｃデバイスからデータを読み出すシーケンスの例を示す図である。
【図１０】図２に示す拡張装置内のＩ２Ｃデバイスからデータを読み出すシーケンスの別の例を示す図である。
【図１１】図９に示すシーケンスにおける情報の流れを示す図である。
【図１２】図２に示す拡張装置内のＩ２Ｃデバイスにデータを書き込むシーケンスの例を示す図である。
【図１３】図９に示すリード要求コマンド、図１２に示すライト要求コマンドおよび図５に示す疎通確認コマンドのフォーマットの例を示す図である。
【図１４】図９に示すリードデータ送信コマンドおよび図５に示す疎通応答コマンドのフォーマットの例を示す図である。
【図１５】図２に示すサービスプロセッサによるリード処理の例を示す図である。
【図１６】図２に示すカードに搭載されるＣＰＵの動作の例を示す図である。
【図１７】図２に示す拡張装置に搭載されるＣＰＵ１の動作の例を示す図である。
【発明を実施するための形態】
【００１１】
以下、図面を用いて実施形態を説明する。
【００１２】
図１は、情報処理装置および情報処理装置の制御方法の一実施形態を示す。図１に示す情報処理装置ＩＰＥ１は、第１装置ＤＥＶ１、第１中継装置ＲＬＹ１、第２中継装置ＲＬＹ２および第２装置ＤＥＶ２を有する。第１中継装置ＲＬＹ１は、第２装置ＤＥＶ２から読み出されるデータＤＴを保持する記憶部ＭＥＭと、第１中継装置ＲＬＹ１の動作を制御するとともに、記憶部ＭＥＭに保持されたデータＤＴの第１装置ＤＥＶ１への出力を制御する制御部ＣＮＴとを有する。
【００１３】
第１装置ＤＥＶ１と第１中継装置ＲＬＹ１とは、第１通信回線ＣＬ１を介して互いに接続される。第１中継装置ＲＬＹ１と第２中継装置ＲＬＹ２とは、プロトコルが第１通信回線ＣＬ１と異なる第２通信回線ＣＬ２を介して互いに接続される。第２中継装置ＲＬＹ２と第２装置ＤＥＶ２とは、プロトコルが第１通信回線ＣＬ１と同じ第３通信回線ＣＬ３を介して互いに接続される。例えば、第１装置ＤＥＶ１および第１中継装置ＲＬＹ１は、第１情報処理装置ＩＰＥ１１に搭載され、第２中継装置ＲＬＹ２および第２装置ＤＥＶ２は、第１情報処理装置ＩＰＥ１１の拡張装置ＥＸに搭載される。
【００１４】
第１中継装置ＲＬＹ１は、第１通信回線ＣＬ１のプロトコルと第２通信回線ＣＬ２のプロトコルとを相互に変換する。第２中継装置ＲＬＹ２は、第２通信回線ＣＬ２のプロトコルと第３通信回線ＣＬ３のプロトコルとを相互に変換する。
【００１５】
例えば、第２装置ＤＥＶ２は、第１通信回線ＣＬ１に接続されることで、第１情報処理装置ＩＰＥ１１によりアクセス可能である。しかし、図１では、例えば、第１情報処理装置ＩＰＥ１１は、第２装置ＤＥＶ２を搭載する余裕を持たない。このため、第２装置ＤＥＶ２は、拡張装置ＥＸに搭載され、第１中継装置ＲＬＹ１および第２中継装置ＲＬＹ２を介して、第１装置ＤＥＶ１に接続される。すなわち、拡張装置ＥＸは、第２装置ＤＥＶ２を増設するために第２通信回線ＣＬ２を介して第１情報処理装置ＩＰＥ１１に接続される。
【００１６】
以下、第１装置ＤＥＶ１が第２装置ＤＥＶ２にアクセスし、第２装置ＤＥＶ２からデータを読み出す例について説明する。
【００１７】
まず、第１装置ＤＥＶ１は、第２装置ＤＥＶ２からデータＤＴを読み出す第１アクセス要求ＲＥＱ１を第１通信回線ＣＬ１に出力する（図１（ａ））。第１中継装置ＲＬＹ１は、第１通信回線ＣＬ１を介して受信する第１アクセス要求ＲＥＱ１を第２通信回線ＣＬ２のプロトコルにしたがった第２アクセス要求ＲＥＱ２に変換し、第２通信回線ＣＬ２に出力する（図１（ｂ））。第２中継装置ＲＬＹ２は、第２通信回線ＣＬ２を介して受信する第２アクセス要求ＲＥＱ２を第１通信回線ＣＬ１のプロトコルにしたがった第３アクセス要求ＲＥＱ３に変換し、第３通信回線ＣＬ３に出力する（図１（ｃ））。
【００１８】
第２装置ＤＥＶ２は、第３アクセス要求ＲＥＱ３に基づいて動作し、データＤＴを第３通信回線ＣＬ３に出力する（図１（ｄ））。第２中継装置ＲＬＹ２は、第２装置ＤＥＶ２から受けたデータＤＴを第２通信回線ＣＬ２のプロトコルに変換し、第２通信回線ＣＬ２に出力する（図１（ｅ））。例えば、第１中継装置ＲＬＹ１が第２通信回線ＣＬ２を介して受信したデータＤＴを第１通信回線ＣＬ１に出力する場合、最初の第１アクセス要求ＲＥＱ１に対応する第１通信回線ＣＬ１のタイミング仕様は満足されない。例えば、第１装置ＤＥＶ１が、最初の第１アクセス要求ＲＥＱ１に応答してデータを受信する場合、受信したデータは、誤ったデータである。
【００１９】
正しいデータを第１装置ＤＥＶ１に受信させるために、第１中継装置ＲＬＹ１は、第２通信回線ＣＬ２を介して受信するデータＤＴを、最初の第１アクセス要求ＲＥＱ１に応答して出力せず、記憶部ＭＥＭに保持する。
【００２０】
例えば、第２通信回線ＣＬ２を介して受信したデータＤＴは、制御部ＣＮＴの制御に基づいて記憶部ＭＥＭに書き込まれる。制御部ＣＮＴは、データＤＴを記憶部ＭＥＭに保持した後、新たな第１アクセス要求ＲＥＱ１を第１装置ＤＥＶ１から受信した場合、記憶部ＭＥＭに保持されたデータＤＴを第１装置ＤＥＶ１に出力する（図１（ｆ））。制御部ＣＮＴは、新たな第１アクセス要求ＲＥＱ１に応答してデータＤＴを出力するため、データＤＴの出力タイミングは、第１通信回線ＣＬ１のタイミング仕様を満足する。そして、第１装置ＤＥＶ１は、最初の第１アクセス要求ＲＥＱ１に応答して第２装置ＤＥＶ２から読み出されるデータＤＴを、２番目以降の第１アクセス要求ＲＥＱ１に応答して受信する。なお、第１中継装置ＲＬＹ１は、最初の第１アクセス要求ＲＥＱ１に応答して、無効を示す情報を第１装置ＤＥＶ１に出力してもよい。また、例えば、第１中継装置ＲＬＹ１は、記憶部ＭＥＭにデータＤＴを保持する前に第１アクセス要求ＲＥＱ１を受信した場合、受信した第１アクセス要求ＲＥＱ１を無効にする（図１（ｇ））。
【００２１】
以上、図１に示した実施形態では、第１中継装置ＲＬＹ１は、最初の第１アクセス要求ＲＥＱ１に応答して第２装置ＤＥＶ２から読み出されたデータＤＴを、２番目以降の第１アクセス要求ＲＥＱ１に応答して第１装置ＤＥＶ１に出力する。このため、第１中継装置ＲＬＹ１から第１装置ＤＥＶ１へのデータＤＴの出力タイミングは、２番目以降の第１アクセス要求ＲＥＱ１に対する第１通信回線ＣＬ１のタイミング仕様を満足させることができる。
【００２２】
例えば、第１装置ＤＥＶ１は、第１アクセス要求ＲＥＱ１を繰り返し出力する。第１中継装置ＲＬＹ１は、最初の第１アクセス要求ＲＥＱ１に応答して、第２装置ＤＥＶにアクセスするための第２アクセス要求ＲＥＱ２を第２中継装置ＲＬＹ２に出力する。また、第１中継装置ＲＬＹ１は、第２装置ＤＥＶ２からのデータＤＴを受信した後の第１アクセス要求ＲＥＱ１に応答して、データＤＴを第１装置ＤＥＶ１に出力する。すなわち、第１中継装置ＲＬＹ１は、第２アクセス要求ＲＥＱ２の第２中継装置ＲＬＹ２への出力と、データＤＴの第１装置ＤＥＶ１への出力とを、互いに異なるタイミングで受信した第１アクセス要求ＲＥＱ１のそれぞれに応答して実行する。これにより、第１装置ＤＥＶ１は、第１通信回線ＣＬ１のタイミング仕様にしたがって、第２装置ＤＥＶ２からのデータＤＴを受信することができる。
【００２３】
換言すれば、第１中継装置ＲＬＹ１から第１装置ＤＥＶ１へのデータＤＴの出力タイミングが、最初の第１アクセス要求ＲＥＱ１に対する第１通信回線ＣＬ１のタイミング仕様を満足しない場合にも、第１装置ＤＥＶ１は、正しいデータＤＴを受信することができる。この結果、第１装置ＤＥＶ１と第２装置ＤＥＶ２とが、第１通信回線ＣＬ１のタイミング仕様を満足しない距離を置いて配置される場合にも、第２装置ＤＥＶ２からのデータＤＴを、第１通信回線ＣＬ１を介して第１装置ＤＥＶ１により受信することができる。
【００２４】
第１装置ＤＥＶ１および第２装置ＤＥＶ２のそれぞれは、プロトコルが同じ第１通信回線ＣＬ１および第３通信回線ＣＬ３に接続される。このため、第１装置ＤＥＶ１と第２装置ＤＥＶ２とが互いに離れて配置される場合にも、第１装置ＤＥＶ１および第２装置ＤＥＶ２を再設計することなく、第１装置ＤＥＶ１は、第１通信回線ＣＬ１のタイミング仕様にしたがって第２装置ＤＥＶ２にアクセスできる。
【００２５】
図２は、情報処理装置および情報処理装置の制御方法の別の実施形態を示す。図1に示す実施形態で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態の情報処理装置ＩＰＥ２は、サーバＳＶと、ネットワークＮＷ（ＮＷ１、ＮＷ２）を介してサーバＳＶにそれぞれ接続された拡張装置ＥＸ１、ＥＸ２とを有する。サーバＳＶは、第１情報処理装置の一例であり、拡張装置ＥＸ１、ＥＸ２は、第２情報処理装置の一例である。
【００２６】
サーバＳＶは、サービスプロセッサＳＰ、ＣＰＵ（Central Processing Unit）０、メモリアクセスコントローラＭＡＣ、メモリモジュールＭＭおよびルートコンプレックスＰＣＩＲＣを有する。また、サーバＳＶは、カードＣ００が装着されたスロットＰＣＩＳＬＴ００、カードＣＡＲＤ１が装着されたスロットＰＣＩＳＬＴ０１、およびカードＣＡＲＤ２が装着されたスロットＰＣＩＳＬＴ０２を有する。サービスプロセッサＳＰは、第１装置の一例であり、カードＣＡＲＤ１、ＣＡＲＤ２は、第１中継装置の一例である。
【００２７】
例えば、スロットＰＣＩＳＬＴ００、ＰＣＩＳＬＴ０１、ＰＣＩＳＬＴ０２は、ＰＣＩ（Peripheral Component Interconnect）  ｅｘｐｒｅｓｓ（登録商標）規格で定められたコネクタである。以下の説明では、ＰＣＩ  ｅｘｐｒｅｓｓは、ＰＣＩｅと称され、ＰＣＩｅ規格により定められたバスは、バスＰＣＩｅと称される。
【００２８】
ＣＰＵ０、メモリアクセスコントローラＭＡＣ、ルートコンプレックスＰＣＩＲＣおよびカードＣ００、ＣＡＲＤ１、ＣＡＲＤ２は、Ｉ２Ｃ規格のインタフェースを有する。また、ルートコンプレックスＰＣＩＲＣおよびカードＣ００、ＣＡＲＤ１、ＣＡＲＤ２は、ＰＣＩｅ規格のインタフェースを有する。
【００２９】
サービスプロセッサＳＰは、バスＩ２ＣＢ０を介してＣＰＵ０、メモリアクセスコントローラＭＡＣ、ルートコンプレックスＰＣＩＲＣおよびスロットＰＣＩＳＬＴ００、ＰＣＩＳＬＴ０１、ＰＣＩＳＬＴ０２に接続される。例えば、バスＩ２ＣＢ０は、Ｉ２Ｃ規格により定められたＩ２Ｃバスであり、第１通信回線の一例である。
【００３０】
サービスプロセッサＳＰは、バスＩ２ＣＢ０を介して接続されるサーバＳＶ内のＣＰＵ０、メモリアクセスコントローラＭＡＣ、ルートコンプレックスＰＣＩＲＣおよびカードＣ００、ＣＡＲＤ１、ＣＡＲＤ２の監視および管理を実行する。さらに、サービスプロセッサＳＰは、ネットワークＮＷ１、ＮＷ２を介して、拡張装置ＥＸ１、ＥＸ２に搭載されるカードＣ１１、Ｃ１２、Ｃ２１、Ｃ２２の監視および管理を実行する。
【００３１】
カードＣ１１、Ｃ１２は、Ｉ２Ｃ規格により定められたバスＩ２ＣＢ１を介してネットワークＮＷ１に接続されるＩ２Ｃデバイスである。カードＣ２１、Ｃ２２は、Ｉ２Ｃ規格により定められたバスＩ２ＣＢ２を介してネットワークＮＷ２に接続されるＩ２Ｃデバイスである。また、カードＣ１１、Ｃ１２、Ｃ２１、Ｃ２２は、バスＰＣＩｅを介してＣＰＵ０によりアクセスされるＰＣＩｅデバイスである。サービスプロセッサＳＰによるバスＩ２ＣＢ０を介したカードＣ１１、Ｃ１２、Ｃ２１、Ｃ２２のアクセスは、図９で説明される。
【００３２】
ＣＰＵ０、メモリアクセスコントローラＭＡＣおよびルートコンプレックスＰＣＩＲＣは、システムバスＳＢＵＳに接続される。メモリアクセスコントローラＭＡＣは、ＣＰＵ０からの指示に基づいて、メモリモジュールＭＭにアクセスする。例えば、ＣＰＵ０は、メモリモジュールＭＭに格納されたプログラムを実行することにより、サーバＳＶの機能を実現する。ルートコンプレックスＰＣＩＲＣは、システムバスＳＢＵＳをバスＰＣＩｅに接続し、ＣＰＵ０によるカードＣ００、ＣＡＲＤ１、ＣＡＲＤ２のアクセスを可能にする。
【００３３】
カードＣＡＲＤ１は、拡張装置ＥＸ１によりスロットＰＣＩＳＬＴ１１、ＰＣＩＳＬＴ１２を増設する場合にスロットＰＣＩＳＬＴ０１に接続される。カードＣＡＲＤ２は、拡張装置ＥＸ２によりスロットＰＣＩＳＬＴ２１、ＰＣＩＳＬＴ２２を増設する場合にスロットＰＣＩＳＬＴ０１に接続される。換言すれば、ＰＣＩｅのインタフェースを有する装置を増設するためのスロットが不足する場合、カードＣＡＲＤ１がスロットＰＣＩＳＬＴ０１に接続され、あるいは、カードＣＡＲＤ２がスロットＰＣＩＳＬＴ０２に接続される。
【００３４】
カードＣＡＲＤ１は、ＣＰＵ、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、インタフェースＩ２ＣＩＦ、ＮＷＩＦおよびスイッチＳＷを有する。ＣＰＵは、制御部の一例であり、サービスプロセッサＳＰと拡張装置ＥＸ１に搭載されるＩ２Ｃデバイスとの間の通信を制御する機能を有する。例えば、ＲＯＭは、ＣＰＵが実行するプログラムが格納される。例えば、ＲＡＭは、ＣＰＵで扱うデータを保持し、拡張装置ＥＸ１に搭載されるカードＣ１１、Ｃ１２等のＩ２Ｃデバイスから出力されるデータを一時的に保持する。すなわち、ＲＡＭは、拡張装置ＥＸ１に搭載されるＩ２Ｃデバイスから出力されるデータを一時的に保持するキャッシュＣＡＣＨＥの機能を有する。キャッシュＣＡＣＨＥは、記憶部の一例である。
【００３５】
インタフェースＩ２ＣＩＦは、カードＣＡＲＤ１をバスＩ２ＣＢ０に接続し、カードＣＡＲＤ１とサービスプロセッサＳＰとの間でデータを入出力する。インタフェースＮＷＩＦは、カードＣＡＲＤ１をネットワークＮＷ１に接続し、カードＣＡＲＤ１と拡張装置ＥＸ１との間でデータを入出力する。例えば、ネットワークＮＷ１、ＮＷ２は、ＬＡＮであり、インタフェースＮＷＩＦは、ＬＡＮインタフェースである。ネットワークＮＷ１、ＮＷ２は、第２通信回線の一例である。
【００３６】
カードＣＡＲＤ１に搭載されるスイッチＳＷは、ＰＣＩｅ規格にしたがって動作し、サーバＳＶ内のバスＰＣＩｅを拡張装置ＥＸ１に接続する。カードＣＡＲＤ２に搭載されるスイッチＳＷは、ＰＣＩｅ規格にしたがって動作し、サーバＳＶ内のバスＰＣＩｅを拡張装置ＥＸ２に接続する。
【００３７】
カードＣＡＲＤ２は、カードＣＡＲＤ１と同一または同様の構成を有する。カードＣＡＲＤ２の機能は、接続される拡張装置（ＥＸ１またはＥＸ２）が異なることを除き、カードＣＡＲＤ１と同一または同様のため、詳細な説明は省略する。
【００３８】
拡張装置ＥＸ１は、制御装置ＣＮＴ１、カードＣ１１が装着されたスロットＰＣＩＳＬＴ１１、カードＣ１２が装着されたスロットＰＣＩＳＬＴ１２およびスイッチＳＷを有する。拡張装置ＥＸ２は、制御装置ＣＮＴ２、カードＣ１１が装着されたスロットＰＣＩＳＬＴ２１、カードＣ２２が装着されたＰＣＩＳＬＴ２２およびスイッチＳＷを有する。カードＣ１１、Ｃ１２、Ｃ２１、Ｃ２２は、Ｉ２Ｃ規格のインタフェースおよびＰＣＩｅ規格のインタフェースを有する。カードＣ１１、Ｃ１２、Ｃ２１、Ｃ２２は、第２装置の一例である。
【００３９】
ＣＰＵ０、メモリアクセスコントローラＭＡＣ、ルートコンプレックスＰＣＩＲＣおよびスロットＰＣＩＳＬＴ００のそれぞれには、バスＩ２ＣＢ０を用いたアクセスに使用されるアドレス（０ｘ１０、０ｘ２０、０ｘ３０、０ｘ４０）が割り当てられる。ここで、アドレス”０ｘ１０”等の”０ｘ”は、”０ｘ”に続く値が１６進数であることを示す。
【００４０】
スロットＰＣＩＳＬＴ０１、ＰＣＩＳＬＴ０２のそれぞれには、バスＩ２ＣＢ０を用いたアクセスに使用される複数のアドレス（０ｘ５０、０ｘ５１、０ｘ５２等または０ｘ６０、０ｘ６１、０ｘ６２等）が割り当てられる。
【００４１】
アドレス”０ｘ５０”は、スロットＰＣＩＳＬＴ０１に搭載されるカードＣＡＲＤ１に含まれるＣＰＵを示す。アドレス”０ｘ５１”は、カードＣＡＲＤ１を介して接続される拡張装置ＥＸ１のスロットＰＣＩＳＬＴ１１を示し、アドレス”０ｘ５２”は、拡張装置ＥＸ１のスロットＰＣＩＳＬＴ１２を示す。
【００４２】
アドレス”０ｘ６０”は、スロットＰＣＩＳＬＴ０２に搭載されるカードＣＡＲＤ２に含まれるＣＰＵを示す。アドレス”０ｘ６１”は、カードＣＡＲＤ２を介して接続される拡張装置ＥＸ２のスロットＰＣＩＳＬＴ２１を示し、アドレス”０ｘ６２”は、拡張装置ＥＸ２のスロットＰＣＩＳＬＴ２２を示す。
【００４３】
例えば、サービスプロセッサＳＰがアドレス”０ｘ５０”を指定してバスＩ２ＣＢ０に出力するアクセス要求は、カードＣＡＲＤ１に搭載されるＣＰＵに対するアクセス要求として扱われる。また、サービスプロセッサＳＰがアドレス”０ｘ５１”を指定してバスＩ２ＣＢ０に出力するアクセス要求は、スロットＰＣＩＳＬＴ１１に装着されたＩ２Ｃデバイス（すなわち、カードＣ１１）に対するアクセス要求として扱われる。
【００４４】
制御装置ＣＮＴ１は、ＣＰＵ１、ＲＯＭ、ＲＡＭおよびインタフェースＮＷＩＦ、Ｉ２ＣＩＦを有する。制御装置ＣＮＴ２は、ＣＰＵ２、ＲＯＭ、ＲＡＭおよびインタフェースＮＷＩＦ、Ｉ２ＣＩＦを有する。制御装置ＣＮＴ１、ＣＮＴ２の機能は、接続されるカードＣＡＲＤ１、ＣＡＲＤ２および搭載されるＩ２Ｃデバイスが異なることを除き、互いに同一または同様のため、以下の説明では、制御装置ＣＮＴ１について説明する。
【００４５】
ＣＰＵ１は、カードＣＡＲＤ１と拡張装置ＥＸ１に搭載されるＩ２Ｃデバイスとの間の通信を制御する。例えば、ＲＯＭは、ＣＰＵ１が実行するプログラムが格納され、ＲＡＭは、ＣＰＵ１で扱うデータを保持する。
【００４６】
インタフェースＩ２ＣＩＦは、バスＩ２ＣＢ１を介してスロットＰＣＩＳＬＴ１１、ＰＣＩＳＬＴ１２に接続され、スロットＰＣＩＳＬＴ１１、ＰＣＩＳＬＴ１２に装着されるカードＣ１１、Ｃ１２にデータを入出力する。例えば、バスＩ２ＣＢ１、Ｉ２ＣＢ２は、Ｉ２Ｃ規格により定められたＩ２Ｃバスであり、第３通信回線の一例である。
【００４７】
インタフェースＮＷＩＦは、例えば、ＬＡＮインタフェースであり、ネットワークＮＷ１を介してカードＣＡＲＤ１に接続され、拡張装置ＥＸ１とカードＣＡＲＤ１との間でデータを入出力する。なお、拡張装置ＥＸ１において、スロットＰＣＩＳＬＴ１１、ＰＣＩＳＬＴ１２のそれぞれには、バスＩ２ＣＢ１を用いた拡張装置ＥＸ１内でのアクセスに使用されるアドレス（０ｘ００、０ｘ０１）が割り当てられる。拡張装置ＥＸ２において、スロットＰＣＩＳＬＴ２１、ＰＣＩＳＬＴ２２のそれぞれには、バスＩ２ＣＢ２を用いた拡張装置ＥＸ２内でのアクセスに使用されるアドレス（０ｘ００、０ｘ０１）が割り当てられる。
【００４８】
拡張装置ＥＸ１のスイッチＳＷは、カードＣＡＲＤ１のスイッチＳＷをスロットＰＣＩＳＬＴ１１、ＰＣＩＳＬＴ１２に装着されるカードＣ１１、Ｃ１２に接続する。同様に、拡張装置ＥＸ２のスイッチＳＷは、カードＣＡＲＤ２のスイッチＳＷをスロットＰＣＩＳＬＴ２１、ＰＣＩＳＬＴ２２に装着されるカードＣ２１、Ｃ２２に接続する。
【００４９】
なお、バスＩ２ＣＢ０、Ｉ２ＣＢ１、Ｉ２ＣＢ２の代わりに、ＳＰＩ（Serial Peripheral Interface；登録商標）のバスが配線されてもよい。
【００５０】
図３は、スロットＰＣＩＳＬＴ０１、ＰＣＩＳＬＴ０２が搭載されるサーバＳＶ内に設けられるプリント基板ＰＴの例を示す。プリント基板ＰＴ上には、コネクタＣＮＣＴと押下スイッチＳＷとが取り付けられる。コネクタＣＮＣＴは、スロットＰＣＩＳＬＴ０１、ＰＣＩＳＬＴ０２のいずれかである。なお、スロットＰＣＩＳＬＴ０１、ＰＣＩＳＬＴ０２には、カードＣＡＲＤ１、ＣＡＲＤ２またはＰＣＩｅ規格で定められた他のカードが装着可能である。
【００５１】
カードＣＡＲＤ１、ＣＡＲＤ２は、ＰＣＩｅ規格で定められた他のカードに比べて、押下スイッチ側に長さＬだけ突出した形状に設計される。図３の上側に示すように、押下スイッチＳＷは、カードＣＡＲＤ１、ＣＡＲＤ２がスロットＰＣＩＳＬＴ０１、ＰＣＩＳＬＴ０２に装着された場合に押下される。図３の下側に示すように、押下スイッチＳＷは、ＰＣＩｅ規格で定められた他のカード（図２のＣ００、Ｃ１１、Ｃ１２、Ｃ２１、Ｃ２２等）がスロットＰＣＩＳＬＴ０１、ＰＣＩＳＬＴ０２に装着された場合に押下されない。押下スイッチＳＷは、コネクタＣＮＣＴに装着されたカードＣＡＲＤ１、ＣＡＲＤ２との接触を検出する検出部の一例である。
【００５２】
サービスプロセッサＳＰは、押下スイッチＳＷの状態を電気的に監視し、スロットＰＣＩＳＬＴ０１、ＰＣＩＳＬＴ０２にカードＣＡＲＤ１、ＣＡＲＤ２が装着されたことを検出する。すなわち、サービスプロセッサＳＰは、拡張装置ＥＸ１または拡張装置ＥＸ２がサーバＳＶに接続されたことを検出する。例えば、サービスプロセッサＳＰは、情報処理装置ＩＰＥ２のパワーオン時に、押下スイッチＳＷの状態を検出することで、カードＣＡＲＤ１、ＣＡＲＤ２がスロットＰＣＩＳＬＴ０１、ＰＣＩＳＬＴ０２に装着されたことを検出する。そして、サービスプロセッサＳＰは、カードＣＡＲＤ１、ＣＡＲＤ２の装着を検出した場合、パワーオンシーケンス等の中で、図５および図６で説明する応答時間の測定処理を実行する。一方、サービスプロセッサＳＰは、ＰＣＩｅ規格で定められた他のカードがスロットＰＣＩＳＬＴ０１、ＰＣＩＳＬＴ０２に装着された場合、図５および図６で説明する応答時間の測定処理を実行しない。
【００５３】
このように、各カードＣＡＲＤ１、ＣＡＲＤ２が各スロットＰＣＩＳＬＴ０１、ＰＣＩＳＬＴ０２に装着されたことを検出する押下スイッチＳＷを、サーバＳＶ内のプリント基板ＰＴに設けることで、拡張装置ＥＸ１、ＥＸ２の増設を検出することができる。そして、サービスプロセッサＳＰは、各拡張装置ＥＸ１、ＥＸ２の増設が検出された場合に、拡張装置ＥＸ１、ＥＸ２毎に応答時間および図５で説明するリトライ時間を求めることができる。また、コネクタＣＮＣＴは、スロットＰＣＩＳＬＴ０１、ＰＣＩＳＬＴ０２を、例えば、ＰＣＩｅカードが装着されるスロットとして共用することができる。
【００５４】
図４は、ＩＣ２バスを用いたリード動作およびライト動作のタイミング仕様の例を示す。クロックＳＣＬは、マスタが出力し、データＳＤＡは、マスタまたはスレーブが出力する。データＳＤＡは、クロックＳＣＬのロウレベル期間に遷移させる。マスタは、リード動作またはライト動作を開始する場合、クロックＳＣＬがハイレベルの状態で、データＳＤＡをハイレベルからロウレベルに変化させる（スタートコマンドＳ；Start Condition）。マスタは、リード動作またはライト動作を終了する場合、クロックＳＣＬがハイレベルの状態で、データＳＤＡをロウレベルからハイレベルに変化させる（ストップコマンドＰ；Stop Condition）。
【００５５】
例えば、マスタは、図２に示すサービスプロセッサＳＰであり、スレーブは、図２に示すＣＰＵ０、メモリアクセスコントローラＭＡＣ、ルートコンプレックスＰＣＩＲＣ、カードＣ００およびカードＣＡＲＤ１、ＣＡＲＤ２に搭載されるＣＰＵである。あるいは、マスタは、拡張装置ＥＸ１に搭載されるＣＰＵ１および拡張装置ＥＸ２に搭載されるＣＰＵ２であり、スレーブは、カードＣ１１、Ｃ１２およびカードＣ２１、Ｃ２２である。
【００５６】
リード動作では、スタートコマンドＳの後、マスタは、クロックＳＣＬに同期して８ビットＤ０−Ｄ７のリード要求を、データＳＤＡとしてＩ２Ｃバスに出力する（図４（ａ））。ビットＤ０−Ｄ６は、データを読み出すＩ２Ｃデバイスに割り当てられたアドレスであるＩ２Ｃアドレスを示し、ビットＤ７（ハイレベル）は、リード要求であることを示す。
【００５７】
リード要求に含まれるＩ２Ｃアドレスが割り当てられたＩ２Ｃデバイスは、リード要求に応答してＡＣＫ（ACKnowledge；ロウレベル）をＩ２Ｃバスに出力し（図４（ｂ））、ＡＣＫに続いて１バイトのリードデータＤ０−Ｄ７をＩ２Ｃバスに出力する（図４（ｃ））。マスタは、ＩＣ２バスを介してＡＣＫおよびリードデータＤ０−Ｄ７を受信する。マスタは、全てのリードデータを受信していない場合、ＡＣＫをＩ２Ｃバスに出力する（図４（ｄ））。Ｉ２Ｃデバイスは、ＡＣＫに応答して次のリードデータＤ０−Ｄ７をＩ２Ｃバスに出力する（図４（ｅ））。マスタは、全てのリードデータを受信した場合、ＮＡＣＫ（Not ACKnowledge；ハイレベル）をＩ２Ｃバスに出力する（図４（ｆ））。Ｉ２Ｃデバイスは、ＮＡＣＫに基づいて、リード動作の完了を認識する。マスタは、ＮＡＣＫを出力した後、ストップコマンドＰをＩ２Ｃバスに出力し、リード動作を終了する（図４（ｇ））。
【００５８】
ライト動作では、スタートコマンドＳの後、マスタは、クロックＳＣＬに同期して８ビットＤ０−Ｄ７のライト要求を、データＳＤＡとしてＩ２Ｃバスに出力する（図４（ｈ））。ビットＤ０−Ｄ６は、データを書き込むＩ２Ｃデバイスに割り当てられたＩ２Ｃアドレスを示し、ビットＤ７（ロウレベル）は、ライト要求であることを示す。
【００５９】
ライト要求に含まれるＩ２Ｃアドレスが割り当てられたＩ２Ｃデバイスは、ライト要求に応答してＡＣＫをＩ２Ｃバスに出力する（図４（ｉ））。マスタは、ＡＣＫの受信に基づいて１バイトのライトデータＤ０−Ｄ７をＩ２Ｃバスに出力する（図４（ｊ）、（ｋ））。Ｉ２Ｃデバイスは、ライトデータＤ０−Ｄ７を受信した後、ＡＣＫをＩ２Ｃバスに出力する（図４（ｌ）、（ｍ））。マスタは、ライトデータの出力が完了した後、Ｉ２ＣデバイスからのＡＣＫに基づいてストップコマンドＰをＩ２Ｃバスに出力し、ライト動作を終了する（図４（ｎ））。
【００６０】
図５は、図２に示すカードＣＡＲＤ１と拡張装置ＥＸ１との間の応答時間を測定するシーケンスの例を示す。例えば、応答時間の測定は、情報処理装置ＩＰＥ２のパワーオンシーケンスにおいて、カードＣＡＲＤ１がサービスプロセッサＳＰからの指示に基づいて実行する。
【００６１】
カードＣＡＲＤ１と拡張装置ＥＸ１との間の応答時間は、サーバＳＶと拡張装置ＥＸ１との距離（ネットワークＮＷ１のケーブル長）、および拡張装置ＥＸ１のクロック周波数等によって変化する。同様に、カードＣＡＲＤ２と拡張装置ＥＸ２との間の応答時間は、サーバＳＶと拡張装置ＥＸ２との距離（ネットワークＮＷ２のケーブル長）、および拡張装置ＥＸ２のクロック周波数等によって変化する。このため、応答時間は、実測により求められることが望ましい。例えば、サービスプロセッサＳＰは、測定された応答時間に基づいて、図９および図１０に示すリトライ時間を設定し、拡張装置ＥＸ１内のＩ２Ｃデバイスにアクセスする場合のタイムアウトを判定する。
【００６２】
カードＣＡＲＤ２と拡張装置ＥＸ２との間の応答時間の測定は、サービスプロセッサＳＰがリード要求をカードＣＡＲＤ２に送信することを除き、図５と同様に実行される。このため、以下では、カードＣＡＲＤ１と拡張装置ＥＸ１との間の応答時間を測定するシーケンスが説明され、カードＣＡＲＤ２と拡張装置ＥＸ２との間の応答時間を測定するシーケンスの説明は省略される。
【００６３】
まず、サービスプロセッサＳＰは、カードＣＡＲＤ１に搭載されるＣＰＵ（Ｉ２Ｃアドレス＝０ｘ５０）に対するリード要求をバスＩ２ＣＢ０に出力する（図５（ａ））。ＣＰＵは、リード要求に含まれるＩ２Ｃアドレス（０ｘ５０）に基づいて、リード要求が自身に対するものであると認識する。なお、サービスプロセッサＳＰからＣＰＵへのリード要求は、応答時間の測定状態を監視する監視要求であり、第３コマンドの一例である。ＣＰＵは、最初のリード要求の受信時に、応答時間の測定を開始していないため、”未測定”を示す情報を、ＡＣＫとともにサービスプロセッサＳＰに返す（図５（ｂ））。
【００６４】
サービスプロセッサＳＰは、”未測定”の受信により、ＣＰＵが応答時間の測定を実行していないことを確認し、バスＩ２ＣＢ０を介してＣＰＵにデータ０ｘ０１のライト要求を送信する（図５（ｃ））。ＣＰＵに対するライト要求は、カードＣＡＲＤ１と拡張装置ＥＸ１との間の通信における応答時間の測定を指示する第１コマンドの一例である。
【００６５】
ＣＰＵは、データ０ｘ０１をライトデータとするライト要求を、応答時間の測定を開始するコマンドとして認識し、ライト要求に基づいて、ネットワークＮＷを介して拡張装置ＥＸ１に搭載されるＣＰＵ１に疎通確認コマンドを送信する（図５（ｄ））。疎通確認コマンドは、拡張装置ＥＸ１に疎通状態を確認する第２コマンドの一例である。カードＣＡＲＤ１に搭載されるＣＰＵは、疎通確認コマンドを送信した時刻と、疎通確認コマンドに含まれる識別番号とを、ＲＡＭまたは内蔵するレジスタに記憶する。疎通確認コマンドのフォーマットの例は、図１３に示される。
【００６６】
サービスプロセッサＳＰは、測定開始コマンドの送信後、バスＩ２ＣＢ０を介してＣＰＵにリード要求（応答時間の測定状態の監視要求）を送信する（図５（ｅ））。ＣＰＵは、応答時間の測定中のため、”測定中”を示す情報を、バスＩ２ＣＢ０を介してサービスプロセッサＳＰに返す（図５（ｆ））。
【００６７】
拡張装置ＥＸ１に搭載されるＣＰＵ１は、疎通確認コマンドに応答して、疎通確認コマンドともに受信した識別番号を含む疎通応答コマンドを、ネットワークＮＷを介してカードＣＡＲＤ１に搭載されるＣＰＵに返す（図５（ｇ））。疎通応答コマンドのフォーマットの例は、図１４に示される。ＣＰＵは、疎通応答コマンドの受信時刻と受信した識別番号とをＲＡＭまたは内蔵するレジスタに記憶する。
【００６８】
この例では、ＣＰＵは、疎通確認コマンドを２回送信し、拡張装置ＥＸ１に搭載されるＣＰＵ１からの応答時間を２回測定する。このため、ＣＰＵは、疎通応答コマンドを受信した後、２回目の疎通確認コマンドを、ネットワークＮＷを介してＣＰＵ１に送信する（図５（ｈ））。ＣＰＵは、２回目の疎通確認コマンドを送信した時刻と、２回目の疎通確認コマンドを識別する識別番号とを、ＲＡＭまたは内蔵するレジスタに記憶する。なお、識別番号は、疎通確認コマンド毎に変更される。カードＣＡＲＤ１に搭載されるＣＰＵは、疎通確認コマンドを１回送信してもよく、３回以上送信してもよい。
【００６９】
一方、サービスプロセッサＳＰは、所定の時間間隔を置いて、バスＩ２ＣＢ０を介してＣＰＵにリード要求（応答時間の測定状態の監視要求）を送信する（図５（ｉ））。ＣＰＵは、応答時間の測定中のため、”測定中”を示す情報を、バスＩ２ＣＢ０を介してサービスプロセッサＳＰに返す（図５（ｊ））。
【００７０】
ＣＰＵ１は、２回目の疎通確認コマンドに応答して、２回目の疎通確認コマンドにともに受信した識別番号を含む疎通応答コマンドを、ネットワークＮＷを介してＣＰＵに返す（図５（ｋ））。ＣＰＵは、２回目の疎通応答コマンドの受信時刻と受信した識別番号とをＲＡＭまたは内蔵するレジスタに記憶する。
【００７１】
ＣＰＵは、ＲＡＭまたは内蔵するレジスタにアクセスして、識別番号が同じ送信時刻と受信時刻とのペアを検索し、各ペアにおいて、送信時刻と受信時刻との差を応答時間として求める。各識別番号に対応して求められる応答時間は、拡張装置ＥＸ１に疎通確認コマンドを出力してから、拡張装置ＥＸ１から疎通応答コマンドを受信するまでの時間である。
【００７２】
なお、ネットワークＮＷ１の一時的な障害等により、ＣＰＵが疎通応答コマンドを受信しない場合、識別番号が同じ送信時刻と受信時刻とのペアは存在しない。ＣＰＵは、疎通応答コマンドを受信しない場合、これまでに送信した識別番号と異なる識別番号を用いて疎通応答コマンドを再送信してもよい。
【００７３】
そして、ＣＰＵは、例えば、求めた複数の応答時間のうち最も長い応答時間を選択する。なお、ＣＰＵは、求めた複数の応答時間の平均値を、サービスプロセッサＳＰに出力する応答時間としてもよい。例えば、ＣＰＵが、１回の疎通確認コマンドをＣＰＵ１に送信し、応答時間を１回求める場合、求めた応答時間が選択される。
【００７４】
サービスプロセッサＳＰは、所定の時間間隔を置いて、バスＩ２ＣＢ０を介してＣＰＵにリード要求（応答時間の測定状態の監視要求）を送信する（図５（ｌ））。応答時間の測定が終了しているため、ＣＰＵは、選択した応答時間（例えば、最大値）を示す情報を、バスＩ２ＣＢ０を介してサービスプロセッサＳＰに返す（図５（ｍ））。
【００７５】
サービスプロセッサＳＰは、ＣＰＵから受信した応答時間に、拡張装置ＥＸ１内でのＩ２Ｃデバイスの応答時間（例えば、最大値）を加え、図９および図１０に示すリード要求のリトライ時間を決定する。例えば、拡張装置ＥＸ１内でのＩ２Ｃデバイスの応答時間の最大値は、ＣＰＵ１がバスＩ２ＣＢ１にリード要求を送信してから、Ｉ２Ｃデバイスから最大のデータ長を有するデータの最終データを受信するまでの時間である。なお、Ｉ２Ｃデバイスの応答時間の最大値は、拡張装置ＥＸ１、ＥＸ２のクロック周波数に依存して変化する。
【００７６】
図６は、図２に示すカードＣＡＲＤ１と拡張装置ＥＸ１との間の応答時間を測定する別の例を示す。図５と同じ動作については、図５と同じ符号を付し、詳細な説明は省略する。
【００７７】
図６では、カードＣＡＲＤ１に搭載されるＣＰＵは、疎通確認コマンドを拡張装置ＥＸ１に搭載されるＣＰＵ１に送信した後、所定時間の間に、ＣＰＵ１から疎通応答コマンドを受信しない。この場合、ＣＰＵは、例えば、カードＣＡＲＤ１と拡張装置ＥＸ１との間の通信経路の故障を判断する（図６（ｎ））。
【００７８】
ＣＰＵは、通信経路の故障を判断した後、サービスプロセッサＳＰからリード要求（応答時間の測定状態の監視要求）を受信した場合、”測定失敗”を示す情報を、バスＩ２ＣＢ０を介してサービスプロセッサＳＰに送信する（図６（ｏ））。サービスプロセッサＳＰは、”測定失敗”を示す情報の受信に基づいて、カードＣＡＲＤ１と拡張装置ＥＸ１との間の通信経路の故障を判断する。
【００７９】
図７は、図５および図６に示すシーケンスにおいて、カードＣＡＲＤ１に搭載されるＣＰＵがリード要求（応答時間の測定状態の監視要求）に応答してサービスプロセッサＳＰに返す情報の例を示す。例えば、リード要求に対する応答は、８バイトのデータで示される。
【００８０】
ＣＰＵは、応答時間を測定していない場合、未測定を示す”０ｘｆｆｆｆｆｆｆｆｆｆｆｆｆｆｆｆ”をサービスプロセッサＳＰに返す。ＣＰＵは、応答時間の測定中の場合、測定中を示す”０ｘｆｆｆｆｆｆｆｆｆｆｆｆｆｆｆｅ”をサービスプロセッサＳＰに返す。ＣＰＵは、カードＣＡＲＤ１と拡張装置ＥＸ１との間の通信経路の故障等により、応答時間の測定に失敗した場合、測定失敗を示す”０ｘｆｆｆｆｆｆｆｆｆｆｆｆｆｆｆｄ”をサービスプロセッサＳＰに返す。ＣＰＵは、応答時間の測定が完了した場合、応答時間を示す”０ｘ７ｆｆｆｆｆｆｆｆｆｆｆｆｆｆｆ”から”０ｘ００００００００００００００００”のいずれかの値をサービスプロセッサＳＰに返す。例えば、応答時間は、ナノ秒（ｎｓ）で示される。
【００８１】
図８は、図２に示すカードＣＡＲＤ１に搭載されるＲＡＭ内のキャッシュＣＡＣＨＥの割り当ての例を示す。図２に示すカードＣＡＲＤ２に搭載されるＲＡＭ内のキャッシュＣＡＣＨＥの割り当ては、図８と同じである。
【００８２】
キャッシュＣＡＣＨＥは、拡張装置ＥＸ１に搭載可能な１２８個のＩ２Ｃデバイス毎に２５６バイトの記憶領域を有する。例えば、１２８個のＩ２Ｃデバイスに割り当てられる記憶領域の先頭アドレスは、Ｉ２ＣデバイスのＩ２Ｃアドレス（０ｘ００から０ｘ７ｆ）から求められる（Ｉ２Ｃアドレスの０ｘ１００倍）。
【００８３】
各記憶領域は、ステータスが格納される１バイトのステータス領域と、データ長が格納される１バイトのデータ長領域と、リードデータが格納される２５４バイトのデータ領域とを有する。ステータス領域の”０”は、カードＣＡＲＤ１から拡張装置ＥＸ１へのリード要求が未送信であることを示し、データ領域に格納されたデータが無効であることを示す。ステータス領域の”１”は、カードＣＡＲＤ１から拡張装置ＥＸ１へリード要求が送信され、データの受信待ちであることを示し、データ領域に格納されたデータが無効であることを示す。ステータス領域の”２”は、拡張装置ＥＸ１からのデータを受信済みであることを示し、データ領域に格納されたデータが有効であることを示す。
【００８４】
データ長領域は、データ領域に格納された有効なデータのバイト数を保持する。キャッシュＣＡＣＨＥの内容は、図９で説明するように、カードＣＡＲＤ１に搭載されるＣＰＵにより更新される。
【００８５】
図９は、図２に示す拡張装置ＥＸ１内のＩ２Ｃデバイスからデータを読み出すシーケンスの例を示す。拡張装置ＥＸ２内のＩ２Ｃデバイスからデータを読み出すシーケンスは、図９と同一または同様であるため、説明は省略する。
【００８６】
まず、サービスプロセッサＳＰは、バスＩ２ＣＢ０を介してカードＣＡＲＤ１に搭載されるＣＰＵに、拡張装置ＥＸ１内におけるデータを読み出すＩ２Ｃデバイスに対する最初のリード要求を送信する（図９（ａ））。リード要求は、第１アクセス要求の一例である。ＣＰＵは、キャッシュＣＡＣＨＥにおけるデータを読み出すＩ２Ｃデバイスに対応する記憶領域に有効なデータが格納されていないことをチェックし、サービスプロセッサＳＰにＮＡＣＫを返す（図９（ｂ））。例えば、ＣＰＵは、図２に示すスロットＰＣＩＳＬＴ１１に装着されたＩ２Ｃデバイス（アドレス０ｘ００）に対するリード要求を受信した場合、図８に示すキャッシュＣＡＣＨＥのアドレス”０ｘ００００”のステータスをチェックする。
【００８７】
キャッシュＣＡＣＨＥに有効なデータが格納されていないため、ＣＰＵは、ネットワークＮＷを介して拡張装置ＥＸ１に搭載されるＣＰＵ１にリード要求コマンドを送信する（図９（ｃ））。リード要求コマンドは、第２アクセス要求の一例である。ＣＰＵは、リード要求コマンドを送信後、リード要求コマンドの送信先のＩ２Ｃデバイス用に割り当てられたキャッシュＣＡＣＨＥのステータスを”１”（データ受信待ち）に書き替える。
【００８８】
サービスプロセッサＳＰは、所定の時間間隔でリード要求を出力し、ＣＰＵは、ＣＰＵ１を介して拡張装置ＥＸ１内のＩ２Ｃデバイスからのリードデータを受信するまで、リード要求に応答してＮＡＣＫを返す（図９（ｄ）、（ｅ）、（ｆ）、（ｇ））。なお、ＣＰＵは、キャッシュＣＡＣＨＥのステータスを”データ受信待ち”に設定した後にリード要求を受信した場合、リード要求に応答するリード要求コマンドを送信しない。
【００８９】
ＣＰＵ１は、ＣＰＵからのリード要求コマンドに基づいて、バスＩ２ＣＢ１を介してＩ２Ｃデバイスにリード要求を送信する（図９（ｈ））。Ｉ２Ｃデバイスに対するバスＩ２ＣＢ１へのリード要求は、第３アクセス要求の一例である。リード要求を受信したＩ２Ｃデバイスは、バスＩ２ＣＢ１を介してＣＰＵ１にＡＣＫとリードデータとを送信する（図９（ｉ））。なお、複数バイトのリードデータがＩ２Ｃデバイスから出力される場合、図４に示すように、ＣＰＵ１からのＡＣＫとＩ２Ｃデバイスからのリードデータとが繰り返し送受信される。
【００９０】
ＣＰＵ１は、Ｉ２Ｃデバイスから受信したリードデータをリードデータ送信コマンドとして、ネットワークＮＷを介してＣＰＵに送信する（図９（ｊ））。ＣＰＵは、ＣＰＵ１から受信したリードデータを、キャッシュＣＡＣＨＥにおけるリードデータを読み出したＩ２Ｃデバイスに対応する記憶領域に格納する（図９（ｋ））。また、ＣＰＵは、キャッシュＣＡＣＨＥにおけるリードデータを読み出したＩ２Ｃデバイスに対応するステータスを”２”（データ受信済み）に変更する。
【００９１】
ＣＰＵは、キャッシュＣＡＣＨＥにリードデータを格納した後に受信するサービスプロセッサＳＰからのリード要求に基づいて、ＡＣＫとキャッシュＣＡＣＨＥに格納したリードデータを、バスＩ２ＣＢ０を介してサービスプロセッサＳＰに送信する（図９（ｌ））。サービスプロセッサＳＰは、リトライ時間内に拡張装置ＥＸ１内のＩ２Ｃデバイスからリードデータを受信するため、リード処理は正常に終了する。
【００９２】
このように、サービスプロセッサＳＰとＩ２Ｃデバイス（例えば、カードＣ１１）とが、バスＩ２ＣＢ０のタイミング仕様を満足しない距離を置いて配置される場合にも、サービスプロセッサＳＰは、Ｉ２Ｃデバイスからのリードデータを受信することができる。すなわち、ＣＰＵは、リード要求コマンドのＣＰＵ１への出力と、リードデータのサービスプロセッサＳＰへの出力とを、互いに異なるタイミングで受信するリード要求のそれぞれに応答して実行する。これにより、サービスプロセッサＳＰは、バスＩ２ＣＢ０のタイミング仕様にしたがって、拡張装置ＥＸ１、ＥＸ２内のＩ２Ｃデバイスからリードデータを受信することができる。
【００９３】
また、サーバＳＶの外部にＩ２Ｃデバイスを増設する場合にも、サービスプロセッサＳＰおよびＩ２Ｃデバイスを再設計することなく、サービスプロセッサＳＰは、バスＩ２ＣＢ０のタイミング仕様にしたがってＩ２Ｃデバイスにアクセスできる。換言すれば、サーバＳＶのスロットが足りない場合に、拡張装置ＥＸ１、ＥＸ２によりＩ２Ｃデバイスを増設することが可能になり、サービスプロセッサＳＰは、誤動作することなく、増設したＩ２Ｃデバイスにアクセスすることができる。
【００９４】
ＣＰＵは、サービスプロセッサＳＰにリードデータを送信した後、リードデータを読み出したキャッシュＣＡＣＨＥの記憶領域のステータスを”０”（リード要求未送信）に設定し、対応する記憶領域に格納されたリードデータを無効にする（図９（ｍ））。これにより、他のリードデータを読み出す次のリード要求に応答して、有効なリードデータをキャッシュＣＡＣＨＥに保持しているとＣＰＵが誤認識することを抑止することができる。この結果、誤ったリードデータをサービスプロセッサＳＰに出力するなどの誤動作を抑止することができる。
【００９５】
図１０は、図２に示す拡張装置ＥＸ１内のＩ２Ｃデバイスからデータを読み出すシーケンスの別の例を示す。拡張装置ＥＸ２内のＩ２Ｃデバイスからデータを読み出すシーケンスは、図１０と同一または同様であるため、説明は省略する。
【００９６】
図１０は、カードＣＡＲＤ１に搭載されたインタフェースＮＷＩＦ、ネットワークＮＷ１、拡張装置ＥＸ１内のインタフェースＮＷＩＦ、Ｉ２ＣＩＦ、バスＩ２ＣＢ１またはＩ２Ｃデバイスに故障が発生した場合の例を示す。カードＣＡＲＤ１に搭載されるＣＰＵは、故障の発生によりリードデータを受信しない。このため、サービスプロセッサＳＰとＣＰＵとの間では、リード要求とＮＡＣＫの応答とが繰り返される（図１０（ａ）、（ｂ）、（ｃ）、（ｄ）、（ｅ）、（ｆ））。
【００９７】
サービスプロセッサＳＰは、リトライ時間内にリードデータを受信しない場合、カードＣＡＲＤ、ネットワークＮＷ１または拡張装置ＥＸ１に故障が発生したと判断し、タイムアウト処理を実行する（図１０（ｇ））。すなわち、サービスプロセッサＳＰは、最初のリード要求を出力してから所定時間内にカードＣＡＲＤ１からデータを受信しない場合、拡張装置ＥＸ１内のＩ２Ｃデバイスからのリードデータの読み出しエラーを検出する。これにより、リードデータを受信するまでサービスプロセッサＳＰがリード要求を繰り返し出力する無限ループに陥ることはなく、例えば、サービスプロセッサＳＰがハングアップすることを抑止することができる。
【００９８】
リトライ時間は、拡張装置ＥＸ１、ＥＸ２毎に、ＣＰＵが疎通確認コマンドを出力することにより求めた応答時間に基づいて決定される。これにより、ネットワークＮＷ１、ＮＷ２のケーブル長等に応じて、拡張装置ＥＸ１、ＥＸ２毎にリトライ時間を設定することができる。例えば、ネットワークＮＷ１、ＮＷ２のケーブル長等に依存させず、固定のリトライ時間が設定される場合、リトライ時間は、例えば、ネットワークＮＷ１、ＮＷ２の最大のケーブル長に応じて決定される。この場合、サービスプロセッサＳＰが拡張装置ＥＸ１、ＥＸ２内のＩ２Ｃデバイス等の故障を判定するまでの時間は、ワークＮＷ１、ＮＷ２のケーブル長等に応じてリトライ時間を設定する場合に比べて長くなる。この結果、サービスプロセッサＳＰによるサーバＳＶおよび拡張装置ＥＸ１、ＥＸ２の管理の効率は低下する。
【００９９】
サービスプロセッサＳＰからＣＰＵ（Ｉ２Ｃアドレス＝０ｘ５０または０ｘ６０）へのリード要求は、応答時間の測定状態の監視要求として定義され、サービスプロセッサＳＰからＣＰＵへのライト要求は、応答時間の測定を開始するコマンドとして定義される。これにより、リード要求とライト要求とが発行されるバスＩ２ＣＢ０の仕様に合わせて、応答時間およびリトライ時間を求めることができる。
【０１００】
図１１は、図９に示すシーケンスにおける情報の流れを示す。図１１に示す符号（ａ）、（ｂ）、（ｃ）、（ｄ）、（ｅ）、（ｆ）、（ｇ）、（ｈ）、（ｉ）、（ｊ）、（ｌ）は、図９に示す符号の処理と同じ処理を示す。
【０１０１】
図１２は、図２に示す拡張装置ＥＸ１内のＩ２Ｃデバイスにデータを書き込むシーケンスの例を示す。拡張装置ＥＸ２内のＩ２Ｃデバイスにデータを書き込むシーケンスは、図１２と同一または同様であるため、説明は省略する。
【０１０２】
まず、サービスプロセッサＳＰは、拡張装置ＥＸ１内のデータを書き込むＩ２Ｃデバイスに対するライト要求をバスＩ２ＣＢ０に出力する（図１２（ａ））。例えば、図２に示すスロットＰＣＩＳＬＴ１１に装着されたＩ２Ｃデバイスにデータを書き込む場合、サービスプロセッサＳＰは、ライト要求に含まれるＩ２Ｃアドレスを”０ｘ５１”に設定する。カードＣＡＲＤ１に搭載されたＣＰＵは、ライト要求に含まれる”０ｘ５１”に基づいて、スロットＰＣＩＳＬＴ１１（Ｉ２Ｃアドレス＝０ｘ０１）に装着されたＩ２Ｃデバイスに対するライト要求を認識する。例えば、ＣＰＵは、ＲＯＭまたはＲＡＭに記憶されたＩ２Ｃアドレスの変換テーブルに基づいて、サービスプロセッサＳＰから受信したＩ２Ｃアドレス（０ｘ５１）を、拡張装置ＥＸ１内に割り当てられたＩ２Ｃアドレス（０ｘ０１）に変換する。
【０１０３】
ＣＰＵは、ライト要求に応答して、サービスプロセッサＳＰにＡＣＫを返す（図１２（ｂ））。サービスプロセッサＳＰは、ＡＣＫに応答してライトデータをバスＩ２ＣＢ０に出力し、ＣＰＵは、ライトデータを受信する（図１２（ｃ））。この後、サービスプロセッサＳＰは、ＡＣＫの受信とライトデータの送信とを繰り返し、ＣＰＵは、ＡＣＫの送信とライトデータの受信とを繰り返す（図１２（ｄ）、（ｅ）、（ｆ）)。例えば、ＣＰＵは、受信したライトデータをＲＡＭに保持する。サービスプロセッサＳＰは、最終のライトデータに対応するＡＣＫを受信した後、ストップコマンドＰをバスＩ２ＣＢ０に出力する（図１２（ｇ））。
【０１０４】
ＣＰＵは、ストップコマンドＰに基づいて、全てのライトデータを受信したことを認識する。ＣＰＵは、受信したライトデータのデータ長を求める。そして、ＣＰＵは、データを書き込むＩ２ＣデバイスのＩ２Ｃアドレス（例えば、０ｘ０１）、データ長およびＲＡＭに保持したライトデータを含むライト要求コマンドを、ネットワークＮＷを介して拡張装置ＥＸ１に搭載されるＣＰＵ１に送信する（図１２（ｈ））。
【０１０５】
拡張装置ＥＸ１に搭載されたＣＰＵ１は、ライト要求コマンドに含まれるライトデータをＲＡＭ等に保持する。ＣＰＵ１は、ライト要求コマンドに基づいて、データを書き込むＩ２Ｃデバイス（Ｉ２Ｃアドレス＝０ｘ０１）に対するライト要求をバスＩ２ＣＢ１に出力する（図１２（ｉ））。データを書き込むＩ２Ｃデバイスは、ライト要求に含まれるＩ２Ｃアドレスが自身を示すため、ライト要求に応答して、ＣＰＵ１にＡＣＫを返す（図１２（ｊ））。
【０１０６】
ＣＰＵ１は、ＡＣＫに応答して、ＲＡＭ等に保持したライトデータ（１バイト）をバスＩ２ＣＢ１に出力し、データを書き込むＩ２Ｃデバイスは、ライトデータを受信する（図１２（ｋ））。この後、ＣＰＵ１は、ＡＣＫの受信とライトデータ（１バイト）の送信を繰り返し、データを書き込むＩ２Ｃデバイスは、ＡＣＫの送信とライトデータの受信とを繰り返す（図１２（ｌ）、（ｍ）、（ｎ）)。ＣＰＵ１は、最終のライトデータに対応するＡＣＫを受信した後、ストップコマンドＰ（Stop Condition）をバスＩ２ＣＢ１に出力する（図１２（ｏ））。そして、サービスプロセッサＳＰから拡張装置ＥＸ１内のＩ２Ｃデバイスへのデータの書き込みシーケンスが終了する。
【０１０７】
図１３は、図９に示すリード要求コマンド、図１２に示すライト要求コマンドおよび図５に示す疎通確認コマンドのフォーマットの例を示す。リード要求コマンド、ライト要求コマンドおよび疎通確認コマンドは、カードＣＡＲＤ１に搭載されるＣＰＵがネットワークＮＷ１を介して拡張装置ＥＸ１に搭載されるＣＰＵ１に出力するコマンドである。
【０１０８】
リード要求コマンドの１バイト目には、コマンドコード（０ｘ０１）が格納される。リード要求コマンドの２バイト目の上位７ビットには、データを読み出すＩ２Ｃデバイスに割り当てたＩ２Ｃアドレスが格納され、２バイト目の最下位ビットには、リードを示す論理１（ハイレベル）が格納される。
【０１０９】
ライト要求コマンドの１バイト目には、コマンドコード（０ｘ０２）が格納される。ライト要求コマンドの２バイト目の上位７ビットには、データを書き込むＩ２Ｃデバイスに割り当てたＩ２Ｃアドレスが格納され、２バイト目の最下位ビットには、ライトを示す論理０（ロウレベル）が格納される。ライト要求コマンドの３バイト目には、ライトデータのデータ長（１から２５４のいずれか）が格納され、４バイト目以降には、ライトデータ（最大２５４バイト）が格納される。
【０１１０】
疎通確認コマンドの１バイト目には、コマンドコード（０ｘ１０）が格納される。疎通確認コマンドの２バイト目には、識別番号が格納される。
【０１１１】
図１４は、図９に示すリードデータ送信コマンドおよび図５に示す疎通応答コマンドのフォーマットの例を示す。リードデータ送信コマンドおよび疎通応答コマンドは、ＣＰＵ１がネットワークＮＷ１を介してＣＰＵに出力するコマンドである。
【０１１２】
リードデータ送信コマンドの１バイト目には、コマンドコード（０ｘ０３）が格納される。リードデータ送信コマンドの２バイト目の上位７ビットには、データを読み出すＩ２Ｃデバイスに割り当てたＩ２Ｃアドレスが格納され、２バイト目の最下位ビットには、ＣＰＵへのライトを示す論理０（ロウレベル）が格納される。リードデータ送信コマンドの３バイト目には、リードデータのデータ長（１から２５４のいずれか）が格納され、４バイト目以降には、ＣＰＵに出力するリードデータ（最大２５４バイト）が格納される。
【０１１３】
疎通応答コマンドの１バイト目には、コマンドコード（０ｘ１１）が格納される。疎通応答コマンドの２バイト目には、識別番号が格納される。
【０１１４】
図１５は、図２に示すサービスプロセッサＳＰによるリード処理の例を示す。図１５に示すフローは、サービスプロセッサＳＰがプログラムを実行することにより実現される。図１５は、情報処理装置の制御方法の例を示す。
【０１１５】
まず、サービスプロセッサＳＰは、ステップＳ１００において、データをリードするＩ２ＣデバイスがサーバＳＶ内にあるか拡張装置ＥＸ１、ＥＸ２内にあるかを判断する。サーバＳＶ内のＩ２Ｃデバイスからデータをリードする場合、処理はステップＳ１０２に移行される。拡張装置ＥＸ１、ＥＸ２内にあるＩ２Ｃデバイスからデータをリードする場合、処理はステップＳ１０８に移行される。
【０１１６】
ステップＳ１０２において、サービスプロセッサＳＰは、サーバＳＶ内のＩ２Ｃデバイスに割り当てられたＩ２Ｃアドレスを含むリード要求をバスＩ２ＣＢ０に出力する。次に、ステップＳ１０４において、サービスプロセッサＳＰは、Ｉ２ＣデバイスからのＡＣＫがあるか否かを判定する。ＡＣＫを受信した場合、処理はステップＳ１０６に移行される。ＡＣＫを受信しない場合（すなわち、ＮＡＣＫを受信）、サービスプロセッサＳＰは、Ｉ２Ｃデバイスが異常であると判断し、リード処理を終了する。
【０１１７】
ステップＳ１０６において、サービスプロセッサＳＰは、ＡＣＫの受信に引き続き、バスＩ２ＣＢ０を介してリードデータを受信し、リード処理を終了する。なお、複数バイトのデータをリードする場合、ステップＳ１０４、Ｓ１０６が繰り返し実行される。
【０１１８】
一方、拡張装置ＥＸ１、ＥＸ２内にあるＩ２Ｃデバイスからデータをリードする場合、ステップＳ１０８において、サービスプロセッサＳＰは、Ｉ２Ｃデバイスに割り当てられたＩ２Ｃアドレス（例えば、０ｘ５１）を含むリード要求をバスＩ２ＣＢ０に出力する。リード要求は、カードＣＡＲＤ１またはカードＣＡＲＤ２に搭載されるＣＰＵにより受信される。
【０１１９】
次に、ステップＳ１１０において、サービスプロセッサＳＰは、ＡＣＫがあるか否かを判定する。なお、ＡＣＫおよびＮＡＣＫは、図９に示すように、カードＣＡＲＤ１またはカードＣＡＲＤ２に搭載されるＣＰＵが出力する。ＡＣＫを受信した場合、処理はステップＳ１１２に移行され、ＡＣＫを受信しない場合（すなわち、ＮＡＣＫを受信）、処理はステップＳ１１４に移行される。
【０１２０】
ステップＳ１１２において、サービスプロセッサＳＰは、ＡＣＫの受信に引き続き、バスＩ２ＣＢ０を介してＣＰＵが出力するリードデータを受信し、リード処理を終了する。なお、複数バイトのデータをリードする場合、ステップＳ１１０、Ｓ１１２が繰り返し実行される。
【０１２１】
ステップＳ１１４において、サービスプロセッサＳＰは、タイムアウトが発生したか否かを判定する。タイムアウトが発生した場合、すなわち、図１０に示したリトライ時間が経過した場合、サービスプロセッサＳＰは、Ｉ２Ｃデバイスまでの経路またはＩ２Ｃデバイスが異常であると判断し、リード処理を終了する。タイムアウトが発生していない場合、すなわち、リトライ時間が経過していない場合、処理はステップＳ１１６に移行される。
【０１２２】
ステップＳ１１６において、サービスプロセッサＳＰは、所定時間待ち、処理をステップＳ１０８に移行させる。そして、ステップＳ１０８、Ｓ１１０、Ｓ１１４、Ｓ１１６の処理が繰り返し実行される。なお、ステップＳ１０８、Ｓ１１０、Ｓ１１２、Ｓ１１４、Ｓ１１６の処理は、図９および図１０に示すサービスプロセッサＳＰの動作を示す。
【０１２３】
図１６は、図２に示すカードＣＡＲＤ１に搭載されるＣＰＵの動作の例を示す。図１６に示すフローは、カードＣＡＲＤ１に搭載されるＣＰＵがプログラムを実行することにより実現される。なお、カードＣＡＲＤ２に搭載されるＣＰＵの動作は、図１６の拡張装置ＥＸ１を拡張装置ＥＸ２に読み替え、ＣＰＵ１をＣＰＵ２に読み替えることで実現される。図１６は、情報処理装置の制御方法の例を示す。
【０１２４】
まず、ステップＳ２００において、ＣＰＵは、サービスプロセッサＳＰから拡張装置ＥＸ１内のＩ２Ｃデバイスに対するアクセス要求（リード要求またはライト要求）があるか否かを判定する。アクセス要求がある場合、処理はステップＳ２０６に移行され、アクセス要求がない場合、処理はステップＳ２０２に移行される。
【０１２５】
ステップＳ２０２において、ＣＰＵは、拡張装置ＥＸ１に搭載されるＣＰＵ１からリードデータを受信したか否かを判定する。リードデータを受信した場合、処理はステップＳ２０４に移行され、リードデータを受信していない場合、処理はステップＳ２００に戻る。ステップＳ２０４において、ＣＰＵは、受信したリードデータでキャッシュＣＡＣＨＥを更新し、処理をステップＳ２００に戻す。
【０１２６】
ステップＳ２０６において、ＣＰＵは、アクセス要求がライト要求であるかリード要求であるかを判定する。ライト要求を受信した場合、処理はステップＳ２０８に移行され、リード要求を受信した場合、処理はステップＳ２１２に移行される。
【０１２７】
ライト要求を受信した場合、ＣＰＵは、ステップＳ２０８において、図１２に示すように、バスＩ２ＣＢ０にＡＣＫを出力してライトデータをサービスプロセッサＳＰから受信する。次に、ステップＳ２１０において、ＣＰＵは、サービスプロセッサＳＰから受信したライトデータを含むライト要求コマンドを、ネットワークＮＷを介して拡張装置ＥＸ１に出力する。ステップＳ２１０の後、処理はステップＳ２００に戻る。
【０１２８】
一方、リード要求を受信した場合、ＣＰＵは、ステップＳ２１２において、キャッシュＣＡＣＨＥに有効なデータがあるか否かを判定する。キャッシュＣＡＣＨＥに有効なデータがあるか否かは、図８に示すキャッシュＣＡＣＨＥのステータス領域に”２”が設定されているか否かで判定される。キャッシュＣＡＣＨＥに有効なデータがある場合、処理はステップＳ２２０に移行され、キャッシュＣＡＣＨＥに有効なデータがない場合、処理はステップＳ２１４に移行される。
【０１２９】
ステップＳ２１４において、ＣＰＵは、バスＩ２ＣＢ０を介してサービスプロセッサＳＰにＮＡＣＫを送信する。次に、ステップＳ２１６において、ＣＰＵは、リード要求コマンドを拡張装置ＥＸ１に送信済みであるか否かを判定する。リード要求コマンドが出力済みの場合、処理はステップＳ２００に戻り、リード要求コマンドが出力されていない場合、処理はステップＳ２１８に移行される。ステップＳ２１８において、ＣＰＵは、ネットワークＮＷを介して拡張装置ＥＸ１にリード要求コマンドを送信し、処理をステップＳ２００に戻す。
【０１３０】
一方、キャッシュＣＡＣＨＥに有効なデータがある場合、ＣＰＵは、ステップＳ２２０において、バスＩ２ＣＢ０にＡＣＫを出力し、キャッシュＣＡＣＨＥ内のリードデータをサービスプロセッサＳＰに送信する。次に、ステップＳ２２２において、ＣＰＵは、キャッシュＣＡＣＨＥ内に保持され、サービスプロセッサＳＰに出力済みのリードデータを無効にし、処理をステップＳ２００に戻す。例えば、キャッシュＣＡＣＨＥ内に保持されたリードデータは、図８に示すステータス領域を”０”に設定することで無効にされる。
【０１３１】
図１７は、図２に示す拡張装置ＥＸ１に搭載されるＣＰＵ１の動作の例を示す。図１７に示すフローは、拡張装置ＥＸ１に搭載されるＣＰＵ１がプログラムを実行することにより実現される。なお、拡張装置ＥＸ２に搭載されるＣＰＵ２の動作は、バスＩ２ＣＢ１をバスＩ２ＣＢ２に読み替え、ＣＰＵ１をＣＰＵ２に読み替え、カードＣＡＲＤ１をカードＣＡＲＤ２に読み替え、ネットワークＮＷ１をネットワークＮＷ２に読み替えることで実現される。図１７は、情報処理装置の制御方法の例を示す。
【０１３２】
まず、ステップＳ３００において、ＣＰＵ１は、ネットワークＮＷ１を介してカードＣＡＲＤ１に搭載されるＣＰＵからアクセス要求コマンド（ライト要求コマンドまたはリード要求コマンド）を受信したか否かを判定する。アクセス要求コマンドを受信した場合、処理はステップＳ３０２に移行され、アクセス要求コマンドを受信していない場合、処理はステップＳ３００を繰り返す。
【０１３３】
ステップＳ３０２において、ＣＰＵ１は、アクセス要求コマンドがライト要求コマンドであるかリード要求コマンドであるかを判定する。ライト要求コマンドを受信した場合、処理はステップＳ３０４に移行され、リード要求コマンドを受信した場合、処理はステップＳ３０６に移行される。
【０１３４】
ライト要求コマンドを受信した場合、ＣＰＵ１は、ステップＳ３０４において、ライト要求コマンドに基づいて、バスＩ２ＣＢ１にライト要求を出力し、ライト要求に含まれるＩ２Ｃアドレスが示すＩ２Ｃデバイスにライトデータを書き込む。この後、処理はステップＳ３００に戻される。
【０１３５】
一方、リード要求コマンドを受信した場合、ＣＰＵ１は、ステップＳ３０６において、バスＩ２ＣＢ１にリード要求を出力し、リード要求に含まれるＩ２Ｃアドレスが示すＩ２Ｃデバイスからリードデータを読み出す。次に、ステップＳ３０８において、ＣＰＵ１は、Ｉ２Ｃデバイスから読み出したリードデータを、ネットワークＮＷ１を介してカードＣＡＲＤ１に搭載されるＣＰＵに送信し、処理をステップＳ３００に戻す。
【０１３６】
以上、この実施形態においても、図１に示した実施形態と同様の効果を得ることができる。すなわち、ＩＣ２デバイスが拡張装置ＥＸ１、ＥＸ２内に搭載される場合にも、サービスプロセッサＳＰは、バスＩ２ＣＢ０のタイミング仕様にしたがって、拡張装置ＥＸ１、ＥＸ２内のＩ２Ｃデバイスからリードデータを受信できる。換言すれば、拡張装置ＥＸ１、ＥＸ２内のＩ２Ｃデバイスからのリードデータの出力タイミングが、最初のリード要求に対するバスＩ２ＣＢ０のタイミング仕様を満足しない場合にも、サービスプロセッサＳＰは、正しいリードデータを受信することができる。
【０１３７】
さらに、図２から図１７に示した実施形態では、ＣＰＵは、リードデータをサービスプロセッサＳＰに出力した後に、キャッシュＣＡＣＨＥに保持されたリードデータを無効にする。このため、次のリード要求に応答して、ＣＰＵがキャッシュＣＡＣＨＥ内の無効なリードデータをサービスプロセッサＳＰに出力することを抑止することができ、誤動作を抑止することができる。
【０１３８】
ＣＰＵは、疎通確認コマンドにより、サーバＳＶと各拡張装置ＥＸ１、ＥＸ２との間の通信の応答時間を求め、サービスプロセッサＳＰは、応答時間に応じてリトライ時間を設定する。これにより、ネットワークＮＷ１、ＮＷ２のケーブル長等に応じて、拡張装置ＥＸ１、ＥＸ２毎にリトライ時間を設定することができる。
【０１３９】
拡張装置ＥＸ１、ＥＸ２内のＩ２Ｃデバイスからのリードデータの読み出しにおいて、サービスプロセッサＳＰは、リトライ時間を超えた場合、タイムアウト処理を実行する。これにより、リード要求が繰り返し出力される無限ループに陥ることを抑止することができ、サービスプロセッサＳＰがハングアップすることを抑止することができる。
【０１４０】
以上の実施形態において説明した発明を整理して、付記として開示する。
（付記１）
第１通信回線に第１アクセス要求を出力する第１装置と、
前記第１通信回線のプロトコルと第２通信回線のプロトコルとを相互に変換し、前記第１通信回線を介して受信する前記第１アクセス要求を前記第２通信回線のプロトコルにしたがった第２アクセス要求に変換して前記第２通信回線に出力する第１中継装置と、
前記第２通信回線のプロトコルと第３通信回線のプロトコルとを相互に変換し、前記第２通信回線を介して受信する前記第２アクセス要求を前記第１通信回線のプロトコルにしたがった第３アクセス要求に変換して前記第３通信回線に出力する第２中継装置と、
前記第３通信回線に接続され、前記第３アクセス要求に基づいて動作し、データを出力する第２装置を有し、
前記第１中継装置は、
前記第２装置から出力されるデータであって、前記第２中継装置を介して受信するデータを保持する記憶部と、
データが前記記憶部に保持された後に新たな前記第１アクセス要求を受信した場合に、前記記憶部に保持されたデータを前記第１装置に出力する制御部を有することを特徴とする情報処理装置。
（付記２）
前記第１装置は、前記第１アクセス要求を繰り返し出力し、
前記第１中継装置の前記制御部は、
最初の前記第１アクセス要求を前記第２アクセス要求に変換し、
最初の前記第１アクセス要求に対応して前記第２装置から出力されるデータが前記記憶部に保持される前に受信する２番目以降の前記第１アクセス要求に応答して、無効を示す情報を前記第１装置に出力し、
最初の前記第１アクセス要求に対応して前記第２装置から出力されるデータが前記記憶部に保持された後に受信する２番目以降の前記第１アクセス要求に応答して、前記記憶部に保持されたデータを前記第１装置に出力することを特徴とする付記１記載の情報処理装置。
（付記３）
前記第１中継装置の前記制御部は、前記記憶部に保持されたデータを前記第１装置に出力した後、前記記憶部に保持されたデータを無効にすることを特徴とする付記１または付記２記載の情報処理装置。
（付記４）
前記第１装置は、最初の前記第１アクセス要求を出力してから所定時間内に前記第１中継装置からデータを受信しない場合、前記第２装置からのデータの読み出しエラーを検出することを特徴とする付記２または付記３記載の情報処理装置。
（付記５）
前記第１中継装置の前記制御部は、前記第１中継装置と前記第２中継装置との間の通信の応答時間の測定を指示する第１コマンドを前記第１装置から受信した場合、前記第２中継装置に疎通状態を確認する第２コマンドを出力し、前記第２中継装置から前記第２コマンドの応答を受信するまでの時間を前記応答時間として求め、
前記第１装置は、前記所定時間を、前記第２中継装置が前記第３アクセス要求を出力してから、前記第２装置からデータを受信するまでの時間に、前記応答時間を加えた時間に設定することを特徴とする付記４記載の情報処理装置。
（付記６）
前記第１中継装置の前記制御部は、前記第１装置からの第３コマンドの受信に応答して、前記応答時間の未測定を示す情報、前記応答時間の測定中を示す情報、または前記応答時間を示す情報を前記第１装置に出力し、
前記第１装置は、前記第３コマンドに応答して前記第１中継装置から前記応答時間の未測定を示す情報を受信した場合、前記第１コマンドを出力し、前記第３コマンドに応答して前記第１中継装置から前記応答時間の測定中を示す情報を受信した場合、前記応答時間を示す情報を受信するまで、前記第３コマンドを繰り返し出力することを特徴とする付記５記載の情報処理装置。
（付記７）
前記第１装置および前記第１中継装置は、第１情報処理装置に搭載され、
前記第１情報処理装置は、
プリント基板と、
前記プリント基板に取り付けられ、前記プリント基板上に配線される前記第１通信回線に接続され、前記第１中継装置が装着されるコネクタと、
前記プリント基板に取り付けられ、前記コネクタに装着された前記第１中継装置との接触を検出する検出部を有し、
前記第１装置は、前記第１中継装置の前記コネクタへの装着が前記検出部により検出された場合に、前記応答時間の測定処理を実行することを特徴とする付記５または付記６記載の情報処理装置。
（付記８）
前記第１装置および前記第１中継装置が搭載され、前記第１通信回線が配線される第１情報処理装置と、
前記第２中継装置および前記第２装置が搭載され、前記第３通信回線が配線され、前記第２通信回線を介して前記第１情報処理装置と接続される第２情報処理装置を有することを特徴とする付記１ないし付記７のいずれか１項記載の情報処理装置。
（付記９）
前記第１装置は、前記第１通信回線上でマスタとして動作し、前記第１中継装置は、前記第１通信回線上でスレーブとして動作し、
前記第２中継装置は、前記第３通信回線上でマスタとして動作し、前記第２装置は、前記第３通信回線上でスレーブとして動作することを特徴とする付記１ないし付記８のいずれか１項記載の情報処理装置。
（付記１０）
第１通信回線に第１アクセス要求を出力する第１装置と、前記第１通信回線のプロトコルと第２通信回線のプロトコルとを相互に変換し、前記第１通信回線を介して受信する前記第１アクセス要求を前記第２通信回線のプロトコルにしたがった第２アクセス要求に変換して前記第２通信回線に出力する第１中継装置と、前記第２通信回線のプロトコルと第３通信回線のプロトコルとを相互に変換し、前記第２通信回線を介して受信する前記第２アクセス要求を前記第１通信回線のプロトコルにしたがった第３アクセス要求に変換して前記第３通信回線に出力する第２中継装置と、前記第３通信回線に接続され、前記第３アクセス要求に基づいて動作し、データを出力する第２装置を有する情報処理装置の制御方法において、
前記第１中継装置は、
前記第２装置から出力されるデータであって、前記第２中継装置を介して受信するデータを記憶部に保持し、
データが前記記憶部に保持された後に新たな前記第１アクセス要求を受信した場合に、前記記憶部に保持されたデータを前記第１装置に出力することを特徴とする情報処理装置の制御方法。
【０１４１】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【０１４２】
Ｃ００、Ｃ１１、Ｃ１２、Ｃ２１、Ｃ２２…カード；ＣＡＣＨＥ…キャッシュ；ＣＡＲＤ１、ＣＡＲＤ２…カード；ＣＬ１…第１通信回線；ＣＬ２…第２通信回線；ＣＬ３…第３通信回線；ＣＮＣＴ…コネクタ；ＣＮＴ…制御部；ＣＮＴ１、ＣＮＴ２…制御装置；ＤＥＶ１…第１装置；ＤＥＶ２…第２装置；ＥＸ１、ＥＸ２…拡張装置；Ｉ２ＣＩＦ…インタフェース；ＩＰＥ１、ＩＰＥ２…情報処理装置；ＩＰＥ１１…第１情報処理装置；ＩＰＥ１２…第２情報処理装置；ＭＡＣ…メモリアクセスコントローラ；ＭＥＭ…記憶部；ＭＭ…メモリモジュール；ＮＷ１、ＮＷ２…ネットワーク；ＮＷＩＦ…インタフェース；ＰＣＩＲＣ…ルートコンプレックス；ＰＣＩＳＬＴ００、ＰＣＩＳＬＴ０１、ＰＣＩＳＬＴ０２、ＰＣＩＳＬＴ１１、ＰＣＩＳＬＴ１２、ＰＣＩＳＬＴ２１、ＰＣＩＳＬＴ２２…スロット；ＰＴ…プリント基板；ＲＬＹ１…第１中継装置；ＲＬＹ２…第２中継装置；ＳＰ…サービスプロセッサ；ＳＶ…サーバ；ＳＷ…押下スイッチ
【図１】
2015154260.tif 000003
【図２】
2015154260.tif 000004
【図３】
2015154260.tif 000005
【図４】
2015154260.tif 000006
【図５】
2015154260.tif 000007
【図６】
2015154260.tif 000008
【図７】
2015154260.tif 000009
【図８】
2015154260.tif 000010
【図９】
2015154260.tif 000011
【図１０】
2015154260.tif 000012
【図１１】
2015154260.tif 000013
【図１２】
2015154260.tif 000014
【図１３】
2015154260.tif 000015
【図１４】
2015154260.tif 000016
【図１５】
2015154260.tif 000017
【図１６】
2015154260.tif 000018
【図１７】
2015154260.tif 000019