JP2004527176A - 最適化されたスケーラブル・ネットワーク・スイッチ - Google Patents

最適化されたスケーラブル・ネットワーク・スイッチ Download PDF

Info

Publication number
JP2004527176A
JP2004527176A JP2002582380A JP2002582380A JP2004527176A JP 2004527176 A JP2004527176 A JP 2004527176A JP 2002582380 A JP2002582380 A JP 2002582380A JP 2002582380 A JP2002582380 A JP 2002582380A JP 2004527176 A JP2004527176 A JP 2004527176A
Authority
JP
Japan
Prior art keywords
packet
priority
packets
arbitration
input
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.)
Granted
Application number
JP2002582380A
Other languages
English (en)
Other versions
JP3871327B2 (ja
Inventor
ブルムリッチ、マサイアス、エー
チェン、トン
コテウス、ポール、ダブリュー
ガラ、アラン、ジー
ジャンパパ、マーク、イー
ハイデルベルガー、フィリップ
スタインマクサー−バロー、バークハード、ディー
タッケン、トッド、イー
ヴラナス、パヴロス、エム
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2004527176A publication Critical patent/JP2004527176A/ja
Application granted granted Critical
Publication of JP3871327B2 publication Critical patent/JP3871327B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F04POSITIVE - DISPLACEMENT MACHINES FOR LIQUIDS; PUMPS FOR LIQUIDS OR ELASTIC FLUIDS
    • F04DNON-POSITIVE-DISPLACEMENT PUMPS
    • F04D25/00Pumping installations or systems
    • F04D25/16Combinations of two or more pumps ; Producing two or more separate gas flows
    • F04D25/166Combinations of two or more pumps ; Producing two or more separate gas flows using fans
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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
    • HELECTRICITY
    • H05ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
    • H05KPRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
    • H05K7/00Constructional details common to different types of electric apparatus
    • H05K7/20Modifications to facilitate cooling, ventilating, or heating
    • H05K7/20709Modifications to facilitate cooling, ventilating, or heating for server racks or cabinets; for data centers, e.g. 19-inch computer racks
    • H05K7/20836Thermal management, e.g. server temperature control
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F04POSITIVE - DISPLACEMENT MACHINES FOR LIQUIDS; PUMPS FOR LIQUIDS OR ELASTIC FLUIDS
    • F04DNON-POSITIVE-DISPLACEMENT PUMPS
    • F04D27/00Control, e.g. regulation, of pumps, pumping installations or pumping systems specially adapted for elastic fluids
    • F04D27/004Control, e.g. regulation, of pumps, pumping installations or pumping systems specially adapted for elastic fluids by varying driving speed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17381Two dimensional, e.g. mesh, torus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17387Three dimensional, e.g. hypercubes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/141Discrete Fourier transforms
    • G06F17/142Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/003Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
    • G09G5/006Details of the interface to the display terminal
    • G09G5/008Clock recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/02Speed or phase control by the received code signals, the signals containing no special synchronisation information
    • H04L7/033Speed or phase control by the received code signals, the signals containing no special synchronisation information using the transitions of the received signal to control the phase of the synchronising-signal-generating means, e.g. using a phase-locked loop
    • H04L7/0337Selecting between two or more discretely delayed clocks or selecting between two or more discretely delayed received code signals
    • H04L7/0338Selecting between two or more discretely delayed clocks or selecting between two or more discretely delayed received code signals the correction of the phase error being performed by a feed forward loop
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F24HEATING; RANGES; VENTILATING
    • F24FAIR-CONDITIONING; AIR-HUMIDIFICATION; VENTILATION; USE OF AIR CURRENTS FOR SCREENING
    • F24F11/00Control or safety arrangements
    • F24F11/70Control systems characterised by their outputs; Constructional details thereof
    • F24F11/72Control systems characterised by their outputs; Constructional details thereof for controlling the supply of treated air, e.g. its pressure
    • F24F11/74Control systems characterised by their outputs; Constructional details thereof for controlling the supply of treated air, e.g. its pressure for controlling air flow rate or air velocity
    • F24F11/77Control systems characterised by their outputs; Constructional details thereof for controlling the supply of treated air, e.g. its pressure for controlling air flow rate or air velocity by controlling the speed of ventilators
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02BCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO BUILDINGS, e.g. HOUSING, HOUSE APPLIANCES OR RELATED END-USER APPLICATIONS
    • Y02B30/00Energy efficient heating, ventilation or air conditioning [HVAC]
    • Y02B30/70Efficient control or regulation technologies, e.g. for control of refrigerant flow, motor or heating

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mechanical Engineering (AREA)
  • Discrete Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • Thermal Sciences (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)

Abstract

【課題】各ノードがコンピューティング・デバイスを含む、m個の複数次元で構成された複数のノードを有する大量並列コンピューティング・システムにおいて、下流ノードから導出される情報を含む2m個の複数のコンパクト・ビット・ベクトルの少なくとも1つを生成することを含む、パケットをその宛先ノードに向けて経路指定する方法を提供すること。
【解決手段】リンク状況情報および下流バッファの満杯度などの下流情報がコンパクト・ベクトルに保管される複数レベル調停処理を使用して、パケット伝送の好ましい方向および仮想チャネルを判定する。好ましい方向の範囲が、エンコードされ、仮想チャネルが、複数のコンパクト・ビット・ベクトルを検査することによって選択される。この動的指定方法により経路指定テーブルの必要がなくなることによって、スイッチのスケーラビリティが強化される。
【選択図】図1

Description

【技術分野】
【0001】
本発明は、広義には、分散メモリ・メッセージ・パッシング並列コンピュータでデータ・トラフィックを交換する方法に関する。具体的には、本発明は、大規模並列システム内の相互接続ネットワークを介してエラーフリー(エラーのない)メッセージを効率的に伝送する方法に関する。
【背景技術】
【0002】
大規模並列コンピュータ・データ・ネットワーキング・システムの周知のトポロジが、3Dトーラスである。一般に、3Dトーラスは、すべてのレベルでリング・ネットワークを有するコンピュータ・ノードの立方体(cubic)グリッドである。たとえば、米国仮出願番号60/271,124に記載のシステムのようなスーパーコンピューティング大規模並列システムは、最小パス経路すなわち数百個または数千個のノードの間での通信の最短パスを提供する3Dトーラス・トポロジを使用する。大規模並列システムでのこのトポロジに関する問題の1つが、特に、イーサネット(R)スイッチまたは非同期転送モード(ATM)スイッチが使用された場合の相互接続ネットワークを介するメッセージの効率的な伝送である。
【0003】
具体的には、たとえば、イーサネット(R)スイッチまたはATMスイッチは、一般に、パケットの短待ち時間、高スループット、エラーフリーの伝送を提供するものではない。なぜなら、通常は、これらのスイッチは、パケットを保持するための十分なバッファ空間すなわち入出力処理用の保持領域がない場合に、パケットを失ってしまうからである。さらに、交換網を数万ノードのサイズまでスケーラブルにしなければならない場合に、コンテンションすなわち、複数の要求が、通信リンクなどの共用できないリソースに関して同時に行われるときに生じる衝突の問題を克服しなければならない。
【0004】
通常、コンテンションの問題は、ネットワーク上のどの伝送装置がパケット衝突検出の後にパケットを送信できるかを調停する、ある種の調停アルゴリズムを使用することによって対処されてきた。残念ながら、関連技術は、ウルトラ・スケーラブルであり、したがって大規模並列システムに適する衝突検出/調停方法の必要に対処はされていない。さらに、現在の経路指定技法は、通常はルータが保守を必要とするテーブルを有するので、大規模並列システムへのスケール・アップに適していない。テーブル保守のオーバーヘッドは、ノードの数が数万個に達する時に過度な重荷になる。
【0005】
上で述べたように、3次元(3D)トーラス・トポロジが既知である。たとえば、Cray T3Eでは、この3Dトーラス・トポロジが使用される。しかし、Cray社は、各スイッチ要素内に保管される経路指定テーブルを使用し、これは、数万個のノードによくスケーリングされない手法である。他の既知の技術は、「バブル」エスケープ仮想チャネル(VC)(Puente et al.による「Adaptive Bubble Router: A Design to Balance Latencyand Throughput in Networks for Parallel Computers」、In Proceedings of theInternational Conference on Parallel Processing、ICPP '99、1999年9月)であるが、これは、経路指定テーブルを必要としない完全に動的な経路指定を提供する。
【0006】
もう1つの既知の技法が、SP2コンピュータおよびCray社のコンピュータで使用されているような、複数の仮想チャネルを使用して、「ヘッドオブライン(head−of−line)」ブロッキングを減らすものである。2ステージ調停手法の使用が、MIT Reliable Router(William J. Dally、Larry R. Dennison、David Harris、Kinhong Kan、andThucydides Xanthoppulos、「Architecture and Implementation of the Reliable Router」、InProceedings of HOT Interconnects II、122〜133ページ、1994年8月)によって教示されている。
【0007】
もう1つの関連技術分野の技術では、スループットおよび待ち時間の最適化の試みでバーチャル・カットスルー経路指定が使用される。P. Kermani、L. Kleinrockによる「Virtual Cut-Through: A New ComputerCommunication Switching Technique」(Computer Networks、Vol. 3、267〜286ページ、1979年)を参照されたい。
【0008】
しかし、関連技術分野の文献では、選択されたパケット移動の方向および仮想チャネルに沿った、特にスイッチが数万ノードを処理するようにスケール・アップされる場合のパケット・コンテンションおよびキューイング遅延の問題が適切に解決されていない。
【0009】
関連する開示、米国仮出願番号60/271,124、表題「A Novel Massively Parallel Supercomputer」で、マルチコンピュータの各ノード内の2つの電子プロセッサを有する半導体デバイスが記載されている。スーパーコンピュータ内に、複数の高速内部ネットワークと、イーサネット(R)を使用する外部ネットワークがある。これらのネットワークは、64000個を超えるノードをサービスすることが期待されている。
【0010】
高速エラーフリー動作に関する、数万個のノードまでネットワーク・スイッチをスケーリングすることを試みる既知の従来技術はなく、エラーフリーの「短待ち時間高帯域幅(スループット)データ通信を使用可能にして、大規模並列システムのメッセージ・パッシング能力を強化する、スケーラブルな調停の方法の必要が残されている。
【特許文献1】
米国仮出願番号60/271,124
【特許文献2】
国際出願番号PCT/US02/05566
【非特許文献1】
Puente et al.、「Adaptive BubbleRouter: A Design to Balance Latency and Throughput in Networks for ParallelComputers」、In Proceedings of the International Conference on ParallelProcessing、ICPP '99、1999年9月
【非特許文献2】
William J. Dally、Larry R. Dennison、DavidHarris、Kinhong Kan、and Thucydides Xanthoppulos、「Architecture and Implementationof the Reliable Router」、In Proceedings of HOT Interconnects II、122〜133ページ、1994年8月
【非特許文献3】
P. Kermani、L. Kleinrock、「VirtualCut-Through: A New Computer Communication Switching Technique」、ComputerNetworks、Vol. 3、267〜286ページ、1979年
【発明の開示】
【発明が解決しようとする課題】
【0011】
したがって、本発明の目的は、大規模並列システムでの待ち時間を減らし、スループットを高め、処理能力を高める、パケット伝送装置の間で調停をする方法を提供することである。
【0012】
本発明のもう1つの目的は、大規模並列システムでパケットの消失(パケット・ロス)を防ぐ方法を提供することである。
【0013】
本発明のもう1つの目的は、使用される通信チャネルのユーザのデッドロックを避けるデータ通信の方法を提供することである。
【0014】
本発明のもう1つの目的は、正確なパケット受信の確率を高める方法を提供することである。
【0015】
本発明のもう1つの目的は、スケーラビリティを促進するために、プロセッサと同一のチップ上のスイッチ技術を提供することである。
【0016】
本発明のもう1つの目的は、ルータ内の経路指定テーブルを使用しないメッセージ経路指定の方法を提供することである。
【課題を解決するための手段】
【0017】
上記および他の特徴および長所は、本発明で、大規模並列システムでの待ち時間を減少させ、正確なパケットの受信を増大させる、マルチレベル調停方法を提供することによって得ることができる。
【0018】
具体的には、パケット経路指定方法であって、2m個の方向(mはネットワークの次元数を表す整数)の少なくとも1つから、対応する数の入力リンクの少なくとも1つを介して、複数の仮想チャネルFIFOバッファの対応する少なくとも1つへパケットを入力することによってパケットをその宛先に経路指定し、下流ノードから導出された情報を含む2m個の複数の出力ビット・ベクトルの少なくとも1つを生成し、調停の判断が出力ステイタス・ベクトルに含まれるリンクおよび下流バッファ満杯度情報に基づく、一般調停ポリシを確立し、一般調停ポリシに従って、複数の転送パスを介して対応する出力リンクにパケットを出力し、パケットがその宛先ノードに対して進められる方法が提供される。
【0019】
本発明を、これから、本明細書に添付する図面に関連して詳細に説明する。添付図面では、類似する符号が、類似し対応する要素を示すのに使用されることに留意されたい。
【発明を実施するための最良の形態】
【0020】
本発明は、大規模並列コンピューティング・システムの3次元トーラス・ネットワーク内のノードの間のネットワーク通信、すなわちメッセージ・パッシングに適用される。
【0021】
最初に、「FIFO」(先入れ先出し)への言及が、本明細書では、用語「FIFOバッファ」と交換可能に使用されることに留意されたい。ビット設定およびビット・カウント・シーケンスへの言及は、例示的にすぎず、パラメータまたは測定値の正の増加を示す他のビット設定(たとえば、負論理)と他のカウント・シーケンス(たとえば負カウント・シーケンス)は、本発明の範囲内である。
【0022】
本発明の好適な実施形態によれば、3次元トーラス・ネットワークなどのプロセッサのネットワーク内の個々のノードを示す図1に示されたスイッチ・アーキテクチャを、ネットワーク内のすべてのそのようなノードについて実施することができる。さらに、図6を参照すると、本発明の好適な実施形態で、スイッチ610をプロセッサ615と同一のチップ605に集積することもできる。このネットワークは、可変サイズのデータのパケットを伝送し、パケットは、好適な実施形態では、1つから8つまでの、「チャンク」と称される32バイト・サイズの単位とすることができる。各パケットに、図5に示されているように、記述パケット・ヘッダ510が含まれる。ローカル・ノード105から発する新しいすなわちローカル・パケット104は、プロセッサ注入FIFO(processor injection FIFO)130を介してネットワークに入り、宛先に到達したときに、プロセッサ受信FIFO(processor reception FIFO)140からそれらを除去することによって、ネットワークから除去される。本発明の好適な実施形態では、110、117のような各入力ユニット専用の少なくとも1つのプロセッサ受信FIFO140がある。さらに、少なくとも1つのプロセッサ受信FIFO140を、高優先順位トラフィック専用にすることができる。
【0023】
各ノードには、トーラスにおける隣接ノードごとに1つの入力リンクが含まれる。図1に、たとえば、x+入力リンク101およびz−入力リンク102を示す。残りの入力リンク、x−、y+、y−、およびz+(図示せず)は、グローバル・パケットすなわち、本発明の3Dトーラス・システムなどのシステム内で入力リンクの1つから到着するパケットが使用可能な残りの移動方向の例を表している。各入力リンクに対応するのが、x+入力ユニット110に含まれるx+入力調停機構116などのローカル入力調停機構である。x+入力ユニット110およびz−入力ユニット117は、例示的な構造として示されている。
【0024】
各ノードには、x+方向へのリンク161およびz−方向へのリンク162などの出力リンクも含まれる。本発明の好適な態様で実施されるように、トーラス内の隣接ノードごとに少なくとも1つの出力リンクが存在する。出力リンクは、x+出力ユニット151およびz−出力ユニット152などの出力ユニットによって供給される。各出力ユニット内に、z−出力調停機構155などの出力調停機構がある。
【0025】
出力ユニット151、152には、下記のサブユニットが含まれることが好ましい。
a)何個のチャンクすなわちトークンが、下流ノードでの保管に使用可能であるかをカウントするトークン・ユニット・カウンタ153。方向(direction)とVCのそれぞれについて1つのトークン・ユニット・カウンタがあることが好ましい。パケットが調停に勝った(win)ときに、トークン・ユニットによって、お互いが調整され、その結果、トークンが、上流ノードの適当なVCに返される。これは、特殊な短いトークン・メッセージを送ることによって達成される。
b)図2に示された出力ステイタス・ビットを生成する出力ステイタス・ビット・ベクトル・ジェネレータ154。
c)すべての可能な要求元パケットのうちで、どのパケットが対応するリンクの制御を勝ち取るかを選択する出力調停機構155。
【0026】
入力ユニット110などの入力ユニットに、カットスルーすなわちバイパス・パス120と、VCごとに1つの、ブロックされるパケットすなわちバイパス・パス120を介して移動することができないパケットを保管する待機バッファすなわちFIFOが含まれる。各FIFOは、ある最大数のチャンクを保持することができる。動的VC111および112などの、1つまたは複数の「動的」VCが実施される。デッドロックを防ぐための「エスケープ」VC113の実施および高優先順位VC114の実施は、Puente et al.による「Adaptive Bubble Router: A Design to Balance Latencyand Throughput in Networks for Parallel Computers」(In Proceedings of theInternational Conference on Parallel Processing、ICPP '99、1999年9月)に記載の、既知の技法である。バイパス・パス120の実施によって、パケットを、バッファに保管せずにノードを介して経路指定できるようになる。しかし、バイパス・パスのパケットが、なんらかの理由でブロックされる場合に、そのパケットは、適当なFIFOバッファ(すなわち、パケットに関連するVCに対応するバッファ)に転送される。優先順位パケットが互いに追い越し合うのを避けるために、バイパス・パス内の優先順位パケットは、対応する優先順位のVC FIFOが空でない場合に、ブロックされるものとみなされる。同様に、動的に経路指定可能でない通常優先順位のパケットは、対応するエスケープVC FIFOが空でない場合に、ブロックされるとみなされる。調停される準備ができる前に、パケット・ヘッダだけがFIFOに受け取られることが必要である(パケットがFIFOのヘッド(head)にあると仮定する)。入力調停機構116などの入力調停機構に、入力ステイタス・ビット・ベクトル・ジェネレータ115が含まれ、入力ステイタス・ビット・ベクトル・ジェネレータ115は、図3に示されたステイタス・ビットを生成するが、これは後で説明する。
【0027】
入力調停機構116は、入力調停機構内のどのパケットが優先順位を得るか、どの出力方向およびVCを要求するか(または、パケットがその宛先に到着する場合にはどのプロセッサ受信FIFOを要求するか)を選択することによって、動的な経路指定を提供する。本発明の好適な態様によれば、パケットが入力および出力の調停に勝つすなわち、出力ユニットまたはプロセッサ受信FIFOへの転送の優先順位を得た場合、そのパケットは、出力リンクに転送されるか、複数の転送パス121の1つを介して受信FIFOに転送される。単一のそのようなパスだけを有するトーラス・ネットワーク内の従来技術のスイッチと異なって、複数の転送パス121によって、1つまたは複数のパケットが使用される場合であっても、パケットを転送できるようになる。本発明の一態様によれば、転送パスのいくつかを、受信FIFOのために排他的に予約することができる。
【0028】
さらに、本発明の好適な態様に、バイパス・パス120が含まれる。FIFOのヘッドのパケット、バイパス・パス120内の各パケットに関連するのが、パケットが移動できる可能な宛先VCおよび方向のビット・ベクトルである。そのようなビット・ベクトル410から415の例を、図4に示す。
【0029】
出力ステイタス・ビット(Output Status Bits)
各出力調停機構は、リンクの可用性およびこの方向に関連する下流バッファ空間(トークン)を記述する出力ステイタス・ビット・ベクトルを生成する責任を負っている。図2に、x+210およびz−215の、ある時点の例の出力ステイタス・ビット・ベクトルが示される。各出力ステイタス・ビット・ベクトルに下記が含まれることが好ましい。
a)リンクが使用可能(1)または使用不能(0)のどちらであるかを示すリンク・ステイタス・ビット201。リンクは、トークンの可用性および/または成功裡に受信されたパケットの肯定応答に関連する制御メッセージを交換するのにも使用される可能性があるので、そのような制御メッセージは、データ・パケットに対する絶対的な優先順位を受け取る。したがって、そのような制御メッセージが、リンクの使用を待っているか、実際にリンクを使用している場合に、リンク・ステイタス・ビットに0がセットされ、制御メッセージは、物理リンクが使用可能になるや否や送信される。
b)動的VCごとのステイタス・ビット202および203。左端のビットは、最大サイズのパケットを保管するのに十分な下流のトークンがあるか否かを示す。他の2ビットは、下記のように決定される。使用可能な下流トークンを、閾値によって定義される4つの範囲に分割する。たとえば、M≧T1>T2>T3>0、ただし、Mは、トークンの最大数である。使用可能なトークンの数がtである場合に、ビット・ベクトルは、M≧t>T1の場合に00、T1≧t>T2の場合に01、T2≧t>T3の場合に10、T3≧t≧0の場合に11になる(したがって、ビット・ベクトルは、より多くのトークンが使用可能である場合に小さくなる。2^k個の範囲を定義するk>2ビットへの一般化が存在することを理解されたい)。
c)エスケープ204VCおよび優先順位205VCのステイタス・ビット。これらのビットは、「バブル挿入」規則に従う。
【0030】
エスケープ204フィールドおよび優先順位205フィールドについて、左のビットは、新しいパケットをそのVCに注入できる(少なくとも2つのパケット全体の価値のトークンを必要とする)場合に1であり、右のビットは、既にVCにあるパケットを継続できる(少なくとも1つのパケット全体の価値のトークン)場合に1である(デッドロックを避けるために、これらのVCに入るかそこにあるすべてのパケットの「サイズ」は、最大パケット・サイズであるとみなされる)。
【0031】
たとえば、図2からわかるように、x+方向210で、リンクが空いており、トークンがVC1のレベル01で使用可能であり、VC2では使用可能なトークンがなく、エスケープVCは、新しいパケットを挿入する空間を有しないが、既に「バブル内」であるパケットを転送する空間を有し、高優先順位VCは、パケットの挿入と転送の両方が可能である。
【0032】
入力ステイタス・ビット(Input Status Bits)
各入力ユニットは、その入力ユニットに関連する方向に関連するVCごとにそのバッファの入力満杯度を記述する入力ステイタス・ビットを生成する責任を負っている。図3に、x+310からz−315までのリンクのある時点の例の入力ステイタス・ビット・ベクトルを示す。各ビット・ベクトルに、各VC310から304を記述する3ビットが含まれる。左端のビット301は、パケットが調停の準備ができている場合に1、そうでない場合に0である。右側の2ビット303および304は、トークン満杯度領域を記述する、すなわち、FIROにb個のチャンクが含まれる場合に、閾値T1、T2、およびT3について、0≦b<T1の場合に00、T1≦b<T2の場合に01、T2≦b<T3の場合に10、T3≦bの場合に11である。複数の範囲を使用して、チャンクではなくパケットの数を記述することができることを理解されたい。
【0033】
各注入FIFOは、図3に示された類似する形で定義された入力ステイタス・ビット・ベクトル316も有し、図3では、入力ステイタス・ビット・ベクトル317から321が示され、5つの注入FIFOがあることが示される。
【0034】
可能ビット・ベクトル(Possible Bit Vector)
FIFOのヘッドまたはバイパス・パスにあるパケットのそれぞれについて、パケットが移動できる方向およびVCすなわち、所与のパケットについて、各仮想チャネルについてどの方向がまだ経路指定目標であるかを示すビット・ベクトルが生成される。図4に、x+方向またはy−方向のいずれかで移動できる非優先順位パケットの可能ビット・ベクトルを示す。ビット・ベクトルの部分が、各方向410から415に対応する。この例では、パケットが、x+方向およびy−方向の両方の動的VCのいずれかを移動することができる。このパケットは、非優先順位なので、優先順位VCの項目は、すべて0である。この例では、エスケープ方向が、標準次元順序すなわち、まずx、次にz、次にzに従って選択され、したがって、エスケープVCはx+方向である。可能ビット・ベクトルのすべてが0である場合には、そのパケットは、宛先に到達している。
【0035】
パケット・ヘッダ(Packet Header)
パケット・ヘッダ510のフォーマットを、図5に示す。好適な実施形態では、パケット・ヘッダ510は、オーバーヘッドを最小にするために比較的短く、たとえば8バイトである。ヘッダ510では、最初のフィールド(たとえば8ビット)によって、たとえば通常または優先順位など、パケット・タイプ512が示され、このフィールドに、そのパケットを動的に経路指定できるか否か、あるいは固定経路に沿って経路指定されるかを示すビットを含めることができる。国際出願番号PCT/US02/05566で、パケット・タイプによって「クラス経路指定」動作をエンコードできる方法が示され、このクラス経路指定は、明白なわずかな修正によって本発明でもサポートすることができる。VCフィールド514(たとえば2ビット)によって、パケットがどのVC上にあるかが示され、サイズ・フィールド516(たとえば3ビット)によって、パケット内のチャンクの数が示される。そのようなヘッダの使用は標準的であるが、本発明の好適な実施形態には、「ヒント・ビット」520、522、および524が含まれ、これによって、調停機構が他の形で可能であるよりも早く方向を選択できるようにすることによって、待ち時間が減る。本発明の好適な実施形態では、これらのヒント・ビットが、2ビット/次元であり、パケットが移動することができる方向がエンコードされ、たとえば、xヒント・ビット518が「00」である場合に、x方向のパケット移動がこれ以上は不要であり、xヒント・ビット518が「01」である場合に、パケットがx+方向に移動することができ、xヒント・ビット518が「10」である場合に、パケットがx−方向に移動することができる。ヒント・ビットは、宛先フィールド524、526、および528の前に置かなければならず、その代わりに、VCフィールド514およびサイズ・フィールド516の前に置くことができる。たとえば64×32×32ノード・トーラスなどの大型並列計算機では、宛先フィールドを、少なくともそれぞれ6ビットにしなければならない。ヒント・ビットがなければ、調停を開始する前に、宛先アドレスの18ビットを受け取らなければならない。したがって、ヒント・ビットが、宛先ビットの前に置かれるので、有利なことに、ヒント・ビットによって、パケット・ヘッダ全体が読み取られる前すなわち、宛先ビットが読み取られる前に調停処理を開始できるようになり、これによって待ち時間が減る。パケットが、ネットワークを介して経路指定される際に、ヒント・ビットを更新する必要がある。たとえば、最小ホップ動的経路指定では、パケットが宛先のx座標に達する時に、xヒント・ビットに00をセットすることだけが必要である。本発明の好適な実施形態では、各出力リンクに関連するレジスタを含めることによって、これが達成される。レジスタ内で、関連する、たとえば下流ノードのx座標が提供される。パケットが調停に勝つときに、このレジスタを宛先の関連座標と比較することができ、レジスタ内の値と宛先の関連座標の値が等しい場合に、ヒント・ビットに00をセットする。さらに、当技術分野で既知のように、信頼性のあるメッセージングのために、ヘッダに、ヘッダが正しく受信されることを保証するために、たとえばハイパフォーマンス・パラレル・インターフェース(HIPPI)プロトコルで既知のシーケンス番号、およびCRCを含めることができる。
【0036】
入出力調停(Input/Output Arbitration)
本発明の好適な実施形態では、調停処理に2つのフェーズが含まれる。第1に、各入力ユニットが、その移動の準備ができているパケット(FIFOのヘッドまたはバイパス・パスにあるパケット)の中で、リンク(または受信FIFO)を得ることを試みるパケットを選択する。これらの選択されたパケットを、「入力勝者(input winner)」と呼ぶことにする。入力勝者すなわち候補(candidate)を選択する他に、各候補の方向および各候補のVCが、調停の次のステップのために選択される。システム内のパケットのスループットを高めるために、入力調停と出力調停の両方が、マルチレベルであり、すなわち、別々の調停処理が、各ノード方向から到着するパケットについて提供される。パケット・コンテンションは、本発明の好適な実施形態で使用される規則によって記述される一般調停ポリシ(general arbitration policy)によって減らされる。
【0037】
入力調停フェーズ(Input Arbitration Phase):
入力勝者を選択するために本発明の好適な実施形態によって提供される方法には、宛先に到達していないパケットのいずれが完全にブロックされるか、すなわち、どのパケットが、そのパケットが移動する必要がある方向で使用可能なリンクおよびVCを有しないか、または転送パスが使用可能でないかを判定するステップが含まれる。これらのステップでは、どの候補パケットをブロックしないかも判定される。本発明の一態様では、上記のステップが、可能ビット・ベクトル410から415と出力ステイタス・ビット・ベクトル215の適当な論理AND演算を実行することによって判定される。同様に、宛先に到達したパケットを、その受信FIFOまたはブロックされない候補ベクトルに空間がない場合に、ブロックすると決定することができる。各ブロックされない候補は、下記のように入力優先順位を割り当てられる。2種類の調停サイクルすなわち、ランダム・サイクルまたは最長キュー・サイクルが、本発明の好適な実施形態によって提供される。スイッチの事前定義の調停サイクル判断基準によって、調停サイクルのどの部分がランダムになるかが決定される。ランダム・サイクルには、非優先順位VCバッファ内の各候補パケットに、ランダムな(またはラウンド・ロビン・アルゴリズムに基づく)2ビット・ベクトルを割り当てられる。最長キュー・サイクルでは、これらの候補に、右側2つの入力ステイタス・ビットと等しい優先順位が割り当てられる。そのように生成された優先順位は、下記の総合的な優先順位方式(最高から最低への優先順位)で使用される。
a)優先順位VCのヘッドにあるブロックされない候補パケット。
b)高優先順位パケットであり、高優先順位VCバッファにパケットがない場合に、バイパス・パス内のブロックされない候補パケット。
c)最高の2ビット優先順位ベクトルを有する非優先順位VCバッファ内のブロックされない候補パケット(同点の場合には、ランダムまたはラウンド・ロビンなど、任意の機構によって決定される)。
d)非優先順位パケットであるものとして、バイパス・パス内のブロックされない候補パケット。
【0038】
非優先順位パケットについて、このアルゴリズムでは、最も満杯に近いFIFO(most full FIFO)のヘッドのパケットを選択する傾向がある。勝った候補パケットは、その後、下記のようにその候補の方向およびVCを選択する。
a)そのパケットが高優先順位である場合に、可能ビット・ベクトルの優先順位VCビットに1がセットされている方向および優先順位VCを選択する。
b)そのパケットが非優先順位であるが動的に経路指定可能でない場合には、可能ビット・ベクトルのエスケープVCビットに「1」がセットされている方向およびエスケープVCを選択する。
c)そのパケットが非優先順位であり、動的に経路指定可能である場合には、使用可能および可能の両方のリンクおよび動的VCの中から、出力ステイタス・ビット・ベクトルの最小の右2ビットを有する方向および動的VCを選択する。
d)そのようなリンクおよび動的VCが存在しない場合には、可能ビット・ベクトルのエスケープVCビットに「1」がセットされている方向およびエスケープVCを選択する。
【0039】
入力勝者は、宛先が現在のノードでない場合には対応する出力調停機構、宛先が現在のノードである場合には受信FIFOに、候補の方向およびVCを提示する。各出力調停機構/受信FIFOは、提示された入力勝者の間から、出力されるパケットを選択する。
【0040】
出力調停フェーズ(Output Arbitration Phase):
各出力調停機構に、候補入力勝者の組が提示される。さらに、注入FIFOからの候補パケットがある場合がある。出力調停も、2種類のサイクルを有する、すなわち、注入FIFOからのパケットが低い優先順位を有するサイクルと、注入FIFOからのパケットが高い優先順位を有するサイクルである。事前定義の出力フェーズ調停判断基準、たとえばスイッチのパラメータによって、サイクルのどの部分が各タイプであるかが決定される。注入FIFOが、このサイクルで低い優先順位を有する場合には、出力調停機構は、下記のようにすべての候補の中から勝者を選択する(最高から最低への優先順位)。同点は、ランダムに優劣をつけられることが好ましい。
a)2ビット・ステイタス・ベクトルによって示される最高の優先順位を有する入力ユニットからの高優先順位勝者パケット。
b)最高の2ビット・ステイタス・ベクトルを有する注入キューからの高優先順位パケット。
c)最高の2ビット・ステイタス・ベクトルを有する入力ユニットからの通常優先順位勝者パケット。
d)最高の2ビット・ステイタス・ベクトルを有する注入FIFOからの通常優先順位パケット。
【0041】
注入パケットが、このサイクルで高い優先順位を有する場合には、出力調停機構は、下記のようにすべての候補の中から勝者を選択することが好ましい(最高から最低への優先順位)。
a)最高の2ビット・ステイタス・ベクトルを有する注入キューからの高優先順位パケット。
b)2ビット・ステイタス・ベクトルによって示される最高の優先順位を有する入力ユニットからの高優先順位勝者パケット。
c)最高の2ビット・ステイタス・ベクトルを有する注入FIFOからの通常優先順位パケット。
d)最高の2ビット・ステイタス・ベクトルを有する入力ユニットからの通常優先順位勝者パケット。
【0042】
注入調停(Injection Arbitration)
注入FIFOのヘッドにある候補パケットは、勝った入力候補パケットと同一の形で候補の方向およびVCを選択する。これらのパケットは、(a)ランダムに生成されるか、または(b)注入FIFOの長さを示すのに2ビットを使用するか、のいずれかである2ビットのステイタス・ベクトルも担持(carry)する。
【0043】
受信FIFO調停(Reception FIFO Artbitration)
同時にスイッチ・ノードで受け取られる必要がある1つまたは複数のパケットがある場合がある。コンテンションを減らすために、別々の受信FIFOが、各着信方向に割り当てられる。さらに、方向ごとに1つまたは複数のFIFOがある場合がある。各ノードに複数のプロセッサがある場合には、本発明の好適な実施形態を用いて、方向ごとの複数のFIFOによって、各プロセッサがそれ自体の方向ごとのFIFOを有することを可能にすることができる。パケット・ヘッダのビットを使用して、所与の方向について、これらのFIFOのどれが使用されるかを示すことができる。また、高優先順位パケットによる使用だけのためにとっておかれる1つまたは複数のFIFOがある場合がある。これらのFIFOに関してコンテンションがある場合には、2ビット・ステイタス・ベクトルを使用して優先順位を判定することができる。
【0044】
好適な実施形態による本発明の説明によって、当業者は、種々の修正形態および改良を想到することができる。たとえば、本発明の代替実施形態に、単一の次元を含めることもできる。あるいは、m個の複数次元を含めることができる。なお、mは、任意の整数であることに留意されたい。したがって、好適な実施形態が、限定としてではなく、例示として提供されたものであることに留意されたい。本発明の範囲は、請求項によって定義される。
【図面の簡単な説明】
【0045】
【図1】本発明の好適な実施形態によるスイッチ・アーキテクチャを示す図である。
【図2】本発明の好適な実施形態による出力ステイタス・ビット・ベクトルを示す図である。
【図3】本発明の好適な実施形態による、入力ステイタス・ビット・ベクトルの例を示す図である。
【図4】本発明の好適な実施形態による、「可能な宛先」ビット・ベクトルを示す図である。
【図5】本発明の好適な実施形態による、ヒント・ビットを有するパケット・ヘッダを示す図である。
【図6】プロセッサ・ノードと同一のチップに配置される本発明すなわちネットワーク・スイッチの実施形態を示す図である。

