(57)【特許請求の範囲】
【請求項１】
バスを介して中継装置に接続され、前記バスおよび前記中継装置を介して複数のターゲットデバイスと通信する接続装置であって、
前記中継装置の動作モードを、前記複数のターゲットデバイスのうち１のターゲットデバイスとの通信を行う第１モードと、前記複数のターゲットデバイスのうち２以上のターゲットデバイスとの通信を同時に行う第２モードとで、切り替える制御部、
を有し、
前記制御部は、前記中継装置が備える制御レジスタであって、前記中継装置と前記複数のターゲットデバイスとを接続する複数のバスの各々のアクティブまたは非アクティブに対応する設定値をバス毎に記憶する前記制御レジスタの前記複数のバスの各々の前記設定値を変更することで、前記第１モードおよび前記第２モードの切り替えを行い、前記第１モードに切り替える場合に、前記複数のバスに対応する何れか１つの設定値を第１の値に設定し、前記１つの設定値以外の全ての設定値を第２の値に設定することで前記１つの設定値に対応するバスのみをアクティブにさせ、前記第２モードに切り替える場合に、２以上であって、前記複数のターゲットデバイスの総数よりも少ない個数の設定値を前記第１の値に設定し、前記個数の設定値以外の全ての設定値を前記第２の値に設定することで、前記個数の設定値に対応する前記個数のバスのみをアクティブにさせる、
接続装置。
【請求項２】
前記制御部は、前記２以上のターゲットデバイスに共通のデータを送信する際に、前記中継装置の動作モードを前記第２モードに設定する、請求項１記載の接続装置。
【請求項３】
前記制御部は、前記データの送信後、前記２以上のターゲットデバイスが全て肯定応答を返信した場合に前記中継装置から前記肯定応答を受信し、前記２以上のターゲットデバイスの少なくとも１つが否定応答を返信した場合に前記中継装置から前記否定応答を受信する、請求項２記載の接続装置。
【請求項４】
前記制御部は、前記否定応答を返信したターゲットデバイスを示す情報を前記中継装置から受信し、前記中継装置の動作モードを前記第１モードに設定し、当該ターゲットデバイスに対して前記データを再送する、請求項３記載の接続装置。
【請求項５】
前記バスは、クロック線およびデータ線の２つの信号線により双方向通信を行うシリアルバスである、請求項１乃至４の何れか１項に記載の接続装置。
【請求項６】
記憶装置に対するアクセスを制御する複数のコントローラと、
前記複数のコントローラと第１の種類のバスを介して接続される複数の通信部と、
前記複数の通信部と第２の種類のバスを介して接続される中継部と、
前記第２の種類のバスを介して前記中継部に接続され、前記中継部の動作モードを、前記複数の通信部のうち１の通信部との通信を行う第１モードと、前記複数の通信部のうち２以上の通信部との通信を同時に行う第２モードとで、切り替える制御部と、
を有し、
前記中継部は、前記中継部と前記複数の通信部とを接続する前記第２の種類のバス毎のアクティブまたは非アクティブに対応する設定値を前記第２の種類のバス毎に記憶する制御レジスタを備え、
前記制御部は、前記制御レジスタの前記第２の種類のバス毎の前記設定値を変更することで、前記第１モードおよび前記第２モードの切り替えを行い、前記第１モードに切り替える場合に、前記第２の種類のバスのうちの何れか１つの設定値を第１の値に設定し、前記１つの設定値以外の全ての設定値を第２の値に設定することで、前記第２の種類のバスのうち前記１つの設定値に対応するバスのみをアクティブにさせ、前記第２モードに切り替える場合に、２以上であって、前記複数の通信部の総数よりも少ない個数の設定値を前記第１の値に設定し、前記個数の設定値以外の全ての設定値を前記第２の値に設定することで、前記第２の種類のバスのうち前記個数の設定値に対応する前記個数のバスのみをアクティブにさせる、
ストレージ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は接続装置およびストレージ装置に関する。
【背景技術】
【０００２】
ストレージ装置やコンピュータなどの電子装置は、装置内部に種々のデバイスを備える。各デバイスを装置内部のバスを介して相互に接続して、各デバイスを制御し得る。バスの一例としてＩ２Ｃ（Inter-Integrated Circuit）がある。
【０００３】
例えば、１つのメインＩ２Ｃバスに接続されるＩ２Ｃバスマスタデバイスと、メインＩ２Ｃバスを多数のサブＩ２Ｃバスに分離するマルチプレクサモジュールと、サブＩ２Ｃバスに接続されるＩ２Ｃバススレーブデバイスとを含むＩ２Ｃバス回路が提案されている。この提案では、Ｉ２ＣバスマスタデバイスからＩ２Ｃバススレーブデバイスへ通信する際に、Ｉ２Ｃバスマルチプレクサにより何れか１つの経路を選択して目的のＩ２Ｃバススレーブデバイスと通信を行うことで、Ｉ２Ｃバスへの接続デバイス数の制限を無くす。
【０００４】
また、例えば、１つの送信ノードからシリアルバスを介して複数の受信ノードにデータを同報で送信する際に、送信すべきデータを含んだ送信フレーム内に複数の受信ノードのアドレスを追加する提案もある。この提案では、受信ノードがデータを正常に受信し、かつ、自分宛のアドレスを確認したときに受信応答信号を返す。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−９６０９０号公報
【特許文献２】特開２００５−４６０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
接続元のデバイス（接続装置）を、中継装置（例えば、マルチプレクサ）を介してターゲットとなる複数のデバイス（例えば、スレーブデバイス）と接続する場合を考える。この場合、上記提案のように、中継装置によりターゲット側の通信経路を１つずつ選択して、接続装置およびターゲットのデバイスの間の通信を行うことが考えられる。
【０００７】
しかし、この方法では、接続装置が複数のデバイスと通信する際の所要時間が問題となる。例えば、接続装置が複数のデバイスに対して共通のデータを送信することもある（各デバイスに対して共通の動作設定を行う場合など）。この場合、ターゲット側の通信経路を１つずつ選択して変更するたびに、同じデータを接続装置から何度も送信するのは非効率的である。経路選択や接続装置による同じデータの複数回の送信が発生すると、送信先の全てのデバイスへの送信が完了するまでに時間がかかる。
【０００８】
１つの側面では、本発明は、効率的に通信できる接続装置およびストレージ装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
１つの態様では、バスを介して中継装置に接続され、バスおよび中継装置を介して複数のターゲットデバイスと通信する接続装置が提供される。この接続装置は、制御部を有する。制御部は、中継装置の動作モードを、複数のターゲットデバイスのうち１のターゲットデバイスとの通信を行う第１モードと、複数のターゲットデバイスのうち２以上のターゲットデバイスとの通信を同時に行う第２モードとで、切り替える。制御部は、中継装置が備える制御レジスタであって、中継装置と複数のターゲットデバイスとを接続する複数のバスの各々のアクティブまたは非アクティブに対応する設定値をバス毎に記憶する制御レジスタの複数のバスの各々の設定値を変更することで、第１モードおよび第２モードの切り替えを行い、第１モードに切り替える場合に、複数のバスに対応する何れか１つの設定値を第１の値に設定し、１つの設定値以外の全ての設定値を第２の値に設定することで１つの設定値に対応するバスのみをアクティブにさせ、第２モードに切り替える場合に、２以上であって、複数のターゲットデバイスの総数よりも少ない個数の設定値を第１の値に設定し、個数の設定値以外の全ての設定値を第２の値に設定することで、個数の設定値に対応する個数のバスのみをアクティブにさせる。
【００１０】
また、１つの態様では、ストレージ装置が提供される。このストレージ装置は、複数のコントローラと複数の通信部と中継部と制御部とを有する。複数のコントローラは、記憶装置に対するアクセスを制御する。複数の通信部は、複数のコントローラと第１の種類のバスを介して接続される。中継部は、複数の通信部と第２の種類のバスを介して接続される。制御部は、第２の種類のバスを介して中継部に接続される。制御部は、中継部の動作モードを、複数の通信部のうち１の通信部との通信を行う第１モードと、複数の通信部のうち２以上の通信部との通信を同時に行う第２モードとで、切り替える。中継部は、中継部と複数の通信部とを接続する第２の種類のバス毎のアクティブまたは非アクティブに対応する設定値を第２の種類のバス毎に記憶する制御レジスタを備える。制御部は、制御レジスタの第２の種類のバス毎の設定値を変更することで、第１モードおよび第２モードの切り替えを行い、第１モードに切り替える場合に、第２の種類のバスのうちの何れか１つの設定値を第１の値に設定し、１つの設定値以外の全ての設定値を第２の値に設定することで、第２の種類のバスのうち１つの設定値に対応するバスのみをアクティブにさせ、第２モードに切り替える場合に、２以上であって、複数の通信部の総数よりも少ない個数の設定値を第１の値に設定し、個数の設定値以外の全ての設定値を第２の値に設定することで、第２の種類のバスのうち個数の設定値に対応する個数のバスのみをアクティブにさせる。
【発明の効果】
【００１１】
１つの側面では、効率的に通信できる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施の形態の接続装置を示す図である。
【図２】第２の実施の形態の情報処理システムを示す図である。
【図３】ストレージ装置のモジュール例を示す図である。
【図４】ストレージ装置のハードウェア例を示す図である。
【図５】Ｉ２Ｃ制御部／Ｉ２Ｃマルチプレクサのハードウェア例を示す図である。
【図６】リピータのハードウェア例を示す図である。
【図７】Ｉ２Ｃバスの例を示す図である。
【図８】Ｉ２Ｃバスのタイミングチャートの例を示す図である。
【図９】Ｉ２Ｃバスの通信フォーマットの例を示す図である。
【図１０】Ｉ２Ｃマルチプレクサのレジスタの例を示す図である。
【図１１】Ｉ２Ｃマルチプレクサのバッファの例を示す図である。
【図１２】Ｉ２Ｃ制御部の書き込み処理の例を示すフローチャートである。
【図１３】Ｉ２Ｃマルチプレクサの書き込み処理の例を示すフローチャートである。
【図１４】書き込み処理のシーケンス例を示す図である。
【図１５】書き込み処理のシーケンスの比較例を示す図である。
【図１６】Ｉ２Ｃ制御部の再送処理の他の例を示すフローチャートである。
【図１７】Ｉ２Ｃ制御部の読み出し処理の例を示すフローチャートである。
【図１８】Ｉ２Ｃマルチプレクサの読み出し処理の例を示すフローチャートである。
【図１９】読み出し処理のシーケンス例を示す図である。
【発明を実施するための形態】
【００１３】
以下、本実施の形態を図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態の接続装置を示す図である。接続装置１は、中継装置２を介してターゲットデバイス３，４，５と通信する。接続装置１および中継装置２はバス６により接続されている。中継装置２およびターゲットデバイス３はバス７により接続されている。中継装置２およびターゲットデバイス４はバス８により接続されている。中継装置２およびターゲットデバイス５はバス９により接続されている。
【００１４】
バス６，７，８，９は、デバイス間を接続するデータ伝送用のバスである。バス６，７，８，９は、例えばＩ２Ｃでもよい。Ｉ２Ｃは、シリアルクロック（ＳＣＬ：Serial CLock）およびシリアルデータ（ＳＤＡ：Serial DAta）の２本の信号線を用いる２線式双方向のシリアルバスである。中継装置２は、Ｉ２Ｃマルチプレクサでもよい。
【００１５】
接続装置１は、制御部１ａを有する。制御部１ａは、ＣＰＵ（Central Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field Programmable Gate Array）などのプロセッサを含み得る。
【００１６】
中継装置２は、中継部２ａを有する。中継部２ａは、接続装置１とターゲットデバイス３，４，５との間の通信を中継する。中継部２ａは、２つの動作モードで動作可能である。第１モードは、ターゲットデバイス３，４，５のうち１のターゲットデバイスとの通信を行うモードである。第２モードは、ターゲットデバイス３，４，５のうち２以上のターゲットデバイスとの通信を同時に行うモードである。
【００１７】
制御部１ａは、中継部２ａの動作モード（中継装置２の動作モードともいえる）を、第１モードと第２モードとで切り替える。例えば、ターゲットデバイス３，４，５のうち、ターゲットデバイス３のみにデータを送信するとき、制御部１ａは、中継部２ａに対して第１モードの選択を指示する。更に、制御部１ａは、ターゲットデバイス３へのパスのみをアクティブ化するよう中継部２ａに指示する。すると、中継装置２とターゲットデバイス３との間のパス（バス７により形成されるパス）が利用可能となる。また、中継装置２とターゲットデバイス４との間のパス（バス８により形成されるパス）、および、中継装置２とターゲットデバイス５との間のパス（バス９により形成されるパス）が利用不可となる。この状態では、制御部１ａは、ターゲットデバイス３のみと通信を行える。
【００１８】
一方、例えば、制御部１ａは、ターゲットデバイス３，４，５の全てのデバイスに同じデータを送信することもある。例えば、ターゲットデバイス３，４，５に対して共通の動作設定を行う場合である。このとき、制御部１ａは、中継部２ａに対して第２モードの選択を指示する。すると、中継装置２は、ターゲットデバイス３，４，５との間のパスを利用可能とする。この状態では、制御部１ａは、ターゲットデバイス３，４，５の全てと通信を行える。例えば、Ｉ２Ｃでは、複数のターゲットデバイスに対して同一のデバイスアドレスを付与できる。例えば、ターゲットデバイス３，４，５に対して共通のデバイスアドレスが付与されている。制御部１ａは、当該共通のデバイスアドレスを宛先のデバイスアドレスに指定してデータを１回送信する。すると、中継部２ａは、バス７，８，９により、該当のデータをターゲットデバイス３，４，５に対して同時送信する。ターゲットデバイス３，４，５の全てのデバイスに対してデータ送信を行う場合を例示したが、何れか２つのデバイスに対してデータ送信を行うこともできる。その場合、制御部１ａは、第２モードの選択指示に加え、何れのパスをアクティブ化するかを中継部２ａに指示してもよい。
【００１９】
このように、制御部１ａは、中継装置２の動作モードを、ターゲットデバイス３，４，５のうちの１つのターゲットデバイスとの通信を行う第１モードと、ターゲットデバイス３，４，５のうち２以上のターゲットデバイスとの通信を同時に行う第２モードとに切り替える。これにより、接続装置１は、通信内容に応じて、効率的に通信を行える。
【００２０】
例えば、接続装置１がターゲットデバイス３，４，５に対して共通の動作設定を行う場合など、各ターゲットデバイスに同一のデータを送信することもある。この場合、ターゲット側のパス（バス７，８，９により形成されるパス）を１つずつ選択し、選択のたびに該当のデータを接続装置１により送信することも考えられる。しかし、パスを選択して変更するたびに同じデータを接続装置１から何度も送信するのは非効率的である。経路選択や接続装置による同じデータの複数回の送信が発生すると、ターゲットデバイス３，４，５の全てに対してデータの送信が完了するまでに時間がかかる。
【００２１】
一方、接続装置１は、ターゲットデバイス３，４，５に対して同一のデータを送信する場合、中継装置２の動作モードを第２モードに変更し、その後、該当のデータを中継装置２へ１回送信すればよい。すると、中継装置２によりターゲットデバイス３，４，５へ当該データが送信される。このため、パスを変更したり同じデータを接続装置１から複数回送信したりせずに済む。よって、ターゲットデバイス３，４，５の全てに対してデータの送信が完了するまでの時間を短縮できる。
【００２２】
なお、ターゲットデバイス３，４，５が受信確認として、肯定応答（ＡＣＫ：ACKnowledgement）や否定応答（ＮＡＣＫ：Negative ACKnowledgement）を返すこともある。その場合、中継部２ａは、ターゲットデバイス３，４，５の全てからＡＣＫを受信したときに接続装置１にＡＣＫを応答し、また、ターゲットデバイス３，４，５の少なくとも１つからＮＡＣＫを受信したときに接続装置１にＮＡＣＫを応答してもよい。制御部１ａは、ＮＡＣＫを受信した場合に、データの再送を行ってもよい。このようにすれば、ターゲットデバイス３，４，５に対するデータ送信の信頼性を向上させることができる。
【００２３】
接続装置１、中継装置２およびターゲットデバイス３，４，５は、種々の装置に組み込むことができる。例えば、接続装置１、中継装置２およびターゲットデバイス３，４，５は、ストレージ装置に内蔵されたモジュールあるいはモジュールの一部であってもよい。
【００２４】
［第２の実施の形態］
図２は、第２の実施の形態の情報処理システムを示す図である。第２の実施の形態の情報処理システムは、ストレージ装置１０および業務サーバ２０を有する。ストレージ装置１０および業務サーバ２０は、ＳＡＮ（Storage Area Network）３０に接続されている。
【００２５】
ストレージ装置１０は、業務サーバ２０の処理に用いられる業務データを記憶する。ストレージ装置１０は、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）などの記憶装置を複数搭載し、大容量の記憶領域を利用可能とする。例えば、ストレージ装置１０は、複数の記憶装置を用いて、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）と呼ばれる技術により、データアクセスの高速化／高信頼化を図ることもある。
【００２６】
業務サーバ２０は、ユーザの業務に用いられる各種のソフトウェアを実行するサーバコンピュータである。例えば、ユーザは、業務サーバ２０にアクセス可能なネットワーク（図示を省略している）に接続されたクライアントコンピュータ（図示を省略している）を操作して、業務サーバ２０へ業務処理の実行を要求できる。業務サーバ２０は、業務処理に応じて、ＳＡＮ３０を介してストレージ装置１０へアクセスする。業務サーバ２０は、業務処理に応じて、ストレージ装置１０に業務データを新たに格納したり、ストレージ装置１０から業務データを読み出したり、ストレージ装置１０の業務データを更新したりする。
【００２７】
図３は、ストレージ装置のモジュール例を示す図である。ストレージ装置１０は、フロントエンクロージャ（ＦＥ：Front Enclosure）１００、コントローラエンクロージャ（ＣＥ：Controller Enclosure）２００，２００ａおよびドライブエンクロージャ（ＤＥ：Drive Enclosure）３００，３００ａを有する。
【００２８】
ＦＥ１００は、ＣＥ２００，２００ａの動作を管理する。ＦＥ１００は、ＣＥ２００，２００ａ間の通信を中継する。ＦＥ１００は、サービスコントローラ（ＳＶＣ：SerVice Controller）１０１，１０２およびフロントエンドルータ（ＦＲＴ：Frontend RouTer）１０３，１０４，１０５，１０６を有する。
【００２９】
ＳＶＣ１０１，１０２は、ＣＥ２００，２００ａに対する電源制御や冗長管理などを行う。なお、ＳＶＣ１０１，１０２もＣＥ２００，２００ａと接続されるが、ＳＶＣ−ＣＥ間の接続については図示を省略している。また、ＳＶＣ１０１，１０２それぞれは、ＦＲＴ１０３，１０４，１０５，１０６と接続されている。ＳＶＣ−ＦＲＴ間のバスは、Ｉ２Ｃバスである。ＦＲＴ１０３，１０４，１０５，１０６は、ＣＥ２００，２００ａ間の通信を中継する。ＦＲＴ−ＣＥ間のバスは、ＰＣＩｅ（Peripheral Component Interconnect express）である。
【００３０】
ＣＥ２００，２００ａは、ＤＥ３００，３００ａに記憶された業務データへのアクセスを制御する。ＣＥ２００は、ＣＭ２０１，２０２を有する。ＣＭ２０１，２０２は、ＤＥ３００と接続されている。ＣＭ−ＤＥ間のバスは、ＳＡＳ（Serial Attached SCSI）である（ＳＣＳＩはSmall Computer System Interfaceの略）。ＣＭ２０１，２０２は、ＤＥ３００に内蔵された記憶装置に対する業務データの書き込みや読み出しを行う。ＣＭ２０１，２０２は冗長化されており、何れか一方が故障しても他方によってＤＥ３００へのデータアクセスを継続できる。
【００３１】
ＣＥ２００ａは、ＣＭ２０１ａ，２０２ａを有する。ＣＭ２０１ａ，２０２ａは、ＤＥ３００ａと接続されている。ＣＭ２０１ａ，２０２ａは、ＤＥ３００ａに内蔵された記憶装置に対する業務データの書き込みや読み出しを行う。ＣＭ２０１ａ，２０２ａは冗長化されており、何れか一方が故障しても他方によってＤＥ３００ａへのデータアクセスを継続できる。なお、ＣＭ２０１，２０２，２０１ａ，２０２ａは、ＳＡＮ３０にも接続されている（図３では図示を省略している）。
【００３２】
ストレージ装置１０では、ＦＥ１００は、ＣＥ２００，２００ａ単位で冗長化することもできる。例えば、ＤＥ３００，３００ａそれぞれに共通のデータを格納しておく。すると、ＣＥ２００，２００ａの何れか一方が故障しても他方によってＤＥ３００またはＤＥ３００ａに対するデータアクセスを継続でき、業務が停止することを防止できる。
【００３３】
ここで、ＣＥ−ＣＥ間（ＣＭ−ＣＭ間）通信の高信頼化を図るため、ＦＥ−ＣＥ間のパスも冗長化されている。具体的には、ＦＲＴ１０３，１０４，１０５，１０６それぞれは、ＣＭ２０１，２０２，２０１ａ，２０２ａと接続されている。このような接続において、ＳＶＣ１０１，１０２は、ＦＲＴ−ＣＭ間のＰＣＩｅ通信に関するＳｅｒＤｅｓ（Serializer/Deserializer）設定や物理設定（ケーブル長に応じた信号強度の設定など）を、ＦＲＴ１０３，１０４，１０５，１０６に対して行う。ここで、以下の説明では、ＳＶＣ１０１がＦＲＴ１０３の設定を行う場合を例示するが、ＳＶＣ１０１が他のＦＲＴの設定を行う場合も同様である。また、ＳＶＣ１０２もＳＶＣ１０１と同様にして各ＦＲＴの設定を行える。ＳＶＣ１０１，１０２により、ＦＲＴ１０３，１０４，１０５，１０６の設定を分担してもよい（例えば、ＳＶＣ１０１がＦＲＴ１０３，１０４の設定を担い、ＳＶＣ１０２がＦＲＴ１０５，１０６の設定を担うなど）。
【００３４】
図４は、ストレージ装置のハードウェア例を示す図である。ＳＶＣ１０１は、Ｉ２Ｃ制御部１１０を有する。Ｉ２Ｃ制御部１１０は、Ｉ２Ｃマスタデバイスとして機能する。Ｉ２Ｃマスタデバイスを、Ｉ２Ｃ＿ＭＳＴと略記することがある。また、Ｉ２Ｃ制御部１１０を指して、Ｉ２Ｃ＿ＭＳＴまたはＩ２Ｃ  ＭＳＴと表記することもある。Ｉ２Ｃ制御部１１０は、Ｉ２Ｃターゲットデバイス（Ｉ２Ｃスレーブデバイスと呼ばれることもある）との通信を制御する。
【００３５】
ＦＲＴ１０３は、Ｉ２Ｃマルチプレクサ１２０、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃおよびＰＣＩｅスイッチ１４０を有する。Ｉ２Ｃマルチプレクサ１２０は、Ｉ２Ｃ制御部１１０とリピータ１３０，１３０ａ，１３０ｂ，１３０ｃとの通信を中継する中継装置である。Ｉ２Ｃマルチプレクサ１２０は、Ｉ２Ｃ制御部１１０とＩ２Ｃバスを介して接続されている。Ｉ２Ｃマルチプレクサ１２０は、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃそれぞれとＩ２Ｃバスを介して接続されている。Ｉ２Ｃマルチプレクサ１２０を指して、Ｉ２Ｃ＿ＭＵＸまたはＩ２Ｃ  ＭＵＸと表記することもある。
【００３６】
リピータ１３０，１３０ａ，１３０ｂ，１３０ｃは、ＣＭ−ＣＭ間の通信を中継する中継器である。リピータ１３０，１３０ａ，１３０ｂ，１３０ｃは、ＣＭ−ＣＭ間の通信を中継する通信部ということもできる。リピータとＣＭとの間は、ＰＣＩｅバスを介して接続されている。リピータ１３０は、ＣＭ２０１と接続されている。リピータ１３０ａは、ＣＭ２０２と接続されている。リピータ１３０ｂは、ＣＭ２０１ａと接続されている。リピータ１３０ｃは、ＣＭ２０２ａと接続されている。リピータ１３０，１３０ａ，１３０ｂ，１３０ｃは、Ｉ２Ｃ制御部１１０に対するＩ２Ｃターゲットデバイスである。リピータ１３０を指して、Ｉ２Ｃ＿ＴＧＴ０またはＩ２Ｃ  ＴＧＴ０と表記することもある。リピータ１３０ａを指して、Ｉ２Ｃ＿ＴＧＴ１またはＩ２Ｃ  ＴＧＴ１と表記することもある。リピータ１３０ｂを指して、Ｉ２Ｃ＿ＴＧＴ２またはＩ２Ｃ  ＴＧＴ２と表記することもある。リピータ１３０ｃを指して、Ｉ２Ｃ＿ＴＧＴ３またはＩ２Ｃ  ＴＧＴ３と表記することもある。リピータ１３０，１３０ａ，１３０ｂ，１３０ｃは、第１の実施の形態のターゲットデバイス３，４，５の一例である。
【００３７】
ＰＣＩｅスイッチ１４０は、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃと接続されるＰＣＩｅのスイッチである。ＰＣＩｅスイッチ１４０と各リピータとの間は、ＰＣＩｅバスを介して接続されている。
【００３８】
ＣＥ２００は、ＣＭ２０１，２０２を有する。ＣＭ２０１は、メモリ２１０、プロセッサ２２０、ＩＯＣ（Input/Output Controller）２３０、ＮＴＢ（Non Transparent Bridge）２４０、ＥＸＰ（Expander）２５０を有する。ＣＭ２０１内の各モジュールは、耐故障性を高めるために冗長化されることもある。ＣＭ２０２もＣＭ２０１と同様のハードウェアにより実現される。
【００３９】
メモリ２１０は、プロセッサ２２０による処理に実行されるファームウェアのプログラムを記憶する。メモリ２１０は、フラッシュメモリなどの不揮発性のメモリおよびＲＡＭ（Random Access Memory）などの揮発性のメモリの組み合わせでもよい。
【００４０】
プロセッサ２２０は、ＣＭ２０１全体の動作を制御する。プロセッサ２２０は、例えばＣＰＵ、ＤＳＰ、ＡＳＩＣまたはＦＰＧＡなどである。
ＩＯＣ２３０は、ＮＴＢ２４０およびＦＲＴ１０３を介した他のＣＭとの間のデータの送受信や、ＥＸＰ２５０を介したＤＥ３００との間のデータの送受信を制御する。
【００４１】
ＮＴＢ２４０は、ＦＲＴ１０３とＰＣＩｅにより接続するためのインタフェースである。ＮＴＢ２４０は、リピータ１３０と接続されている。
ＥＸＰ２５０は、ＤＥ３００とＳＡＳにより接続するためのインタフェースである。
【００４２】
ＣＡ２６０は、ＳＡＮ３０とＦＣ（Fibre Channel）により接続するためのインタフェースである。
ＣＥ２００ａは、ＣＭ２０１ａ，２０２ａを有する。ＣＭ２０１ａ，２０２ａもＣＭ２０１と同様のハードウェアにより実現される。
【００４３】
ＤＥ３００は、ＩＯＭ（Input/Output Module）３１０および記憶装置群３２０を有する。ＤＥ３００ａもＤＥ３００と同様のハードウェアにより実現される。
ＩＯＭ３１０は、ＣＭ２０１，２０２からのリクエストに応じて、記憶装置群３２０への業務データの書き込みや、記憶装置群３２０からの業務データの読み出しを実行し、その結果をＣＭ２０１，２０２に応答する。記憶装置群３２０は、業務データを記憶するＨＤＤやＳＳＤなどの集合である。
【００４４】
図４では、ＳＶＣ１０１のハードウェアを例示し、ＳＶＣ１０２の図示を省略したが、ＳＶＣ１０２もＳＶＣ１０１の同様のハードウェアを有する。また、図４では、ＦＲＴ１０３のハードウェアを例示し、ＦＲＴ１０４，１０５，１０６の図示を省略したが、ＦＲＴ１０４，１０５，１０６もＦＲＴ１０３と同様のハードウェアを有する。
【００４５】
図５は、Ｉ２Ｃ制御部／Ｉ２Ｃマルチプレクサのハードウェア例を示す図である。ここで、Ｉ２Ｃバス４１は、Ｉ２Ｃ制御部１１０とＩ２Ｃマルチプレクサ１２０とを接続するＩ２Ｃのバスである。Ｉ２Ｃバス４２は、Ｉ２Ｃマルチプレクサ１２０とリピータ１３０とを接続するＩ２Ｃのバスである。Ｉ２Ｃバス４３は、Ｉ２Ｃマルチプレクサ１２０とリピータ１３０ａとを接続するＩ２Ｃのバスである。Ｉ２Ｃバス４４は、Ｉ２Ｃマルチプレクサ１２０とリピータ１３０ｂとを接続するＩ２Ｃのバスである。Ｉ２Ｃバス４５は、Ｉ２Ｃマルチプレクサ１２０とリピータ１３０ｃとを接続するＩ２Ｃのバスである。
【００４６】
Ｉ２Ｃ制御部１１０は、プロセッサ１１１、メモリ１１２およびＩ２Ｃ−ＩＦ（InterFace）１１３を有する。
プロセッサ１１１は、Ｉ２Ｃ制御部１１０の動作を制御する。プロセッサ１１１は、例えばＣＰＵ、ＤＳＰ、ＡＳＩＣまたはＦＰＧＡなどである。
【００４７】
メモリ１１２は、プロセッサ１１１の処理に用いられるデータを記憶する。メモリ１１２は、フラッシュメモリなどの不揮発性のメモリおよびＲＡＭなどの揮発性のメモリの組み合わせでもよい。
【００４８】
Ｉ２Ｃ−ＩＦ１１３は、Ｉ２Ｃバス４１に接続するためのインタフェースである。Ｉ２Ｃ−ＩＦ１１３は、Ｉ２Ｃバス４１を介してＩ２Ｃマルチプレクサ１２０に接続されているともいえる。
【００４９】
Ｉ２Ｃマルチプレクサ１２０は、中継部１２１、パス制御レジスタ１２２、モード制御レジスタ１２３およびバッファ１２４を有する。
中継部１２１は、Ｉ２Ｃ制御部１１０とリピータ１３０，１３０ａ，１３０ｂ，１３０ｃとの通信を中継する。中継部１２１は、Ｉ２Ｃ制御部１１０の指示に応じて、Ｉ２Ｃバス４２，４３，４４，４５の何れをアクティブ化するかを制御する。また、中継部１２１は、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃから受信する応答（ＡＣＫまたはＮＡＣＫ）に応じて、Ｉ２Ｃ制御部１１０への応答を行う。
【００５０】
パス制御レジスタ１２２は、Ｉ２Ｃバス４２，４３，４４，４５のうち、アクティブなＩ２Ｃバスおよび非アクティブなＩ２Ｃバスの管理に用いられるレジスタである。
モード制御レジスタ１２３は、中継部１２１の動作モードを設定するためのレジスタである。設定可能な動作モードは、２種類ある。第１モードは、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃのうち１つのリピータとの通信を行うモードである。第１モードは、Ｉ２Ｃバス４２，４３，４４，４５のうち、１つのＩ２Ｃバスをアクティブ化するモードであるともいえる。以下の説明では、第１モードを通常モードと称することがある。
【００５１】
第２モードは、Ｉ２Ｃバス４２，４３，４４，４５のうち全てのリピータとの通信を同時に行うモードである。第２モードは、Ｉ２Ｃバス４２，４３，４４，４５のうち、全てのＩ２Ｃバスをアクティブ化するモードであるともいえる。以下の説明では、第２モードをマルチモードと称することがある。
【００５２】
バッファ１２４は、中継部１２１が中継するデータを記憶するために用いられる。また、バッファ１２４は、中継部１２１がＩ２Ｃ制御部１１０に送信する応答用の情報（ＡＣＫまたはＮＡＣＫ）の管理に用いられる。
【００５３】
図６は、リピータのハードウェア例を示す図である。リピータ１３０は、プロセッサ１３１、レジスタ１３２、Ｉ２Ｃ−ＩＦ１３３およびＰＣＩｅ−ＩＦ１３４，１３５を有する。リピータ１３０ａ，１３０ｂ，１３０ｃもリピータ１３０と同様のハードウェアにより実現される。
【００５４】
プロセッサ１３１は、リピータ１３０の動作を制御する。プロセッサ１３１は、例えばＣＰＵ、ＤＳＰ、ＡＳＩＣまたはＦＰＧＡなどである。
レジスタ１３２は、リピータ１３０の動作設定を記憶する。リピータ１３０の動作設定の内容は、Ｉ２Ｃ制御部１１０によって指定され、レジスタ１３２に格納される。リピータ１３０は、レジスタ１３２に加えて、フラッシュメモリなどの不揮発性のメモリやＲＡＭなどの揮発性のメモリを備えてもよい。
【００５５】
Ｉ２Ｃ−ＩＦ１３３は、Ｉ２Ｃバス４２に接続するためのインタフェースである。Ｉ２Ｃ−ＩＦ１３３は、Ｉ２Ｃバス４２を介してＩ２Ｃマルチプレクサ１２０に接続されているともいえる。
【００５６】
ＰＣＩｅ−ＩＦ１３４は、ＰＣＩｅバスを介してＣＭ２０１に接続するためのインタフェースである。ＰＣＩｅ−ＩＦ１３５は、ＰＣＩｅバスを介してＰＣＩｅスイッチ１４０に接続するためのインタフェースである。
【００５７】
図７は、Ｉ２Ｃバスの例を示す図である。Ｉ２Ｃでは、シリアルクロック（ＳＣＬ）およびシリアルデータ（ＳＤＡ）と呼ばれる２つの信号線が用いられる。両方の信号線とも双方向の通信に用いられる。Ｉ２Ｃバス４１，４２，４３，４４，４５は、ＳＣＬおよびＳＤＡを含む。ＳＣＬおよびＳＤＡは、プルアップ抵抗を介してプラスの電源電圧に接続される（図７ではプルアップ抵抗の図示を省略している）。Ｉ２Ｃバスがフリー状態である場合は、ＳＣＬおよびＳＤＡの両方がＨＩＧＨとなる。
【００５８】
図８は、Ｉ２Ｃバスのタイミングチャートの例を示す図である。信号５１は、ＳＣＬの信号例である。信号５２は、ＳＤＡの信号例である。Ｉ２Ｃバス上の通信は、Ｉ２Ｃ＿ＭＳＴ（マスタデバイス）によるスタートビット（スタートコンディション）の送信で開始される。スタートビットは、ＳＣＬがＨＩＧＨのときに、ＳＤＡがＨＩＧＨからＬＯＷに変化することに相当する。また、Ｉ２Ｃバス上の通信は、Ｉ２Ｃ＿ＭＳＴによるストップビット（ストップコンディション）の送信で終了する。ストップビットは、ＳＣＬがＨＩＧＨのときに、ＳＤＡがＬＯＷからＨＩＧＨに変化することに相当する。なお、Ｉ２Ｃ＿ＭＳＴは、現在のデータ送信を中断して、データの再送を行う場合などには、リピートスタートビットを送信することもできる。リピートスタートビットは、スタートビットと同じである（ＳＣＬがＨＩＧＨのときに、ＳＤＡがＨＩＧＨからＬＯＷに変化することに相当）。
【００５９】
ＳＤＡ上では８ビット単位（１バイト単位）でデータが送信される。データは最上位ビット（ＭＳＢ：Most Significant Bit）から送信される。８ビット送信毎に、受信側からのＡＣＫビットが続く。例えば、Ｉ２Ｃ＿ＴＧＴ（ターゲットデバイス）側で、ＳＣＬをＬＯＷに保持して、Ｉ２Ｃ＿ＭＳＴを強制的に待機状態とすることもできる。具体的には、Ｉ２Ｃ＿ＴＧＴ側で内部割り込み処理や他の機能を実行する間に、次回データの送信または受信の準備が完了するまで、Ｉ２Ｃ＿ＭＳＴを待機させることもできる。この場合、Ｉ２Ｃ＿ＴＧＴは、準備完了後にＳＣＬをＬＯＷからＨＩＧＨに変化させ、データ転送を再開させる。
【００６０】
ＡＣＫビットは、８ビット（ＳＣＬの１〜８番目のクロックパルスに対応するＳＤＡの８つのビット）送信後の９番目のクロックパルスに対応する。９番目のクロックパルスの期間中、Ｉ２Ｃ＿ＭＳＴは、ＳＤＡラインをリリースする。Ｉ２Ｃ＿ＴＧＴ（またはＩ２Ｃ＿ＭＵＸ）は、ＡＣＫを返す場合、当該９番目のクロックパルスがＨＩＧＨの間、ＳＤＡをＬＯＷに保持する。一方、当該９番目のクロックパルスがＨＩＧＨの間にＳＤＡがＨＩＧＨとなっているときはＮＡＣＫとなる。なお、Ｉ２Ｃ＿ＭＳＴが、Ｉ２Ｃ＿ＴＧＴにデータ転送の終了を指示する場合に、Ｉ２Ｃ＿ＭＳＴがＮＡＣＫを生成することもある。
【００６１】
図９は、Ｉ２Ｃバスの通信フォーマットの例を示す図である。図９（Ａ）は、Ｉ２Ｃ＿ＴＧＴに対するデータのＷｒｉｔｅ時の通信フォーマット６１を例示している。図９（Ｂ）は、Ｉ２Ｃ＿ＴＧＴからのデータのＲｅａｄ時の通信フォーマット６２を例示している。通信フォーマット６１，６２のうち、白色の矩形で示される部分が、Ｉ２Ｃ＿ＭＳＴからＩ２Ｃ＿ＴＧＴへ送信される情報である。通信フォーマット６１，６２のうち、網掛けされた矩形で示される部分が、Ｉ２Ｃ＿ＴＧＴからＩ２Ｃ＿ＭＳＴへ送信される情報である。
【００６２】
通信フォーマット６１は、ＳＴＡ（Start）、デバイスアドレス、ＡＣＫ、レジスタアドレス、ＡＣＫ、データ（Ｘ）、ＡＣＫ、データ（Ｘ＋１）、ＡＣＫ、データ（Ｘ＋２）、ＡＣＫおよびＳＴＰ（Stop）を含む。各情報がこの順番に転送される（ただし、前述のように白色の矩形か、網掛けの矩形かで転送方向が異なる）。
【００６３】
ＳＴＡは、スタートビットである。
デバイスアドレスは、ターゲットデバイス（リピータ１３０，１３０ａ，１３０ｂ，１３０ｃ）のアドレスである。ここで、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃのデバイスアドレスは、共通であるとする。デバイスアドレスの上位７ビットは、デバイスの識別情報である。デバイスアドレスの最下位の１ビットは、ＷｒｉｔｅまたはＲｅａｄを指示するコマンドビットである。デバイスアドレスの最下位の１ビットは、“０”の場合にＷｒｉｔｅであり、“１”の場合にＲｅａｄを示す。
【００６４】
ＡＣＫは、ＡＣＫまたはＮＡＣＫを送信するＡＣＫビットである（他のＡＣＫも同様である）。
レジスタアドレスは、ターゲットデバイスにおいてＷｒｉｔｅ対象の先頭のレジスタアドレスである。レジスタアドレスには任意のアドレスを指定できる。
【００６５】
データ（Ｘ）は、指定されたレジスタアドレス（“ｘｘｘｘ＿ｘｘｘｘ”で指定されるアドレス）に対するＷｒｉｔｅデータである。データ（Ｘ＋１）は、データ（Ｘ）を書き込んだレジスタアドレスの次のレジスタアドレスに対するＷｒｉｔｅデータである。データ（Ｘ＋２）は、データ（Ｘ＋１）を書き込んだレジスタアドレスの次のレジスタアドレスに対するＷｒｉｔｅデータである。なお、通信フォーマット６１では合計で３バイトのＷｒｉｔｅ例を示しているが、３バイト以外でもよい。
【００６６】
ＳＴＰは、ストップビットである。
通信フォーマット６２は、ＳＴＡ、デバイスアドレス、ＡＣＫ、レジスタアドレス、ＡＣＫ、ＳＴＡ、デバイスアドレス、ＡＣＫ、データ（Ｘ）、ＡＣＫ、データ（Ｘ＋１）、ＡＣＫ、データ（Ｘ＋２）、ＮＡＣＫおよびＳＴＰを含む。各情報がこの順番に転送される（ただし、前述のように白色の矩形か、網掛けの矩形かで転送方向が異なる）。
【００６７】
ＳＴＡ、デバイスアドレス、ＡＣＫ、レジスタアドレス、データ（Ｘ）、データ（Ｘ＋１）、データ（Ｘ＋２）およびＳＴＰの説明は、通信フォーマット６２と同様である。また、ＮＡＣＫは、ＡＣＫビットでＮＡＣＫが送信されることを示す。
【００６８】
通信フォーマット６２では、Ｗｒｉｔｅのデバイスアドレス（“１０００＿００００”）およびレジスタアドレスの指定後に、スタートビット（リピートスタートビット）を送信し、続けてＲｅａｄのデバイスアドレス（“１０００＿０００１”）を指定する点が、通信フォーマット６１と異なる。Ｒｅａｄ時は、Ｗｒｉｔｅコマンドによって、Ｒｅａｄ対象のレジスタアドレスを指定するためである。通信フォーマット６２の例では、ターゲットデバイスにおいてレジスタアドレス“ｘｘｘｘ＿ｘｘｘｘ”で指定されるアドレスに格納されたデータ（Ｘ）を先頭に、データ（Ｘ＋１）、データ（Ｘ＋２）と順番にＲｅａｄが行われる。なお、通信フォーマット６２では合計３バイトのＲｅａｄ例を示しているが、３バイト以外でもよい。以下の説明では、Ｗｒｉｔｅを書き込み処理（すなわち、マスタ側からターゲット側へのデータ送信）、Ｒｅａｄを読み出し処理（すなわち、ターゲット側からマスタ側へのデータ送信）と称することがある。
【００６９】
図１０は、Ｉ２Ｃマルチプレクサのレジスタの例を示す図である。図１０（Ａ）は、パス制御レジスタ１２２を例示している。図１０（Ｂ）は、モード制御レジスタ１２３を例示している。
【００７０】
パス制御レジスタ１２２は、通常モードの場合に、Ｉ２Ｃバス４２，４３，４４，４５のアクティブ化／非アクティブ化を制御するためのレジスタである。パス制御レジスタ１２２は、例えば、４ビットのレジスタであり、各ビットがＩ２Ｃバス４２，４３，４４，４５に対応する。例えば、アドレス“０”のビットは、Ｉ２Ｃバス４２に対応している。アドレス“１”のビットは、Ｉ２Ｃバス４３に対応している。アドレス“２”のビットは、Ｉ２Ｃバス４４に対応している。アドレス“３”のビットは、Ｉ２Ｃバス４５に対応している。各ビットの設定値について、“０”は該当のＩ２Ｃバスが非アクティブであることを示す。“１”は該当のＩ２Ｃバスがアクティブであることを示す。図１０（Ａ）の例では、パス制御レジスタ１２２の設定値は“１０００”である。この場合、Ｉ２Ｃバス４２がアクティブであり、Ｉ２Ｃバス４３，４４，４５が非アクティブである。
【００７１】
モード制御レジスタ１２３は、Ｉ２Ｃマルチプレクサ１２０を通常モードまたはマルチモードの何れで動作させるかを設定するためのレジスタである。モード制御レジスタ１２３は、例えば、１ビットのレジスタである。モード制御レジスタ１２３の設定値について、“０”は通常モードであることを示す。“１”はマルチモードであることを示す。マルチモードの場合は、パス制御レジスタ１２２の設定値に関わらず、Ｉ２Ｃバス４２，４３，４４，４５がアクティブとなる。ただし、マルチモードの場合に、パス制御レジスタ１２２による制御を組み合わせることもできる（４つのうちの２または３のＩ２Ｃバスをアクティブ化するなど）。
【００７２】
図１１は、Ｉ２Ｃマルチプレクサのバッファの例を示す図である。図１１（Ａ）は、応答管理バッファ１２４ａを例示している。図１１（Ｂ）は、読み出しバッファ１２４ｂを例示している。応答管理バッファ１２４ａおよび読み出しバッファ１２４ｂは、バッファ１２４に含まれる。
【００７３】
応答管理バッファ１２４ａは、Ｉ２Ｃマルチプレクサがマルチモードで動作する際に、Ｉ２Ｃ制御部１１０によるデータ送信に対するリピータ１３０，１３０ａ，１３０ｂ，１３０ｃからの受信確認応答を保持するためのバッファである。応答管理バッファ１２４ａは、例えば４ビットのレジスタであり、各ビットがＩ２Ｃバス４２，４３，４４，４５に対応している。例えば、アドレス“０”のビットは、Ｉ２Ｃバス４２（リピータ１３０）に対応している。アドレス“１”のビットは、Ｉ２Ｃバス４３（リピータ１３０ａ）に対応している。アドレス“２”のビットは、Ｉ２Ｃバス４４（リピータ１３０ｂ）に対応している。アドレス“３”のビットは、Ｉ２Ｃバス４５（リピータ１３０ｃ）に対応している。例えば、各ビットの“０”をＡＣＫに、“１”をＮＡＣＫに対応付ける（図１１（Ａ）の例では情報の内容が分かり易いようにＡＣＫまたはＮＡＣＫと表記している）。
【００７４】
中継部１２１は、Ｉ２Ｃバス４２，４３，４４，４５それぞれを介して、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃから受信確認応答を受信し、応答管理バッファ１２４ａに格納する。中継部１２１は、応答管理バッファ１２４ａの各ビットが全てＡＣＫの場合にＩ２Ｃ制御部１１０へＡＣＫを送り、応答管理バッファ１２４ａの少なくとも１つのビットがＮＡＣＫの場合にＩ２Ｃ制御部１１０へＮＡＣＫを送る。図１１（Ａ）の例では、リピータ１３０，１３０ａ，１３０ｃからはＡＣＫを受け付けており、リピータ１３０ｂからはＮＡＣＫを受け付けている。この場合、中継部１２１は、Ｉ２Ｃ制御部１１０へＮＡＣＫを送ることになる。
【００７５】
読み出しバッファ１２４ｂは、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃから読み出したデータ（読み出しデータ）を格納するためのバッファである。読み出しバッファ１２４ｂには４つのレコードが設けられており、各レコードがＩ２Ｃバス４２，４３，４４，４５（リピータ１３０，１３０ａ，１３０ｂ，１３０ｃ）に対応付けられる。レコード番号“０”のレコードは、Ｉ２Ｃバス４２に対応するリピータ１３０からの読み出しデータである。レコード番号“１”のレコードは、Ｉ２Ｃバス４３に対応するリピータ１３０ａからの読み出しデータである。レコード番号“２”のレコードは、Ｉ２Ｃバス４４に対応するリピータ１３０ｂからの読み出しデータである。レコード番号“３”のレコードは、Ｉ２Ｃバス４５に対応するリピータ１３０ｃからの読み出しデータである。
【００７６】
図１２は、Ｉ２Ｃ制御部の書き込み処理の例を示すフローチャートである。以下、図１２に示す処理をステップ番号に沿って説明する。
（Ｓ１１）Ｉ２Ｃ制御部１１０は、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃに対する共通の動作設定を行う際、Ｉ２Ｃマルチプレクサ１２０に対してマルチモードの選択を指示する。具体的には、Ｉ２Ｃ制御部１１０は、モード制御レジスタ１２３を“１”に設定する。
【００７７】
（Ｓ１２）Ｉ２Ｃ制御部１１０は、スタートビットを送信する。
（Ｓ１３）Ｉ２Ｃ制御部１１０は、書き込み先のデバイスアドレスを送信する。例えば、デバイスアドレスは“１０００＿００００”である。
【００７８】
（Ｓ１４）Ｉ２Ｃ制御部１１０は、ＡＣＫを受信したか否かを判定する。ＡＣＫを受信した場合、処理をステップＳ１５に進める。ＡＣＫを受信しない場合（すなわち、ＮＡＣＫを受信した場合）、処理をステップＳ１２に進める。ステップＳ１２に進める場合、Ｉ２Ｃ制御部１１０は、再度スタートビット（この場合、リピートスタートビットと呼ばれることもある）を送信して、デバイスアドレスからの再送を試みる。
【００７９】
（Ｓ１５）Ｉ２Ｃ制御部１１０は、書き込み先のレジスタアドレスを送信する。前述のように、レジスタアドレスとして８ビットの任意のアドレスを指定できる。
（Ｓ１６）Ｉ２Ｃ制御部１１０は、ＡＣＫを受信したか否かを判定する。ＡＣＫを受信した場合、処理をステップＳ１７に進める。ＡＣＫを受信しない場合（すなわち、ＮＡＣＫを受信した場合）、処理をステップＳ１２に進める。ステップＳ１２に進める場合、Ｉ２Ｃ制御部１１０は、再度スタートビットを送信して、デバイスアドレスからの再送を試みる。
【００８０】
（Ｓ１７）Ｉ２Ｃ制御部１１０は、８ビットの書き込みデータ（動作設定の内容を示すデータ）を送信する。
（Ｓ１８）Ｉ２Ｃ制御部１１０は、ＡＣＫを受信したか否かを判定する。ＡＣＫを受信した場合、処理をステップＳ１９に進める。ＡＣＫを受信しない場合（すなわち、ＮＡＣＫを受信した場合）、処理をステップＳ１２に進める。ステップＳ１２に進める場合、Ｉ２Ｃ制御部１１０は、再度スタートビットを送信して、デバイスアドレスからの再送を試みる。
【００８１】
（Ｓ１９）Ｉ２Ｃ制御部１１０は、データの送信を完了するか否かを判定する。完了する場合、ＮＡＣＫおよびストップビットを送信して、処理を終了する。完了しない場合、処理をステップＳ１７に進める。
【００８２】
図１３は、Ｉ２Ｃマルチプレクサの書き込み処理の例を示すフローチャートである。以下、図１３に示す処理をステップ番号に沿って説明する。なお、図中、Ｉ２Ｃ制御部１１０を「マスタ」、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃを「ターゲット」と表記することがある。
【００８３】
（Ｓ２１）Ｉ２Ｃマルチプレクサ１２０は、Ｉ２Ｃ制御部１１０によるマルチモードの選択を受け付ける。具体的には、モード制御レジスタ１２３が“１”に設定される。Ｉ２Ｃマルチプレクサ１２０は、Ｉ２Ｃバス４２，４３，４４，４５をアクティブとする。
【００８４】
（Ｓ２２）Ｉ２Ｃマルチプレクサ１２０は、スタートビットをＩ２Ｃ制御部１１０（マスタ）から受信する。Ｉ２Ｃマルチプレクサ１２０は、スタートビットをリピータ１３０，１３０ａ，１３０ｂ，１３０ｃ（ターゲット）へ送信する。Ｉ２Ｃマルチプレクサ１２０およびリピータ１３０，１３０ａ，１３０ｂ，１３０ｃは、スタートビットの受信により、新たな通信が開始されることを認識できる。
【００８５】
（Ｓ２３）Ｉ２Ｃマルチプレクサ１２０は、書き込み先のデバイスアドレスをＩ２Ｃ制御部１１０（マスタ）から受信する。Ｉ２Ｃマルチプレクサ１２０は、受信したデバイスアドレスをリピータ１３０，１３０ａ，１３０ｂ，１３０ｃ（ターゲット）へ送信する。ここで、デバイスアドレス“１０００＿００００”について、上位７ビットはリピータ１３０，１３０ａ，１３０ｂ，１３０ｃの共通の識別子である。また、最下位の１ビットはＷｒｉｔｅであることを示す。
【００８６】
（Ｓ２４）Ｉ２Ｃマルチプレクサ１２０は、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃ（ターゲット）からＡＣＫまたはＮＡＣＫの応答を受信し、応答管理バッファ１２４ａに格納する。Ｉ２Ｃマルチプレクサ１２０は、応答管理バッファ１２４ａを参照して、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃ（ターゲット）からの応答が全てＡＣＫであるか否かを判定する。全てＡＣＫである場合、処理をステップＳ２６に進める。全てＡＣＫではない場合（すなわち、少なくとも１つのＮＡＣＫがある場合）、処理をステップＳ２５に進める。
【００８７】
（Ｓ２５）Ｉ２Ｃマルチプレクサ１２０は、Ｉ２Ｃ制御部１１０（マスタ）へＮＡＣＫを応答する。Ｉ２Ｃマルチプレクサ１２０は、応答管理バッファ１２４ａの設定値を初期値にリセットする。そして、処理をステップＳ２２に進める（ステップＳ２２から手順を再開する（再送フェーズ））。
【００８８】
（Ｓ２６）Ｉ２Ｃマルチプレクサ１２０は、Ｉ２Ｃ制御部１１０（マスタ）へＡＣＫを応答する。Ｉ２Ｃマルチプレクサ１２０は、応答管理バッファ１２４ａの設定値を初期値にリセットする。
【００８９】
（Ｓ２７）Ｉ２Ｃマルチプレクサ１２０は、レジスタアドレスをＩ２Ｃ制御部１１０（マスタ）から受信する。Ｉ２Ｃマルチプレクサ１２０は、受信したレジスタアドレスをリピータ１３０，１３０ａ，１３０ｂ，１３０ｃ（ターゲット）へ送信する。
【００９０】
（Ｓ２８）Ｉ２Ｃマルチプレクサ１２０は、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃ（ターゲット）からＡＣＫまたはＮＡＣＫの応答を受信し、応答管理バッファ１２４ａに格納する。Ｉ２Ｃマルチプレクサ１２０は、応答管理バッファ１２４ａを参照して、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃ（ターゲット）からの応答が全てＡＣＫであるか否かを判定する。全てＡＣＫである場合、処理をステップＳ２９に進める。全てＡＣＫではない場合（すなわち、少なくとも１つのＮＡＣＫがある場合）、処理をステップＳ２５に進める。
【００９１】
（Ｓ２９）Ｉ２Ｃマルチプレクサ１２０は、Ｉ２Ｃ制御部１１０（マスタ）へＡＣＫを応答する。Ｉ２Ｃマルチプレクサ１２０は、応答管理バッファ１２４ａの設定値を初期値にリセットする。
【００９２】
（Ｓ３０）Ｉ２Ｃマルチプレクサ１２０は、書き込みデータをＩ２Ｃ制御部１１０（マスタ）から受信する。Ｉ２Ｃマルチプレクサ１２０は、受信した書き込みデータをリピータ１３０，１３０ａ，１３０ｂ，１３０ｃ（ターゲット）へ送信する。
【００９３】
（Ｓ３１）Ｉ２Ｃマルチプレクサ１２０は、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃ（ターゲット）からＡＣＫまたはＮＡＣＫの応答を受信し、応答管理バッファ１２４ａに格納する。Ｉ２Ｃマルチプレクサ１２０は、応答管理バッファ１２４ａを参照して、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃ（ターゲット）からの応答が全てＡＣＫであるか否かを判定する。全てＡＣＫである場合、処理をステップＳ３２に進める。全てＡＣＫではない場合（すなわち、少なくとも１つのＮＡＣＫがある場合）、処理をステップＳ２５に進める。
【００９４】
（Ｓ３２）Ｉ２Ｃマルチプレクサ１２０は、Ｉ２Ｃ制御部１１０（マスタ）へＡＣＫを応答する。Ｉ２Ｃマルチプレクサ１２０は、応答管理バッファ１２４ａの設定値を初期値にリセットする。
【００９５】
（Ｓ３３）Ｉ２Ｃマルチプレクサ１２０は、送信完了であるか否かを判定する。送信完了である場合、処理を終了する。送信完了でない場合、処理をステップＳ３０に進める。Ｉ２Ｃマルチプレクサ１２０は、Ｉ２Ｃ制御部１１０からＮＡＣＫおよびストップビットを受信した場合に、送信完了であると判断する。このとき、Ｉ２Ｃマルチプレクサ１２０は、ＮＡＣＫおよびストップビットを、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃに送信する。リピータ１３０，１３０ａ，１３０ｂ，１３０ｃは、ＮＡＣＫおよびストップビットの受信により、データの送信が完了したと判断する。
【００９６】
次に、図１２，図１３で例示した手順によるデバイス間通信のシーケンスの具体例を説明する。なお、図中、「Ｉ２Ｃマルチプレクサ」を「Ｉ２Ｃ  ＭＵＸ」と略記することがある。
【００９７】
図１４は、書き込み処理のシーケンス例を示す図である。以下、図１４に示す処理をステップ番号に沿って説明する。
（ＳＴ１）Ｉ２Ｃ制御部１１０は、Ｉ２Ｃマルチプレクサ１２０の動作モードをマルチモードに設定する。Ｉ２Ｃマルチプレクサ１２０は、Ｉ２Ｃバス４２，４３，４４，４５をアクティブ化する。
【００９８】
（ＳＴ２）Ｉ２Ｃ制御部１１０は、スタートビットを送信する。Ｉ２Ｃマルチプレクサ１２０は、スタートビットを受信する。
（ＳＴ３）Ｉ２Ｃマルチプレクサ１２０は、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃにスタートビットを転送する。リピータ１３０，１３０ａ，１３０ｂ，１３０ｃは、スタートビットを受信する。
【００９９】
（ＳＴ４）Ｉ２Ｃ制御部１１０は、デバイスアドレスを送信する。デバイスアドレスは、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃに対するＷｒｉｔｅのアドレス“１０００＿００００”である。Ｉ２Ｃマルチプレクサ１２０は、デバイスアドレスを受信する。
【０１００】
（ＳＴ５）Ｉ２Ｃマルチプレクサ１２０は、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃにデバイスアドレスを転送する。リピータ１３０，１３０ａ，１３０ｂ，１３０ｃは、デバイスアドレスを受信する。
【０１０１】
（ＳＴ６）リピータ１３０，１３０ａ，１３０ｂ，１３０ｃは、ＡＣＫを送信する。Ｉ２Ｃマルチプレクサ１２０は、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃからＡＣＫを受信する。
【０１０２】
（ＳＴ７）Ｉ２Ｃマルチプレクサ１２０は、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃからの応答が全てＡＣＫであったので、Ｉ２Ｃ制御部１１０にＡＣＫを応答する。Ｉ２Ｃ制御部１１０は、ＡＣＫを受信する。
【０１０３】
（ＳＴ８）Ｉ２Ｃ制御部１１０は、レジスタアドレスを送信する。Ｉ２Ｃマルチプレクサ１２０は、レジスタアドレスを受信する。
（ＳＴ９）Ｉ２Ｃマルチプレクサ１２０は、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃにレジスタアドレスを転送する。リピータ１３０，１３０ａ，１３０ｂ，１３０ｃは、レジスタアドレスを受信する。
【０１０４】
（ＳＴ１０）リピータ１３０，１３０ａ，１３０ｂ，１３０ｃは、ＡＣＫを送信する。Ｉ２Ｃマルチプレクサ１２０は、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃからＡＣＫを受信する。
【０１０５】
（ＳＴ１１）Ｉ２Ｃマルチプレクサ１２０は、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃからの応答が全てＡＣＫであったので、Ｉ２Ｃ制御部１１０にＡＣＫを応答する。Ｉ２Ｃ制御部１１０は、ＡＣＫを受信する。
【０１０６】
（ＳＴ１２）Ｉ２Ｃ制御部１１０は、動作設定に関する書き込みデータを送信する。Ｉ２Ｃマルチプレクサ１２０は、書き込みデータを受信する。
（ＳＴ１３）Ｉ２Ｃマルチプレクサ１２０は、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃに書き込みデータを転送する。リピータ１３０，１３０ａ，１３０ｂ，１３０ｃは、書き込みデータを受信し、指定されたレジスタアドレスに書き込む。
【０１０７】
（ＳＴ１４）リピータ１３０，１３０ａ，１３０ｂ，１３０ｃは、ＡＣＫを送信する。Ｉ２Ｃマルチプレクサ１２０は、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃからＡＣＫを受信する。
【０１０８】
（ＳＴ１５）Ｉ２Ｃマルチプレクサ１２０は、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃからの応答が全てＡＣＫであったので、Ｉ２Ｃ制御部１１０にＡＣＫを応答する。Ｉ２Ｃ制御部１１０は、ＡＣＫを受信する。
【０１０９】
（ＳＴ１６）Ｉ２Ｃ制御部１１０は、ステップＳＴ１２〜ＳＴ１５の手順を繰り返し実行することで、書き込みデータを８ビット単位でリピータ１３０，１３０ａ，１３０ｂ，１３０ｃへ送信する。そして、Ｉ２Ｃ制御部１１０は、最後の８ビットの送信後にＡＣＫを受信する。
【０１１０】
（ＳＴ１７）Ｉ２Ｃ制御部１１０は、データ送信の終了を伝えるためにＮＡＣＫを送信する。Ｉ２Ｃマルチプレクサ１２０は、ＮＡＣＫを受信する。
（ＳＴ１８）Ｉ２Ｃマルチプレクサ１２０は、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃにＮＡＣＫを転送する。リピータ１３０，１３０ａ，１３０ｂ，１３０ｃは、ＮＡＣＫを受信する。
【０１１１】
（ＳＴ１９）Ｉ２Ｃ制御部１１０は、ストップビットを送信する。Ｉ２Ｃマルチプレクサ１２０は、ストップビットを受信する。
（ＳＴ２０）Ｉ２Ｃマルチプレクサ１２０は、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃにストップビットを転送する。リピータ１３０，１３０ａ，１３０ｂ，１３０ｃは、ストップビットを受信する。
【０１１２】
このようにして、Ｉ２Ｃ制御部１１０は、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃに対して共通のデータを送信する場合に、Ｉ２Ｃマルチプレクサ１２０をマルチモードに設定する。そして、Ｉ２Ｃマルチプレクサ１２０により、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃへ当該データを同時送信させることができる。
【０１１３】
なお、図１４では、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃからの応答として全てＡＣＫを受信するケースを例示したが、何れかのリピータからＩ２Ｃマルチプレクサ１２０へＮＡＣＫが返されることもある。その場合、前述のようにＩ２Ｃマルチプレクサ１２０は、Ｉ２Ｃ制御部１１０にＮＡＣＫを応答する。そして、Ｉ２Ｃ制御部１１０は、ＮＡＣＫの受信に応じて、スタートビットの送信からやり直すことで、データの再送を行う。
【０１１４】
ところで、Ｉ２Ｃ制御部１１０は、Ｉ２Ｃマルチプレクサ１２０により、パスを１つずつ選択して、当該データを送信することも考えられる。次に比較例として、この場合のシーケンスを説明する。
【０１１５】
図１５は、書き込み処理のシーケンスの比較例を示す図である。以下、図１５に示す処理をステップ番号に沿って説明する。
（ＳＴ２１）Ｉ２Ｃ制御部１１０は、Ｉ２Ｃマルチプレクサ１２０にＩ２Ｃバス４２のパスのアクティブ化を指示する。具体的には、Ｉ２Ｃ制御部１１０は、パス制御レジスタ１２２のアドレス“０”に対応するビットを“１”に設定し、他のビットを“０”に設定する。すると、Ｉ２Ｃバス４２がアクティブとなり、Ｉ２Ｃバス４３，４４，４５が非アクティブとなる。
【０１１６】
（ＳＴ２２）Ｉ２Ｃ制御部１１０は、スタートビットを送信する。Ｉ２Ｃマルチプレクサ１２０は、スタートビットを受信する。
（ＳＴ２３）Ｉ２Ｃマルチプレクサ１２０は、アクティブであるＩ２Ｃバス４２を介して、リピータ１３０へスタートビットを転送する。リピータ１３０は、スタートビットを受信する。
【０１１７】
（ＳＴ２４）Ｉ２Ｃ制御部１１０は、デバイスアドレスを送信する。デバイスアドレスは、リピータ１３０に対するＷｒｉｔｅのアドレス“１０００＿００００”である。Ｉ２Ｃマルチプレクサ１２０は、デバイスアドレスを受信する。
【０１１８】
（ＳＴ２５）Ｉ２Ｃマルチプレクサ１２０は、リピータ１３０にデバイスアドレスを転送する。リピータ１３０は、デバイスアドレスを受信する。
（ＳＴ２６）リピータ１３０は、ＡＣＫを送信する。Ｉ２Ｃマルチプレクサ１２０は、ＡＣＫを受信する。
【０１１９】
（ＳＴ２７）Ｉ２Ｃマルチプレクサ１２０は、Ｉ２Ｃ制御部１１０にＡＣＫを転送する。Ｉ２Ｃ制御部１１０は、ＡＣＫを受信する。
（ＳＴ２８）Ｉ２Ｃ制御部１１０は、レジスタアドレスを送信する。Ｉ２Ｃマルチプレクサ１２０は、レジスタアドレスを受信する。
【０１２０】
（ＳＴ２９）Ｉ２Ｃマルチプレクサ１２０は、リピータ１３０にレジスタアドレスを転送する。リピータ１３０は、レジスタアドレスを受信する。
（ＳＴ３０）リピータ１３０は、ＡＣＫを送信する。Ｉ２Ｃマルチプレクサ１２０は、ＡＣＫを受信する。
【０１２１】
（ＳＴ３１）Ｉ２Ｃマルチプレクサ１２０は、Ｉ２Ｃ制御部１１０にＡＣＫを転送する。Ｉ２Ｃ制御部１１０は、ＡＣＫを受信する。
（ＳＴ３２）Ｉ２Ｃ制御部１１０は、動作設定に関する書き込みデータを送信する。Ｉ２Ｃマルチプレクサ１２０は、書き込みデータを受信する。
【０１２２】
（ＳＴ３３）Ｉ２Ｃマルチプレクサ１２０は、リピータ１３０に書き込みデータを転送する。リピータ１３０は、書き込みデータを受信し、指定されたレジスタアドレスに書き込む。
【０１２３】
（ＳＴ３４）リピータ１３０は、ＡＣＫを送信する。Ｉ２Ｃマルチプレクサ１２０は、ＡＣＫを受信する。
（ＳＴ３５）Ｉ２Ｃマルチプレクサ１２０は、Ｉ２Ｃ制御部１１０にＡＣＫを転送する。Ｉ２Ｃ制御部１１０は、ＡＣＫを受信する。
【０１２４】
（ＳＴ３６）Ｉ２Ｃ制御部１１０は、ステップＳＴ３２〜ＳＴ３５の手順を繰り返し実行することで、書き込みデータを８ビット単位でリピータ１３０へ送信する。そして、Ｉ２Ｃ制御部１１０は、最後の８ビットの送信後にＡＣＫを受信する。
【０１２５】
（ＳＴ３７）Ｉ２Ｃ制御部１１０は、データ送信の終了を伝えるためにＮＡＣＫを送信する。Ｉ２Ｃマルチプレクサ１２０は、ＮＡＣＫを受信する。
（ＳＴ３８）Ｉ２Ｃマルチプレクサ１２０は、リピータ１３０にＮＡＣＫを転送する。リピータ１３０は、ＮＡＣＫを受信する。
【０１２６】
（ＳＴ３９）Ｉ２Ｃ制御部１１０は、ストップビットを送信する。Ｉ２Ｃマルチプレクサ１２０は、ストップビットを受信する。
（ＳＴ４０）Ｉ２Ｃマルチプレクサ１２０は、リピータ１３０にストップビットを転送する。リピータ１３０は、ストップビットを受信する。これにより、Ｉ２Ｃマルチプレクサ１２０からリピータ１３０に対するデータ送信が完了する。
【０１２７】
（ＳＴ４１）Ｉ２Ｃ制御部１１０は、Ｉ２Ｃマルチプレクサ１２０にＩ２Ｃバス４３のパスのアクティブ化を指示する。具体的には、Ｉ２Ｃ制御部１１０は、パス制御レジスタ１２２のアドレス“１”に対応するビットを“１”に設定し、他のビットを“０”に設定する。すると、Ｉ２Ｃバス４３がアクティブとなり、Ｉ２Ｃバス４２，４４，４５が非アクティブとなる。
【０１２８】
（ＳＴ４２）Ｉ２Ｃ制御部１１０は、スタートビットを送信する。Ｉ２Ｃマルチプレクサ１２０は、スタートビットを受信する。
（ＳＴ４３）Ｉ２Ｃマルチプレクサ１２０は、アクティブであるＩ２Ｃバス４３を介して、リピータ１３０ａへスタートビットを転送する。リピータ１３０ａは、スタートビットを受信する。
【０１２９】
（ＳＴ４４）Ｉ２Ｃ制御部１１０は、デバイスアドレスを送信する。デバイスアドレスは、リピータ１３０ａに対するＷｒｉｔｅのアドレス“１０００＿０００”である。Ｉ２Ｃマルチプレクサ１２０は、デバイスアドレスを受信する。
【０１３０】
（ＳＴ４５）Ｉ２Ｃマルチプレクサ１２０は、リピータ１３０ａにデバイスアドレスを転送する。リピータ１３０ａは、デバイスアドレスを受信する。
（ＳＴ４６）リピータ１３０ａは、ＡＣＫを送信する。Ｉ２Ｃマルチプレクサ１２０は、ＡＣＫを受信する。
【０１３１】
（ＳＴ４７）Ｉ２Ｃマルチプレクサ１２０は、Ｉ２Ｃ制御部１１０にＡＣＫを転送する。Ｉ２Ｃ制御部１１０は、ＡＣＫを受信する。
以降、Ｉ２Ｃ制御部１１０は、リピータ１３０の場合と同様に、レジスタアドレスや書き込みデータの送信を行う。また、Ｉ２Ｃ制御部１１０は、リピータ１３０ａに対するデータの送信が完了すると、Ｉ２Ｃマルチプレクサ１２０に対してリピータ１３０ｂへのパス選択を行い、リピータ１３０，１３０ａと同様にして、リピータ１３０ｂに対するデータの送信を開始する。更に、Ｉ２Ｃ制御部１１０は、リピータ１３０ｂに対するデータの送信が完了すると、Ｉ２Ｃマルチプレクサ１２０に対してリピータ１３０ｃへのパス選択を行い、リピータ１３０，１３０ａ，１３０ｂと同様にして、リピータ１３０ｃに対するデータの送信を開始する。
【０１３２】
比較例のように、１つずつパスを選択しながらデータ送信を行う方法では、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃに対して共通のデータを送信する場合、パス変更のたびに、同じデータをＩ２Ｃ制御部１１０から送信することになる。しかし、同じデータを接続装置から何度も送信するのは非効率的である。パス選択や同じデータの複数回の送信が発生すると、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃの全てへのデータ送信が完了するまでに時間がかかってしまう。
【０１３３】
一方、Ｉ２Ｃ制御部１１０によれば、Ｉ２Ｃマルチプレクサ１２０をマルチモードに設定することで、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃに対して共通のデータを同時送信できる。このため、パス選択やＩ２Ｃ制御部１１０による同じデータの複数回の送信を行わなくてよくなり、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃの全てに対するデータ送信が完了するまでの時間を短縮できる。
【０１３４】
例えば、次の条件におけるデータ送信の所要時間を比較する。（１）Ｉ２Ｃの動作周波数を１００ｋＭＨｚとする。（２）Ｉ２Ｃターゲットの数を９６個とする。９６個の理由は、ストレージ装置１０におけるＣＭの搭載可能上限数が一例として２４個である想定であり、その場合、ＦＲＴ１０３，１０４，１０５，１０６には合計で９６個リピータが搭載されることになるからである。（３）書き込みデータのサイズが０ｘ５２＝８２バイトである。また、１バイトの送信当たりの所要時間は、３００マイクロ秒である。（４）ＳＶＣ１０１が９６個のＩ２Ｃターゲットの設定を行う。
【０１３５】
この場合、図１５の比較例の方法を用いると、全ターゲットへのデータ送信完了までの所要時間は、８２×９６×３００＝２３６１．６ミリ秒程度である。一方、Ｉ２Ｃ制御部１１０がＩ２Ｃマルチプレクサ１２０をマルチモードにしてデータを同時送信する場合、全ターゲットへのデータ送信完了までの所要時間は、８２×３００＝２４．６ミリ秒程度である。したがって、マルチモードを利用して同時通信する場合、図１５の比較例の方法よりも約２秒以上の短縮を見込めることになる。
【０１３６】
なお、モード制御レジスタ１２３でマルチモードが選択された場合には、Ｉ２Ｃバス４２，４３，４４，４５の全てをアクティブ化するものとしたが、２つ、または、３つのＩ２Ｃバスをアクティブ化することも考えられる。例えば、Ｉ２Ｃ制御部１１０は、マルチモードの選択に加えて、更にパス制御レジスタ１２２で２つまたは３つのビットを“１”とし、それ以外のビットを“０”に設定する。すると、Ｉ２Ｃマルチプレクサ１２０は、パス制御レジスタ１２２のうち“１”が設定された２つまたは３つのビットに対応するＩ２Ｃバスをアクティブ化する。こうして、Ｉ２Ｃ制御部１１０は、Ｉ２Ｃバス４２，４３，４４，４５の一部に接続された複数のリピータに対して、データを同時送信することもできる。
【０１３７】
ところで、図１２で例示した手順では、再送時に、再度スタートビットを送信してから、全てのリピータに対してデバイスアドレスの送信からやり直すものとした。一方、Ｉ２Ｃ制御部１１０は、ＮＡＣＫを受け付けたリピータに対してのみデータの再送を行うことも考えられる。
【０１３８】
図１６は、Ｉ２Ｃ制御部の再送処理の他の例を示すフローチャートである。以下、図１６に示す処理をステップ番号に沿って説明する。以下の手順は、Ｉ２Ｃ制御部１１０からリピータ１３０，１３０ａ，１３０ｂ，１３０ｃに対するマルチモードでのデータ送信中に実行される。
【０１３９】
（Ｓ４１）Ｉ２Ｃ制御部１１０は、ＮＡＣＫを受信する。
（Ｓ４２）Ｉ２Ｃ制御部１１０は、ＮＡＣＫの送信元パスを特定する。Ｉ２Ｃ制御部１１０は、応答管理バッファ１２４ａの情報を読み出すことでＮＡＣＫの送信元パスを特定できる。なお、この場合、Ｉ２Ｃマルチプレクサ１２０は、応答管理バッファ１２４ａの情報をＩ２Ｃ制御部１１０に提供してから、応答管理バッファ１２４ａを初期値にリセットする。Ｉ２Ｃ制御部１１０は、特定したＮＡＣＫの送信元パスの情報をメモリ１１２に格納する。その後、Ｉ２Ｃ制御部１１０は、他のリピータに対するデータ送信を継続し、当該他のリピータに対するデータ送信を完了させる。Ｉ２Ｃ制御部１１０は、ＮＡＣＫの送信元パスを非アクティブに設定してから、他のリピータに対するデータ送信を継続してもよい。
【０１４０】
（Ｓ４３）Ｉ２Ｃ制御部１１０は、Ｉ２Ｃマルチプレクサ１２０に通常モードの選択を指示する。具体的には、Ｉ２Ｃ制御部１１０は、モード制御レジスタ１２３を“０”に設定する。
【０１４１】
（Ｓ４４）Ｉ２Ｃ制御部１１０は、メモリ１１２に保存されたＮＡＣＫ送信元パス（ＮＡＣＫ送信元に該当するターゲットへのパス）の選択を、Ｉ２Ｃマルチプレクサ１２０に指示する。具体的には、Ｉ２Ｃ制御部１１０はパス制御レジスタ１２２のＮＡＣＫ送信元パス（Ｉ２Ｃバス）に対応するビットを“１”に設定し、それ以外のビットを“０”に設定する。
【０１４２】
（Ｓ４５）Ｉ２Ｃ制御部１１０は、該当のリピータに対するデータの再送を行う。具体的には、前述のように、Ｉ２Ｃ制御部１１０は、スタートビットの送信、デバイスアドレスの送信、レジスタアドレスの送信、書き込みデータの送信を順番に行う。
【０１４３】
このように、Ｉ２Ｃ制御部１１０は、再送時にはＩ２Ｃマルチプレクサ１２０の動作モードを通常モードに設定して、ＮＡＣＫ送信元のリピータに対してのみ再送を行うこともできる。再送対象のリピータを絞り込むことで、正常にデータを受信できている他のリピータへの再送を抑えられる。すなわち、正常にデータを受信できている他のリピータに対して、同じデータの送信を重複して行わなくて済み、当該他のリピータにおいて再送に伴う重複した動作の発生を抑制できる。リピータにおける余計な動作の発生を抑制することで、例えば、当該リピータに対する負荷の抑制や省電力化を図れる。
【０１４４】
次に、Ｉ２Ｃ制御部１１０がリピータ１３０，１３０ａ，１３０ｂ，１３０ｃからデータの読み出しを行う際の手順を例示する。
図１７は、Ｉ２Ｃ制御部の読み出し処理の例を示すフローチャートである。以下、図１７に示す処理をステップ番号に沿って説明する。
【０１４５】
（Ｓ５１）Ｉ２Ｃ制御部１１０は、Ｉ２Ｃマルチプレクサ１２０に対してマルチモードの選択を指示する。具体的には、Ｉ２Ｃ制御部１１０は、モード制御レジスタ１２３を“１”に設定する。
【０１４６】
（Ｓ５２）Ｉ２Ｃ制御部１１０は、スタートビットを送信する。
（Ｓ５３）Ｉ２Ｃ制御部１１０は、書き込みデバイスアドレス（書き込みコマンドを含むデバイスアドレス）を送信する。例えば、デバイスアドレスは“１０００＿００００”（最下位ビットが“０”）である。
【０１４７】
（Ｓ５４）Ｉ２Ｃ制御部１１０は、ＡＣＫを受信したか否かを判定する。ＡＣＫを受信した場合、処理をステップＳ５５に進める。ＡＣＫを受信しない場合（すなわち、ＮＡＣＫを受信した場合）、処理をステップＳ５２に進める。ステップＳ５２に進める場合、Ｉ２Ｃ制御部１１０は、再度スタートビットを送信して、デバイスアドレスからの再送を試みる。
【０１４８】
（Ｓ５５）Ｉ２Ｃ制御部１１０は、レジスタアドレスを送信する。前述のように、レジスタアドレスとして８ビットの任意のアドレスを指定できる。ここで指定されるレジスタアドレスは、データの読み出し元のアドレスである。
【０１４９】
（Ｓ５６）Ｉ２Ｃ制御部１１０は、ＡＣＫを受信したか否かを判定する。ＡＣＫを受信した場合、処理をステップＳ５７に進める。ＡＣＫを受信しない場合（すなわち、ＮＡＣＫを受信した場合）、処理をステップＳ５２に進める。ステップＳ５２に進める場合、Ｉ２Ｃ制御部１１０は、再度スタートビットを送信して、デバイスアドレスからの再送を試みる。
【０１５０】
（Ｓ５７）Ｉ２Ｃ制御部１１０は、スタートビットを送信する。
（Ｓ５８）Ｉ２Ｃ制御部１１０は、読み出しコマンドを含むデバイスアドレスを送信する。例えば、デバイスアドレスは“１０００＿０００１”（最下位ビットが“１”）である。
【０１５１】
（Ｓ５９）Ｉ２Ｃ制御部１１０は、ＡＣＫを受信したか否かを判定する。ＡＣＫを受信した場合、処理をステップＳ６０に進める。ＡＣＫを受信しない場合（すなわち、ＮＡＣＫを受信した場合）、処理をステップＳ５２に進める。ステップＳ５２に進める場合、Ｉ２Ｃ制御部１１０は、再度スタートビットを送信して、デバイスアドレスからの再送を試みる。
【０１５２】
（Ｓ６０）Ｉ２Ｃ制御部１１０は、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃにより送信された読み出しデータを受信する。Ｉ２Ｃ制御部１１０は、読み出しの完了の際には、図９（Ｂ）で例示したようにＮＡＣＫおよびストップビットを送信し、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃに完了を通知する。
【０１５３】
図１８は、Ｉ２Ｃマルチプレクサの読み出し処理の例を示すフローチャートである。以下、図１８に示す処理をステップ番号に沿って説明する。
（Ｓ６１）Ｉ２Ｃマルチプレクサ１２０は、Ｉ２Ｃ制御部１１０によるマルチモードの選択を受け付ける。具体的には、モード制御レジスタ１２３が“１”に設定される。Ｉ２Ｃマルチプレクサ１２０は、Ｉ２Ｃバス４２，４３，４４，４５をアクティブとする。
【０１５４】
（Ｓ６２）Ｉ２Ｃマルチプレクサ１２０は、スタートビットをＩ２Ｃ制御部１１０（マスタ）から受信する。Ｉ２Ｃマルチプレクサ１２０は、スタートビットをリピータ１３０，１３０ａ，１３０ｂ，１３０ｃ（ターゲット）へ送信する。
【０１５５】
（Ｓ６３）Ｉ２Ｃマルチプレクサ１２０は、書き込みコマンドを含むデバイスアドレス（“１０００＿００００”）をＩ２Ｃ制御部１１０（マスタ）から受信する。Ｉ２Ｃマルチプレクサ１２０は、受信したデバイスアドレスをリピータ１３０，１３０ａ，１３０ｂ，１３０ｃ（ターゲット）へ送信する。
【０１５６】
（Ｓ６４）Ｉ２Ｃマルチプレクサ１２０は、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃ（ターゲット）からＡＣＫまたはＮＡＣＫの応答を受信し、応答管理バッファ１２４ａに格納する。Ｉ２Ｃマルチプレクサ１２０は、応答管理バッファ１２４ａを参照して、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃ（ターゲット）からの応答が全てＡＣＫであるか否かを判定する。全てＡＣＫである場合、処理をステップＳ６６に進める。全てＡＣＫではない場合（すなわち、少なくとも１つのＮＡＣＫがある場合）、処理をステップＳ６５に進める。
【０１５７】
（Ｓ６５）Ｉ２Ｃマルチプレクサ１２０は、Ｉ２Ｃ制御部１１０（マスタ）へＮＡＣＫを応答する。Ｉ２Ｃマルチプレクサ１２０は、応答管理バッファ１２４ａの設定値を初期値にリセットする。そして、処理をステップＳ６２に進める（ステップＳ６２から手順を再開する（再送フェーズ））。
【０１５８】
（Ｓ６６）Ｉ２Ｃマルチプレクサ１２０は、Ｉ２Ｃ制御部１１０（マスタ）へＡＣＫを応答する。Ｉ２Ｃマルチプレクサ１２０は、応答管理バッファ１２４ａの設定値を初期値にリセットする。
【０１５９】
（Ｓ６７）Ｉ２Ｃマルチプレクサ１２０は、レジスタアドレスをＩ２Ｃ制御部１１０（マスタ）から受信する。Ｉ２Ｃマルチプレクサ１２０は、受信したレジスタアドレスをリピータ１３０，１３０ａ，１３０ｂ，１３０ｃ（ターゲット）へ送信する。
【０１６０】
（Ｓ６８）Ｉ２Ｃマルチプレクサ１２０は、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃ（ターゲット）からＡＣＫまたはＮＡＣＫの応答を受信し、応答管理バッファ１２４ａに格納する。Ｉ２Ｃマルチプレクサ１２０は、応答管理バッファ１２４ａを参照して、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃ（ターゲット）からの応答が全てＡＣＫであるか否かを判定する。全てＡＣＫである場合、処理をステップＳ６９に進める。全てＡＣＫではない場合（すなわち、少なくとも１つのＮＡＣＫがある場合）、処理をステップＳ６５に進める。
【０１６１】
（Ｓ６９）Ｉ２Ｃマルチプレクサ１２０は、Ｉ２Ｃ制御部１１０（マスタ）へＡＣＫを応答する。Ｉ２Ｃマルチプレクサ１２０は、応答管理バッファ１２４ａの設定値を初期値にリセットする。
【０１６２】
（Ｓ７０）Ｉ２Ｃマルチプレクサ１２０は、スタートビットをＩ２Ｃ制御部１１０（マスタ）から受信する。Ｉ２Ｃマルチプレクサ１２０は、スタートビットをリピータ１３０，１３０ａ，１３０ｂ，１３０ｃ（ターゲット）へ送信する。
【０１６３】
（Ｓ７１）Ｉ２Ｃマルチプレクサ１２０は、読み出しコマンドを含むデバイスアドレス（“１０００＿０００１”）をＩ２Ｃ制御部１１０（マスタ）から受信する。Ｉ２Ｃマルチプレクサ１２０は、受信したデバイスアドレスをリピータ１３０，１３０ａ，１３０ｂ，１３０ｃ（ターゲット）へ送信する。
【０１６４】
（Ｓ７２）Ｉ２Ｃマルチプレクサ１２０は、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃ（ターゲット）からＡＣＫまたはＮＡＣＫの応答を受信し、応答管理バッファ１２４ａに格納する。Ｉ２Ｃマルチプレクサ１２０は、応答管理バッファ１２４ａを参照して、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃ（ターゲット）からの応答が全てＡＣＫであるか否かを判定する。全てＡＣＫである場合、処理をステップＳ７３に進める。全てＡＣＫではない場合（すなわち、少なくとも１つのＮＡＣＫがある場合）、処理をステップＳ６５に進める。
【０１６５】
（Ｓ７３）Ｉ２Ｃマルチプレクサ１２０は、Ｉ２Ｃ制御部１１０（マスタ）へＡＣＫを応答する。Ｉ２Ｃマルチプレクサ１２０は、応答管理バッファ１２４ａの設定値を初期値にリセットする。
【０１６６】
（Ｓ７４）Ｉ２Ｃマルチプレクサ１２０は、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃ（ターゲット）それぞれから送信された読み出しデータを受信し、読み出しバッファ１２４ｂに格納する。Ｉ２Ｃマルチプレクサ１２０は、所定のタイミングで、バッファリングした読み出しデータをＩ２Ｃ制御部１１０に転送する。Ｉ２Ｃマルチプレクサ１２０は、Ｉ２Ｃバス４２，４３，４４，４５それぞれの識別情報（例えば、バス番号）に対応付けて、読み出しデータをＩ２Ｃ制御部１１０に提供してもよい。
【０１６７】
また、Ｉ２Ｃマルチプレクサ１２０は、Ｉ２Ｃ制御部１１０にＡＣＫを生成させるために、バッファリング中はダミーのデータをＩ２Ｃ制御部１１０に送信してもよい。そうすれば、Ｉ２Ｃマルチプレクサ１２０は、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃから読み出しデータを次々に受信してバッファリングを行える。Ｉ２Ｃマルチプレクサ１２０は、ある程度のデータ量をバッファリングした段階で、Ｉ２Ｃ制御部１１０にバッファリングしたデータを転送してもよい。
【０１６８】
次に、図１７，図１８で例示した手順によるデバイス間通信のシーケンスの具体例を説明する。
図１９は、読み出し処理のシーケンス例を示す図である。以下、図１９に示す処理をステップ番号に沿って説明する。
【０１６９】
（ＳＴ５１）Ｉ２Ｃ制御部１１０は、Ｉ２Ｃマルチプレクサ１２０の動作モードをマルチモードに設定する。Ｉ２Ｃマルチプレクサ１２０は、Ｉ２Ｃバス４２，４３，４４，４５をアクティブ化する。
【０１７０】
（ＳＴ５２）Ｉ２Ｃ制御部１１０は、スタートビットを送信する。Ｉ２Ｃマルチプレクサ１２０は、スタートビットを受信する。
（ＳＴ５３）Ｉ２Ｃマルチプレクサ１２０は、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃにスタートビットを転送する。リピータ１３０，１３０ａ，１３０ｂ，１３０ｃは、スタートビットを受信する。
【０１７１】
（ＳＴ５４）Ｉ２Ｃ制御部１１０は、デバイスアドレスを送信する。デバイスアドレスは、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃに対するＷｒｉｔｅのアドレス“１０００＿００００”である。Ｉ２Ｃマルチプレクサ１２０は、デバイスアドレスを受信する。
【０１７２】
（ＳＴ５５）Ｉ２Ｃマルチプレクサ１２０は、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃにデバイスアドレスを転送する。リピータ１３０，１３０ａ，１３０ｂ，１３０ｃは、デバイスアドレスを受信する。
【０１７３】
（ＳＴ５６）リピータ１３０，１３０ａ，１３０ｂ，１３０ｃは、ＡＣＫを送信する。Ｉ２Ｃマルチプレクサ１２０は、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃからＡＣＫを受信する。
【０１７４】
（ＳＴ５７）Ｉ２Ｃマルチプレクサ１２０は、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃからの応答が全てＡＣＫであったので、Ｉ２Ｃ制御部１１０にＡＣＫを応答する。Ｉ２Ｃ制御部１１０は、ＡＣＫを受信する。
【０１７５】
（ＳＴ５８）Ｉ２Ｃ制御部１１０は、レジスタアドレスを送信する。Ｉ２Ｃマルチプレクサ１２０は、レジスタアドレスを受信する。
（ＳＴ５９）Ｉ２Ｃマルチプレクサ１２０は、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃにレジスタアドレスを転送する。リピータ１３０，１３０ａ，１３０ｂ，１３０ｃは、レジスタアドレスを受信する。
【０１７６】
（ＳＴ６０）リピータ１３０，１３０ａ，１３０ｂ，１３０ｃは、ＡＣＫを送信する。Ｉ２Ｃマルチプレクサ１２０は、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃからＡＣＫを受信する。
【０１７７】
（ＳＴ６１）Ｉ２Ｃマルチプレクサ１２０は、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃからの応答が全てＡＣＫであったので、Ｉ２Ｃ制御部１１０にＡＣＫを応答する。Ｉ２Ｃ制御部１１０は、ＡＣＫを受信する。
【０１７８】
（ＳＴ６２）Ｉ２Ｃ制御部１１０は、スタートビットを送信する。Ｉ２Ｃマルチプレクサ１２０は、スタートビットを受信する。
（ＳＴ６３）Ｉ２Ｃマルチプレクサ１２０は、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃにスタートビットを転送する。リピータ１３０，１３０ａ，１３０ｂ，１３０ｃは、スタートビットを受信する。
【０１７９】
（ＳＴ６４）Ｉ２Ｃ制御部１１０は、デバイスアドレスを送信する。デバイスアドレスは、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃに対するＲｅａｄのアドレス“１０００＿０００１”である。Ｉ２Ｃマルチプレクサ１２０は、デバイスアドレスを受信する。
【０１８０】
（ＳＴ６５）Ｉ２Ｃマルチプレクサ１２０は、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃにデバイスアドレスを転送する。リピータ１３０，１３０ａ，１３０ｂ，１３０ｃは、デバイスアドレスを受信する。
【０１８１】
（ＳＴ６６）リピータ１３０，１３０ａ，１３０ｂ，１３０ｃは、ＡＣＫを送信する。Ｉ２Ｃマルチプレクサ１２０は、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃからＡＣＫを受信する。
【０１８２】
（ＳＴ６７）Ｉ２Ｃマルチプレクサ１２０は、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃからの応答が全てＡＣＫであったので、Ｉ２Ｃ制御部１１０にＡＣＫを応答する。Ｉ２Ｃ制御部１１０は、ＡＣＫを受信する。
【０１８３】
（ＳＴ６８）リピータ１３０，１３０ａ，１３０ｂ，１３０ｃは、指定されたレジスタアドレスから読み出した読み出しデータを送信する。Ｉ２Ｃマルチプレクサ１２０は、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃから読み出しデータを受信し、読み出しバッファ１２４ｂを用いてバッファリングする。
【０１８４】
（ＳＴ６９）Ｉ２Ｃマルチプレクサ１２０は、ダミーのデータをＩ２Ｃ制御部１１０に送信する。Ｉ２Ｃ制御部１１０は、ダミーのデータを受信する。
（ＳＴ７０）Ｉ２Ｃ制御部１１０は、ＡＣＫを送信する。Ｉ２Ｃマルチプレクサ１２０は、ＡＣＫを受信する。
【０１８５】
（ＳＴ７１）Ｉ２Ｃマルチプレクサ１２０は、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃにＡＣＫを送信する。リピータ１３０，１３０ａ，１３０ｂ，１３０ｃは、ＡＣＫを受信する。
【０１８６】
（ＳＴ７２）リピータ１３０，１３０ａ，１３０ｂ，１３０ｃは、次の読み出しデータを送信する。Ｉ２Ｃマルチプレクサ１２０は、次の読み出しデータを受信し、読み出しバッファ１２４ｂを用いてバッファリングする。
【０１８７】
Ｉ２Ｃ制御部１１０は、Ｉ２Ｃマルチプレクサ１２０によりバッファリングされた各リピータのデータを所定のタイミングで取得する。Ｉ２Ｃ制御部１１０は、バッファリングされたデータを取得している間、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃによるデータ送信を一時的に停止させてもよい。
【０１８８】
このようにして、Ｉ２Ｃ制御部１１０は、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃからデータを効率的に読み出すことができる。具体的には、ステップＳＴ５１で一度マルチモードを選択すれば、以降のスタートビット、デバイスアドレスおよびレジスタアドレスをＩ２Ｃマルチプレクサ１２０によりリピータ１３０，１３０ａ，１３０ｂ，１３０ｃへ同時送信できる。このため、Ｉ２Ｃバスを１つ１つ選択しながらＩ２Ｃ制御部１１０からスタートビット、デバイスアドレスおよびレジスタアドレスを複数回送信してデータを読み出すよりも通信時間を短縮できる。
【０１８９】
なお、第２の実施の形態の説明では、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃのデバイスアドレスを共通にしたが、異なっていてもよい。その場合、例えば、Ｉ２Ｃマルチプレクサ１２０のマルチモードでは、Ｉ２Ｃ制御部１１０が予め定められた所定のデバイスアドレスを送信する。Ｉ２Ｃマルチプレクサ１２０が、当該デバイスアドレスをリピータ１３０，１３０ａ，１３０ｂ，１３０ｃそれぞれのデバイスアドレスに書き換えて、リピータ１３０，１３０ａ，１３０ｂ，１３０ｃに送信する。スタートビットやレジスタアドレスなどの他の情報については、上記で説明した方法と同様にして送信できる。
【０１９０】
以上の第１，第２の実施の形態を含む実施形態に関し、更に以下の付記を開示する。
（付記１）  バスを介して中継装置に接続され、前記バスおよび前記中継装置を介して複数のターゲットデバイスと通信する接続装置であって、
前記中継装置の動作モードを、前記複数のターゲットデバイスのうち１のターゲットデバイスとの通信を行う第１モードと、前記複数のターゲットデバイスのうち２以上のターゲットデバイスとの通信を同時に行う第２モードとで、切り替える制御部、
を有する接続装置。
【０１９１】
（付記２）  前記制御部は、前記２以上のターゲットデバイスに共通のデータを送信する際に、前記中継装置の動作モードを前記第２モードに設定する、付記１記載の接続装置。
【０１９２】
（付記３）  前記制御部は、前記データの送信後、前記２以上のターゲットデバイスが全て肯定応答を返信した場合に前記中継装置から前記肯定応答を受信し、前記２以上のターゲットデバイスの少なくとも１つが否定応答を返信した場合に前記中継装置から前記否定応答を受信する、付記２記載の接続装置。
【０１９３】
（付記４）  前記制御部は、前記否定応答を返信したターゲットデバイスを示す情報を前記中継装置から受信し、前記中継装置の動作モードを前記第１モードに設定し、当該ターゲットデバイスに対して前記データを再送する、付記３記載の接続装置。
【０１９４】
（付記５）  前記バスは、クロック線およびデータ線の２つの信号線により双方向通信を行うシリアルバスである付記１乃至４の何れか１つに記載の接続装置。
（付記６）  前記バスは、Ｉ２Ｃバスである、付記５記載の接続装置。
【０１９５】
（付記７）  前記中継装置は、Ｉ２Ｃマルチプレクサである、付記６記載の接続装置。
（付記８）  記憶装置に対するアクセスを制御する複数のコントローラと、
前記複数のコントローラと第１の種類のバスを介して接続される複数の通信部と、
前記複数の通信部と第２の種類のバスを介して接続される中継部と、
前記第２の種類のバスを介して前記中継部に接続され、前記中継部の動作モードを、前記複数の通信部のうち１の通信部との通信を行う第１モードと、前記複数の通信部のうち２以上の通信部との通信を同時に行う第２モードとで、切り替える制御部と、
を有するストレージ装置。
【０１９６】
（付記９）  前記制御部は、前記中継部の動作モードを前記第２モードに切り替えた後に、前記第１の種類のバスに関する動作設定の情報を前記複数の通信部に送信する、付記８記載のストレージ装置。
【０１９７】
（付記１０）  前記複数の通信部は、前記第１の種類のバスを介したコントローラ間の通信を中継する複数のリピータである、付記８または９記載のストレージ装置。
【符号の説明】
【０１９８】
１  接続装置
１ａ  制御部
２  中継装置
２ａ  中継部
３，４，５  ターゲットデバイス
６，７，８，９  バス
【図１】
0006565360.tif 000002
【図２】
0006565360.tif 000003
【図３】
0006565360.tif 000004
【図４】
0006565360.tif 000005
【図５】
0006565360.tif 000006
【図６】
0006565360.tif 000007
【図７】
0006565360.tif 000008
【図８】
0006565360.tif 000009
【図９】
0006565360.tif 000010
【図１０】
0006565360.tif 000011
【図１１】
0006565360.tif 000012
【図１２】
0006565360.tif 000013
【図１３】
0006565360.tif 000014
【図１４】
0006565360.tif 000015
【図１５】
0006565360.tif 000016
【図１６】
0006565360.tif 000017
【図１７】
0006565360.tif 000018
【図１８】
0006565360.tif 000019
【図１９】
0006565360.tif 000020