JP4150336B2 - 共有属性に基づいて圧縮キューペアから複数の仮想キューペアを作成する構成 - Google Patents

共有属性に基づいて圧縮キューペアから複数の仮想キューペアを作成する構成 Download PDF

Info

Publication number
JP4150336B2
JP4150336B2 JP2003505826A JP2003505826A JP4150336B2 JP 4150336 B2 JP4150336 B2 JP 4150336B2 JP 2003505826 A JP2003505826 A JP 2003505826A JP 2003505826 A JP2003505826 A JP 2003505826A JP 4150336 B2 JP4150336 B2 JP 4150336B2
Authority
JP
Japan
Prior art keywords
queue pair
attribute
queue
shared
new
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 - Lifetime
Application number
JP2003505826A
Other languages
English (en)
Other versions
JP2004534311A (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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JP2004534311A publication Critical patent/JP2004534311A/ja
Application granted granted Critical
Publication of JP4150336B2 publication Critical patent/JP4150336B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、ターゲットチャネルアダプタと通信し、InfiniBandTM(インフィニバンド)サーバシステムにおいてデータパケットの送信時に使用されるキューペアを管理するように構成されたホストチャネルアダプタに関する。
重要な役割を担うネットワーキングアプリケーションにおいて、より堅牢で信頼性のあるサーバを提供できるように、サーバのアーキテクチャおよびデザイン面での改良点に、ネットワーキング技術は直面してきた。特に、クライアント要求に応答するサーバを使用するには、ネットワークが動作可能な状態を確実に維持できるように、サーバが極めて高い信頼性を備える必要があった。したがって、サーバの信頼性、アクセス性、およびサービス性に関する重要な問題が存在した。
さらに、マイクロプロセッサの速度と帯域幅が、接続された入出力(I/O)バスの容量を超えて、サーバのスループットをバス容量に制限してしまうという本質的な改良点に、サーバで使用されるプロセッサが直面してきた。したがって、アドレッシング、プロセッサクラスタリング、および高速I/Oの点でサーバの性能を向上させる試みとして、さまざまなサーバ標準が提案されてきた。
これらの提案されたさまざまなサーバ標準により、InfiniBandTM普及推進業界団体(InfiniBandTM Trade Association)により採用されたInfiniBandTMアーキテクチャ仕様(リリース1.0)が開発された。InfiniBandTMアーキテクチャ仕様には、サーバシステム内での中央処理装置と、周辺装置と、スイッチとの間の高速ネットワーキング接続が規定されている。ここで言う「InfiniBandTMネットワーク」という用語は、サーバシステム内のネットワークを指す。InfiniBandTMアーキテクチャ仕様には、I/O動作とプロセッサ間通信(IPC)との両方が規定されている。
InfiniBandTMアーキテクチャ仕様の特別な特徴の1つは、TCP/IPベースのプロトコルなどの既存のネットワーキングプロトコルに存在するトランスポート層サービスのハードウェアに、提案された実装を行うことである。トランスポート層サービスにハードウェアベースの実装を行うと、中央処理装置の処理要求が軽減(すなわち、「オフローディング」)され、ひいては、サーバシステムのオペレーティングシステムがオフローディングされるという利点が得られる。
しかしながら、ハードウェア実装の方法が任意であることから、ハードウェアデザインに実質的にコストがかかる結果を招くことがある。ホストチャネルアダプタ(HCA)が、データ通信用にInfiniBandTMネットワークノードでコンシューマアプリケーションにより使用される複数のキューペア(QP)を管理する。残念ながら、実質的に多数のキューペアが発生し得るため、HCAは、多数のキューペアを管理するために、実質的に大量のリソースを拡張することが必要な場合がある。
ホストチャネルアダプタを効率的かつ経済的に実装可能な構成が望まれている。
また、ホストチャネルアダプタが、リソースを実質的に消費することなく、複数のキューペアを管理可能な構成が望まれている。
上記および他の要望は本発明により達成され、本発明において、共有属性を有する圧縮されたキューペアエントリを格納するように構成されたキューペアテーブルに、同様の特性を有するキューペアを圧縮することにより、ホストチャネルアダプタが複数のキューペアを効率的に管理するように構成される。
本発明の1つの態様は、ホストチャネルアダプタにおける方法を提供することである。この方法は、新しいキューペアを作成する要求を受信することを含む。また、この方法は、新しいキューペアの少なくとも1つの選択された属性と、複数のキューペアテーブルのそれぞれの共有属性との間の整合性を決定することにより、複数のキューペアテーブルの1つを特定し、各キューペアテーブルは、前記対応する共有属性を有するキューペアを表す圧縮されたキューペアエントリを有する。また、この方法は、対応する共有属性とは異なる新しいキューペアの所定の属性を有する新しい圧縮されたキューペアエントリを、少なくとも1つの選択された属性と整合する対応する共有属性を有する1つの共有キューペアテーブルに格納することを含む。
本発明の別の態様は、ホストチャネルアダプタを提供することである。ホストチャネルアダプタは、キューペア属性データベースと、キューペア属性管理モジュールとを含む。キューペア属性データベースは、キューペアの所定の属性を格納するように構成され、それぞれの共有属性を有する複数のキューペアテーブルを含み、各キューペアテーブルは、対応する共有属性を有するキューペアを表す圧縮されたキューペアエントリを格納するように構成される。キューペア属性管理モジュールは、新しい圧縮されたキューペアエントリとして、新しいキューペアの少なくとも1つの選択された属性と整合する対応する共有属性を有するキューペアテーブルの特定された1つに、新しいキューペアを格納するように構成され、新しい圧縮されたキューペアエントリは、対応する共有属性とは異なる新しいキューペアの所定の属性を有する。
本発明のさらなる利点および新規の特徴は、部分的に、以下の記載に示されるとともに、部分的に、以下を検証することにより当業者に明らかになり、または本発明を実施することにより理解を深めるであろう。本発明の利点は、添付の特許請求の範囲に詳細に指摘した手段およびその組み合わせにより実現され達成されてよい。
以下、同じ参照番号が付与されている要素が同様の要素を表す添付図面を参照する。
図1は、本発明の一実施形態による、パケットを生成し送信するように構成されたホストチャネルアダプタ(HCA)12を示すブロック図である。InfiniBandTMアーキテクチャ仕様に準拠したHCA12は、優先度(プライオリティ)に基づいた順序に従って送信パケットを生成することにより、ハードウェアリソースを効率的に利用できるように実装される。さらに、開示されたHCA12は、トラフィックフローを乱すことなく組み込みプロセスを追加できるようにすることにより柔軟性を与える。このようにして、HCA12は、従来の実装技術と比較して、最小限の複雑性で経済的に実装可能である。
InfiniBandTMアーキテクチャ仕様に準拠したHCA12を実装するための従来の構成が抱える1つの問題は、例えば、トランスポート層ヘッダを構築し、パケットシーケンス番号を生成し、サービスタイプ(例えば、信頼性のある接続、信頼性のあるデータグラム、信頼性のない接続、信頼性のないデータグラムなど)、および他のトランスポート層の動作を有効化する等、トランスポート層サービスが最初に実行されてしまうことである。トランスポート層の動作が完了すると、サービス層および仮想レーンマッピング、リンク層フロー制御パケットの生成、リンク層送信クレジットチェッキング、および他の動作を含むリンク層動作のリンク層サービスに、パケットが送信されることになる。この従来のタイプの実装では、InfiniBandTMアーキテクチャ仕様に規定されたネットワーク層に正確に従うという利点があるが、このような構成には、実質的に大規模のハードウェアが必要となる。特に、一般的に、トランスポート層は、より複雑な動作を伴うため、リンク層より高い処理能力を要する。したがって、トランスポート層をハードウェアで実装しても、ハードウェアシステムが実質的に複雑化しないことが望まれる。さらに、優先度(プライオリティ)が低い動作にトランスポート層のリソースを不必要に浪費することに関する問題がある。
開示される実施形態によれば、送信されるデータパケットの優先度(プライオリティ)を決定するために、要望に基づいて、リンク層の動作が分割(パーティショニング)される。特に、図1のHCA12は、受信したWQEの優先度(プライオリティ)を決定するように構成されたプレリンクモジュールと、ネットワーク上での送信用にデータパケットを準備するように構成されたポストリンクモジュールとを含む。プレリンクモジュール40は、プレリンクモジュールにより決定された優先度(プライオリティ)に従ってWQEを順序付けし、関連するキューペア属性に基づいてWQEに対して適切なトランスポート層ヘッダを生成するように構成されたトランスポートサービスモジュール42に、決定された順序でWQEを出力する。言い換えれば、プレリンクモジュール40により、トランスポートサービスモジュール42が、優先度(プライオリティ)が低いWQEにリソースを浪費したり、トランスポート層プロセス内で優先度(プライオリティ)が高いWQEを妨害したりすることがなくなる。このようにして、優先度(プライオリティ)が高い方の接続が、HCAを介してトランスポート層で改良されたサービスを受ける。
例えば、特定用途向け集積回路として実装されたHCA12は、プレリンクモジュール40と、トランスポートサービスモジュール42と、ポストリンクモジュール44と、メディアアクセス制御(MAC)モジュール46とを含む。また、以下に説明するように、HCA12は、トランスポートデータを格納するように構成されたメモリ48およびオーバーフローバッファへのローカルアクセスを有する。
プレリンクモジュール40は、作業キュー要素FIFO50と、仮想レーンFIFO52と、プレリンクプロセスモジュール54と、サービス層−仮想レーン(SL−VL)マッピングテーブル56と、仮想レーン(VL)調停テーブル58と、仮想レーン(VL)調停モジュール60とを含む。
HCA12は、作業キュー要素(WQE)の形で中央処理装置(CPU)からデータを受信し、データがWQE FIFO50に格納されるように構成される。各WQEは、宛先InfiniBandTMネットワークノード(すなわち、「レスポンダ」)、例えば、ターゲットにより実行される対応する所定の動作に対して、CPU(すなわち、「リクエスタ」)により実行されるコンシューマアプリケーションから、対応する要求を指定する。リクエスタとレスポンダとの間の相互作用は、送信作業キューと受信作業キューとを含むキューペア(QP)を介して指定される。
WQEは、サービスレベル(SL)情報と、システムメモリ48における実際のメッセージの場所に関するポインタとを含む。InfiniBandTMアーキテクチャ仕様は、InfiniBandTMネットワーク10を行き交うパケットが16の利用可能なサービスレベルの1つで動作できるようにするサービスレベル(SL)属性を定義する。このようにして、リクエスタは、WQEの選択された優先度(プライオリティ)に基づいて(例えば、サービスの品質、優先度(プライオリティ)などに基づいて)、利用可能なサービスレベルを選択できる。
プレリンクモジュール40は、サービスレベル−仮想レーンマッピング(SL−VLマッピング)と、仮想レーン調停の両方を提供する。特に、InfiniBandTMアーキテクチャ仕様で定義される仮想レーンにより、単一の物理リンク上で複数の論理フローを実行できるようになり、ある仮想レーンに対して、他の仮想レーンに影響を及ぼすことなく、リンクレベルのフロー制御が適用できる。プレリンクプロセスモジュール54は、サービス層仮想層マッピングテーブル56を管理および維持するように構成される。特に、プレリンクプロセスモジュール54は、WQE FIFO50からWQEを取り出し、WQE内で指定されたサービス層に基づいて、対応する仮想レーンを決定する。取り出されたWQEに対して適切な仮想レーンを特定すると、プレリンクプロセスモジュール54は、WQEを対応する仮想レーンFIFO52に転送する。
プレリンクモジュール40は、プレリンクプロセスモジュール54による割り当てに基づいて、WQEを格納するための仮想レーンFIFO52a、52b、52c、52d、52e、および52fを含む。例えば、仮想レーンFIFO52aは、組み込みプロセッサの動作、例えば、リンク層制御パケットおよびエラー状態の処理などと関連するWQEを格納するために使用される。言い換えれば、所定の動作がハードウェアで実行されない場合、要求は、以下に記載する組み込みプロセッサ80によりさらに処理するための組み込みプロセッサキュー78に送信され、したがって、組み込みプロセッサ80は、出力データトラフィックのフローにパケットを出力するための独自の割り当てキュー52aを有する。仮想レーンFIFO52bは、管理トラフィックに関連するWQEを格納するために使用される。仮想レーンFIFO52c、52d、52e、および52fは、それぞれの割り当て仮想レーンに関連するWQEを格納するために使用される。開示した実施形態で使用した割り当て仮想レーンの数は4つであるが、さらなる割り当て仮想レーンに対して、さらなる仮想レーンFIFOが追加されてよい。
VL調停モジュール60は、レジスタを備えた状態マシンとして与えられ、仮想レーンの設定、管理、および切り離しを含む仮想レーンのサービスを提供するためにVL調停テーブル58を管理するように構成される。また、VL調停モジュール60は、どの仮想レーンがサービスを提供するかを決定し、仮想レーンの決定された優先度(プライオリティ)に基づいて、仮想レーンFIFO52からWQEを出力する。例えば、仮想レーンFIFO52bは、典型的に、管理(高プライオリティ)トラフィックを格納し、したがって、VL調停モジュール60は、典型的に、仮想レーンFIFO52bを空にした後、他の仮想レーンFIFO52c、52d、52e、または52fのサービスを提供することになる。その後、VL調停モジュール60は、VL調停テーブル58内のそれぞれの重み付けテーブルに格納された重み付けされた優先度(プライオリティ)に基づいて、仮想レーンFIFO52c、52d、52e、または52fからWQEを選択的に出力することになる。
このようにして、プレリンクモジュール40は、WQEの決定された優先度(プライオリティ)に基づいて、例えば、割り当て仮想レーンに基づいて、または、WQEが組み込みプロセス用、管理トラフィック用、またはフロー制御トラフィック用であるかに応じて、所定の順序でWQEを出力する。
トランスポートサービスモジュール42は、キューペアの設定、管理、および切り離しを含むトランスポートサービスを管理するように構成される。特に、HCA12は、通信管理エージェントから受信したキューペアコマンドを格納するように構成されたキューペア設定FIFO62を含む。通信管理エージェントは、トランスポート接続を設定および切り離す役割を果たし、すなわち、通信管理エージェントは、HCA12に対してトランスポート接続を確立するために、サブネットマネジャと通信する。さらに、接続の確立中、それぞれの端にある通信管理エージェントは、トランスポート接続を確立するために、従来のトランスポート層サービスとは異なり、バイパスサービス(パイバスサービスサブモジュール68aに関して以下に記載)を使用する。
トランスポートサービスモジュール42は、キューペア属性データベース64と、キューペア属性管理モジュール66とを含む。キューペア属性管理モジュール66は、キューペア設定FIFO62にあるキューペアコマンドを処理し、受信したキューペアコマンドに基づいて、キューペア属性データベース64を更新するように構成される。例えば、キューペア属性データベース64は、ソースキューペア番号と、宛先キューペア番号と、あるいはソースエージェントおよび宛先エージェントに関する情報を格納する。したがって、キューペア属性データベース64は、信頼性のある接続サービス、信頼性のあるデータグラムサービス、信頼性のない接続サービス、信頼性のないデータグラムサービス、および生データグラムサービスを含むさまざまなトランスポートサービスをサポートするのに必要なすべての情報を含むことになる。以下、図2および図3を参照しながら、キューペア属性をキューペア属性データベース64内に格納することに関してさらに詳細に説明する。
キューペア属性管理モジュール66は、例えば、ローカル通信エージェントとリモート通信エージェント間でメッセージが交換されるとパケットシーケンス番号が増えるとき、ローカル通信エージェントとリモート通信エージェントとの間の通信中にキューペア属性データベース64を更新することによりトランスポートサービスを管理する。
また、キューペア属性管理モジュール66は、プレリンクモジュール40から受信した対応するWQEに基づいて、対応するトランスポートサービスタイプを管理するようにそれぞれが構成されたサービスサブモジュール68を含む。例えば、バイパスサービスサブモジュール68aは、接続確立中にバイパスサービスを管理するか、または、例えば、生データグラムサービスを使用するネットワークマネジャで管理動作に関連するキューペアを管理するように構成される。CPU支援サービスサブモジュール68bは、組み込み仮想レーンFIFO52aを用いて組み込みプロセッサ動作に基づいてキューペアを管理するように構成され、したがって、CPU支援サービスサブモジュール68bにより、ローカルとリモートの組み込みプロセス間の調整が可能になり、さらに、組み込み仮想レーンFIFO52aと組み合わせてCPU支援サービスサブモジュール68bを実装することにより、リモート通信エージェントから再送要求が受信されれば、メッセージを送信し直すことができるようになる。信頼性のある接続(RC)サービスサブモジュール68cおよび信頼性のない接続(UC)サービスサブモジュール68dは、信頼性のある接続および信頼性のない接続トランスポートサービスのそれぞれに関連するキューペアを管理するように構成される。図示していないが、キューペア属性管理モジュール66も、信頼性のあるデータグラムサービスと、信頼性のないデータグラムサービスと、生データグラムサービスとを管理するためのサブモジュール68を含む。
このようにして、トランスポートサービスモジュール42は、プレリンクモジュール40からWQEを受信すると、WQEを処理するのに適切なサブモジュール68に供給する(例えば、RCサービスサブモジュール68cにより処理されるRCサービスのWQE)。WQEは、サービスレベル(SL)情報と、システムメモリ48における実際のメッセージの場所に関するポインタとを含む。サブモジュール68は、適切なWQEの受信に応答して、WQEを解析し、WQEから、トランスポートデータ(すなわち、トランスポート層のペイロード)のメモリ位置を特定するポインタを取り出し、さらに、サブモジュール68は、トランスポートデータのDMAフェッチを実行し、キューペア属性データベース64内の適切なキューペア属性を更新し、対応するトランスポートフォーマットでWQEのトランスポート層ヘッダを作成して、外部メモリ48に格納し、例えば、サブモジュール68aは、生トランスポートヘッダを生成してよいのに対して、モジュール68cまたは68dは、信頼性のある接続サービスまたは信頼性のない接続サービスに従って、それぞれトランスポートヘッダを生成してよい。
次に、サブモジュール68は、トランスポート層ヘッダの位置を特定するヘッダポインタ(p1)を作成する。次に、サブモジュール68は、ポストリンクモジュール44に、ペイロードポインタ(p2)およびヘッダポイント(p1)をパケット要求90として送信することにより、ポストリンクモジュール44が、供給されたポインタに基づいて送信用のトランスポートパケットをまとめることができるようになる。また、サブモジュール68は、トランスポート層ヘッダおよびトランスポートデータを含むトランスポート層フレームを格納するシステムメモリの位置に関するフレームポインタを生成してよい。必要に応じて、サブモジュール68は、トランスポート層フレーム(トランスポート層ヘッダおよびトランスポートデータを含む)をポストリンクモジュールに転送することもできる。また、CPUは、外部メモリへの書き込み中、データの始まりに空き空間を残してよく、それにより、モジュール68内に作成された実際のヘッダ情報を対応する空のメモリ空間に格納することができる。ポストリンクモジュール44へ転送されたポインタは、外部メモリにあるフレームの始まりを指示するこのポインタであり得る。
ポストリンクモジュール44は、トランスポート層情報(例えば、トランスポート層フレーム、パケット要求など)の受信に応答して、システムメモリ48からトランスポート層ヘッダおよびトランスポート層ペイロードをフェッチして、送信パケットを生成して、送信FIFO70に格納する。特に、ポストリンクモジュール44は、リンク層フィールド(例えば、ローカルおよびグローバルルーティングヘッダ、巡回冗長検査(CRC)フィールドなど)を生成することにより送信パケットを生成し、送信パケットを送信FIFO70に格納し、InfiniBandTMアーキテクチャ仕様に従ってリンク層制御動作を処理するように構成されたリンク層制御モジュール72も含む。送信パケットが生成されると、ポインタは、以下に記載するフリーバッファマネジャ76に転送される。
リンク層制御モジュール72は、クレジットベースのフロー制御に従って送信パケットを出力する。特に、リンク層制御モジュール72は、割り当て仮想レーン上で送信パケットを送信するために利用可能なクレジットをモニタする。特に、1つの仮想レーンごとにクレジットが送信され、この場合、入力仮想レーンバッファからのパケットに基づいて受信側がクレジットを発行し、送信側にクレジットが送信されることにより、送信側がフロー制御を管理できるようになる。このようにして、リンク層制御モジュール72が、特定された仮想レーンのクレジット数が不十分であると決定すれば、リンク層制御モジュール72は、十分な数のクレジットが受信されるまで、対応する送信パケットの送信を延期する。仮想レーンのクレジット数が十分であれば、リンク層制御モジュール72は、送信するためのMACモジュール46に送信パケットを転送する。
MACモジュール46は、InfiniBandTMアーキテクチャ仕様に従って、送信FIFO70に格納された送信パケットを出力するように構成される。特に、MACモジュール46は、送信モジュール74と、フリーバッファマネジャ76と、組み込みプロセッサ入力キュー78と、リンクフロー制御パケット構築モジュール82を有する組み込みプロセッサ80とを含む。送信モジュール74は、メディアアクセス制御動作と、任意に、InfiniBandTMネットワーク10に送信パケットを送信するための物理層トランシーバ動作とを実行するように構成される。
フリーバッファマネジャ76は、送信パケットがレスポンダにより無事受信されると、外部メモリ48から利用可能な空間を解放するように構成される。特に、送信パケットのメモリポインタは、送信パケットが生成されると、ポストリンクモジュール44から送信され、レスポンダが、送信パケットが信頼性のある接続サービスにおいて再送される必要があるというメッセージを送信すれば、送信パケットは、ポストリンクモジュール44により再生成され、レスポンダに再送信することができる。送信パケットが無事受信されると、フレームポインタは、別のエージェントが使用できるように解放されることができる。
組み込みプロセッサ入力キュー78からの情報の受信に基づいて、組み込みプロセッサ80によりフロー制御が処理され、特に、InfiniBandTMアーキテクチャ仕様に従ってフロー制御プロトコルは、クレジットベースのフロー制御を用いる。組み込みプロセッサ80は、組み込みプロセッサ入力キュー78内に格納されたメッセージに基づいて、リンクフロー制御パケット構築モジュール82を使用して、リンクフロー制御パケットを生成する。組み込みプロセッサ80は、リンクフロー制御パケットを外部メモリ48に書き込み、次に、組み込みプロセッサ80は、関連する動作と、組み込みプロセッサ仮想レーンFIFO52a内のフロー制御パケットの位置を特定するポインタとを含むWQEを生成する。次に、リンクフロー制御パケットが出力されて、別の送信ノート用に利用可能なクレジットの数を特定することができる。
このようにして、組み込みプロセッサ80は、フロー制御ヘッダを含むリンクフロー制御フレームを生成し、リンクフロー制御フレームを、ネットワークに送信するためにエラープロセッサ入力キュー78に出力することができる。
図2は、本発明の一実施形態によるキューペア属性データベース64をさらに詳細に示す図である。キューペア属性データベース64は、複数のキューペアテーブル100を含み、これは、圧縮されたキューペアエントリ102を格納するように構成されたキューペア属性管理モジュール66により確立および維持される。特に、各キューペアテーブル100は、共有属性ラベル104により示された、共有属性の対応する割り当て分類を有する。例えば、各キューペアテーブル100は、同一のトランスポートサービスを有するキューペアを格納するためのキューペア属性管理モジュールにより構成されてよく、この場合、テーブル100a、100b、100c、100d、および100eは、信頼性のある接続(RC)、信頼性のあるデータグラム(RD)、信頼性のない接続(UC)、信頼性のないデータグラム(UD)、および生データグラム(RWD)に対するキューペアをそれぞれ格納するためのキューペア属性管理モジュール66により使用され、この例において、テーブル100aは、信頼性のある接続トランスポートサービスを提供するように割り当てられたキューペアエントリ102しか格納しないことになる。
また、各キューペアテーブル100は、共有属性ラベル104により示された、関連する共有属性と同一のサービスレベル(SL)または同一の仮想レーン(VL)を有するキューペアを格納するように構成されてよい。さらに、各キューペアテーブル100は、複数の共有値を格納するように構成されてよく、この場合、キューペアテーブル100は、関連する共有値(例えば、信頼性のある接続および値SL1を有するサービスレベル、または信頼性のある接続および値VL1を有する仮想レーン)を与えるように割り当てられたキューペアエントリ102のみを格納するように構成されてよい。仮想レーンに基づいてキューペアおよび選択されたキューペアテーブルを格納すると、HCAの性能に影響を及ぼしかねないほど処理リソースを犠牲にして圧縮レベルがより高くなるが、サービスレベルに基づいて選択されたキューペアテーブルにキューペアを格納すると、圧縮レベルはより低く、仮想レーンベースの圧縮より処理リソースが少なくてすむため、HCAにより高いレベルの性能を与えることができるようになる。
さらに、仮想レーンに基づいてキューペアテーブル100内に圧縮されたキューペアエントリを挿入すると、フロー制御に使用されるクレジットが仮想レーンベースであるため、トラフィックフローの優先度(プライオリティ)が維持される。
このようにして、図2に示す各キューペアテーブル100は、同一のトランスポートサービス、同一のトランスポートサービスおよび/または同一のサービスレベル、または同一のトランスポートサービスおよび/または同一の仮想レーンを有するキューペアに対してキューペアエントリ102を格納するように構成され得る。したがって、キューペア属性データベース64は、分割されたキューペアテーブル100を使用してより少ない数の物理キューペアを使用して複数の仮想キューペアを格納することができる。キューペアエントリ102に必要な情報を選択されたキューペアテーブルに圧縮するさいの共有属性に関して、他の関連する属性が使用されてよいことを留意されたい。
図3は、本発明の一実施形態による、新しい圧縮キューペアエントリを作成し、キューペア属性データベース64内に格納する方法を示す図である。この方法は、キューペア属性管理モジュール66が、選択された共有属性、例えば、トランスポートサービスのタイプ、サービスレベル、仮想レーンなどに基づいて、キューペア属性データベース64を分割して、複数のキューペアテーブル100を確立するステップ110で始まる。
キューペアテーブル100が確立された後、キューペア属性データベース64は、新しい圧縮キューペアエントリの格納を開始することができる。特に、キューペア属性管理モジュール66は、ステップ112において、例えば、ローカルまたはリモートの通信管理エージェントまたはサブネットマネジャから受信したキューペアコマンドに基づいて、新しいキューペアを作成する要求を受信する。
キューペア属性管理モジュール66は、ステップ114において、受信したキューペアコマンドから新しいキューペア属性を獲得し、ステップ116において、選択された新しいキューペア属性を解析して、新しい圧縮キューペアエントリを格納するために使用されるキューペアテーブル100を特定する。特に、キューペア属性管理モジュール66は、ステップ118において、新しいキューペアからの選択された属性と、キューペアテーブル100のそれぞれの共有属性(それぞれのラベル104で示す)とを比較して、整合性を決定する。
ステップ120において、整合性が検出されなければ、キューペア属性管理モジュール66は、ステップ122において、共有属性として選択されたキューペア属性を有する新しいキューペアテーブル100を作成する。しかしながら、ステップ120において、整合性が検出されれば、キューペア属性管理モジュール66は、ステップ124において、整合する属性104を有する選択されたキューペアテーブル100に、共有属性を除く、新しいキューペアの必要な属性を含む新しい圧縮キューペアエントリ102を格納する。したがって、新しいエントリ102は、共有属性104と異なる情報のみを格納するだけでよいため、データベース64内のより少ない数の物理キューペアから複数の仮想キューペアを格納することができるようになる。
現在最も実用的で好適な実施形態であると見なされるものを用いて本発明を記載してきたが、本発明は、開示された実施形態に限定されるものではなく、添付の特許請求の範囲の趣旨および範囲内に含まれるさまざまな修正および同等の構成に及ぶことが意図されている。
本発明の一実施形態による、送信パケットを生成するように構成されたホストチャネルアダプタを示す図である。 本発明の一実施形態による、図1のキューペア属性データベースをさらに詳細に示す図である。 本発明の一実施形態による、新しいキューペアをキューペア属性データベースに格納する方法を示す図である。

Claims (10)

  1. ホストチャネルアダプタにおける方法において
    新しいキューペアを作成する要求を受信する処理と、
    前記新しいキューペアの少なくとも1つの選択された属性と、複数のキューペアテーブルのそれぞれの共有属性との間の整合性を決定することにより、前記複数のキューペアテーブルの1つを特定する処理であって、前記各キューペアテーブルは、対応する共有属性を有するキューペアを表す圧縮されたキューペアエントリを含むところの処理と、
    前記少なくとも1つの選択された属性と整合する前記対応する共有属性を有する前記1つの共有キューペアテーブルに、前記対応する共有属性とは異なる、前記新しいキューペアの所定の属性を有する新しい圧縮されたキューペアエントリを、格納する処理とを含む方法。
  2. 前記少なくとも1つの選択された属性が、トランスポートサービスのタイプを指定し、前記特定する処理は、前記指定されたトランスポートサービスタイプと、前記キューペアテーブルのそれぞれの共有属性として割り当てられたそれぞれのトランスポートサービスタイプとの間の整合性を決定することを含む、請求項1に記載の方法。
  3. 各キューペアテーブルの前記共有属性が、前記対応するトランスポートサービスタイプと、対応するサービスレベルとを含み、前記特定する処理が、前記指定されたトランスポートサービスタイプおよび前記トランスポートサービスタイプに対して新しいキューペアに割り当てられたサービスレベルおよび前記キューペアテーブルの各々に対して割り当てられた所定のサービスレベルとの両方に対する整合性を決定することをさらに含む、請求項2に記載の方法。
  4. 前記指定されたトランスポートサービスタイプが、信頼性のある接続、信頼性のあるデータグラム、信頼性のない接続、信頼性のないデータグラム、および生データグラムの1つを指定する、請求項3に記載の方法。
  5. 前記新しいキューペアを割り当て仮想レーンに割り当てる処理をさらに含み、各キューペアテーブルの前記共有属性が、前記対応するトランスポートサービスタイプと、対応する所定の仮想レーンとを含み、前記特定する処理が、前記指定されたトランスポートサービスタイプおよび前記トランスポートサービスタイプに対して新しいキューペアに割り当てられた前記仮想レーンおよび前記キューペアテーブルの各々の前記所定の仮想レーンとの両方に対する整合性を決定することをさらに含む、請求項2に記載の方法。
  6. 前記少なくとも1つの選択された属性が、割り当て仮想レーンを指定し、前記特定する処理が、前記割り当て仮想レーンと、前記キューペアテーブルの前記それぞれの共有属性として割り当てられたそれぞれの所定の仮想レーンとの間の整合性を決定することを含む、請求項1に記載の方法。
  7. キューペアの所定の属性を格納するように構成され、それぞれの共有属性を有する複数のキューペアテーブルを含むキューペア属性データベースであって、前記各キューペアテーブルが、対応する共有属性を有するキューペアを表す圧縮されたキューペアエントリを格納するように構成された、キューペア属性データベースと、
    前記新しいキューペアの少なくとも1つの選択された属性に整合する前記対応する共有属性を有する前記キューペアテーブルの特定された1つに、新しい圧縮されたキューペアエントリとして、新しいキューペアを格納するように構成されたキューペア属性管理モジュールであって、前記新しい圧縮されたキューペアエントリが、前記対応する共有属性とは異なる前記新しいキューペアの所定の属性を有するキューペア属性管理モジュールと
    を備えたホストチャネルアダプタ。
  8. 前記共有属性が、トランスポートサービスタイプとサービスレベルの少なくとも1つを含む、請求項7記載のホストチャネルアダプタ
  9. 前記共有属性が、トランスポートサービスタイプと仮想レーンの少なくとも1つを含む、請求項7記載のホストチャネルアダプタ
  10. 前記新しいキューペアの前記少なくとも1つの選択された属性が、前記トランスポートサービスタイプとして、信頼性のある接続、信頼性のあるデータグラム、信頼性のない接続、信頼性のないデータグラム、および生データグラムの1つを指定する、請求項9記載のホストチャネルアダプタ
JP2003505826A 2001-06-18 2002-01-29 共有属性に基づいて圧縮キューペアから複数の仮想キューペアを作成する構成 Expired - Lifetime JP4150336B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/881,848 US6480500B1 (en) 2001-06-18 2001-06-18 Arrangement for creating multiple virtual queue pairs from a compressed queue pair based on shared attributes
PCT/US2002/002541 WO2002103579A1 (en) 2001-06-18 2002-01-29 Arrangement for creating multiple virtual queue pairs from a compressed queue pair based on shared attributes

Publications (2)

Publication Number Publication Date
JP2004534311A JP2004534311A (ja) 2004-11-11
JP4150336B2 true JP4150336B2 (ja) 2008-09-17

Family

ID=25379336

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003505826A Expired - Lifetime JP4150336B2 (ja) 2001-06-18 2002-01-29 共有属性に基づいて圧縮キューペアから複数の仮想キューペアを作成する構成

Country Status (8)

Country Link
US (1) US6480500B1 (ja)
EP (1) EP1399849B1 (ja)
JP (1) JP4150336B2 (ja)
KR (1) KR100883405B1 (ja)
CN (1) CN1285046C (ja)
DE (1) DE60201682T2 (ja)
TW (1) TWI241804B (ja)
WO (1) WO2002103579A1 (ja)

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6885673B1 (en) * 2001-05-21 2005-04-26 Advanced Micro Devices, Inc. Queue pair wait state management in a host channel adapter
US7116673B2 (en) * 2001-08-09 2006-10-03 International Business Machines Corporation Queue pair resolution in infiniband fabrics
US7095750B2 (en) * 2001-08-16 2006-08-22 International Business Machines Corporation Apparatus and method for virtualizing a queue pair space to minimize time-wait impacts
US6922749B1 (en) * 2001-10-12 2005-07-26 Agilent Technologies, Inc. Apparatus and methodology for an input port of a switch that supports cut-through operation within the switch
US6785775B1 (en) * 2002-03-19 2004-08-31 Unisys Corporation Use of a cache coherency mechanism as a doorbell indicator for input/output hardware queues
US7185034B2 (en) * 2002-08-01 2007-02-27 Oracle International Corporation Buffered message queue architecture for database management systems with guaranteed at least once delivery
US7181482B2 (en) * 2002-08-01 2007-02-20 Oracle International Corporation Buffered message queue architecture for database management systems
US7185033B2 (en) * 2002-08-01 2007-02-27 Oracle International Corporation Buffered message queue architecture for database management systems with unlimited buffered message queue with limited shared memory
US7397768B1 (en) 2002-09-11 2008-07-08 Qlogic, Corporation Zone management in a multi-module fibre channel switch
US7076569B1 (en) * 2002-10-18 2006-07-11 Advanced Micro Devices, Inc. Embedded channel adapter having transport layer configured for prioritizing selection of work descriptors based on respective virtual lane priorities
US7010633B2 (en) * 2003-04-10 2006-03-07 International Business Machines Corporation Apparatus, system and method for controlling access to facilities based on usage classes
US7409460B1 (en) 2003-05-12 2008-08-05 F5 Networks, Inc. Method and apparatus for managing network traffic
US9959544B2 (en) * 2003-05-22 2018-05-01 International Business Machines Corporation Updating an application on a smart card and displaying an advertisement
US7420982B2 (en) 2003-07-21 2008-09-02 Qlogic, Corporation Method and system for keeping a fibre channel arbitrated loop open during frame gaps
US7447224B2 (en) * 2003-07-21 2008-11-04 Qlogic, Corporation Method and system for routing fibre channel frames
US7894348B2 (en) 2003-07-21 2011-02-22 Qlogic, Corporation Method and system for congestion control in a fibre channel switch
US7792115B2 (en) 2003-07-21 2010-09-07 Qlogic, Corporation Method and system for routing and filtering network data packets in fibre channel systems
US7406092B2 (en) 2003-07-21 2008-07-29 Qlogic, Corporation Programmable pseudo virtual lanes for fibre channel systems
US7430175B2 (en) 2003-07-21 2008-09-30 Qlogic, Corporation Method and system for managing traffic in fibre channel systems
US7525983B2 (en) * 2003-07-21 2009-04-28 Qlogic, Corporation Method and system for selecting virtual lanes in fibre channel switches
US7684401B2 (en) 2003-07-21 2010-03-23 Qlogic, Corporation Method and system for using extended fabric features with fibre channel switch elements
US7646767B2 (en) 2003-07-21 2010-01-12 Qlogic, Corporation Method and system for programmable data dependant network routing
US7477655B2 (en) 2003-07-21 2009-01-13 Qlogic, Corporation Method and system for power control of fibre channel switches
US7555002B2 (en) * 2003-11-06 2009-06-30 International Business Machines Corporation Infiniband general services queue pair virtualization for multiple logical ports on a single physical port
US7428598B2 (en) * 2003-11-20 2008-09-23 International Business Machines Corporation Infiniband multicast operation in an LPAR environment
US20050220128A1 (en) * 2004-04-05 2005-10-06 Ammasso, Inc. System and method for work request queuing for intelligent adapter
US7930377B2 (en) 2004-04-23 2011-04-19 Qlogic, Corporation Method and system for using boot servers in networks
US7340167B2 (en) 2004-04-23 2008-03-04 Qlogic, Corporation Fibre channel transparent switch for mixed switch fabrics
US8295299B2 (en) 2004-10-01 2012-10-23 Qlogic, Corporation High speed fibre channel switch element
US7792274B2 (en) * 2004-11-04 2010-09-07 Oracle International Corporation Techniques for performing multi-media call center functionality in a database management system
JP4596889B2 (ja) * 2004-11-08 2010-12-15 株式会社日立製作所 ストレージシステムの管理方法
CN100442256C (zh) * 2004-11-10 2008-12-10 国际商业机器公司 提供用于i/o适配器的队列对的方法、***和存储介质
KR100643781B1 (ko) * 2004-12-17 2006-11-10 김영량 냉간단조 공정에 사용되는 표면 윤활처리제의 제조방법
US7581021B2 (en) * 2005-04-07 2009-08-25 International Business Machines Corporation System and method for providing multiple virtual host channel adapters using virtual switches
KR100705600B1 (ko) * 2006-03-13 2007-04-09 삼성전자주식회사 네트워크 엘리먼트 관리시스템의 데이터베이스 관리장치 및그 방법
US20080080504A1 (en) * 2006-09-28 2008-04-03 Mircea Gusat System and method for managing flow of a plurality of packets in a lossless communication network
JP5083323B2 (ja) * 2007-09-21 2012-11-28 富士通株式会社 ラベルスイッチングネットワークにおける通信装置
US8260956B2 (en) * 2008-03-14 2012-09-04 Microsoft Corporation Data transmission queuing using fault prediction
US9871734B2 (en) 2012-05-28 2018-01-16 Mellanox Technologies, Ltd. Prioritized handling of incoming packets by a network interface controller
US9014006B2 (en) 2013-01-31 2015-04-21 Mellanox Technologies Ltd. Adaptive routing using inter-switch notifications
CN105075202B (zh) 2013-03-28 2019-07-12 英国电讯有限公司 用于在分组网络中处理分组的方法、节点和分组网络
US9729473B2 (en) 2014-06-23 2017-08-08 Mellanox Technologies, Ltd. Network high availability using temporary re-routing
US9806994B2 (en) 2014-06-24 2017-10-31 Mellanox Technologies, Ltd. Routing via multiple paths with efficient traffic distribution
US9894005B2 (en) 2015-03-31 2018-02-13 Mellanox Technologies, Ltd. Adaptive routing controlled by source node
WO2017021046A1 (en) 2015-08-06 2017-02-09 British Telecommunications Public Limited Company Data packet network
US10469393B1 (en) 2015-08-06 2019-11-05 British Telecommunications Public Limited Company Data packet network
US9973435B2 (en) 2015-12-16 2018-05-15 Mellanox Technologies Tlv Ltd. Loopback-free adaptive routing
US11018947B2 (en) 2016-01-27 2021-05-25 Oracle International Corporation System and method for supporting on-demand setup of local host channel adapter port partition membership in a high-performance computing environment
US10972375B2 (en) * 2016-01-27 2021-04-06 Oracle International Corporation System and method of reserving a specific queue pair number for proprietary management traffic in a high-performance computing environment
US10469621B2 (en) 2016-01-27 2019-11-05 Oracle International Corporation System and method of host-side configuration of a host channel adapter (HCA) in a high-performance computing environment
US10819621B2 (en) 2016-02-23 2020-10-27 Mellanox Technologies Tlv Ltd. Unicast forwarding of adaptive-routing notifications
US10178029B2 (en) 2016-05-11 2019-01-08 Mellanox Technologies Tlv Ltd. Forwarding of adaptive routing notifications
US10540217B2 (en) 2016-09-16 2020-01-21 Oracle International Corporation Message cache sizing
US10200294B2 (en) 2016-12-22 2019-02-05 Mellanox Technologies Tlv Ltd. Adaptive routing based on flow-control credits
US10644995B2 (en) 2018-02-14 2020-05-05 Mellanox Technologies Tlv Ltd. Adaptive routing in a box
US11005724B1 (en) 2019-01-06 2021-05-11 Mellanox Technologies, Ltd. Network topology having minimal number of long connections among groups of network elements
US11575594B2 (en) 2020-09-10 2023-02-07 Mellanox Technologies, Ltd. Deadlock-free rerouting for resolving local link failures using detour paths
US11411911B2 (en) 2020-10-26 2022-08-09 Mellanox Technologies, Ltd. Routing across multiple subnetworks using address mapping
US11870682B2 (en) 2021-06-22 2024-01-09 Mellanox Technologies, Ltd. Deadlock-free local rerouting for handling multiple local link failures in hierarchical network topologies
US11765103B2 (en) 2021-12-01 2023-09-19 Mellanox Technologies, Ltd. Large-scale network with high port utilization

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5442752A (en) * 1992-01-24 1995-08-15 International Business Machines Corporation Data storage method for DASD arrays using striping based on file length
US6094435A (en) * 1997-06-30 2000-07-25 Sun Microsystems, Inc. System and method for a quality of service in a multi-layer network element
US6006232A (en) * 1997-10-21 1999-12-21 At&T Corp. System and method for multirecord compression in a relational database
AU1377399A (en) * 1997-11-05 1999-05-24 Leep Technology, Inc. System and method for selecting rows from dimensional databases
US6170030B1 (en) * 1998-01-23 2001-01-02 Intel Corporation Method and apparatus for restreaming data that has been queued in a bus bridging device
US6081848A (en) * 1998-08-14 2000-06-27 Intel Corporation Striping packets of data across multiple virtual channels
US6243787B1 (en) * 2000-04-27 2001-06-05 Mellanox Technologies Ltd. Synchronization of interrupts with data pockets

Also Published As

Publication number Publication date
KR100883405B1 (ko) 2009-02-11
JP2004534311A (ja) 2004-11-11
KR20040010707A (ko) 2004-01-31
EP1399849A1 (en) 2004-03-24
WO2002103579A1 (en) 2002-12-27
EP1399849B1 (en) 2004-10-20
DE60201682T2 (de) 2005-03-24
CN1285046C (zh) 2006-11-15
DE60201682D1 (de) 2004-11-25
CN1514977A (zh) 2004-07-21
TWI241804B (en) 2005-10-11
US6480500B1 (en) 2002-11-12

Similar Documents

Publication Publication Date Title
JP4150336B2 (ja) 共有属性に基づいて圧縮キューペアから複数の仮想キューペアを作成する構成
US6459698B1 (en) Supporting mapping of layer 3 priorities in an infiniband ™ network
US6999462B1 (en) Mapping layer 2 LAN priorities to a virtual lane in an Infiniband™ network
US6912604B1 (en) Host channel adapter having partitioned link layer services for an infiniband server system
US7346707B1 (en) Arrangement in an infiniband channel adapter for sharing memory space for work queue entries using multiply-linked lists
US20220214919A1 (en) System and method for facilitating efficient load balancing in a network interface controller (nic)
US7996583B2 (en) Multiple context single logic virtual host channel adapter supporting multiple transport protocols
US7937447B1 (en) Communication between computer systems over an input/output (I/O) bus
EP2406723B1 (en) Scalable interface for connecting multiple computer systems which performs parallel mpi header matching
US8208470B2 (en) Connectionless packet data transport over a connection-based point-to-point link
US7865633B2 (en) Multiple context single logic virtual host channel adapter
US6973085B1 (en) Using application headers to determine InfiniBand™ priorities in an InfiniBand™ network
CN100448221C (zh) 在计算机服务器中共享以太网适配器的方法和装置
US8085769B2 (en) Scaling egress network traffic
US20080059686A1 (en) Multiple context single logic virtual host channel adapter supporting multiple transport protocols
US7457845B2 (en) Method and system for TCP/IP using generic buffers for non-posting TCP applications
US8539089B2 (en) System and method for vertical perimeter protection
US6742075B1 (en) Arrangement for instigating work in a channel adapter based on received address information and stored context information
US6816889B1 (en) Assignment of dual port memory banks for a CPU and a host channel adapter in an InfiniBand computing node
US7209489B1 (en) Arrangement in a channel adapter for servicing work notifications based on link layer virtual lane processing
US6885673B1 (en) Queue pair wait state management in a host channel adapter
US7292593B1 (en) Arrangement in a channel adapter for segregating transmit packet data in transmit buffers based on respective virtual lanes
JP2000235536A (ja) データ通信方式及び装置
US7672299B2 (en) Network interface card virtualization based on hardware resources and software rings
US7613821B1 (en) Arrangement for reducing application execution based on a determined lack of flow control credits for a network channel

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050127

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070213

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070328

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070405

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070813

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: 20080603

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080627

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

Free format text: PAYMENT UNTIL: 20110704

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4150336

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110704

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120704

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20130704

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term