Claims (28)

  1. m個の複数次元で構成された複数のノードを含み、各ノードがコンピューティング装置を含む大規模並列コンピューティング・システムにおいて、パケットをその宛先ノードに対して経路指定する方法であって、
    a)2m個の方向の少なくとも1つから対応する数の入力リンクの少なくとも1つを介して複数の仮想チャネルの対応する少なくとも1つに前記パケットを入力するステップと、
    b)前記ノードのローカルから複数のプロセッサ注入FIFOの少なくとも1つにローカル・パケットを入力するステップと、
    c)2m個の複数の出力ステイタス・ビット・ベクトルを生成するステップであって、前記出力ステイタス・ビット・ベクトルのそれぞれが、そのリンクの可用性、下流仮想チャネルの可用性、およびその方向に関連するすべての仮想チャネルの下流バッファ空間表現を記述する、ステップと、
    d)一般調停ポリシを確立するステップであって、調停判断が、前記2m個の複数の出力ステイタス・ビット・ベクトルの内容に基づいて行われる、ステップと、
    e)前記一般調停ポリシに従って、少なくとも1つの転送パスを介して対応する出力リンクへ前記パケットを出力するステップであって、前記パケットが、前記宛先ノードに対して進められる、ステップと、
    f)前記パケットおよび前記ローカル・パケットのいずれかが入力に関して使用可能の間に前のステップを繰り返すステップと、
    を含む方法。
  2. 前記パケットのパケット・ヘッダからのヒント・ビットを使用することをさらに含み、前記ヒント・ビットが、前記2m個の方向のうちのどれが前記パケットのそれぞれが移動するのに使用可能であるかを示し、前記ヒント・ビットによって、前記一般調停ポリシを確立するステップが、よりすばやく完了する、請求項1に記載のパケットを経路指定する方法。
  3. 各方向について前記2m個の複数の可能ビット・ベクトルを作成するステップことであって、前記複数の可能ビット・ベクトルのそれぞれが、前記仮想チャネルのそれぞれについて前記各方向での前記パケットのいずれかのさらなる移動がまだ経路指定目標であるかどうかを示すステップをさらに含む、請求項1に記載のパケットを経路指定する方法。
  4. 前記一般調停ポリシを確立するステップの入力フェーズの実行が、
    a)その宛先にない前記パケットのどれが完全にブロックされるかを決定するステップと、
    b)その宛先にない前記パケットのどれがブロックされないかを決定するステップと、
    c)その宛先にある前記パケットのどれがブロックされるかを決定するステップと、
    d)その宛先にある前記パケットのどれがブロックされないかを決定するステップと、
    を含む、請求項3に記載のパケットを経路指定する方法。
  5. 前記2m個の方向に対応する前記2m個の複数の入力ステイタス・ビット・ベクトルを生成するステップを含み、前記入力ステイタス・ビット・ベクトルのそれぞれが、調停の準備ができていることと、前記2m個の方向の1つに関連する前記複数の仮想チャネルおよび前記複数のプロセッサ注入FIFOのそれぞれに関するバッファの入力満杯度表現とを記述する、請求項4に記載のパケットを経路指定する方法。
  6. 事前定義の調停サイクル判断基準が満たされる場合に、現在の調停サイクルで前記入力ステイタス・ビット・ベクトルの前記バッファの入力満杯度表現をランダム化するステップと、
    前記事前定義の調停サイクル判断基準が満たされない場合に、前記現在の調停サイクルで最長キュー優先順位調停を実行するステップと、
    をさらに含む、請求項5に記載のパケットを経路指定する方法。
  7. a)優先順位仮想チャネルのヘッドにある前記パケットのうちのブロックされないもの、
    b)前記パケットの前記1つが高優先順位パケットであり、優先順位仮想チャネルに前記パケットがない場合に、バイパス・パス内の前記パケットのうちのブロックされないもの、
    c)最高の前記バッファの満杯度表現を有する、非優先順位仮想チャネル内の前記パケットのうちのブロックされないもの、
    d)非優先順位パケットである場合に、前記バイパス・パス内の前記パケットのうちのブロックされないもの、
    という最高優先順位から最低優先順位への前記パケットの入力調停優先順位を生成するステップをさらに含む、請求項6に記載のパケットを経路指定する方法。
  8. a)前記高優先順位ブロックされないパケットについて、前記可能ビット・ベクトルの優先順位仮想チャネル・ビットが方向がまだ前記高優先順位ブロックされなパケットの経路指定目標であることを示す方向および優先順位仮想チャネルを選択するステップと、
    b)動的経路指定可能でない前記非優先順位ブロックされないパケットについて、前記可能ビット・ベクトルのエスケープ仮想チャネル・ビットが方向がまだ動的経路指定可能でない前記非優先順位ブロックされないパケットの経路指定目標であることを示す方向およびエスケープ仮想チャネルを選択するステップと、
    c)動的経路指定可能である前記非優先順位ブロックされないパケットについて、前記可能ビット・ベクトルが方向がまだ経路指定目標であることを示し、前記出力ステイタス・ビット・ベクトルが最大の前記バッファ空間表現を示す方向および動的仮想チャネルを選択するステップであって、そのようなチャネルおよび方向の組合せが存在しない場合に、前記可能ビット・ベクトルの前記エスケープ仮想チャネル・ビットが前記方向がまだ経路指定目標であることを示す方向およびエスケープ仮想チャネルを選択する、ステップと
    に従って、各前記ブロックされない1つのパケットについて、出力方向および出力仮想チャネルを選択することをさらに含む、請求項7に記載のパケットを経路指定する方法。
  9. 前記一般調停ポリシを確立するステップの出力フェーズの実行が、
    事前定義の出力フェーズ調停サイクル判断基準に従って、現在の出力フェーズ調停サイクルをプロセッサ注入FIFOについて高優先順位に設定するステップと、
    前記事前定義の出力フェーズ調停サイクル判断基準に従って、現在の出力フェーズ調停サイクルをプロセッサ注入FIFOについて低優先順位に設定するステップと、
    を含む、請求項8に記載のパケットを経路指定する方法。
  10. a)複数の優先順位仮想チャネルのうちで最高のバッファの入力満杯度表現を有する前記優先順位仮想チャネルのヘッドにある前記パケットのうちのブロックされないもの、
    b)複数のプロセッサ注入FIFOのうちで最高のバッファの入力満杯度表現を有するプロセッサ注入FIFOからの高優先順位パケット、
    c)複数の非優先順位仮想チャネルからの最高の前記バッファの入力満杯度を有する非優先順位仮想チャネル内の前記パケットのうちのブロックされないもの、
    d)複数のプロセッサ注入FIFOのうちで最高のバッファの入力満杯度表現を有するプロセッサ注入FIFOからの通常優先順位パケット、
    という最高優先順位から最低優先順位への前記パケットの出力調停優先順位を生成するステップであって、現在の出力フェーズ調停サイクルが、プロセッサ注入FIFOについて低優先順位であるステップをさらに含む、請求項9に記載のパケットを経路指定する方法。
  11. a)前記複数のFIFOのうちで最高のバッファの入力満杯度表現を有するプロセッサ注入FIFOからの高優先順位パケット、
    b)前記複数の優先順位仮想チャネルからの最高のバッファの入力満杯度表現を有する前記優先順位仮想チャネルのヘッドにある前記パケットのうちの前記ブロックされないもの、
    c)前記複数のプロセッサ注入FIFOのうちで最高のバッファの入力満杯度表現を有するプロセッサ注入FIFOからの通常優先順位パケット、
    d)前記複数の非優先順位仮想チャネルからの最高の前記バッファの入力満杯度表現を有する前記非優先順位仮想チャネル内の前記パケットのうちのブロックされないもの、
    という最高優先順位から最低優先順位への前記パケットの出力調停優先順位を生成するステップであって、現在の出力フェーズ調停サイクルがプロセッサ注入FIFOについて高優先順位であるステップをさらに含む、請求項9に記載のパケットを経路指定する方法。
  12. m個の複数次元で構成された複数のノードを含み、各ノードがコンピューティング装置を含む大規模並列コンピューティング・システムにおいて、パケットをその宛先ノードに対して経路指定するシステムであって、
    a)2m個の方向の少なくとも1つから対応する数の入力リンクの少なくとも1つを介して複数の仮想チャネルの対応する少なくとも1つに前記パケットを入力する手段と、
    b)前記ノードのローカルから複数のプロセッサ注入FIFOの少なくとも1つにローカル・パケットを入力する手段と、
    c)2m個の複数の出力ステイタス・ビット・ベクトルを生成する手段であって、前記出力ステイタス・ビット・ベクトルのそれぞれが、そのリンクの可用性、下流動的仮想チャネルの可用性、およびその方向に関連するすべての仮想チャネルの下流バッファ空間表現を記述する、手段と、
    d)一般調停ポリシを確立する手段であって、調停判断が、前記2m個の複数の出力ステイタス・ビット・ベクトルの内容に基づいて行われる、手段と、
    e)前記一般調停ポリシに従って、少なくとも1つの転送パスを介して対応する出力リンクへ前記パケットを出力する手段であって、前記パケットが、前記宛先ノードに対して進められる、手段と、
    f)前記パケットおよび前記ローカル・パケットのいずれかが入力に関して使用可能の間に前のステップを繰り返す手段と、
    を含むシステム。
  13. m個の複数次元で構成された複数のノードを含み、各ノードがコンピューティング装置を含む大規模並列コンピューティング・システムにおいて、パケットをその宛先ノードに対して経路指定する方法ステップを実行するために計算機によって実行可能なプログラムであって、前記方法ステップが、
    a)2m個の方向の少なくとも1つから対応する数の入力リンクの少なくとも1つを介して複数の仮想チャネルの対応する少なくとも1つに前記パケットを入力するステップと、
    b)前記ノードのローカルから複数のプロセッサ注入FIFOの少なくとも1つにローカル・パケットを入力するステップと、
    c)2m個の複数の出力ステイタス・ビット・ベクトルを生成するステップであって、前記出力ステイタス・ビット・ベクトルのそれぞれが、そのリンクの可用性、下流動的仮想チャネルの可用性、およびその方向に関連するすべての仮想チャネルの下流バッファ空間表現を記述する、ステップと、
    d)一般調停ポリシを確立するステップであって、調停判断が、前記2m個の複数の出力ステイタス・ビット・ベクトルの内容に基づいて行われる、ステップと、
    e)前記一般調停ポリシに従って、少なくとも1つの転送パスを介して対応する出力リンクへ前記パケットを出力するステップであって、前記パケットが、前記宛先ノードに対して進められる、ステップと、
    f)前記パケットおよび前記ローカル・パケットのいずれかが入力に関して使用可能の間に前のステップを繰り返すステップと、
    を含むプログラム記憶装置。
  14. 前記方法ステップが、前記パケットのパケット・ヘッダからのヒント・ビットを使用することをさらに含み、前記ヒント・ビットが、前記2m個の方向のうちのどれが前記パケットのそれぞれが移動するのに使用可能であるかを示し、前記ヒント・ビットによって、前記一般調停ポリシを確立するステップが、よりすばやく完了する、請求項13に記載のプログラム。
  15. 前記方法ステップが、各方向について前記2m個の複数の可能ビット・ベクトルを生成するステップであって、前記複数の可能ビット・ベクトルのそれぞれが、前記仮想チャネルのそれぞれについて前記各方向での前記パケットのいずれかのさらなる移動がまだ経路指定目標であるかどうかを示す、ステップをさらに含む、請求項13に記載のプログラム。
  16. 前記一般調停ポリシを確立するステップの入力フェーズの実行が、
    a)その宛先にない前記パケットのどれが完全にブロックされるかを決定するステップと、
    b)その宛先にない前記パケットのどれがブロックされないかを決定するステップと、
    c)その宛先にある前記パケットのどれがブロックされるかを決定するステップと、
    d)その宛先にある前記パケットのどれがブロックされないかを決定するステップと、
    を含む、請求項15に記載のプログラム。
  17. 前記方法ステップが、前記2m個の方向に対応する前記2m個の複数の入力ステイタス・ビット・ベクトルを生成するステップを含み、前記入力ステイタス・ビット・ベクトルのそれぞれが、調停の準備ができていることの表現と、前記2m個の方向の1つに関連する前記複数の仮想チャネルおよび前記複数のプロセッサ注入FIFOのそれぞれに関するバッファの入力満杯度表現とを記述する、請求項16に記載のプログラム。
  18. 事前定義の調停サイクル判断基準が満たされる場合に、現在の調停サイクルで前記入力ステイタス・ビット・ベクトルの前記バッファの入力満杯度表現をランダム化するステップと、
    前記事前定義の調停サイクル判断基準が満たされない場合に、前記現在の調停サイクルで最長キュー優先順位調停を実行するステップと、
    をさらに前記方法ステップが含む、請求項17に記載のプログラム。
  19. a)優先順位仮想チャネルのヘッドにある前記パケットのうちのブロックされないもの、
    b)前記パケットの前記1つが高優先順位パケットであり、優先順位仮想チャネルに前記パケットがない場合に、バイパス・パス内の前記パケットのうちのブロックされないもの、
    c)最高の前記バッファの満杯度表現を有する、非優先順位仮想チャネル内の前記パケットのうちのブロックされないもの、
    d)非優先順位パケットである場合に、前記バイパス・パス内の前記パケットのうちのブロックされないもの、
    という最高優先順位から最低優先順位への前記パケットの入力調停優先順位を生成するステップをさらに前記方法ステップが含む、請求項18に記載のプログラム。
  20. a)前記高優先順位ブロックされないパケットについて、前記可能ビット・ベクトルの優先順位仮想チャネル・ビットが方向がまだ前記高優先順位ブロックされなパケットの経路指定目標であることを示す方向および優先順位仮想チャネルを選択するステップと、
    b)動的経路指定可能でない前記非優先順位ブロックされないパケットについて、前記可能ビット・ベクトルのエスケープ仮想チャネル・ビットが方向がまだ動的経路指定可能でない前記非優先順位ブロックされないパケットの経路指定目標であることを示す方向およびエスケープ仮想チャネルを選択するステップと、
    c)動的経路指定可能である前記非優先順位ブロックされないパケットについて、前記可能ビット・ベクトルが方向がまだ経路指定目標であることを示し、前記出力ステイタス・ビット・ベクトルが最大の前記バッファ空間表現を示す方向および動的仮想チャネルを選択するステップであって、そのようなチャネルおよび方向の組合せが存在しない場合に、前記可能ビット・ベクトルの前記エスケープ仮想チャネル・ビットが前記方向がまだ経路指定目標であることを示す方向およびエスケープ仮想チャネルを選択する、ステップと、
    に従って、各前記ブロックされない1つのパケットについて、出力方向および出力仮想チャネルを選択することをさらに含む、請求項19に記載のプログラム。
  21. 前記一般調停ポリシを確立するステップの出力フェーズの実行が、
    事前定義の出力フェーズ調停サイクル判断基準に従って、現在の出力フェーズ調停サイクルをプロセッサ注入FIFOについて高優先順位に設定するステップと、
    前記事前定義の出力フェーズ調停サイクル判断基準に従って、現在の出力フェーズ調停サイクルをプロセッサ注入FIFOについて低優先順位に設定するステップと、
    を含む、請求項20に記載のプログラム。
  22. a)複数の優先順位仮想チャネルのうちで最高のバッファの入力満杯度表現を有する前記優先順位仮想チャネルのヘッドにある前記パケットのうちのブロックされないもの、
    b)複数のプロセッサ注入FIFOのうちで最高のバッファの入力満杯度表現を有するプロセッサ注入FIFOからの高優先順位パケット、
    c)複数の非優先順位仮想チャネルからの最高の前記バッファの入力満杯度を有する非優先順位仮想チャネル内の前記パケットのうちのブロックされないもの、
    d)複数のプロセッサ注入FIFOのうちで最高のバッファの入力満杯度表現を有するプロセッサ注入FIFOからの通常優先順位パケット、
    という最高優先順位から最低優先順位への前記パケットの出力調停優先順位を生成するステップであって、現在の出力フェーズ調停サイクルが、プロセッサ注入FIFOについて低優先順位であるステップをさらに前記方法ステップが含む、請求項21に記載のプログラム。
  23. a)前記複数のFIFOのうちで最高のバッファの入力満杯度表現を有するプロセッサ注入FIFOからの高優先順位パケット、
    b)前記複数の優先順位仮想チャネルからの最高のバッファの入力満杯度表現を有する前記優先順位仮想チャネルのヘッドにある前記パケットのうちの前記ブロックされないもの、
    c)前記複数のプロセッサ注入FIFOのうちで最高のバッファの入力満杯度表現を有するプロセッサ注入FIFOからの通常優先順位パケット、
    d)前記複数の非優先順位仮想チャネルからの最高の前記バッファの入力満杯度表現を有する前記非優先順位仮想チャネル内の前記パケットのうちのブロックされないもの、
    という最高優先順位から最低優先順位への前記パケットの出力調停優先順位を生成するステップであって、現在の出力フェーズ調停サイクルがプロセッサ注入FIFOについて高優先順位であるステップをさらに前記方法ステップが含む、請求項21に記載のプログラム。
  24. m個の複数次元で構成された複数のコンピューティング・プロセッサ・ノードを含み、各ノードがコンピューティング装置を含む大規模並列コンピューティング・システムにおいて、パケットをその宛先ノードに対して経路指定するネットワーク・スイッチであって、
    a)2m個の方向の少なくとも1つから対応する数の入力リンクの少なくとも1つを介して複数の仮想チャネルの対応する少なくとも1つに前記パケットを入力する少なくとも1つの入力ユニットと、
    b)前記ノードのローカルから複数のプロセッサ注入FIFOの少なくとも1つにローカル・パケットを入力する少なくとも1つの入力リンクと、
    c)2m個の複数の出力ステイタス・ビット・ベクトルを生成する出力ステイタス・ビット・ベクトル・ジェネレータであって、前記出力ステイタス・ビット・ベクトルのそれぞれが、そのリンクの可用性、下流動的仮想チャネルの可用性、およびその方向に関連するすべての仮想チャネルの下流バッファ空間表現を記述する、出力ステイタス・ビット・ベクトル・ジェネレータと、
    d)一般調停ポリシを確立する入力調停機構および出力調停機構であって、調停判断が、前記2m個の複数の出力ステイタス・ビット・ベクトルの内容に基づいて行われる、入力調停機構および出力調停機構と、
    e)前記一般調停ポリシに従って、少なくとも1つの転送パスを介して対応する出力リンクへ前記パケットを出力する少なくとも1つの出力リンクであって、前記パケットが、前記宛先ノードに対して進められる、少なくとも1つの出力リンクと
    を含むネットワーク・スイッチ。
  25. 前記コンピュータ・プロセッサ・ノードと同一の集積回路に前記ネットワーク・スイッチが集積される、請求項24に記載のネットワーク・スイッチ。
  26. 前記少なくとも1つの入力ユニット専用の少なくとも1つのプロセッサ受信FIFOを含み、同一の複数の入力ユニットについて複数のプロセッサ受信FIFOがあり、これによって、複数の入力ユニットの間でのコンテンションが減らされる、請求項24に記載のネットワーク・スイッチ。
  27. m個の複数次元で構成された複数のコンピューティング・プロセッサ・ノードを含み、各ノードがコンピューティング装置を含む大規模並列コンピューティング・システムにおいて、パケットをその宛先ノード対して経路指定する動的経路指定を有するバーチャル・カット・スルー・ネットワーク・スイッチであって、前記コンピュータ・プロセッサ・ノードと同一の集積回路に前記ネットワーク・スイッチが集積されるバーチャル・カット・スルー・ネットワーク・スイッチ。
  28. 前記少なくとも1つの入力ユニット専用の少なくとも1つのプロセッサ受信FIFOを含み、同一の複数の入力ユニットについて複数のプロセッサ受信FIFOがあり、これによって、複数の入力ユニットの間でのコンテンションが減らされる、請求項27に記載のバーチャル・カット・スルー・ネットワーク・スイッチ。
