(57)【要約】  出力バッファから宛先ノードへのデータの出力ができない閉塞エラーがいずれかの宛先ノードで発生したときに、調停部は、該閉塞エラーが発生した宛先ノード宛のデータを保持している入力バッファを含む入力バッファの中から、出力バッファに接続される入力バッファを決定し、接続切替部は、決定された入力バッファを、該入力バッファに保持されているデータの宛先ノードの出力バッファに接続する。
2010103610.tif 000002
【特許請求の範囲】
【請求項１】
複数の送信元ノードから宛先ノードに送信されるデータを保持する共有入力バッファを含む、複数の入力バッファと、
宛先ノードに送信されたデータが前記宛先ノードに出力されるまでの間、前記宛先ノードごとに前記データを保持する出力バッファと、
前記入力バッファと前記出力バッファとの間を切替可能に接続する接続切替部と、
前記複数の入力バッファの中から、前記接続切替部によって前記出力バッファに接続される入力バッファを決定する調停部と、を備え、
前記出力バッファから宛先ノードへのデータの出力ができない閉塞エラーがいずれかの宛先ノードで発生したときに、前記調停部は、該閉塞エラーが発生した宛先ノード宛のデータを保持している入力バッファを含む入力バッファの中から前記出力バッファに接続される入力バッファを決定し、
前記接続切替部は、前記決定された入力バッファを、該入力バッファに保持されているデータの宛先ノードの出力バッファに接続する情報処理装置。
【請求項２】
前記閉塞エラーの発生時に、その閉塞エラーが発生した宛先ノードの出力バッファを制御するエラー制御部をさらに備え、
前記調停部は、空きのある出力バッファを介して前記接続切替部に接続される宛先ノード宛のデータを保持する入力バッファを含む入力バッファの中から、前記出力バッファに接続する入力バッファを決定し、
前記出力バッファは、
前記エラー制御部からの制御にしたがって、該出力バッファに空きがあることを示す情報を前記調停部に通知する通知部と、
前記エラー制御からの制御にしたがって、該出力バッファへの新たなデータの格納を停止する遮断部と、を有する請求項１に記載の情報処理装置。
【請求項３】
前記宛先ノードでの前記閉塞エラーの発生を前記調停部へ通知するエラー通知部をさらに備え、
前記調停部は、前記閉塞エラーが発生した宛先ノード宛のデータを保持する入力バッファを含む入力バッファの中から、前記出力バッファに接続する入力バッファを決定する請求項１に記載の情報処理装置。
【請求項４】
複数の送信元ノードと、
前記送信元ノードからデータを受信する複数の宛先ノードと、
前記複数の送信元ノードからそれぞれの宛先ノードに送信されるデータを保持する共有入力バッファを含む、複数の入力バッファと、
前記宛先ノードに送信されたデータが前記宛先ノードに出力されるまでの間、前記宛先ノードごとに前記データを保持する出力バッファと、
前記入力バッファと前記出力バッファとの間を切替可能に接続する接続切替部と、
前記複数の入力バッファの中から、前記接続切替部によって前記出力バッファに接続される入力バッファを決定する調停部と、を含む情報処理装置と、
前記情報処理装置における少なくともエラーの発生を監視する制御装置と、を備え、
前記出力バッファから宛先ノードへのデータの出力ができない閉塞エラーがいずれかの宛先ノードで発生したときに、前記調停部は、該閉塞エラーが発生した宛先ノード宛のデータを保持している入力バッファを含む入力バッファの中から前記出力バッファに接続される入力バッファを決定し、
前記接続切替部は、前記決定された入力バッファを、該入力バッファに保持されているデータの宛先ノードの出力バッファに接続する情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを授受する複数の装置を含む情報処理装置に関するものである。
【背景技術】
【０００２】
近年、情報処理装置の構成が複雑化している。その一例として、ノードと呼ばれる複数の装置をクロスバスイッチのような接続切替部で切替可能に相互に接続したシステムが知られている。図１は、そのようなシステムとして、４つのノード（ノードＡからノードＤ）を含むシステムを例示する。【０００３】
図１のシステムでは、相互に接続された２つのネットワーク部５００Ａ，５００Ｂによって、ノードＡ  ５０１、ノードＢ  ５０２、  ノードＣ  ５０３、およびノードＤ  ５０４が接続されている。ここで、ノードＡ  ５０１等の各ノードは、例えば、ＣＰＵ、メモリ等を含む。ノードは、例えば、コンピュータである。ただし、ノードＡ  ５０１等のノードのいずれかは、例えば、システム外部への入出力インターフェースとして機能する入出力装置であってもよい。【０００４】
また、ネットワーク部５００Ａ，５００Ｂは、いずれも接続切替部５０５Ａ，５０５Ｂを含む、複数のポート（例えば、ＰＯＲＴ＃０、ＰＯＲＴ＃１、ＰＯＲＴ＃２、ＰＯＲＴ＃３）を相互に接続するネットワーク部品として例示できる。また、接続切替部５０５Ａ，５０５Ｂとしては、それぞれクロスバスイッチが例示される。ネットワーク部５０５Ａ、５０５Ｂは、ポート＃０−＃３の間を相互に１対１で接続する。【０００５】
そして、接続切替部５０５ＡのＰＯＲＴ＃０には、ノードＡ  ５０１との間でデータを入出力する入力バッファ５１１Ａおよび出力バッファ５１２Ａが設けられている。そして、このシステムでは、ノードＡ  ５０１は、入力バッファ５１１Ａ、出力バッファ５１２Ａを通じてネットワーク部５００Ａに接続される。そして、ノードＡ  ５０１は、入力バッファ５１１Ａを介して、データをネットワーク部５００Ａに入力する。また、ノードＡ  ５０１は、出力バッファ５１２Ａを介して、データをネットワーク部５００Ａから受け取る。ノードＢ  ５０２、  ノードＣ  ５０３、およびノードＤ  ５０４とネットワーク部５００Ａ，５００Ｂとの接続関係も、ノードＡ  ５０１と同様である。【０００６】
一方、接続切替部５０５ＡのＰＯＲＴ＃２には、共有出力バッファ５２２、共有入力バッファ５３２が設けられている。また、接続切替部５０５ＢのＰＯＲＴ＃０には、共有入力バッファ５２０、共有出力バッファ５３０が設けられている。そして、共有出力バッファ５２２と共有入力バッファ５２０との間、共有出力バッファ５３０と共有入力バッファ５３２との間をそれぞれ接続することによって、接続切替部５０５ＡのＰＯＲＴ＃２と接続切替部５０５ＢのＰＯＲＴ＃０とが接続される。接続切替部５０５ＡのＰＯＲＴ＃３と、接続切替部５０５ＢのＰＯＲＴ＃１との間も、接続切替部５０５ＡのＰＯＲＴ＃２と接続切替部５０５ＢのＰＯＲＴ＃０との間と同様に接続される。【０００７】
上述のノードＡ  ５０１と接続切替部５０５Ａと間では、入力バッファ５１１Ａ、出力バッファ５１２Ａが、ノードＡ  ５０１専用に設けられている。ネットワークに接続されるノードごとに専用バッファを設けるとハード資源が多くなるため、ハードウェア資源の有効活用のため複数のノードで共通のバッファを使用することがある。例えば、図１では接続切替部５Ａと接続切替部５Ｂとの間の入力バッファ・出力バッファは、各ノードの共有資源となっている。【０００８】
図２に、このような構成のシステムで発生する問題点を例示する。図２は、図１の構成のうち、ノードＣ  ５０３、ノードＤ  ５０４に関連する部分を抜き出したものである。また、図２では、接続切替部５０５Ｂのうち、ノードＣ  ５０３に関連するスイッチ５０５Ｂ−１と、ノードＤ  ５０４に関連するスイッチ５０５Ｂ−２と、が示されている。接続切替部５０５Ｂのそれぞれのスイッチ５０５Ｂ−１、５０５Ｂ−２には、共有入力バッファ５２０、５２１、入力バッファ５１１Ｃ、入力バッファ５１１Ｄを通じてデータが入力される。なお、図２で、共有入力バッファ５２０には、"Ａ","Ｂ"によって、それぞれノードＡ  ５０１、ノードＢ  ５０２からの１纏まりのデータが例示されている。ここでは、１纏まりのデータは、パケットと呼ばれる。【０００９】
また、ノードＣ  ５０３への出力バッファ５１２Ｃには、ノードＢ  ５０２からのデータが蓄積されている。図２の例では、ノードＢ  ５０２とノードＣ  ５０３とは、１つのパーティション＃１に含まれており、ノードＢ  ５０２からのデータの宛先は、ノードＣ  ５０３と決められているからである。同様に、ノードＡ  ５０１とノードＤ  ５０４とは、１つのパーティション＃０に含まれており、ノードＡ  ５０１からのデータの宛先は、ノードＤ  ５０４と決められている。【００１０】
ここで、パーティションとは、情報処理装置を複数の論理的な処理装置部分に分離したときの個々の処理装置部分をいう。このようなパーティションの例としては、例えば、情報処理装置が複数のプロセッサと複数の入出力装置を含む場合に、それら複数のプロセッサいずれかと入出力装置とを含むパーティションが知られている。そのようなパーティションによって、例えば、機能が異なる複数の処理装置部分を有する情報システムが提供される。【００１１】
したがって、図２の例では、パーティション＃０内でノードＡ  ５０１からノードＤ  ５０４宛に転送されるパケットが共有入力バッファ５２０内に、”Ａ”で示されている。以下では、ノードＡ  ５０１からノードＤ  ５０４宛に転送されるパケットは、単にパケットＡと呼ばれる。また、パーティション＃１内でノードＢ  ５０２からノードＣ  ５０３宛に転送されるパケットが共有入力バッファ５２０内に、”Ｂ”で示されている。以下では、ノードＢ  ５０２からノードＣ  ５０３宛に転送されるパケットは、単にパケットＢと呼ばれる。【００１２】
また、図２では、接続切替部５０５Ｂにて接続するノード間の競合を調停する調停部（arbiter）５４０Ｂが示されている。調停部５４０Ｂは、共有入力バッファ５２０，５２１、入力バッファ５１１Ｃ，５１１Ｄ（以下、これらを総称して単に入力バッファという）を接続切替部５０５Ｂで接続する場合の接続の優先順を決定する。すなわち、入力バッファのうち、データが蓄積されている入力バッファは、接続切替部５０５Ｂによって、転送先の出力バッファ５１２Ｃ，５１２Ｄ等に接続され、接続された出力バッファにデータを引き渡すことになる。しかしながら、入力バッファが接続される接続先の出力バッファが競合する場合、その接続の優先順が調停部５４０Ｂによって決定される。そして、その優先順によって、順次入力バッファが接続切替部５０５Ｂを通じて出力バッファに接続されることになる。その場合に、どの入力バッファ（あるいは、ポート）を優先して接続するかを決定するのが調停部５４０Ｂである。【００１３】
ところで、上記のようにネットワーク部５００Ａとネットワーク部５００Ｂとの間のバッファが複数ノード間の共有バッファである場合、以下のような問題が発生する。ここでは、図２に示すようにノードＡ  ５０１からのパケットの宛先であるノードＤ  ５０４でポート閉塞となるエラーが発生した場合が想定される。この場合には、ノードＤ  ５０４宛のパケットＡは共有入力バッファ５２０から宛先のノードＤへ出力されない。そのため、共有入力バッファ５２０にて、パケットＡの後段にあるノードＣ  ５０３宛のパケットＢも出力することができない。したがって、ノードＤ  ５０４でのエラーが、ノードＢ  ５０２とノードＣ  ５０３との間の通信にまで影響してしまう可能性がある。そして、場合によっては、１つの処理装置のエラーによって、他の処理装置間のデータの授受ができなくなる、共倒れのエラーにつながる可能性もある。【００１４】
【特許文献１】特開２００６−１７８７８６号公報
【特許文献２】特開平７−１５２６９７号公報
【特許文献３】特開平９−１５３０２０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
開示の実施形態の目的は、送信元ノードと宛先ノードの複数対が共有バッファを介して接続される情報処理装置において、１つのノード対でのエラーが他のノードに影響することを低減する技術を提供することである。
【課題を解決するための手段】
【００１６】
開示の実施形態の一態様は、複数の送信元ノードから宛先ノードに送信されるデータを保持する共有入力バッファを含む、複数の入力バッファと、宛先ノードに送信されたデータが宛先ノードに出力されるまでの間、宛先ノードごとにデータを保持する出力バッファと、入力バッファと出力バッファとの間を切替可能に接続する接続切替部と、複数の入力バッファの中から、接続切替部によって出力バッファに接続される入力バッファを決定する調停部と、を備える情報処理装置として例示できる。【００１７】
そして、出力バッファから宛先ノードへのデータの出力ができない閉塞エラーがいずれかの宛先ノードで発生したときに、調停部は、該閉塞エラーが発生した宛先ノード宛のデータを保持している入力バッファを含む入力バッファの中から出力バッファに接続される入力バッファを決定し、接続切替部は、決定された入力バッファを、該入力バッファに保持されているデータの宛先ノードの出力バッファに接続する。
【発明の効果】
【００１８】
本発明によれば、送信元ノードと宛先ノードの複数対が共有バッファを介して接続される情報処理装置において、１つのノード対でのエラーが他のノードに影響することを低減できる。
【図面の簡単な説明】
【００１９】
【図１】４つのノードと接続切替部を含むシステムの例である。
【図２】従来のシステムで発生する問題点を例示する図である。
【図３】実施例１に係る情報処理装置の全体構成図を例示する図である。
【図４】情報処理装置の具体的構成を例示する図である。
【図５】入力バッファと接続切替部と出力バッファを含む転送先ノードとの関係を例示する図である。
【図６】エラー発生時の処理概要を例示する図である。
【図７】エラー制御部の構成を例示する図である。
【図８】クレジット制御部の構成を例示する図である。
【図９】調停部の構成を例示する図である。
【図１０】テーブル部の詳細を例示する図である。
【図１１】パケットの構成を例示する図である。
【図１２】エラー情報の構成を例示する図である。
【図１３】情報処理装置でのデータ処理を例示するデータフロー図である。
【図１４】実施例２のネットワーク部での接続処理を例示する図である。
【図１５】調停部の詳細構成を例示する図である。
【符号の説明】
【００２０】
１  情報処理装置
５Ａ、５Ｂ  接続切替部
５−１、５−２、５−３、５−４  スイッチ
１１Ａ、１１Ｂ、１１Ｃ、１１Ｄ  入力バッファ
１２Ａ、１２Ｂ、１２Ｃ、１２Ｄ  出力バッファ
２０、２１、３２、３３  共有入力バッファ
２２、２３、３０、３１  共有出力バッファ
４０Ａ、４０Ｂ  調停部
５０  システムサービスプロセッサ
６０  エラー制御部
７０  バッファ制御部（２）
８０  クレジット制御部（２）
９０  バッファ制御部（１）
１００  クレジット制御部（１）
【発明を実施するための最良の形態】
【００２１】
以下、図面を参照して本発明を実施するための最良の形態（以下、実施形態という）に係る情報処理装置１について説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成には限定されない。
【実施例１】
【００２２】
図３は、情報処理装置１の全体構成図を例示する。情報処理装置１は、複数のノードと呼ばれるコンピュータを含む。図３では、ノードＡ、Ｂ、Ｃ、およびＤという４つのノードが例示されている。【００２３】
このうち、ノードＡ（ＳＢ＃Ａ）、ノードＢ（ＳＢ＃Ｂ）は、システムボード呼ばれるコンピュータである。ノードＡ、ノードＢは、それぞれ、ＣＰＵ、メモリ、およびノースブリッジと呼ばれるチップセットを搭載している。また、ノードＣ、ノードＤは、それぞれサウスブリッジというチップセットを搭載し、I/Oユニット（IOU#A/B）の機能を提供する。I/Oユニット（IOU#A/B）には、例えば、外部記憶装置、着脱可能記憶媒体駆動装置、ＬＡＮ（Local Area Network）基板等が接続される。【００２４】
システムボードとI/Oユニットとの間は、ネットワーク部１０Ａ、１０Ｂによって接続されている。ネットワーク部１０Ａ、１０Ｂは、それぞれ、接続切替部５Ａ、５Ｂを含む。接続切替部５Ａ，５Ｂとしては、それぞれクロスバスイッチが例示される。【００２５】
さらに、図３では、接続切替部５Ａ，５Ｂは互いに接続されている。本実施例では、システムボードとI/Oユニットの組み合わせは固定でなくてよい。すなわち、接続切替部５Ａ，５Ｂに内蔵する、ノードの接続を規定するテーブルを変更することで、システムボードとI/Oユニットの組み合わせが変更される。【００２６】
本実施例では、このテーブルの定義によって、例えば、システムボードSB#AとI/OユニットIOU#Bが組み合わせられている。本実施例では、この組み合わせはパーティション#0と呼ばれる。システムボードSB#BとI/OユニットIOU#Aの組み合わせはパーティション#1と呼ばれる。また、接続切替部５Ａ，５Ｂを含むネットワーク１０Ａ、１０Ｂはパーティション共有の資源である。【００２７】
情報処理装置１をパーティションに区分することで、例えば、異なる種類のコンピュータ環境がパーティションごとにユーザに提供される。例えば、パーティション＃０と＃１とは、それぞれ、異なるＯＳ（Operating System）を搭載することもできる。例えば、一方のＯＳが、Ｗｉｎｄｏｗｓ（登録商標）であり、他方のＯＳが、コンピュータメーカ固有の他のＯＳであってもよい。【００２８】
さらに、図３では、情報処理装置１を管理するシステムサービスプロセッサ５０が示されている。システムサービスプロセッサ５０は、情報処理装置１の各部、例えば、それぞれのノードおよびネットワーク部１０Ａ、１０Ｂを管理する。ここで、管理するとは、例えば、情報処理装置１を起動し、情報処理装置１の各部を監視し、処理の実行状況を収集し、エラー処理等を実行することをいう。本実施例では、情報処理装置１とシステムサービスプロセッサ５０を含むシステムは、情報システムと呼ばれる。システムサービスプロセッサ５０が、情報処理装置における少なくともエラーの発生を監視する制御装置に相当する。【００２９】
図４に、情報処理装置１の具体的構成を例示する。図４のように、情報システムは、ノードＡ、Ｂと呼ばれるシステムボードと、ノードＣ、Ｄと呼ばれるＩ／Ｏユニットと、相互に接続された２つのネットワーク部１０Ａ、１０Ｂとを含む。【００３０】
また、ネットワーク部１０Ａ，１０Ｂは、いずれも接続切替部５Ａ，５Ｂを含む。接続切替部５Ａ、５Ｂは、複数のポート（例えば、ＰＯＲＴ＃０、ＰＯＲＴ＃１、ＰＯＲＴ＃２、ＰＯＲＴ＃３）を相互に接続するネットワーク部品として例示できる。【００３１】
そして、接続切替部５ＡのＰＯＲＴ＃０には、ノードＡとの間でデータを入出力する入力バッファ１１Ａおよび出力バッファ１２Ａが設けられている。そして、このシステムでは、ノードＡは、入力バッファ１１Ａ、出力バッファ１２Ａを通じてネットワーク部１０Ａに接続される。そして、ノードＡは、入力バッファ１１Ａを介して、データをネットワーク部１０Ａに入力する。また、ノードＡは、出力バッファ１２Ａを介して、データをネットワーク部１０Ａから受け取る。ノードＢ、ノードＣ、およびノードＤとネットワーク部１０Ａとの接続関係も、ノードＡとネットワーク部１０Ａとの接続関係と同様である。また、ネットワーク部１０Ｂにおける接続関係も、ネットワーク１０Ａにおける接続関係と同様である。【００３２】
一方、接続切替部５ＡのＰＯＲＴ＃２には、共有出力バッファ２２、共有入力バッファ３２が設けられている。また、接続切替部５ＢのＰＯＲＴ＃０には、共有入力バッファ２０、共有出力バッファ３０が設けられている。そして、共有出力バッファ２２と共有入力バッファ２０との間、共有出力バッファ３０と共有入力バッファ３２の間をそれぞれ接続することによって、接続切替部５ＡのＰＯＲＴ＃２と接続切替部５ＢのＰＯＲＴ＃０とが接続される。接続切替部５ＡのＰＯＲＴ＃３と、接続切替部５ＢのＰＯＲＴ＃１との間も上記と同様に接続される。【００３３】
また、ネットワーク部１０Ａ，１０Ｂは、それぞれ調停部４０Ａ，４０Ｂを有する。調停部４０Ａ、４０Ｂは、接続切替部５Ａ、５Ｂの各ポート間の接続を制御する。例えば、ＰＯＲＴ＃０とＰＯＲＴ＃１との間で、接続先が競合した場合に、調停部４０Ａ、４０Ｂは、ＬＲＵ（Least Recently Used）アルゴリズム等、所定の基準にしたがって、優先して接続するポートを決定する。【００３４】
図５は、共有入力バッファ２０，２１を含む入力バッファと転送先ノードＣ、Ｄとの関係を例示する図である。図５で、接続切替部５Ｂは、スイッチ５−１，５−２，５−３，および５−４に区分して示されている。スイッチ５−１は、共有入力バッファ２０，２１を含む入力バッファのいずれかを共有出力バッファ３０に接続する。共有出力バッファ３０のパケットは、順次、接続切替部５Ａに提供される。同様に、スイッチ５−２は、共有入力バッファ２０，２１を含む入力バッファのいずれかを選択し、選択した入力バッファの先頭に保持されたパケットを共有出力バッファ３１に出力する。【００３５】
また、スイッチ５−３は、共有入力バッファ２０，２１を含む入力バッファのいずれかを選択し、選択した入力バッファの先頭に保持されたパケットを出力バッファ１２Ｃに出力する。ノードＣは、出力バッファ１２Ｃに出力されたパケットを順次読み出す。同様に、スイッチ５−４は、共有入力バッファ２０，２１を含む入力バッファのいずれかを選択し、選択した入力バッファの先頭に保持されたパケットを共有出力バッファ１２Ｄに出力する。【００３６】
調停部４０Ｂは、スイッチ５−１，５−２，５−３，および５−４について、それぞれ、共有入力バッファ２０，２１を含む入力バッファのうちのいずれかを、所定の基準にしたがって選択する。【００３７】
本実施例では、ノードＡとノードＤとが、パーティション＃０に含まれる。また、ノードＢとノードＣとが、パーティション＃１に含まれる。したがって、調停部４０Ｂおよびスイッチ５−３は、ノードＢからのパケットを保持する共有入力バッファ２０、２１、入力バッファ１１Ｃ、１１ＤのいずれかをノードＣ宛の出力バッファ１２Ｃに出力する。より具体的な処理としては、例えば、それぞれの入力バッファに送信要求対象のパケットが存在する場合、その入力バッファは、調停部４０Ｂに送信要求を送る。そして、例えば、ノードＣへの送信要求が競合すると、調停部４０Ｂは、所定の基準で、ノードＣへの送信要求がある複数の入力バッファのいずれかを選択し、スイッチ５−３を通じてノードＣによる読み出しの対象である出力バッファ１２Ｃに接続する。【００３８】
また、調停部４０Ｂおよびスイッチ５−４は、ノードＡからのパケットを保持する共有入力バッファ２０、２１、入力バッファ１１Ｃ、１１ＤのいずれかをノードＤ宛の出力バッファ１２Ｄに接続する。【００３９】
そのため、出力バッファ１２Ｃには、ノードＢを送信元とするパケットが蓄積される。また、出力バッファ１２Ｄには、ノードＡを送信元とするパケットが蓄積される。一方、例えば、共有入力バッファ２０には、ノードＡあるいはノードＢを送信元とするパケットが混在している。【００４０】
図６に、エラー発生時の処理概要を例示する。図６では、図３−図５で示された構成のうち、特に、ノードＤに関連する構成要素の詳細が例示されている。図６で、共有入力バッファ２０内には、”Ａ”、”Ｂ”の文字で、パケットが示されている。ここで、”Ａ”で示されるパケットは、ノードＡを送信元とするパケットである。また、”Ｂ”で示されるパケットは、ノードＢを送信元とするパケットである。【００４１】
今、一例としてパーティション＃０に属するノードＤにおいてポート閉塞となるエラーが発生した場合を考える。ポート閉塞とは、ノードＤが、出力バッファ１２Ｄからパケットを読み出すことのできないエラーの状態をいう。ポート閉塞となるエラーが発生すると、ノードＤに接続される出力バッファ１２Ｄでは、パケットが蓄積されたままとなる。また、新たなパケットのスイッチ５−４からの出力により、ノードＤに接続される出力バッファ１２Ｄは、オーバーフローを発生する。【００４２】
従来の処理では、出力バッファ１２Ｄがオーバーフローし、空き容量がなくなると、出力バッファ１２Ｄ、すなわち、ノードＤ宛のパケットは、調停部４０Ｂの調停処理の対象から除外される。例えば、図６のように、共有入力バッファ２０の先頭に、パーティション＃０に属するノードＡからのパケットが保持されている場合、共有入力バッファ２０は、調停部４０Ｂによる調停処理の対象から除外されることになる。【００４３】
図６の構成では、共有入力バッファ２０の管理と制御のため、バッファ制御部（１）９０およびクレジット制御部（１）１００が設けられている。バッファ制御部（１）９０は、共有入力バッファ２０へのパケットの格納、共有入力バッファ２０の空き領域の管理、および、共有入力バッファの先頭パケットに応じた宛先への接続要求を調停部４０Ｂに入力する処理を実行する。例えば、バッファ制御部（１）９０は、接続切替部５Ａの共有出力バッファ２２から共有入力バッファ２０に、パケットが書き込まれると、クレジット制御部（１）１００に対して、空き領域数を１カウント減少するように指示する。この空き領域数はクレジット数と呼ばれる。【００４４】
また、バッファ制御部（１）９０は、共有入力バッファ２０にパケットが存在すると、調停部４０Ｂに対して接続要求を送る。調停部４０Ｂの調停処理によって、接続切替部５−４を通じて、パケットが出力バッファ２０から読み出されると、クレジット制御部（１）９０は、クレジット数を１カウント増加させる。【００４５】
一方、クレジット制御部（１）１００は、共有入力バッファ２０へのパケットの格納と、読み出しに応じて、クレジット数を計数する。なお、本実施例では、出力バッファ２０の空き領域数がクレジット数として管理されるが、定義を逆にして、使用中の領域数がクレジット数として管理されるようにしてもよい。【００４６】
同様に、出力バッファ１２Ｄの管理と制御のため、バッファ制御部（２）７０およびクレジット制御部（２）８０が設けられている。なお、クレジット制御部（２）８０のクレジット数またはバッファ１２Ｄの空き状態は、調停部４０Ｂに通知される。【００４７】
さらに、図６では、システムサービスプロセッサ５０からのエラー通知を受信し、エラー通知に対応する処理を実行するエラー制御部６０が設けられている。例えば、ノードＤでエラーが発生した場合、エラーを監視しているシステムサービスプロセッサ５０からエラー情報制御部６０にエラーが通知される。例えば、ノードＤで閉塞エラーが発生した場合、スイッチ５−４からのパケット受信とともに、出力バッファ１２Ｄの空きが減少する。そして、最終的には、出力バッファ１２Ｄの空きが消滅する。この状態では、クレジット制御部（２）８０は、出力バッファ１２Ｄの空きを示すクレジット数=無しの状態になる。【００４８】
エラー情報制御部６０は、エラー通知されたエラーが閉塞エラーであった場合、クレジット制御部（２）８０に対してクレジット数を最大値に設定するように指示する。したがって、閉塞エラーが発生した場合には、クレジット数は、バッファ１２Ｄの空き状態の実体と一致しないことになる。【００４９】
さらに、出力バッファ１２Ｄの入り口、すなわち、スイッチ５−４と出力バッファ１２Ｄとを接続する伝送路には、遮断部ＳＷ１が設けられている。遮断部ＳＷ１は、例えば、伝送路を遮断状態または接続状態にするスイッチ、トランスファーゲート等である。遮断部ＳＷ１には、遮断部ＳＷ１を遮断状態または接続状態に制御するレジスタを設けてもよい。エラー制御部６０が、上記遮断部ＳＷ１を遮断状態に設定することで、スイッチ５−４から出力バッファ１２Ｄに出力されるパケットが廃棄される。出力バッファ１２Ｄには、パーティション＃０のパケットが出力されるので、廃棄されるパケットは、パーティション＃０のパケットである。【００５０】
なお、出力バッファ１２Ｄが、オーバーフローすると、出力バッファに出力される後続パケットの格納領域がなくなり、後続パケットは廃棄されることになる。したがって、出力バッファ１２Ｄの入力部で、パケットを廃棄する設定は、なくてもよい。しかしながら、明示的にパケットを廃棄するように設定ことで、情報処理装置１の動作がより確実なものとなる。【００５１】
上述のように、空きクレジット数が最大値の設定に設定されることにより、出力バッファ１２Ｄは、空きがあると判断される状態となる。クレジット制御部（２）８０は、調停部４０Ｂに対して、クレジット数の最大値、あるいは、出力バッファ１２Ｄの受信可能を示す情報を通知する。接続切替部５Ｂの調停部４０Ｂは出力バッファ１２Ｄの受信可能を示す情報と、共有入力バッファ２０を含む入力バッファからの接続要求とを受信することによって、調停部４０Ｂは、接続要求元の入力バッファを調停処理の対象とする。すなわち、本実施例では、入力バッファからの接続要求があったとき、入力バッファに保持されたデータの宛先の出力バッファに空きがあることが、接続要求が受け付けられる条件である。その結果、調停部４０Ｂは、共有入力バッファ２０を含む複数の入力バッファから例えば、ＬＲＵアルゴリズムにしたがって、スイッチ５−４に接続する入力バッファとして、共有入力バッファ２０を選択する。このような調停処理の後、調停部４０Ｂは、共有入力バッファ２０にACKを返却する。【００５２】
そして、上記基準による調停処理の結果、例えば、共有入力バッファ２０が選択されると、共有入力バッファ２０は、スイッチ５−４に接続される。そして、共有入力バッファ２０の先頭のパケットＡが出力バッファ１２Ｄに出力される。このパケットＡは、出力バッファ１２Ｄの入り口で、上記廃棄設定にしたがって廃棄される。【００５３】
一方、バッファ制御部（１）９０はACK受信に伴ない、クレジット制御部（１）１００に対して、クレジット数を１カウント増加させる。【００５４】
上記構成により、共有入力バッファ２０からノードＡからのパケット（パーティション０に属するパケット）が出力されることによって、ネットワーク部５Ａに対しては、クレジット返却が通常通り行われる。そして、共有入力バッファ２０の先頭にあったパーティション＃０に属するパケットが接続切替部５Ｂを通じて出力される。その結果、閉塞エラーが発生したノード宛のパケットが共有入力バッファ２０内の後続のパケット、例えば、ノードＢからのパケットは、次の調停処理の対象となる。本実施例のように、ノードＡとノードＤとがパーティション＃０に含まれ、ノードＢとノードＣとがパーティション＃１に含まれる場合、１つのパーティションでの閉塞エラーの他のパーティションへの影響が低減される。【００５５】
図７に、エラー制御部６０の構成を例示する。図７のように、エラー制御部６０は、エラー受信部６０１、エラーノード番号取得部６０２、閉塞エラー判定部６０３、選択回路６０４を有している。【００５６】
エラー受信部６０１は、システムサービスプロセッサ５０からのエラーコードを格納する。エラー受信部６０１は、例えば、レジスタである。エラーノード番号取得部６０２は、エラー受信部６０１中のエラーノード番号部分のビットを読み出す。エラーノード番号取得部６０２は、例えば、所望のビットをマスクするマスクビットを含むレジスタとＡＮＤゲート、シフトレジスタ等を含む。そして、エラーノード番号取得部６０２が取得した値は、選択回路６０４に入力される。【００５７】
閉塞エラー判定部６０３は、エラー受信部６０１のエラーコード部分のビットを読み出す。そして、閉塞エラー判定部６０３は、閉塞エラーに対応するビットがオンか否かを判定する。閉塞エラー判定部６０３は、例えば、フリップフロップを含む。エラーコード中の閉塞エラーに対応するビットがオンの場合、閉塞エラー判定部６０３は、選択回路をイネーブル（動作許可）にする。【００５８】
そして、選択回路６０４は、エラーノード番号に対応する信号線（空きクレジット番号最大化信号）をオンにする。図７では、ＯＢＵＦ１からＯＢＵＦ４のいずれかの信号線がオンになる。ＯＢＵＦ１からＯＢＵＦ４は、それぞれ各出力バッファのクレジット制御部に入力される。選択回路６０４は、例えば、インバータとＡＮＤゲートを含み、００（例えば、ＯＢＵＦ４），０１（例えば、ＯＢＵＦ１），１１（例えば、ＯＢＵＦ３），１０（例えば、ＯＢＵＦ２）のいずれかに対してオンとなる論理回路として例示できる。【００５９】
図８に、クレジット制御部（２）８０の構成を例示する。クレジット制御部（２）８０は、カウンタ８０１、最大バッファ数記憶部８０２およびステータス応答部８０３を有している。カウンタ８０１は、クレジット数、すなわち、空きバッファ数を計数している。例えば、出力バッファ１２Ｄにパケットが入力されると、カウンタ８０１は、クレジット数を１カウント減少させる。また、出力バッファ１２Ｄからパケットが読み出されると、カウンタ８０１は、クレジット数を１カウント増加させる。【００６０】
最大バッファ数記憶部８０２は、バッファ容量、すなわち、出力バッファ１２Ｄに保持可能なパケット数の最大値を記憶する。ステータス応答部８０３は、空きクレジット数最大化信号の有無に応じて、カウンタ８０１の値または最大バッファ数記憶部８０２の値のいずれかを選択し、調停部４０Ｂに通知する。このように、クレジット数を調停部４０Ｂに通知することで、調停部４０Ｂは、そのクレジット数に応じて調停処理を実行できる。例えば、空き容量の大きい出力バッファ宛のパケットを保持する入力バッファを優先する等である。ただし、例えば、調停部４０ＢがＬＲＵアルゴリズムによって、入力バッファを選択する場合には、ステータス応答部８０３は、空きバッファ容量の有無を調停部４０Ｂに通知するようにしてもよい。例えば、ステータス応答部８０３は、クレジット数が所定値以上であれば、空きバッファ有の信号を調停部４０Ｂに通知し、クレジット数が所定値未満であれば、空きバッファなしの信号を調停部４０Ｂに通知すればよい。ステータス応答部８０３が、出力バッファに空きがあることを示す情報を調停部に通知する通知部に相当する。【００６１】
図９に、調停部４０Ｂの構成を例示する。調停部４０Ｂは、各バッファ制御部から要求信号ＲＥＱ１〜ＲＥＱ４を受信し、調停処理を実行する。調停部４０Ｂは、共有入力バッファ２０、２１を含むそれぞれの入力バッファから送信元ＩＤを取得する送信元ＩＤ取得部４０２と、送信元ＩＤに対する宛先を保持する宛先テーブル部４０１と、各バッファ制御部からの要求信号ＲＥＱ１〜ＲＥＱ４を調停するＬＲＵ部４０３を有している。図９のように、要求信号ＲＥＱ１からＲＥＱ４は、各入力バッファの先頭パケットとペアで調停部４０Ｂに入力される。【００６２】
送信元ＩＤ取得部４０２は、それぞれの入力バッファの先頭に保持されたパケットから送信元ＩＤを取得する。送信元ＩＤは、パケットの送信元のノードを識別する識別情報である。宛先テーブル部４０１は、例えば、ルックアップテーブルを含む。宛先テーブル部４０１は、送信元ＩＤが入力されると、その送信元ＩＤに対する宛先ＩＤを決定する。【００６３】
さらに、本実施例では、宛先テーブル部４０１は、宛先ノードの状態信号（ＳＴ１〜ＳＴ４）を入力される。そして、宛先テーブル部４０１は、その宛先ノードの状態信号が、出力バッファの空きを示す場合に、その宛先に対する要求許可信号を出力する。この要求許可信号は、各バッファ制御部から送信される要求信号ＲＥＱ１〜ＲＥＱ４をＬＲＵ部４０３に引き渡すか否かを制御する制御ゲートに入力される。そして、要求許可信号が、オンの場合、要求信号ＲＥＱ１〜ＲＥＱ４がＬＲＵ部４０３に引き渡される。【００６４】
ＬＲＵ４０３部は、入力された要求信号ＲＥＱ１〜ＲＥＱ４をＬＲＵアルゴリズムにしたがって、調整し、スイッチ５−４を含む接続切替部５Ｂの接続を設定する。スイッチ部５−４は、ＬＲＵ部４０３の設定にしたがって、入力バッファ（共有入力バッファ２０，２１、入力バッファ１１Ｃ，１１Ｄ）をそれぞれの宛先ノードに相当する出力バッファのポートに接続する。【００６５】
なお、図９のように、バッファ制御部は、ＲＥＡＤ／ＷＲＩＴＥ制御信号によって、共有入力バッファ２０、２１、入力バッファ１１Ｃ、１１Ｄへのパケットの入力（書き込み）、および、出力（読み出し）を制御する。【００６６】
図１０は、テーブル部４０１の詳細を例示する図である。図１０では、要求信号の１つであるＲＥＱ１に対する回路が例示されている。【００６７】
テーブル部４０１は、送信元ＩＤ＝＞宛先ＩＤ変換テーブル４１１と、選択回路４１２とを含む。送信元ＩＤ＝＞宛先ＩＤ変換テーブル４１１は、例えば、ルックアップテーブルであり、送信元ＩＤが入力されると、その送信元ＩＤに対する宛先ＩＤを返す。ここで、送信元ＩＤは、送信元ノードを識別するＩＤである。図１０では、要求信号ＲＥＱ１に対する入力バッファの先頭パケットから取得された送信元ＩＤが送信元ＩＤ＝＞宛先ＩＤ変換テーブル４１１に入力されている。また、宛先ＩＤは、宛先ノードを識別するＩＤである。【００６８】
本実施例では、送信元ノードと、宛先ノードがいずれかのパーティションに含まれる。送信元ノードと、宛先ノードとが、送受信のノード対であるということもできる。送信元ＩＤ＝＞宛先ＩＤ変換テーブル４１１は、各パーティション内の送信元ノードと宛先ノードとの関係を定義する。例えば、本実施例では、ノードＡとノードＤとが、パーティション＃０に含まれる。また、ノードＢとノードＣとが、パーティション＃１に含まれる。したがって、本情報処理装置１では、送信元ＩＤ＝＞宛先ＩＤ変換テーブル４１１の内容を変更することにより、それぞれのパーティションに含まれるノードを変更できる。【００６９】
選択回路４１２は、宛先ＩＤの番号に応じて、１〜４のいずれかの信号線をオンにする。選択回路４１２の構成は、図７の選択回路６０４と同様である。図１０のように、この信号線は、各出力バッファからの状態信号とともにＡＮＤゲートに入力される。出力バッファからの状態信号は、それぞれの出力バッファで、クレジット数が空きバッファありを示すとき、オンとなる。したがって、図１０のＡＮＤゲートは、それぞれの出力バッファ宛の要求信号があり、かつ、その出力バッファの空きがある場合に、オンとなる。図１０では、ＡＮＤゲートの出力信号が、ＯＲゲートによってまとめられている。したがって、共有入力バッファ２０のバッファ制御部からの要求信号ＲＥＱ１について、その宛先ノードに空きがある場合、要求信号ＲＥＱ１に対する許可信号が出力される。図１０では、省略しているが、要求信号ＲＥＱ２−ＲＥＱ４についても、同様の回路が設けられている。【００７０】
図１１に、本実施例のパケットの構成を例示する。図１１のように、本実施例にて、ノード間で授受されるパケットは、送信元ＩＤと、データとを有している。送信元ＩＤは、例えば、送信元ノードのノード番号で指定すればよい。ただし、送信元ノードは、例えば、接続切替部５Ｂのそれぞれの入力ポートと出力ポートを識別するポート番号であってもよい。また、接続切替部５Ｂには、送信元ノードを識別するノード番号と、上記ポート番号との対応関係を定義する変換テーブルが設けられてもよい。そのような変換テーブルによって、例えば、送信元ノードを識別する情報としては、論理的なノード番号が使用され、物理的なポートを識別する情報として、ポート番号が使用できる。そして、ノード番号とポート番号とが、変換可能となる。したがって、パケットの送信元ＩＤとしては、ノード番号とポート番号のいずれかを、例えば、設計上の要請にしたがって使い分ければよい。また、データは、固定長データでもよいし、可変長データでもよい。データが可変長データの場合、データの先頭部分にデータ長が格納されるようにすればよい。【００７１】
図１２に、システムサービスプロセッサ５０からのエラー情報の構成を例示する。エラー情報は、エラーノードＩＤと、エラーコードとを含む。エラーノードＩＤは、エラーが発生したノードを示す番号である。エラーコードは、エラーの程度を示す数値である。例えば、閉塞エラーに対して、エラーコードの所定のビットが１となる。【００７２】
図１３は図６に示された情報処理装置１での一連のデータ処理を、データフロー図として例示する図である。この処理では、まず、前提として、エラー制御部６０に、パーティション＃０に属するノードＤでの閉塞エラーの発生が報告されたとする。すると、エラー制御部６０は、例えば、図７に示した回路により、パーティション＃０に含まれるノードＤへの出力バッファ１２Ｄのクレジット制御部（２）８０に、クレジット数最大化信号を送信する（矢印Ａ１）。クレジット数最大化信号は、出力バッファ１２Ｄが空きであることを示すクレジット数を設定する信号である。また、このとき、エラー制御部６０は、出力バッファ１２Ｄの入り口でパケットを廃棄する設定を行う。出力バッファ１２Ｄには、パーティション＃０のパケットが出力されるので、上記設定で、パーティション＃０のパケットが廃棄されることになる。【００７３】
クレジット数最大化信号を受信すると、出力バッファ１２Ｄのクレジット制御部（２）８０は、調停部４０Ｂに、パーティション＃０の出力バッファ１２Ｄが受信可能を示す信号を送信する（矢印Ａ２）。【００７４】
このような状態で、接続切替部５Ｂに接続要求が発生した場合の処理が以下に例示される。ここでは、例えば、共有入力バッファ２０の先頭にノードＡからのパケットが保持され、第２番目にノードＢからのパケットが保持されていると仮定される。共有入力バッファ２０を制御するバッファ制御部（１）９０から調停部４０Ｂに、パーティション＃０に属するパケットの要求信号（パケットリクエストともいう）が送信される（矢印Ａ３）。【００７５】
すると、調停部４０Ｂは、共有入力バッファ２０のバッファ制御部（１）９０にアクノリッジ（ACK）を返す（矢印）。ＡＣＫを受信すると、共有入力バッファ２０のバッファ制御部（１）９０は、入力バッファ２０の空き領域数を示すクレジット数を１カウント増加させる。さらに、調停部４０Ｂの指示にしたがって、接続切替部５Ｂが、共有入力バッファ２０を出力バッファ１２Ｄに接続する。その結果、共有入力バッファ２０の先頭パケット（パーティション＃０）が廃棄される（矢印Ａ５）。【００７６】
パーティション＃０に属するパケットが廃棄されることで、後続するパーティション＃１のパケットが共有入力バッファ２０の先頭に移動する。その結果、後続するパーティション＃１のパケットがパーティション＃１の宛先ノードの出力バッファに送信されることになる。【００７７】
以上述べたように、本実施例の情報処理装置１によれば、接続切替部５Ａ，５Ｂを通じて、複数のノードが接続されるシステムでの閉塞エラー発生の影響が、局所的に限定される。情報処理装置１では、複数ノードが、それぞれのパーティションに含まれ、パーティション間で共有する複数ノードがする。このような構成で、１のパーティションに属するノードにて、閉塞エラーが発生した場合に、そのノードへの出力バッファの空きを示すクレジット数を最大化することによって、調停部４０Ｂに対しては、そのノード宛のパケットを保持するノードを調停処理の対象とする指示がなされる。【００７８】
さらに、そのノードへの出力バッファの入り口にて、受信されるパケットの廃棄設定がなされる。その結果、共有バッファ上で、上記閉塞ノード宛のパケットは、そのまま調停部４０Ｂの調停処理にしたがって、接続切替部５Ｂを通じて、宛先ノードに送信され、出力バッファの入り口で廃棄される。このような処理の結果、極めて簡易に、１つのパーティションの閉塞エラーの影響が他のパーティションに及ぶことを抑制できる。例えば、調停部４０Ｂ、バッファ制御部（１）９０、バッファ制御部（２）７０の処理が変更されることなく、エラー制御部６０およびクレジット制御部（２）８０にて、上記処理が行われるようにすればよい。
＜変形例＞
上記実施例では、各ノードがパーティション＃０，＃１に属する場合の処理が説明された。しかし、上記情報処理装置１の処理は、各ノードがパーティションに含まれる場合に限定される訳ではない。すなわち、パーティションの定義は、上記処理で省略してもよい。つまり、パーティションの定義がないシステムでも同様の構成により、１のノードで発生した閉塞エラーの影響を他のノードに及ぼさないにようにできる。すなわち、複数ノードが接続切替部と複数ノード間の共有バッファとによって接続されたシステムでも、上記実施例と同様に、閉塞エラーの影響を低減できる。要するに、閉塞エラーが発生したノード宛のパケットが、調停部４０Ｂによる調停処理の対象とされるように、制御すればよい。【００７９】
そのためには、情報処理装置１が以下の構成を含むようにすればよい。
（１）情報処理装置１が、宛先ノードでの閉塞エラーを検出する手段を含む。
（２）情報処理装置１が、その閉塞エラーが発生した宛先ノードに送信されるパケットで、共有入力バッファ先頭のパケットを認識する手段を含む。例えば、ノードＤで閉塞エラーが発生したときに、ノードＤ宛のパケットが、共有入力バッファの先頭にあるか、否かが判定できればよい。例えば、図１１のように、パケット中に、送信元ノードを記述する代わりに、送信元ノードと、宛先ノードの両方を指定するようにしてもよい。このような構成によって、共有出力バッファの先頭パケットを読み出すことで、そのパケットの宛先が判定できる。また、例えば、パーティションの定義とは無関係に、図１０の送信元ＩＤ＝＞宛先ＩＤ変換テーブル４１１が定義されてもよい。この場合の構成は、上記実施例１の構成で、パーティションの定義がないものとなり、処理手順は、実施例１と同様である。
（３）情報処理装置１が、（２）で認識されたパケットを調停部による調停処理の対象とする手段を含む。例えば、ノードＤで閉塞エラーが発生したときに、ノードＤ宛のパケットを先頭に保持する共有入力バッファを調停処理の対象とすればよい。【００８０】
逆に、パーティションの数が、３つ以上あっても、上記実施例と同様に、１つのパーティションでの閉塞エラーの影響が他のパーティションに及ぶことを抑制できる。【００８１】
上記実施例では、情報処理装置１は、２つの接続切替部５Ａ，５Ｂと、これらの接続切替部５Ａ，５Ｂ間の共有バッファを有していた。また、接続切替部５Ａの入力側には、システムボードであるノードＡ，Ｂが接続されていた。また、接続切替部５Ｂの出力側には、Ｉ／ＯユニットであるノードＣ，Ｄが接続されていた。しかし、上記情報処理装置１の処理は、そのようなネットワーク構成に限定される訳ではない。例えば、複数のシステムボードを互いに接続するシステムにおいても、同様に、上記構成によって、１つのシステムボードでの閉塞エラーの影響が他のシステムボードに及ぶことを低減できる。接続切替部５Ａ、５Ｂがクロスバでなく、いずれか一方または両方が、他のネットワーク、例えば、タイムスロットによって時分割して、それぞれのノードからアクセスされるバス型のネットワークであっても上記と同様の処理が実現される。
【実施例２】
【００８２】
図１４および図１５により、実施例２に係る情報処理装置１を説明する。上記実施例１では、あるノードで閉塞エラーが発生した場合の対応が例示された。すなわち、エラー制御部６０が、閉塞エラーが発生したノードに接続される出力バッファ１２Ｄの空きを示すクレジット数を最大にするように、あるいは、バッファの空き状態を示すように、クレジット制御部（２）８０に指示した。この指示によって、ノードＤで閉塞エラーが発生した場合も、ノードＤへのパケットを保持する出力バッファ１２Ｄにおいて、空きがあるようにクレジット数が設定された。そして、調停部４０Ｂに対して、出力バッファ１２Ｄに空きがあることを示す情報が送信された。また、出力バッファ１２Ｄの入り口でパケットを廃棄する設定がされた。このような設定の結果、ノードＤ宛のパーティション＃０に属するパケットが、共有入力バッファ２０からスイッチ５−４を通じて、出力バッファ１２Ｄに転送され、廃棄された。その結果、共有入力バッファ２０において、他のノードＣ、あるいは、他のパーティション＃１に対するノードＤでの閉塞エラーの影響が回避された。【００８３】
そのような手順に代えて、エラーを検知したシステムサービスプロセッサ５０が、調停部４０Ｂに、ノードＤでの閉塞エラーの発生を通知してもよい。このような処理によって、調停部４０Ｂは、エラーが発生したノード宛のパケットを先頭に保持する入力バッファを調停の対象とすればよい。以上のような構成により、実施例１と同様、一のパーティションでの閉塞エラーの影響が他のパーティションに及ぶことが極力低減される。本実施例の他の構成および作用は、実施例１の場合と同様である。そこで、実施例１と同一の構成要素については、同一の符号を付してその説明が省略される。また、必要に応じて、図１から図１３の図面が参照される。【００８４】
図１４は、ネットワーク部１０Ｂ内部での接続処理を例示する図である。図１４でも、図３、４に示した接続切替部５Ｂが、スイッチ５−１，５−２、５−３、および５−４に分離して示されている。すなわち、共有入力バッファ２０、２１、入力バッファ１１Ｃ、１１Ｄ内のパケットが、スイッチ５−１、５−２、５−３、および５−４に入力され、出力バッファ１２Ｃ、１２Ｄ、共有出力バッファ３０、３１を通じて、ノードＣ、ノードＤ、あるいは、接続切替部５Ａに出力される。【００８５】
本実施例では、１つのノード、例えば、パーティション＃０のノードＤでエラーが発生した場合、システムサービスプロセッサ５０内のエラー監視回路は、調停部４０Ｂに対して、パーティション＃０（ノードＤ）で閉塞エラーが発生したことを通知する。システムサービスプロセッサ５０が、閉塞エラーの発生を調停部へ通知するエラー通知部に相当する。また、システムサービスプロセッサ５０が、情報処理装置における少なくともエラーの発生を監視する制御装置にも相当する。【００８６】
閉塞エラーを受信した調停部４０Ｂは、パーティション＃０に属するパケットが共有入力バッファ２０，２１にある限り、調停処理の対象とする。すなわち、共有入力バッファ＃０にあるノードＡからのパケットは、調停処理に参加することになり、共有入力バッファ２０から接続切替部５Ｂ、すなわち、スイッチ５−４に出力される。【００８７】
本実施例でも、実施例１と同様に、出力バッファ１２Ｄの入り口で通信を遮断する遮断部が設けられている。調停部４０Ｂは、出力バッファ１２Ｄの入り口で通信を遮断しておけばよい。ただし、システムサービスプロセッサ５０が、ノードＤの閉塞エラーを検出したときに、出力バッファ１２Ｄの入り口の遮断部で通信を遮断するようにしてもよい。【００８８】
そして、ノードＡからのパケットが出力されることによって、共有入力バッファ＃０に保持されたパケットが共有入力バッファ＃０内を１つずつシフトする。その結果、共有入力バッファ２０の先頭は、パーティション#1に属するノードＢからのパケットとなる。したがって、次の調停処理によってパーティション＃１で授受されるパケットが共有入力バッファ２０から出力可能となる。このような手順により、パーティション＃０で発生したエラーのパーティション#1への影響が低減される。【００８９】
図１５に、調停部４０Ｂの詳細構成を例示する。調停部４０Ｂは、調停回路４４と、調停回路４４への３つの入力部とを有する。３つの入力部は、入力バッファ状態管理部４１、出力バッファ状態管理部４２、およびエラー受信部４３である。【００９０】
入力バッファ状態管理部４１は、入力バッファ（共有入力バッファ２０，２１，入力バッファ１１Ｃ、１１Ｄ）それぞれについて、パケットの有無、先頭パケットの送信元（入力ポート）を示す情報を有する。入力バッファ状態管理部４１は、これらの状態を示す情報を保持する、それぞれの入力バッファに対応するそれぞれのレジスタ（ここでは、要求レジスタと呼ぶ）として例示される。【００９１】
入力バッファ状態管理部４１には宛先テーブル４５が接続されている。宛先テーブルは、送信元のノード番号に対応する宛先のノード番号を定義したテーブルである。例えば、本実施例では、ノードＡとノードＤとが、パーティション＃０に含まれる。したがって、ノードＡからのパケットの宛先として、宛先テーブルには、ノードＤのノード番号が定義されている。また、ノードＢとノードＣとが、パーティション＃１に含まれる。したがって、ノードＢからのパケットの宛先として、宛先テーブルには、ノードＣのノード番号が定義されている。なお、ここでは、ノード番号と呼ぶが、ノード番号は、接続切替部５Ｂが個々のノードを識別できる情報である。ノード番号に替えて、例えば、接続切替部５Ｂのそれぞれのポートを示すポート番号を用いてもよい。【００９２】
出力バッファ状態管理部４２は、宛先のノードに対応する出力バッファ（出力バッファ１２Ｃ，１２Ｄ、共有出力バッファ３０，３１）の空き状態を保持する。出力バッファ状態管理部４２は、それぞれの出力バッファに対応するそれぞれレジスタとして例示される。【００９３】
エラー受信部４３は、システムサービスプロセッサ５０からのエラー情報を受信し、ノードごとのエラー有無信号を生成する。例えば、システムサービスプロセッサ５０は、宛先のノードを識別する情報と、エラーの程度を示す情報とをエラー受信部に送信する。エラー受信部４３は、ノードごとのエラーレジスタを有している。そして、エラー受信部４３は、システムサービスプロセッサ５０からのエラー情報が、閉塞エラーである場合、その閉塞エラーが発生したノードに該当するエラーレジスタをオンにする。ノードごとのエラーレジスタの値は、調停回路４４に入力される。【００９４】
調停回路４４は、入力バッファ状態管理部４１のそれぞれの要求レジスタの宛先が、競合する場合に、例えば、ＬＲＵにしたがって、入力バッファを選択する。また、調停回路４４は、入力バッファ状態管理部４１のそれぞれの要求レジスタの宛先が、競合しない場合には、要求レジスタに要求のある入力バッファ（パケットを保持する入力バッファ）をすべて選択すればよい。調停回路４４は、選択した入力バッファとその宛先の組み合わせを接続切替部５Ｂに入力する。【００９５】
接続切替部５Ｂは、例えば、図５と同様、スイッチ５−１から５−４を含む。接続切替部５Ｂは、調停回路４４からの選択信号にしたがって、共有入力バッファ２０、２１を含む入力バッファのいずれかを選択し、出力バッファ１２Ｃ、１２Ｄ等を通じて、宛先のノードＣ、Ｄ等に接続する。【００９６】
本実施例の情報処理装置１では、いずれかのノードのエラーレジスタがオンになっていると、そのノード宛のパケットを有する入力バッファを調停の対象とする。したがって、本実施例の情報処理装置１では、閉塞エラーのあるノード宛の入力バッファが調停に参加し、例えば、ＬＲＵによる調停の対象とされる。【００９７】
接続切替部５Ｂは、調停回路４４からの要求にしたがって、送信元ノードからのパケットを保持する入力バッファと、宛先ノードへの出力バッファとを接続するネットワークを形成する。【００９８】
以上述べたように、本実施例の情報処理装置１によれば、いずれかのパケットの宛先にて閉塞エラーが発生した場合、その宛先へ送信されるパケットを保持する共有入力バッファが、調停部４０Ｂの調停処理の対象とされる。したがって、閉塞エラーが発生しているノード宛のパケットが例えば、ＬＲＵアルゴリズム等の手順にしたがって、接続切替部５Ｂによる転送の対象となる。この場合に、転送先では、閉塞エラーが発生しているため、転送されたパケットは、通常廃棄されることになる。しかしながら、このような構成は、図６に例示したように、共有入力バッファに、閉塞エラーが発生しているパーティション＃０（送信元ノードＡ）のパケットと、閉塞エラーが発生していないパーティション＃１（送信元ノードＢ）のパケットとが混在する場合にも、極めて有効である。すなわち、パーティション＃０での閉塞エラーの影響がパーティション＃１に及ぶことが極力低減される。【００９９】
＜その他の変形例＞
上記実施例１および実施例２の構成要素は、いずれも、ハードウェア回路、例えば、トランジスタを含む、ＡＮＤ、ＯＲ、ＮＯＴ等の論理ゲートを含む。ただし、ハードウェアの回路に替えて、ＤＳＰ（Digital Signal Processor）、ＣＰＵ（Central Processing Unit）等が含まれるようにしてもよい。ＤＳＰ、ＣＰＵ等がメモリ上に実行可能に展開されたコンピュータプログラムを実行することによって、例えば、図６あるいは図１５の機能が実現されるようにしてもよい。また、図１３に示した手順の少なくとも一部が、ＤＳＰ、ＣＰＵ等によって実行されてもよい。【０１００】
上記実施例１および実施例２では、調停処理については、主として、調停部４０Ｂでの処理が例示された。一方、調停部４０Ａの構成および作用については説明が省略された。しかし、調停部４０Ａの構成および作用は、調停部４０Ｂと同様である。【０１０１】
上記実施例１および実施例２では、調停部４０Ｂは、いずれもＬＲＵアルゴリズムによって、入力バッファを決定した。しかし、本情報処理装置１は、そのような構成に限定される訳ではない。例えば、調停部４０Ａ、４０Ｂは、単純なラウンドロビンにしたがって、入力バッファを決定してもよい。また、例えば、入力バッファに保持されたパケットの宛先の出力バッファの空き容量が多いものを優先して、入力バッファを決定してもよい。【０１０２】
上記実施例１および２では、図３に例示されるように、情報処理装置１は、ＣＰＵを含むシステムボードと、Ｉ／Ｏボードとを、接続切替部５Ａ、５Ｂで接続する。したがって、情報処理装置１としては、典型的には、複数のパーティションを有するコンピュータが例示される。しかし、情報処理装置１は、そのような例に限定される訳ではない。要するに、複数ノードに共有される共有入力バッファと、出力バッファと、それらの共有入力バッファおよび出力バッファを接続するネットワークを含むシステム一般に適用できる。例えば、上記構成は、複数のコンピュータがクロスバで接続されるコンピュータシステムに適用できる。
【図１】
2010103610.tif 000003
【図２】
2010103610.tif 000004
【図３】
2010103610.tif 000005
【図４】
2010103610.tif 000006
【図５】
2010103610.tif 000007
【図６】
2010103610.tif 000008
【図７】
2010103610.tif 000009
【図８】
2010103610.tif 000010
【図９】
2010103610.tif 000011
【図１０】
2010103610.tif 000012
【図１１】
2010103610.tif 000013
【図１２】
2010103610.tif 000014
【図１３】
2010103610.tif 000015
【図１４】
2010103610.tif 000016
【図１５】
2010103610.tif 000017
【手続補正書】
【提出日】平成23年10月7日(2011.10.7)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００２３
【補正方法】変更
【補正の内容】
【００２３】
このうち、ノードＡ（ＳＢ＃Ａ）、ノードＣ（ＳＢ＃Ｂ）は、システムボードと呼ばれるコンピュータである。ノードＡ、ノードＣは、それぞれ、ＣＰＵ、メモリ、およびノースブリッジと呼ばれるチップセットを搭載している。また、ノードＢ、ノードＤは、それぞれサウスブリッジというチップセットを搭載し、I/Oユニット（IOU#A/B）の機能を提供する。I/Oユニット（IOU#A/B）には、例えば、外部記憶装置、着脱可能記憶媒体駆動装置、ＬＡＮ（Local Area Network）基板等が接続される。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００２９
【補正方法】変更
【補正の内容】
【００２９】
図４に、情報処理装置１の具体的構成を例示する。図４のように、情報システムは、ノードＡ、Ｃと呼ばれるシステムボードと、ノードＢ、Ｄと呼ばれるＩ／Ｏユニットと、相互に接続された２つのネットワーク部１０Ａ、１０Ｂとを含む。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００３５
【補正方法】変更
【補正の内容】
【００３５】
また、スイッチ５−３は、共有入力バッファ２０，２１を含む入力バッファのいずれかを選択し、選択した入力バッファの先頭に保持されたパケットを出力バッファ１２Ｃに出力する。ノードＣは、出力バッファ１２Ｃに出力されたパケットを順次読み出す。同様に、スイッチ５−４は、共有入力バッファ２０，２１を含む入力バッファのいずれかを選択し、選択した入力バッファの先頭に保持されたパケットを出力バッファ１２Ｄに出力する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００４４
【補正方法】変更
【補正の内容】
【００４４】
また、バッファ制御部（１）９０は、共有入力バッファ２０にパケットが存在すると、調停部４０Ｂに対して接続要求を送る。調停部４０Ｂの調停処理によって、スイッチ５−４を通じて、パケットが出力バッファ２０から読み出されると、クレジット制御部（１）９０は、クレジット数を１カウント増加させる。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００５４
【補正方法】変更
【補正の内容】
【００５４】
上記構成により、共有入力バッファ２０からノードＡからのパケット（パーティション０に属するパケット）が出力されることによって、ネットワーク部１０Ａに対しては、クレジット返却が通常通り行われる。そして、共有入力バッファ２０の先頭にあったパーティション＃０に属するパケットが接続切替部５Ｂを通じて出力される。その結果、閉塞エラーが発生したノード宛のパケットが共有入力バッファ２０内の後続のパケット、例えば、ノードＢからのパケットは、次の調停処理の対象となる。本実施例のように、ノードＡとノードＤとがパーティション＃０に含まれ、ノードＢとノードＣとがパーティション＃１に含まれる場合、１つのパーティションでの閉塞エラーの他のパーティションへの影響が低減される。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００６６
【補正方法】変更
【補正の内容】
【００６６】
図１０は、宛先テーブル部４０１の詳細を例示する図である。図１０では、要求信号の１つであるＲＥＱ１に対する回路が例示されている。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００６７
【補正方法】変更
【補正の内容】
【００６７】
宛先テーブル部４０１は、送信元ＩＤ＝＞宛先ＩＤ変換テーブル４１１と、選択回路４１２とを含む。送信元ＩＤ＝＞宛先ＩＤ変換テーブル４１１は、例えば、ルックアップテーブルであり、送信元ＩＤが入力されると、その送信元ＩＤに対する宛先ＩＤを返す。ここで、送信元ＩＤは、送信元ノードを識別するＩＤである。図１０では、要求信号ＲＥＱ１に対する入力バッファの先頭パケットから取得された送信元ＩＤが送信元ＩＤ＝＞宛先ＩＤ変換テーブル４１１に入力されている。また、宛先ＩＤは、宛先ノードを識別するＩＤである。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００７５
【補正方法】変更
【補正の内容】
【００７５】
すると、調停部４０Ｂは、共有入力バッファ２０のバッファ制御部（１）９０にアクノリッジ（ACK）を返す（矢印Ａ４）。ＡＣＫを受信すると、共有入力バッファ２０のバッ
ファ制御部（１）９０は、入力バッファ２０の空き領域数を示すクレジット数を１カウント増加させる。さらに、調停部４０Ｂの指示にしたがって、接続切替部５Ｂが、共有入力バッファ２０を出力バッファ１２Ｄに接続する。その結果、共有入力バッファ２０の先頭パケット（パーティション＃０）が廃棄される（矢印Ａ５）。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００７７
【補正方法】変更
【補正の内容】
【００７７】
以上述べたように、本実施例の情報処理装置１によれば、接続切替部５Ａ，５Ｂを通じて、複数のノードが接続されるシステムでの閉塞エラー発生の影響が、局所的に限定される。情報処理装置１では、複数ノードが、それぞれのパーティションに含まれ、パーティション間で共有されるバッファが用いられる。このような構成で、１のパーティションに属するノードにて、閉塞エラーが発生した場合に、そのノードへの出力バッファの空きを示すクレジット数を最大化することによって、調停部４０Ｂに対しては、そのノード宛のパケットを保持するノードを調停処理の対象とする指示がなされる。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００８１
【補正方法】変更
【補正の内容】
【００８１】
上記実施例では、情報処理装置１は、２つの接続切替部５Ａ，５Ｂと、これらの接続切替部５Ａ，５Ｂ間の共有バッファを有していた。また、接続切替部５Ａの入力側には、ノードＡ，Ｂが接続されていた。また、接続切替部５Ｂの出力側には、ノードＣ，Ｄが接続されていた。しかし、上記情報処理装置１の処理は、そのようなネットワーク構成に限定される訳ではない。例えば、複数のシステムボードを互いに接続するシステムにおいても、同様に、上記構成によって、１つのシステムボードでの閉塞エラーの影響が他のシステムボードに及ぶことを低減できる。接続切替部５Ａ、５Ｂがクロスバでなく、いずれか一方または両方が、他のネットワーク、例えば、タイムスロットによって時分割して、それぞれのノードからアクセスされるバス型のネットワークであっても上記と同様の処理が実現される。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００８６
【補正方法】変更
【補正の内容】
【００８６】
閉塞エラーを受信した調停部４０Ｂは、パーティション＃０に属するパケットが共有入
力バッファ２０，２１にある限り、調停処理の対象とする。すなわち、共有入力バッファ２０にあるノードＡからのパケットは、調停処理に参加することになり、共有入力バッファ２０から接続切替部５Ｂ、すなわち、スイッチ５−４に出力される。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００８８
【補正方法】変更
【補正の内容】
【００８８】
そして、ノードＡからのパケットが出力されることによって、共有入力バッファ２０に保持されたパケットが共有入力バッファ２０内を１つずつシフトする。その結果、共有入力バッファ２０の先頭は、パーティション#1に属するノードＢからのパケットとなる。したがって、次の調停処理によってパーティション＃１で授受されるパケットが共有入力バッファ２０から出力可能となる。このような手順により、パーティション＃０で発生したエラーのパーティション#1への影響が低減される。
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】００９１
【補正方法】変更
【補正の内容】
【００９１】
入力バッファ状態管理部４１には宛先テーブル４５が接続されている。宛先テーブル４５は、送信元のノード番号に対応する宛先のノード番号を定義したテーブルである。例えば、本実施例では、ノードＡとノードＤとが、パーティション＃０に含まれる。したがって、ノードＡからのパケットの宛先として、宛先テーブル４５には、ノードＤのノード番号が定義されている。また、ノードＢとノードＣとが、パーティション＃１に含まれる。したがって、ノードＢからのパケットの宛先として、宛先テーブル４５には、ノードＣのノード番号が定義されている。なお、ここでは、ノード番号と呼ぶが、ノード番号は、接続切替部５Ｂが個々のノードを識別できる情報である。ノード番号に替えて、例えば、接続切替部５Ｂのそれぞれのポートを示すポート番号を用いてもよい。
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】００９３
【補正方法】変更
【補正の内容】
【００９３】
エラー受信部４３は、システムサービスプロセッサ５０からのエラー情報を受信し、ノードごとのエラー有無信号を生成する。例えば、システムサービスプロセッサ５０は、宛先のノードを識別する情報と、エラーの程度を示す情報とをエラー受信部４３に送信する。エラー受信部４３は、ノードごとのエラーレジスタを有している。そして、エラー受信部４３は、システムサービスプロセッサ５０からのエラー情報が、閉塞エラーである場合、その閉塞エラーが発生したノードに該当するエラーレジスタをオンにする。ノードごとのエラーレジスタの値は、調停回路４４に入力される。
【手続補正１５】
【補正対象書類名】図面
【補正対象項目名】図３
【補正方法】変更
【補正の内容】
【図３】
2010103610.tif 000018
【手続補正１６】
【補正対象書類名】図面
【補正対象項目名】図６
【補正方法】変更
【補正の内容】
【図６】
2010103610.tif 000019
【手続補正１７】
【補正対象書類名】図面
【補正対象項目名】図７
【補正方法】変更
【補正の内容】
【図７】
2010103610.tif 000020
【国際調査報告】
2010103610.tif 000021
2010103610.tif 000022