(57)【特許請求の範囲】
【請求項１】
１または２以上のノードと接続する複数の経路切り替え装置が互いに通信可能に接続する演算処理装置における異なるノード間のデータ転送を制御し、前記ノード内の処理装置と接続されたデータ転送制御装置において、
第１の経路切り替え装置と接続する第１のノード内の処理装置からブロードキャスト転送の要求を受けると、前記ブロードキャスト転送を要求した前記処理装置以外の前記第１のノード内の他の処理装置と前記第１のノード以外の前記第１の経路切り替え装置配下の他のノードとに対して前記ブロードキャスト転送を実行し、前記第１の経路切り替え装置と接続する第２の経路切り替え装置配下の全ノード内のデータ転送制御装置を代表する代表データ転送制御装置に対してブロードキャスト転送の代行を要求する第１の制御部と、
前記第２の経路切り替え装置配下の第２のノードから送信されたブロードキャスト転送の代行の要求を受信すると、前記第１のノード内の処理装置と前記第１のノード以外の前記第１の経路切り替え装置と接続する前記他のノードに対して前記ブロードキャスト転送を実行する第２の制御部と、
を備えるデータ転送制御装置。
【請求項２】
前記データ転送制御装置は、前記第１の経路切り替え装置配下の各ノード内に含まれる全てのデータ転送制御装置の中から選択された代表データ転送制御装置であり、
前記第２の経路切り替え装置配下の全ノード内のデータ転送制御装置を代表する前記代表データ転送制御装置は、前記第２の経路切り替え装置配下の各ノード内に含まれる全てのデータ転送制御装置の中から選択される、請求項１に記載のデータ転送制御装置。
【請求項３】
前記第２の制御部は、
前記ブロードキャスト転送の実行に対する応答を受信する第１の応答受信部と、
前記第１のノード内の前記処理装置と前記第１のノード以外の前記第１の経路切り替え装置配下の前記他のノードとからの前記ブロードキャスト転送の実行に対する前記応答が前記第１の応答受信部によって受信されたか否かを判定する第１の送信選択部と、
前記第１のノード内の前記処理装置と前記第１のノード以外の前記第１の経路切り替え装置配下の前記他のノードとからの前記ブロードキャスト転送の実行に対する前記応答が前記第１の応答受信部によって受信されたと前記第１の送信選択部により判定された場合に、前記ブロードキャスト転送の代行要求に対する応答を前記ブロードキャスト転送の代行を要求した前記第２の経路切り替え装置配下の前記第２のノードへ送信する第１の応答送信部と、
を含み、
前記第１の制御部は、
前記ブロードキャスト転送の代行要求に対する応答と前記ブロードキャスト転送の実行に対する応答とを受信する第２の応答受信部と、
前記第２の経路切り替え装置配下の前記代表データ転送制御装置からの前記ブロードキャスト転送の代行要求に対する前記応答と、前記ブロードキャスト転送を要求した前記処理装置以外の前記第１のノード内の前記他の処理装置と前記第１のノード以外の前記第１の経路切り替え装置配下の前記他のノードとからの前記ブロードキャスト転送の実行に対する前記応答とが前記第２の応答受信部により受信されたか否かを判定する第２の送信選択部と、
前記第２の経路切り替え装置配下の前記代表データ転送制御装置からの前記ブロードキャスト転送の代行要求に対する前記応答と、前記ブロードキャスト転送を要求した前記処理装置以外の前記第１のノード内の前記他の処理装置と前記第１のノード以外の前記第１の経路切り替え装置配下の前記他のノードとからの前記ブロードキャスト転送の実行に対する前記応答とが前記第２の応答受信部により受信されたと前記第２の送信選択部により判断された場合に、前記ブロードキャスト転送を要求した前記処理装置へ前記ブロードキャスト転送に対する応答を送信する第２の応答送信部と、
を含む、請求項１に記載のデータ転送制御装置。
【請求項４】
１または２以上のノードと接続する複数の経路切り替え装置が互いに通信可能に接続する演算処理装置における異なるノード間のデータ転送を制御し、前記ノード内の処理装置と接続されたデータ転送制御装置において、
第１の経路切り替え装置と接続する第１のノード内の処理装置からブロードキャスト転送の要求を受けると、前記第１の経路切り替え装置配下の処理装置に対して前記ブロードキャスト転送を実行し、前記第１の経路切り替え装置と接続する第２の経路切り替え装置配下の全ノード内のデータ転送制御装置を代表する代表データ転送制御装置に対してブロードキャスト転送の代行を要求する第１の制御部と、
前記第２の経路切り替え装置配下の第２のノードから送信されたブロードキャスト転送の代行の要求を受信すると、前記第１の経路切り替え装置と接続する全ノードに対して前記ブロードキャスト転送を実行する第２の制御部と、
を備え、
前記第１の制御部は、
前記第１のノード内の前記処理装置から前記ブロードキャスト転送の要求を受信する要求受信部と、
前記第１のノード内の他の処理装置と前記第１の経路切り替え装置に接続する他のノードとに送信するブロードキャスト転送用データを生成するブロードキャスト転送用データ生成部と、
前記第２の経路切り替え装置に接続する全ノード内のデータ転送制御装置を代表する代表データ転送制御装置に関する情報である代表データ転送制御装置情報に基づいて、前記第２の経路切り替え装置に接続する全ノード内のデータ転送制御装置を代表する代表データ転送制御装置を特定し、特定された前記代表データ転送制御装置に対するブロードキャスト転送の代行を要求するブロードキャスト転送代行要求データを生成する代行要求データ生成部と、
前記ブロードキャスト転送用データを前記第１のノード内の他の処理装置と前記第１の経路切り替え装置に接続する他のノードとに送信するブロードキャスト転送用データ送信部と、
前記ブロードキャスト転送代行要求データを特定された前記代表データ転送制御装置に送信する代行要求データ送信部と、
を備えるデータ転送制御装置。
【請求項５】
前記第２の制御部は、
前記第１の経路切り替え装置からの要求を受信する要求受信部と、
前記第１の経路切り替え装置からの要求が前記ブロードキャスト転送の代行の要求か否かを判別する代行要求判別部と、
前記第１のノード内の処理装置に送信するブロードキャスト転送用データを生成し、前記第１の経路切り替え装置からの要求が前記ブロードキャスト転送の代行の要求の場合には、前記第１の経路切り替え装置と接続する他のノードに送信するブロードキャスト転送用データも生成するブロードキャスト転送用データ生成部と、
前記ブロードキャスト転送用データを前記第１のノード内の前記処理装置と前記第１の経路切り替え装置に接続する前記他のノードに送信するブロードキャスト転送用データ送信部と、
を備える請求項４に記載のデータ転送制御装置。
【請求項６】
１または２以上のノードと接続する複数の経路切り替え装置が互いに通信可能に接続する演算処理装置における異なるノード間のデータ転送を制御し、前記ノード内の処理装置と接続されたデータ転送制御装置を含むデータ転送制御システムにおいて、
第１の経路切り替え装置と接続する第１のノード内の処理装置からブロードキャスト転送の要求を受けると、前記ブロードキャスト転送を要求した前記処理装置以外の前記第１のノード内の他の処理装置と前記第１のノード以外の前記第１の経路切り替え装置配下の他のノードとに対して前記ブロードキャスト転送を実行し、前記第１の経路切り替え装置と接続する第２の経路切り替え装置配下の全ノード内のデータ転送制御装置を代表する代表データ転送制御装置に対してブロードキャスト転送の代行を要求する第１のデータ転送制御装置と、
前記第１のデータ転送制御装置から送信された前記ブロードキャスト転送の代行の要求を受信すると、第２のデータ転送制御装置を含む第２のノード内の処理装置と前記第２のノード以外の前記第２の経路切り替え装置と接続する他のノードに対して前記ブロードキャスト転送を実行する前記第２のデータ転送制御装置と、
を備えるデータ転送制御システム。
【請求項７】
前記第２の経路切り替え装置配下の全ノード内のデータ転送制御装置を代表する前記データ転送制御装置は、前記第２の経路切り替え装置配下の各ノード内に含まれる全てのデータ転送制御装置の中から選択され、
前記第２のデータ転送制御装置は、選択された前記代表データ転送制御装置である、請求項６に記載のデータ転送制御システム。
【請求項８】
前記第２のデータ転送制御装置は、
前記第２の経路切り替え装置からの要求を受信する要求受信部と、
前記第２の経路切り替え装置からの要求が前記ブロードキャスト転送の代行の要求か否かを判別する代行要求判別部と、
前記第２のノード内の処理装置に送信するブロードキャスト転送用データを生成し、前記第２の経路切り替え装置からの要求が前記ブロードキャスト転送の代行の要求の場合には、前記第２の経路切り替え装置と接続する他のノードに送信するブロードキャスト転送用データも生成するブロードキャスト転送用データ生成部と、
前記ブロードキャスト転送用データを前記第２のノード内の前記処理装置と前記第２の経路切り替え装置に接続する前記他のノードに送信するブロードキャスト転送用データ送信部と、
を備える請求項６に記載のデータ転送制御システム。
【請求項９】
前記第２のデータ転送制御装置は、
前記ブロードキャスト転送の実行に対する応答を受信する第１の応答受信部と、
前記第２のノード内の前記処理装置と前記第２のノード以外の前記第２の経路切り替え装置配下の他のノードとからの前記ブロードキャスト転送の実行に対する前記応答が前記第１の応答受信部によって受信されたか否かを判定する第１の送信選択部と、
前記第２のノード内の前記処理装置と前記第２のノード以外の前記第２の経路切り替え装置配下の他のノードとからの前記ブロードキャスト転送の実行に対する前記応答が前記第１の応答受信部によって受信されたと前記第１の送信選択部により判定された場合に、前記ブロードキャスト転送の代行要求に対する応答を前記ブロードキャスト転送の代行を要求した前記第１のデータ転送制御装置へ送信する第１の応答送信部と、
を含み、
前記第１のデータ転送制御装置は、
前記ブロードキャスト転送の代行要求に対する応答と前記ブロードキャスト転送の実行に対する応答とを受信する第２の応答受信部と、
前記第２の経路切り替え装置配下の前記代表データ転送制御装置からの前記ブロードキャスト転送の代行要求に対する前記応答と、前記ブロードキャスト転送を要求した前記処理装置以外の前記第１のノード内の前記他の処理装置と前記第１のノード以外の前記第１の経路切り替え装置配下の前記他のノードとからの前記ブロードキャスト転送の実行に対する前記応答とが前記第２の応答受信部により受信されたか否かを判定する第２の送信選択部と、
前記第２の経路切り替え装置配下の前記代表データ転送制御装置からの前記ブロードキャスト転送の代行要求に対する前記応答と、前記ブロードキャスト転送を要求した前記処理装置以外の前記第１のノード内の前記他の処理装置と前記第１のノード以外の前記第１の経路切り替え装置配下の前記他のノードとからの前記ブロードキャスト転送の実行に対する前記応答とが前記第２の応答受信部により受信されたと前記第２の送信選択部により判断された場合に、前記ブロードキャスト転送を要求した前記処理装置へ前記ブロードキャスト転送に対する応答を送信する第２の応答送信部と、
を含む、請求項６に記載のデータ転送制御システム。
【請求項１０】
１または２以上のノードと接続する複数の経路切り替え装置が互いに通信可能に接続する演算処理装置における異なるノード間のデータ転送を制御し、前記ノード内の処理装置と接続されたデータ転送制御装置を含むデータ転送制御システムにおいて、
第１の経路切り替え装置と接続する第１のノード内の処理装置からブロードキャスト転送の要求を受けると、前記第１の経路切り替え装置配下の処理装置に対して前記ブロードキャスト転送を実行し、前記第１の経路切り替え装置と接続する第２の経路切り替え装置配下の全ノード内のデータ転送制御装置を代表する代表データ転送制御装置に対してブロードキャスト転送の代行を要求する第１のデータ転送制御装置と、
前記第１のデータ転送制御装置から前記ブロードキャスト転送の代行の要求を受信すると、前記第２の経路切り替え装置と接続する全ノードに対して前記ブロードキャスト転送を実行する第２のデータ転送制御装置と、
を備え、
前記第１のデータ転送制御装置は、
前記第１のノード内の前記処理装置から前記ブロードキャスト転送の要求を受信する要求受信部と、
前記第１のノード内の他の処理装置と前記第１の経路切り替え装置に接続する他のノードとに送信するブロードキャスト転送用データを生成するブロードキャスト転送用データ生成部と、
前記第２の経路切り替え装置に接続する全ノード内のデータ転送制御装置を代表する代表データ転送制御装置に関する情報である代表データ転送制御装置情報に基づいて、前記第２の経路切り替え装置に接続する全ノード内のデータ転送制御装置を代表する代表データ転送制御装置を特定し、特定された前記代表データ転送制御装置に対するブロードキャスト転送の代行を要求するブロードキャスト転送代行要求データを生成する代行要求データ生成部と、
前記ブロードキャスト転送用データを前記第１のノード内の他の処理装置と前記第１の経路切り替え装置に接続する他のノードとに送信するブロードキャスト転送用データ送信部と、
前記ブロードキャスト転送代行要求データを特定された前記代表データ転送制御装置に送信する代行要求データ送信部と、
を備えるデータ転送制御システム。
【請求項１１】
１または２以上のノードと接続する複数の経路切り替え装置が互いに通信可能に接続する演算処理装置における異なるノード間のデータ転送を制御し、前記ノード内の処理装置と接続されたデータ転送制御装置によるデータ転送制御方法において、
第１のデータ転送制御装置が、第１の経路切り替え装置と接続する第１のノード内の処理装置からブロードキャスト転送の要求を受けると、前記ブロードキャスト転送を要求した前記処理装置以外の前記第１のノード内の他の処理装置と前記第１のノード以外の前記第１の経路切り替え装置配下の他のノードとに対して前記ブロードキャスト転送を実行し、前記第１の経路切り替え装置と接続する第２の経路切り替え装置配下の全ノード内のデータ転送制御装置を代表する代表データ転送制御装置に対してブロードキャスト転送の代行を要求し、
第２のデータ転送制御装置が、前記第１のデータ転送制御装置から送信された前記ブロードキャスト転送の代行の要求を受信すると、前記第２のデータ転送制御装置を含む第２のノード内の処理装置と前記第２のノード以外の前記第２の経路切り替え装置と接続する他のノードに対して前記ブロードキャスト転送を実行する、
データ転送制御方法。
【請求項１２】
前記第２の経路切り替え装置配下の全ノード内のデータ転送制御装置を代表する前記データ転送制御装置は、前記第２の経路切り替え装置配下の各ノード内に含まれる全てのデータ転送制御装置の中から選択され、
前記第２のデータ転送制御装置は、選択された前記代表データ転送制御装置である、請求項１１に記載のデータ転送制御方法。
【請求項１３】
前記第２のデータ転送制御装置は、
前記第２の経路切り替え装置からの要求を受信し、
前記第２の経路切り替え装置からの要求が前記ブロードキャスト転送の代行の要求か否かを判別し、
前記第２のノード内の処理装置に送信するブロードキャスト転送用データを生成し、前記第２の経路切り替え装置からの要求が前記ブロードキャスト転送の代行の要求の場合には、前記第２の経路切り替え装置と接続する他のノードに送信するブロードキャスト転送用データも生成し、
前記ブロードキャスト転送用データを前記第２のノード内の前記処理装置と前記第２の経路切り替え装置に接続する前記他のノードに送信する、
請求項１１に記載のデータ転送制御方法。
【請求項１４】
前記第２のデータ転送制御装置は、
前記ブロードキャスト転送の実行に対する応答を受信し、
前記第２のノード内の前記処理装置と前記第２のノード以外の前記第２の経路切り替え装置配下の他のノードとからの前記ブロードキャスト転送の実行に対する前記応答が受信されたか否かを判定し、
前記第２のノード内の前記処理装置と前記第２のノード以外の前記第２の経路切り替え装置配下の他のノードとから前記ブロードキャスト転送の実行に対する前記応答が前記第１の応答受信部によって受信されたと判定された場合に、前記ブロードキャスト転送の代行要求に対する応答を前記ブロードキャスト転送の代行を要求した前記第１のデータ転送制御装置へ送信し、
前記第１のデータ転送制御装置は、
前記ブロードキャスト転送の代行要求に対する応答と前記ブロードキャスト転送の実行に対する応答とを受信し、
前記第２の経路切り替え装置配下の前記代表データ転送制御装置からの前記ブロードキャスト転送の代行要求に対する前記応答と、前記ブロードキャスト転送を要求した前記処理装置以外の前記第１のノード内の前記他の処理装置と前記第１のノード以外の前記第１の経路切り替え装置配下の前記他のノードとからの前記ブロードキャスト転送の実行に対する前記応答とが受信されたか否かを判定し、
前記第２の経路切り替え装置配下の前記代表データ転送制御装置からの前記ブロードキャスト転送の代行要求に対する前記応答と、前記ブロードキャスト転送を要求した前記処理装置以外の前記第１のノード内の前記他の処理装置と前記第１のノード以外の前記第１の経路切り替え装置配下の前記他のノードとからの前記ブロードキャスト転送の実行に対する前記応答とが受信されたと判断された場合に、前記ブロードキャスト転送を要求した前記処理装置へ前記ブロードキャスト転送に対する応答を送信する、
請求項１１に記載のデータ転送制御方法。
【請求項１５】
１または２以上のノードと接続する複数の経路切り替え装置が互いに通信可能に接続する演算処理装置における異なるノード間のデータ転送を制御し、前記ノード内の処理装置と接続されたデータ転送制御装置によるデータ転送制御方法において、
第１のデータ転送制御装置が、
第１の経路切り替え装置と接続する第１のノード内の処理装置からブロードキャスト転送の要求を受信して前記第１のノード内の前記処理装置から前記ブロードキャスト転送の要求を受け、
前記第１のノード内の他の処理装置と前記第１の経路切り替え装置に接続する他のノードとに送信するブロードキャスト転送用データを生成し、
前記第１の経路切り替え装置と接続する第２の経路切り替え装置に接続する全ノード内のデータ転送制御装置を代表する代表データ転送制御装置に関する情報である代表データ転送制御装置情報に基づいて、前記第２の経路切り替え装置に接続する全ノード内のデータ転送制御装置を代表する代表データ転送制御装置を特定し、特定された前記代表データ転送制御装置に対するブロードキャスト転送の代行を要求するブロードキャスト転送代行要求データを生成し、
前記ブロードキャスト転送用データを前記第１のノード内の他の処理装置と前記第１の経路切り替え装置に接続する他のノードとに送信して前記第１の経路切り替え装置配下の処理装置に対して前記ブロードキャスト転送を実行し、
前記ブロードキャスト転送代行要求データを特定された前記代表データ転送制御装置に送信して、特定された前記代表データ転送制御装置に対してブロードキャスト転送の代行を要求し、
第２のデータ転送制御装置が、前記第１のデータ転送制御装置から送信されたブロードキャスト転送の代行の要求を受信すると、前記第２の経路切り替え装置と接続する全ノードに対して前記ブロードキャスト転送を実行する、
データ転送制御方法。
【請求項１６】
１または２以上のノードと接続する複数の経路切り替え装置が互いに通信可能に接続する演算処理装置における異なるノード間のデータ転送を制御し、前記ノード内の処理装置と接続されたデータ転送制御装置を有する演算システムにおいて、
前記データ転送制御装置は、
第１の経路切り替え装置と接続する第１のノード内の処理装置からブロードキャスト転送の要求を受けると、前記ブロードキャスト転送を要求した前記処理装置以外の前記第１のノード内の他の処理装置と前記第１のノード以外の前記第１の経路切り替え装置配下の他のノードとに対して前記ブロードキャスト転送を実行し、前記第１の経路切り替え装置と接続する第２の経路切り替え装置配下の全ノード内のデータ転送制御装置を代表する代表データ転送制御装置に対してブロードキャスト転送の代行を要求する第１の制御部と、
前記第２の経路切り替え装置配下の第２のノードから送信されたブロードキャスト転送の代行の要求を受信すると、前記第１のノード内の処理装置と前記第１のノード以外の前記第１の経路切り替え装置と接続する前記他のノードに対して前記ブロードキャスト転送を実行する第２の制御部と、
を備える演算システム。
【請求項１７】
前記第２の制御部を備える前記データ転送制御装置は、前記第１の経路切り替え装置配下の各ノード内に含まれる全てのデータ転送制御装置の中から選択された代表データ転送制御装置であり、
前記第２の経路切り替え装置配下の全ノード内のデータ転送制御装置を代表する前記データ転送制御装置は、前記第２の経路切り替え装置配下の各ノード内に含まれる全てのデータ転送制御装置の中から選択される、請求項１６に記載の演算システム。
【請求項１８】
前記第２の制御部は、
前記ブロードキャスト転送の実行に対する応答を受信する第１の応答受信部と、
前記第１のノード内の前記処理装置と前記第１のノード以外の前記第１の経路切り替え装置配下の前記他のノードとからの前記ブロードキャスト転送の実行に対する前記応答が前記第１の応答受信部によって受信されたか否かを判定する第１の送信選択部と、
前記第１のノード内の前記処理装置と前記第１のノード以外の前記第１の経路切り替え装置配下の前記他のノードとからの前記ブロードキャスト転送の実行に対する前記応答が前記第１の応答受信部によって受信されたと前記送信選択部により判定された場合に、前記ブロードキャスト転送の代行要求に対する応答を前記ブロードキャスト転送の代行を要求した前記第２の経路切り替え装置配下の前記第２のノードへ送信する第１の応答送信部と、
を含み、
前記第１の制御部は、
前記ブロードキャスト転送の代行要求に対する応答と前記ブロードキャスト転送の実行に対する応答とを受信する第２の応答受信部と、
前記第２の経路切り替え装置配下の前記代表データ転送制御装置からの前記ブロードキャスト転送の代行要求に対する前記応答と、前記ブロードキャスト転送を要求した前記処理装置以外の前記第１のノード内の前記他の処理装置と前記第１のノード以外の前記第１の経路切り替え装置配下の前記他のノードとからの前記ブロードキャスト転送の実行に対する前記応答とが前記第２の応答受信部により受信されたか否かを判定する第２の送信選択部と、
前記第２の経路切り替え装置配下の前記代表データ転送制御装置からの前記ブロードキャスト転送の代行要求に対する前記応答と、前記ブロードキャスト転送を要求した前記処理装置以外の前記第１のノード内の前記他の処理装置と前記第１のノード以外の前記第１の経路切り替え装置配下の前記他のノードとからの前記ブロードキャスト転送の実行に対する前記応答とが前記第２の応答受信部により受信されたと前記第２の送信選択部により判断された場合に、前記ブロードキャスト転送を要求した前記処理装置へ前記ブロードキャスト転送に対する応答を送信する第２の応答送信部と、
を含む、請求項１６に記載の演算システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバシステム等の情報処理装置を構成する装置間におけるデータ転送を制御するデータ転送制御装置、システムおよび方法に関する。
【背景技術】
【０００２】
従来、マルチプロセッサシステムは、複数の演算処理装置としてのＣＰＵ（Ｃｅｎｔｒｅ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を備える。また、マルチプロセッサシステムは、ＣＰＵ間、ＣＰＵ−メモリ間など装置間のデータ転送を高速かつ効率的に行うためのスイッチング機構であるデータ転送制御装置としてのクロスバ（Ｃｒｏｓｓｂａｒ）を用いる。【０００３】
図１および図２は、マルチプロセッサシステム１００におけるブロードキャスト転送を説明する図である。
図１および図２に示すマルチプロセッサシステム１００は、システムボード００〜１５と、クロスバＸＢ００および０１と、を備える。【０００４】
図１および図２に示すマルチプロセッサシステム１００は、システムボード００〜１５それぞれが１つのノードを構成する場合を示している。ノードとは、１または２以上のＣＰＵからなるプロセッサ群やメモリコントローラとしてのＳＣ（Ｓｙｓｔｅｍ  Ｃｏｎｔｒｏｌｌｅｒ）等によって実現される独立した演算処理単位である。【０００５】
ノード００〜０７はクロスバＸＢ００と接続し、クロスバＸＢ００を介してノード間のデータ転送を行なう。同様に、ノード０８〜１５はクロスバＸＢ０１と接続し、クロスバＸＢ０１を介してノード間のデータ転送を行なう。【０００６】
また、クロスバＸＢ００とクロスバＸＢ０１とは通信可能に接続している。クロスバＸＢ００配下の任意のノードは、クロスバＸＢ０１配下の任意のノードに対してデータ転送が可能である。【０００７】
図１に示す矢印は、ノード００内のＣＰＵがシステム内の全てのＣＰＵに対してブロードキャスト転送のリクエストを発行する場合の処理の流れを示している。
（１）ノード００内のＣＰＵは、ノード００を制御するＳＣ００に対してブロードキャスト転送のリクエストを１つだけ発行する。以下、ブロードキャスト転送のリクエストを発行したＣＰＵを「リクエスタ」という。【０００８】
（２）すると、ＳＣ００は、ノード００内のリクエスタ以外のＣＰＵとノード０１〜１５のＳＣに対してリクエストを送信する。
（３）ＳＣ００からリクエストを受信した各ノード０１〜１５のＳＣは、自ノードのＣＰＵに対してリクエストを送信する。【０００９】
これに対し、図２に示す矢印は、ノード００によるブロードキャスト転送のリクエストに対する応答処理の流れを示している。
（１）ノード００内のリクエスタ以外の各ＣＰＵは、受信したブロードキャスト転送のリクエストに対する応答をＳＣ００に送信する。【００１０】
（２）また、各ノード０１〜１５内の各ＣＰＵは、受信したブロードキャスト転送のリクエストに対する応答を自ノードのＳＣに対して送信する。
（３）すると、各ＳＣ０１〜０７は、それぞれクロスバＸＢ００を介してノード００のＳＣ００に応答を送信する。【００１１】
（４）また、各ＳＣ０８〜１５は、それぞれクロスバＸＢ０１、ＸＢ００を介してノード００のＳＣ００に応答を送信する。
（５）ＳＣ００は、全ＣＰＵからの応答を受信すると、受信結果をリクエスタに通知する。【００１２】
上記技術に関連して、同一ノードに複数のスレッドを割り当てた場合でも、スレッド間でのブロードキャスト転送を可能にするプロセッサ間データ転送方法について知られている。【００１３】
また、複数のプロセッサ間をスイッチ型のネットワークで接続した並列計算機において、ネットワーク内でのブロードキャストメッセージ同士のデッドロックを回避するブロードキャスト通信方法について知られている。【００１４】
また、複数のノードをスイッチ型のネットワークで接続した並列計算機において、ネットワーク上のモニタデータを低コストでリアルタイムに収集するモニタデータ収集方法について知られている。【００１５】
また、通信システムの性能の低下を抑制しつつ、タイムアウトの検出時間の短縮を図ることが可能なパケット転送制御装置について知られている。
【特許文献１】特開平１０−０９７５１２号公報
【特許文献２】特開平１０−２５４８４３号公報
【特許文献３】特開平１１−２３２２３６号公報
【特許文献４】特開２００５−０２０３９４号公報
【発明の開示】
【００１６】
図１に示したように、ブロードキャスト転送を行なう場合、ＳＣ００−クロスバＸＢ００間には１５ノード分のリクエストが通過する。また、クロスバＸＢ００−ＸＢ０１間には８ノード分のリクエストが通過する。
【００１７】
さらに、ブロードキャスト転送に対する応答処理では、図２に示したように、クロスバＸＢ０１−ＸＢ００間には８ノード分の応答が通過する。また、クロスバＸＢ００−ＳＣ００間には１５ノード分の応答が通過する。
【００１８】
一般に、クロスバＸＢ００−ＸＢ０１間のように異なる装置間（または異なるボード間）の伝送バンド幅は狭い。そのため、クロスバＸＢ００配下のノードとクロスバＸＢ０１配下のノードとの間で、スヌープリクエストなどブロードキャスト転送のリクエストが多く発生すると、クロスバＸＢ００−ＸＢ０１間に、対向するクロスバ配下のノードの数だけトラフィックが発生する。
【００１９】
その結果、クロスバＸＢ００−ＸＢ０１間のバンド幅が圧迫されることによりボトルネックが発生し、性能低下の要因となる可能性がある。
本データ転送制御装置は、上述した問題に鑑みてなされたものであり、その解決しようとする課題は、異なる装置に接続されるノード間でのデータ転送による装置間のトラフィックを低減することである。
【００２０】
上記課題を解決するために、本データ転送制御装置は、１または２以上のノードと接続する複数の経路切り替え装置が互いに通信可能に接続する演算処理装置における異なるノード間のデータ転送を制御するデータ転送制御装置であって、以下の構成要素を備える。
【００２１】
第１の制御部は、第１の経路切り替え装置と接続する第１のノード内のデバイスからブロードキャスト転送の要求を受けると、前記第１の経路切り替え装置配下のデバイスに対して前記ブロードキャスト転送を実行する。
【００２２】
また、第１の制御部は、前記第１の経路切り替え装置と接続する第２の経路切り替え装置配下の全ノードを代表する第２のノードに対してブロードキャスト転送の代行を要求する。
【００２３】
第２の制御部は、前記ブロードキャスト転送の代行の要求を受信すると、前記第１の経路切り替え装置と接続する全ノードに対して前記ブロードキャスト転送を実行する。
以上に説明したデータ転送制御装置により、異なる装置に接続されるノード間でのデータ転送による装置間のトラフィックを低減することができる。
【図面の簡単な説明】
【００２４】
【図面の簡単な説明】
【図１】マルチプロセッサシステム１００におけるブロードキャスト転送を説明する図である。
【図２】マルチプロセッサシステム１００におけるブロードキャスト転送を説明する図である。
【図３】マルチプロセッサシステム３００の主要部とブロードキャスト転送の概要を示す図である。
【図４】図３に示したブロードキャスト転送に対する応答処理の概要を示す図である。
【図５】ＳＣ００の主要部を説明する図である。
【図６】ＳＣ００の主要部を説明する図である。
【図７】リクエストまたはリクエストに対する応答に使用するパケットの主要部を示す図である。
【図８】宛先リストの構成例を示す図である。
【図９】宛先判定部５３０の処理を説明する図である。
【図１０】送信先ＩＤ設定部５４０における宛先ＩＤの設定処理を説明する図である。
【図１１】送信情報記憶部５５０に記憶される送信情報１１００を説明する図である。
【図１２】送信情報記憶部５５０に記憶される送信情報１１００を説明する図である。
【図１３】送信情報記憶部５５０に記憶される送信情報１１００を説明する図である。
【図１４】送信情報記憶部５５０に記憶される送信情報１１００を説明する図である。
【図１５】送信情報記憶部５５０に記憶される送信情報１１００を説明する図である。
【図１６】ＳＣによるリクエストの送信処理を示すフローチャートである。
【図１７】ＳＣによる応答処理を示すフローチャートである。
【発明を実施するための最良の形態】
【００２５】
以下、本実施形態の一例について、図３〜図１７に基づいて説明する。
図３は、マルチプロセッサシステム３００の主要部とブロードキャスト転送の概要を示す図である。【００２６】
マルチプロセッサシステム３００は、システムボード００〜１５と、システムボード００〜０７が接続するクロスバＸＢ００と、システムボード０８〜１５が接続するクロスバＸＢ０１と、システム全体を制御するシステム制御装置３０１と、を備える。【００２７】
各システムボード００〜１５は、ＣＰＵ００〜ＣＰＵ０３と、ＩＯＣ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｃｏｎｔｒｏｌｌｅｒ）００〜０３と、システムボードに実装される各ユニットを制御するＳＣと、を備える。【００２８】
ＣＰＵ００〜０３は、所定のプログラムを実行する演算処理装置である。
ＣＰＵ００、ＣＰＵ０１、ＣＰＵ０２およびＣＰＵ０３には、ユニットを識別するユニットＩＤ（Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ  Ｄａｔａ）として、それぞれ００１００（２進数）、００１０１（２進数）、００１１０（２進数）および００１１１（２進数）が割り当てられている。【００２９】
以下、ユニットを識別するユニットのＩＤ番号を単に「ＩＤ」と略して記載する。なお、本実施例では、５桁の２進数により表現されるＩＤが用いられる。
ＩＯＣ００〜０３は、外部記憶装置やネットワークなどとのデータの入出力を制御する入出力制御装置（Ｉ／Ｏ  Ｃｏｎｔｒｏｌｌｅｒ）である。【００３０】
ＩＯＣ００、ＩＯＣ０１、ＩＯＣ０２およびＩＯＣ０３には、ＩＤとして、それぞれ０００００、００００１、０００１０および０００１１が割り当てられる。
本実施例では、システムボード００〜１５内のＣＰＵ００〜０３とＩＯＣ００〜ＩＯＣ０３とに割り当てられるＩＤは、全て同一であるものとする。例えば、システムボード００〜１５の全てのＣＰＵ００のＩＤは、００１００である。同様に、システムボード００〜１５の全てのＩＯＣ００のＩＤは、０００００である。【００３１】
ＳＣ００〜１５は、システムボード上に実装されるＣＰＵやＩＯＣ等のユニットのデータ転送を制御する。ＳＣ００〜１５は、代表ＳＣを特定する代表ＳＣ情報を記憶する代表ＳＣ情報記憶部３１０を備える。【００３２】
クロスバＸＢ００と接続するＳＣ００、ＳＣ０１、・・・、ＳＣ０７には、ＩＤとして、それぞれ１００００、１０００１、・・・、１０１１１が割り当てられている。同様に、クロスバＸＢ０１と接続するＳＣ０８、ＳＣ０９、・・・、ＳＣ１５には、ＩＤとして、それぞれ１１０００、１１００１、・・・、１１１１１が割り当てられる。【００３３】
代表ＳＣとは、同一のクロスバに接続される全ＳＣを代表して、ブロードキャスト処理の一部を担当するＳＣのことである。この代表ＳＣは、クロスバ毎に１つだけ設定される。以下では、例えば、クロスバＸＢ００に接続される全ＳＣを代表してブロードキャスト処理の一部を担当するＳＣを「クロスバＸＢ００配下の代表ＳＣ」と表現する。【００３４】
本実施例では、クロスバＸＢ００配下の代表ＳＣがＳＣ００、クロスバＸＢ０１配下の代表ＳＣがＳＣ０８であるものとする。したがって、代表ＳＣ情報記憶部３１０には、代表ＳＣ情報として、ＳＣ００のＩＤ「１００００」とＳＣ０８のＩＤ「１１０００」が記憶される。【００３５】
代表ＳＣ情報記憶部３１０への代表ＳＣ情報の設定は、例えば、マルチプロセッサシステム３００起動時などに、システム制御装置３０１によって行なわれる。
システム制御装置３０１は、代表ＳＣ情報記憶部３１０への代表ＳＣ情報の設定の他に、各ユニットに備わるレジスタ等にＩＤを設定するなどマルチプロセッサシステム３００の動作に必要な各種設定を行なう。【００３６】
クロスバＸＢ００は、ＳＣ００〜０７またはクロスバＸＢ１から転送されるデータの宛先に応じて伝送経路を切り替えるスイッチング装置である。同様に、クロスバＸＢ０１は、ＳＣ０８〜１５またはクロスバＸＢ００から転送されるデータの宛先に応じてデータの伝送経路を切り替えるスイッチング機構である。【００３７】
以上の構成において、マルチプロセッサシステム３００では、１つのシステムボード内で行なわれる演算処理単位を１ノードとする。なお、ノードとは、マルチプロセッサシステムが演算処理を行なう場合の演算処理単位である。【００３８】
したがって、マルチプロセッサシステム３００は、ノード００〜１５を備える。
各ノード００〜０７は、クロスバＸＢ００を介して互いに通信可能である。同様に、各ノード０８〜１５は、クロスバＸＢ０１を介して互いに通信可能である。【００３９】
また、各ノード００〜０７は、クロスバＸＢ００およびＸＢ０１を介してノード０８〜１５と通信可能である。同様に、各ノード０８〜１５は、クロスバＸＢ０１およびＸＢ００を介してノード００〜０７と通信可能である。【００４０】
以上に説明したマルチプロセッサシステム３００のブロードキャスト転送の動作の概要を以下に説明する。なお、以下に記載する（１）〜（６）は、図３に示す（１）〜（６）に対応する。【００４１】
なお、図３では、例として、ノード００内のＣＰＵ００がブロードキャスト転送をする場合を説明するが、他のＣＰＵによるブロードキャスト転送であっても同様の処理が行なわれるのは当然である。【００４２】
（１）ノード００内のＣＰＵ００は、ＳＣ００に対してブロードキャスト転送のリクエストを１つだけ発行する。
ＳＣ００は、自ノード００内のＣＰＵ００からブロードキャスト転送のリクエストを受信すると、ＳＣ００内に備わる代表ＳＣ情報記憶部３１０から代表ＳＣ情報を取得する。そして、ＳＣ００は、代表ＳＣ情報から、自ノード００と接続するクロスバ以外のクロスバに接続する代表ＳＣを特定する。図３および図４には、代表ＳＣがＳＣ００およびＳＣ０８の場合を示す。【００４３】
（２）ＳＣ００は、後述する第１の宛先リスト８０１にしたがって、自ノード００内のＣＰＵであってＣＰＵ００以外のＣＰＵ０１〜０３に対してリクエストを送信する。
（３）ＳＣ００は、後述する第１の宛先リスト８０１にしたがって、自ノード００が接続するクロスバＸＢ００配下のＳＣであって自ノード以外のノードのＳＣ０１〜０７に対してリクエストを送信する。【００４４】
（４）ＳＣ００は、後述する第１の宛先リスト８０１にしたがって、自ノード００が接続するクロスバＸＢ００以外の他のクロスバＸＢ０１配下のＳＣ０８に対してリクエストを送信する。【００４５】
ＳＣ０８は代表ＳＣなので、ＳＣ００は、クロスバＸＢ０１配下の全ＳＣへのブロードキャスト転送の代行を依頼するブロードキャスト代行ビットを設定したリクエストをＳＣ０８に送信する。ブロードキャスト代行ビットについては、図７で説明する。【００４６】
ブロードキャスト転送の代行とは、要求に応じて、自ノードが属するルーティングデバイス、例えばクロスバ配下の他ノードに対してブロードキャスト転送を代行する処理をいう。【００４７】
（５）代表ＳＣ０８は、ＳＣ００からブロードキャスト転送代行のリクエストを受信すると、自ノード０８が接続するクロスバＸＢ０１配下のＳＣであって自ノード０８以外のノード０９〜１５に対してブロードキャスト転送のリクエストを送信する。【００４８】
（６）ＳＣ００または代表ＳＣ０８からブロードキャスト転送のリクエストを受信すると、各ＳＣ０１〜１５は、自ノード内の全ＣＰＵに対して、リクエストを発行する。
なお、図３に示したマルチプロセッサシステム３００は、実施の一形態である。したがって、図３に示した構成に発明を限定する趣旨ではない。【００４９】
例えば、システムボード、ＳＣ、ＣＰＵおよびクロスバの数や配置などに発明を限定する趣旨ではない。同一システムボードに複数のＳＣを備える場合には、それら複数のＳＣのうちの１つを代表ＳＣとすればよい。【００５０】
また、代表ＳＣ情報記憶部３１０がＳＣ内部に備わる例を示したが、ＳＣが代表ＳＣ情報記憶部３１０を参照可能な状態で実装されていればＳＣ内部に備える必要はない。
また、上述した（２）〜（６）の処理は、ブロードキャスト転送処理の順序を限定するものではないのは当然である。【００５１】
図４は、図３に示したブロードキャスト転送に対する応答処理の概要を示す図である。なお、以下に記載する（１）〜（５）は、図４中に示す（１）〜（５）に対応する。ただし、応答処理の順序を限定するものではない。【００５２】
（１）ＳＣからリクエストを受信したＣＰＵは、リクエストを送信したＳＣに対して応答を発行する。
（２）ＳＣ０９〜１５は、自ノード内の全ＣＰＵから応答を受信すると、代表ＳＣ０８に対して応答を送信する。【００５３】
（３）代表ＳＣ０８は、自ノード内の全ＣＰＵからの応答と、ＳＣ０９〜１５からの応答を全て受信すると、ＳＣ００に対して応答を送信する。
（４）ＳＣ０１〜０７は、自ノード内の全ＣＰＵから応答を受信すると、ＳＣ００に対して応答を送信する。【００５４】
（５）ＳＣ００は、自身が発行した全てのブロードキャスト転送のリクエストに対する応答を受信すると、ブロードキャスト転送のリクエストのリクエスタであるＣＰＵ００に、ブロードキャスト転送のリクエストに対する応答を通知する。【００５５】
図５および図６は、ＳＣ００の主要部を説明する図である。図５は、リクエスト送信時に動作するＳＣ００の主要部の構成例を示す。また、図６は、応答送信時に動作するＳＣ００の主要部の構成例を示す。【００５６】
図５に示すように、ＳＣ００は、リクエスト受信部５１０と、データとしてのパケット振り分け部５２０と、宛先判定部５３０と、送信先ＩＤ設定部５４０と、送信情報記憶部５５０と、リクエスト送信部５６０と、を備える。
【００５７】
リクエスト受信部５１０は、自ノード内外からのリクエストを受信する。そして、リクエスト受信部５１０は、受信したリクエストをパケット振り分け部５２０に送信する。
パケット振り分け部５２０は、リクエスト受信部５１０が送信したリクエストを、そのリクエストに設定された「メッセージの種類」に応じて宛先判定部５３０Ａ〜５３０Ｚに振り分ける。なお、「メッセージ種類」については、図７で説明する。【００５８】
このとき、例えば、パケット振り分け部５２０は、リクエスト、すなわちパケットを参照して「メッセージ種類」を取得する。そして、パケット振り分け部５２０は、リクエストの「メッセージ種類」に応じて宛先判定部５３０Ａ〜５３０Ｚにリクエストを送信する。【００５９】
宛先判定部５３０は、宛先判定部５３０Ａ、５３０Ｂ、５３０Ｃ、・・・、５３０Ｙおよび５３０Ｚを備える。
宛先判定部５３０Ａ、５３０Ｂ、５３０Ｃ、・・・、５３０Ｙおよび５３０Ｚは、図８に示す宛先リストにしたがって、それぞれリメッセージ種類Ａ、Ｂ、Ｃ、・・・、ＹおよびＺの宛先を判定する。そして、宛先判定部５３０Ａ、５３０Ｂ、５３０Ｃ、・・・、５３０Ｙおよび５３０Ｚは、リクエストとともにそのリクエストの宛先ＩＤを送信先ＩＤ設定部５４０に送信する。【００６０】
例えば、宛先判定部５３０Ａは、図８に示す第１の宛先リスト８０１から、メッセージ種類Ａのリクエストの宛先は、宛先ＩＤ「０００００（２進数）」のＩＯＣ００であると判定する。そして、宛先判定部５３０Ａは、リクエストとそのリクエストの宛先を示す宛先ＩＤ「０００００（２進数）」を送信先ＩＤ設定部５４０に送信する。【００６１】
送信先ＩＤ設定部５４０は、宛先判定部５３０Ａ、５３０Ｂ、５３０Ｃ、・・・、５３０Ｙおよび５３０Ｚが送信したリクエストに、そのリクエストとともに送信された宛先ＩＤを設定する。そして、送信先ＩＤ設定部５４０は、リクエストをリクエスト送信部５６０のうち宛先ＩＤの示すユニットにリクエストを送信するリクエスト送信部に送信する。
【００６２】
例えば、宛先ＩＤが「０００００（２進数）」の場合、送信先ＩＤ設定部５４０は、宛先ＩＤ「０００００（２進数）」へのリクエスト送信用ユニットであるノード内ユニット用リクエスト送信部５６０−１００にリクエストを送信する。【００６３】
送信情報記憶部５５０は、リクエストの送信元や送信先などを管理する送信情報を記憶する記憶部である。送信先ＩＤ設定部５４０によって、送信情報の追加・更新・削除などが行なわれる。
【００６４】
送信情報については、図１１〜図１５で具体的に説明する。
リクエスト送信部５６０は、ノード内ユニット用リクエスト送信部５６０−０００〜５６０−００３と、ノード内ユニット用リクエスト送信部５６０−１００〜５６０−１０３と、を備える。【００６５】
ノード内ユニット用リクエスト送信部５６０−０００、５６０−００１、５６０−００２および５６０−００３は、それぞれ自ノード内のＣＰＵ００、ＣＰＵ０１、ＣＰＵ０２およびＣＰＵ０３にリクエストを送信する。【００６６】
ノード内ユニット用リクエスト送信部５６０−１００、５６０−１０１、５６０−１０２および５６０−１０３は、それぞれ自ノード内のＩＯＣ００、ＩＯＣ０１、ＩＯＣ０２およびＩＯＣ０３にリクエストを送信する。【００６７】
リクエスト送信部５６０は、さらに、ＸＢ内ＳＣ用リクエスト送信部５６０−２０１〜５６０−２０７と、ＸＢ外ＳＣ用リクエスト送信部５６０−３０１〜５６０−３０７と、を備える。【００６８】
ＸＢ内ＳＣ用リクエスト送信部５６０−２０１、５６０−２０２、・・・、５６０−２０６および５６０−２０７は、それぞれ自ノード００が接続するＸＢ００配下のＳＣ０１、ＳＣ０２、・・・、ＳＣ０６およびＳＣ０７にリクエストを送信する。【００６９】
ＸＢ外ＳＣ用リクエスト送信部５６０−３００、５６０−３０１、・・・、５６０−３０６および５６０−３０７は、それぞれ自ノードが接続するＸＢ００と接続する他のＸＢ０１配下のＳＣ０８、ＳＣ０９、・・・、ＳＣ１４およびＳＣ１５にリクエストを送信する。【００７０】
なお、図５は、ＳＣ００内の構成例を示すものなので、ＳＣ００自身にリクエストを送信するリクエスト送信部が省略されている。他のＳＣ０１〜ＳＣ１５についても、ＳＣ自身にリクエストを送信する送信部は省略される。【００７１】
図５には、メッセージ種類がＡ〜Ｚまである場合の宛先判定部５３０の構成例を示したが、図５に示した構成に限定する趣旨ではないのは当然である。例えば、宛先判定部の数はメッセージ種類の数だけあればよい。【００７２】
図６に示すように、ＳＣ００は、応答受信部６１０と、送信部選択部６２０と、応答送信部６３０と、をさらに備える。
応答受信部６１０は、自ノード内外のユニットから応答を受信する。そして、応答受信部６１０は、自ノード内外のユニットから受信した応答を送信部選択部６２０に送信する。【００７３】
送信部選択部６２０は、応答受信部６１０から応答を受信すると、送信情報記憶部５５０に記憶されている応答についての送信情報１１００を更新する。送信部選択部６２０は、リクエストを送信した全てのユニットから応答を受信したか否かを送信情報１１００に基づいて判断する。送信情報１１００の詳細については、図１１〜図１５で具体例に説明する。【００７４】
送信部選択部６２０は、リクエストを送信した全てのユニットから応答を受信すると、リクエストの送信元のユニットに応答を送信する。
応答送信部６３０は、ノード内ユニット用応答送信部６３０−０００〜６３０−００３と、ノード内ユニット用応答送信部６３０−１００〜６３０−１０３と、を備える。【００７５】
ノード内ユニット用応答送信部６３０−０００、６３０−００１、６３０−００２および６３０−００３は、それぞれ自ノード内のＣＰＵ００、ＣＰＵ０１、ＣＰＵ０２およびＣＰＵ０３に応答を送信する。【００７６】
ノード内ユニット用応答送信部６３０−１００、６３０−１０１、６３０−１０２および６３０−１０３は、それぞれ自ノード内のＩＯＣ００、ＩＯＣ０１、ＩＯＣ０２およびＩＯＣ０３に応答を送信する。【００７７】
応答送信部６３０は、さらに、ＸＢ内ＳＣ用応答リクエスト送信部６３０−２０１〜６３０−２０７と、ＸＢ外ＳＣ用応答リクエスト送信部６３０−３００〜６３０−３０７と、を備える。
ＸＢ内ＳＣ用応答リクエスト送信部６３０−２０１、６３０−２０２、・・・、６３０−２０６および６３０−２０７は、それぞれ自ノードが接続するＸＢ配下のＳＣ０１、ＳＣ０２、・・・、ＳＣ０６およびＳＣ０７に応答を送信する。
【００７８】
ＸＢ外ＳＣ用応答リクエスト送信部６３０−３００、６３０−３０１、・・・、６３０−３０６および６３０−３０７は、それぞれ自ノードが接続するＸＢと接続するＸＢ内のＳＣ０８、ＳＣ０９、・・・、ＳＣ１４およびＳＣ１５に応答を送信する。
【００７９】
図７は、リクエストまたはリクエストに対する応答に使用するパケットの主要部を示す図である。
図７に示すパケット７００は、メッセージＩＤと、メッセージ種類と、送出元ＩＤと、宛先ＩＤと、ブロードキャスト代行ビットと、ターゲットアドレスと、必要なデータと、を備える情報である。【００８０】
メッセージＩＤは、パケット７００を識別するための識別情報である。
メッセージ種類は、パケット７００の内容についての種類、例えば、スヌープリクエストなどを示す情報である。【００８１】
送出元ＩＤは、パケット７００を送信したユニットを示すＩＤである。
宛先ＩＤは、パケット７００の送信先のユニットを示すＩＤである。
ブロードキャスト代行ビットは、ブロードキャスト転送を代行して実行する必要の有無を示す情報である。代表ＳＣにブロードキャスト転送の代行を依頼する場合、ＳＣは、ブロードキャスト代行ビットに「１」を設定する。【００８２】
また、ブロードキャスト代行ビットに「１」が設定されているリクエストを受信すると、代表ＳＣは、自ノードが接続するクロスバ配下の他のＳＣに対してブロードキャスト転送を実行する。【００８３】
ターゲットアドレスは、パケットを送信するユニットに割り当てられるアドレス情報である。このアドレス情報は、例えば、宛先のユニットについてのノード番号、ユニット番号、チャネル番号、デバイス番号などを含む識別情報である。【００８４】
パケット７００の最終的な宛先は、メッセージ種類と、後述する宛先リストと、必要な場合にはターゲットアドレスと、から求めることができる。
図８は、宛先リストの構成例を示す図である。なお、本実施例では、必要に応じて第１の宛先リストと第２の宛先リストの２つの宛先リストを使用する。【００８５】
第１の宛先リスト８０１は、メッセージ種類と、そのメッセージ種類に応じて決められた宛先のＩＤである宛先ＩＤと、の対応関係を定義している。
第２の宛先リスト８０２は、ターゲットアドレスから得られるデコード値と、そのデコード値に応じて決められた宛先のＩＤである宛先ＩＤと、の対応関係を定義している。【００８６】
第２の宛先リスト８０２のデコード値は、図７に示したターゲットアドレスのノード番号とユニット番号とからなる値をデコードして得られる値である。
なお、図８に示す第１の宛先リスト８０１および第２の宛先リスト８０２には、理解を容易にするために、宛先ＩＤが示すユニットを宛先ユニットして記載しているが、この宛先ユニットの情報は必須の情報ではない。【００８７】
図９は、宛先判定部５３０の処理を説明する図である。図９に示す（１）および（２）は、以下の（１）および（２）に対応する。
（１）宛先判定部５３０は、パケット振り分け部５２０から受信したパケット７００のメッセージ種類が格納されている領域からデータを取得する。そして、宛先判定部５３０は、パケット７００から取得したデータをデコードする。【００８８】
すると、宛先判定部５３０は、デコード値毎にメッセージ種類を定義したメッセージ種類定義情報９０１を参照する。そして、宛先判定部５３０は、デコード値に対応するメッセージ種類を特定する。【００８９】
そして、宛先判定部５３０は、第１の宛先リスト８０１を参照する。宛先判定部５３０は、第１の宛先リスト８０１から、メッセージ種類に対応する宛先ＩＤを取得する。
（２）メッセージ種類だけでは宛先ＩＤを特定することができない場合、宛先判定部５３０は、宛先判定部５３０は、パケット７００のターゲットアドレスからノード番号とユニット番号が格納されている領域からデータを取得する。そして、宛先判定部５３０は、ターゲットアドレスから取得したデータをデコードする。【００９０】
すると、宛先判定部５３０は、第２の宛先リスト８０２を参照する。そして、宛先判定部５３０は、第２の宛先リスト８０２から、デコード値に対応する宛先ＩＤを取得する。
なお、メッセージ種類だけで宛先を特定することが出来るか否かは、例えば、メッセージ種類毎に応じてあらかじめ決めておけばよい。【００９１】
図１０は、送信先ＩＤ設定部５４０における宛先ＩＤの設定処理を説明する図である。図１０に示す（１）および（２）は、以下の（１）および（２）に対応する。必要に応じて、他のユニットから受信したリクエストを「到来リクエスト」、他のユニットへ送信するリクエストを「送出リクエスト」という。【００９２】
送信先ＩＤ設定部５４０は、宛先判定部５３０からリクエストを受信すると、そのリクエストとともに宛先判定部５３０から通知された宛先ＩＤを設定したリクエストを生成する。【００９３】
例えば、ＣＰＵ００からのリクエストがメッセージ種類「Ｂ」である場合を考える。この場合、メッセージ種類Ｂの宛先を判定する宛先判定部５３０Ｂは、第１の宛先リスト８０１から、メッセージ種類「Ｂ」のリクエストの宛先ＩＤを取得する。そして、宛先判定部５３０Ｂは、取得した宛先ＩＤを送信先ＩＤ設定部５４０に通知する。
（１）すると、送信先ＩＤ設定部５４０は、自ノード００内の全ＣＰＵと、同一クロスバＸＢ００配下の全ＳＣと、他クロスバＸＢ０１配下の代表ＳＣ０８と、に送信するリクエストであって、到来リクエストとデータ内容が同じ送出リクエストを生成する。【００９４】
ただし、ＣＰＵ００はリクエスタ、ＳＣ００は自ノードのＳＣであるので、ＣＰＵ００およびＳＣ００への送出リクエストは生成しない。
そして、送信先ＩＤ設定部５４０は、生成した送出リクエストに、宛先判定部５３０Ｂから通知された宛先ＩＤ「００１０１」〜「００１１１」、「１０００１」〜「１０１１１」および「１１０００」を設定する。
（２）また、送信先ＩＤ設定部５４０は、代表ＳＣ情報記憶部３１０を参照する。そして、宛先ＩＤが代表ＳＣ情報記憶部３１０に設定されているＩＤ「１１０００」と一致する場合、送信先ＩＤ設定部５４０は、送出リクエストのブロードキャスト代行ビットを「１」に設定する。【００９５】
図１１〜図１５は、送信情報記憶部５５０に記憶される送信情報１１００を説明する図である。
送信情報１１００は、新メッセージＩＤと、有効フラグと、旧メッセージＩＤと、旧送信元ＩＤと、送出先リストと、送出待ちリストと、ＢＣ（ＢｒｏａｄＣａｓｔ）応答内容と、リクエストタイプと、を含む情報である。
【００９６】
図１１は、送信情報１１００についての、新メッセージＩＤと、有効フラグと、旧メッセージＩＤと、旧送出元ＩＤと、を説明する図である。
新メッセージＩＤは、送出リクエストに割り当てる識別番号である。図１１には、０００００（２進数）から１１１１１（２進数）の値が使用される場合の例を示している。【００９７】
有効フラグは、新メッセージＩＤが有効か否かを識別する情報である。有効フラグが「１」の場合、新メッセージＩＤが有効、すなわち使用中であることを示す。また、有効フラグが「０」の場合、新メッセージＩＤが無効、すなわち未使用であることを示す。【００９８】
旧メッセージＩＤは、到来リクエストから取得するメッセージＩＤである。また、旧送出元ＩＤは、到来リクエストから取得される送信元ＩＤである。
新メッセージＩＤ、有効フラグ、旧メッセージＩＤおよび旧送信元ＩＤは、以下のように使用される。図１１中に示す（１）〜（７）は、以下の（１）〜（７）に対応する。
（１）到来リクエストを受信すると、送信先ＩＤ設定部５４０は、プライオリティ回路等を利用して、有効フラグが「０」に設定されている新メッセージＩＤの中から、到来リクエストに割り当てる新メッセージＩＤを決定する。【００９９】
例えば、ＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）方式のプライオリティ回路を用いて、有効フラグが「０」に設定されている新メッセージＩＤの中から、最近最も使用されていない新メッセージＩＤを到来リクエスト割り当てるようにしてもよい。【０１００】
図１１では、到来リクエストに新メッセージＩＤ「０００００」を割り当てた場合の送信情報１１００を示している。
（２）到来リクエストに割り当てる新メッセージＩＤを決定すると、送信先ＩＤ設定部５４０は、決定した新メッセージＩＤを送出リクエストに設定する。
（３）また、送信先ＩＤ設定部５４０は、到来リクエストからメッセージＩＤを取得する。そして、送信先ＩＤ設定部５４０は、取得したメッセージＩＤを送信情報の旧メッセージＩＤとして記憶する。
（４）同様に、送信先ＩＤ設定部５４０は、到来リクエストから送出元ＩＤを取得する。そして、送信先ＩＤ設定部５４０は、取得した送出元ＩＤを送信情報の旧送出元ＩＤとして記憶する。
（５）送信先ＩＤ設定部５４０は、ＳＣ００自身のＩＤ「１００００」を、送出リクエストの送信元ＩＤに設定する。
（６）送信先ＩＤ設定部５４０は宛先判定部５３０から通知された宛先ＩＤを、送出リクエストの宛先ＩＤに設定する。この点については、図１０に説明した通りである。
（７）後述する送出リクエストや送出待ちリストなどの設定が完了すると、送信先ＩＤ設定部５４０は、有効フラグを「１」に設定する。そして、送信先ＩＤ設定部５４０は、リクエスト送信部５６０に送出リクエストを送信する。【０１０１】
なお、上記（１）〜（７）は、図１１との対応を明確にすることを意図するものであって、送信先ＩＤ設定部５４０の処理の順番を示すものではない。
図１２は、送信情報１１００についての、送出先リストと、送出待ちリストと、を説明する図である。
【０１０２】
送出待ちリストは、自ノード内のＣＰＵ０、ＣＰＵ１、ＣＰＵ２およびＣＰＵ３へのリクエストの送出の有無を管理する情報と、ノード０のＳＣ、ノード１のＳＣ、・・・、ノード１４のＳＣおよびノード１５のＳＣへのリクエストの送出の有無を管理する情報と、を備える。【０１０３】
このリクエストの送出の有無を管理する情報を「送出管理情報」という。この送出管理情報は、１ビット幅のデータである。
例えば、自ノード内のＣＰＵ０の送出管理情報が「１」の場合、自ノード内のＣＰＵ０にリクエストを送出し、応答を待っている状態であることを示す。自ノード内のＣＰＵ０の送出管理情報が「０」の場合、自ノード内のＣＰＵ０にリクエストを送出していない、または送出したリクエストに対する応答を受信した状態であることを示す。【０１０４】
送出待ちリストは、自ノード内のＣＰＵ０、ＣＰＵ１、ＣＰＵ２およびＣＰＵ３へのリクエストの送出待ちを示す情報と、ノード０のＳＣ、ノード１のＳＣ、・・・、ノード１４のＳＣおよびノード１５のＳＣへのリクエストの送出待ちを示す情報と、を備える。【０１０５】
このリクエストの送出待ちの有無を示す情報を「送出待ち情報」という。この送出待ち情報は、１ビット幅のデータである。
例えば、自ノード内のＣＰＵ０の送出待ち情報が「１」の場合、自ノード内のＣＰＵ０へのリクエストの送出待ちの状態であることを示す。自ノード内のＣＰＵ０の送出待ち情報が「０」の場合、自ノード内のＣＰＵ０へのリクエストの送出待ちでないことを示す。
【０１０６】
送出先リストおよび送出待ちリストは、以下のように使用される。
（１）送信先ＩＤ設定部５４０は、到来リクエストを受信すると、宛先判定部５３０から通知された宛先ＩＤにしたがって、通知された宛先ＩＤが示すユニットの送出管理情報および送信待ち情報を「１」に設定する。【０１０７】
例えば、ＣＰＵ００から全ＣＰＵへのブロードキャスト転送のリクエストの場合、図１０で示したように、宛先判定部５３０から、宛先ＩＤ「００１０１」〜「００１１１」、「１０００１」〜「１０１１１」および「１１０００」が通知される。【０１０８】
すると、送信先ＩＤ設定部５４０は、宛先ＩＤ「００１０１」〜「００１１１」、「１０００１」〜「１０１１１」および「１１０００」が示すユニットの送出管理情報および送出待ち情報を「１」に設定する。
（２）送信先ＩＤ設定部５４０は、リクエストをリクエスト送信部５６０を介して送出すると、送出したユニットの送信待ち情報を「０」に設定する。
（３）送信部選択部６２０は、リクエストを送出したユニットから応答を受信すると、受信した応答を送出したユニットの「送出管理情報」を「０」に設定する。
（４）送信部選択部６２０は、送信先リストの全ての送出管理情報と、送出待ちリストの全ての送出待ち情報と、が「０」になると、送信情報１１００の「旧送出元ＩＤ」が示すユニットに応答を送信する。このとき、送信部選択部６２０は、送信情報１１００の有効フラグを「０」に設定する。
【０１０９】
図１３は、送信情報１１００についての、ＢＣ応答内容と、リクエストタイプと、を説明する図である。
ＢＣ応答内容は、各ユニットから送出される応答のうち、リクエストタイプが示す優先順位決定情報によって決定される優先順位が最も高い応答である。
【０１１０】
ブロードキャスト転送されたリクエストの場合、リクエストによっては、各ユニットから異なった内容の応答が送出されることがある。このような場合に、各ユニットから送出される応答のうち優先順位の最も高い応答が「ＢＣ応答内容」として格納される。【０１１１】
リクエストタイプは、優先順位を決定する優先順位決定情報を識別する識別情報である。
送信部選択部６２０は、リクエストに対する応答を受信すると、リクエストタイプが示す優先順位決定情報を参照する。そして、送信部選択部６２０は、ＢＣ応答内容に格納されている応答内容の優先順位と、受信した応答の応答内容の優先順位と、を比較し、優先順位の高い応答内容を送信情報１１００のＢＣ応答内容に格納する。
【０１１２】
図１４は、優先順位決定情報の具体例を示す図である。
優先順位決定情報１４０１は、電源制御に関するリクエストに対する応答の優先順位を決定する優先順位決定情報である。優先順位決定情報１４０１は、優先順位と応答内容とを対応づけたテーブルである。【０１１３】
優先順位決定情報１４０２は、スヌープに関するリクエストに対する応答の優先順位を決定する優先順位決定情報である。優先順位決定情報１４０２は、優先順位と応答内容とを対応づけたテーブルである。【０１１４】
なお、図１４に示す優先順位決定情報は単なる例示であって、図１４に示すものだけに優先順位決定情報を限定する趣旨ではない。
図１５は、優先順位決定情報の使用例を説明する図である。【０１１５】
なお、図１５は、図１４に示した電源制御に関するリクエストに対する応答の優先順位を決定する優先順位決定情報１４０１の使用例について説明する。また、説明を簡単にするために、メッセージＩＤ「００１０１」の応答を４つのユニットから受信する場合の処理について説明する。【０１１６】
図１５に示す（１）〜（４）は、以下の（１）〜（４）に対応する。
（１）電源制御に関するリクエストに対する最初の応答である応答１を受信すると、送信部選択部６２０は、応答１のデータ領域から応答内容「１００１」を取得する。
【０１１７】
そして、送信部選択部６２０は、送信情報１１００を参照し、応答内容１のメッセージＩＤ「００１０１」と同一の新メッセージＩＤが割り当てられているＢＣ応答内容に、応答１から取得した応答内容「１００１」を格納する。
（２）応答１の次に応答２を受信すると、送信部選択部６２０は、応答２のデータ領域から応答内容「０１０１」を取得する。
【０１１８】
そして、送信部選択部６２０は、優先順位決定情報１４０１を参照し、応答２から取得した応答内容「０１０１」の優先順位を特定する。同様に、送信部選択部６２０は、ＢＣ応答内容に格納されている応答内容「１００１」の優先順位を特定する。そして、送信部選択部６２０は、特定した２つの優先順位を比較する。
【０１１９】
応答２から取得した応答内容「０１０１」の優先順位「１１」は、ＢＣ応答内容に記憶されている応答内容「１００１」の優先順位「７」より低い。この場合、送信部選択部６２０は、ＢＣ応答内容に記憶されている応答内容「１００１」を保持する。
（３）応答２の次に応答３を受信すると、送信部選択部６２０は、応答３のデータ領域から応答内容「１０１１」を取得する。
【０１２０】
そして、送信部選択部６２０は、優先順位決定情報１４０１を参照し、応答３から取得した応答内容「１０１１」の優先順位を特定する。同様に、送信部選択部６２０は、ＢＣ応答内容に格納されている応答内容「１００１」の優先順位を特定する。そして、送信部選択部６２０は、特定した２つの優先順位を比較する。
【０１２１】
応答３から取得した応答内容「１０１１」の優先順位「５」は、ＢＣ応答内容に記憶されている応答内容「１００１」の優先順位「７」より高い。この場合、送信部選択部６２０は、ＢＣ応答内容に記憶されている応答内容を「１０１１」に更新する。
（４）応答３の次に応答４を受信すると、送信部選択部６２０は、応答４のデータ領域から応答内容「０１０１」を取得する。
【０１２２】
そして、送信部選択部６２０は、優先順位決定情報１４０１を参照し、応答内容「０１０１」の優先順位を特定する。同様に、送信部選択部６２０は、ＢＣ応答内容に格納されている応答内容「１０１１」の優先順位を特定する。そして、送信部選択部６２０は、特定した２つの優先順位を比較する。
【０１２３】
応答４から取得した応答内容「０１０１」の優先順位「１１」は、ＢＣ応答内容に記憶されている応答内容「１０１１」の優先順位「５」より低い。この場合、送信部選択部６２０は、ＢＣ応答内容に記憶されている応答内容「１０１１」を保持する。
【０１２４】
図１６は、ＳＣによるリクエストの送信処理を示すフローチャートである。
リクエスト受信部５１０がリクエストを受信すると、ＳＣは、受信したリクエストの送信処理を開始する（ステップＳ１６００）。【０１２５】
ステップＳ１６０１において、パケット振り分け部５２０は、リクエストに設定されている送信元ＩＤを参照する。そして、パケット振り分け部５２０は、リクエストの送信元がＣＰＵまたはＩＯＣか否かを判別する。【０１２６】
リクエストの送信元がＣＰＵまたはＩＯＣ、すなわち自ノード内のユニットである場合、パケット振り分け部５２０は、処理をステップＳ１６０２に移行する（ステップＳ１６０１  ＹＥＳ）。また、リクエストの送信元がＣＰＵまたはＩＯＣ、すなわち自ノード内のユニットでない場合、パケット振り分け部５２０は、処理をステップＳ１６１７に移行する（ステップＳ１６０１  ＮＯ）。【０１２７】
ステップＳ１６０２において、パケット振り分け部５２０は、リクエストから、そのリクエストに設定されているメッセージ種類を取得する。そして、パケット振り分け部５２０は、メッセージ種類に応じて、メッセージを宛先判定部５３０内の宛先判定部５３０Ａ〜５３０Ｚに振り分ける。【０１２８】
ステップＳ１６０３において、宛先判定部５３０は、ステップＳ１６０２で取得したメッセージ種類だけでは宛先が判明しないと判断すると、処理をステップＳ１６０４に移行する（ステップＳ１６０３  ＮＯ）。【０１２９】
また、宛先判定部５３０は、ステップＳ１６０２で取得したメッセージ種類から宛先が判明すると判断すると、第１の宛先リスト８０１からメッセージ種類に応じた宛先ＩＤを取得する。そして、宛先判定部５３０は、処理をステップＳ１６０７に移行する（ステップＳ１６０３  ＹＥＳ）。【０１３０】
ステップＳ１６０４において、宛先判定部５３０は、リクエストから、そのリクエストに設定されているターゲットアドレスの一部、すなわちノード番号とユニット番号を取得する。そして、宛先判定部５３０は、第２の宛先リスト８０２からノード番号およびユニット番号をデコードした値に応じた宛先ＩＤを取得する。【０１３１】
ステップＳ１６０５において、宛先判定部５３０は、ステップＳ１６０２〜Ｓ１６０４の処理を行なっても正常に宛先ＩＤが得られない場合、処理をステップＳ１６０６に移行する（ステップＳ１６０５  ＮＯ）。この場合、ＳＣは、リクエストの送信処理を異常終了する。【０１３２】
また、宛先判定部５３０は、正常に宛先ＩＤを取得すると、処理をステップＳ１６０７に移行する（ステップＳ１６０５  ＹＥＳ）。
ステップＳ１６０７において、送信先ＩＤ設定部５４０は、リクエストがブロードキャスト転送を要求するリクエストであるか否かを判別する。例えば、あらかじめメッセージ種類毎にブロードキャスト転送を要求されるリクエストか否かを示す情報を設定し、その設定した情報をもとに、リクエストがブロードキャスト転送を要求するリクエストであるか否かを判別すればよい。【０１３３】
リクエストがブロードキャスト転送を要求するリクエストである場合、送信先ＩＤ設定部５４０は、処理をステップＳ１６０８に移行する（ステップＳ１６０７  ＹＥＳ）。また、リクエストがブロードキャスト転送を要求するリクエストでない場合、送信先ＩＤ設定部５４０は、処理をステップＳ１６１４に移行する（ステップＳ１６０７  ＮＯ）。【０１３４】
ステップＳ１６０８において、送信先ＩＤ設定部５４０は、自ノード内のＣＰＵまたはＩＯＣへのリクエストを生成する。
ステップＳ１６０９において、送信先ＩＤ設定部５４０は、自ノードが接続するクロスバ、すなわち自クロスバ配下の自ノード以外のＳＣ、すなわち他ＳＣへのリクエストを生成する。【０１３５】
ステップＳ１６１０において、送信先ＩＤ設定部５４０は、自ノードが接続するクロスバ以外のクロスバ、すなわち他クロスバ配下の代表ＳＣへのリクエストを生成する。
なお、ステップＳ１６０８〜Ｓ１６１０の具体的な処理については、図１０および図１１に示した。【０１３６】
ステップＳ１６１１において、送信先ＩＤ設定部５４０は、ステップＳ１６１０で作成したリクエストのブロードキャスト代行ビットを「１」に設定する。
ステップＳ１６１２において、送信先ＩＤ設定部５４０は、ステップＳ１６０８〜Ｓ１６１０により生成したリクエストに関し、送信情報１１００を設定する。送信情報１１００の設定については、図１１および図１２に具体的な処理を示した。【０１３７】
送信先ＩＤ設定部５４０は、リクエストに設定されている宛先ＩＤに応じて、リクエスト送信部５６０−０００〜５６０−００３、５６０−１００〜５６０−１０３、５６０−２０１〜５６０−２０７、５６０−３０１〜５６０−３０７にリクエストを送信する。【０１３８】
ステップＳ１６１３において、リクエスト送信部５６０は、送信先ＩＤ設定部５４０からリクエストを受信すると、そのリクエストを所定のユニットに送信する。
一方、ステップＳ１６１４において、送信先ＩＤ設定部５４０は、ステップＳ１６０２〜Ｓ１６０５の処理で判明したユニットへのリクエストを生成する。なお、ステップＳ１６１４の具体的な処理については、図１０および１１に示した。【０１３９】
ステップＳ１６１５〜Ｓ１６１６の処理は、Ｓ１６１２〜Ｓ１６１３の処理と同様である。
ステップＳ１６１７〜Ｓ１６２２の処理は、ステップＳ１６０２〜Ｓ１６０７の処理と同様である。【０１４０】
ステップＳ１６２２において、リクエストがブロードキャスト転送を要求するリクエストである場合、送信先ＩＤ設定部５４０は、処理をステップＳ１６２３に移行する（ステップＳ１６２２  ＹＥＳ）。また、リクエストがブロードキャスト転送を要求するリクエストでない場合、送信先ＩＤ設定部５４０は、処理をステップＳ１６３３に移行する（ステップＳ１６２２  ＮＯ）。【０１４１】
ステップＳ１６２３において、送信先ＩＤ設定部５４０は、リクエストのブロードキャスト代行ビットを参照する。そして、送信先ＩＤ設定部５４０は、ブロードキャスト代行ビットが「１」か否かを判定する。【０１４２】
ブロードキャスト代行ビットが「１」の場合、送信先ＩＤ設定部５４０は、処理をステップＳ１６２４に移行する（ステップＳ１６２３  ＹＥＳ）。また、ブロードキャスト代行ビットが「０」の場合、送信先ＩＤ設定部５４０は、処理をステップＳ１６３０に移行する（ステップＳ１６２３  ＮＯ）。【０１４３】
ステップＳ１６２４において、送信先ＩＤ設定部５４０は、自身が代表ＳＣか否かを判別する。
例えば、送信先ＩＤ設定部５４０は、自ＳＣ内に備わる代表ＳＣ情報記憶部３１０を参照する。そして、送信先ＩＤ設定部５４０は、代表ＳＣ情報記憶部３１０に、自ＳＣのＩＤが登録されているか否かを判別する。【０１４４】
代表ＳＣ情報記憶部３１０に自ＳＣのＩＤが登録されていない場合、送信先ＩＤ設定部５４０は、自身が代表ＳＣでないと判断し、処理をステップＳ１６２５に移行する（ステップＳ１６２４  ＮＯ）。この場合、ＳＣは、リクエストの送信処理を異常終了する。【０１４５】
代表ＳＣ情報記憶部３１０に自ＳＣのＩＤが登録されている場合、送信先ＩＤ設定部５４０は、自身が代表ＳＣであると判断し、処理をステップＳ１６２６に移行する（ステップＳ１６２４  ＹＥＳ）。【０１４６】
ステップＳ１６２６において、送信先ＩＤ設定部５４０は、自ノード内のＣＰＵまたはＩＯＣへのリクエストを生成する。
ステップＳ１６２７において、送信先ＩＤ設定部５４０は、自ノードが接続するクロスバ、すなわち自クロスバ配下の自ノード以外のＳＣ、すなわち他ＳＣへのリクエストを生成する。
【０１４７】
ステップＳ１６２８〜Ｓ１６２９の処理は、ステップＳ１６１２〜Ｓ１６１３の処理と同様である。
一方、ステップＳ１６３０において、送信先ＩＤ設定部５４０は、自ノード内のＣＰＵまたはＩＯＣへのリクエストを生成する。
【０１４８】
ステップＳ１６３１〜Ｓ１６３２の処理は、ステップＳ１６１２〜Ｓ１６１３の処理と同様である。また、ステップＳ１６３３〜Ｓ１６３５の処理は、ステップＳ１６１４〜Ｓ１６１６の処理と同様である。【０１４９】
以上の処理が終了すると、ＳＣは、処理をステップＳ１６３６に移行する。そして、ＳＣは、リクエストの送信処理を終了する。
図１７は、ＳＣによる応答処理を示すフローチャートである。【０１５０】
ステップＳ１７０１において、自ノード内外のユニットから応答を受信すると、応答受信部６１０は、受信した応答を送信部選択部６２０に送信する。
ステップＳ１７０２において、送信部選択部６２０は、受信した応答からメッセージＩＤを取得する。そして、送信部選択部６２０は、送信情報記憶部５５０から、取得したメッセージＩＤの送出先リストを取得する。送出先リストについては、図１２で具体例を示した。【０１５１】
ステップＳ１７０３において、送信部選択部６２０は、取得した送出先リストの送出管理情報に「１」が設定されているか否かを判別する。
取得した送出先リストの送出管理情報に「１」が設定されていない場合、送信部選択部６２０は、処理をステップＳ１７０４に移行する（ステップＳ１７０３  ＮＯ）。この場合、ＳＣは、応答処理を異常終了する。【０１５２】
また、取得した送出先リストの送出管理情報に「１」が設定されている場合、送信部選択部６２０は、処理をステップＳ１７０５に移行する（ステップＳ１７０３  ＹＥＳ）。
ステップＳ１７０５において、送信部選択部６２０は、「１」が設定されている送出管理情報が２以上あるか否かを判別する。【０１５３】
「１」が設定されている送出管理情報が２以上ない場合、送信部選択部６２０は、処理をステップＳ１７０６に移行する（ステップＳ１７０５  ＮＯ）。また、「１」が設定されている送出管理情報が２以上ある場合、送信部選択部６２０は、処理をステップＳ１７０８に移行する（ステップＳ１７０５  ＹＥＳ）。【０１５４】
ステップＳ１７０６において、送信部選択部６２０は、受信した応答から送信元ＩＤを取得する。そして、送信部選択部６２０は、送信元ＩＤに対応する送出管理情報を「０」に設定する。【０１５５】
ステップＳ１７０７において、送信部選択部６２０は、ステップＳ１７０２で応答から取得したメッセージＩＤに対応する送出リストから、旧メッセージＩＤ、旧送出元ＩＤ、必要に応じてＢＣ応答内容を取得する。【０１５６】
そして、送信部選択部６２０は、応答のメッセージＩＤ、宛先ＩＤおよびデータに、送出リストから取得した旧メッセージＩＤ、旧送出元ＩＤおよびＢＣ応答内容をそれぞれ設定して応答を生成する。【０１５７】
送信部選択部６２０は、応答に設定した宛先ＩＤに対応する応答送信部６３０−０００〜６３０−００３、６３０−１００〜６３０−１０３、６３０−２０１〜６３０−２０７、６３０−３０１〜６３０−３０７に応答を送信する。【０１５８】
すると、応答送信部６３０は、受信した応答を所定のユニットに送信する。
一方、ステップＳ１７０８において、送信部選択部６２０は、受信した応答から送信元ＩＤを取得する。そして、送信部選択部６２０は、送信元ＩＤに対応する送出管理情報を「０」に設定する。【０１５９】
ステップＳ１７０９において、送信部選択部６２０は、受信した応答の応答内容に優先順位を付ける必要があるか否かを判別する。なお、応答内容に優先順位を付ける必要があるか否かは、応答のメッセージ種類に応じてあらかじめ設定しておけばよい。【０１６０】
応答内容に優先順位を付ける必要がある場合、送信部選択部６２０は、処理をステップＳ１７１０に移行する（ステップＳ１７０９  ＹＥＳ）。また、応答内容に優先順位を付ける必要がない場合、送信部選択部６２０は、処理をステップＳ１７０５に移行する（ステップＳ１７０９  ＮＯ）。【０１６１】
ステップＳ１７１０において、送信部選択部６２０は、受信した応答から取得した応答内容の優先順位が、その応答のメッセージＩＤに対応する送信情報１１００のＢＣ応答内容に格納されている応答内容の優先順位より高い場合、応答から取得した応答内容にＢＣ応答内容を更新する。そして、送信部選択部６２０は、処理をステップＳ１７０５に移行する。【０１６２】
以上に説明したように、マルチプロセッサシステム３００は、クロスバＸＢ００、ＸＢ０１それぞれに代表ＳＣを有する。
そして、自ノード内のユニット、例えば、ＣＰＵやＩＯＣからブロードキャスト転送のリクエストを受信すると、ＳＣは、自ノードが接続するクロスバ配下のユニットに対してブロードキャスト転送を行なう。【０１６３】
さらに、ＳＣは、自ノードが接続するクロスバ以外のクロスバ配下の代表ＳＣに対してブロードキャスト転送の代行を依頼する。そして、ブロードキャスト転送の代行の依頼を受けたＳＣは、自ノードが接続するクロスバ配下のユニットに対してブロード転送を行なう。【０１６４】
すると、自ノード内のユニットからブロードキャスト転送のリクエストを受信したＳＣは、自ノードが接続するクロスバ配下のユニットと、自ノードが接続するクロスバ以外のクロスバ配下の代表ＳＣと、にリクエストを送ればよいことになる。【０１６５】
したがって、本実施例に係るブロードキャスト転送を行なった場合、ＳＣ００−クロスバＸＢ００間を通過するリクエストは、８ノード分となる。これは、従来のブロードキャスト転送の８／１５のトラフィック量となる。【０１６６】
また、本実施例に係るブロードキャスト転送を行なった場合、クロスバＸＢ００−ＸＢ０１間を通過するリクエストは、１ノード分となる。これは、従来のブロードキャスト転送の１／８のトラフィック量となる。【０１６７】
以上のように、ブロードキャスト転送によるＳＣ−クロスバ間やクロスバ間のトラフィックを低減させることが可能となる。その結果、異なる装置に接続されているノード間でのデータ転送性能を向上させることが可能となる。
【図１】
0005440602.tif 000002
【図２】
0005440602.tif 000003
【図３】
0005440602.tif 000004
【図４】
0005440602.tif 000005
【図５】
0005440602.tif 000006
【図６】
0005440602.tif 000007
【図７】
0005440602.tif 000008
【図８】
0005440602.tif 000009
【図９】
0005440602.tif 000010
【図１０】
0005440602.tif 000011
【図１１】
0005440602.tif 000012
【図１２】
0005440602.tif 000013
【図１３】
0005440602.tif 000014
【図１４】
0005440602.tif 000015
【図１５】
0005440602.tif 000016
【図１６】
0005440602.tif 000017
【図１７】
0005440602.tif 000018