JP2002582380A 2001-02-24 2002-02-25 最適化されたスケーラブル・ネットワーク・スイッチ Expired - Fee Related JP3871327B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US27112401P 2001-02-24 2001-02-24
PCT/US2002/005569 WO2002084508A1 (en) 2001-02-24 2002-02-25 Optimized scalabale network switch

Publications (2)

Publication Number Publication Date
JP2004527176A true JP2004527176A (ja) 2004-09-02
JP3871327B2 JP3871327B2 (ja) 2007-01-24

Family

ID=68499837

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002582380A Expired - Fee Related JP3871327B2 (ja) 2001-02-24 2002-02-25 最適化されたスケーラブル・ネットワーク・スイッチ

Country Status (8)

Country Link
US (2) US7305487B2 (ja)
EP (1) EP1370967A4 (ja)
JP (1) JP3871327B2 (ja)
KR (1) KR100620835B1 (ja)
CN (1) CN1269053C (ja)
CA (1) CA2438195C (ja)
IL (1) IL157515A0 (ja)
WO (1) WO2002084508A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010087002A1 (ja) 2009-01-30 2010-08-05 富士通株式会社 情報処理システム、情報処理装置、情報処理装置の制御方法、情報処理装置の制御プログラム及びコンピュータ読み取り可能な記録媒体

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0517304D0 (en) * 2005-08-23 2005-10-05 Netronome Systems Inc A system and method for processing and forwarding transmitted information
US7773617B2 (en) * 2006-11-08 2010-08-10 Sicortex, Inc. System and method for arbitration for virtual channels to prevent livelock in a richly-connected multi-processor computer system
US7773616B2 (en) * 2006-11-08 2010-08-10 Sicortex, Inc. System and method for communicating on a richly connected multi-processor computer system using a pool of buffers for dynamic association with a virtual channel
US9053072B2 (en) * 2007-01-25 2015-06-09 Hewlett-Packard Development Company, L.P. End node transactions at threshold-partial fullness of storage space
CN101311917B (zh) * 2007-05-24 2011-04-06 中国科学院过程工程研究所 一种面向粒子模型的多层直连集群并行计算系统
US7970872B2 (en) * 2007-10-01 2011-06-28 Accenture Global Services Limited Infrastructure for parallel programming of clusters of machines
JP2009104300A (ja) * 2007-10-22 2009-05-14 Denso Corp データ処理装置及びプログラム
US20090109996A1 (en) * 2007-10-29 2009-04-30 Hoover Russell D Network on Chip
US20090125706A1 (en) * 2007-11-08 2009-05-14 Hoover Russell D Software Pipelining on a Network on Chip
US20090125703A1 (en) * 2007-11-09 2009-05-14 Mejdrich Eric O Context Switching on a Network On Chip
US8261025B2 (en) 2007-11-12 2012-09-04 International Business Machines Corporation Software pipelining on a network on chip
US8656442B1 (en) 2007-11-21 2014-02-18 BitGravity, Inc. Efficient video delivery
US8223650B2 (en) * 2008-04-02 2012-07-17 Intel Corporation Express virtual channels in a packet switched on-chip interconnection network
US20090260013A1 (en) * 2008-04-14 2009-10-15 International Business Machines Corporation Computer Processors With Plural, Pipelined Hardware Threads Of Execution
US8423715B2 (en) 2008-05-01 2013-04-16 International Business Machines Corporation Memory management among levels of cache in a memory hierarchy
US20090282419A1 (en) * 2008-05-09 2009-11-12 International Business Machines Corporation Ordered And Unordered Network-Addressed Message Control With Embedded DMA Commands For A Network On Chip
US8311174B1 (en) 2008-05-16 2012-11-13 Xilinx, Inc. Persistent synchronization within a media oriented systems transport network
US8154989B1 (en) * 2008-05-16 2012-04-10 Xilinx, Inc. Recovering a shared channel within a network from a deadlock state
US8438578B2 (en) 2008-06-09 2013-05-07 International Business Machines Corporation Network on chip with an I/O accelerator
US8194543B2 (en) * 2008-12-18 2012-06-05 Intel Mobile Communications GmbH Methods of data traffic shaping, apparatus and wireless device
US8549249B1 (en) * 2009-09-21 2013-10-01 Tilera Corporation Supporting secondary atomic operations using primary atomic operations
US8571834B2 (en) * 2010-01-08 2013-10-29 International Business Machines Corporation Opcode counting for performance measurement
US9565094B2 (en) * 2009-11-13 2017-02-07 International Business Machines Corporation I/O routing in a multidimensional torus network
US8429377B2 (en) * 2010-01-08 2013-04-23 International Business Machines Corporation Optimizing TLB entries for mixed page size storage in contiguous memory
US8359404B2 (en) * 2010-01-08 2013-01-22 International Business Machines Corporation Zone routing in a torus network
US9081501B2 (en) * 2010-01-08 2015-07-14 International Business Machines Corporation Multi-petascale highly efficient parallel supercomputer
US9954760B2 (en) 2010-01-29 2018-04-24 International Business Machines Corporation I/O routing in a multidimensional torus network
US8325723B1 (en) * 2010-02-25 2012-12-04 Integrated Device Technology, Inc. Method and apparatus for dynamic traffic management with packet classification
US8359417B2 (en) * 2010-07-16 2013-01-22 Miranda Technologies Inc. Audio/video router
US8560885B1 (en) * 2010-09-16 2013-10-15 The Boeing Company Dynamic redundancy management
US9077616B2 (en) 2012-08-08 2015-07-07 International Business Machines Corporation T-star interconnection network topology
WO2017069771A1 (en) 2015-10-23 2017-04-27 Hewlett-Packard Enterprise Printed circuit board for receiving a switch chip and transceiver modules
US10311542B2 (en) * 2017-03-06 2019-06-04 Thinci, Inc. Node topology employing recirculating ring command and data buffers for executing thread scheduling
US10579428B2 (en) 2017-12-01 2020-03-03 International Business Machines Corporation Data token management in distributed arbitration systems
WO2020236275A1 (en) 2019-05-23 2020-11-26 Cray Inc. System and method for facilitating dynamic command management in a network interface controller (nic)
CN115550293B (zh) * 2022-11-30 2023-03-10 苏州浪潮智能科技有限公司 一种fsi主控制器及其端口路由装置和方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4891751A (en) * 1987-03-27 1990-01-02 Floating Point Systems, Inc. Massively parallel vector processing computer
US5347450A (en) * 1989-01-18 1994-09-13 Intel Corporation Message routing in a multiprocessor computer system
US5689647A (en) * 1989-03-14 1997-11-18 Sanyo Electric Co., Ltd. Parallel computing system with processing element number setting mode and shortest route determination with matrix size information
US5181017A (en) * 1989-07-27 1993-01-19 Ibm Corporation Adaptive routing in a parallel computing system
US5280474A (en) * 1990-01-05 1994-01-18 Maspar Computer Corporation Scalable processor to processor and processor-to-I/O interconnection network and method for parallel processing arrays
EP0485690B1 (en) * 1990-11-13 1999-05-26 International Business Machines Corporation Parallel associative processor system
US5175733A (en) * 1990-12-27 1992-12-29 Intel Corporation Adaptive message routing for multi-dimensional networks
JPH05181816A (ja) * 1992-01-07 1993-07-23 Hitachi Ltd 並列データ処理装置及びマイクロプロセッサ
US5511070A (en) * 1992-05-20 1996-04-23 Xerox Corporation Reservation ring mechanism for controlling contention in a broadband ISDN fast packet switch suitable for use in a local area network
US6157967A (en) * 1992-12-17 2000-12-05 Tandem Computer Incorporated Method of data communication flow control in a data processing system using busy/ready commands
US5583990A (en) * 1993-12-10 1996-12-10 Cray Research, Inc. System for allocating messages between virtual channels to avoid deadlock and to optimize the amount of message traffic on each type of virtual channel
JPH08185380A (ja) * 1994-12-28 1996-07-16 Hitachi Ltd 並列計算機
JPH08251196A (ja) 1995-03-15 1996-09-27 Toshiba Corp 並列計算機
CA2181206C (en) * 1995-07-24 2001-03-13 Anwar Elwalid A method for admission control and routing by allocating network resources in network nodes
JPH1040223A (ja) * 1996-06-17 1998-02-13 Internatl Business Mach Corp <Ibm> 分散並列システムにおける集合通信認識の最適化方法
JP3532037B2 (ja) * 1996-07-31 2004-05-31 富士通株式会社 並列計算機
EP1370966B1 (en) 2001-02-24 2010-08-25 International Business Machines Corporation A novel massively parrallel supercomputer

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010087002A1 (ja) 2009-01-30 2010-08-05 富士通株式会社 情報処理システム、情報処理装置、情報処理装置の制御方法、情報処理装置の制御プログラム及びコンピュータ読み取り可能な記録媒体
US8090895B2 (en) 2009-01-30 2012-01-03 Fujitsu Limited Information processing system, information processing device, control method for information processing device, and computer-readable recording medium

