JP5287975B2 - 情報処理装置 - Google Patents
情報処理装置 Download PDFInfo
- Publication number
- JP5287975B2 JP5287975B2 JP2011503587A JP2011503587A JP5287975B2 JP 5287975 B2 JP5287975 B2 JP 5287975B2 JP 2011503587 A JP2011503587 A JP 2011503587A JP 2011503587 A JP2011503587 A JP 2011503587A JP 5287975 B2 JP5287975 B2 JP 5287975B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- buffer
- unit
- error
- input buffer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000010365 information processing Effects 0.000 title claims description 46
- 239000000872 buffer Substances 0.000 claims abstract description 356
- 230000000903 blocking effect Effects 0.000 claims abstract description 42
- 238000012545 processing Methods 0.000 claims description 37
- 230000000717 retained effect Effects 0.000 abstract 1
- 238000005192 partition Methods 0.000 description 74
- 230000005540 biological transmission Effects 0.000 description 42
- 238000000034 method Methods 0.000 description 18
- 101100524346 Xenopus laevis req-a gene Proteins 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 238000006243 chemical reaction Methods 0.000 description 8
- 230000004044 response Effects 0.000 description 7
- 238000012546 transfer Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000007423 decrease Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17356—Indirect interconnection networks
- G06F15/17368—Indirect interconnection networks non hierarchical topologies
- G06F15/17375—One dimensional, e.g. linear array, ring
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
本発明は、データを授受する複数の装置を含む情報処理装置に関するものである。
近年、情報処理装置の構成が複雑化している。その一例として、ノードと呼ばれる複数の装置をクロスバスイッチのような接続切替部で切替可能に相互に接続したシステムが知られている。図1は、そのようなシステムとして、4つのノード(ノードAからノードD)を含むシステムを例示する。
図1のシステムでは、相互に接続された2つのネットワーク部500A,500Bによって、ノードA 501、ノードB 502、 ノードC 503、およびノードD 504が接続されている。ここで、ノードA 501等の各ノードは、例えば、CPU、メモリ等を含む。ノードは、例えば、コンピュータである。ただし、ノードA 501等のノードのいずれかは、例えば、システム外部への入出力インターフェースとして機能する入出力装置であってもよい。
また、ネットワーク部500A,500Bは、いずれも接続切替部505A,505Bを含む、複数のポート(例えば、PORT#0、PORT#1、PORT#2、PORT#3)を相互に接続するネットワーク部品として例示できる。また、接続切替部505A,505Bとしては、それぞれクロスバスイッチが例示される。ネットワーク部505A、505Bは、ポート#0−#3の間を相互に1対1で接続する。
そして、接続切替部505AのPORT#0には、ノードA 501との間でデータを入出力する入力バッファ511Aおよび出力バッファ512Aが設けられている。そして、このシステムでは、ノードA 501は、入力バッファ511A、出力バッファ512Aを通じてネットワーク部500Aに接続される。そして、ノードA 501は、入力バッファ511Aを介して、データをネットワーク部500Aに入力する。また、ノードA 501は、出力バッファ512Aを介して、データをネットワーク部500Aから受け取る。ノードB 502、 ノードC 503、およびノードD 504とネットワーク部500A,500Bとの接続関係も、ノードA 501と同様である。
一方、接続切替部505AのPORT#2には、共有出力バッファ522、共有入力バッファ532が設けられている。また、接続切替部505BのPORT#0には、共有入力バッファ520、共有出力バッファ530が設けられている。そして、共有出力バッファ522と共有入力バッファ520との間、共有出力バッファ530と共有入力バッファ532との間をそれぞれ接続することによって、接続切替部505AのPORT#2と接続切替部505BのPORT#0とが接続される。接続切替部505AのPORT#3と、接続切替部505BのPORT#1との間も、接続切替部505AのPORT#2と接続切替部505BのPORT#0との間と同様に接続される。
上述のノードA 501と接続切替部505Aと間では、入力バッファ511A、出力バッファ512Aが、ノードA 501専用に設けられている。ネットワークに接続されるノードごとに専用バッファを設けるとハード資源が多くなるため、ハードウェア資源の有効活用のため複数のノードで共通のバッファを使用することがある。例えば、図1では接続切替部5Aと接続切替部5Bとの間の入力バッファ・出力バッファは、各ノードの共有資源となっている。
図2に、このような構成のシステムで発生する問題点を例示する。図2は、図1の構成のうち、ノードC 503、ノードD 504に関連する部分を抜き出したものである。また、図2では、接続切替部505Bのうち、ノードC 503に関連するスイッチ505B−1と、ノードD 504に関連するスイッチ505B−2と、が示されている。接続切替部505Bのそれぞれのスイッチ505B−1、505B−2には、共有入力バッファ520、521、入力バッファ511C、入力バッファ511Dを通じてデータが入力される。なお、図2で、共有入力バッファ520には、"A","B"によって、それぞれノードA 501、ノードB 502からの1纏まりのデータが例示されている。ここでは、1纏まりのデータは、パケットと呼ばれる。
また、ノードC 503への出力バッファ512Cには、ノードB 502からのデータが蓄積されている。図2の例では、ノードB 502とノードC 503とは、1つのパーティション#1に含まれており、ノードB 502からのデータの宛先は、ノードC 503と決められているからである。同様に、ノードA 501とノードD 504とは、1つのパーティション#0に含まれており、ノードA 501からのデータの宛先は、ノードD 504と決められている。
ここで、パーティションとは、情報処理装置を複数の論理的な処理装置部分に分離したときの個々の処理装置部分をいう。このようなパーティションの例としては、例えば、情報処理装置が複数のプロセッサと複数の入出力装置を含む場合に、それら複数のプロセッサいずれかと入出力装置とを含むパーティションが知られている。そのようなパーティションによって、例えば、機能が異なる複数の処理装置部分を有する情報システムが提供される。
したがって、図2の例では、パーティション#0内でノードA 501からノードD 504宛に転送されるパケットが共有入力バッファ520内に、”A”で示されている。以下では、ノードA 501からノードD 504宛に転送されるパケットは、単にパケットAと呼ばれる。また、パーティション#1内でノードB 502からノードC 503宛に転送されるパケットが共有入力バッファ520内に、”B”で示されている。以下では、ノードB 502からノードC 503宛に転送されるパケットは、単にパケットBと呼ばれる。
また、図2では、接続切替部505Bにて接続するノード間の競合を調停する調停部(arbiter)540Bが示されている。調停部540Bは、共有入力バッファ520,521、入力バッファ511C,511D(以下、これらを総称して単に入力バッファという)を接続切替部505Bで接続する場合の接続の優先順を決定する。すなわち、入力バッファのうち、データが蓄積されている入力バッファは、接続切替部505Bによって、転送先の出力バッファ512C,512D等に接続され、接続された出力バッファにデータを引き渡すことになる。しかしながら、入力バッファが接続される接続先の出力バッファが競合する場合、その接続の優先順が調停部540Bによって決定される。そして、その優先順によって、順次入力バッファが接続切替部505Bを通じて出力バッファに接続されることになる。その場合に、どの入力バッファ(あるいは、ポート)を優先して接続するかを決定するのが調停部540Bである。
ところで、上記のようにネットワーク部500Aとネットワーク部500Bとの間のバッファが複数ノード間の共有バッファである場合、以下のような問題が発生する。ここでは、図2に示すようにノードA 501からのパケットの宛先であるノードD 504でポート閉塞となるエラーが発生した場合が想定される。この場合には、ノードD 504宛のパケットAは共有入力バッファ520から宛先のノードDへ出力されない。そのため、共有入力バッファ520にて、パケットAの後段にあるノードC 503宛のパケットBも出力することができない。したがって、ノードD 504でのエラーが、ノードB 502とノードC 503との間の通信にまで影響してしまう可能性がある。そして、場合によっては、1つの処理装置のエラーによって、他の処理装置間のデータの授受ができなくなる、共倒れのエラーにつながる可能性もある。
開示の実施形態の目的は、送信元ノードと宛先ノードの複数対が共有バッファを介して接続される情報処理装置において、1つのノード対でのエラーが他のノードに影響することを低減する技術を提供することである。
開示の実施形態の一態様は、複数の送信元ノードから宛先ノードに送信されるデータを保持する共有入力バッファを含む、複数の入力バッファと、宛先ノードに送信されたデータが宛先ノードに出力されるまでの間、宛先ノードごとにデータを保持する出力バッファと、入力バッファと出力バッファとの間を切替可能に接続する接続切替部と、複数の入力バッファの中から、接続切替部によって出力バッファに接続される入力バッファを決定する調停部と、を備える情報処理装置として例示できる。
そして、出力バッファから宛先ノードへのデータの出力ができない閉塞エラーがいずれかの宛先ノードで発生したときに、調停部は、該閉塞エラーが発生した宛先ノード宛のデータを保持している入力バッファを含む入力バッファの中から出力バッファに接続される入力バッファを決定し、接続切替部は、決定された入力バッファを、該入力バッファに保持されているデータの宛先ノードの出力バッファに接続する。
本発明によれば、送信元ノードと宛先ノードの複数対が共有バッファを介して接続される情報処理装置において、1つのノード対でのエラーが他のノードに影響することを低減できる。
1 情報処理装置
5A、5B 接続切替部
5−1、5−2、5−3、5−4 スイッチ
11A、11B、11C、11D 入力バッファ
12A、12B、12C、12D 出力バッファ
20、21、32、33 共有入力バッファ
22、23、30、31 共有出力バッファ
40A、40B 調停部
50 システムサービスプロセッサ
60 エラー制御部
70 バッファ制御部(2)
80 クレジット制御部(2)
90 バッファ制御部(1)
100 クレジット制御部(1)
5A、5B 接続切替部
5−1、5−2、5−3、5−4 スイッチ
11A、11B、11C、11D 入力バッファ
12A、12B、12C、12D 出力バッファ
20、21、32、33 共有入力バッファ
22、23、30、31 共有出力バッファ
40A、40B 調停部
50 システムサービスプロセッサ
60 エラー制御部
70 バッファ制御部(2)
80 クレジット制御部(2)
90 バッファ制御部(1)
100 クレジット制御部(1)
以下、図面を参照して本発明を実施するための最良の形態(以下、実施形態という)に係る情報処理装置1について説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成には限定されない。
図3は、情報処理装置1の全体構成図を例示する。情報処理装置1は、複数のノードと呼ばれるコンピュータを含む。図3では、ノードA、B、C、およびDという4つのノードが例示されている。
このうち、ノードA(SB#A)、ノードC(SB#B)は、システムボードと呼ばれるコンピュータである。ノードA、ノードCは、それぞれ、CPU、メモリ、およびノースブリッジと呼ばれるチップセットを搭載している。また、ノードB、ノードDは、それぞれサウスブリッジというチップセットを搭載し、I/Oユニット(IOU#A/B)の機能を提供する。I/Oユニット(IOU#A/B)には、例えば、外部記憶装置、着脱可能記憶媒体駆動装置、LAN(Local Area Network)基板等が接続される。
システムボードとI/Oユニットとの間は、ネットワーク部10A、10Bによって接続されている。ネットワーク部10A、10Bは、それぞれ、接続切替部5A、5Bを含む。接続切替部5A,5Bとしては、それぞれクロスバスイッチが例示される。
さらに、図3では、接続切替部5A,5Bは互いに接続されている。本実施例では、システムボードとI/Oユニットの組み合わせは固定でなくてよい。すなわち、接続切替部5A,5Bに内蔵する、ノードの接続を規定するテーブルを変更することで、システムボードとI/Oユニットの組み合わせが変更される。
本実施例では、このテーブルの定義によって、例えば、システムボードSB#AとI/OユニットIOU#Bが組み合わせられている。本実施例では、この組み合わせはパーティション#0と呼ばれる。システムボードSB#BとI/OユニットIOU#Aの組み合わせはパーティション#1と呼ばれる。また、接続切替部5A,5Bを含むネットワーク10A、10Bはパーティション共有の資源である。
情報処理装置1をパーティションに区分することで、例えば、異なる種類のコンピュータ環境がパーティションごとにユーザに提供される。例えば、パーティション#0と#1とは、それぞれ、異なるOS(Operating System)を搭載することもできる。例えば、一方のOSが、Windows(登録商標)であり、他方のOSが、コンピュータメーカ固有の他のOSであってもよい。
さらに、図3では、情報処理装置1を管理するシステムサービスプロセッサ50が示されている。システムサービスプロセッサ50は、情報処理装置1の各部、例えば、それぞれのノードおよびネットワーク部10A、10Bを管理する。ここで、管理するとは、例えば、情報処理装置1を起動し、情報処理装置1の各部を監視し、処理の実行状況を収集し、エラー処理等を実行することをいう。本実施例では、情報処理装置1とシステムサービスプロセッサ50を含むシステムは、情報システムと呼ばれる。システムサービスプロセッサ50が、情報処理装置における少なくともエラーの発生を監視する制御装置に相当する。
図4に、情報処理装置1の具体的構成を例示する。図4のように、情報システムは、ノードA、Cと呼ばれるシステムボードと、ノードB、Dと呼ばれるI/Oユニットと、相互に接続された2つのネットワーク部10A、10Bとを含む。
また、ネットワーク部10A,10Bは、いずれも接続切替部5A,5Bを含む。接続切替部5A、5Bは、複数のポート(例えば、PORT#0、PORT#1、PORT#2、PORT#3)を相互に接続するネットワーク部品として例示できる。
そして、接続切替部5AのPORT#0には、ノードAとの間でデータを入出力する入力バッファ11Aおよび出力バッファ12Aが設けられている。そして、このシステムでは、ノードAは、入力バッファ11A、出力バッファ12Aを通じてネットワーク部10Aに接続される。そして、ノードAは、入力バッファ11Aを介して、データをネットワーク部10Aに入力する。また、ノードAは、出力バッファ12Aを介して、データをネットワーク部10Aから受け取る。ノードB、ノードC、およびノードDとネットワーク部10Aとの接続関係も、ノードAとネットワーク部10Aとの接続関係と同様である。また、ネットワーク部10Bにおける接続関係も、ネットワーク10Aにおける接続関係と同様である。
一方、接続切替部5AのPORT#2には、共有出力バッファ22、共有入力バッファ32が設けられている。また、接続切替部5BのPORT#0には、共有入力バッファ20、共有出力バッファ30が設けられている。そして、共有出力バッファ22と共有入力バッファ20との間、共有出力バッファ30と共有入力バッファ32の間をそれぞれ接続することによって、接続切替部5AのPORT#2と接続切替部5BのPORT#0とが接続される。接続切替部5AのPORT#3と、接続切替部5BのPORT#1との間も上記と同様に接続される。
また、ネットワーク部10A,10Bは、それぞれ調停部40A,40Bを有する。調停部40A、40Bは、接続切替部5A、5Bの各ポート間の接続を制御する。例えば、PORT#0とPORT#1との間で、接続先が競合した場合に、調停部40A、40Bは、LRU(Least Recently Used)アルゴリズム等、所定の基準にしたがって、優先して接続するポートを決定する。
図5は、共有入力バッファ20,21を含む入力バッファと転送先ノードC、Dとの関係を例示する図である。図5で、接続切替部5Bは、スイッチ5−1,5−2,5−3,および5−4に区分して示されている。スイッチ5−1は、共有入力バッファ20,21を含む入力バッファのいずれかを共有出力バッファ30に接続する。共有出力バッファ30のパケットは、順次、接続切替部5Aに提供される。同様に、スイッチ5−2は、共有入力バッファ20,21を含む入力バッファのいずれかを選択し、選択した入力バッファの先頭に保持されたパケットを共有出力バッファ31に出力する。
また、スイッチ5−3は、共有入力バッファ20,21を含む入力バッファのいずれかを選択し、選択した入力バッファの先頭に保持されたパケットを出力バッファ12Cに出力する。ノードCは、出力バッファ12Cに出力されたパケットを順次読み出す。同様に、スイッチ5−4は、共有入力バッファ20,21を含む入力バッファのいずれかを選択し、選択した入力バッファの先頭に保持されたパケットを出力バッファ12Dに出力する。
調停部40Bは、スイッチ5−1,5−2,5−3,および5−4について、それぞれ、共有入力バッファ20,21を含む入力バッファのうちのいずれかを、所定の基準にしたがって選択する。
本実施例では、ノードAとノードDとが、パーティション#0に含まれる。また、ノードBとノードCとが、パーティション#1に含まれる。したがって、調停部40Bおよびスイッチ5−3は、ノードBからのパケットを保持する共有入力バッファ20、21、入力バッファ11C、11DのいずれかをノードC宛の出力バッファ12Cに出力する。より具体的な処理としては、例えば、それぞれの入力バッファに送信要求対象のパケットが存在する場合、その入力バッファは、調停部40Bに送信要求を送る。そして、例えば、ノードCへの送信要求が競合すると、調停部40Bは、所定の基準で、ノードCへの送信要求がある複数の入力バッファのいずれかを選択し、スイッチ5−3を通じてノードCによる読み出しの対象である出力バッファ12Cに接続する。
また、調停部40Bおよびスイッチ5−4は、ノードAからのパケットを保持する共有入力バッファ20、21、入力バッファ11C、11DのいずれかをノードD宛の出力バッファ12Dに接続する。
そのため、出力バッファ12Cには、ノードBを送信元とするパケットが蓄積される。また、出力バッファ12Dには、ノードAを送信元とするパケットが蓄積される。一方、例えば、共有入力バッファ20には、ノードAあるいはノードBを送信元とするパケットが混在している。
図6に、エラー発生時の処理概要を例示する。図6では、図3−図5で示された構成のうち、特に、ノードDに関連する構成要素の詳細が例示されている。図6で、共有入力バッファ20内には、”A”、”B”の文字で、パケットが示されている。ここで、”A”で示されるパケットは、ノードAを送信元とするパケットである。また、”B”で示されるパケットは、ノードBを送信元とするパケットである。
今、一例としてパーティション#0に属するノードDにおいてポート閉塞となるエラーが発生した場合を考える。ポート閉塞とは、ノードDが、出力バッファ12Dからパケットを読み出すことのできないエラーの状態をいう。ポート閉塞となるエラーが発生すると、ノードDに接続される出力バッファ12Dでは、パケットが蓄積されたままとなる。また、新たなパケットのスイッチ5−4からの出力により、ノードDに接続される出力バッファ12Dは、オーバーフローを発生する。
従来の処理では、出力バッファ12Dがオーバーフローし、空き容量がなくなると、出力バッファ12D、すなわち、ノードD宛のパケットは、調停部40Bの調停処理の対象から除外される。例えば、図6のように、共有入力バッファ20の先頭に、パーティション#0に属するノードAからのパケットが保持されている場合、共有入力バッファ20は、調停部40Bによる調停処理の対象から除外されることになる。
図6の構成では、共有入力バッファ20の管理と制御のため、バッファ制御部(1)90およびクレジット制御部(1)100が設けられている。バッファ制御部(1)90は、共有入力バッファ20へのパケットの格納、共有入力バッファ20の空き領域の管理、および、共有入力バッファの先頭パケットに応じた宛先への接続要求を調停部40Bに入力する処理を実行する。例えば、バッファ制御部(1)90は、接続切替部5Aの共有出力バッファ22から共有入力バッファ20に、パケットが書き込まれると、クレジット制御部(1)100に対して、空き領域数を1カウント減少するように指示する。この空き領域数はクレジット数と呼ばれる。
また、バッファ制御部(1)90は、共有入力バッファ20にパケットが存在すると、調停部40Bに対して接続要求を送る。調停部40Bの調停処理によって、スイッチ5−4を通じて、パケットが出力バッファ20から読み出されると、クレジット制御部(1)90は、クレジット数を1カウント増加させる。
一方、クレジット制御部(1)100は、共有入力バッファ20へのパケットの格納と、読み出しに応じて、クレジット数を計数する。なお、本実施例では、出力バッファ20の空き領域数がクレジット数として管理されるが、定義を逆にして、使用中の領域数がクレジット数として管理されるようにしてもよい。
同様に、出力バッファ12Dの管理と制御のため、バッファ制御部(2)70およびクレジット制御部(2)80が設けられている。なお、クレジット制御部(2)80のクレジット数またはバッファ12Dの空き状態は、調停部40Bに通知される。
さらに、図6では、システムサービスプロセッサ50からのエラー通知を受信し、エラー通知に対応する処理を実行するエラー制御部60が設けられている。例えば、ノードDでエラーが発生した場合、エラーを監視しているシステムサービスプロセッサ50からエラー情報制御部60にエラーが通知される。例えば、ノードDで閉塞エラーが発生した場合、スイッチ5−4からのパケット受信とともに、出力バッファ12Dの空きが減少する。そして、最終的には、出力バッファ12Dの空きが消滅する。この状態では、クレジット制御部(2)80は、出力バッファ12Dの空きを示すクレジット数=無しの状態になる。
エラー情報制御部60は、エラー通知されたエラーが閉塞エラーであった場合、クレジット制御部(2)80に対してクレジット数を最大値に設定するように指示する。したがって、閉塞エラーが発生した場合には、クレジット数は、バッファ12Dの空き状態の実体と一致しないことになる。
さらに、出力バッファ12Dの入り口、すなわち、スイッチ5−4と出力バッファ12Dとを接続する伝送路には、遮断部SW1が設けられている。遮断部SW1は、例えば、伝送路を遮断状態または接続状態にするスイッチ、トランスファーゲート等である。遮断部SW1には、遮断部SW1を遮断状態または接続状態に制御するレジスタを設けてもよい。エラー制御部60が、上記遮断部SW1を遮断状態に設定することで、スイッチ5−4から出力バッファ12Dに出力されるパケットが廃棄される。出力バッファ12Dには、パーティション#0のパケットが出力されるので、廃棄されるパケットは、パーティション#0のパケットである。
なお、出力バッファ12Dが、オーバーフローすると、出力バッファに出力される後続パケットの格納領域がなくなり、後続パケットは廃棄されることになる。したがって、出力バッファ12Dの入力部で、パケットを廃棄する設定は、なくてもよい。しかしながら、明示的にパケットを廃棄するように設定ことで、情報処理装置1の動作がより確実なものとなる。
上述のように、空きクレジット数が最大値の設定に設定されることにより、出力バッファ12Dは、空きがあると判断される状態となる。クレジット制御部(2)80は、調停部40Bに対して、クレジット数の最大値、あるいは、出力バッファ12Dの受信可能を示す情報を通知する。接続切替部5Bの調停部40Bは出力バッファ12Dの受信可能を示す情報と、共有入力バッファ20を含む入力バッファからの接続要求とを受信することによって、調停部40Bは、接続要求元の入力バッファを調停処理の対象とする。すなわち、本実施例では、入力バッファからの接続要求があったとき、入力バッファに保持されたデータの宛先の出力バッファに空きがあることが、接続要求が受け付けられる条件である。その結果、調停部40Bは、共有入力バッファ20を含む複数の入力バッファから例えば、LRUアルゴリズムにしたがって、スイッチ5−4に接続する入力バッファとして、共有入力バッファ20を選択する。このような調停処理の後、調停部40Bは、共有入力バッファ20にACKを返却する。
そして、上記基準による調停処理の結果、例えば、共有入力バッファ20が選択されると、共有入力バッファ20は、スイッチ5−4に接続される。そして、共有入力バッファ20の先頭のパケットAが出力バッファ12Dに出力される。このパケットAは、出力バッファ12Dの入り口で、上記廃棄設定にしたがって廃棄される。
一方、バッファ制御部(1)90はACK受信に伴ない、クレジット制御部(1)100に対して、クレジット数を1カウント増加させる。
上記構成により、共有入力バッファ20からノードAからのパケット(パーティション0に属するパケット)が出力されることによって、ネットワーク部10Aに対しては、クレジット返却が通常通り行われる。そして、共有入力バッファ20の先頭にあったパーティション#0に属するパケットが接続切替部5Bを通じて出力される。その結果、閉塞エラーが発生したノード宛のパケットが共有入力バッファ20内の後続のパケット、例えば、ノードBからのパケットは、次の調停処理の対象となる。本実施例のように、ノードAとノードDとがパーティション#0に含まれ、ノードBとノードCとがパーティション#1に含まれる場合、1つのパーティションでの閉塞エラーの他のパーティションへの影響が低減される。
図7に、エラー制御部60の構成を例示する。図7のように、エラー制御部60は、エラー受信部601、エラーノード番号取得部602、閉塞エラー判定部603、選択回路604を有している。
エラー受信部601は、システムサービスプロセッサ50からのエラーコードを格納する。エラー受信部601は、例えば、レジスタである。エラーノード番号取得部602は、エラー受信部601中のエラーノード番号部分のビットを読み出す。エラーノード番号取得部602は、例えば、所望のビットをマスクするマスクビットを含むレジスタとANDゲート、シフトレジスタ等を含む。そして、エラーノード番号取得部602が取得した値は、選択回路604に入力される。
閉塞エラー判定部603は、エラー受信部601のエラーコード部分のビットを読み出す。そして、閉塞エラー判定部603は、閉塞エラーに対応するビットがオンか否かを判定する。閉塞エラー判定部603は、例えば、フリップフロップを含む。エラーコード中の閉塞エラーに対応するビットがオンの場合、閉塞エラー判定部603は、選択回路をイネーブル(動作許可)にする。
そして、選択回路604は、エラーノード番号に対応する信号線(空きクレジット番号最大化信号)をオンにする。図7では、OBUF1からOBUF4のいずれかの信号線がオンになる。OBUF1からOBUF4は、それぞれ各出力バッファのクレジット制御部に入力される。選択回路604は、例えば、インバータとANDゲートを含み、00(例えば、OBUF4),01(例えば、OBUF1),11(例えば、OBUF3),10(例えば、OBUF2)のいずれかに対してオンとなる論理回路として例示できる。
図8に、クレジット制御部(2)80の構成を例示する。クレジット制御部(2)80は、カウンタ801、最大バッファ数記憶部802およびステータス応答部803を有している。カウンタ801は、クレジット数、すなわち、空きバッファ数を計数している。例えば、出力バッファ12Dにパケットが入力されると、カウンタ801は、クレジット数を1カウント減少させる。また、出力バッファ12Dからパケットが読み出されると、カウンタ801は、クレジット数を1カウント増加させる。
最大バッファ数記憶部802は、バッファ容量、すなわち、出力バッファ12Dに保持可能なパケット数の最大値を記憶する。ステータス応答部803は、空きクレジット数最大化信号の有無に応じて、カウンタ801の値または最大バッファ数記憶部802の値のいずれかを選択し、調停部40Bに通知する。このように、クレジット数を調停部40Bに通知することで、調停部40Bは、そのクレジット数に応じて調停処理を実行できる。例えば、空き容量の大きい出力バッファ宛のパケットを保持する入力バッファを優先する等である。ただし、例えば、調停部40BがLRUアルゴリズムによって、入力バッファを選択する場合には、ステータス応答部803は、空きバッファ容量の有無を調停部40Bに通知するようにしてもよい。例えば、ステータス応答部803は、クレジット数が所定値以上であれば、空きバッファ有の信号を調停部40Bに通知し、クレジット数が所定値未満であれば、空きバッファなしの信号を調停部40Bに通知すればよい。ステータス応答部803が、出力バッファに空きがあることを示す情報を調停部に通知する通知部に相当する。
図9に、調停部40Bの構成を例示する。調停部40Bは、各バッファ制御部から要求信号REQ1〜REQ4を受信し、調停処理を実行する。調停部40Bは、共有入力バッファ20、21を含むそれぞれの入力バッファから送信元IDを取得する送信元ID取得部402と、送信元IDに対する宛先を保持する宛先テーブル部401と、各バッファ制御部からの要求信号REQ1〜REQ4を調停するLRU部403を有している。図9のように、要求信号REQ1からREQ4は、各入力バッファの先頭パケットとペアで調停部40Bに入力される。
送信元ID取得部402は、それぞれの入力バッファの先頭に保持されたパケットから送信元IDを取得する。送信元IDは、パケットの送信元のノードを識別する識別情報である。宛先テーブル部401は、例えば、ルックアップテーブルを含む。宛先テーブル部401は、送信元IDが入力されると、その送信元IDに対する宛先IDを決定する。
さらに、本実施例では、宛先テーブル部401は、宛先ノードの状態信号(ST1〜ST4)を入力される。そして、宛先テーブル部401は、その宛先ノードの状態信号が、出力バッファの空きを示す場合に、その宛先に対する要求許可信号を出力する。この要求許可信号は、各バッファ制御部から送信される要求信号REQ1〜REQ4をLRU部403に引き渡すか否かを制御する制御ゲートに入力される。そして、要求許可信号が、オンの場合、要求信号REQ1〜REQ4がLRU部403に引き渡される。
LRU403部は、入力された要求信号REQ1〜REQ4をLRUアルゴリズムにしたがって、調整し、スイッチ5−4を含む接続切替部5Bの接続を設定する。スイッチ部5−4は、LRU部403の設定にしたがって、入力バッファ(共有入力バッファ20,21、入力バッファ11C,11D)をそれぞれの宛先ノードに相当する出力バッファのポートに接続する。
なお、図9のように、バッファ制御部は、READ/WRITE制御信号によって、共有入力バッファ20、21、入力バッファ11C、11Dへのパケットの入力(書き込み)、および、出力(読み出し)を制御する。
図10は、宛先テーブル部401の詳細を例示する図である。図10では、要求信号の1つであるREQ1に対する回路が例示されている。
宛先テーブル部401は、送信元ID=>宛先ID変換テーブル411と、選択回路412とを含む。送信元ID=>宛先ID変換テーブル411は、例えば、ルックアップテーブルであり、送信元IDが入力されると、その送信元IDに対する宛先IDを返す。ここで、送信元IDは、送信元ノードを識別するIDである。図10では、要求信号REQ1に対する入力バッファの先頭パケットから取得された送信元IDが送信元ID=>宛先ID変換テーブル411に入力されている。また、宛先IDは、宛先ノードを識別するIDである。
本実施例では、送信元ノードと、宛先ノードがいずれかのパーティションに含まれる。送信元ノードと、宛先ノードとが、送受信のノード対であるということもできる。送信元ID=>宛先ID変換テーブル411は、各パーティション内の送信元ノードと宛先ノードとの関係を定義する。例えば、本実施例では、ノードAとノードDとが、パーティション#0に含まれる。また、ノードBとノードCとが、パーティション#1に含まれる。したがって、本情報処理装置1では、送信元ID=>宛先ID変換テーブル411の内容を変更することにより、それぞれのパーティションに含まれるノードを変更できる。
選択回路412は、宛先IDの番号に応じて、1〜4のいずれかの信号線をオンにする。選択回路412の構成は、図7の選択回路604と同様である。図10のように、この信号線は、各出力バッファからの状態信号とともにANDゲートに入力される。出力バッファからの状態信号は、それぞれの出力バッファで、クレジット数が空きバッファありを示すとき、オンとなる。したがって、図10のANDゲートは、それぞれの出力バッファ宛の要求信号があり、かつ、その出力バッファの空きがある場合に、オンとなる。図10では、ANDゲートの出力信号が、ORゲートによってまとめられている。したがって、共有入力バッファ20のバッファ制御部からの要求信号REQ1について、その宛先ノードに空きがある場合、要求信号REQ1に対する許可信号が出力される。図10では、省略しているが、要求信号REQ2−REQ4についても、同様の回路が設けられている。
図11に、本実施例のパケットの構成を例示する。図11のように、本実施例にて、ノード間で授受されるパケットは、送信元IDと、データとを有している。送信元IDは、例えば、送信元ノードのノード番号で指定すればよい。ただし、送信元ノードは、例えば、接続切替部5Bのそれぞれの入力ポートと出力ポートを識別するポート番号であってもよい。また、接続切替部5Bには、送信元ノードを識別するノード番号と、上記ポート番号との対応関係を定義する変換テーブルが設けられてもよい。そのような変換テーブルによって、例えば、送信元ノードを識別する情報としては、論理的なノード番号が使用され、物理的なポートを識別する情報として、ポート番号が使用できる。そして、ノード番号とポート番号とが、変換可能となる。したがって、パケットの送信元IDとしては、ノード番号とポート番号のいずれかを、例えば、設計上の要請にしたがって使い分ければよい。また、データは、固定長データでもよいし、可変長データでもよい。データが可変長データの場合、データの先頭部分にデータ長が格納されるようにすればよい。
図12に、システムサービスプロセッサ50からのエラー情報の構成を例示する。エラー情報は、エラーノードIDと、エラーコードとを含む。エラーノードIDは、エラーが発生したノードを示す番号である。エラーコードは、エラーの程度を示す数値である。例えば、閉塞エラーに対して、エラーコードの所定のビットが1となる。
図13は図6に示された情報処理装置1での一連のデータ処理を、データフロー図として例示する図である。この処理では、まず、前提として、エラー制御部60に、パーティション#0に属するノードDでの閉塞エラーの発生が報告されたとする。すると、エラー制御部60は、例えば、図7に示した回路により、パーティション#0に含まれるノードDへの出力バッファ12Dのクレジット制御部(2)80に、クレジット数最大化信号を送信する(矢印A1)。クレジット数最大化信号は、出力バッファ12Dが空きであることを示すクレジット数を設定する信号である。また、このとき、エラー制御部60は、出力バッファ12Dの入り口でパケットを廃棄する設定を行う。出力バッファ12Dには、パーティション#0のパケットが出力されるので、上記設定で、パーティション#0のパケットが廃棄されることになる。
クレジット数最大化信号を受信すると、出力バッファ12Dのクレジット制御部(2)80は、調停部40Bに、パーティション#0の出力バッファ12Dが受信可能を示す信号を送信する(矢印A2)。
このような状態で、接続切替部5Bに接続要求が発生した場合の処理が以下に例示される。ここでは、例えば、共有入力バッファ20の先頭にノードAからのパケットが保持され、第2番目にノードBからのパケットが保持されていると仮定される。共有入力バッファ20を制御するバッファ制御部(1)90から調停部40Bに、パーティション#0に属するパケットの要求信号(パケットリクエストともいう)が送信される(矢印A3)。
すると、調停部40Bは、共有入力バッファ20のバッファ制御部(1)90にアクノリッジ(ACK)を返す(矢印A4)。ACKを受信すると、共有入力バッファ20のバッ
ファ制御部(1)90は、入力バッファ20の空き領域数を示すクレジット数を1カウント増加させる。さらに、調停部40Bの指示にしたがって、接続切替部5Bが、共有入力バッファ20を出力バッファ12Dに接続する。その結果、共有入力バッファ20の先頭パケット(パーティション#0)が廃棄される(矢印A5)。
ファ制御部(1)90は、入力バッファ20の空き領域数を示すクレジット数を1カウント増加させる。さらに、調停部40Bの指示にしたがって、接続切替部5Bが、共有入力バッファ20を出力バッファ12Dに接続する。その結果、共有入力バッファ20の先頭パケット(パーティション#0)が廃棄される(矢印A5)。
パーティション#0に属するパケットが廃棄されることで、後続するパーティション#1のパケットが共有入力バッファ20の先頭に移動する。その結果、後続するパーティション#1のパケットがパーティション#1の宛先ノードの出力バッファに送信されることになる。
以上述べたように、本実施例の情報処理装置1によれば、接続切替部5A,5Bを通じて、複数のノードが接続されるシステムでの閉塞エラー発生の影響が、局所的に限定される。情報処理装置1では、複数ノードが、それぞれのパーティションに含まれ、パーティション間で共有されるバッファが用いられる。このような構成で、1のパーティションに属するノードにて、閉塞エラーが発生した場合に、そのノードへの出力バッファの空きを示すクレジット数を最大化することによって、調停部40Bに対しては、そのノード宛のパケットを保持するノードを調停処理の対象とする指示がなされる。
さらに、そのノードへの出力バッファの入り口にて、受信されるパケットの廃棄設定がなされる。その結果、共有バッファ上で、上記閉塞ノード宛のパケットは、そのまま調停部40Bの調停処理にしたがって、接続切替部5Bを通じて、宛先ノードに送信され、出力バッファの入り口で廃棄される。このような処理の結果、極めて簡易に、1つのパーティションの閉塞エラーの影響が他のパーティションに及ぶことを抑制できる。例えば、調停部40B、バッファ制御部(1)90、バッファ制御部(2)70の処理が変更されることなく、エラー制御部60およびクレジット制御部(2)80にて、上記処理が行われるようにすればよい。
<変形例>
上記実施例では、各ノードがパーティション#0,#1に属する場合の処理が説明された。しかし、上記情報処理装置1の処理は、各ノードがパーティションに含まれる場合に限定される訳ではない。すなわち、パーティションの定義は、上記処理で省略してもよい。つまり、パーティションの定義がないシステムでも同様の構成により、1のノードで発生した閉塞エラーの影響を他のノードに及ぼさないにようにできる。すなわち、複数ノードが接続切替部と複数ノード間の共有バッファとによって接続されたシステムでも、上記実施例と同様に、閉塞エラーの影響を低減できる。要するに、閉塞エラーが発生したノード宛のパケットが、調停部40Bによる調停処理の対象とされるように、制御すればよい。
<変形例>
上記実施例では、各ノードがパーティション#0,#1に属する場合の処理が説明された。しかし、上記情報処理装置1の処理は、各ノードがパーティションに含まれる場合に限定される訳ではない。すなわち、パーティションの定義は、上記処理で省略してもよい。つまり、パーティションの定義がないシステムでも同様の構成により、1のノードで発生した閉塞エラーの影響を他のノードに及ぼさないにようにできる。すなわち、複数ノードが接続切替部と複数ノード間の共有バッファとによって接続されたシステムでも、上記実施例と同様に、閉塞エラーの影響を低減できる。要するに、閉塞エラーが発生したノード宛のパケットが、調停部40Bによる調停処理の対象とされるように、制御すればよい。
そのためには、情報処理装置1が以下の構成を含むようにすればよい。
(1)情報処理装置1が、宛先ノードでの閉塞エラーを検出する手段を含む。
(2)情報処理装置1が、その閉塞エラーが発生した宛先ノードに送信されるパケットで、共有入力バッファ先頭のパケットを認識する手段を含む。例えば、ノードDで閉塞エラーが発生したときに、ノードD宛のパケットが、共有入力バッファの先頭にあるか、否かが判定できればよい。例えば、図11のように、パケット中に、送信元ノードを記述する代わりに、送信元ノードと、宛先ノードの両方を指定するようにしてもよい。このような構成によって、共有出力バッファの先頭パケットを読み出すことで、そのパケットの宛先が判定できる。また、例えば、パーティションの定義とは無関係に、図10の送信元ID=>宛先ID変換テーブル411が定義されてもよい。この場合の構成は、上記実施例1の構成で、パーティションの定義がないものとなり、処理手順は、実施例1と同様である。
(3)情報処理装置1が、(2)で認識されたパケットを調停部による調停処理の対象とする手段を含む。例えば、ノードDで閉塞エラーが発生したときに、ノードD宛のパケットを先頭に保持する共有入力バッファを調停処理の対象とすればよい。
(1)情報処理装置1が、宛先ノードでの閉塞エラーを検出する手段を含む。
(2)情報処理装置1が、その閉塞エラーが発生した宛先ノードに送信されるパケットで、共有入力バッファ先頭のパケットを認識する手段を含む。例えば、ノードDで閉塞エラーが発生したときに、ノードD宛のパケットが、共有入力バッファの先頭にあるか、否かが判定できればよい。例えば、図11のように、パケット中に、送信元ノードを記述する代わりに、送信元ノードと、宛先ノードの両方を指定するようにしてもよい。このような構成によって、共有出力バッファの先頭パケットを読み出すことで、そのパケットの宛先が判定できる。また、例えば、パーティションの定義とは無関係に、図10の送信元ID=>宛先ID変換テーブル411が定義されてもよい。この場合の構成は、上記実施例1の構成で、パーティションの定義がないものとなり、処理手順は、実施例1と同様である。
(3)情報処理装置1が、(2)で認識されたパケットを調停部による調停処理の対象とする手段を含む。例えば、ノードDで閉塞エラーが発生したときに、ノードD宛のパケットを先頭に保持する共有入力バッファを調停処理の対象とすればよい。
逆に、パーティションの数が、3つ以上あっても、上記実施例と同様に、1つのパーティションでの閉塞エラーの影響が他のパーティションに及ぶことを抑制できる。
上記実施例では、情報処理装置1は、2つの接続切替部5A,5Bと、これらの接続切替部5A,5B間の共有バッファを有していた。また、接続切替部5Aの入力側には、ノードA,Bが接続されていた。また、接続切替部5Bの出力側には、ノードC,Dが接続されていた。しかし、上記情報処理装置1の処理は、そのようなネットワーク構成に限定される訳ではない。例えば、複数のシステムボードを互いに接続するシステムにおいても、同様に、上記構成によって、1つのシステムボードでの閉塞エラーの影響が他のシステムボードに及ぶことを低減できる。接続切替部5A、5Bがクロスバでなく、いずれか一方または両方が、他のネットワーク、例えば、タイムスロットによって時分割して、それぞれのノードからアクセスされるバス型のネットワークであっても上記と同様の処理が実現される。
図14および図15により、実施例2に係る情報処理装置1を説明する。上記実施例1では、あるノードで閉塞エラーが発生した場合の対応が例示された。すなわち、エラー制御部60が、閉塞エラーが発生したノードに接続される出力バッファ12Dの空きを示すクレジット数を最大にするように、あるいは、バッファの空き状態を示すように、クレジット制御部(2)80に指示した。この指示によって、ノードDで閉塞エラーが発生した場合も、ノードDへのパケットを保持する出力バッファ12Dにおいて、空きがあるようにクレジット数が設定された。そして、調停部40Bに対して、出力バッファ12Dに空きがあることを示す情報が送信された。また、出力バッファ12Dの入り口でパケットを廃棄する設定がされた。このような設定の結果、ノードD宛のパーティション#0に属するパケットが、共有入力バッファ20からスイッチ5−4を通じて、出力バッファ12Dに転送され、廃棄された。その結果、共有入力バッファ20において、他のノードC、あるいは、他のパーティション#1に対するノードDでの閉塞エラーの影響が回避された。
そのような手順に代えて、エラーを検知したシステムサービスプロセッサ50が、調停部40Bに、ノードDでの閉塞エラーの発生を通知してもよい。このような処理によって、調停部40Bは、エラーが発生したノード宛のパケットを先頭に保持する入力バッファを調停の対象とすればよい。以上のような構成により、実施例1と同様、一のパーティションでの閉塞エラーの影響が他のパーティションに及ぶことが極力低減される。本実施例の他の構成および作用は、実施例1の場合と同様である。そこで、実施例1と同一の構成要素については、同一の符号を付してその説明が省略される。また、必要に応じて、図1から図13の図面が参照される。
図14は、ネットワーク部10B内部での接続処理を例示する図である。図14でも、図3、4に示した接続切替部5Bが、スイッチ5−1,5−2、5−3、および5−4に分離して示されている。すなわち、共有入力バッファ20、21、入力バッファ11C、11D内のパケットが、スイッチ5−1、5−2、5−3、および5−4に入力され、出力バッファ12C、12D、共有出力バッファ30、31を通じて、ノードC、ノードD、あるいは、接続切替部5Aに出力される。
本実施例では、1つのノード、例えば、パーティション#0のノードDでエラーが発生した場合、システムサービスプロセッサ50内のエラー監視回路は、調停部40Bに対して、パーティション#0(ノードD)で閉塞エラーが発生したことを通知する。システムサービスプロセッサ50が、閉塞エラーの発生を調停部へ通知するエラー通知部に相当する。また、システムサービスプロセッサ50が、情報処理装置における少なくともエラーの発生を監視する制御装置にも相当する。
閉塞エラーを受信した調停部40Bは、パーティション#0に属するパケットが共有入
力バッファ20,21にある限り、調停処理の対象とする。すなわち、共有入力バッファ20にあるノードAからのパケットは、調停処理に参加することになり、共有入力バッファ20から接続切替部5B、すなわち、スイッチ5−4に出力される。
力バッファ20,21にある限り、調停処理の対象とする。すなわち、共有入力バッファ20にあるノードAからのパケットは、調停処理に参加することになり、共有入力バッファ20から接続切替部5B、すなわち、スイッチ5−4に出力される。
本実施例でも、実施例1と同様に、出力バッファ12Dの入り口で通信を遮断する遮断部が設けられている。調停部40Bは、出力バッファ12Dの入り口で通信を遮断しておけばよい。ただし、システムサービスプロセッサ50が、ノードDの閉塞エラーを検出したときに、出力バッファ12Dの入り口の遮断部で通信を遮断するようにしてもよい。
そして、ノードAからのパケットが出力されることによって、共有入力バッファ20に保持されたパケットが共有入力バッファ20内を1つずつシフトする。その結果、共有入力バッファ20の先頭は、パーティション#1に属するノードBからのパケットとなる。したがって、次の調停処理によってパーティション#1で授受されるパケットが共有入力バッファ20から出力可能となる。このような手順により、パーティション#0で発生したエラーのパーティション#1への影響が低減される。
図15に、調停部40Bの詳細構成を例示する。調停部40Bは、調停回路44と、調停回路44への3つの入力部とを有する。3つの入力部は、入力バッファ状態管理部41、出力バッファ状態管理部42、およびエラー受信部43である。
入力バッファ状態管理部41は、入力バッファ(共有入力バッファ20,21,入力バッファ11C、11D)それぞれについて、パケットの有無、先頭パケットの送信元(入力ポート)を示す情報を有する。入力バッファ状態管理部41は、これらの状態を示す情報を保持する、それぞれの入力バッファに対応するそれぞれのレジスタ(ここでは、要求レジスタと呼ぶ)として例示される。
入力バッファ状態管理部41には宛先テーブル45が接続されている。宛先テーブル45は、送信元のノード番号に対応する宛先のノード番号を定義したテーブルである。例えば、本実施例では、ノードAとノードDとが、パーティション#0に含まれる。したがって、ノードAからのパケットの宛先として、宛先テーブル45には、ノードDのノード番号が定義されている。また、ノードBとノードCとが、パーティション#1に含まれる。したがって、ノードBからのパケットの宛先として、宛先テーブル45には、ノードCのノード番号が定義されている。なお、ここでは、ノード番号と呼ぶが、ノード番号は、接続切替部5Bが個々のノードを識別できる情報である。ノード番号に替えて、例えば、接続切替部5Bのそれぞれのポートを示すポート番号を用いてもよい。
出力バッファ状態管理部42は、宛先のノードに対応する出力バッファ(出力バッファ12C,12D、共有出力バッファ30,31)の空き状態を保持する。出力バッファ状態管理部42は、それぞれの出力バッファに対応するそれぞれレジスタとして例示される。
エラー受信部43は、システムサービスプロセッサ50からのエラー情報を受信し、ノードごとのエラー有無信号を生成する。例えば、システムサービスプロセッサ50は、宛先のノードを識別する情報と、エラーの程度を示す情報とをエラー受信部43に送信する。エラー受信部43は、ノードごとのエラーレジスタを有している。そして、エラー受信部43は、システムサービスプロセッサ50からのエラー情報が、閉塞エラーである場合、その閉塞エラーが発生したノードに該当するエラーレジスタをオンにする。ノードごとのエラーレジスタの値は、調停回路44に入力される。
調停回路44は、入力バッファ状態管理部41のそれぞれの要求レジスタの宛先が、競合する場合に、例えば、LRUにしたがって、入力バッファを選択する。また、調停回路44は、入力バッファ状態管理部41のそれぞれの要求レジスタの宛先が、競合しない場合には、要求レジスタに要求のある入力バッファ(パケットを保持する入力バッファ)をすべて選択すればよい。調停回路44は、選択した入力バッファとその宛先の組み合わせを接続切替部5Bに入力する。
接続切替部5Bは、例えば、図5と同様、スイッチ5−1から5−4を含む。接続切替部5Bは、調停回路44からの選択信号にしたがって、共有入力バッファ20、21を含む入力バッファのいずれかを選択し、出力バッファ12C、12D等を通じて、宛先のノードC、D等に接続する。
本実施例の情報処理装置1では、いずれかのノードのエラーレジスタがオンになっていると、そのノード宛のパケットを有する入力バッファを調停の対象とする。したがって、本実施例の情報処理装置1では、閉塞エラーのあるノード宛の入力バッファが調停に参加し、例えば、LRUによる調停の対象とされる。
接続切替部5Bは、調停回路44からの要求にしたがって、送信元ノードからのパケットを保持する入力バッファと、宛先ノードへの出力バッファとを接続するネットワークを形成する。
以上述べたように、本実施例の情報処理装置1によれば、いずれかのパケットの宛先にて閉塞エラーが発生した場合、その宛先へ送信されるパケットを保持する共有入力バッファが、調停部40Bの調停処理の対象とされる。したがって、閉塞エラーが発生しているノード宛のパケットが例えば、LRUアルゴリズム等の手順にしたがって、接続切替部5Bによる転送の対象となる。この場合に、転送先では、閉塞エラーが発生しているため、転送されたパケットは、通常廃棄されることになる。しかしながら、このような構成は、図6に例示したように、共有入力バッファに、閉塞エラーが発生しているパーティション#0(送信元ノードA)のパケットと、閉塞エラーが発生していないパーティション#1(送信元ノードB)のパケットとが混在する場合にも、極めて有効である。すなわち、パーティション#0での閉塞エラーの影響がパーティション#1に及ぶことが極力低減される。
<その他の変形例>
上記実施例1および実施例2の構成要素は、いずれも、ハードウェア回路、例えば、トランジスタを含む、AND、OR、NOT等の論理ゲートを含む。ただし、ハードウェアの回路に替えて、DSP(Digital Signal Processor)、CPU(Central Processing Unit)等が含まれるようにしてもよい。DSP、CPU等がメモリ上に実行可能に展開されたコンピュータプログラムを実行することによって、例えば、図6あるいは図15の機能が実現されるようにしてもよい。また、図13に示した手順の少なくとも一部が、DSP、CPU等によって実行されてもよい。
上記実施例1および実施例2の構成要素は、いずれも、ハードウェア回路、例えば、トランジスタを含む、AND、OR、NOT等の論理ゲートを含む。ただし、ハードウェアの回路に替えて、DSP(Digital Signal Processor)、CPU(Central Processing Unit)等が含まれるようにしてもよい。DSP、CPU等がメモリ上に実行可能に展開されたコンピュータプログラムを実行することによって、例えば、図6あるいは図15の機能が実現されるようにしてもよい。また、図13に示した手順の少なくとも一部が、DSP、CPU等によって実行されてもよい。
上記実施例1および実施例2では、調停処理については、主として、調停部40Bでの処理が例示された。一方、調停部40Aの構成および作用については説明が省略された。しかし、調停部40Aの構成および作用は、調停部40Bと同様である。
上記実施例1および実施例2では、調停部40Bは、いずれもLRUアルゴリズムによって、入力バッファを決定した。しかし、本情報処理装置1は、そのような構成に限定される訳ではない。例えば、調停部40A、40Bは、単純なラウンドロビンにしたがって、入力バッファを決定してもよい。また、例えば、入力バッファに保持されたパケットの宛先の出力バッファの空き容量が多いものを優先して、入力バッファを決定してもよい。
上記実施例1および2では、図3に例示されるように、情報処理装置1は、CPUを含むシステムボードと、I/Oボードとを、接続切替部5A、5Bで接続する。したがって、情報処理装置1としては、典型的には、複数のパーティションを有するコンピュータが例示される。しかし、情報処理装置1は、そのような例に限定される訳ではない。要するに、複数ノードに共有される共有入力バッファと、出力バッファと、それらの共有入力バッファおよび出力バッファを接続するネットワークを含むシステム一般に適用できる。例えば、上記構成は、複数のコンピュータがクロスバで接続されるコンピュータシステムに適用できる。
Claims (3)
- 複数の送信元ノードから宛先ノードに送信されるデータを保持する共有入力バッファを含む、複数の入力バッファと、
宛先ノードに送信されたデータが前記宛先ノードに出力されるまでの間、前記宛先ノードごとに前記データを保持する出力バッファと、
前記入力バッファと前記出力バッファとの間を切替可能に接続する接続切替部と、
前記複数の入力バッファの中から、前記接続切替部によって前記出力バッファに接続される入力バッファを決定する調停部と、
前記宛先ノードでの前記閉塞エラーの発生を前記調停部へ通知するエラー通知部と、
を備え、
前記調停部は、前記閉塞エラーが発生した宛先ノード宛のデータを保持する入力バッファを含む入力バッファの中から、前記出力バッファに接続する入力バッファを決定し、
前記接続切替部は、前記決定された入力バッファを、該入力バッファに保持されているデータの宛先ノードの出力バッファに接続する情報処理装置。 - 前記閉塞エラーの発生時に、その閉塞エラーが発生した宛先ノードの出力バッファを制御するエラー制御部をさらに備え、
前記調停部は、空きのある出力バッファを介して前記接続切替部に接続される宛先ノード宛のデータを保持する入力バッファを含む入力バッファの中から、前記出力バッファに接続する入力バッファを決定し、
前記出力バッファは、
前記エラー制御部からの制御にしたがって、該出力バッファに空きがあることを示す情報を前記調停部に通知する通知部と、
前記エラー制御からの制御にしたがって、該出力バッファへの新たなデータの格納を停止する遮断部と、を有する請求項1に記載の情報処理装置。 - 複数の送信元ノード、
前記送信元ノードからデータを受信する複数の宛先ノード、および
前記複数の送信元ノードからそれぞれの宛先ノードに送信されるデータを保持する共有入力バッファを含む、複数の入力バッファと、
前記宛先ノードに送信されたデータが前記宛先ノードに出力されるまでの間、前記宛先ノードごとに前記データを保持する出力バッファと、
前記入力バッファと前記出力バッファとの間を切替可能に接続する接続切替部と、
前記複数の入力バッファの中から、前記接続切替部によって前記出力バッファに接続される入力バッファを決定する調停部と、
前記宛先ノードでの前記閉塞エラーの発生を前記調停部へ通知するエラー通知部と、
を含む情報処理装置、を備え、
前記調停部は、前記閉塞エラーが発生した宛先ノード宛のデータを保持する入力バッファを含む入力バッファの中から、前記出力バッファに接続する入力バッファを決定し、
前記接続切替部は、前記決定された入力バッファを、該入力バッファに保持されているデータの宛先ノードの出力バッファに接続する情報処理システム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2009/054469 WO2010103610A1 (ja) | 2009-03-09 | 2009-03-09 | 情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2010103610A1 JPWO2010103610A1 (ja) | 2012-09-10 |
JP5287975B2 true JP5287975B2 (ja) | 2013-09-11 |
Family
ID=42727919
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011503587A Expired - Fee Related JP5287975B2 (ja) | 2009-03-09 | 2009-03-09 | 情報処理装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20120054395A1 (ja) |
EP (1) | EP2407890A1 (ja) |
JP (1) | JP5287975B2 (ja) |
WO (1) | WO2010103610A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102265454B1 (ko) * | 2014-04-11 | 2021-06-15 | 삼성전자 주식회사 | 이동 통신 네트워크에서 통신 품질 개선 방법 및 장치 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63124649A (ja) * | 1986-11-14 | 1988-05-28 | Hitachi Ltd | パケツト交換方式 |
JPH06231101A (ja) * | 1993-01-29 | 1994-08-19 | Natl Aerospace Lab | 受信タイムアウト検出機構 |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5276681A (en) * | 1992-06-25 | 1994-01-04 | Starlight Networks | Process for fair and prioritized access to limited output buffers in a multi-port switch |
MX9306994A (es) * | 1992-12-15 | 1994-06-30 | Ericsson Telefon Ab L M | Sistema de control de flujo para interruptores de paquete. |
JPH07152697A (ja) | 1993-11-30 | 1995-06-16 | Hitachi Ltd | 疎結合計算機システム |
JPH09153020A (ja) | 1995-11-29 | 1997-06-10 | Hitachi Ltd | 疎結合計算機システム |
US5850389A (en) * | 1996-09-16 | 1998-12-15 | Hughes Electronics Corporation | High speed circular data bus system |
US6018782A (en) * | 1997-07-14 | 2000-01-25 | Advanced Micro Devices, Inc. | Flexible buffering scheme for inter-module on-chip communications |
US6285679B1 (en) * | 1997-08-22 | 2001-09-04 | Avici Systems, Inc. | Methods and apparatus for event-driven routing |
US6317804B1 (en) * | 1998-11-30 | 2001-11-13 | Philips Semiconductors Inc. | Concurrent serial interconnect for integrating functional blocks in an integrated circuit device |
CN1196065C (zh) * | 1999-02-23 | 2005-04-06 | 株式会社日立制作所 | 集成电路和使用它的信息处理装置 |
US6633946B1 (en) * | 1999-09-28 | 2003-10-14 | Sun Microsystems, Inc. | Flexible switch-based I/O system interconnect |
US7203171B1 (en) * | 1999-12-20 | 2007-04-10 | Cisco Technology, Inc. | Ingress discard in output buffered switching devices |
JP3368881B2 (ja) * | 2000-01-07 | 2003-01-20 | 日本電気株式会社 | 入力バッファ型パケット交換機 |
US7042883B2 (en) * | 2001-01-03 | 2006-05-09 | Juniper Networks, Inc. | Pipeline scheduler with fairness and minimum bandwidth guarantee |
JP4489308B2 (ja) * | 2001-01-05 | 2010-06-23 | 富士通株式会社 | パケットスイッチ |
DE60214341T2 (de) * | 2001-02-28 | 2007-09-13 | International Business Machines Corp. | Vermittlungsanordnung und -verfahren mit getrennten ausgangspuffern |
US7424013B1 (en) * | 2001-12-20 | 2008-09-09 | Applied Micro Circuits Corporation | System and method for granting arbitrated bids in the switching of information |
US7020131B1 (en) * | 2001-12-24 | 2006-03-28 | Applied Micro Circuits Corp. | System and method for hierarchical switching |
US7313089B2 (en) * | 2001-12-21 | 2007-12-25 | Agere Systems Inc. | Method and apparatus for switching between active and standby switch fabrics with no loss of data |
US7209440B1 (en) * | 2002-05-07 | 2007-04-24 | Marvell International Ltd. | Method and apparatus for preventing blocking in a quality of service switch |
US7421612B1 (en) * | 2002-10-17 | 2008-09-02 | Cisco Technology, Inc. | Method and system for optimized switchover of redundant forwarding engines |
KR100488478B1 (ko) * | 2002-10-31 | 2005-05-11 | 서승우 | 다중 입력/출력 버퍼형 교환기 |
US7349416B2 (en) * | 2002-11-26 | 2008-03-25 | Cisco Technology, Inc. | Apparatus and method for distributing buffer status information in a switching fabric |
US20060190641A1 (en) * | 2003-05-16 | 2006-08-24 | Stephen Routliffe | Buffer management in packet switched fabric devices |
JP2005267502A (ja) * | 2004-03-22 | 2005-09-29 | Hitachi Ltd | データ転送用スイッチ |
JP4547198B2 (ja) * | 2004-06-30 | 2010-09-22 | 富士通株式会社 | 演算装置、演算装置の制御方法、プログラム及びコンピュータ読取り可能記録媒体 |
JP4473700B2 (ja) * | 2004-11-02 | 2010-06-02 | 富士通株式会社 | パケット伝送装置およびパケット伝送方法 |
JP4131263B2 (ja) | 2004-12-22 | 2008-08-13 | 日本電気株式会社 | マルチノードシステム、ノード装置、ノード間クロスバスイッチ及び障害処理方法 |
US7730238B1 (en) * | 2005-10-07 | 2010-06-01 | Agere System Inc. | Buffer management method and system with two thresholds |
US7424567B2 (en) * | 2005-11-16 | 2008-09-09 | Sun Microsystems, Inc. | Method, system, and apparatus for a dynamic retry buffer that holds a packet for transmission |
-
2009
- 2009-03-09 EP EP09841441A patent/EP2407890A1/en not_active Withdrawn
- 2009-03-09 WO PCT/JP2009/054469 patent/WO2010103610A1/ja active Application Filing
- 2009-03-09 JP JP2011503587A patent/JP5287975B2/ja not_active Expired - Fee Related
-
2011
- 2011-09-08 US US13/227,759 patent/US20120054395A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63124649A (ja) * | 1986-11-14 | 1988-05-28 | Hitachi Ltd | パケツト交換方式 |
JPH06231101A (ja) * | 1993-01-29 | 1994-08-19 | Natl Aerospace Lab | 受信タイムアウト検出機構 |
Also Published As
Publication number | Publication date |
---|---|
WO2010103610A1 (ja) | 2010-09-16 |
US20120054395A1 (en) | 2012-03-01 |
EP2407890A1 (en) | 2012-01-18 |
JPWO2010103610A1 (ja) | 2012-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8040799B2 (en) | Network on chip with minimum guaranteed bandwidth for virtual communications channels | |
US8214845B2 (en) | Context switching in a network on chip by thread saving and restoring pointers to memory arrays containing valid message data | |
US8850085B2 (en) | Bandwidth aware request throttling | |
US6715055B1 (en) | Apparatus and method for allocating buffer space | |
US10007629B2 (en) | Inter-processor bus link and switch chip failure recovery | |
US20040156376A1 (en) | Deficit round-robin scheduling in a high-speed switching environment | |
JP4992296B2 (ja) | 転送処理装置 | |
JP2010218364A (ja) | 情報処理システム、通信制御装置および方法 | |
US8583845B2 (en) | Multi-processor system and controlling method thereof | |
JP4833518B2 (ja) | 高速交換環境でマルチキャストするシステム、方法及び論理 | |
JP2009238001A (ja) | コンピュータシステム | |
US9185026B2 (en) | Tagging and synchronization for fairness in NOC interconnects | |
KR100905802B1 (ko) | 컴퓨터 시스템의 입력/출력 노드에서 태깅 및 중재 매카니즘 | |
US6681274B2 (en) | Virtual channel buffer bypass for an I/O node of a computer system | |
US8140728B1 (en) | Data packet arbitration system | |
US20140173163A1 (en) | Information processing apparatus, control method of information processing apparatus and apparatus | |
JP5287975B2 (ja) | 情報処理装置 | |
WO2002065709A1 (fr) | Dispositif de commutation de reseau | |
US6839784B1 (en) | Control unit of an I/O node for a computer system including a plurality of scheduler units each including a plurality of buffers each corresponding to a respective virtual channel | |
US6820151B2 (en) | Starvation avoidance mechanism for an I/O node of a computer system | |
US9590924B1 (en) | Network device scheduler and methods thereof | |
KR100798302B1 (ko) | 버스 및 네트워크의 복합 통신 수단을 갖는 시스템 온칩 | |
JP2009251652A (ja) | マルチコアシステム | |
JPH04326454A (ja) | クロスバネットワーク | |
JP6535516B2 (ja) | マルチ・プログラマブルデバイス・システムとその制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130108 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130311 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130507 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130520 |
|
LAPS | Cancellation because of no payment of annual fees |