(57)【要約】【課題】演算処理装置が複数の入出力デバイスの状態情報を収集する情報処理装置において、多数の入出力デバイスの状態情報を同時に収集する。【解決手段】演算処理装置（２）と複数の入出力デバイス（５−０〜５−２）とをマルチキャスト機能を設定できるブリッジ回路（３０）により接続し、入出力デバイス（５−０〜５−２）にＤＭＡ回路（５０）を設け、マルチキャスト機能を用いて入出力デバイスにＤＭＡ転送の開始指示を行う。各入出力デバイスのレジスタの読み出しに要する時間を短縮でき、ほぼ同時にＤＭＡ転送開始指示を行うため、入出力デバイスの同時刻の状態をコピーできる。
2011114383.tif 000002
【特許請求の範囲】
【請求項１】
演算処理装置と、
前記演算処理装置が使用する記憶装置と、
各々状態情報を保持する記憶部とＤＭＡ回路とを有する複数の入出力デバイスと、
前記演算処理装置と前記複数の入出力デバイスとを接続し、且つ前記演算処理装置からのマルチキャストの設定により前記演算処理装置からのパケットを前記複数の入出力デバイスにマルチキャストするブリッジ回路とを有し、
前記演算処理装置がコピー開始を指示するパケットを前記ブリッジ回路に送信し、前記ブリッジ回路が前記コピー開始を指示するパケットを前記複数の入出力デバイスにマルチキャストし、前記コピー開始を指示するパケットに応じて、前記複数の入出力デバイスの前記ＤＭＡ回路が前記記憶部の状態情報を前記ブリッジ回路を介し前記記憶装置にＤＭＡ転送する
ことを特徴とする情報処理装置。
【請求項２】
前記ＤＭＡ回路は前記コピー開始を指示するパケットのコピー開始指示を格納するコピー開始レジスタを有し、
前記ブリッジ回路は、前記コピー開始を指示するパケットのアドレスを前記マルチキャストの設定に応じて前記各入出力デバイスの前記コピー開始レジスタのアドレスに変換し、前記コピー開始を指示するパケットを前記複数の入出力デバイスにマルチキャストする
ことを特徴とする請求項１の情報処理装置。
【請求項３】
前記演算処理装置が前記転送のシーケンス番号を指示するパケットを前記ブリッジ回路に送信し、前記ブリッジ回路が前記シーケンス番号を指示するパケットを前記複数の入出力デバイスにマルチキャストし、前記複数の入出力デバイスの前記ＤＭＡ回路が前記シーケンス番号を付加した前記記憶部の状態情報を前記ブリッジ回路を介し前記記憶装置にＤＭＡ転送する
ことを特徴とする請求項１の情報処理装置。
【請求項４】
前記ＤＭＡ回路は前記マルチキャストされたシーケンス番号を格納するシーケンス番号レジスタを有し、
前記ブリッジ回路は、前記シーケンス番号を指示するパケットのアドレスを前記マルチキャストの設定に応じて前記各入出力デバイスの前記シーケンス番号レジスタのアドレスに変換し、前記シーケンス番号を指示するパケットを前記複数の入出力デバイスにマルチキャストする
ことを特徴とする請求項３の情報処理装置。
【請求項５】
前記演算処理装置は前記記憶装置に格納されたシーケンス番号と前記送信したパケットのシーケンス番号とを比較して、前記転送の完了を検出する
ことを特徴とする請求項３の情報処理装置。
【請求項６】
前記ブリッジ回路は前記マルチキャストの設定に応じて、前記演算処理装置からの受信パケットをマルチキャストするかユニキャストするかを判定する
ことを特徴とする請求項１の情報処理装置。
【請求項７】
前記ＤＭＡ回路は前記記憶装置のコピー先アドレスを格納するコピー先アドレスレジスタを有し、
前記演算処理装置は前記記憶装置に確保した前記複数の入出力デバイスの各々のコピー先アドレスを指定した前記複数の入出力デバイスの各々へのパケットを前記ブリッジ回路に送信し、前記ブリッジ回路は前記各々へのパケットを前記複数の入出力デバイスにユニキャストし、前記複数の入出力デバイスは前記コピー先アドレスレジスタに前記各々のコピー先アドレスを格納し、前記ＤＭＡ回路は前記コピー先アドレスを付加した前記記憶部の状態情報を前記ブリッジ回路を介し前記記憶装置にＤＭＡ転送する
ことを特徴とする請求項６の情報処理装置。
【請求項８】
前記ブリッジ回路は、
前記演算処理装置からの前記マルチキャストの設定情報を保持するマルチキャストレジスタと、
前記マルチキャストレジスタの設定情報を参照し、受信したパケットをマルチキャストするか、ユニキャストするかを判定するパケット解析部を有する
ことを特徴とする請求項６の情報処理装置。
【請求項９】
前記パケット解析部は前記マルチキャストレジスタの設定情報を参照し、受信したパケットのアドレスによりマルチキャストするか、ユニキャストするかを判定する
ことを特徴とする請求項８の情報処理装置。
【請求項１０】
前記演算処理装置が前記記憶装置のロード情報のロード開始アドレスを指示するパケットと前記ロード開始を指示するパケットと前記ブリッジ回路に送信し、前記ブリッジ回路が両前記パケットを前記複数の入出力デバイスにマルチキャストし、前記ロード開始を指示するパケットに応じて、前記複数の入出力デバイスが前記記憶装置の前記ロード開始アドレスの情報前記ブリッジ回路を介し読み出す
ことを特徴とする請求項１の情報処理装置。
【請求項１１】
演算処理装置と、前記演算処理装置が使用する記憶装置と、各々状態情報を保持する記憶部とＤＭＡ回路とを有する複数の入出力デバイスと、前記演算処理装置と前記複数の入出力デバイスとを接続し、且つ前記演算処理装置からのマルチキャストの設定により前記演算処理装置からのパケットを前記複数の入出力デバイスにマルチキャストするブリッジ回路とを有する情報処理装置のデバイス情報収集処理方法であって、
前記演算処理装置が前記ブリッジ回路に前記マルチキャストを設定する工程と、
前記演算処理装置がコピー開始を指示するパケットを前記ブリッジ回路に送信する工程と、
前記ブリッジ回路が前記コピー開始を指示するパケットを前記複数の入出力デバイスにマルチキャストする工程と、
前記コピー開始を指示するパケットに応じて、前記複数の入出力デバイスの前記ＤＭＡ回路が前記記憶部の状態情報を前記ブリッジ回路を介し前記記憶装置にＤＭＡ転送する工程とを有する
ことを特徴とする情報処理装置のデバイス情報収集処理方法。
【請求項１２】
前記マルチキャストする工程は、前記ブリッジ回路は、前記コピー開始を指示するパケットのアドレスを前記マルチキャストの設定に応じて前記各入出力デバイスのコピー開始レジスタのアドレスに変換し、前記コピー開始を指示するパケットを前記複数の入出力デバイスにマルチキャストする工程を有する
ことを特徴とする請求項１１の情報処理装置のデバイス情報収集処理方法。
【請求項１３】
前記演算処理装置が前記転送のシーケンス番号を指示するパケットを前記ブリッジ回路に送信する工程と、
前記ブリッジ回路が前記シーケンス番号を指示するパケットを前記複数の入出力デバイスにマルチキャストする工程とを更に有し、
前記ＤＭＡ転送する工程は、前記複数の入出力デバイスの前記ＤＭＡ回路が前記シーケンス番号を付加した前記記憶部の状態情報を前記ブリッジ回路を介し前記記憶装置にＤＭＡ転送する工程を有する
ことを特徴とする請求項１１の情報処理装置のデバイス情報収集処理方法。
【請求項１４】
前記シーケンス番号をマルチキャストする工程は、
前記ブリッジ回路が、前記シーケンス番号を指示するパケットのアドレスを前記マルチキャストの設定に応じて前記各入出力デバイスの前記シーケンス番号レジスタのアドレスに変換し、前記シーケンス番号を指示するパケットを前記複数の入出力デバイスにマルチキャストする工程を有する
ことを特徴とする請求項１３の情報処理装置のデバイス情報収集処理方法。
【請求項１５】
前記演算処理装置が前記記憶装置に格納されたシーケンス番号と前記送信したパケットのシーケンス番号とを比較して、前記転送の完了を検出する工程を更に有する
ことを特徴とする請求項１３の情報処理装置のデバイス情報収集処理方法。
【請求項１６】
前記マルチキャストする工程は、前記ブリッジ回路が前記マルチキャストの設定に応じて、前記演算処理装置からの受信パケットをマルチキャストするかユニキャストするかを判定する工程を有する
ことを特徴とする請求項１１の情報処理装置のデバイス情報収集処理方法。
【請求項１７】
前記演算処理装置が前記記憶装置に確保した前記複数の入出力デバイスの各々のコピー先アドレスを指定した前記複数の入出力デバイスの各々へのパケットを前記ブリッジ回路に送信する工程と、
前記ブリッジ回路が前記各々へのパケットを前記複数の入出力デバイスにユニキャストする工程と、
前記複数の入出力デバイスが前記コピー先アドレスレジスタに前記各々のコピー先アドレスを格納する工程とを更に有し、
前記ＤＭＡ転送する工程は、前記ＤＭＡ回路は前記コピー先アドレスを付加した前記記憶部の状態情報を前記ブリッジ回路を介し前記記憶装置にＤＭＡ転送する工程を有する
ことを特徴とする請求項１６の情報処理装置のデバイス情報収集処理方法。
【請求項１８】
前記マルチキャストする工程は、
パケット解析部が前記演算処理装置からの前記マルチキャストの設定情報を保持するマルチキャストレジスタの設定情報を参照し、受信したパケットをマルチキャストするか、ユニキャストするかを判定する工程を有する
ことを特徴とする請求項１６の情報処理装置デバイス情報収集処理方法。
【請求項１９】
前記マルチキャストする工程は、前記パケット解析部が前記マルチキャストレジスタの設定情報を参照し、受信したパケットのアドレスによりマルチキャストするか、ユニキャストするかを判定する工程を有する
ことを特徴とする請求項１８の情報処理装置のデバイス情報収集処理方法。
【請求項２０】
前記演算処理装置が前記記憶装置のロード情報のロード開始アドレスを指示するパケットと前記ロード開始を指示するパケットと前記ブリッジ回路に送信する工程と、
前記ブリッジ回路が両前記パケットを前記複数の入出力デバイスにマルチキャストする工程と、
前記ロード開始を指示するパケットに応じて、前記複数の入出力デバイスが前記記憶装置の前記ロード開始アドレスの情報前記ブリッジ回路を介し読み出す工程とを更に有する
ことを特徴とする請求項１１の情報処理装置のデバイス情報収集処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び情報処理装置のデバイス情報収集処理方法に関する。
【背景技術】
【０００２】
情報処理装置は、演算処理装置（ＣＰＵ：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、以下ＣＰＵという）とメモリ（Ｍｅｍｏｒｙ）と複数の入出力デバイス（Ｉ／Ｏ  Ｄｅｖｉｃｅ）とを有する。入出力デバイスとしては、外部のストレージデバイス等とのインタフェースデバイスやネットワークとのネットワークデバイスとが用いられる。【０００３】
デバイスドライバは、ＣＰＵがこれらの入出力デバイスをドライブするために、ＣＰＵに搭載（インストール：Ｉｎｓｔａｌｌ）される。ＣＰＵに搭載されたデバイスドライバが、各入出力デバイスの状態や動作履歴等を収集する場合がある。デバイスドライバが、各入出力デバイスの状態や動作履歴等を収集し、各入出力デバイスの診断や異常検出を行う。【０００４】
入出力デバイスの状態や動作履歴は、入出力デバイスのレジスタに格納されている。このため、複数の入出力デバイスが情報処理装置に搭載されている場合には、デバイスドライバは、入出力デバイス毎に別々に入出力デバイスのレジスタの読み出し（リード）処理を実行していた。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−１３４２８７号公報
【特許文献２】特開昭５４−０７５９５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
近年の情報処理装置に対する性能向上の要求に伴い、情報処理装置に搭載される入出力デバイスの数が増加している。入出力デバイス毎にレジスタをリードし、複数の入出力デバイスの情報を収集するため、入出力デバイスの数が増加するほどリード回数が増加し、処理時間も長くなる。【０００７】
又、複数の入出力デバイスの状態を順次読みだすため、異なる時刻での複数の入出力デバイスの状態を収集することになる。このため、高速に動作する入出力デバイスの同時刻の状態を収集するのは、困難である。【０００８】
本発明の目的は、入出力デバイス数の増大に伴う各入出力デバイスのレジスタの読み出し処理時間の増加を防止する情報処理装置及び情報処理装置のデバイス情報収集処理方法を提供することにある。
【課題を解決するための手段】
【０００９】
この目的の達成のため、開示の情報処理装置は、演算処理装置と、前記演算処理装置が使用する記憶装置と、各々状態情報を保持する記憶部とＤＭＡ回路とを有する複数の入出力デバイスと、前記演算処理装置と前記複数の入出力デバイスとを接続し、且つ前記演算処理装置からのマルチキャストの設定により前記演算処理装置からのパケットを前記複数の入出力デバイスにマルチキャストするブリッジ回路とを有し、前記演算処理装置がコピー開始を指示するパケットを前記ブリッジ回路に送信し、前記ブリッジ回路が前記コピー開始を指示するパケットを前記複数の入出力デバイスにマルチキャストし、前記コピー開始を指示するパケットに応じて、前記複数の入出力デバイスの前記ＤＭＡ回路が前記記憶部の状態情報を前記ブリッジ回路を介し前記記憶装置にＤＭＡ転送する。【００１０】
又、この目的の達成のため、開示の情報処理装置のデバイス情報収集処理方法は、演算処理装置と、前記演算処理装置が使用する記憶装置と、各々状態情報を保持する記憶部とＤＭＡ回路とを有する複数の入出力デバイスと、前記演算処理装置と前記複数の入出力デバイスとを接続し、且つ前記演算処理装置からのマルチキャストの設定により前記演算処理装置からのパケットを前記複数の入出力デバイスにマルチキャストするブリッジ回路とを有する情報処理装置のデバイス情報収集処理方法であって、前記演算処理装置がコピー開始を指示するパケットを前記ブリッジ回路に送信する工程と、前記ブリッジ回路が前記コピー開始を指示するパケットを前記複数の入出力デバイスにマルチキャストする工程と、前記コピー開始を指示するパケットに応じて、前記複数の入出力デバイスの前記ＤＭＡ回路が前記記憶部の状態情報を前記ブリッジ回路を介し前記記憶装置にＤＭＡ転送する工程とを有する。
【発明の効果】
【００１１】
マルチキャスト機能を設定できるブリッジ回路とＤＭＡ回路とを設け、マルチキャスト機能を用いてＤＭＡ転送の開始指示を行うため、各入出力デバイスのレジスタの読み出しに要する時間を短縮できる。又、ほぼ同時にＤＭＡ転送開始指示を行うため、入出力デバイスの同時刻の状態をコピーできる。特に、レジスタの読み出しを実施する入出力デバイスが多い場合や多数回のデータ収集を行う場合に有効である。
【図面の簡単な説明】
【００１２】
【図１】実施の形態の情報処理装置の構成図である。
【図２】図１の構成によるデバイス情報収集処理の説明図である。
【図３】図１の情報処理装置の詳細構成図である。
【図４】図３のスイッチ回路の構成図である。
【図５】図３のマルチキャストレジスタの説明図である。
【図６】図５のマルチキャストレジスタの設定例の説明図である。
【図７】図６のマルチキャストレジスタの設定例におけるマルチキャスト動作の説明図である。
【図８】図３の入出力デバイスの構成図である。
【図９】図３乃至図８におけるＰＣＩ  Ｅｘｐｒｅｓｓパケットの説明図である。
【図１０】実施の形態のデバイスドライバのデバイス情報収集処理のフロー図である。
【図１１】図１０のマルチキャストレジスタのアドレス設定処理の説明図である。
【図１２】図１０、図１１のマルチキャストレジスタの設定アドレスと各入出力デバイスのレジスタアドレスの関係図である。
【図１３】図１０のコピー先アドレスレジスタの設定値の説明図である。
【図１４】図１０のホストメモリに収集されたレジスタデータの格納状態の説明図である。
【図１５】他の実施の形態のマイクロコードのロード処理の説明図である。
【図１６】図１５のスイッチと入出力デバイスのブロック図である。
【図１７】図１５のマイクロコードのロード処理のフロー図である。
【図１８】図１７の入出力デバイスのアドレス値の設定例の説明図である。
【図１９】図１７のマルチキャストレジスタの設定例の説明図である。
【発明を実施するための形態】
【００１３】
以下、実施の形態の例を、情報処理装置のデバイス情報収集方法、情報処理装置、マルチキャスト機能、入出力デバイス、デバイス情報収集処理、一括ダウンロード処理の順で説明するが、開示の情報処理装置は、この実施の形態に限られない。
【００１４】
（情報処理装置のデバイス情報収集方法）
図１は、実施の形態の情報処理装置の説明図である。図２は、図１の情報処理装置のデバイス情報収集方法の説明図である。図１において、情報処理装置１は、演算処理装置（ＣＰＵ：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２と、ホスト（ＣＰＵ）２が使用するホストメモリ４と、マルチキャスト（Ｍｕｌｔｉｃａｓｔ）機能をもつブリッジ回路（Ｃｈｉｐｓｅｔと記す）３と、ブリッジ回路３に接続された複数の入出力デバイス５−０，５−１，５−２とを有する。
【００１５】
情報処理装置１には、各入出力デバイス５−０〜５−２をドライブするデバイスドライバ２０がインストール（Ｉｎｓｔａｌｌ）されている。ＣＰＵ２が、デバイスドライバ２０を実行し、各入出力デバイス５−０〜５−２をドライブする。ブリッジ回路３は、各入出力デバイス５−０〜５−２を信号線６により接続する。信号線６は、例えば、ＰＣＩ(Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｆａｃｅ) ｅｘｐｒｅｓｓ規格のパラレル信号線で構成される。ブリッジ回路３は、マルチキャスト（Ｍｕｌｔｉｃａｓｔ）機能３Ａを有する。マルチキャスト機能として、例えば、ＰＣＩ  ｅｘｐｒｅｓｓ仕様ｒｅｖ（改訂版）２．０，２．１に規定されたマルチキャスト機能を適用することが好適である。
【００１６】
入出力デバイス５−０〜５−２は、ＣＰＵ２が、外部装置と入出力するためのデバイスであり、例えば、インタフェースデバイスやネットワークデバイスとで構成される。インタフェースデバイスは、例えば、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）カードデバイス、ＳＡＳ(Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ)カードデバイス、ＦＣ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）デバイス等で構成される。このインタフェースデバイスは、情報処理装置１の外部に設けられた記憶装置等に接続される。
【００１７】
又、ネットワークデバイスは、例えば、ＮＩＣ(Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ Ｃａｒｄ)で構成され、情報処理装置１をネットワーク（例えば、ＬＡＮ(Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ)やネットワークスイッチ）に接続する。
【００１８】
デバイスドライバ２０のデータ収集処理において、ホストメモリ４のワーク領域４Ａに各入出力デバイス５−０〜５−２のレジスタコピー領域４−０〜４−２を確保する。又、入出力デバイス５−０〜５−２の各々は、レジスタコピー用ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）回路５０を有する。レジスタコピー用ＤＭＡ回路５０は、特定レジスタへのライト（Ｗｒｉｔｅ）をトリガとして、入出力デバイス５−０〜５−２のレジスタ情報を指定されたホストメモリ領域にコピーする機能を有する。図２を参照して、デバイスドライバ２０のデバイス情報収集方法を説明する。尚、図２の（１）〜（５）が以下で説明する手順に対応する。
【００１９】
（１）デバイスドライバ２０がホストメモリ４のワーク領域４Ａに各入出力デバイス５−０〜５−２のレジスタコピー領域４−０〜４−２を確保する。
【００２０】
（２）デバイスドライバ２０は入出力デバイス５−０〜５−２に各入出力デバイス５−０〜５−２のレジスタコピー領域４−０〜４−２の開始アドレスをデバイス個別に設定する。即ち、レジスタコピー用ＤＭＡ回路５０に設けられ、コピー先を指定するためのレジスタに、ホストメモリ４のワーク領域４Ａのレジスタコピー領域４−０〜４−２の開始アドレスをライトする。
【００２１】
（３）デバイスドライバ２０は、入出力デバイス５−０〜５−２のレジスタ情報を一斉採取するため、ブリッジ回路３のマルチキャスト機能３Ａを用いてマルチキャストによりレジスタライト（Ｗｒｉｔｅ）を行い、各入出力デバイス５−０〜５−２にレジスタコピーの開始を指示する。即ち、デバイスドライバ２０はレジスタコピー用ＤＭＡ回路５０に設けられたレジスタコピー制御用レジスタのコピー開始指示ビット（ｂｉｔ）をマルチキャストにより、ライトする。
【００２２】
（４）入出力デバイス５−０〜５−２のレジスタコピー用ＤＭＡ回路５０は、ホストメモリ４の指定アドレスにレジスタ情報をＤＭＡ転送（ＤＭＡ  Ｗｒｉｔｅ）して、コピーする。
【００２３】
（５） デバイスドライバ２０はホストメモリ４のワーク領域４Ａのレジスタ情報を一括で参照する。
【００２４】
以降、手順（３）〜（５）の繰り返しにより、デバイスドライバ２０がデータ収集する時に、レジスタ情報を得ることができる。
【００２５】
このように、マルチキャスト機能を用いてＤＭＡ転送の開始指示を行うため、各入出力デバイスのレジスタの読み出し（Ｒｅａｄ）に要する時間を短縮できる。特に、レジスタの読み出し（Ｒｅａｄ）を実施する入出力デバイスが多い場合に有効である。
【００２６】
（情報処理装置）
図３は、実施の形態の情報処理装置のブロック図である。図３において、図１で示したものと同一のものは同一の記号で示してある。図３において、情報処理装置１は、ＣＰＵ２と、ホスト（ＣＰＵ）２が使用するホストメモリ４と、メモリバッファ７とを有する。ＣＰＵ２は、メモリバッファ２を介しホストメモリ４に接続する。
【００２７】
又、情報処理装置１は、更に、ブリッジ回路３を構成するＩＯ（Ｉｎｐｕｔ  Ｏｕｔｐｕｔ）ハブ３０とマルチキャスト（Ｍｕｌｔｉｃａｓｔ）機能をもつスイッチ回路３２と、スイッチ回路３２に接続された複数の入出力デバイス５−０，５−１，５−２とを有する。
【００２８】
ＣＰＵ２はＩＯハブ３０に接続される。ＩＯハブ３０はＰＣＩ  ｅｘｐｒｅｓｓ（ＰＣＩｅと称す）バス６−３でスイッチ回路３２の第４のポート３９−０に接続する。スイッチ回路３２は第１〜第３のポート３９−１〜３９−３を有する。第１〜第３のポート３９−１−３９−３の各々はＰＣＩｅバス６−０〜６−２で各入出力デバイス５−０〜５−２に接続する。スイッチ回路３２の各ポート３９−０〜３９−３は後述するＰＣＩｅマルチキャスト機能を有する。このスイッチ回路３２は１対３のスイッチを示しているが、これに限らず、１対Ｎ（Ｎ＞１であり、Ｎは整数）のスイッチも適用できる。
【００２９】
ＣＰＵ２が、デバイスドライバ２０を実行し、各入出力デバイス５−０〜５−２をドライブし、且つデバイス情報の収集を行う。入出力デバイス５−０〜５−２は前述のようにインタフェースデバイスやネットワークデバイスとで構成される。
【００３０】
デバイスドライバ２０のデータ収集処理において、ホストメモリ４のワーク領域４Ａに各入出力デバイス５−０〜５−２のレジスタコピー領域４−０〜４−２を確保する。又、入出力デバイス５−０〜５−２の各々はレジスタコピー用ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）回路５０を有する。レジスタコピー用ＤＭＡ回路５０は、特定レジスタへのライト（Ｗｒｉｔｅ）をトリガとして、入出力デバイス５−０〜５−２のレジスタ情報を指定されたホストメモリ領域にコピーする機能を有する。
【００３１】
図３の実施の形態では、ホストメモリ４はメモリバッファ７を介しＣＰＵ２に接続する。一方、図１の構成では、ホストメモリ４はブリッジ回路３を介しＣＰＵ２に接続する。いずれの構成も適用できるが、図３の構成では、メモリバッファによりメモリ搭載数の拡張が可能である。
【００３２】
（マルチキャスト機能）
次に、マルチキャスト機能を有するスイッチ回路３２を説明する。図４は、図３のスイッチ回路３２の構成図である。図５は、図４のマルチキャストレジスタの説明図である。図６は、図４及び図５のマルチキャストレジスタの設定例の説明図である。図７は、図６の設定によるマルチキャスト動作の説明図である。この実施の形態では、マルチキャスト機能をＰＣＩ  ｅｘｐｒｅｓｓ仕様のマルチキャスト機能により説明する。
【００３３】
図４に示すように、各ポート３９−０〜３９−３は、パケット送受信バッファ３４−０，３５−０，３６−０，３７−０と、マルチキャストレジスタ３４−４，３５−４，３６−４，３７−４を有するパケット解析部３４−２，３５−２，３６−２，３７−２とを有する。各ポート３９−０〜３９−３は内部バス３８により接続される。
【００３４】
送受信バッファ３４−０がＰＣＩｅバス６−３からパケット（ＰＣＩｅパケット）を受信したときに、パケット解析部３４−２は、受信したパケットが特定アドレス範囲へのライトであるか否かを判定する。
【００３５】
そして、パケット解析部３４−２は受信したパケットが特定アドレス範囲へのライトであると判定した場合にマルチキャストと判断する。パケット解析部３４−２は受信したパケットをマルチキャストと判断した場合、他のすべてのポート３９−１〜３９−３に対して受信したパケットの転送をおこなう。
【００３６】
一方、パケット解析部３４−２は受信したパケットが特定アドレス範囲へのライトでないと判定した場合にユニキャストと判断する。パケット解析部３４−２は受信したパケットをユニキャストと判断した場合、パケットで指定されたポート３９−１〜３９−３に対して受信したパケットの転送をおこなう。
【００３７】
このマルチキャストかユニキャストかの判定のため、パケット解析部３４−２〜３７−２は、マルチキャストレジスタ３４−４〜３７−４を有する。例えば、ＰＣＩ  ｅｘｐｒｅｓｓ仕様書ｒｅｖ ２．０及び２．１では、図５に示すマルチキャストレジスタの仕様が定められている。
【００３８】
図５において、マルチキャストレジスタ３４−４〜３７−４は、ＰＣＩ  Ｅｘｐｒｅｓｓ 拡張機能ヘッダ（Ｅｘｔｅｎｄｅｄ  Ｃａｐａｂｉｌｉｔｙ  Ｈｅａｄｅｒ）３４０、マルチキャスト制御レジスタ（Ｍｕｌｔｉｃａｓｔ Ｃｏｎｔｒｏｌ  Ｒｅｇｉｓｔｅｒ）３４１，マルチキャスト機能レジスタ（Ｍｕｌｔｉｃａｓｔ  Ｃａｐａｂｉｌｉｔｙ  Ｒｅｇｉｓｔｅｒ）３４２，マルチキャストベースアドレスレジスタ（ＭＣ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ  Ｒｅｇｉｓｔｅｒ）３４３、マルチキャスト受信レジスタ（ＭＣ＿Ｒｅｃｅｉｖｅ  Ｒｅｇｉｓｔｅｒ）３４４、マルチキャストブロックレジスタ（ＭＣ＿Ｂｌｏｃｋ＿Ａｌｌ Ｒｅｇｉｓｔｅｒ）３４５、マルチキャストブロック不変換レジスタ（ＭＣ＿Ｂｌｏｃｋ＿Ｕｎｔｒａｎｓｌａｔｅｄ  Ｒｅｇｉｓｔｅｒ）３４６、マルチキャストオーバーレイバー（ＭＣ＿Ｏｖｅｒｌａｙ＿Ｂａｒ）３４７とを備える。
【００３９】
ＰＣＩ  Ｅｘｐｒｅｓｓ  Ｅｘｔｅｎｄｅｄ  Ｃａｐａｂｉｌｉｔｙ  Ｈｅａｄｅｒ３４０はＭｕｌｔｉｃａｓｔ用の一連のレジスタ群の開始を意味する。Ｍｕｌｔｉｃａｓｔ  Ｃｏｎｔｒｏｌ  Ｒｅｇｉｓｔｅｒ３４１には、Ｍｕｌｔｉｃａｓｔを制御するための設定ビットであるＭｕｌｔｉｃａｓｔ機能を有効にするＭＣ＿Ｅｎａｂａｌｅと有効なＭＣＧ(Ｍｕｌｔｉｃａｓｔ  Ｇｒｏｕｐ)数を示すＭＣ＿Ｎｕｍ＿Ｇｒｏｕｐが設定される。尚、ＭＣＧ数＝（ＭＣ＿Ｎｕｍ＿Ｇｒｏｕｐ＋１）である。
【００４０】
Ｍｕｌｔｉｃａｓｔ  Ｃａｐａｂｉｌｉｔｙ  Ｒｅｇｉｓｔｅｒ３４２はこのデバイス（スイッチ３２）で可能なＭｕｌｔｉｃａｓｔの機能についての情報が設定される。例えば、サポート可能なＭＣＧ数などを表示する。ＭＣ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ  Ｒｅｇｉｓｔｅｒ３４３にはＭｕｌｔｉｃａｓｔ  Ａｄｄｒｅｓｓ範囲を決定する値が設定される。即ち、ＭＣ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ  Ｒｅｇｉｓｔｅｒ３４３にはマルチキャストアドレス開始位置を示すＭＣ＿Ｂａｓｅ＿ＡｄｄｒｅｓｓとＭＣＧ１つ分のマルチキャストアドレス領域サイズを示すＭＣ＿Ｉｎｄｅｘ＿Ｐｏｓｉｔｉｏｎとを設定される。このＭＣ＿Ｉｎｄｅｘ＿Ｐｏｓｉｔｉｏｎによるマルチキャスト領域サイズは、２ＭＣ＿Ｉｎｄｅｘ＿Ｐｏｓｉｔｉｏｎである。
【００４１】
ＭＣ＿Ｒｅｃｅｉｖｅ  Ｒｅｇｉｓｔｅｒ３４４にはＭＣＧ毎にマルチキャストパケットを受け取るかどうかを設定される。ＭＣ＿Ｂｌｏｃｋ＿Ａｌｌ  Ｒｅｇｉｓｔｅｒ３４５にはＭＣＧ毎にマルチキャストパケットを転送するかどうかを設定される。ＭＣ＿Ｂｌｏｃｋ＿Ｕｎｔｒａｎｓｌａｔｅｄ  Ｒｅｇｉｓｔｅｒ３４６にはＭＣＧ毎にアドレス変換を実施していないマルチキャストパケットを転送するかどうかを設定する。
【００４２】
ＭＣ＿Ｏｖｅｒｌａｙ＿Ｂａｒ３４７には、オーバーレイが有効な場合、マルチキャストパケットのアドレスを、付け替えるアドレスとオーバーレイを実施するオーバーレイサイズＭＣ＿Ｏｖｅｒｌａｙ＿Ｓｉｚｅとが設定される。２ＭＣ＿Ｏｖｅｒｌａｙ＿Ｓｉｚｅ  Ｂｙｔｅ単位でオーバーレイを実施する。ＭＣ＿Ｏｖｅｒｌａｙ＿Ｓｉｚｅの値が６未満の場合にはオーバーレイは無効である。
【００４３】
これらのレジスタ３４１〜３４７の設定によりマルチキャストアドレス範囲Ｘは以下のように定義される。
【００４４】
ＭＣ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ ≦Ｘ＜ ＭＣ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＋２ＭＣ＿Ｉｎｄｅｘ＿Ｐｏｓｉｔｉｏｎ＊（ＭＣ＿Ｎｕｍ＿Ｇｒｏｕｐ＋１)
このような構成のマルチキャストレジスタがスイッチ回路３２の各ポート３９−０〜３９−３に設けられている。
【００４５】
例えば、パケット解析部３４−２は、マルチキャストレジスタ３４−４のＭｕｌｔｉｃａｓｔ  Ｃｏｎｔｒｏｌ  Ｒｅｇｉｓｔｅｒ３４１によりＭＣ機能が有効であると判定した場合には、ＭＣ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ  Ｒｅｇｉｓｔｅｒ３４３のＭＣ＿Ｂａｓｅ＿ＡｄｄｒｅｓｓとＭＣ＿Ｉｎｄｅｘ＿Ｐｏｓｉｔｉｏｎとから、受信したパケット（図９で後述する）の指定アドレスＸが上記式で定義される特定アドレス範囲へのライトであるか否かを判定する。
【００４６】
そして、パケット解析部３４−２は、受信したパケットが特定アドレス範囲へのライトであると判定した場合にマルチキャストと判断する。パケット解析部３４−２は、受信したパケットをマルチキャストと判断した場合、他のすべてのポート３９−１〜３９−３に対して受信したパケットの転送をおこなう。
【００４７】
以下、図６、図７を参照して、マルチキャスト機能を具体的に説明する。図６は各ポートのマルチキャストレジスタ３４−４〜３７−４の設定値の一例の説明図である。図７は図６によるマルチキャスト動作の説明図である。
【００４８】
図６では、マルチキャスト機能が有効としているため、図５のマルチキャストレジスタの内、マルチキャスト機能レジスタ（Ｍｕｌｔｉｃａｓｔ  Ｃａｐａｂｉｌｉｔｙ  Ｒｅｇｉｓｔｅｒ）３４２，マルチキャスト受信レジスタ（ＭＣ＿Ｒｅｃｅｉｖｅ  Ｒｅｇｉｓｔｅｒ）３４４、マルチキャストブロックレジスタ（ＭＣ＿Ｂｌｏｃｋ＿Ａｌｌ  Ｒｅｇｉｓｔｅｒ）３４５、マルチキャストブロック不変換レジスタ（ＭＣ＿Ｂｌｏｃｋ＿Ｕｎｔｒａｎｓｌａｔｅｄ  Ｒｅｇｉｓｔｅｒ）３４６の設定値は省略している。
【００４９】
即ち、マルチキャストレジスタの内、Ｍｕｌｔｉｃａｓｔ  Ｃｏｎｔｒｏｌ  Ｒｅｇｉｓｔｅｒ３４１のＭＣ＿Ｅｎａｂｌｅ，ＭＣ＿Ｎｕｍ＿Ｇｒｏｕｐ、マルチキャストベースアドレスレジスタ（ＭＣ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ  Ｒｅｇｉｓｔｅｒ）３４３のＭＣ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ、ＭＣ＿Ｉｎｄｅｘ＿Ｐｏｓｉｔｉｏｎ、マルチキャストオーバーレイバー（ＭＣ＿Ｏｖｅｒｌａｙ＿Ｂａｒ）３４７のＭＣ＿Ｏｖｅｒｌａｙ＿Ｂａｒ、ＭＣ＿Ｏｖｅｒｌａｙ＿Ｓｉｚｅのみの設定値を示す。
【００５０】
各ポートのマルチキャストレジスタ３４−４〜３７−４の設定値が図６の値の場合に、スイッチ回路３２は、図７に示すように、以下の手順でマルチキャストを実施する。
【００５１】
（１）ＣＰＵ２からアドレス＝「０ｘＡ０００００００」のパケットＸをポート３９−０の送受信バッファ３４−０が受信する。
【００５２】
（２）ポート３９−０のパケット解析部３４−２は、ポート３９−０のマルチキャストレジスタ３４−４の設定値（ＭＣ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ＝「０ｘＡ０００００００」、ＭＣ＿Ｉｎｄｅｘ＿Ｐｏｓｉｔｉｏｎ＝１２，ＭＣ＿Ｎｕｍ＿Ｇｒｏｕｐ＝０）からマルチキャストアドレス範囲である「０ｘＡ０００００００ 」≦Ｘ「０ｘＡ０００１０００」を決定する。パケット解析部３４−２は、パケットＸのアドレスがマルチキャストアドレス範囲内なので、パケットＸはマルチキャストパケットと判断する。
【００５３】
（３）パケット解析部３４−２は内部バス３８を介し受信したマルチキャストパケットＸを各ポート３９−１〜３９−３に転送する。
【００５４】
（４）各ポート３９−１〜３９−３においても、マルチキャストレジスタ３５−４，３６−４，３７−４を参照して同じマルチキャストアドレス範囲を決定するため、各ポート３９−１〜３９−３のパケット解析部３５−２〜３５−４は、内部バス３８から受信したパケットＸはマルチキャストパケットと判断する。
【００５５】
（５）各ポート３９−１〜３９−３のマルチキャストレジスタ３５−４〜３７−４のオーバレイサイズＭＣ＿Ｏｖｅｒｌａｙ＿Ｓｉｚｅの設定値は、「１２」である。各ポート３９−１〜３９−３のパケット解析部３５−２〜３７−２は、ＭＣ＿Ｏｖｅｒｌａｙ＿Ｓｉｚｅ＞６なので、オーバーレイ（Ｏｖｅｒｌａｙ）設定が有効であると判断する。したがって、パケット解析部３５−２〜３７−２は、パケットＸのアドレスを自己のマルチキャストレジスタ３５−４〜３７−４のＭＣ＿Ｏｖｅｒｌａｙ＿ＢＡＲに設定されているアドレス値に変換し、ＰＣＩｅバス６−０〜６−０を介し、入出力デバイス５−０〜５−２に転送する。
【００５６】
又、たとえば、入出力デバイス５−０にユニキャストを実施する場合には、パケットのアドレスを「０ｘ８００１０００」と指定する。パケットアドレス「０ｘ８００１０００」は、マルチキャストアドレス範囲（「０ｘＡ０００００００」≦Ｘ＜「０ｘＡ０００１０００」）から外れるため、ユニキャストと判断される。
【００５７】
同様に、マルチキャストパケットを入出力デバイス５−０と５−２にのみ送信する場合には、マルチキャストレジスタに新たなＭｕｌｔｉｃａｓｔ Ｇｒｏｕｐを定義して、マルチキャストレジスタ３４−４、３６−４において、該当Ｍｕｌｔｉｃａｓｔ  ＧｒｏｕｐをＢｌｏｃｋする設定（ＭＣ＿Ｒｅｃｅｉｖｅ＿Ｒｅｇｉｓｔｅｒ３４４、ＭＣ＿Ｂｌｏｃｋ＿ＡｌｌＲｅｇｉｓｔｅｒ３４５の設定）をしておけばよい。
【００５８】
（入出力デバイス）
図８は、図３の構成の入出力デバイスのブロック図である。図９は、図８のパケットフォーマットの説明図である。図８に示すように、入出力デバイス５−０，５−１，５−２は、デバイス基本機能部５２と前述のＤＭＡ回路５０と第１のマルチプレクサ５４とを有する。デバイス基本機能部５２は、例えば、インタフェースデバイスでは、インタフェースを制御するインタフェースコントローラであり、ネットワークデバイスでは、ネットワーク制御用コントローラである。
【００５９】
第１のマルチプレクサ５４は、デバイス基本機能部５２からの出力とＤＭＡ回路５０の出力とのいずれかを選択し、ＰＣＩｅバス６−０〜６−２に出力する。デバイス基本機能部５２は、マイクロコントローラ（図示せず）とレジスタ群１００と、アドレスデコーダ１１０とを有する。
【００６０】
このレジスタ群１００は、データ転送状態や制御情報、デバイスやデータ転送に関するエラー情報、デバイスのビジー率やスループットなどの性能情報、データの送受信の履歴情報を格納する。デバイスドライバ２０はＰＣＩｅバス６−０〜６−２を介しレジスタ群１００の内容を読みだすことができる。
【００６１】
アドレスデコーダ１１０は、ＰＣＩｅバス６−０〜６−２から受けたパケットのアドレスをデコードし、受信したパケットを指定したアドレスへ転送する。
【００６２】
この実施の形態では、入出力デバイス５−０〜５−２は、このデバイス基本機能部５２の構成に加えて、レジスタコピー用のＤＭＡ回路（以下、ＤＭＡエンジンという）５０を搭載している。ＤＭＡエンジン５０は、コピー開始アドレスレジスタ８０とコピー先アドレスレジスタ８２とシーケンス番号レジスタ８４と選択回路９０とマルチプレクサ８８とＰＣＩｅパケット生成シーケンサ（回路）８６とを有する。
【００６３】
コピー開始レジスタ８０はＰＣＩｅバス６−０〜６−２から設定されたコピー開始指示を保持する。コピー先アドレスレジスタ８２はＰＣＩｅバス６−０〜６−２から設定されたコピー先のアドレスを保持する。シーケンス番号レジスタ８４は転送パケットのシーケンス番号を保持する。アドレスデコーダ１１０は指定されたアドレスに対応するコピー開始アドレスレジスタ８０とコピー先アドレスレジスタ８２とシーケンス番号レジスタ８４とにパケットの設定値を格納する。
【００６４】
選択回路９０はレジスタ群１００の指定されたレジスタを選択する。第２のマルチプレクサ８８は、コピー先アドレスレジスタ８２のアドレスと選択回路９０からのレジスタダンプデータとシーケンス番号レジスタ８４からの転送パケットのシーケンス番号とが入力され、パケットをマルチプレクサ５４に出力する。
【００６５】
ＰＣＩｅパケット生成シーケンサ８６は、コピー開始レジスタ８０への１ライト（後述する）によるコピー開始指示を受けて、選択回路９０を介しレジスタ群１００内のデータをアドレスＯｆｆｓｅｔ「０ｘ００００」から「０ｘＦＦＦＣ」まで順番に読み出す。ＰＣＩｅパケット生成シーケンサ８６は、第２のマルチプレクサ８８を操作し、読みだしたデータの最後の４ｂｙｔｅにシーケンス番号レジスタ８４の４ｂｙｔｅのシーケンス番号データを付加して、４ＫｂｙｔｅのＰＣＩｅペイロード（Ｐａｙｌｏａｄ）を作成し、このＰＣＩｅペイロードにコピー先アドレスレジスタ８２のアドレスを付加し、ＰＣＩ  ｅｘｐｒｅｓｓパケットを作成する。
【００６６】
図９に示すように、ＰＣＩ  ｅｘｐｒｅｓｓパケットのフォーマットは１６ｂｙｔｅのＰＣＩｅパケットヘッダ（Ｐａｃｋｅｔ Ｈｅａｄｅｒ） と４ＫｂｙｔｅのＰＣＩｅパケットペイロードとを有する。この実施の形態では、「Ｍｅｍ  Ｗｒｉｔｅ」のパケットタイプ、ペイロード長＝４ＫＢ、コピー先アドレス（コピー開始アドレス）とが、ＰＣＩｅパケットヘッダにセットされる。又、レジスタ群１００から読みだされたレジスタデータ（レジスタダンプデータと記す）とシーケンス番号とはＰＣＩｅパケットペイロードにセットされる。
【００６７】
第２のマルチプレクサ８８から出力されたＰＣＩｅパケットは第１のマルチプレクサ５４を介しＰＣＩｅ６−０〜６−２に出力される。 
【００６８】
（デバイス情報収集処理）
次に、デバイスドライバによるデバイス情報収集処理を説明する。図１０は、本実施の形態のデバイスドライバのデバイス情報収集処理フロー図である。図１１は、図１０のマルチキャストレジスタのアドレス設定処理の説明図である。図１２は、マルチキャストレジスタの設定アドレスと各入出力デバイスのレジスタアドレスの関係図である。図１３は、図１０のコピー先アドレスレジスタの設定値の説明図である。図１４は、図１０のホストメモリに収集されたレジスタデータの格納状態の説明図である。
【００６９】
図１１乃至図１４を参照して、図１０のデバイスドライバのデバイス情報収集処理を説明する。
【００７０】
（Ｓ１０）デバイスドライバ２０は、マルチキャストの事前準備として、図６で説明した設定値を、スイッチ回路３２の各ポート３９−０〜３９−３のマルチキャストレジスタ３４−４，３５−４、３６−４，３７−４に設定する。即ち、デバイスドライバ２０は、図９で説明したＰＣＩｅパケットフォーマットにおいて、パケットタイプにコンフィグライト（Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｗｒｉｔｅ）を、アドレスに各マルチキャストレジスタのアドレスを、ペイロードに設定値を設定し、ＩＯハブ３０、ＰＣＩｅバス６−３を介しスイッチ回路３２に送信する。
【００７１】
スイッチ回路３２のポート３９−０が各ポートのマルチキャストレジスタ設定値をセットした各パケットを受信する。ポート３９−０のパケット解析部３４−２は、パケットタイプからユニキャストと判断する。そして、パケット解析部３４−２は、受信したパケットのアドレスが自己のマルチキャストレジスタ３４−４のアドレスを指定している場合、受信したパケットの設定値をマルチキャストレジスタ３４−４に書き込む。
【００７２】
又、パケット解析部３４−２は、受信したパケットのアドレスが他のポート３９−１〜３９−３のマルチキャストレジスタ３５−４〜３７−４のアドレスを指定している場合、受信したパケットを指定されたポート３９−１〜３９−３に内部バス３８を介し転送する。パケットを受信したポート３９−１〜３９−３では、パケット解析部３５−２〜３７−２は受信したパケットの設定値をマルチキャストレジスタ３５−４〜３７−４に書き込む。
【００７３】
図１１に示すように、各マルチキャストレジスタ３５−４〜３７−４に図６に示した設定値を設定した場合、マルチキャストにおいて、各入出力デバイス５−０〜５−２におけるＤＭＡエンジン５０のコピー開始レジスタ８０、コピー先アドレスレジスタ８２、シーケンス番号レジスタ８４のレジスタアドレスは、異なるアドレスに設定できる。
【００７４】
図１２に示すように、この実施の形態では、図７のパケットのレジスタアドレス（「０ｘＡ０００１０００」）に対し、各入出力デバイス５−０〜５−２におけるＤＭＡエンジン５０のコピー開始レジスタ８０のレジスタアドレスは、図６の設定値のうちＭＣ＿Ｏｖｅｒｌａｙ＿Ｂａｒの設定値「０ｘ８０００１０００」、「０ｘ８０００２０００」、「０ｘ８０００３０００」(１６進表示)に設定される。
【００７５】
そして、各レジスタ８０，８２，８４を１６ビット幅とした場合、各入出力デバイス５−０〜５−２におけるＤＭＡエンジン５０のコピー先アドレスレジスタ８２のレジスタアドレスは、図６の設定値のうちＭＣ_Ｏｖｅｒｌａｙ_Ｂａｒの設定値「０ｘ８０００１０００」、「０ｘ８０００２０００」、「０ｘ８０００３０００」（１６進表示）＋「０ｘ０００００００4」である値「０ｘ８０００１００４」、「０ｘ８０００２００４」、「０ｘ８０００３００４」(１６進表示)に設定される。
【００７６】
同様に、各入出力デバイス５−０〜５−２におけるＤＭＡエンジン５０のシーケンス番号レジスタ８４のレジスタアドレスは、図６の設定値のうちMC_Overlay_Barの設定値「０ｘ８０００１０００」、「０ｘ８０００２０００」、「０ｘ８０００３０００」(１６進表示)＋「０ｘ０００００００８」である値「０ｘ８０００１００８」、「０ｘ８０００２００８」、「０ｘ８０００３００８」(１６進表示)に設定される。
【００７７】
このようにして、デバイスドライバ２０は図５、図６で説明した設定値をスイッチ回路３２の各ポート３９−０〜３９−３のマルチキャストレジスタ３４−４，３５−４、３６−４，３７−４に設定する。これにより、マルチキャスト機能を用いて、ＤＭＡ回路５０の各レジスタ８０，８２，８４にデータをライトできる。
【００７８】
（Ｓ１２）デバイスドライバ２０は入出力デバイス５−０〜５−２からコピーされるレジスタ情報を格納するための領域４−０〜４−２をホストメモリ４の特定位置に確保する。本実施の形態では、１つの入出力デバイスあたり約４Ｋｂｙｔｅのレジスタ情報を持つため、４Ｋｂｙｔｅ＊３の領域を必要とする。従って、デバイスドライバ２０はホストメモリ４にアドレス「０ｘ２０００００００」から「０ｘ２０００２ＦＦＦ」までの領域を確保する。
【００７９】
（Ｓ１４）デバイスドライバ２０は各入出力デバイス５−０〜５−２のコピー先アドレスレジスタ８２に確保したホストメモリの開始アドレスを設定する。この場合、各入出力デバイス５−０〜５−２でコピー先アドレス設定値が異なるため、ステップＳ１０で説明したように、デバイスドライバ２０は、ＰＣＩｅパケットフォーマットにおいて、パケットタイプにメモリライト（ＭＥＭ  Ｗｒｉｔｅ）を、アドレスに各入出力デバイス５−０〜５−２のコピー先アドレスレジスタ８２のアドレスを、ペイロードに各開始アドレス値を設定し、ＩＯハブ３０、ＰＣＩｅバス６−３を介しスイッチ回路３２に送信する。
【００８０】
スイッチ回路３２のポート３９−０が各入出力デバイス５−０〜５−２のコピー先開始アドレス設定値をセットした各パケットを受信する。ポート３９−０のパケット解析部３４−２は受信したパケットを指定されたポート３９−１〜３９−３に内部バス３８を介し転送する。
【００８１】
パケットを受信したポート３９−１〜３９−３では、パケット解析部３５−２〜３７−２は受信したパケットをＰＣＩｅバス６−０〜６−２を介し入出力デバイス５−０〜５−２に転送する。入出力デバイス５−０〜５−２では、アドレスデコーダ１１０がパケットのアドレスをデコードし、受信パケットの設定値（コピー先開始アドレス）をコピー先アドレスレジスタ８２に書き込む。
【００８２】
図１３は、各入出力デバイス５−０〜５−２のコピー先アドレスレジスタ８２のコピー先アドレスの一例を示す。ステップＳ１２で説明したように、デバイスドライバ２０は、入出力デバイス５−０〜５−２に対し、ホストメモリ４にアドレス「０ｘ２０００００００」から「０ｘ２０００２ＦＦＦ」までの領域を確保したため、各入出力デバイス５−０〜５−２のコピー先アドレスレジスタ８２のコピー先アドレスは、「０ｘ２０００００００」、「０ｘ２０００１０００」、「０ｘ２０００２０００」となる。
【００８３】
（Ｓ１６）次に、デバイスドライバ２０はシーケンス番号をマルチキャストで設定する。デバイス情報のコピーを行った際に、ホストメモリ４上のデータがそのコピー指示に対応したものであるかを確認するために、デバイスドライバ２０がシーケンス番号を使用する。即ち、デバイスドライバ２０は、パケットタイプ「ＭＥＭ  Ｗｒｉｔｅ」、アドレス＝「０ｘＡ００００００８」、データ（ペイロード）＝「０ｘ０１２３４５６７」を設定したＰＣＩｅパケットをＩＯハブ３０、ＰＣＩｅバス６−３を介しスイッチ回路３２に送信する。このデータ「０ｘ０１２３４５６７」はレジスタ情報のコピーが実施されるたびに「１」を加算（インクリメント）される値であり、少なくとも前回のレジスタ情報のコピーと異なる値となるように設定する。
【００８４】
スイッチ回路３２では、ポート３９−０のパケット解析部３４−２がパケットのアドレス「０ｘＡ００００００８」から受信したパケットをマルチキャストパケットと判断して、内部バス３８を介し各ポート３９−１〜３９−３に受信したパケットを転送する。各ポート３９−１〜３９−３のパケット解析部３５−２〜３７−２は同様にパケットのアドレス「０ｘＡ００００００８」から受信したパケットをマルチキャストパケットと判断する。
【００８５】
そして、パケット解析部３５−２〜３７−２は受信したパケットのアドレスをＭＣ＿Ｏｖｅｒｌａｙ＿Ｂａｒの設定値「０ｘ８０００１０００」、「０ｘ８０００２０００」、「０ｘ８０００３０００」を用いてＤＭＡエンジン５０のシーケンス番号レジスタ８４のレジスタアドレス値「０ｘ８０００１００８」、「０ｘ８０００２００８」、「０ｘ８０００３００８」(１６進表示)に変換する。パケット解析部３５−２〜３７−２は変換されたアドレスを持つパケットをＰＣＩｅバス６−０〜６−２を介し入出力デバイス５−０〜５−２に転送する。入出力デバイス５−０〜５−２では、アドレスデコーダ１１０がパケットのアドレスをデコードし、受信パケットの設定値（シーケンス番号）をシーケンス番号レジスタ８４に書き込む。
【００８６】
（Ｓ１８）デバイスドライバ２０はレジスタ情報のコピー開始をマルチキャストで指示する。デバイスドライバ２０は、アドレス＝「０ｘＡ０００００００」にデータ＝「０ｘ０００００００１」 (本実施の形態ではbit0がコピー開始指示ビットとする）を設定する。即ち、デバイスドライバ２０は、パケットタイプ「ＭＥＭ  Ｗｒｉｔｅ」、アドレス＝「０ｘＡ０００００００」、データ（ペイロード）＝「０ｘ０００００００１」を設定したＰＣＩｅパケットをＩＯハブ３０、ＰＣＩｅバス６−３を介しスイッチ回路３２に送信する。
【００８７】
スイッチ回路３２では、ポート３９−０のパケット解析部３４−２がパケットのアドレス「０ｘＡ０００００００」から受信したパケットをマルチキャストパケットと判断して、内部バス３８を介し各ポート３９−１〜３９−３に転送する。各ポート３９−１〜３９−３のパケット解析部３５−２〜３７−２は同様にパケットのアドレス「０ｘＡ０００００００」から受信したパケットをマルチキャストパケットと判断する。
【００８８】
そして、パケット解析部３５−２〜３７−２は受信したパケットのアドレス（図７の「０ｘＡ０００１０００」）をＭＣ＿Ｏｖｅｒｌａｙ＿Ｂａｒの設定値「０ｘ８０００１０００」、「０ｘ８０００２０００」、「０ｘ８０００３０００」を用いてＤＭＡエンジン５０のコピー開始レジスタ８０のレジスタアドレス値「０ｘ８０００１０００」、「０ｘ８０００２０００」、「０ｘ８０００３０００」(１６進表示)に変換する。パケット解析部３５−２〜３７−２は変換されたアドレスを持つパケットをＰＣＩｅバス６−０〜６−２を介し入出力デバイス５−０〜５−２に転送する。入出力デバイス５−０〜５−２では、アドレスデコーダ１１０がパケットのアドレスをデコードし、受信パケットの設定値（コピー開始指示）をコピー開始レジスタ８０に書き込む。
【００８９】
ＰＣＩｅパケット生成シーケンサ８６はコピー開始レジスタ８０を監視し、コピー開始レジスタ８０にコピー開始指示が書き込まれたことを判定する。ＰＣＩｅパケット生成シーケンサ８６はコピー開始レジスタ８０にコピー開始指示が書き込まれたと判定すると、指定されたホストメモリへレジスタ情報のコピーを開始する。
【００９０】
即ち、ＰＣＩｅパケット生成シーケンサ８６は選択回路９０を順次選択し、レジスタ群１００内のデータをアドレスＯｆｆｓｅｔ「０ｘ００００」から「０ｘＦＦＦＣ」まで順番に読み出す。ＰＣＩｅパケット生成シーケンサ８６は、第２のマルチプレクサ８８を操作し、読みだしたデータの最後の4byteにシーケンス番号レジスタ８４の４ｂｙｔｅのシーケンス番号データを付加して、４ＫｂｙｔｅのＰＣＩｅペイロード（Ｐａｙｌｏａｄ）を作成し、このＰＣＩｅペイロードにコピー先アドレスレジスタ８２のアドレスを付加し、ＰＣＩ ｅｘｐｒｅｓｓパケットを作成する。
【００９１】
そして、第２のマルチプレクサ８８から出力されたＰＣＩｅパケット（図９参照）は第１のマルチプレクサ５４を介しＰＣＩｅバス６−０，６−１，６−２に送信される。スイッチ回路３２は受信した各入出力デバイス５−０〜５−２からのＰＣＩｅパケットをＩＯハブ３０、ＰＣＩｅバス６−３を介しＣＰＵ２へ転送する。ＣＰＵ２は転送されたＰＣＩｅパケットをホストメモリ４のアドレスで指定された領域４−０〜４−２に格納する。図１４に示すように、各入出力デバイス５−０〜５−２からのレジスタダンプデータ（ペイロード）はホストメモリ４のコピー先開始アドレスで先頭指定された領域４−０〜４−２に格納される。
【００９２】
（Ｓ２０）デバイスドライバ２０は、ホストメモリ４のシーケンス番号を読みだす。即ち、デバイスドライバ２０はホストメモリ４の各デバイスのシーケンス番号がコピーされている領域（図１４では、メモリアドレス「０ｘ２００００ＦＦＣ」、「０ｘ２０００１ＦＦＣ」、「０ｘ２０００２ＦＦＣ」(１６進表示)）の内容を読みだす。尚、図１４の例では、シーケンス番号はコピー開始アドレス+０ｘＦＦＣの位置に存在する。
【００９３】
（Ｓ２２）デバイスドライバ２０は読みだした値とステップＳ１６で設定した値（すなわち本実施の形態では「０ｘ０１２３４５６７」）とを比較する。テストドライバ２０は読みだした値とステップＳ１６で設定した値とが同一であると判断すると、ホストメモリ４にレジスタ情報のコピーが完了しているのでステップＳ２４に進む。
【００９４】
逆に、デバイスドライバ２０は読みだした値がステップＳ１６で設定した値と異なると判断した場合には、一定時間経過後再度ステップＳ２０の処理を実行する。
【００９５】
（Ｓ２４）テストドライバ２０は読みだした値とステップＳ１６で設定した値とが同一であると判断すると、デバイスドライバ２０はホストメモリ４からレジスタ情報のコピーを読みだす。
【００９６】
このように、初回のレジスタ情報収集の際には、ステップＳ１０〜Ｓ２４の処理が必要となるが、２回目以降のレジスタ情報収集の際は、ステップＳ１０〜Ｓ１４の処理は不要である。このため、マルチキャスト機能を用いてＤＭＡ転送の開始指示を行うため、各入出力デバイスのレジスタの読み出し（Ｒｅａｄ）に要する時間を短縮できる。又、ほぼ同時にＤＭＡ転送開始指示を行うため、入出力デバイスの同時刻の状態をコピーできる。特に、レジスタの読み出し（Ｒｅａｄ）を実施する入出力デバイスが多い場合や多数回のデータ収集を行う場合に有効である。
【００９７】
（一括ダウンロード処理）
次に、前述のマルチキャスト機能を適用した一括ダウンロード処理を説明する。図１５は、実施の形態の一括ダウンロード処理の説明図である。図１５において、図１乃至図４で示したものは、同一の記号で示してある。
【００９８】
図１５に示すように、情報処理装置１は、演算処理装置（ＣＰＵ：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２と、ホスト（ＣＰＵ）２が使用するホストメモリ４と、マルチキャスト（Ｍｕｌｔｉｃａｓｔ）機能をもつブリッジ回路（Ｃｈｉｐｓｅｔと記す）３と、ブリッジ回路３に接続された複数の入出力デバイス５−０，５−１，５−２とを有する。
【００９９】
情報処理装置１には、各入出力デバイス５−０〜５−２をドライブするデバイスドライバ２０がインストール（Ｉｎｓｔａｌｌ）されている。ＣＰＵ２が、デバイスドライバ２０を実行し、各入出力デバイス５−０〜５−２をドライブする。ブリッジ回路３は各入出力デバイス５−０〜５−２を信号線６−０〜６−２によりポイントツーポイント（Ｐｏｉｎｔ  Ｔｏ  Ｐｏｉｎｔ）で接続する。
【０１００】
信号線６−０〜６−２は、例えば、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｆａｃｅ）ｅｘｐｒｅｓｓ規格のシリアル信号線で構成される。ブリッジ回路３はマルチキャスト（Ｍｕｌｔｉｃａｓｔ）機能３Ａを有する。マルチキャスト機能として、例えば、ＰＣＩ  ｅｘｐｒｅｓｓ仕様ｒｅｖ（改訂版）２．０，２．１に規定されたマルチキャスト機能を適用することが好適である。
【０１０１】
入出力デバイス５−０〜５−２は、インタフェースデバイスやネットワークデバイスとで構成され、マイクロコントローラ（Ｍｉｃｒｏ  Ｃｏｎｔｒｏｌｌｅｒ）５６を備える。インタフェースデバイスは、例えば、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）カードデバイス、ＳＡＳ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ）カードデバイス、ＦＣ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）デバイス等で構成される。このインタフェースデバイスは情報処理装置１の外部に設けられた記憶装置等に接続される。
【０１０２】
マイクロコントローラ５６は、マイクロコード（ファームウェアプログラム）を実行し、所望のプロトコルでインタフェース機能を実行する。情報処理装置１の起動時やマイクロコードの更新時に、情報処理装置１のデバイスドライバ２０はマイクロコードを入出力デバイス５−０〜５−２のマイクロコントローラ５６にロードする。
【０１０３】
入出力デバイス５−０〜５−２は後述するロード開始アドレスレジスタとロード開始レジスタとを備える。これらのレジスタを使用して、マイクロコードのロードにマルチキャスト機能を利用する。
【０１０４】
（１）デバイスドライバ２０はホストメモリ４上の特定の場所４−１０にマイクロコードを配置する（書き込む）。
【０１０５】
（２）デバイスドライバ２０は各入出力デバイス５−０〜５−２のロード開始アドレスレジスタにロード開始アドレスをマルチキャストでライトする。
【０１０６】
（３）デバイスドライバ２０は入出力デバイスにマイクロローディングの開始を指示する。即ち、デバイスドライバ２０は各入出力デバイス５−０〜５−２のロード開始レジスタにロード開始をマルチキャストでライトする。
【０１０７】
（４）開始指示を受けた入出力デバイス５−０〜５−２はホストメモリ４上の開始アドレスからマイクロコードをロードする。
【０１０８】
多数の入出力デバイスが共通バスに接続されている本実施の構成とは異なる接続形式の場合には、入出力デバイスがメモリ上のマイクロコードを短時間でロードできる。しかしながら、本実施の形態にように、入出力デバイスがＰＣＩeのようにスイッチ回路にポイントツーポイント接続されている場合には、デバイスドライバ２０が接続された個々の入出力デバイスに開始アドレス通知とロード指示を行う必要がある。このため、マイクロコードのローディングに要する時間が増加する。
【０１０９】
本実施の形態のように、マルチキャスト機能により開始アドレス、ロード開始を指示することにより、マイクロコードのロードが必要な入出力デバイスの数が増加しても、マイクロコードのローディングに要する時間を短縮できる。
【０１１０】
以下、より詳細に説明する。図１６は、図３及び図１５の構成におけるスイッチ回路と各入出力デバイスとの構成図である。図１６においては、図３、図４及び図７のスイッチ回路３２の構成を適用しているため、図１６において、図３、図４及び図７で説明したものと同一のものは同一の記号で示してある。又、マルチキャスト機能は図４乃至図７で説明したものと同一のため、説明を省略する。
【０１１１】
図１６において、スイッチ回路３２はＰＣＩｅバス６−３に接続する第１のポート３９−０と各々ＰＣＩｅバス６−０〜６−２に接続する第２、第３、第４のポート３９−１〜３９−３と、各ポート３９−０〜３９−３を接続する内部バス３８とを有する。
【０１１２】
図４で説明したように、各ポート３９−０〜３９−３は、パケット送受信バッファ３４−０，３５−０，３６−０，３７−０と、マルチキャストレジスタ３４−４，３５−４，３６−４，３７−４を有するパケット解析部３４−２，３５−２，３６−２，３７−２とを有する。そして、パケット解析部のマルチキャスト機能は図４乃至図７で説明したものと同一である。
【０１１３】
各入出力デバイス５−０〜５−２はマイクロコードをロードするためのロード開始アドレスレジスタ１０２とロード開始レジスタ１０４を有する。
【０１１４】
図１７は、本実施の形態のマイクロコードのロード処理フロー図である。図１８は、図１７の処理によるレジスタのアドレスの説明図である。図１９は、各ポートのマルチキャストレジスタ３４−４〜３７−４の設定値の一例の説明図である。
【０１１５】
（Ｓ３０）デバイスドライバ２０は、マルチキャストの事前準備として、図１９で説明する設定値を、スイッチ回路３２の各ポート３９−０〜３９−３のマルチキャストレジスタ３４−４，３５−４、３６−４，３７−４に設定する。即ち、デバイスドライバ２０は、図９で説明したＰＣＩｅパケットフォーマットにおいて、パケットタイプにコンフィグライト（Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｗｒｉｔｅ）を、アドレスに各マルチキャストレジスタのアドレスを、ペイロードに設定値を設定し、ＩＯハブ３０を介しスイッチ回路３２に送信する。
【０１１６】
スイッチ回路３２のポート３９−０が各ポートのマルチキャストレジスタ設定値をセットした各パケットを受信する。ポート３９−０のパケット解析部３４−２は、パケットタイプからユニキャストと判断する。そして、パケット解析部３４−２は、受信したパケットのアドレスが自己のマルチキャストレジスタ３４−４のアドレスを指定している場合、受信したパケットの設定値をマルチキャストレジスタ３４−４に書き込む。
【０１１７】
又、パケット解析部３４−２は、受信したパケットのアドレスが他のポート３９−１〜３９−３のマルチキャストレジスタ３５−４〜３７−４のアドレスを指定している場合、受信したパケットを指定されたポート３９−１〜３９−３に内部バス３８を介し転送する。パケットを受信したポート３９−１〜３９−３では、パケット解析部３５−２〜３７−２は受信したパケットの設定値をマルチキャストレジスタ３５−４〜３７−４に書き込む。
【０１１８】
図１９においては、図６の場合と同様に、図５のマルチキャストレジスタの内、マルチキャストが有効として、マルチキャスト機能レジスタ（Ｍｕｌｔｉｃａｓｔ  Ｃａｐａｂｉｌｉｔｙ  Ｒｅｇｉｓｔｅｒ）３４２，マルチキャスト受信レジスタ（ＭＣ＿Ｒｅｃｅｉｖｅ  Ｒｅｇｉｓｔｅｒ）３４４、マルチキャストブロックレジスタ（ＭＣ＿Ｂｌｏｃｋ＿Ａｌｌ  Ｒｅｇｉｓｔｅｒ）３４５、マルチキャストブロック不変換レジスタ（ＭＣ＿Ｂｌｏｃｋ＿Ｕｎｔｒａｎｓｌａｔｅｄ  Ｒｅｇｉｓｔｅｒ）３４６の設定値は省略している。
【０１１９】
即ち、マルチキャストレジスタの内、Ｍｕｌｔｉｃａｓｔ  Ｃｏｎｔｒｏｌ  Ｒｅｇｉｓｔｅｒ３４１のＭＣ＿Ｅｎａｂｌｅ，ＭＣ＿Ｎｕｍ＿Ｇｒｏｕｐ、マルチキャストベースアドレスレジスタ（ＭＣ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ  Ｒｅｇｉｓｔｅｒ）３４３のＭＣ＿Ｂａｓｅ＿Ａｄｄｒｅｓｓ、ＭＣ＿Ｉｎｄｅｘ＿Ｐｏｓｉｔｉｏｎ、マルチキャストオーバーレイバー（ＭＣ＿Ｏｖｅｒｌａｙ＿Ｂａｒ）３４７のＭＣ＿Ｏｖｅｒｌａｙ＿Ｂａｒ、ＭＣ＿Ｏｖｅｒｌａｙ_Ｓｉｚｅのみの設定値を示す。
【０１２０】
各マルチキャストレジスタ３５−４〜３７−４に図１９に示した設定値を設定した場合、マルチキャストにおいて、各入出力デバイス５−０〜５−２におけるロード開始アドレスレジスタ１０２、ロード開始レジスタ１０４のレジスタアドレスに異なるアドレスが設定できる。
【０１２１】
図１８に示すように、この実施の形態では、各入出力デバイス５−０〜５−２におけるロード開始アドレスレジスタ１０２のレジスタアドレスは、ロードパケットのアドレス（「０ｘＡ０００００１０」）を図１９の設定値のうちＭＣ＿Ｏｖｅｒｌａｙ＿Ｂａｒの設定値「０ｘ８０００１０００」、「０ｘ８０００２０００」、「０ｘ８０００３０００」(１６進表示)により加えた（Ｏｖｅｒｌａｙ）した値「０ｘ８０００１０１０」、「０ｘ８０００２０１０」、「０ｘ８０００３０１０」（１６進表示)に設定される。
【０１２２】
そして、各レジスタ１０２，１０４を１６ビット幅とした場合、各入出力デバイス５−０〜５−２におけるロード開始レジスタ１０４のレジスタアドレスは、図１９の設定値のうちＭＣ＿Ｏｖｅｒｌａｙ＿Ｂａｒの設定値「０ｘ８０００１０００」、「０ｘ８０００２０００」、「０ｘ８０００３０００」(１６進表示)＋「０ｘ００００００１４」である値「０ｘ８０００１０１４」、「０ｘ８０００２０１４」、「０ｘ８０００３０１４」(１６進表示)に設定される。
【０１２３】
このようにして、デバイスドライバ２０は、図５、図１９説明した設定値をスイッチ回路３２の各ポート３９−０〜３９−３のマルチキャストレジスタ３４−４，３５−４、３６−４，３７−４に設定する。これにより、マルチキャスト機能を用いて、各レジスタ１０２，１０４にデータをライトできる。
【０１２４】
（Ｓ３２）デバイスドライバ２０はホストメモリ４にマイクロコードを配置する。図１５で説明したように、デバイスドライバ２０は入出力デバイスにロードされるべきマイクロコードをホストメモリ４の特定位置４−１０（本実施の形態では、アドレス＝「０ｘ２０００００００」）に配置する。
【０１２５】
（Ｓ３４）デバイスドライバ２０はマルチキャストで、各入出力デバイス５−０〜５−２のロード開始アドレスレジスタ１０２にホストメモリ４のマイクロコード格納開始アドレスを設定する。即ち、デバイスドライバ２０は、パケットタイプ「ＭＥＭ  Ｗｒｉｔｅ」、アドレス＝「０ｘＡ０００００１０」、データ（ペイロード）＝「０ｘ２０００００００」（開始アドレス）を設定したＰＣＩｅパケットをＩＯハブ３０を介しスイッチ回路３２に送信する。
【０１２６】
スイッチ回路３２では、ポート３９−０のパケット解析部３４−２がパケットのアドレス「０ｘＡ０００００１０」から受信したパケットをマルチキャストパケットと判断して、内部バス３８を介し各ポート３９−１〜３９−３に転送する。各ポート３９−１〜３９−３のパケット解析部３５−２〜３７−２は同様にパケットのアドレス「０ｘＡ０００００１０」から受信したパケットをマルチキャストパケットと判断する。
【０１２７】
そして、パケット解析部３５−２〜３７−２は受信したパケットのアドレスをＭＣ＿Ｏｖｅｒｌａｙ＿Ｂａｒの設定値「０ｘ８０００１０００」、「０ｘ８０００２０００」、「０ｘ８０００３０００」からロード開始アドレスレジスタ１０２のレジスタアドレス値「０ｘ８０００１０１０」、「０ｘ８０００２０１０」、「０ｘ８０００３０１０」(１６進表示)に変換する。パケット解析部３５−２〜３７−２は変換されたアドレスを持つパケットをＰＣＩｅバス６−０〜６−２を介し入出力デバイス５−０〜５−２に転送する。入出力デバイス５−０〜５−２では、アドレスデコーダ１１０（図８参照、図１５では図示せず）がパケットのアドレスをデコードし、受信パケットの設定値（開始アドレス）をロード開始アドレスレジスタ１０２に書き込む。
【０１２８】
（Ｓ３６）デバイスドライバ２０はロード開始をマルチキャストで指示する。デバイスドライバ２０はアドレス＝「０ｘＡ０００００１４」にデータ＝「０ｘ０００００００１」 (本実施の形態ではｂｉｔ０がロード開始指示ビットとする）を設定する。即ち、デバイスドライバ２０は、パケットタイプ「ＭＥＭ  Ｗｒｉｔｅ」、アドレス＝「０ｘＡ０００００１４」、データ（ペイロード）＝「０ｘ０００００００１」を設定したＰＣＩｅパケットをＩＯハブ３０を介しスイッチ回路３２に送信する。
【０１２９】
スイッチ回路３２では、ポート３９−０のパケット解析部３４−２がパケットのアドレス「０ｘＡ０００００１４」から受信したパケットをマルチキャストパケットと判断して、内部バス３８を介し各ポート３９−１〜３９−３に転送する。各ポート３９−１〜３９−３のパケット解析部３５−２〜３７−２は同様にパケットのアドレス「０ｘＡ０００００１４」から受信したパケットをマルチキャストパケットと判断する。
【０１３０】
そして、パケット解析部３５−２〜３７−２は受信したパケットのアドレスをＭＣ_Ｏｖｅｒｌａｙ_Ｂａｒの設定値「０ｘ８０００１０００」、「０ｘ８０００２０００」、「０ｘ８０００３０００」を用いてロード開始レジスタ１０４のレジスタアドレス値「０ｘ８０００１０１４」、「０ｘ８０００２０１４」、「０ｘ８０００３０１４」(１６進表示)に変換する。パケット解析部３５−２〜３７−２は変換されたアドレスを持つパケットをＰＣＩｅバス６−０〜６−２を介し入出力デバイス５−０〜５−２に転送する。入出力デバイス５−０〜５−２では、アドレスデコーダ１１０がパケットのアドレスをデコードし、受信パケットの設定値（ロード開始指示）をロード開始レジスタ１０４に書き込む。
【０１３１】
各入出力デバイス５−０〜５−２のマイクロコントローラ５６はロード開始レジスタ１０４を監視し、ロード開始レジスタ１０４にロード開始指示が書き込まれたか否かを判定する。マイクロコントローラ５０はロード開始レジスタ１０４にロード開始指示が書き込まれたと判定すると、マイクロコントローラ５０はロード開始アドレスレジスタ１０２の書き込まれたマイクロコードの開始アドレスによりホストメモリ４をアクセスし、ホストメモリ４のマイクロコード４−１０を読み出し、マイクロコントローラ５６のメモリに書き込む。
【０１３２】
即ち、マイクロコントローラ５６はＰＣＩヘッダにパケットタイプ「ＭＥＭ  Ｒｅａｄ」とロード開始アドレスレジスタ１０２の開始アドレスをセットしたＰＣＩ  ｅｘｐｒｅｓｓパケットを作成し、ＰＣＩｅバス６−０，６−１，６−２に送信する。スイッチ回路３２は受信した各入出力デバイス５−０〜５−２からのＰＣＩｅパケットをＩＯハブ３０を介しＣＰＵ２へ転送する。ＣＰＵ２は転送されたＰＣＩｅパケットを解析し、ホストメモリ４のアドレスで指定された領域４−１０のマイクロコードをＩＯハブ３０、スイッチ回路３２を介し各入出力デバイス５−０〜５−２に転送する。
【０１３３】
２回目以降のマイクロコードのローディングを実施する場合は、ステップＳ３０,Ｓ３２の処理が不要となる。このように、マルチキャスト機能により開始アドレス、ロード開始を指示することにより、マイクロコードのロードが必要な入出力デバイスの数が増加しても、マイクロコードのローディングに要する時間を短縮できる。
【０１３４】
（他の実施の形態）
前述の実施の形態では、ＰＣＩ  Ｅｘｐｒｅｓｓ規格のマルチキャスト機能を例に説明したが、スイッチ回路へのマルチキャスト機能の設定により受信パケットがマルチキャストパケットかユニキャストパケットかを判定する他の規格のマルチキャスト機能を適用することもできる。
【０１３５】
又、入出力デバイスとの接続規格はＰＣＩ  Ｅｘｐｒｅｓｓ規格に限らず、他の接続規格を適用できる。
【０１３６】
以上、本発明を実施の形態により説明したが、本発明の趣旨の範囲内において、本発明は、種々の変形が可能であり、本発明の範囲からこれらを排除するものではない。
【産業上の利用可能性】
【０１３７】
マルチキャスト機能を設定できるブリッジ回路とＤＭＡ回路とを設け、マルチキャスト機能を用いてＤＭＡ転送の開始指示を行うため、各入出力デバイスのレジスタの読み出しに要する時間を短縮できる。又、ほぼ同時にＤＭＡ転送開始指示を行うため、入出力デバイスの同時刻の状態をコピーできる。特に、レジスタの読み出しを実施する入出力デバイスが多い場合や多数回のデータ収集を行う場合に有効である。
【符号の説明】
【０１３８】
１  情報処理装置
２  ＣＰＵ（演算処理装置）
３  ブリッジ回路
３Ａ  マルチキャスト機能
４  ホストメモリ
４Ａ  ワーク領域
４−０〜４−２  コピー領域
５−０〜５−２  入出力デバイス
６−０〜６−３  ＰＣＩｅバス
７  メモリバッファ
２０  デバイスドライバ
３０  ＩＯハブ
３２  スイッチ回路
３４−０〜３７−０  送受信バッファ
３４−２〜３７−２  パケット解析部
３４−４〜３７−４  マルチキャストレジスタ
３８  内部バス
３９−０〜３９−３  ポート
５０  ＤＭＡ回路
５２  デバイス基本機能部
５６  マイクロコントローラ
８０  コピー開始レジスタ
８２  コピー先アドレスレジスタ
８４  シーケンス番号レジスタ
８６  パケット生成シーケンサ
１００  レジスタ群
１０２  ロード開始アドレスレジスタ
１０４  ロード開始レジスタ
【図１】
2011114383.tif 000003
【図２】
2011114383.tif 000004
【図３】
2011114383.tif 000005
【図４】
2011114383.tif 000006
【図５】
2011114383.tif 000007
【図６】
2011114383.tif 000008
【図７】
2011114383.tif 000009
【図８】
2011114383.tif 000010
【図９】
2011114383.tif 000011
【図１０】
2011114383.tif 000012
【図１１】
2011114383.tif 000013
【図１２】
2011114383.tif 000014
【図１３】
2011114383.tif 000015
【図１４】
2011114383.tif 000016
【図１５】
2011114383.tif 000017
【図１６】
2011114383.tif 000018
【図１７】
2011114383.tif 000019
【図１８】
2011114383.tif 000020
【図１９】
2011114383.tif 000021
【手続補正書】
【提出日】平成24年10月10日(2012.10.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
演算処理装置と、
前記演算処理装置が使用する記憶装置と、
各々状態情報を保持する記憶部とＤＭＡ回路とを有する複数の入出力デバイスと、
前記演算処理装置と前記複数の入出力デバイスとを接続し、且つ前記演算処理装置からのマルチキャストの設定により前記演算処理装置からのパケットを前記複数の入出力デバイスにマルチキャストするブリッジ回路とを有し、
前記演算処理装置がコピー開始を指示するパケットを前記ブリッジ回路に送信し、前記ブリッジ回路が前記コピー開始を指示するパケットを前記複数の入出力デバイスにマルチキャストし、前記コピー開始を指示するパケットに応じて、前記複数の入出力デバイスの前記ＤＭＡ回路が前記記憶部の状態情報を前記ブリッジ回路を介し前記記憶装置にＤＭＡ転送する
ことを特徴とする情報処理装置。
【請求項２】
前記ＤＭＡ回路は前記コピー開始を指示するパケットのコピー開始指示を格納するコピー開始レジスタを有し、
前記ブリッジ回路は、前記コピー開始を指示するパケットのアドレスを前記マルチキャストの設定に応じて前記各入出力デバイスの前記コピー開始レジスタのアドレスに変換し、前記コピー開始を指示するパケットを前記複数の入出力デバイスにマルチキャストする
ことを特徴とする請求項１の情報処理装置。
【請求項３】
前記演算処理装置が前記転送のシーケンス番号を指示するパケットを前記ブリッジ回路に送信し、前記ブリッジ回路が前記シーケンス番号を指示するパケットを前記複数の入出力デバイスにマルチキャストし、前記複数の入出力デバイスの前記ＤＭＡ回路が前記シーケンス番号を付加した前記記憶部の状態情報を前記ブリッジ回路を介し前記記憶装置にＤＭＡ転送する
ことを特徴とする請求項１の情報処理装置。
【請求項４】
演算処理装置と、前記演算処理装置が使用する記憶装置と、各々状態情報を保持する記憶部とＤＭＡ回路とを有する複数の入出力デバイスと、前記演算処理装置と前記複数の入出力デバイスとを接続し、且つ前記演算処理装置からのマルチキャストの設定により前記演算処理装置からのパケットを前記複数の入出力デバイスにマルチキャストするブリッジ回路とを有する情報処理装置のデバイス情報収集処理方法であって、
前記演算処理装置が前記ブリッジ回路に前記マルチキャストを設定する工程と、
前記演算処理装置がコピー開始を指示するパケットを前記ブリッジ回路に送信する工程と、
前記ブリッジ回路が前記コピー開始を指示するパケットを前記複数の入出力デバイスにマルチキャストする工程と、
前記コピー開始を指示するパケットに応じて、前記複数の入出力デバイスの前記ＤＭＡ回路が前記記憶部の状態情報を前記ブリッジ回路を介し前記記憶装置にＤＭＡ転送する工程とを有する
ことを特徴とする情報処理装置のデバイス情報収集処理方法。
【請求項５】
前記演算処理装置が前記記憶装置のロード情報のロード開始アドレスを指示するパケットと前記ロード開始を指示するパケットと前記ブリッジ回路に送信する工程と、
前記ブリッジ回路が両前記パケットを前記複数の入出力デバイスにマルチキャストする工程と、
前記ロード開始を指示するパケットに応じて、前記複数の入出力デバイスが前記記憶装置の前記ロード開始アドレスの情報を前記ブリッジ回路を介し読み出す工程とを更に有する
ことを特徴とする請求項４の情報処理装置のデバイス情報収集処理方法。
【国際調査報告】
2011114383.tif 000022
2011114383.tif 000023
2011114383.tif 000024
2011114383.tif 000025