Also Published As

Publication number Publication date
CN1493038A (zh) 2004-04-28
US7668970B2 (en) 2010-02-23
EP1370967A1 (en) 2003-12-17
US7305487B2 (en) 2007-12-04
EP1370967A4 (en) 2009-10-21
US20080091842A1 (en) 2008-04-17
KR20040004532A (ko) 2004-01-13
WO2002084508A1 (en) 2002-10-24
JP3871327B2 (ja) 2007-01-24
CA2438195C (en) 2009-02-03
KR100620835B1 (ko) 2006-09-13
US20040078482A1 (en) 2004-04-22
IL157515A0 (en) 2004-03-28
CN1269053C (zh) 2006-08-09
CA2438195A1 (en) 2002-10-24

Similar Documents

Publication Publication Date Title
JP3871327B2 (ja) 最適化されたスケーラブル・ネットワーク・スイッチ
DK3087708T3 (en) PROCEDURE FOR ROUTING PACKAGES IN A DISTRIBUTED DIRECT CONNECTION NETWORK
EP1005745B1 (en) Router with virtual channel allocation
Bolding et al. The case for chaotic adaptive routing
EP1741229B1 (en) Weighted random scheduling
US7809007B2 (en) Low cost implementation for a device utilizing look ahead congestion management
JP2007528636A (ja) ノンブロッキングで決定論的マルチレートマルチキャストパケットスケジューリング
Shrivastava et al. Design and performance evaluation of a NoC-based router architecture for MPSoC
Chrysos et al. SCOC: High-radix switches made of bufferless clos networks
Nosrati et al. G-CARA: A Global Congestion-Aware Routing Algorithm for traffic management in 3D networks-on-chip
Xia et al. A practical large-capacity three-stage buffered Clos-network switch architecture
Kariniemi et al. Arbitration and routing schemes for on-chip packet networks
Rahman et al. Dynamic communication performance enhancement in Hierarchical Torus Network by selection algorithm
Fulgham et al. A comparison of input and output driven routers
Rahman et al. High performance hierarchical torus network under adverse traffic patterns
Miller et al. Preliminary evaluation of a hybrid deterministic/adaptive router
Kumar et al. Combining adaptive and deterministic routing: Evaluation of a hybrid router
JP2007510378A (ja) ノンブロッキングで決定論的マルチレートユニキャストパケットスケジューリング
Nishikawa et al. A deadlock-free non-minimal fully adaptive routing using virtual cut-through switching
Wang et al. A simple and efficient deadlock recovery scheme for wormhole routed 2-dimensional meshes
Salankar et al. SOC chip scheduler embodying I-slip algorithm
Pappu Scheduling algorithms for CIOQ switches
Miller et al. Preliminary evaluation of a hybrid deterministic/adaptive router
Loh et al. Adaptive, fault-tolerant, deadlock-free and livelock-free interval routing in mesh networks
Kim et al. Drop-and-reroute: A new flow control policy for adaptive wormhole routing

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060320

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060418

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060705

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20060705

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20060705

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20061003

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20061004

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061016

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091027

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101027

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101027

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111027

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121027

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121027

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131027

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees