(57)【特許請求の範囲】
【請求項１】
転送先が同一の複数のパケットを同時に受け付けた場合に、調停の結果、
先に出力するパケットが制御情報通知パケットでなく、かつ、有効な制御情報を含まず、
後に出力するパケットが制御情報通知パケットであるか、あるいは、リクエストパケットであり有効な制御情報を含むと、
前記先に出力するパケットのパケットヘッダ内の制御情報の部分に前記後に出力するパケットのパケットヘッダ内の制御情報を設定し、
前記後に出力するパケットが制御情報通知パケットであれば、前記後に出力するパケットを破棄し、制御情報を含むリクエストパケットであれば、制御情報を無効にする
ことを特徴とするパケット制御回路。
【請求項２】
制御情報は、制御情報自身が有効であるか無効であるかどうかを示す有効・無効情報と、パケットの転送先でパケットの処理が正常終了したのか異常終了したのかを示す終了ステータスと、どのパケットに対する制御情報であるかどうかを示すパケットＩＤとを含むことを特徴とする請求項１記載のパケット制御回路。
【請求項３】
パケットヘッダは、制御情報通知パケット、リクエストパケットの種別を示すパケット種別、パケットの転送先を示すルーティング情報、または、パケットを識別するパケットＩＤを含むことを特徴とする請求項１または２記載のパケット制御回路。
【請求項４】
入力ポート対応のパケット受信部、および、出力ポート対応の出力調停部を備え、前記パケット受信部は、前記入力ポートからパケットを受け付けパケットを出力する前記出力ポートを決定し対応する前記調停リクエスト部に調停リクエストを出力し、
前記出力調停部は、複数の調停リクエストを同時に入力すると調停を行い、調停により先に出力するパケットが制御情報を含まず、後に出力するパケットが制御情報通知パケットであるか、あるいは、リクエストパケットであり有効な制御情報を含むと、前記先に出力するパケットに前記後に出力するパケット内の制御情報を設定して前記出力ポートに出力する請求項１ないし３のいずれかに記載のパケット制御回路。
【請求項５】
制御情報は、リクエストパケットの正常終了・異常終了を示す完了通知情報であり、制御情報通知パケットは、リクエストパケットの正常終了・異常終了を通知するパケットであることを特徴とする請求項１ないし４のいずれかに記載のパケット制御回路。
【請求項６】
請求項１ないし５のいずれかに記載の前記パケット制御回路を複数段接続したことを特徴とするパケット処理装置。
【請求項７】
転送先が同一の複数のパケットを同時に受け付けた場合に、調停の結果、
転送先が同一の複数のパケットを同時に受け付けた場合に、調停により先に出力するパケットが情報を含まず、後に出力するパケットが制御情報通知パケットであるか、あるいは、リクエストパケットであり有効な制御情報を含むと、前記先に出力するパケットに前記後に出力するパケット内の制御情報を設定して出力し、
前記先に出力するパケットに前記後に出力するパケット内の制御情報を設定する場合に、前記先に出力するパケットのパケットヘッダ内の制御情報の部分に前記後に出力するパケットのパケットヘッダ内の制御情報を設定し、
前記先に出力するパケットに前記後に出力するパケット内の制御情報を設定して出力した場合に、前記後に出力するパケットが制御情報通知パケットであれば、前記後に出力するパケットを破棄し、制御情報を含むリクエストパケットであれば、制御情報を無効にすることを特徴とするパケット制御方法。
【請求項８】
制御情報は、制御情報自身が有効であるか無効であるかどうかを示す有効・無効情報と、パケットの転送先でパケットの処理が正常終了したのか異常終了したのかを示す終了ステータスと、どのパケットに対する制御情報であるかどうかを示すパケットＩＤとを含むことを特徴とする請求項７記載のパケット制御方法。
【請求項９】
パケットヘッダは、制御情報通知パケット、リクエストパケットの種別を示すパケット種別、パケットの転送先を示すルーティング情報、または、パケットを識別するパケットＩＤを含むことを特徴とする請求項７または８記載のパケット制御方法。
【請求項１０】
入力ポート対応のパケット受信部、および、出力ポート対応の出力調停部を備えるパケット制御回路におけるパケット制御方法であって、前記パケット受信部は、前記入力ポートからパケットを受け付けパケットを出力する前記出力ポートを決定し対応する前記調停リクエスト部に調停リクエストを出力し、
前記出力調停部は、複数の調停リクエストを同時に入力すると調停を行い、調停により先に出力するパケットが情報を含まず、後に出力するパケットが制御情報通知パケットであるか、あるいは、リクエストパケットであり有効な制御情報を含むと、前記先に出力するパケットに前記後に出力するパケット内の制御情報を設定して前記出力ポートに出力する請求項７ないし９のいずれかに記載のパケット制御方法。
【請求項１１】
制御情報は、リクエストパケットの正常終了・異常終了を示す完了通知情報であり、制御情報通知パケットは、リクエストパケットの正常終了・異常終了を通知するパケットであることを特徴とする請求項７ないし１０のいずれかに記載のパケット制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケット制御回路、パケット処理装置、および、パケット処理方法に関する。
【背景技術】
【０００２】
データ転送のレイテンシ性能を向上させる技術の１例が特許文献１に記載されている。この技術は、リクエスト信号をリクエスタ毎に２本設け、クロスバが一方のリクエスト信号に対するＧｒａｎｔ信号出力と同時に他のリクエスト信号の調停処理を行うものである。
【０００３】
また、特許文献２記載には、ネットワークルータ内で、同一の宛先のネットワーク・パケットを合体させる技術が記載されている。
【０００４】
【特許文献１】特開２００３−３３７８０７号公報
【特許文献２】特表２００８−５０４６０９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述した特許文献１記載の技術は、パケットの数を減らす処理は実施していないので、調停の回数が減らず、データ転送のレイテンシ性能の向上が低いという課題を持つ。
【０００６】
上述した特許文献２記載の技術は、複数のネットワーク・パケットをそのまま合体させるので、転送データ量が減少せず、性能の向上が少ないという課題を持つ。
【０００７】
本発明の目的は、上記課題を解決するパケット制御回路、パケット処理装置、および、パケット処理方法を提供することである。
【課題を解決するための手段】
【０００８】
本発明のパケット制御回路は、転送先が同一の複数のパケットを同時に受け付けた場合に、調停の結果、後に出力するパケットの一部を先に出力するパケットに設定して出力する。
【０００９】
本発明のパケット制御方法は、転送先が同一の複数のパケットを同時に受け付けた場合に、調停の結果、後に出力するパケットの一部を先に出力するパケットに設定して出力する。
【発明の効果】
【００１０】
本発明は、調停の回数が減り、パケット転送のレイテンシ性能を向上できるという効果を持つ。
【発明を実施するための最良の形態】
【００１１】
次に、本発明の第１の実施の形態について図面を参照して詳細に説明する。図１は、本実施の形態の構成を示すブロック図である。
【００１２】
図１（ａ）を参照すると、本実施の形態のパケット制御回路８００は、転送先が同一の複数のパケットを同時に受け付けた場合に、調停の結果、後に出力するパケットの一部を先に出力するパケットに設定して出力する。
【００１３】
ここで、本実施の形態のパケット制御回路８００は、パケット（データの転送のためのリクエストパケット、あるいは、リクエストパケットに対する処理に対する通知である制御情報通知パケット）を入力する構成をとってもよい。たとえば、「リクエストパケットに対する処理に対する通知」とは、正常終了・異常終了を示す完了（ｃｏｍｐｌｅｔｉｏｎ）通知情報、処理の中断を示す中断通知情報等である（これらには限定されない）。また、制御情報通知パケットは、必ず、有効な制御情報を含む。完了通知情報は、パケットの一部である。
【００１４】
パケット制御回路８００は、同一の転送先を含む複数のパケットを同時に受け付けた場合に以下の動作を行う。パケット制御回路８００は、調停を行い、「調停の結果、先に出力するパケットが、制御情報通知パケットでなく、かつ、有効な制御情報を含まない」という第１の条件が満たされるかどうかを調べる。さらに、パケット制御回路８００は、「調停の結果、後に出力するパケットが制御情報通知パケットである、あるいは、リクエストパケットであり有効な制御情報を含む」という第２の条件が満たされるかどうかを調べる。
【００１５】
次に、パケット制御回路８００は、第１の条件、第２の条件が両方とも満たされると、先に出力するパケットに後に出力するパケット内の制御情報を設定して出力する。パケット制御回路８００を、パケットの処理を行うクロスバ、切り替え回路等に適用することが可能である。また、パケット制御回路８００をＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）で構成することが可能である。
【００１６】
また、パケット制御回路８００は、先に出力するパケットに後に出力するパケット内の制御情報を設定して出力した場合に、以下の制御を行う機能を持つことが可能である。パケット制御回路８００は、後に出力するパケットが制御情報通知パケットであれば、後に出力するパケットを破棄し、制御情報を含むリクエストパケットであれば、制御情報を無効にする。
【００１７】
また、図１（ｂ）に示すように、パケット制御回路８００を複数段接続するパケット処理装置９００が構成可能である。
【００１８】
本実施の形態は、先に出力するパケットに後に出力するパケット内の制御情報を設定して出力する構成により、後に出力する制御情報通知パケットを破棄できるか、あるいは、後に出力するリクエストパケット内の制御情報を無効にできる。したがって、本実施の形態のパケット制御回路８００は、制御情報通知パケットの数、および量が減少する、または、制御情報が、速く転送され、パケットにおけるレイテンシが向上するという効果を持つ。また、本実施の形態は、パケットの調停の回数が減るという効果を持つ。
【００１９】
次に、本発明の第２の実施の形態について説明する。本実施の形態は、第１の実施の形態のパケット制御回路８００をパケットの転送経路上のＬＳＩの１種であるクロスバ内に含む構成をとる。また、本実施の形態は、ＬＳＩ間のデータ転送および制御情報の転送を、パケットを用いて転送するコンピュータシステム（パケット転送装置の１種。コンピュータシステムではない、制御システムでもよい）である。
【００２０】
コンピュータシステムは、複数のＬＳＩで構成される。パケットの転送経路上のＬＳＩは、複数のパケットの制御情報を、１つのパケットに合成する機能を持つ。また、コンピュータシステムは、合成されたパケットに制御情報を取り込まれたパケットを破棄する、または、合成されたパケットに転送情報を取り込まれたパケット内の制御情報を無効にする機能を持つ。
【００２１】
コンピュータシステムは、コンピュータシステム内のＣＰＵ（Ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）間で一般的に行われている「送信−応答シーケンス」を、「リクエスト要求−処理完了通知シーケンス」として処理する。リクエスト要求には、リクエストパケットが使用され、処理完了通知には完了通知パケットが使用される。また、リクエストパケットは、パケットヘッダと、転送データとを含む。転送データは、たとえば、読み出し・書き込み等の処理内容を示すコマンド、転送される書き込みデータ、転送先ＣＰＵに接続されるメモリのアドレス等を含む。
【００２２】
パケットヘッダは、大量の情報を含むことが可能である。完了通知パケットは、少量の情報のみをパケットヘッダに含むことが可能である。
【００２３】
なお、本実施の形態では、説明のし易さから、他のパケットの制御情報を取り込む（設定する）フィールドを専用のフィールドとしているが、特に専用のフィールドではなくてもよい。他のパケットの制御情報をパケットの空きフィールドに取り込む構成も、可能である。
【００２４】
次に、本実施の形態について図面を参照して詳細に説明する。
【００２５】
図２は、本実施の形態におけるパケットヘッダのフォーマットを示す説明図である。図２を参照すると、パケットヘッダは、パケット種別フィールドＦ１０、ルーティング情報フィールドＦ２０、パケットＩＤフィールドＦ３０、完了通知情報フィールドＦ４０を含む。
【００２６】
パケット種別フィールドＦ１０は、リクエストパケットや、完了通知パケット等のパケット種別を示す。ルーティング情報フィールドＦ２０は、パケットの転送先であるＣＰＵを示す。パケットＩＤフィールドＦ３０は、パケット毎にユニークに設定される識別情報を示す。完了通知情報フィールドＦ４０は、以前に処理されたパケットに対する完了通知情報を示す。
【００２７】
図２には、その他のフィールドは記載されてないが、リクエストパケットは、この他に、完了通知パケットでは使用されない情報を含むフィールドを含むことが可能である。
【００２８】
説明のし易さから、本実施の形態においては、パケット種別フィールドＦ１０のパケット種別は、リクエストと完了通知の２種類だけ定義される。本フィールドは、パケットを生成するＣＰＵで設定され、クロスバにおいて参照される。また、本フィールドは、リクエストパケットであるのか、完了通知パケットであるのかの判別が一意に決定できる値またはコード（パケット種別）が設定される。
【００２９】
ルーティング情報フィールドＦ２０には、転送先のＣＰＵを示す値（ルーティング情報）が設定される。本フィールドは、クロスバにおいて参照され、転送先のＣＰＵへの出力ポートを決定することを可能とする。また、本フィールドが同じ値であるパケットは、転送先のＣＰＵが同じであることを示し、クロスバの出力調停部における転送先の一致の確認に使用される。
【００３０】
パケットＩＤフィールドＦ３０には、転送元のＣＰＵにより、パケットを一意に識別するための識別情報（パケットＩＤ）が設定される。また、本フィールド内のパケットＩＤは、条件が成立すると完了通知情報フィールドＦ４０にも転載（設定）される。有効な完了通知情報を受信したＣＰＵが、転載されたパケットＩＤを基に、何れのリクエストパケットの完了通知であるかを判別する。
【００３１】
完了通知情報フィールドＦ４０は、完了通知有効・無効情報Ｆ４１、終了ステータスＦ４２、および、パケットＩＤＦ４３が設定される。完了通知有効・無効情報Ｆ４１は、完了通知情報フィールドＦ４０が有効であるのか無効であるのかを示す。
【００３２】
終了ステータスＦ４２は、対応するパケットの処理が正常終了なのか異常終了なのかを示す。パケットＩＤＦ４３は、元々リクエストパケットのパケットＩＤフィールドＦ３０に含まれていたパケットＩＤを示す（すなわち、どのリクエストパケットに対する完了通知情報であるのかを）示す。
【００３３】
完了通知有効・無効情報Ｆ４１を１ビットのフラグとし、‘０’を無効、‘１’を有効として定義することが可能である。このとき、このフラグが‘０’であると、完了通知情報フィールドＦ４０内の他のフィールドの値（終了ステータスＦ４２、および、パケットＩＤＦ４３）も無効と見なされる。このフラグが‘１’であると、完了通知情報フィールドＦ４０内の他のフィールドの値も有効と見なされる。また、完了通知パケットの完了通知情報は、必ず有効である。
【００３４】
図３は、本実施の形態において、ＣＰＵが生成するリクエストパケットおよび完了通知パケットのパケットヘッダの内容を示す説明図である。図３には、パケット種別ごとの内容が示されている。
【００３５】
次に、本実施の形態の構成について図面を参照して説明する。
【００３６】
図４は、本実施の形態のコンピュータシステム５００の構成を示すブロック図である。図４を参照すると、コンピュータシステム５００は、複数のＬＳＩで構成される。コンピュータシステム５００は、ＣＰＵ１００、ＣＰＵ１０１、ＣＰＵ１１０、ＣＰＵ１１１、ＣＰＵ１２０、ＣＰＵ１２１、ＣＰＵ１３０、ＣＰＵ１３１を含む。
【００３７】
さらに、コンピュータシステム５００は、各ＣＰＵ１００〜１３１にそれぞれ接続されるメモリ１０４、メモリ１０５、メモリ１１４、メモリ１１５、メモリ１２４、メモリ１２５、メモリ１３４、メモリ１３５を含む。さらに、コンピュータシステム５００は、パケットの通過する経路となるクロスバＸＢ１０、クロスバＸＢ１１、クロスバＸＢ１２、クロスバＸＢ１３を含む。クロスバＸＢ１０〜ＸＢ１３は、同期式制御（クロックが使用される）で動作する。
【００３８】
メモリ１０４〜１４５は、ＣＰＵ１００〜１３１で共有される。ＣＰＵ１００〜１３１は、パケット転送に関し、少なくとも同等の機能を持つ。クロスバＸＢ１０〜ＸＢ１３は、パケット転送に関し、少なくとも同等の機能を持つ。ＣＰＵ１００、ＣＰＵ１０１は、双方向の接続インタフェースを介してクロスバＸＢ１０と接続される。
【００３９】
ＣＰＵ１００は、他のＣＰＵ１０１〜１３１に接続されるメモリ１０５〜１３５に対するリクエストパケットをクロスバＸＢ１０へ出力する。同様に、ＣＰＵ１０１は、他のＣＰＵ１００、ＣＰＵ１１０〜１３１に接続されるメモリ１０４、メモリ１１４〜１３５に対するリクエストパケットをクロスバＸＢ１０へ出力する。
【００４０】
また、ＣＰＵ１００は、他のＣＰＵ１０１〜１３１からのリクエストパケットを入力し、そのリクエストパケットを処理する。そして、ＣＰＵ１００は、リクエストパケット転送元のＣＰＵ１０１〜１３１に対する処理の結果を示す完了通知パケットを、クロスバＸＢ１０に出力する。
【００４１】
ＣＰＵ１０１は、他のＣＰＵ１００、ＣＰＵ１１０〜１３１からのリクエストパケットを入力し、そのリクエストパケットを処理する。そして、ＣＰＵ１０１は、リクエストパケット転送元のＣＰＵ１００、ＣＰＵ１１０〜１３１に対する処理の結果を示す完了通知パケットをクロスバＸＢ１０に出力する。
【００４２】
ＣＰＵ１１０、ＣＰＵ１１１は、双方向の接続インタフェースを介してクロスバＸＢ１１と接続される。ＣＰＵ１２０、ＣＰＵ１２１は、双方向の接続インタフェースを介してクロスバＸＢ１２と接続される。ＣＰＵ１３０、ＣＰＵ１３１は双方向の接続インタフェースを介してクロスバＸＢ１３と接続される。
【００４３】
ここで、双方向の接続インタフェースは、たとえば、単方向の接続インタフェースを転送方向毎の２本で束ねたものである。
【００４４】
ＣＰＵ１００〜１３１は、それぞれ、他のＣＰＵ１００〜１３１に接続されているメモリ１０４〜１３５にアクセスする際に、対応する（転送先）ＣＰＵ１００〜１３１へのリクエストパケットを生成し、接続されるクロスバＸＢ１０〜ＸＢ１３に出力する。このとき、ＣＰＵ１００〜１３１は、リクエストパケットのパケットヘッダに転送先ＣＰＵ１００〜１３１を示すルーティング情報を設定する。ＣＰＵ１００〜１３１は、完了通知パケットをリクエストパケットの転送元ＣＰＵ１００〜１３１へ送出する際も、転送先ＣＰＵ１００〜１３１を示すルーティング情報を設定する。
【００４５】
クロスバＸＢ１０は、ＣＰＵ１００、１０１、および、クロスバＸＢ１１、ＸＢ１２と双方向の接続インタフェースを介して接続される。クロスバＸＢ１１は、ＣＰＵ１１０、１１１、および、クロスバＸＢ１０、ＸＢ１３と双方向の接続インタフェースを介して接続される。
【００４６】
クロスバＸＢ１２は、ＣＰＵ１２０、１２１、および、クロスバＸＢ１０、ＸＢ１３と双方向の接続インタフェースを介して接続される。クロスバＸＢ１３は、ＣＰＵ１３０、１３１、および、クロスバＸＢ１１、ＸＢ１２と双方向の接続インタフェースを介して接続される。クロスバＸＢ１０〜ＸＢ１３は、接続インタフェースのポート（ポート０、１、２、３）毎にパケット受信部および出力調停部を含む。
【００４７】
次に、クロスバＸＢ１０〜ＸＢ１３の詳細について図面を参照して説明する。
【００４８】
クロスバＸＢ１０〜ＸＢ１３を代表したクロスバＸＢ２０に関して説明する。図５は、クロスバＸＢ２０の構成を示すブロック図である。なお、図５には、説明のし易さのため、ポート０パケット受信部２１０、ポート１パケット受信部２２０、ポート２出力調停部２３０のみが記載されている（図４の構成とはポート数が異なっている）。
【００４９】
図５を参照すると、クロスバＸＢ２０内のポート０パケット受信部２１０は、接続インタフェース０と接続され、受信バッファ２１１、および、転送先解析部２１２を含む。
【００５０】
受信バッファ２１１は、接続インタフェース０から受信したパケットを一旦保持し、最も早く転送するパケット（以下、転送中パケットと呼ぶ）をポート２出力調停部２３０のパケット送信部２３３に出力している。この転送中パケットのパケットヘッダ内のルーティング情報、完了通知情報はポート２出力調停部２３０の完了通知調停部２３２にも取り込まれる。
【００５１】
転送先解析部２１２は、受信バッファ２１１に格納された転送中パケットのパケットヘッダ内のルーティング情報を解析し、出力ポートを決定し、たとえば、決定した出力ポート２出力調停部２３０に対し調停リクエストを出力する。
【００５２】
ポート１パケット受信部２２０は、接続インタフェース１と接続され、受信バッファ２２１、および、転送先解析部２２２を含み、ポート０パケット受信部２１０と同等の機能を持つ。
【００５３】
ポート０パケット受信部２１０、ポート１パケット受信部２２０は、それぞれ、ポート２出力調停部２３０からパケットＧＮＴ（Ｇｒａｎｔ信号）を入力すると、「ポート２出力調停部２３０により転送中パケットが受け取られた」と認識し、次のサイクルにおいて、転送中パケットを受信バッファ２１１、２２１から削除する。そして、ポート０パケット受信部２１０、ポート１パケット受信部２２０は、格納している次のパケットを新たな転送中パケットとし、ポート２出力調停部２３０に出力する。
【００５４】
ポート０パケット受信部２１０、ポート１パケット受信部２２０は、ポート２出力調停部２３０から完了通知取込ストローブを入力すると、パケットＧＮＴを入力していなくても、転送中パケットのパケットヘッダ中に存在する完了通知情報フィールドＦ４０の完了通知有効・無効情報Ｆ４１を無効に更新する。また、ポート０パケット受信部２１０、ポート１パケット受信部２２０は、ポート２出力調停部２３０から完了通知取込ストローブを受信した時の転送中パケットが完了通知パケットであった場合は、その完了通知パケットを受信バッファ２２１、２１１から破棄する。
【００５５】
ポート２出力調停部２３０は、接続インタフェース２、および、ポート０パケット受信部２１０、ポート１パケット受信部２２０と接続される。ポート２出力調停部２３０は、パケット調停部２３１、完了通知調停部２３２、および、パケット送信部２３３を含む。
【００５６】
パケット調停部２３１は、ポート０パケット受信部２１０、ポート１パケット受信部２２０から調停リクエストを受信し、ポート０パケット受信部２１０、ポート１パケット受信部２２０のどちらに、ポート２への１パケット分のパケット転送許可を与えるかを決定する調停を行う。
【００５７】
また、パケット調停部２３１は、調停の結果、ポート０パケット受信部２１０、ポート１パケット受信部２２０のうち、パケット転送許可を与える方（先に出力する方）に、「１パケット分の出力許可を意味するパケットＧＮＴ」を出力する。そして、パケット調停部２３１は、パケット送信部２３３、および、パケット送信部２３３に、パケット出力ストローブを出力する。調停のアルゴリズムは、事前に決定されている。
【００５８】
また、パケット調停部２３１は、ポート０パケット受信部２１０、ポート１パケット受信部２２０からのパケットのうち、パケット転送許可を与えた方からのパケットを選択させるパケット選択指示（信号）を、完了通知調停部２３２、パケット送信部２３３に出力する。
【００５９】
完了通知調停部２３２は、ポート０パケット受信部２１０、ポート１パケット受信部２２０の両方からパケット送信部２３３に出力されるパケットのうち、完了通知情報、および、ルーティング情報を取り込む。そして、完了通知調停部２３２は、パケット出力ストローブを入力すると、パケット選択指示、完了通知情報、および、ルーティング情報に基づいて以下の条件の成立を調べる。
【００６０】
条件（１）両方のパケットのルーティング情報が同一。
【００６１】
条件（２）選択された方のパケットがリクエストパケットであり有効な完了通知情報を含んでいない。すなわち、パケット選択指示で選択された方のパケットの完了通知情報が無効。
【００６２】
条件（３）選択されない方のパケットが完了通知パケットであるか、または、リクエストパケットであり有効な完了通知情報を含んでいる。すなわち、パケット選択指示で選択されない方のパケットの完了通知情報が有効。
【００６３】
以上の条件（１）、（２）、（３）がすべて成立すると、完了通知調停部２３２は、以下の処理を行う。完了通知調停部２３２は、「パケット選択指示で選択されない方の完了通知情報を、選択された方のパケットの完了通知情報として設定する」こと指示する完了通知取込ストローブを、パケット送信部２３３に出力する。同時に、完了通知調停部２３２は、完了通知取込ストローブをポート０パケット受信部２１０、ポート１パケット受信部２２０のうち、選択されない方に出力する。
【００６４】
パケット送信部２３３は、パケット出力ストローブを入力すると、パケット選択指示で指示された方のパケットを選択し接続インタフェース２を介して出力する。ただし、パケット送信部２３３は、完了通知取込ストローブを入力していると、選択しない方のパケットのパケットヘッダの完了通知情報フィールドＦ４０の内容を、選択した方のパケットのパケットヘッダの完了通知情報フィールドＦ４０に設定し（すなわち、置き換え）、選択した方のパケットを出力する。
【００６５】
次に、本実施の形態の動作について図面を参照して詳細に説明する。
【００６６】
図４を参照して説明する。ここで、図４のクロスバＸＢ１０が、図５のクロスバＸＢ２０の構成であるとして説明する。
【００６７】
まず、第１のケースについて説明する。
【００６８】
第１のケースは、ＣＰＵ１００から発行されたリクエストパケットが、ＣＰＵ１０１から発行された完了通知パケットとクロスバＸＢ１０のポート２出力調停部２３０で競合したケースである。
【００６９】
ＣＰＵ１００は、ＣＰＵ１２０へのリクエストパケットを生成し、クロスバＸＢ１０へ送出する。この際、ＣＰＵ１００は、リクエストパケットに図３の項番１で示される設定値を対応するフィールドに設定する。
【００７０】
ＣＰＵ１０１は、ＣＰＵ１２０への完了通知パケットを生成し、クロスバＸＢ１０へ送出する。この際、ＣＰＵ１０１は、完了通知パケットに図３の項番２で示される設定値を対応するフィールドに設定する。
【００７１】
クロスバＸＢ１０のポート０パケット受信部２１０がＣＰＵ１００からのパケットを入力し、同時に、ポート１パケット受信部２２０がＣＰＵ１０１からのパケットを入力する。そして、クロスバＸＢ１０のポート０パケット受信部２１０の転送先解析部２１２は、受信したパケットのパケットヘッダ内のルーティング情報を参照し、出力先はポート２と判断し、クロスバＸＢ１０のポート２出力調停部２３０に対して、パケット、および、調停リクエストを出力する。ポート１パケット受信部２２０の転送先解析部２２２も同様にパケット、および、調停リクエストを出力する。
【００７２】
クロスバＸＢ１０のポート２出力調停部２３０は、クロスバＸＢ１０のポート０パケット受信部２１０とクロスバＸＢ１０のポート１パケット受信部２２０とから同時に調停リクエストを入力する。クロスバＸＢ１０のポート２出力調停部２３０のパケット調停部２３１は、リクエストの調停を実施し、たとえば、ポート０パケット受信部２１０に対してパケットＧＮＴを出力する。そして、パケット調停部２３１は、パケット出力ストローブ、パケット選択指示を、完了通知調停部２３２、および、パケット送信部２３３に出力する。
【００７３】
ポート０パケット受信部２１０は、パケットＧＮＴを入力すると、次のサイクルで、調停リクエストに対応するパケットを受信バッファ２１１から削除する。
【００７４】
ポート２出力調停部２３０の完了通知調停部２３２は、パケット出力ストローブを入力すると、パケット選択指示、２つのパケットのルーティング情報、完了通知情報を調べる。完了通知調停部２３２は、ポート０パケット受信部２１０からのリクエストパケットのルーティング情報とポート１パケット受信部２２０からの完了通知パケットのルーティング情報とが同一であると認識する。
【００７５】
また、完了通知調停部２３２は、ポート０パケット受信部２１０からのリクエストパケットの完了通知有効・無効情報Ｆ４１が無効を示していると認識する。また、完了通知調停部２３２は、ポート１パケット受信部２２０からのパケットの完了通知有効・無効情報Ｆ４１が有効を示していると認識する。したがって、完了通知調停部２３２は、上記条件（１）、（２）、（３）が、すべて成立していると認識する。そして、完了通知調停部２３２は、完了通知取込ストローブを、パケット送信部２３３、および、ポート１パケット受信部２２０に出力する。
【００７６】
ポート２出力調停部２３０のパケット送信部２３３は、パケット出力ストローブを入力すると、パケット選択指示、完了通知取込ストローブを調べる。パケット送信部２３３は、完了通知取込ストローブが有効であると、パケット選択指示で選択されていない方のパケット（ポート１側）のパケットヘッダの完了通知情報をパケット選択指示で選択されている方のパケット（ポート０側）のパケットヘッダの完了通知情報フィールドＦ４０に設定する。そして、パケット送信部２３３は、パケット選択指示で選択されている方のパケット（ポート０側）を接続インタフェースを介して出力する。
【００７７】
パケット送信部２３３は、完了通知取込ストローブが有効でないと、パケット選択指示で選択されている方のパケット（ポート０側）をそのまま接続インタフェースを介して出力する。
【００７８】
ポート１パケット受信部２２０は、ポート２出力調停部２３０の完了通知調停部２３２から完了通知取込ストローブを受信すると、受信バッファ２２１から対応するパケットを破棄する。
【００７９】
次に、第２のケースについて説明する。
【００８０】
第２のケースは、あるリクエストパケット（完了通知情報が無効）が、別のリクエストパケット（完了通知情報が有効）と競合するケースである。
【００８１】
第２のケースは、第１のケースと比べ、完了通知取込ストローブを入力したポートｎパケット受信部が、対応するリクエストパケット（完了通知情報が有効）を破棄せず、そのパケットヘッダ内の完了通知情報を無効とする点が異なっている。すなわち、ポートｎパケット受信部は、完了通知有効・無効情報Ｆ４１を無効を示すように変更し、リクエストパケット自体を存続させる。
【００８２】
次に、図面を参照して、制御のタイミングについて詳細に説明する。
【００８３】
図６は、上述の第１のケースの制御のタイミングを示すタイムチャートである。図６を参照すると、サイクルＴ０において、ポート０パケット受信部２１０が、調停リクエスト、リクエストパケット（Ａ１）を出力し、ポート１パケット受信部２２０が、調停リクエスト、完了通知パケット（Ｂ１）を出力する。ポート２出力調停部２３０は、調停を行い、パケットＧＮＴをポート０パケット受信部２１０に出力する。
【００８４】
そして、ポート２出力調停部２３０は、完了通知取込ストローブをポート１パケット受信部２２０に出力する。次に、ポート２出力調停部２３０は、サイクルＴ１において、完了通知パケット（Ｂ１）の完了通知情報を設定したリクエストパケット（Ａ１）を、接続インタフェースに出力する。
【００８５】
ポート０パケット受信部２１０は、パケットＧＮＴを入力すると、サイクルＴ１において、調停リクエストを落とし、リクエストパケット（Ａ１）を削除する。また、ポート１パケット受信部２２０は、完了通知取込ストローブを入力すると、サイクルＴ１において、調停リクエストを落とし、リクエストパケット（Ｂ１）を破棄する。
【００８６】
次に、本実施の形態の効果について説明する。
【００８７】
本実施の形態のコンピュータシステム５００は、先に出力するパケットに前記後に出力するパケット内の制御情報を設定して出力する構成により、後に出力する制御情報通知パケットを破棄できるか、あるいは、後に出力するリクエストパケット内の制御情報を無効にできる。したがって、本実施の形態は、制御情報通知パケットの数が減少する、または、制御情報が速く転送され、パケットにおけるレイテンシが向上するという効果を持つ。
【００８８】
図７は、本実施の形態のスループット性能の改善効果を、本実施の形態を適用しない構成と比較した説明図である。図７を参照すると、ポート０からのリクエストパケット３個（１、２、３）と、ポート１からの完了通知パケット１個（１）、リクエストパケット１個（２）との計５個のパケットが、ポート２から出力される様子が比較されている。
【００８９】
本実施の形態を適用しない構成では、リクエストパケットと完了通知パケットを合成（すなわち、完了通知情報を他のパケットに設定）することがないので、５個のパケットがポート２から出力されるには、５Ｔの時間を要している。これに対し、本実施の形態は、リクエストパケット１と完了通知パケット１を１つのパケットとして転送し、完了通知パケット１を破棄する。したがって、各ポートから転送される５個のパケットがポート２から出力されるには４Ｔの時間しか要せず、破棄された完了通知パケット１の分のスループットが改善される。
【００９０】
図８は、本実施の形態の完了通知情報の転送レイテンシの改善の効果を、本実施の形態を適用しない構成と比較した説明図である。図８を参照すると、４個のポート（ポート０、１、２、３）からのリクエストパケット（１、２、３、４）がポート２へ出力される際の出力競合が発生したケースである。ポート３からのリクエストパケットのみが有効な完了通知情報を含む。ここで、ラウンドロビン等の優先度が最も低いポート３からの有効な完了通知情報を含むリクエストパケット４の完了通知情報が出力されるタイミングが比較される。
【００９１】
本実施の形態を適用しない構成では、リクエストパケット４の有効な完了通知情報は、リクエストパケット４が出力されないと、転送されないので、４Ｔの時間を要している。これに対し、本実施の形態では、リクエストパケット４の完了通知情報がリクエストパケット１に取り込まれ（設定され）、リクエストパケット１の出力と同時に出力されるので、３Ｔのレイテンシが改善されたことになる。
【００９２】
次に、本発明の第３の実施の形態について説明する。
【００９３】
本発明の第３の実施の形態は、１つのパケットのパケットヘッダ内に、ｎ個（ｎは、２以上）の完了通知情報フィールドＦ４０を設ける。そして、本実施の形態は、１つのリクエストパケットに、最大ｎ個の他のパケットの完了通知情報を取り込み可能な構成をとる。この構成により、最大ｎ個の完了通知情報の転送のレイテンシが改善される。
【図面の簡単な説明】
【００９４】
【図１】本発明の第１の実施の形態の構成を示すブロック図。
【図２】パケットヘッダのフォーマットを示す説明図。
【図３】リクエストパケットおよび完了通知パケットのパケットヘッダの内容を示す説明図。
【図４】本発明の第２の実施の形態の構成を示すブロック図。
【図５】クロスバの構成を示すブロック図。
【図６】制御のタイミングを示すタイムチャート。
【図７】本発明の効果を示す説明図。
【図８】本発明の効果を示す説明図。
【符号の説明】
【００９５】
８００    パケット制御回路
９００    パケット処理装置
Ｆ１０    パケット種別フィールド
Ｆ２０    ルーティング情報フィールド
Ｆ３０    パケットＩＤフィールド
Ｆ４０    完了通知情報フィールド
Ｆ４１    完了通知有効・無効情報
Ｆ４２    終了ステータス
Ｆ４３    パケットＩＤ
５００    コンピュータシステム
１００、１０１    ＣＰＵ
１１０、１１１    ＣＰＵ
１２０、１２１    ＣＰＵ
１３０、１３１    ＣＰＵ
ＸＢ１０    クロスバ
ＸＢ１１    クロスバ
ＸＢ１２    クロスバ
ＸＢ１３    クロスバ
１０４、１０５    メモリ
１１４、１１５    メモリ
１２４、１２５    メモリ
１３４、１３５    メモリ
ＸＢ２０    クロスバ
２１０    ポート０パケット受信部
２１１    受信バッファ
２１２    転送先解析部
２２０    ポート１パケット受信部
２２１    受信バッファ
２２２    転送先解析部
２３０    ポート２出力調停部
２３１    パケット調停部
２３２    完了通知調停部
２３３    パケット送信部
【図１】
0004679601.tif 000002
【図２】
0004679601.tif 000003
【図３】
0004679601.tif 000004
【図４】
0004679601.tif 000005
【図５】
0004679601.tif 000006
【図６】
0004679601.tif 000007
【図７】
0004679601.tif 000008
【図８】
0004679601.tif 000009