JP2005510893A - データ・ストリーム・プロセッサにおけるデータ・ストリームの操作 - Google Patents
データ・ストリーム・プロセッサにおけるデータ・ストリームの操作 Download PDFInfo
- Publication number
- JP2005510893A JP2005510893A JP2002582564A JP2002582564A JP2005510893A JP 2005510893 A JP2005510893 A JP 2005510893A JP 2002582564 A JP2002582564 A JP 2002582564A JP 2002582564 A JP2002582564 A JP 2002582564A JP 2005510893 A JP2005510893 A JP 2005510893A
- Authority
- JP
- Japan
- Prior art keywords
- descriptor
- scheduler
- queue
- packet
- traffic
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/15—Flow control; Congestion control in relation to multipoint traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/58—Changing or combining different scheduling modes, e.g. multimode scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/60—Queue scheduling implementing hierarchical scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/20—Support for services
- H04L49/201—Multicast operation; Broadcast operation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/20—Support for services
- H04L49/201—Multicast operation; Broadcast operation
- H04L49/203—ATM switching fabrics with multicast or broadcast capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/253—Routing or path finding in a switch fabric using establishment or release of connections between ports
- H04L49/254—Centralised controller, i.e. arbitration or scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/253—Routing or path finding in a switch fabric using establishment or release of connections between ports
- H04L49/255—Control mechanisms for ATM switching fabrics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3081—ATM peripheral units, e.g. policing, insertion or extraction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/901—Buffering arrangements using storage descriptor, e.g. read or write pointers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5638—Services, e.g. multimedia, GOS, QOS
- H04L2012/5646—Cell characteristics, e.g. loss, delay, jitter, sequence integrity
- H04L2012/5647—Cell loss
- H04L2012/5648—Packet discarding, e.g. EPD, PTD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5638—Services, e.g. multimedia, GOS, QOS
- H04L2012/5646—Cell characteristics, e.g. loss, delay, jitter, sequence integrity
- H04L2012/5651—Priority, marking, classes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5678—Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
- H04L2012/5679—Arbitration or scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5678—Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
- H04L2012/5681—Buffer or queue management
- H04L2012/5682—Threshold; Watermark
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/40—Constructional details, e.g. power supply, mechanical construction or backplane
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/50—Overload detection or protection within a single switching element
- H04L49/501—Overload detection
- H04L49/503—Policing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
本特許出願は、2001年4月13日に提出された米国仮特許出願番号60/283746の優先権を主張する。
デジタル・システム間の通信では、通常「パケット」が使用される。図1の参照番号113はパケットを示す。パケットとは、その意味がプロトコルにより決定される単なる一連のビットである。プロトコルとは、パケットを処理するデジタル装置が、パケット内のビットをどのように解釈すべきかを定義するものである。大部分のパケットは、プロトコルが何であれ、特定のパケットをプロトコルに従ってどのように処理すべきかを示すヘッダ115、およびパケットにより送られる実際の情報であるペイロード117を有する。パケットは、このほかに単にパケットの終わりを示し得るトレーラ119を有することがあるが、パケットの送信または処理中に発生した誤りを検出または訂正することができる情報を含むこともある。パケットは、パケットを定義するプロトコルに応じて、固定長または可変長であり得る。以下の説明においては、ヘッダ115およびトレーラ119の内容を「プロトコル・データ」と呼ぶ。この理由は、ヘッダ115およびトレーラ119の内容を解釈する方法が、プロトコルにより完全に決定されるためである。ペイロード117の内容は「ペイロード・データ」と呼ばれる。あるプロトコルに対するパケットは、多くの場合、「フレーム」または「セル」と呼ばれる。
ト121であってもよい。このような場合、IPパケット121を処理する構成要素は、ペイロードを解読装置に送る。解読装置は暗号化されたIPパケット121を解読し、解読したIPパケットをさらに処理するするため、IPパケットを処理する構成要素に返送する。当然ながら、この処理は、解読したIPパケットの他の宛先への送信を含み、その宛先との通信が転送パケット127に対するプロトコルに従う場合には、IPパケットを処理する構成要素は、解読したIPパケットを、転送パケット・ストリームを生成する構成要素に提供し、解読されたIPパケットは転送パケット127のペイロードに格納される。
<パケット・スイッチ>
相互に離れた場所にあるデジタル・システム間で通信を行うためにパケットを使用する場合には、パケットは、システムを接続しているデジタル・ネットワーク上を移動する。デジタル・ネットワークは、物理レベルで、2つの装置間で信号を送信するために、例えば、イーサ(ether)、導線または光ケーブルなどの任意の媒体を使用することができる。パケットは、パケット・スイッチにより送信経路間でルーティングされる。パケット・スイッチは、通常は、パケット・ヘッダ内に含まれている情報によりパケットをルーティングする。
としてIPパケットを有する。このため、パケット・スイッチ103がWAN111からIPノード109(n)宛のIPパケットを受信し、IPノード109(n)がイーサネットLAN105(a)上のイーサネット・ノード107(n)内に位置している場合には、パケット・スイッチ103は、そのペイロードが、そのペイロードとしてIPパケットを運ぶイーサネット・ノード107(n)宛のイーサネット・パケットのストリームである媒体106(n)が必要とする形でパケットのストリームを形成しなければならない。
・ルーティングのためにパケット・ストリームを変換する機能。
に関し、出力ストリームのこの要件は、「サービス・クラス」と呼ばれる。パケット・スイッチは、電子メールからパケット電話までの範囲のサービス・クラスを処理できなければならない。電子メールでは、パケットが、デジタルTVを介して送った後妥当な時間(数時間のこともある)の後に到着しさえすればよく、パケットは一定の時間間隔で到着する必要があるのに対し、パケット電話では、パケット間の時間間隔に対する厳しい要求のみならず、パケットが発信元からその宛先までネットワークを横断するために要する総時間に関しても厳しい制約がある。
<ルック・アサイド・データ・ストリーム操作>
本明細書で開示するデータ・ストリーム操作のための技術は、ルック・アサイド・データ・ストリーム操作を使用する環境で実行される。ルック・アサイド・データ・ストリーム操作の場合には、パケットのペイロードがネットワーク入力から受信され、それがネットワーク出力に出力されるまで記憶される。パケットを受信すると、パケットを表す「記述子」が作成される。本明細書において記述子という用語を使用する場合、記述子は、記憶したペイロードと、環境が、ペイロードが属するパケット・ストリームを操作する方法を制御する追加情報用の識別子とを含む。データ・ストリームの操作は、それが表すパケットではなく記述子により行われる。例えば、入力から出力へのパケットの切替えは、出力によりサービスを受けるキュー上に記述子を置くことにより行われる。記述子がキューの一番前に来ると、出力は、出力のために必要な形の記述子に関連づけられたペイロードを出力するために、操作情報およびペイロード記述子を使用する。マルチキャスト、速度管理、輻輳による廃棄、スケジューリングまたはセグメント分割および再組立てのような他の動作は、ペイロードではなく記述子を操作することにより、全体またはその一部が同じような方法によって実行される。
<ルック・アサイド・データ・ストリーム操作のための環境:図2>
図2は、ルック・アサイド・データ・ストリーム操作が実行される環境201である。環境201は、2つの主な構成要素、すなわち、これらが示すペイロードから独立して記述子を操作するデジタル通信プロセッサ(DCP)202、ならびにマルチキャスト、速度管理および廃棄、スケジューリング、シェーピング、およびデジタル通信プロセッサ202のための再組立ておよびセグメント分割のようなより高いレベルのデータ・ストリーム操作を行うトラヒック管理コプロセッサ(TMC)203を有する。ある実施形態の場合には、DCP202およびTMC203は、追加の外部メモリICを有する集積回路として実施される。別の実施形態においては、DCPおよびTMCはそのようには実施されない。また別の実施形態においては、TMC203をDCP202に内蔵させることができる。DCP202のICの一実施例としては、01845 米国マサチューセッツ州アンドーバー、ウォーター・ストリート120所在のCポート・コーポレーション(C−Port Corporation)社が市販しているC−5(登録商標)がある。C−5のプロトタイプの実施は、1999年11月18日付けの、「デジタル通信プロセッサ」(Digital Communications Processor)という名称で、Cポート・コーポレーション(C−Port Corporation)社の国際PCT特許出願第WO99/59078号公報に詳細に記載されている。
−入力219(0…m)において受信したデータ・ストリームを処理する受信プロセッサ221、および
−出力225(0…p)に送られるデータ・ストリームを処理する送信プロセッサ223を備える。
・入力219(0…m)を介して受信したペイロードを、出力225(0…p)を通して出力されるまでペイロード・バッファ229内に記憶するバッファ管理ユニット227。
チャネル・プロセッサは、異なるタイプの転送パケットおよび物理層データ表現を処理するように構成することができる。記述子は、チャネル・プロセッサにより作成され、読み出される。ほとんどの場合、記述子は、バッファ管理ユニット227内に記憶されているペイロードを表し、記述子が表すペイロードを含むペイロード・バッファ229(i)に対する識別子を含む。記述子がDCP202内にとどまっている限り、その内容は、単に記述子およびそれを読むチャネル・プロセッサを作成するチャネル・プロセッサのニーズにより決定される。DCP202内にとどまっている記述子は、以下の説明においては、チャネル・プロセッサ記述子と呼ぶ。参照番号214はそのような記述子の1つを示す。記述子がTMC203およびチャネル・プロセッサによって処理される場合には、記述子はTMC203が使用するための追加情報を含んでいなければならない。このような追加情報を含んでいる記述子は、以下の説明においてTMC記述子216と呼ぶ。
処理するために、DCP202の構成要素が相互に作用する方法について説明する。受信ストリーム219(i)は、光物理層およびATMトランスポート層を有するデータ・ストリームを処理し、IPパケットを処理するように構成された受信プロセッサ221(i)により受信される。受信プロセッサ221(i)がストリーム219(i)を受信すると、受信プロセッサは、ストリームからIPパケット・ペイロードを抽出し、バッファ管理ユニット227内のペイロード・バッファ229(j)にIPパケット・ペイロードを書き込み、ペイロード・バッファ229(j)のための識別子を保持する。識別子は、チャネル・プロセッサ記述子214(k)内に置かれる。記述子は、さらに、IPパケットから他のプロトコル・データを含むことができる。受信プロセッサ221(i)は、さらに、キュー管理ユニット211内のどの記述子のキュー213(l)が、IPパケットのための記述子を置くべきかを決定するために、IPパケット・ヘッダ内のアドレス情報を処理し、記述子214(k)をキューの末尾に置く。このキュー213(l)は、所望のネットワークに出力する送信プロセッサ223(j)により読み出される。送信プロセッサ223(j)は、イーサネット・トランスポート層および電子物理層によりIPパケットを出力するように構成されている。記述子214(k)がキュー213(l)の先頭に到着すると、送信プロセッサ223(j)は、バッファ229(j)の位置を発見するために記述子214(k)内の情報を使用し、適当なトランスポート層および物理層を使用して、ペイロードをIPパケットとして出力する。
<環境201内のトラヒック管理>
DCP202の動作の上記説明を読めば理解することができると思うが、DCP202は、最も簡単なトラヒック管理機能のためだけにそれ自身の十分なリソースを有する。DCP202は、特定の入力219(i)において受信したデータ・ストリームを特定の出力219(j)にルーティングすることができ、必要に応じてこのルーティングのためにデータ・ストリームを変換することができる。チャネル・プロセッサ内の再循環機能により、さらに、暗号化および解読のようなデータ・ストリームの変換を行うこともできる。しかし、DCP202は、DCP202自身の状態、またはDCP202により接続しているネットワーク内の装置の要件の知識を必要とする、「より高度な」トラヒック管理機能を実行するだけの十分なリソースを有さない。このような機能の例としては、パケットの廃棄、スケジューリング、シェーピング、およびパケット再組立ておよびセグメント分割等がある。
・各トラヒック・キュー204およびトラヒック管理に関連するTMC203およびDCP202の他の構成要素の現在の状態を含む現在のトラヒック管理状態241。
<TMC203の論理的概観:図3>
図3は、トラヒック管理コプロセッサ203の構成要素の論理的概観である。好ましい実施形態においては、TMC203は、2つの主なサブ区画、すなわち、少なくとも1つの処理素子内で実施することができる処理構成要素306と、TMCメモリ307とを含
む。好ましい実施形態においては、すべての処理構成要素306は、1つのIC内で実施される。処理構成要素306は、3つの機能グループ、すなわち、エンキュー・プロセッサ301、トラヒック・キュープロセッサ305およびデキュー・スケジューラ303に分類される。エンキュー・プロセッサ301は、QMU211からTMC記述子216を受信し、どのトラヒック・キューに記述子を入れるのかを決定する。このタスクの一部は、それが表す記述子およびパケットを廃棄すべきかどうか決定する。記述子を廃棄すべき場合には、エンキュー・プロセッサ301は、それを廃棄トラヒック・キュー内に入れるように指定する。トラヒック・キュープロセッサ305は、エンキュー・プロセッサ301から記述子216を受信し、この記述子216を、エンキュー・プロセッサ301が指定したトラヒック・キュー204内にリンクする。デキュー・スケジューラ303は、QMU211に記述子216を提供する次のトラヒック・キュー204を決定し、そのトラヒック・キューの先頭に位置する記述子をQMU211に提供する。好ましい実施形態においては、これら3つのプロセッサは、すべて並列に動作し、これによって記述子のパイプライン処理を行うことができる。
の記述子が表すパケットのサイズ、およびパケットを記憶しているペイロード・バッファ229の現在の状態を含む。パケットのサイズおよびペイロード・バッファ229の現在の状態は、記述子216をトラヒック・キュー204上に置く代わりに、廃棄すべきかどうか、およびどのトラヒック・キュー204を、次にデキュー・スケジューラ303により選択するのかを決定するために使用される。現在のスケジューラの状態318は、デキュー・スケジューラ303によりDCP202に出力するためにどのTMC記述子216を選択するのかを決定する。
<TMC203の一般的動作:図25>
図25は、TMC203およびQMU211の構成要素が、送信プロセッサ223が使用している記述子キュー213内のcp記述子214の到着のスケジュールを作成し、これによって、送信プロセッサ223により記述子が表すペイロードの出力のスケジュールを作成する方法を示すブロック図である。
・記述子が可変長のパケットを表している場合には、記述子213が表すパケットのバイトによる長さ。
の代わりに、TMC記述子216内に元来指定されているトラヒック・キューを使用する。エンキュー・プロセッサ301が、記述子216を受信するトラヒック・キュー204を最終的に決定した場合には、エンキュー・プロセッサ301は、エンキュー・プロセッサ301が指定したトラヒック・キューの末尾にエンキューするために、トラヒック・キュープロセッサ305に記述子216を提供する。
ケジューラ・キューのスケジュールを作成する度に、クレジット値は低減する。キュー247内の記述子キュー213からcp記述子214が除去される度に、QMU211は、デキュー肯定応答メッセージ1925を、記述子キューに対応する仮想出力ポートを指定するTMC203に送り、デキュー・スケジューラ303は、仮想出力ポートのクレジット値を増大させることによりメッセージ1925に応答する。能動状態であり、仮想出力ポートによりゼロのクレジット値でスケジュール中から禁止されていないスケジューラ・キュー523は、スケジュール可能なスケジューラ・キューと呼ばれる。このため、デキュー・スケジューラ303は、能動状態にありスケジュールを作成することが可能なスケジューラ・キュー523(j)の先頭に位置する選択可能なトラヒック・キュー204(i)の先頭に位置するQMU211へ出力される記述子キューを選択する。ここでまた、スケジューラ・キュー523(j)の先頭に位置するトラヒック・キュー204(i)の先頭から記述子が除去されたので、トラヒック・キュー204(i)が選択不能にならない限り、トラヒック・キュー204(i)は、スケジューラ・キュー523(j)の終わりに移動することを指摘しておかなければならない。このため、能動スケジューラ・キューは、その選択可能なトラヒック・キューをラウンドロビン順にサーブする。さらに、トラヒック・キュープロセッサ305は、記述子216をトラヒック・キューに追加することができる。一方、トラヒック・キューはスケジューラ・キュー523内に位置する。
<トラヒック・キューおよび関連データ構造:図4>
トラヒック管理コプロセッサ203のすべての活動は、トラヒック・キュー204を含む。トラヒック・キュー内にTMC記述子が置かれると、記述子に適用される廃棄ポリシー、記述子のスケジュールの作成方法、および記述子が出力されるQMUキューが決定する。図4は、トラヒック・キュー204およびその関連するデータ構造を示す。各トラヒック・キュー204は、トラヒック・キュー識別子423を有し、トラヒック・キュー・パラメータ・ブロック403により定義される。トラヒック・キューに属するTMC記述子216は、TMC記述子キュー419内で一緒にリンクされる。トラヒック・キュー・パラメータ・ブロック403は、キュー419内のヘッド記述子216を指しているtq
ヘッド・ポインタ405、およびキュー419内の末尾記述子216を指しているtq末尾ポインタ407を有する。パラメータ・ブロック403内の残りの情報は、パラメータ・ブロック403が示すトラヒック・キュー204の現在の状態についての情報、記述子216をトラヒック・キューに追加すべきか廃棄すべきかを決定するために使用する情報411、マルチキャストで使用される情報415、およびトラヒック・キューのスケジューリングの際に使用する情報413を含む。
ーのトラヒック・キュー内の記述子が表すパケットに対して使用できるかを決定する。
<スケジューラ階層:図5>
図5は、スケジューラ階層501の概要である。スケジューラ階層501の入力は、一組の能動スケジューラ・キュー523である。スケジューラ階層501の出力は、一組の能動スケジューラ・キュー523の内の1つである。TMC203は、スケジューラ階層501が出力するスケジューラ・キューの先頭に位置するトラヒック・キュー204の先頭に位置するTMC記述子216内のcp記述子214を含むQMU記述子2508を出力する。スケジューラ階層501は、そのノードがトラヒック・クラス・スケジューラ503または内部スケジューラ509であるツリーを形成する。階層内の各スケジューラは、一組の能動スケジューラ・キューをその入力として選択し、入力セットうちの1つをその出力として選択する。
ヒック・キューを含む能動スケジューラ・キューであることである。所与の内部スケジューラ509(k)においては、スケジューラ・キューの入力セットは、内部スケジューラ509(k)に入力を提供するより低いレベルのスケジューラによりスケジュールされたスケジューラ・キューである。内部スケジューラ・キュー509(k)への入力として使用することができるすべてのスケジューラ・キューは能動状態にあるが、内部スケジューラ・キュー509(k)によりスケジュールを作成することはできない。それが、仮想出力ポート521がスケジューラ・キュー509(k)への入力上に位置している場合であり、仮想出力ポートからQMU211に記述子をさらに出力することはできない。
・各仮想出力ポートは、また、その対応する記述子キュー213が、どれだけの数の記述子を現在とることができかを示する。
<エンキュー・データ・メッセージの詳細:図6および図31>
すでに説明したように、TMC203にQMU211が提供するTMC記述子216は、エンキュー・データ・メッセージ内に含まれている。図6および図31は、好ましい実施形態のエンキュー・データ・メッセージ601の詳細を示す。好ましい実施形態においては、エンキュー・データ・メッセージは、最大13の24ビット語からなる。エンキュー・データ・メッセージ601の長さは、エンキュー・データ・メッセージの語2〜12内に含まれているcp記述子214の長さにより異なる。図6の場合には、エンキュー・データ・メッセージの各フィールドに対して1つの行が存在する。列603は1つのフィールドを含む語の語オフセットを示し、列605はフィールド名を示し、列607は語内のフィールドのビット位置を示し、列609はフィールドの内容および目的を記述する。参照番号611〜627は、フィールドに対する行を示す。フィールド615は、tqid423またはmetid420を含むことができることに留意されたい。metidは、記述子が表すパケットがマルチキャストである場合である。
図6および図31を見ればよく理解することができる。タイプ・フィールド611を除くすべてのフィールドに対する値は、タイプ・フィールドがメッセージがないことを示す場合には、TMC記述子216からのものである。記述子フィールド627は、TMC記述子216内のカプセルに入っているcp記述子214を含む。推論的なエンキューの場合、および廃棄優先順位フィールド625の場合には、さらに、コメントが必要になる。推論的エンキューは、DCP202がまだ完全に受信していないパケットに対するパケット記述子をエンキューするための機構である。推論的にエンキューされたパケットをDCP202が完全に受信していた場合には、コミット・エンキュー・メッセージと呼ばれる第2の1語の長さのエンキュー・メッセージが、推論的エンキューを行うためにTMC203に転送される。エンキュー・メッセージ内のタイプ・フィールド611は、推論的またはコミット・エンキュー・メッセージを識別するために使用される。推論的エンキューについては以下にさらに詳細に説明する。廃棄優先順位フィールド625は、TMC記述子216が意図するトラヒック・キューに関連づけられた最大8つの廃棄構成ブロック431の内の1つを選択するために使用される。
<デキュー・データ・メッセージの詳細:図7、図32および図33>
図7、図32および図33は、TMC203がバッファ管理ユニット211に送るデキュー・メッセージ701のフォーマットを示す。これらの各メッセージは、QMU記述子2508を含む。すでに説明したように、各フィールドは、列を示す603〜609、および行を示す701〜725を含む1つの行を有する。大部分のフィールドの目的および内容は、図7を見れば分かる。廃棄理由フィールド723の場合、このフィールドは、エンキュー・プロセッサ301が記述子を廃棄した場合に設定される。廃棄トラヒック・キュー251からのQMU記述子2508が、キュー管理ユニット211に出力された場合には、タイプ・フィールド703および廃棄理由フィールド723は、QMU記述子内のcp記述子214が表すパケットのペイロードを廃棄すべきことおよびその理由を示す。フィールドの内容は、DCP202が、フィールド703内の行動を起こして応答しなければならない場合がある廃棄理由、およびフィールド723内の情報の目的としての働きをする理由とに分割される。この場合も、アイドル・メッセージのフィールド値を除くデキュー・データ・メッセージ701内のすべてのフィールド値は、QMU記述子208内に含まれる。フィールド725はカプセルに入っているcp記述子214を含む。
<トラヒック・キュー・パラメータ・ブロック403の詳細:図8および図34>
図8および図34は、好ましい実施形態のトラヒック・キュー・パラメータ・ブロック403のフォーマットを示す。すでに説明したように、フォーマットは、列を示す801〜809およびフィールドを示す811〜869を含む。列809内のフィールドの大部分は図を見れば理解することができる。以下の説明においては、フィールドは、図4の論理サブ区画に関連する。
<スケジューリング情報413>
この情報を提供するフィールドは、トラヒック・キュー・パラメータ・ブロック403が示すトラヒック・キュー204に対するトラヒック・クラス・スケジューラ503(i)を識別するフィールド819、トラヒック・クラス・スケジューラ503(i)のトラヒック・キュー204に属するどのスケジューラ・キュー523(j)を、選択できる場合に、置くべきかを決定するフィールド831、トラヒック・キュー204を選択することができるかどうか、できる場合には、そのスケジューラ・キューをスケジュールする方法を決定するために使用されるトラヒック・キュー204内のヘッドTMC記述子216に関する情報を含むフィールド845を含む。この情報は、トラヒック・キュー204の記述子が表すパケットのタイプ、およびスケジューラ・キュー523(i)が使用するスケジューリング・アルゴリズムにより異なる。ここでは2つの例について説明する。可変長のパケットを表す記述子の場合には、フィールド845は、パケットの長さを含み、固定長パケットを表す記述子と共に、フィールド845は、固定長パケットにより運ばれているメッセージ内の最後のパケットに対する記述子が、トラヒック・キュー内にすでに受信されたかどうかを示すメッセージの終わりインジケータ(eom)を含む。
<マルチキャスト情報415>
好ましい実施形態においては、TQタグ・フィールド865は、QMU211にトラヒック・キュー204を指定する識別子である。トラヒック・キューは、下記の2つの環境内で指定される。
<廃棄情報411>
フィールド813および814は、トラヒック・キューに対する廃棄構成ブロック443を識別する。これらのフィールドにTMC識別子216内の廃棄優先順位フィールド625を加えたものは、所与の記述子と併用するブロック443内の実際の廃棄構成ブロック431を識別する。フィールド815,816,869および827は、すべて種々の廃棄技術で使用されるデータを含む。
<現在のtq状態情報409>
この情報はフィールド836内に含まれる。このフィールドはトラヒック・キューの先頭に位置する記述子に関する情報を含む。フィールド内の情報が何であるかは、トラヒック・キューの先頭に位置する記述子が表すパケットのタイプにより異なる。可変長パケットである場合には、フィールド836はパケットの長さを含む。固定長パケットの場合には、フィールド836は、多重パケット・メッセージに関するパケットの状態を示す。メッセージ内の最後のパケットが到着したかどうか、到着していた場合には、記述子が表すパケットがメッセージ内の最後のパケットであるかどうかを示す。好ましい実施形態においては、トラヒック・キュー内の各TMC記述子216は、トラヒック・キュー内の次の記述子に対する現在のTQ状態情報を含むフィールド836のようなフィールドに、それを先頭に付加済みである。
<Tqヘッド405およびTq末尾407>
これらは、それぞれフィールド823および811内で実施される。好ましい実施形態においては、識別子は、記述子に対する単なるポインタである。TMC203の設計の機能は、可能な限り、記述子、トラヒック・キューまたはスケジューラ・キューではなく、ポインタが操作されることである。
<TMC203が実行する動作の詳細>
以下の説明においては、エンキュー・プロセッサ301が実行するマルチキャスト動作から開始して、エンキュー・プロセッサ301、トラヒック・キュープロセッサ305、およびデキュー・スケジューラ303が実行する動作の例について詳細に説明する。別の実施形態においては、この動作を異なる方法で実行することができることを理解されたい。
<マルチキャスト:図9および図35>
パケットが1つの入力点にある切替え装置に到着すると、パケットはマルチキャストされ、複数の出力点のところから出力される。システム201においては、マルチキャストは、QMU211またはトラヒック管理コプロセッサ203で行うことができる。本明細書の記述は、トラヒック管理コプロセッサ203でのマルチキャストである。マルチキャストは、エンキュー・データ・メッセージ601で受信したTMC記述子216のコピーを、マルチキャスト詳細テーブル421内で指定されたトラヒック・キュー204に追加することにより行われる。
<マルチキャスト詳細テーブルの詳細>
図9および図35は、好ましい実施形態のマルチキャスト詳細テーブルの詳細を示す。
この場合も、フォーマットは、テーブルのフィールドを表す各行、およびフィールドに関する情報を示す列903〜909を含む表である。すでに説明したように、TMC203は、マルチキャスト詳細テーブル421のリンクされたリストを維持する。フィールド911は、リスト内の次のマルチキャスト詳細テーブル421のmetid420を含む。所与の詳細テーブル421が、リンクされたリストの最後のものである場合には、フィールド913の値により示される。詳細テーブル421は、記述子のコピーを追加することができる最大8つのトラヒック・キューを指定することができる。参照番号915は、1つのトラヒック・キューに対するエントリの詳細図を示す。関連する2つのフィールドが存在する。すなわち、トラヒック・キュー204に対するtqid423を含むフィールド916およびフィールド916の内容が有効であるかどうかを示すフィールド917が存在する。参照番号919で示すテーブルの残りの部分は、残りのトラヒック・キューに対するトラヒック・キューエントリ915である。
<マルチキャスト・エンキュー・データ・メッセージ処理の詳細>
エンキュー・データ・メッセージ601をユニキャストするのかマルチキャストするのかは、エンキュー・データ・メッセージのフィールド619により示される。フィールド619がマルチキャストを示している場合には、フィールド615は、マルチキャストで使用されるMETチェーン内の第1のマルチキャスト詳細テーブル421に対するmetid420を含む。マルチキャスト・エンキュー・メッセージは、マルチキャスト合成を行うために余分な処理時間を必要とする。余分な処理時間は、エンキュー・プロセッサ301により処理されるまで待機している間に、エンキュー・データ・メッセージ601をバッファに記憶するために必要な時間である。一般的に、エンキュー・プロセッサ301は、ユニキャスト・エンキュー・データ・メッセージの処理に厳格な優先順位を付ける。しかし、エンキュー・プロセッサ301により処理される記述子の全数の固定部分がマルチキャスト記述子であることを保証する、ユーザによる設定が可能な機構がある。この部分は、処理される2つの記述子の内の1つから、処理される256の記述子の内の1つまでの範囲内に設定し得る。処理を待つマルチキャスト・エンキュー・メッセージは、最大32のマルチキャスト・エンキュー・メッセージを保持するバッファ内に記憶される。マルチキャスト・エンキュー・メッセージを受信した場合で、マルチキャスト・エンキュー・メッセージ・バッファが満杯である場合は、マルチキャスト・メッセージは、エンキュー・メッセージ・ソース識別子(エンキュー・データ・メッセージのフィールド623)に関連づけられた廃棄キューに廃棄される。そうでない場合には、マルチキャスト記述子を廃棄する決定は、マルチキャスト・グループ内の各宛先トラヒック・キューに対するエンキュー・プロセッサ301により別々に行われる。
テム201での使用である。マルチキャスト・コピーは、各宛先チャネルに対するパケットの1つのコピーを送信するために使用することができる。
<記述子廃棄動作の詳細>
すでに説明したように、エンキュー・プロセッサ301が、トラヒック・キュー内にリンクされるトラヒック・キュープロセッサ305に記述子を提供する前に、エンキュー・プロセッサ301は、記述子が表すパケットを廃棄すべきか、または輻輳を避け、現在の輻輳を管理し、または過去の輻輳から回復するためにタグを付けるべきかを判断する。
<廃棄およびタグ付け動作>
輻輳しているかどうかを判断するために、エンキュー・プロセッサ301が使用する技術は、バッファしきい値の決定、ランダム早期検出、および管理アルゴリズムを含む。特定のトラヒック・キューに対してどの技術エンキュー・プロセッサ301を使用するかは、トラヒック・キューの廃棄構成ブロック431により決定される。輻輳は下記のように処理される。
1.輻輳期間から抜け出すために廃棄するパケット記述子の選択。
2.輻輳を避けるために廃棄する不適合パケット記述子の選択。
3.輻輳を避けようとしている下流のネットワーク素子により、不適合パケットを選択的に廃棄できるように、不適合パケット記述子へのタグ付け。
4.下流のネットワーク素子が、元のトラヒック・ソースに速度を低減するように通知することができるように、輻輳を経験したパケット記述子へのマーク付け。
<バッファ・プールおよび親バッファ・プール:図4>
エンキュー・プロセッサ301が使用するバッファ・プール情報は、廃棄すべきパケットが、バッファ・プールおよび親バッファ・プール・データ構造内に依然として入っているかどうかを判断する。図4は、これらの構造を示す。各バッファ・プールに対するバッファ・プール仕様433(i)は、最小しきい値、最大しきい値、およびバッファ・プールの親に対する最小しきい値を示す。トラヒック・キュー204(i)が使用するバッファ・プール433(j)内のこれらの値は、トラヒック・キュー240(i)のための記述子を廃棄するかどうかを決定するために、エンキュー・プロセッサ301により使用される。バッファ・プール仕様433および親バッファ・プール仕様435は、TMC記述子216がトラヒック・キュー204内でエンキューされるか、トラヒック・キュー204からデキューされる度に更新される。
<廃棄トラヒック・キュー>
トラヒック管理コプロセッサ203内で行われたすべての廃棄動作からの記述子は、TMC203により維持されている32の廃棄トラヒック・キュー251の内の1つに送られる。廃棄トラヒック・キューは、非廃棄トラヒック・キューのようにスケジューリングが行われる。スケジューラ階層は、廃棄キューに対するスケジューラの出力が、廃棄トラヒックのサービス提供専用の仮想出力ポートに送られるように通常構成される。このため、これらの仮想出力ポートは、外へ出てゆくパケット・トラヒックが、バックアップされる時阻止されないで、外へ出てゆくトラヒック・パケットを表す記述子に関連づけられた仮想出力ポート251がこれらの記述子のスケジューリングを阻止する。廃棄したパケット記述子に関連づけられたパケットの長さは、スケジューラ帯域幅計算の際に使用されない。この理由は、DCP202が、廃棄されたパケット記述子を処理するために必要な時間は、パケットの長さとは無関係であるためである。代わりに、0〜255バイトの範囲内の構成可能なパケットの長さが、スケジュールを作成する目的で廃棄キュー記述子に割り当てられる。
1.廃棄キュー識別子は、そうしたい場合には、トラヒック・キューの廃棄構成ブロック431内に指定することができる。
2.トラヒック・キュー廃棄構成により指定されていない場合には、TMC203は、キ
ューを廃棄するために、TMC記述子216のソースに関連するテーブルから廃棄キュー識別子を入手する。TMC識別子のソースに対する識別子は、フィールド603から入手される。
3.前の2つのソースにより指定されていない場合には、廃棄キュー識別子は、トラヒック・キューのクラス・スケジューラ503内に指定される。
<廃棄アルゴリズムのタイプの概要>
好ましい実施形態は、多数の異なる廃棄アルゴリズムを提供する。ここで概要を示す。アルゴリズムの内の1つの詳細な例について以下に説明する。異なる各廃棄アルゴリズムに対する廃棄構成ブロック431に対しては異なるフォーマットが存在する。
(しきい値設定)
しきい値設定は、下記の条件の下で、バッファ・プールのサイズおよび親バッファ・プールのサイズに基づいて、パケット記述子を選択的に廃棄するために使用される。
1.トラヒック・キューの関連するバッファ・プール・サイズが最小しきい値より小さい場合には、記述子を廃棄しない。
2.トラヒック・キューの関連するバッファ・プール・サイズが最大しきい値より大きい場合には、記述子を廃棄する。
3.バッファ・プール・サイズが最小しきい値と最大しきい値との間であり、親バッファ・プール・サイズが、トラヒック・キューの選択した廃棄構成データが指定する親バッファ・プールしきい値より大きい場合には、廃棄のためにパケット記述子を選択する。そうでない場合には、記述子を廃棄しない。
(ランダム早期検出(RED))
バッファ・プールは、適応トラヒック・ソースに関連づけられたパケット記述子を選択的に廃棄するために、ランダム早期検出(RED)を使用するように設定が可能である。好ましい実施形態で使用するREDの実施は、下記の基準に基づいて行われる。
(管理)
速度管理(rate policing)は、そのパケットが、トラヒック・キューの割り当てられた、または保証された伝送速度よりも速い速度で受信されているトラヒック・キューを識別するためにトラヒック・キュー毎に使用される。速度管理により、その保証された速度より速い速度を使用しているトラヒック・キューは、決してトラヒック・キューに適合する他の保証速度に悪影響を与えない。速度管理は、バッファ・プールおよび親バッファ・プールしきい値設定アルゴリズムと併用することができる。
.0)により定義される。TMC管理機能で実施された漏洩バケットは、ATMフォーラムTM4.0適合定義6つをすべてサポートするように設定することができる。漏洩バケットは、TMC外部の条件のモデルのTMC203の使用のもう1つの例である。
(メッセージ廃棄モード)
メッセージが一連の固定長パケットにより運ばれている場合には、各パケットはそれ自身の記述子を有する。このような一連の固定長パケットにおいては、最後のパケットのヘッダは、パケットがメッセージの終りを運んでいることを示すように設定されたメッセージの終わり(eom)フラグを有する。対応するメッセージの始めフラグは存在しない。代わりに、次のメッセージを開始するパケットが、そのeomフラグがセットされているパケットの直後に位置するという事実により識別される。固定長パケットを表すTMC記述子216は、記述子がメッセージの最後のパケットを表す場合にセットされるメッセージの終わりフラグを有する。EOMフラグは、TMC記述子のフィールド613内に位置する。メッセージの始めのための記述子は、同様に、そのEOMフラグ・セットを有する記述子の直後に位置するという事実により識別される。
・非メッセージ廃棄モード
・早期パケット廃棄モード
・部分パケット廃棄モード
・修正部分パケット廃棄モード
廃棄モードは、トラヒックごとのキューに基づいて構成される。各トラヒック・キューは、多数の廃棄モードを使用することができる。廃棄モードは、廃棄構成ブロック433
内のトラヒック・キューに対して指定される。所与のトラヒック・キューに対して使用することができるこれらの廃棄モードの内のどの廃棄モードを、トラヒック・キュー内の所与の記述子が表すパケットに対して使用すべきかは、記述子内のフィールドにより指定される。どのモードも、廃棄が必要かどうかを決定するための技術の内の任意の技術を使用することができる。
早期パケット廃棄モードの場合には、より大きなメッセージを受け入れるか廃棄するかについての決定は、メッセージの第1のパケットに対する記述子を受信した場合に行われる。第1の記述子を廃棄する場合には、パケットのメッセージに対する残りのすべての記述子も廃棄する。その逆も同じである。メッセージ内に2つ以上のパケットが存在する場合には、第1の記述子はそのEOMフラグ・セットを有さない。残りの記述子を廃棄するには、エンキュー・プロセッサ301は、多重パケット・メッセージに属するパケットに対する記述子がすでに廃棄されていて、そのEOMフラグ・セットを含む記述子をまだ受信していないことを示すために、トラヒック・キュー状態フィールド861内のフラグをセットする。メッセージのパケットに対する各記述子を受信すると、エンキュー・プロセッサ301は、メッセージの終わりフラグを探してフィールド613をチェックする。フラグが全くセットされていない場合には、記述子は廃棄される。フィールド613内のEOMフラグがセットされている場合には、エンキュー・プロセッサ301は記述子を廃棄して、EOMフラグを含む記述子を受信したことを示すために、トラヒック・キュー状態フィールド861内のフラグをセットする。全多重パケット・メッセージを処理できる機会を増やすために、エンキュー・プロセッサ301は、バッファ・プールおよび親バッファ・プール仕様が、広いバッファ空間が使用できることを示している限りは、第1のパケットを廃棄することができる。
子を受信しているトラヒック・キューに対するバッファ・プール、および親バッファ・プール情報により示される。
<廃棄の詳細な例:図10および図11>
下記の詳細な例においては、廃棄構成ブロック431、バッファ・プール仕様433、および親バッファ・プール仕様435の詳細について、修正部分パケット廃棄モードが使用され、パケットを廃棄すべきかどうかを判断するために、ランダム早期廃棄検出(RED)技術が使用されている場合に対するエンキュー・プロセッサ301の動作について詳細に説明する。
<廃棄構成ブロック431の詳細>
図10は、この場合に対する廃棄構成ブロック431のフィールドである。廃棄構成ブロック431は2つの部分、すなわち、そのフィールドがすべての廃棄構成ブロックに対して共通な部分1001および1019、そのフィールド1023〜1029が、いつパケットを廃棄すべきかを判断するための技術の内の1つに特有な部分1003からなる。部分1001の共通なフィールドおよびフィールド10019から説明するが、参照番号1002は、通常の方法による、パラメータ・ブロック431の共通の部分のフォーマットを示す。このフォーマットは、各フィールドに対して、列1004〜1006および1つの行を含む。フィールド1019から説明すると、このフィールドは、パケットを廃棄すべきかどうかを判断するために使用する技術を示すコードを含む。この場合、コードは011bであり、RED廃棄技術が適用されていることを示す。
フィールド1011〜1008は、それにトラヒック・キュー204が属するバッファ・プールおよびバッファ・プールの親に対するしきい値を指定する。フィールド1010および1011が指定するバッファ・プール最大しきい値は、バッファ・プールに内蔵させることができるパケットの全最大サイズを指定する。キューに新しいパケットを追加した場合に、この制限を超えた場合には、パケットに対する記述子はトラヒック・キューに追加されず、代わりに廃棄キュー内に入れられる。フィールド1008および1009が指定する親バッファ・プールの最大しきい値は、親バッファ・プールの子であるバッファ・プールにより共有するために使用することができる、パケット記憶装置の大きさを指定する。記述子が表す受信パケットに対して記憶装置の空間が十分ない場合には、記述子はトラヒック・キューに追加されずに、廃棄キュー内に入れられる。
<バッファ・プール仕様433の詳細:図11>
廃棄構成ブロック431のように、バッファ・プール仕様433は、2つの部分、すなわち、参照番号1102で示すすべてのバッファ・プール仕様に共通な部分と、参照番号1103で示すいつパケットを廃棄すべきかを決定するための所与の技術に特有な部分とを含む。図11の部分1103は、RED技術が必要とする部分である。バッファ・プール仕様433は、廃棄構成ブロック433と同じ方法で示されている。
計算の際に平均バッファ・サイズを使用し、フィールド1117はその値が最後に更新された時間であり、一方、フィールド1119は、値自身を含む。フィールド1121〜1129はすべてRED廃棄技術で使用する値を含む。フィールド1101および1115は、バッファ・プール仕様433の共通部分1102からの情報を含む。
<廃棄動作の詳細:図12>
図12は、トラヒック・キューの廃棄構成ブロック431が、パケットを廃棄すべきかどうかを決定するために、RED技術が使用することを示す廃棄データ・タイプ・フィールド1019、および部分的パケット廃棄の修正PPDフォームを使用すべきことを示すeom制御フィールド1013内にあるタイプを有する場合に、エンキュー・プロセッサ301が、多重パケット・メッセージを処理する方法のフローチャートである。トラヒック・キューが、メッセージ内のパケットに対する記述子を受信している限りは、エンキュー・プロセッサ301は、トラヒック・キューに関するループ1205を実行する。
・新しいBPszは、廃棄構成ブロック431のフィールド1027および1029の最小許容しきい値の値より小さい。この場合、パケットは廃棄されない(分岐1219)。
廃棄構成ブロック431内のバッファ・プールに対する最大しきい値フィールドの値より大きい。この場合、パケットは廃棄される(分岐1223)。
<推論的エンキュー:図13>
推論的エンキューは、受信プロセッサ221が、記述子216が表す全パケットを受信する前に、トラヒック・キュー204にTMC記述子216を提供できるようにする技術である。TMC203は、受信プロセッサ221が全パケットの受信に成功したか失敗した後まで、TMC記述子216内に含まれているcp記述子214が、QMU221への出力でないことを保証する。受信プロセッサは、一組のエンキュー・データ・メッセージ601により推論的エンキューを行う。第1のエンキュー・データ・メッセージは、パケットに対するTMC記述子216を含み、フィールド611内に記述子216が表すパケットが推論的にエンキューされていることを示す。受信プロセッサ221がパケットの処理を終了した場合には、第2のエンキュー・データ・メッセージ、コミット・メッセージが後に続く。この場合も、フィールド611は、メッセージがコミット・メッセージであることを示す。コミット・メッセージが到着した後でだけ、TMC203は、第1のエンキュー・データ・メッセージ内に含まれているcp記述子214を出力する。
と推論的エンキュー機構によるトラヒック・キュー204内のエンキュー間の固定待ち時間は、全パケットの受信をTMC203への記述子の提供と分離し、そのため、小さなパケットを受信しているチャネル・プロセッサが、より長いパケットを受信しているチャネル・プロセッサがその全パケットを受信するまで阻止された場合に発生する受信帯域幅を狭くしないで、この記述子の厳格なラウンドロビン処理をできるようにする。
る前に、スケジューラ・キュー523からトラヒック・キュー204を除去し、それをトラヒック・キューのトラヒック・クラス・スケジューラ503に関連づけられた選択できないトラヒック・キュー内に入れる。トラヒック・キュープロセッサ305が、トラヒック・キュー204を選択可能にするコミット・メッセージを受信した場合には、トラヒック・キュープロセッサ305は、トラヒック・キュー204をトラヒック・クラス・スケジューラに対するスケジューラ・キューに返送する。
<デキュー・スケジューラ303が実行する動作の詳細>
デキュー・スケジューラ303は、スケジューラ階層501内のスケジューラを実行し、これによってTMC203のスケジューリング機能、シェーピング機能、およびセグメント分割機能および再組立て機能を実行する。最初に、TMC203の好ましい実施形態で使用することができるスケジューラの一般的な説明を行い、次に、好ましい実施形態のスケジューラが使用するスケジューリング・アルゴリズム、シェーピング・アルゴリズム、およびセグメント分割アルゴリズム、および再組立てアルゴリズムについて説明し、最後にスケジューラの詳細な例およびこれらスケジューラの実施および実行方法について説明する。
<TMC203内のスケジューラ>
概論ですでに指摘したように、デキュー・スケジューリングは、TMC203のユーザによる広範な設定が可能であるスケジューリング階層501により行われる。以下の説明においては、スケジューラの種類、スケジューラの構成方法、およびスケジューラの動作方法について詳細に説明する。
・ラウンドロビン
・各入力スケジューラ・キューに加重が与えられ、所与の入力スケジューラ・キューが受信した帯域幅の共有が、所与の入力スケジューラ・キューの加重と、すべての入力スケジューラ・キューの全加重との間の関係により決まる加重均等化共有
・パケット・バイト長をベースとする加重均等化共有スケジューリングを行う、フレームをベースとする不足ラウンドロビン
・その記述子が固定サイズのパケットを表す、入力トラヒック・キュー間で使用できる帯域幅を割り当てるグループ化加重均等化キューイング
好ましい実施形態においては、トラヒック・クラス・スケジューラ503は、上記スケジューリング・アルゴリズムの内の任意のものを使用するように設定することができるが、内部スケジューラ509は、厳格な優先順位アルゴリズム、ラウンドロビン・アルゴリズム、または加重均等化共有アルゴリズムだけを使用するように設定することができる。当然ながら、階層501を通してスケジューラ・キューが移動する経路209に沿ったいくつかの点で、異なるタイプのスケジューラを使用することもできる。
<構成スケジューラ:図14>
図14は、好ましい実施形態でスケジューラを構成するユーザが使用することができるリソースである。これらのリソースが、以下の説明において論理スケジューラ1401と呼ぶものを構成している。ユーザは、論理スケジューラ1401が提供するリソースの中から選択を行うことによりトラヒック・クラス・スケジューラまたは内部スケジューラを構成する。リソースは、厳格な優先順位スケジューラ1407、過度スケジューラ141
5、および保証スケジューラ1413を含む。
<スケジューラが使用するアルゴリズムの詳細>
好ましい実施形態でスケジューラが使用するアルゴリズムの内のラウンドロビンおよび厳格な優先順位についてはこれ以上の説明は省略する。以下の説明においては、加重均等化キューイング、フレームをベースとする不足ラウンドロビン、およびグループ化加重均等化キューイングについてより詳細に説明する。
<加重均等化キューイング>
加重均等化キューイングは、動的に、システム201を通過するトラヒックのいくつかの流れに優先順位または加重を適用する。低い加重を有するトラヒックの流れは、すべての流れが使用することができる帯域幅のより大きな部分を入手し、所与の流れが使用することができる帯域幅の幅は、流れの現在の数および加重により変化する。加重均等化キューイングの利点は、即時送信を必要とする対話型トラヒックのようなトラヒックが、低い加重を受けとることができることであり、一方、即時送信を必要としないトラヒックは、高い加重を受け取ることができることである。種々のトラヒックのどれも、他のトラヒックを阻止しないし、すべてのトラヒックが必要とするアクセスのタイプを入手する。通常、加重均等化キューイングアルゴリズムを使用する場合、入力セッションが受信するサービスまたは帯域幅の部分的な大きさは、そのセッションの加重をすべての入力セッションの加重の合計で割ったものに等しい。TMC203においては、スケジューラの各能動およびスケジュール可能な入力スケジューラ・キュー523は、1つの入力セッションを表す。
る多くの論文がこれまでに発表されている。これらの種々の加重均等化キューイングアルゴリズムは、すべて一般化プロセッサ共有(GPS)モデルに由来するものであって、すべてのアルゴリズムは異なる均等化特性を有する。TMC203の好ましい実施形態で使用するアルゴリズムの種々のタイプは、最も簡単な構造で最善の遅延および均等化特性を達成しようとする。
<フレームをベースとする不足ラウンドロビン>
フレームをベースとする不足ラウンドロビン・スケジューリング・アルゴリズムは、可変長パケットからなるトラヒック・ストリーム用に使用される。このアルゴリズムは、通常帯域幅保証を必要としないか、または厳格なジッタおよび遅延要件を有するトラヒック・キュー間で使用できるサービス帯域幅を加重均等化共有割当てする。このアルゴリズムは、通常、長いメッセージ・パケットおよび遥かに短い肯定応答パケットが混ざっているTCPトラヒックに対して特に有用である。
ラ・キューから次のスケジューラ・キューに移動する前に、トラヒック・キューが受信することができるサービスの最大量を指定する最大割合(maximum quantum)、および
・トラヒック・キューが、高優先順位キューから現在のスケジューラ・キューへ移動する前に、トラヒック・キューが受信するサービスの量を指定する最小割合(minimum quantum)。
<グループ化加重均等化キューイング>
トラヒック・クラス・スケジューラは、グループ化加重均等化キューイングアルゴリズムを使用することができる。このアルゴリズムは、加重均等化キューイングアルゴリズム
に類似しているが、共通のサービス加重およびパケット・サービス間隔を有する複数のグループのトラヒック・キュー間でサービス帯域幅を分配するためにすでに修正されている。このアルゴリズムは、入力スケジューラ・キュー毎の加重均等化共有とは反対に、トラヒック・キュー毎に加重均等化共有を割り当てる。
1.同じ入力スケジューラ・キューに割り当てられたすべてのトラヒック・キューは、同じサービス加重および同じパケットサービス間隔を共有する。すなわち、スケジューラは、固定の一組の加重、各入力スケジューラ・キュー内のすべてのトラヒック・キューに対する1つの加重をサポートし、また、同じ入力スケジューラ・キューに属するすべてのトラヒック・キューは、同じサイズ2のパケットを運ぶものと仮定する。スケジューラは、選択可能な各トラヒック・キューに対して加重均等化共有を保証するが、最悪の場合の最初の待ち時間上のトラヒック・キューの保証された境界は、そのトラヒック・キューのスケジューラ・キュー内の選択可能なトラヒック・キューの数により影響を受ける恐れがある。このスケジューリング・アルゴリズムは、帯域幅を保証する場合、またはATMセルのような固定サイズのパケットを運ぶトラヒック・キューの間で使用できる帯域幅を割り当てる場合に有用である。
<シェーピングの詳細>
TMC203内でのシェーピングは、必要なデキュー伝送速度特性を達成するために、トラヒック・キューまたはトラヒック・キューの集合体からパケット記述子のデキューを遅らせるために使用する機構として定義される。TMC203においては、シェーピングは非作業保存加重均等化キューイングアルゴリズムを使用するスケジューラで実施される。このようなスケジューラは、トラヒック・ストリームのデキュー・サービス速度が、所与の時間中指定の最大速度を超えないように、能動トラヒック・ストリームへのサービスを遅らせるように構成することができる。すべてのシェーピングされたスケジューリングにより、短期間のデキュー速度はバースト的になりやすくなり、場合によっては、多数の能動スケジューラ入力の多重化により導入されたジッタおよび遅延により、必要な速度制限を超える恐れもある。
<シェーピングのためのスケジューラの構成>
シェーピングのための論理スケジューラ1401を構成するために多数の技術を使用することができる。これらすべての技術の基礎は、非作業保存スケジューラとして保証スケジューラ1413を構成し、過度スケジューラ1415に帯域幅を割り当てないことである。より詳細には、グループ化加重均等化キューイングアルゴリズムを保証スケジューラ1413で使用する場合には、
・各トラヒック・キュー入力は、トラヒック・キューが属する入力スケジューラ・キューの加重が指定する速度にシェーピングされる。
(二重漏洩バケットによるシェーピング)
Q5内での二重漏洩バケット(dual leaky bucket)スケジューリングは、短期間のピーク速度およびある程度長い期間中の維持速度へのデキューを制限する方法での固定長トラヒックのスケジューリングに制限される。このスケジューリングは、グループ化モードで動作している非作業保存加重均等化キューイングトラヒック・クラス・スケジューラ503に接続している複数のペアのスケジューラ・キュー523を通してサポートされている。各組の偶数のスケジューラ・キューは、必要な一次速度でパケットを出力するように構成しなければならない。奇数のスケジューラ・キューは、保持速度で
パケットを出力するように構成しなければならない。トラヒック・キューをスケジューラ・キューに追加しなければならない場合には、保持速度漏洩バケット・アルゴリズムが、パケットを今送信すれば保持速度漏洩バケットに違反するのかどうかを判断するために使用される。保持速度漏洩バケットに対する状態情報は、管理2のフィールド816内のトラヒック・キューのパラメータ・ブロック403内に、トラヒック・キュー毎にセーブされる。このため、それに対する廃棄ポリシーが二重管理であるトラヒック・キュー504は、デュアル・シェーピング・アルゴリズムによりスケジュールされるスケジューラを指定することはできない。トラヒック・キュー504は、さらに、そのスケジューラ入力構成3011(図30)内にデュアル・シェーピングを指定しなければならないし、また、入力構成に適当な定数を選択しなければならない。定数は、スケジューラ入力のどのセットが使用されているのか、パケット内で測定した漏洩バケット周期、および漏洩バケット限界を定義しなければならない。
<セグメント分割および再組立て>
システム201は、長いパケットにより送られたメッセージを、一連の短いパケットにより送られたメッセージに変換することができるし、一連の短いパケットにより送られたメッセージを、長いパケットにより送られたメッセージに変換することもできる。これらの変換の最初の変換はセグメント分割と呼ばれ、第2の変換は再組立てと呼ばれる。その一例が、一連のATMパケットのペイロードとして送られるIPパケットである。セグメント分割の場合、IPパケットは、一連のATMパケットのペイロードにセグメント分割される。再組立ての場合には、上記一連のATMパケットのペイロードが、IPパケットに再組み立てされる。
ューラと呼ばれる。好ましい実施形態においては、ユーザは、セグメント分割スケジューラまたは再組立てスケジューラになるように、トラヒック・クラス・スケジューラを構成することができる。セグメント分割スケジューラまたは再組立てスケジューラを指定するように構成されるトラヒック・キューは、さらに、それぞれ、セグメント分割トラヒック・キュー、または再組立てトラヒック・キューと呼ばれる。セグメント分割の場合、セグメント分割の際に使用されるパラメータの値は、セグメント分割スケジューラが構成された場合に指定される。再組立ての場合には、再組立てトラヒック・キューが構成された場合に、再組立て動作のためのパラメータが指定される。
<セグメント分割の詳細>
トラヒック・キューのセグメント分割の場合には、セグメント分割トラヒック・キューの先頭に到着した1つのTMC記述子216が、一連のQMU記述子2508を生成させる。一連の各QMU記述子は、エンキューされた記述子のコピー、およびプログレス・インジケータ(フィールド715)を含む。このプログレス・インジケータ(フィールド715)により、一連のQMU記述子に対応するパケットを送信しているDCP202内のチャネル・プロセッサは、一連のQMU記述子が生成される1つのTMC記述子が表すパケットのペイロードのどのバイトを、一連の各QMU記述子が表すパケットを形成するために取り出す必要があるのかを決定することができるようになる。
・トラヒック・キューのトラヒック・キュー・パラメータ・ブロック403内の情報フィールド836;再組立てトラヒック・キュー内においては、このフィールドの値は、トラヒック・キューの先頭に現在位置する記述子が表す各パケットの長さである。
・セグメント分割スケジューラ内のペイロード・サイズ・フィールド;このフィールドの値は、シーケンスの各パケット内のペイロードの最大サイズである。
セグメント分割スケジューラが、1つの可変長パケットを表す記述子に対するエンキュー・メッセージから生成するデキュー・データ・メッセージの数は、下記により計算される。
シーケンスに属する各デキュー・データ・メッセージ701は、セグメントのこの記述子が生成される前に、セグメント分割中のパケットのペイロードのどれだけが残ったのかを示すフィールド715内のパケット・バイトの残りの値を含む。
<再組立て>
再組立ては、1つのパケットのペイロードを形成するための一連のパケットのペイロードの結合を含む。DCP202は結合を行う。それ自身の上で結合を行う目的で、DCP202は、一連の小さなパケットから大きなパケットを正しく再構成するために、状態の種々の断片を維持しなければならない。TMC203は、大きなパケットに対して必要なパケットを表すQMU記述子が、仮想出力ポートを通して出力された他のQMU記述子によりインタリーブされないで、再組立てスケジューラに対する仮想出力ポート521を通して出力されるように、TMC203からの一連のパケットに対するQMU記述子2508のデキューを編成することにより結合を行うためにDCP202内で必要な状態を最小にする。再組立て中の再組立てトラヒック・キューの役割は、シーケンスを提供することである。再組立てに関連する問題は、シーケンス内のすべての記述子を受信し、記述子を出力することができるようになるまで、記述子を記憶する際に結合されるTMC203内のリソースの量である。TMC203で実施される再組立ては、この問題を2つの方法で処理する。
・シーケンス内のパケットの流れが中断したことを判断するために、タイムアウト機構を使用する方法。中断が検出された場合、シーケンスに対する記述子は、修正したPPD
廃棄アルゴリズムにより廃棄される。
・パケットは、ソースにより送られる順序で受信される。
・ソースは、異なる一連のパケットに属するパケットとインタリーブしない。
・異なるソースにより送られたシーケンスに属するパケットはインタリーブすることができる。
TMC203は、TMC203内で再組立てされる一連のパケットの各ソースに対応するトラヒック・キューが存在するように、シーケンスを含むトラヒックのストリームを処理する受信プロセッサが、それらがTMC203に送るTMC記述子216内のソースに対応するトラヒック・キューを指定するようにすでに構成されている。このため、所与の発信元からシーケンスに対するTMC記述子216を受信しているトラヒック・キューは、それらがDCP202内で受信された順序でTMC記述子を受信する。しかし、他の発信元からの任意のインタリーブされたTMC記述子は含まない。チャネル・プロセッサは、シーケンス内の最後のパケットに対するTMC記述子に、そのパケットがEOM(メッセージの終わり)パケットであることを示すマークを付ける。このため、再組立てされるパケットに対する記述子を受信するトラヒック・キューは、少なくとも1つのTMC記述子のインタリーブされていないシーケンスを含み、記述子の各シーケンスは、トラヒック・キューが対応する発信元からの一連のパケットに対応し、DCP202で受信し、まだ再組立てしていない一連のパケットを表す。パケットの最後のシーケンスに属するパケットが、すべてDCP202に到着していない場合には、記述子の最後のシーケンスは、そのパケットがEOMパケットであることを示す記述子を含んでいない。
ベースとする不足ラウンドロビンおよびグループ化加重均等化キューイングアルゴリズムは、スケジューリングのためにトラヒック・キュー毎の状態を必要とする。
<スケジューラの実施の詳細>
好ましい実施形態においては、スケジューラは、TMC IC1503内のスケジューラ・メモリ1515で実施され、メモリ1515内にスケジューラの状態をセットすることにより構成される。各スケジューラは、スケジューラ階層501内のレベルおよびレベル内のその数により参照され、スケジューラへの所与の入力は、スケジューラのレベル、レベル内の数および入力の数により参照される。好ましい実施形態においては、各レベルは、そのレベルにおけるスケジューラ入力を指定するために使用することができる値の範囲を有し、スケジューラの数は、範囲内のオフセットであり、スケジューラに属する入力は、オフセットと(スケジューラの入力の数から1を引いたもの)の間の入力である。入力は、1つのスケジューラだけに属することができる。好ましい実施形態においては、1つのレベル0のスケジューラは、32の入力を使用することができ、レベル1のスケジューラは512の入力を使用することができ、レベル2のスケジューラは4Kの入力を使用することができ、レベル3のスケジューラは8Kの入力を使用することができる。すでに説明したように、スケジューラ階層のリーフは、常にトラヒック・クラス・スケジューラ503であり、内部ノード内部スケジューラ509である。
<トラヒック・クラス・スケジューラ503の詳細:図21>
図21は、階層501内の特定のトラヒック・クラス・スケジューラ503(i)の位置、および好ましい実施形態のその行動を定義する情報である。トラヒック・クラス・スケジューラ503(i)は、階層内のリーフであるので、その一組の入力スケジューラ・キューは、そのトラヒック・キュー204が、トラヒック・クラス・スケジューラ503(i)を指定する能動スケジューラ・キュー523の内の一組531である。その各入力2101に対して、トラヒック・クラス・スケジューラ503(i)は、入力2101に関連づけられたスケジューラ・キュー523に対する入力状態2103を維持する。所与の入力2101(i)に対する入力状態2103(i)は、入力がバックログされているかどうか(フィールド2105)、すなわち、入力の関連するスケジューラ・キュー523(j)が能動状態にあるかどうか、アルゴリズム依存入力状態2106、および入力2101に関連づけられたスケジューラ・キュー523内のヘッド・トラヒック・キュー、および末尾トラヒック・キューの識別子2107および2109を含む。アルゴリズム依存入力状態2106は、スケジューラが使用するスケジューリング・アルゴリズムにより変化する入力スケジューラ・キューに関連する状態である。
存状態2119の内容は、2113で指定されるスケジューラ・タイプにより異なり、そのスケジューリング・アルゴリズムを実行するために必要なスケジューラ・タイプおよび状態を構成するために必要な情報を含む。
<内部スケジューラ509の詳細:図22>
図22は、内部スケジューラ509(i)の詳細なブロック図である。接続状態2121およびスケジューラ状態2111は、内部スケジューラ509(i)に対するものも、トラヒック・クラス・スケジューラ503に対するものも同じである。内部スケジューラ509(i)とトラヒック・クラス・スケジューラ503の間の機能的な違いは、内部スケジューラ509(i)は、スケジューラ階層501の内部ノードであり、したがって、内部スケジューラ509(i)は、それに属するものが、階層501内の下位のスケジューラ509(i)であるスケジューラの動作により決まるスケジューラ・キューの内の一組534のスケジューリングを行うことである。この機能的な違いは、スケジューラ509(i)が、入力に現在バウンドしているスケジューラ・キュー523の位置を発見し、そのスケジューラ・キューが能動状態であるばかりでなく、スケジュール可能であるかどうかを判断することができるようにする情報を含む入力状態2205に反映される。
<仮想出力ポートの詳細:図27>
図27は、仮想出力ポート521(i)を実施するために、好ましい実施形態で使用するデータ構造である。フィールド2701は、仮想出力ポート521(i)が使用することができる現在のクレジット、すなわち、仮想出力ポート521(i)に対応する記述子キュー213に現在追加することができる記述子の数を含む。フィールド2701は、デキュー/デキュー肯定応答ループの往復の待ち時間がある場合に、仮想出力ポートの全帯域幅を確実に維持することができるように計算される最大デキュー・クレジットにより構成される。TMC203が、スケジューラ階層501を通るその経路529が仮想出力ポート521(i)を含むスケジューラ・キューに属するトラヒック・キューから記述子を出力する場合は常に、フィールド2701の値は減少する。QMU217が、TMC203に、仮想出力ポート521(i)に対応する記述子キュー213から記述子が除去されたことを示すデキュー・データ・メッセージ肯定応答1921を送信する場合は常に、フ
ィールド2701の値は増大する。これらのメッセージを送る機構については以下に説明する。現在のクレジット・フィールド2701の値がゼロである場合には、その経路529が仮想出力ポート521(i)を通るスケジューラ・キューのどれに対してもスケジューリングを行うことができない。フィールド2703は、仮想出力ポート2703の識別子である。好ましい実施形態においては、識別子は、単に、仮想出力ポートに対応する記述子キュー213の識別子である。フィールド2701および2703は、図22に示すように、スケジューラ階層501内の仮想出力ポート521(i)上に位置するスケジューラ509に送られる。2705で一緒にグループ分けされたフィールドは、スケジューラ階層501内の仮想出力ポート521(i)の位置を指定する。この位置は、特定のスケジューラ509(j)への入力を指定することにより指定される。スケジューラ509(j)は、階層(フィールド2707)内のそのレベルおよびレベル(フィールド2709)内のその位置により指定され、フィールド2711は、スケジューラ509(j)への入力を指定する。
<スケジューラ階層501の動作の詳細>
スケジューラ階層501は、スケジューラ階層501の状態を変更するスケジューラ・イベントに応じて、スケジューラ・キュー523のスケジューリングを行う。このようなイベントが発生する度に、デキュー・スケジューラ303は、最初、そのイベントが必要とする階層501の状態を変更し、次に、階層501の状態の変化により影響を受けた階層501の一部内で、スケジューラ・キュー523のスケジューリングを行う。3つのタイプのスケジューラ・イベントが存在する。
<スケジューラ・イベントによる状態変化>
スケジューラ・イベントにより影響を受けた状態について、引き続きさらに詳細に説明するが、スケジューラ・キューエンキュー・イベントは、空でなくなりそのため能動状態になっているスケジューラ・キューにより発生する場合もあるし、新しいトラヒック・キューを入力スケジューラ・キューのヘッドにするスケジューラ・キューデキュー動作により発生する場合もあるし、または入力スケジューラ・キューの先頭に位置するトラヒック・キューの先頭になる新しい記述子により発生する場合もある。後者の場合、新しい記述子をデキューすることができず、そのため、トラヒック・キューを選択することができなくなった場合には、スケジューラ・キューエンキュー・イベントが、スケジューラ・キューから除去される選択不能なトラヒック・キューになる。それにより、今度は、スケジューラ・キューが空になり、そのため非能動状態になる。スケジューラ・キューエンキュー
・イベントのために、スケジューラ・キューが能動状態または非能動状態になると、当然ながら、バックログされたか?2105の値は変化する。
<スケジューラ・イベントによるスケジューリング>
イベントにより要求される階層501内の状態の更新が行われた後で、スケジューリングが、その状態がイベントにより影響を受け、レベル0のスケジューラを通る最も低いレベルで影響を受けたスケジューラから、階層を通して経路529上のスケジューラに続いている、階層501内の最も低いレベルのスケジューラから開始する。このため、スケジューラ・キューエンキューおよびデキュー・イベントの場合には、スケジューリングは、イベントにより影響を受けたトラヒック・クラス・スケジューラ503により開始し、仮想出力ポート・イネーブル・イベントの場合には、スケジューリングは、その入力をその状態がイベントにより影響を受ける仮想出力ポートにより制御されるスケジューラから開始する。経路上の各スケジューラにおいて、スケジューラの入力により定義される一組のスケジューラ・キューからのスケジューラ・キュー523の選択が、下記の規則により行われる。
<スケジューラ構成の詳細:図23、図24、図29、図36および図37>
図23および図36は、トラヒック・クラス・スケジューラ503、および内部スケジューラ509両方を構成するために使用されるスケジューラ構成データ2301を示す。いくつかのタイプのトラヒック・クラス・スケジューラの構成は、図29に示す追加のトラヒック・クラス・スケジューラ構成データ2901を必要とする。指定子2301内に含まれているデータは、スケジューラ用のスケジューラ構成指定子425を構成するために使用される。上記と同様に、これら図面はテーブルであるが、テーブルの各行は、構成データ2301または2901内のフィールドを示す。フィールドの使用方法は行1006内に指定してある。図23のほとんどの部分は説明を必要としない。フィールド2303および2305は、スケジューラのレベルおよびレベル内の位置を指定し、これによって構成中のスケジューラを識別する。フィールド2307〜2311は、その親へのスケジューラの接続方法を定義する。フィールド2313〜2317は、論理スケジューラ1401に関してスケジューラのタイプを定義する。フィールド2319はスケジューラの入力に対する入力数を定義する。この数はスケジューラのタイプにより変化する。入力構成データは、図24のスケジューラの各入力に関連する。
固定スケジューラ・キュー内およびトラヒック・クラス・スケジューラ内の固定入力スケジューラ・キューの数を含むフィールド3009内にトラヒック・キューを保持していることを示す00にセットされるタイプ・フラグ3005からなる。データ3003を使用するトラヒック・クラス・スケジューラの例としては、ラウンドロビン・スケジューラおよび厳格な優先順位スケジューラ等がある。
<例:図26:フレームをベースとする不足ラウンドロビン・スケジューリング・アルゴリズムを使用するスケジューラの構成および動作>
図26は、フレームをベースとする不足ラウンドロビン・スケジューラ2601として構成されたトラヒック・クラス・スケジューラ503の詳細な構成である。すでに説明したように、FBDRRアルゴリズムは、パケット・サイズによりスケジューリングを行い、そのためトラヒックが、TCPプロトコルの通常のパケットのような可変サイズのパケットからなる場合には、帯域幅を効果的に割当てる。FBDRRのこのバージョンの新規な特徴は、TCPプロトコル内の多くのメッセージが、比較的短い肯定応答メッセージであるという事実のために、将来に備える方法である。
<TMC203の物理実施:図15〜図20>
<物理実施の概要:図15>
図15は、システム201の物理実施1501のブロック図である。システム201のところで説明したように、システム201は、2つの主要な構成部品、すなわち、DCP202およびTMC203を含む。この図により詳細に示すように、TMC203は、スケジューラ階層501が構成されているスケジューラ・メモリ1515、およびTMCメモリ307の残りを実施する外部メモリ1509、1511および1513を含むTMCメモリ307の一部と共に、エンキュー・プロセッサ301、デキュー・スケジューラ303、およびトラヒック・キュープロセッサ305が実施されているTMC IC1503を含む。外部メモリ1509は、トラヒック・キュー・パラメータ・ブロック403およびトラヒック・キューに対する関連データ構造を記憶するZBT SRAMメモリである。外部メモリ1513は、トラヒック・キューの記述子キュー419内の記述子を記憶するDDRSDRAMメモリである。外部メモリ1511は、トラヒック・キュー204内でTMC記述子216をリンクし、トラヒック・キューをスケジューラ・キュー内にリンクするために使用されるデータを記憶するZBT SRAMメモリである。以下にさらに詳細に説明するように、TMC IC1503は、外部メモリの容量を変更するように構成される。
<TMC IC1503の詳細:図16>
図16は、TMC IC1503の内部の詳細図である。TMC IC1503はメモリも内蔵しているが、図には示していない。TMC IC1503は、PCIバス1505へのインタフェース1601、TMIバス1507へのインタフェース1603、パラメータ・メモリ1509用のコントローラ1605、リンク・メモリ1511用のコントローラ1607、および記述子メモリ1513用のコントローラ1609を含む。TMC
IC1503は、また、デキュー・スケジューラ303、エンキュー・プロセッサ301、およびトラヒック・キュープロセッサ305を含む。構成要素をリンクしている矢印
は、これら構成要素間のデータの流れを示す。このため、TMIバス・インタフェース1603がエンキュー・データ・メッセージ601を受信すると、このインタフェースは、エンキュー・データ・メッセージ601をエンキュー・プロセッサ301に出力するが、このエンキュー・プロセッサ301は、記述子メモリ1513内に記憶するために記述子メモリ・コントローラ1609に、少なくともcp記述子214、TMC記述子216の残りの内容、記憶したcp記述子214へのリンク、およびトラヒック・キュープロセッサ305へのトラヒック・キューの使用を提供する。トラヒック・キュープロセッサ305は、記述子を指定のトラヒック・キューにリンクし、またはトラヒック・キューを廃棄するために、情報、リンク・メモリ・コントローラおよびリンク・メモリ1511を使用する。これが行われている間に、デキュー・スケジューラ303は、TMC IC1503のメモリ内に記憶されているスケジューラを実行し、これによってその先頭の記述子がTMIバス・インタフェース1603を通して次に出力されるトラヒック・キューを選択する。デキュー・スケジューラ303は、選択したトラヒック・キューの先頭の記述子へのリンクを検索するために、トラヒック・キュープロセッサ305を使用し、それをデキュー・データ・メッセージ701を生成するのに必要な追加情報と共に、TMIバス・インタフェース1603に提供し、TMIバス・インタフェース1603は、コントローラ1513へリンクを提供し、メモリ1513から記述子を受信し、TMIバス・インタフェース1603を通して記述子を含むデキュー・データ・メッセージ701を出力する。<TMC IC1503によるメモリ構成:図17および図18>
すでに説明したように、TMC IC1503は、異なる容量の外部メモリにより構成することができる。図17は最大構成を示す。記述子メモリ1513は、最大4つまでの128Mb(×16)メモリと、1つの128Mb(×8)DDRSDRAMメモリIC1703を含むことができる。リンク・メモリ1511は、最大5つまでの1Mb(×18)ZBT SRAMメモリIC1705を含むことができ、記述子パラメータ・メモリ1511は、最大4つまでの512K(×36)ZBT SRAMメモリICを含むことができる。このように構成した場合、TMC IC1503は、OC48ライン・レートをサポートし、2M32ビット記述子、256Kトラヒック・キュー、および8Kスケジューラ・キューを処理することができる。ライン・レートが低い場合または記述子が少ないかまたは小さい場合、またはトラヒック・キューの数が少ないか、またはスケジューラ・キューの数が少ない場合、外部メモリの容量を少なくすることができる。PCIバス1505を通してセットすることができるTMC IC1503の構成レジスタは、外部メモリの最大サイズ、および外部メモリ内の区画のサイズの両方を定義する。図18は、OC48ライン・レートの場合の通常の構成の可能性、およびこれらの構成のために必要な各タイプの外部メモリの容量を示すテーブル1801である。
<TMIバス1507の詳細:図19>
図19は、TMIバス1507の略図1901である。テーブル1925は、バスの信号名のリスト、信号がTMC1503の観点からみて入力信号であるのか、または出力信号であるのか、および信号の記述を示すテーブルである。
(クロック信号)
DQCLK/DQCLKX1905ペアは、TMICLKソース1903からTMC IC1503が入手する。DQCLKの周波数は、TMICLKの周波数の半分である。DQCLKXは、DQCLKを倒置したものである。DQCLKXの位相とDQCLKの位相とは正確に180度ずれている。TMC IC1503のすべての出力は、DQCLKおよびDQCLKXの両方の立ち上がり縁部と同期している。これらの出力は、DQD[23:0]、NQRDY、DQARDYおよびDQPARを含む。NQCLK/NQCLKXペア1907は、受信したDQCLK/DQCLKXペアからDCPにより入手される。NQCLKXの位相とNQCLKの位相とは正確に180度ずれている。DCP202のすべての出力は、NQCLKおよびNQCLKXの両方の立ち上がり縁部と同期している。これらの出力は、NQD[23:0]、DQRDY、DQACK[1:0]およびNQPARを含む。TMICLK信号に対する最大クロック周波数は200MHzであ
るが、このことは、DQCLK/DQCLKXおよびNQCLK/NQCLKXペア内の各クロックに対する最大周波数が100MHzであることを意味する。TMICLK周波数およびNQD/DQDバス幅は、全C−5DCPポート帯域幅(約5Gbps)および40バイトの最小平均パケット・サイズを仮定して、32バイトの記述子をサポートするように選択される。TMICLK周波数は、133MHzの最大周波数を有するTMCシステム・クロック、SCLKの周波数の2倍を超えないようにさらに制限される。
(パリティ信号)
NQPAR信号1909は、(NQD[23:0]、DQRDYおよびDQACK[1:0]を含む)TMC IC1503が受信したDCP202のすべての出力をカバーする奇数パリティ信号である。DQPAR1911信号は、(DQD[23:0]、NQRDYおよびDQARDYを含む)DCP202が受信したTMC IC1503のすべての出力をカバーする奇数パリティ信号である。
(メッセージ・バス)
TMIバス1507内には3つのメッセージ・バス、すなわち、エンキュー・データ・メッセージを運ぶNQD[23:0]1913;デキュー・データ・メッセージを運ぶDQD[23:0]1917;デキュー・データ・メッセージの肯定応答を運ぶDQACK[1:0]1921が存在する。NQD[23:0]1913は、エンキュー・データ・メッセージの24ビット語を運ぶ。図6、図31および図13は、これらメッセージのフォーマットの詳細図である。NQD[23:0]バス・ピンは、バスがアイドル状態の場合には、すべて高レベルである。エンキュー・メッセージの開始は、メッセージのタイプ・フィールド611(メッセージの最初の24ビット語のビット2:0)内の非アイドル値により識別される。DQD[23:0]はデキュー・データ・メッセージの24ビット語を運ぶ。図7、図32および図33は、メッセージのフォーマットの詳細図である。エンキュー・データ・メッセージの場合のように、デキュー・データ・メッセージの開始は、メッセージのタイプ・フィールド703(メッセージの最初の24ビット語のビット2:0)内の非アイドル値により識別される。エンキュー・データ・メッセージまたはデキュー・データ・メッセージのサイズは、記述子のサイズにより異なる。記述子のサイズは、任意のエンキュー・メッセージがDCP202からTMC IC1503に送られる前に、インタフェースの両側で静的に構成される。
<TMIバス1510上での流れの制御:図20、図38、図39>
メッセージ・バスNQD1913、DQD1917およびDQACK1:0上のメッセージの流れは、信号NQRDY1915、DQRDY1919およびDOARDY1923によりそれぞれ制御される。NQRDY信号1915は、エンキュー・データ・バス(NQD[23:0])上でのエンキュー・データ・メッセージの流れを可能にすることを出力(assert)するものでなければならない。エンキュー・データ・メッセージが、エンキュー・データ・バス上で開始すると、終わりまで実行しなければならない。この信号は、DCP202からのエンキュー・データ・メッセージを整調するために、TMC
IC1503により使用される。極端な例の場合には、TMC IC1503は、自分が記述子記憶リソースを使い果たした場合、外部からのエンキュー・データ・メッセージを完全にストップするためにこの信号を使用する。TMC IC1503によるNQRDY1915のアサート解除の後で、DCP202は、NQCLKおよびNQCLKX両方の12の立ち上がり縁部のカウント内でエンキュー・データ・メッセージの発生をストップしなければならない。図20のタイミング図2001はこの様子を示す。NQRDY1
915は、2003でアサート解除され、DCP202は、2005が示す時間までにエンキュー・データ・メッセージの発生をストップしなければならない。
<結論>
上記の詳細な説明で、関連技術の当業者に対して、本特許出願の発明が実施されるストリーム・データ処理環境の作成および使用方法を説明してきたが、上記詳細な説明は、またさらに本発明者が現在知っている本発明の最良の実施の形態も開示している。しかし、関連技術の当業者であれば、本発明は、本明細書に記載した環境以外の多くのストリーム・データ処理環境で実行することができること、および本明細書に記載した環境で、本発明の実施形態を種々に変更することができることを直ちに理解することができるだろう。
Claims (49)
- 第1トラヒック・ストリーム処理装置において記述子によって表されるパケットからなるトラヒック・ストリーム上で、第1の複数のストリーム処理機能を実行する前記第1トラヒック・ストリーム処理装置と、前記記述子を使用して前記トラヒック・ストリーム処理装置のために第2の複数のトラヒック管理機能を実行する第2トラヒック管理装置との間で情報を転送し、
前記記述子と前記複数のトラヒック管理機能の第1のサブセットを選択する少なくとも第1選択子とを前記第1装置から前記第2装置へ転送する前記第1装置と前記第2装置との間の第1データ経路と、
前記第1のサブセットの内の機能が実行された後に、前記記述子と前記ストリーム処理機能の第2のサブセットを選択する少なくとも第2選択子とを前記第2装置から前記第1装置へ転送する前記第1装置と前記第2装置との間の第2データ経路とを備えるインタフェース。 - 前記インタフェースは、前記第1装置が、前記記述子によって表される前記パケット上で前記第2のサブセットの内の機能を実行することができる場合に、前記第1装置から前記第2装置へ前記第2選択子を転送する前記第1装置と前記第2装置との間の第3データ経路を備え、前記第2装置は、該第2装置から前記第1装置への前記機能が実行されるパケットを表す記述子の流れを制御するために前記第2選択子を使用する、請求項1に記載のインタフェース。
- 前記第1装置は前記記述子を前記ストリーム処理機能の前記第2のサブセットと関連づけるために第1キューを使用し、
前記第2装置は前記記述子を前記トラヒック管理機能の前記第1のサブセットと関連づけるために第2キューを使用し、
前記第1選択子は前記第2キューを指定し、前記第2選択子は前記第1キューを指定し、
前記第1キューの先頭から記述子が除去されたときに、前記第2選択子が前記第2装置に転送される、請求項2に記載のインタフェース。 - 前記第2装置が、前記第1データ経路を介して前記第1装置から前記第2装置への転送を受け入れることができるかどうかを示す指標を転送する前記第1装置と第2装置との間の第4データ経路と、
前記第1装置が、前記第2データ経路を介して前記第2装置から前記第1装置への転送を受け入れることができるかどうかを示す指標を転送する前記第1装置と第2装置との間の第5データ経路と、
前記第2装置が、前記第3データ経路を介して前記第2装置から前記第1装置への転送を受け入れることができるかどうかを示す指標を転送する前記第1装置と第2装置との間の第6データ経路とをさらに備える、請求項1に記載のインタフェース。 - 複数のパケットからなり、かつトラヒック・ストリーム・プロセッサによって処理されるトラヒック・ストリームのためのトラヒック管理動作を実行する装置であって、該装置は、
複数のトラヒック管理機能と、
前記トラヒック・ストリーム・プロセッサからトラヒック管理機能指定子に関連づけられた記述子を受信する入力装置と、前記記述子は前記トラヒック・ストリーム・プロセッサによって処理されるパケットを表すことと、前記記述子に関連づけられた前記トラヒック管理機能指定子は前記トラヒック管理機能のサブセットを指定することと、
前記記述子で前記関連トラヒック管理機能指定子によって指定される前記サブセット内
の少なくとも1つのトラヒック管理機能を実行し、前記記述子を前記トラヒック・ストリーム・プロセッサにおいて機能を指定するトラヒック・ストリーム・プロセッサ機能指定子と関連づける処理構成要素と、
前記トラヒック・ストリーム・プロセッサに前記記述子および前記トラヒック・ストリーム・プロセッサ機能指定子を提供する出力装置とを備える装置。 - 複数のパケットからなるトラヒック・ストリームに対してトラヒック管理動作を実行する装置であって、
該装置は、
トラヒック・ストリーム内のパケットを表す複数の記述子のセットと、
複数のトラヒック管理機能と、前記複数のトラヒック管理機能のサブセットと関連付けられている記述子の所与のセットと、
前記所与のセットに属する記述子において記述子のセットと関連付けられている前記サブセットにある少なくとも1つのトラヒック管理機能を実行する処理構成要素とを備える装置。 - 記述子が前記トラヒック・ストリームを処理するストリーム・プロセッサから受信され、前記記述子のセットに関連づけられたトラヒック管理機能が前記記述子で実行された後で、前記ストリーム・プロセッサに提供される、請求項6に記載の装置。
- 前記ストリーム・プロセッサから受信した前記記述子は、前記複数の記述子のセットうちの1つを指定するセット指定子を備える、請求項7に記載の装置。
- 前記トラヒック管理機能はマルチキャスト機能を含み、
前記複数の記述子のセットは、前記マルチキャスト機能が前記複数の記述子のセットの内の複数の他のセットにコピーする記述子用の記述子のマルチキャスト・セットを含む、請求項8に記載の装置。 - 前記トラヒック管理機能は、前記記述子のセット指定子によって指定されたセット内に置く代わりに、廃棄するパケットを表す受信した記述子を選択する廃棄機能のセットを含み、前記選択した記述子は、前記記述子が表すパケットを廃棄すべきことを示す指標と共に前記ストリーム・プロセッサに提供される、請求項8に記載の装置。
- 前記装置は、前記セット内の前記記述子が表すパケットが属するトラヒック・ストリームの状態のモデルをさらに有し、
前記セット内の前記廃棄機能は、前記セットからのパケットを廃棄すべきかどうかを判断するために前記モデルを使用する、請求項10に記載の装置。 - 前記モデルは前記ストリーム・プロセッサ内のバッファの状態をモデル化し、前記バッファは前記ストリームに属するパケットからのペイロードを記憶するために使用される、請求項11に記載の装置。
- 前記モデルは前記ストリームの帯域幅の使用をモデル化する、請求項11に記載の装置。
- 前記トラヒック管理機能は受信した前記ストリーム・プロセッサに記述子をいつ提供すべきかを決定するスケジューリング機能のセットを含む、請求項7に記載の装置。
- 前記スケジューリング機能は、前記記述子が前記ストリーム・プロセッサに提供される時、前記記述子と共に含まれている前記ストリーム・プロセッサ内の記述子のセットに対する指定子を決定する、請求項14に記載の装置。
- 前記トラヒック管理機能は、前記記述子のセット指定子によって指定された前記セット内に置く代わりに、廃棄するパケットを表す受信した記述子を選択する廃棄機能のセットと、前記ストリーム・プロセッサに記述子をいつ提供すべきかを決定し、前記ストリーム・プロセッサ内の記述子のセットに対する指定子を、提供中の前記記述子に追加するスケジューリング機能のセットとを含み、
前記記述子のセットは、廃棄すべきパケットを表す記述子を含む廃棄記述子のセットを含み、
前記廃棄記述子のセットから提供された記述子に追加された追加指定子は、廃棄すべきパケットを表すストリーム・プロセッサ内の記述子のセットを指定する、請求項7に記載の装置。 - 前記記述子によって表される前記パケット内に少なくともその一部が含まれているメッセージが、前記ストリーム・プロセッサ内に完全に受信される前に、前記装置が前記ストリーム・プロセッサから前記記述子を受信する、請求項7に記載の装置。
- 前記トラヒック管理機能は、前記ストリーム・プロセッサに記述子をいつ提供すべきかを判断するスケジューリング機能のセットを含み、
前記メッセージが前記ストリーム・プロセッサ内に完全に受信された場合に、前記ストリーム・プロセッサは前記装置へ通知を提供し、
前記ストリーム・プロセッサ内に前記メッセージが完全に受信される前に、前記ストリーム・プロセッサから前記記述子を受信した場合に、前記プロセッサ構成要素は、前記通知を受信するまで前記記述子上でスケジューリング機能を実行しない、請求項17に記載の装置。 - 前記トラヒック管理機能は、前記パケットに対する前記記述子からパケットの一部を表す一連の記述子を生成するセグメント分割機能を含む、請求項7に記載の装置。
- 前記トラヒック管理機能は、前記ストリーム・プロセッサへのより大きなパケットに再組立てされるパケットを表す連続している一連の記述子を提供する再組立て機能を含む、請求項7に記載の装置。
- 所与の記述子のセットと前記複数のトラヒック管理機能のサブセットとの間の関連が設定可能である、請求項6に記載の装置。
- 前記複数のトラヒック管理機能は設定可能である、請求項21に記載の装置。
- 前記複数のトラヒック管理機能および前記処理構成要素は1つの集積回路において実施される、請求項6に記載の装置。
- 前記記述子のセットはキューとして編成され、その場合、受信した記述子が前記キューの末尾に置かれ、提供される記述子が前記キューの先頭から提供される、請求項7に記載の装置。
- パケットからなり、トラヒック・ストリーム・プロセッサによって処理されるトラヒック・ストリームに対するトラヒック管理動作を実行する装置であって、
マルチキャスト機能、廃棄機能およびスケジューリング機能を含み、ユーザによる設定が可能なトラヒック管理機能と、
それぞれが少なくとも1つの前記トラヒック管理機能とのユーザ設定が可能な関連を有する、前記パケットを表す記述子の複数のトラヒック管理キューと、
記述子をトラヒック管理キュー内に置き、前記トラヒック・ストリーム・プロセッサ内のキューに対する指定子と共に前記トラヒック・ストリーム・プロセッサに出力される前記記述子のスケジューリングを行うために、関連するキュー指定子によって指定される前記トラヒック管理キューに関連づけられた前記トラヒック管理機能を使用することによって、前記ストリーム・プロセッサから受信する前記記述子および該記述子に関連づけられたキュー指定子に応答する処理構成要素とを備える装置。 - パケットが記述子によって表されるシステムにおいて、メッセージを運ぶシーケンスに属するパケットを廃棄するための方法であって、該方法は、前記システムが前記メッセージを運ぶ前記パケットを1つの集合パケットに組立てる時に使用され、
前記シーケンスのパケットを廃棄する第1の決定の際に、前記パケットを表す前記記述子をメッセージの終わりパケットの記述子として、また不足パケットの記述子としてマークし、前記記述子によって表される前記パケットを前記集合パケットに組立てることにより、前記記述子に応答する組立装置に前記記述子を提供するステップと、
前記マークを付けた記述子の後の前記メッセージの前記パケットに対する前記記述子を、前記記述子に応じて前記パケットを廃棄する前記システム内のパケット廃棄装置に提供するステップと、
前記組立装置において、前記集合パケットを廃棄することにより、前記マークを付けた記述子に応答するステップとを含む方法。 - パケットが記述子により表されるシステムにおいて、全メッセージがシステムに受信される前に、メッセージのパケットを表す記述子の処理を開始するための方法であって、
前記記述子のスケジューリングを行う以外の前記記述子上で処理を行うステップと、
全メッセージを前記システム内にすでに受信したという通知を受け取った場合に、前記記述子のスケジューリングを行うステップとを含む方法。 - 前記通知がおそらく到着しないと決定するステップと、
前記システムに前記記述子が示す前記パケットを廃棄させるステップとをさらに含む、請求項27に記載の方法。 - 前記記述子は全メッセージを含むパケットを表す、請求項28に記載の方法。
- 前記記述子は、前記メッセージを含むパケットの多重パケット・シーケンス内のパケットを表す、請求項28に記載の方法。
- パケットのストリームを処理する装置でさらに処理を行うために、前記パケットのスケジューリングを行うための装置であって、該装置は、
少なくとも1つの内部ノードと1つのリーフ・ノードを有する1つの階層のノードを形成する複数のスケジューラと、
前記リーフ・ノード・スケジューラに関連づけられたパケットのセットと、
スケジューリングを行うために、前記リーフ・ノード・スケジューラと関連する前記セットの内のパケットを選択するために、前記リーフ・ノード・スケジューラと前記内部ノード・スケジューラを実行するプロセッサとを備え、
複数のスケジューリング・アルゴリズムの中から選択した1つのスケジューリング・アルゴリズムによりスケジューリングを行うように前記スケジューラを個々に設定可能な装置。 - 前記パケットのセットと前記リーフ・ノード・スケジューラとの間の関連は設定可能である、請求項31に記載の装置。
- 前記階層の形状は設定可能である、請求項31に記載の装置。
- 前記階層は前記階層のルート・ノードである1つの内部ノード・スケジューラを有し、
前記階層を通る各リーフ・ノード・スケジューラから前記ルート・ノードへの一意的な経路が存在し、
前記一意的な経路が前記パケットに対する別の処理のモードと関連している、請求項31に記載の装置。 - 前記モードは、前記経路と関連する仮想出力ポート番号によって指定される、請求項34に記載の装置。
- 前記パケットのセットは、前記セット内のパケットを表す記述子のセットによって前記リーフ・ノードスケジューラと関連づけられている、請求項31に記載の装置。
- 前記記述子のセットは記述子の少なくとも1つのトラヒック・キュー、および前記トラヒック・キューの少なくとも1つのスケジューラ・キューに編成され、各スケジューラ・キューは、前記記述子のセットが関連付けられている前記リーフ・ノード・スケジューラの入力と関連付けられている、請求項36に記載の装置。
- 前記複数のスケジューリング・アルゴリズムは、厳格な優先順位アルゴリズム、ラウンドロビン・アルゴリズム、および加重均等化キューイングアルゴリズムを含む、請求項31に記載の装置。
- 前記階層のノード内のスケジューラは、保証スケジューラ、過度スケジューラ、および前記保証スケジューラに第1の優先順位を与える厳格な優先順位スケジューラを含むスケジューラ・リソースから構成される、請求項38に記載の装置。
- 複数の加重均等化キューイングアルゴリズムが存在し、該複数の加重均等化キューイングアルゴリズムは非作業保存加重均等化キューイングアルゴリズムを含む、請求項38に記載の装置。
- 可変長パケットのスケジューリングを行うための方法であって、該方法は、前記パケットのセットの内の2つのセットを使用し、
スケジューリングを行うために前記パケットのセットの内の前記2つのセットの内の現在のセットに属する所与のパケットのセットを選択するステップであって、前記パケットのセットの内の現在のセットに属する各パケットのセットは最大割合および最小割合に関連づけられており、前記所与のパケットのセットは前記最小割合の決定に従ってスケジューリングのために選択された状態のままに維持され、前記最小割合は、再びスケジューリングを行うために、前記複数のセットの内の前記現在のセットに属するパケットのセットを選択する前に、前記選択したパケットのセットからスケジューリングを行うことができるパケットの全サイズを決定するステップと、
前記最大割合の決定に従って前記パケットのセットの内の前記2つのセットの内の他方の中に前記所与のパケットのセットを置くステップであって、前記最大割合が、前記選択したセットが前記パケットのセットの内の前記2つのセットの内の他方の中に入れられる前に、前記選択したセットからスケジューリングを行うことができるパケットの全サイズを決定するステップと、
前記パケットのセットの内の前記現在のセットが空になった場合に、前記パケットのセットの内の前記現在のセットと前記パケットのセットの内の他のセットとを交換するステップとを含む方法。 - 前記パケットのセットは、前記現在のセットから次のセットに移動した場合、実際にスケジュールされている前記パケットの全サイズと、前記パケットのセットが前記2つのパケットのセットの内の他方に入れられた時点の前記最大割合との間の違いにより新しい最大割合を計算するステップをさらに含む、請求項41に記載の方法。
- 前記現在のセットに属するパケットのセットがスケジュールのために選択不能になった場合に、前記現在のセットから前記選択不能なパケットのセットを除去するステップと、
選択不能なパケットのセットがスケジュールのために選択可能になった場合に、前記選択可能なセットを次のセットに追加するステップとをさらに含む、請求項41に記載の方法。 - パケットのセットの内の前記現在のセットはある順序に配列されたセットであり、前記パケットのセットはラウンドロビン方式でスケジューリングのために選択される、請求項41に記載の方法。
- 前記現在のセット内の前記パケットのセットは、ある順序で配列されたセットであり、パケットのセットがスケジューリングのために選択された場合、パケットがラウンドロビン方式でそのセットから選択される、請求項41に記載の方法。
- パケットのセットの内の前記現在のセットよりも、スケジューリングについて高い優先順位を有するパケットのセットの内の第3のセットを使用し、
前記所与のパケットのセットがパケットのセットの内の前記第3のセットに属し、一方、前記所与のパケットのセットが、前記最小割合の決定に従ってスケジューリングのために選択された状態のまま維持され、その後で、パケットのセットの内の前記現在のセットに移動し、前記最大割合の決定に従ってそこからスケジュールされる、請求項41に記載の方法。 - パケットのセットの内の前記現在のセットおよびパケットのセットの内の前記第3のセットが、ある順序で配列されたセットであり、前記パケットのセットが、前記現在のパケットのセットおよび前記第3のパケットのセット内で、ラウンドロビン方式でスケジューリングのために選択される、請求項46に記載の方法。
- 前記現在のセット内の前記パケットのセットおよびパケットのセットの内の前記第3のセットは、ある順序で配列されたセットであり、スケジューリングのためにパケットのセットが選択された場合に、そのセットからパケットがラウンドロビン方式で選択される、請求項47に記載の方法。
- 各パケットは記述子によって表現され、前記パケットは前記パケットのセット内でその記述子によって表現される、請求項41に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US28374601P | 2001-04-13 | 2001-04-13 | |
PCT/US2002/011509 WO2002084957A2 (en) | 2001-04-13 | 2002-04-11 | Manipulating data streams in data stream processors |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005510893A true JP2005510893A (ja) | 2005-04-21 |
JP4070610B2 JP4070610B2 (ja) | 2008-04-02 |
Family
ID=23087372
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002582564A Expired - Fee Related JP4070610B2 (ja) | 2001-04-13 | 2002-04-11 | データ・ストリーム・プロセッサにおけるデータ・ストリームの操作 |
Country Status (7)
Country | Link |
---|---|
US (2) | US20040260829A1 (ja) |
EP (1) | EP1382165A2 (ja) |
JP (1) | JP4070610B2 (ja) |
KR (1) | KR100902513B1 (ja) |
CN (1) | CN1611035A (ja) |
TW (1) | TW558887B (ja) |
WO (1) | WO2002084957A2 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008520141A (ja) * | 2004-11-15 | 2008-06-12 | フランス テレコム | 優先して扱われるべきパケットの間接的な判断でネットワークにおいてルートするためのパケットを順序付けるための方法及び装置 |
JP2015076889A (ja) * | 2013-10-11 | 2015-04-20 | ジーイー・アビエイション・システムズ・エルエルシー | 航空機用データ通信ネットワーク |
JP2017163530A (ja) * | 2016-03-10 | 2017-09-14 | グーグル インコーポレイテッド | ネットワークデバイスおよびトラフィックシェーピング方法 |
US10404602B2 (en) | 2016-09-23 | 2019-09-03 | Fujitsu Limited | Transmission apparatus and transmission processing method |
Families Citing this family (97)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6957281B2 (en) * | 2002-01-15 | 2005-10-18 | Intel Corporation | Ingress processing optimization via traffic classification and grouping |
US20040019704A1 (en) * | 2002-05-15 | 2004-01-29 | Barton Sano | Multiple processor integrated circuit having configurable packet-based interfaces |
US7334086B2 (en) * | 2002-10-08 | 2008-02-19 | Rmi Corporation | Advanced processor with system on a chip interconnect technology |
US8037224B2 (en) | 2002-10-08 | 2011-10-11 | Netlogic Microsystems, Inc. | Delegating network processor operations to star topology serial bus interfaces |
US7346757B2 (en) | 2002-10-08 | 2008-03-18 | Rmi Corporation | Advanced processor translation lookaside buffer management in a multithreaded system |
US8176298B2 (en) | 2002-10-08 | 2012-05-08 | Netlogic Microsystems, Inc. | Multi-core multi-threaded processing systems with instruction reordering in an in-order pipeline |
US7984268B2 (en) | 2002-10-08 | 2011-07-19 | Netlogic Microsystems, Inc. | Advanced processor scheduling in a multithreaded system |
US8015567B2 (en) | 2002-10-08 | 2011-09-06 | Netlogic Microsystems, Inc. | Advanced processor with mechanism for packet distribution at high line rate |
US9088474B2 (en) | 2002-10-08 | 2015-07-21 | Broadcom Corporation | Advanced processor with interfacing messaging network to a CPU |
US8478811B2 (en) * | 2002-10-08 | 2013-07-02 | Netlogic Microsystems, Inc. | Advanced processor with credit based scheme for optimal packet flow in a multi-processor system on a chip |
US7961723B2 (en) | 2002-10-08 | 2011-06-14 | Netlogic Microsystems, Inc. | Advanced processor with mechanism for enforcing ordering between information sent on two independent networks |
US7627721B2 (en) | 2002-10-08 | 2009-12-01 | Rmi Corporation | Advanced processor with cache coherency |
JP3788803B2 (ja) * | 2002-10-30 | 2006-06-21 | 富士通株式会社 | L2スイッチ |
KR100518813B1 (ko) * | 2003-02-15 | 2005-10-05 | 삼성전자주식회사 | 패킷 메모리 관리 장치를 가지는 패킷 포워딩 시스템 및 그의 동작방법 |
US20040213264A1 (en) * | 2003-04-25 | 2004-10-28 | Nortel Networks Limited | Service class and destination dominance traffic management |
US6981074B2 (en) * | 2003-10-14 | 2005-12-27 | Broadcom Corporation | Descriptor-based load balancing |
US7370125B2 (en) * | 2003-11-25 | 2008-05-06 | Intel Corporation | Stream under-run/over-run recovery |
CN100359888C (zh) * | 2003-11-27 | 2008-01-02 | 华为技术有限公司 | 一种数据轮询调度方法 |
GB0420548D0 (en) * | 2004-09-15 | 2004-10-20 | Streamshield Networks Ltd | Network-based security platform |
US8332938B2 (en) * | 2004-09-17 | 2012-12-11 | At&T Intellectual Property I, L.P. | Detection of encrypted packet streams using a timer |
US7761705B2 (en) * | 2004-09-17 | 2010-07-20 | At&T Intellectual Property I, L.P. | Detection of encrypted packet streams |
US7451309B2 (en) | 2004-09-17 | 2008-11-11 | At&T Intellectual Property L.P. | Signature specification for encrypted packet streams |
US7730519B2 (en) * | 2004-09-17 | 2010-06-01 | At&T Intellectual Property I, L.P. | Detection of encrypted packet streams using feedback probing |
US20060098673A1 (en) * | 2004-11-09 | 2006-05-11 | Alcatel | Input queue packet switch architecture and queue service discipline |
US7620071B2 (en) * | 2004-11-16 | 2009-11-17 | Intel Corporation | Packet coalescing |
US7831747B2 (en) * | 2004-12-08 | 2010-11-09 | Intel Corporation | Method and apparatus to generate a data descriptor |
JP4557748B2 (ja) | 2005-02-28 | 2010-10-06 | 株式会社東芝 | 演算処理装置 |
CN100466603C (zh) * | 2005-05-17 | 2009-03-04 | 华为技术有限公司 | 对网络中传输的业务流进行整形的方法及装置 |
KR100798920B1 (ko) * | 2005-11-18 | 2008-01-29 | 한국전자통신연구원 | RED방식을 확장한 VoIP 네트워크의 폭주 제어 방법및 이를 위한 장치 |
US20070150585A1 (en) * | 2005-12-28 | 2007-06-28 | Microsoft Corporation | Multi-dimensional aggregation on event streams |
KR100748514B1 (ko) * | 2006-01-13 | 2007-08-14 | 엘지전자 주식회사 | Sip 기반 세션 서비스의 데이터 처리 방법 및 단말 |
US8275132B2 (en) * | 2006-05-15 | 2012-09-25 | Buchen Neil B | System and method for dynamically allocating stream identifiers in a multi-encryption transport system |
CN1968186A (zh) * | 2006-06-19 | 2007-05-23 | 华为技术有限公司 | 一种调度报文发送的装置及方法 |
GB0619519D0 (en) * | 2006-10-04 | 2006-11-15 | Siemens Ag | Packet scheduling |
US8254348B2 (en) * | 2006-12-20 | 2012-08-28 | Honeywell International Inc. | Voice-over-internet protocol intra-vehicle communications |
US8451807B2 (en) * | 2006-12-20 | 2013-05-28 | Honeywell International Inc. | Configuration aware packet routing in an ad-hoc network |
US8059544B2 (en) * | 2006-12-20 | 2011-11-15 | Honeywell International Inc. | Distance adaptive routing protocol |
US7925798B2 (en) * | 2007-01-26 | 2011-04-12 | Lantiq Deutschland Gmbh | Data packet processing device |
GB2447683B (en) * | 2007-03-21 | 2011-05-04 | Advanced Risc Mach Ltd | Techniques for generating a trace stream for a data processing apparatus |
EP2174450B1 (en) | 2007-07-02 | 2016-10-12 | Telecom Italia S.p.A. | Application data flow management in an ip network |
US7676461B2 (en) * | 2007-07-18 | 2010-03-09 | Microsoft Corporation | Implementation of stream algebra over class instances |
US7864775B2 (en) * | 2007-12-20 | 2011-01-04 | Honeywell International Inc. | Automatic sequencing based on wireless connectivity |
CN101488909B (zh) * | 2008-01-17 | 2011-05-04 | 杭州华三通信技术有限公司 | 传输控制方法及同轴线路终端、光网络单元 |
US8233502B2 (en) * | 2008-01-18 | 2012-07-31 | Juniper Networks, Inc. | System and method for heuristically dropping packets in a multilink PPP bundle |
CN101494594B (zh) * | 2008-01-22 | 2011-05-04 | 杭州华三通信技术有限公司 | 传输控制方法、同轴线路终端及光网络单元 |
US8064377B2 (en) * | 2008-01-24 | 2011-11-22 | Honeywell International Inc. | Method for enhancement of multicasting forwarding protocol in a wireless network |
US9596324B2 (en) | 2008-02-08 | 2017-03-14 | Broadcom Corporation | System and method for parsing and allocating a plurality of packets to processor core threads |
GB2458952B (en) | 2008-04-04 | 2012-06-13 | Micron Technology Inc | Queue processing method |
US8031606B2 (en) | 2008-06-24 | 2011-10-04 | Intel Corporation | Packet switching |
US20100088325A1 (en) | 2008-10-07 | 2010-04-08 | Microsoft Corporation | Streaming Queries |
US20100097932A1 (en) * | 2008-10-15 | 2010-04-22 | Viasat, Inc. | Satellite traffic and congestion-based upstream scheduler |
EP2187580B1 (en) * | 2008-11-18 | 2013-01-16 | Alcatel Lucent | Method for scheduling packets of a plurality of flows and system for carrying out the method |
US8108546B2 (en) * | 2008-12-12 | 2012-01-31 | Comtech Ef Data Corporation | Data packet encapsulation methods |
EP2207312B1 (en) * | 2009-01-07 | 2012-04-18 | ABB Research Ltd. | IED for, and method of engineering, an SA system |
US8112491B1 (en) | 2009-01-16 | 2012-02-07 | F5 Networks, Inc. | Methods and systems for providing direct DMA |
US9152483B2 (en) | 2009-01-16 | 2015-10-06 | F5 Networks, Inc. | Network devices with multiple fully isolated and independently resettable direct memory access channels and methods thereof |
US8880696B1 (en) | 2009-01-16 | 2014-11-04 | F5 Networks, Inc. | Methods for sharing bandwidth across a packetized bus and systems thereof |
US8615013B2 (en) * | 2010-05-18 | 2013-12-24 | Agere Systems Llc | Packet scheduling with guaranteed minimum rate in a traffic manager of a network processor |
US8848723B2 (en) * | 2010-05-18 | 2014-09-30 | Lsi Corporation | Scheduling hierarchy in a traffic manager of a network processor |
US8837501B2 (en) * | 2010-05-18 | 2014-09-16 | Lsi Corporation | Shared task parameters in a scheduler of a network processor |
CN101938404B (zh) * | 2009-07-01 | 2012-11-28 | 中兴通讯股份有限公司 | 用于数据流量管理的随机早期丢弃方法和装置 |
US8230350B2 (en) | 2009-07-03 | 2012-07-24 | Tweetdeck, Inc. | System and method for managing and displaying data messages |
CN101958824B (zh) * | 2009-07-14 | 2012-06-27 | 华为技术有限公司 | 一种数据交换方法及数据交换结构 |
US9158816B2 (en) | 2009-10-21 | 2015-10-13 | Microsoft Technology Licensing, Llc | Event processing with XML query based on reusable XML query template |
US9313047B2 (en) | 2009-11-06 | 2016-04-12 | F5 Networks, Inc. | Handling high throughput and low latency network data packets in a traffic management device |
KR101040260B1 (ko) * | 2010-05-28 | 2011-06-09 | 엘아이지넥스원 주식회사 | 중복 메시지 필터링에 기초한 제어 메시지 처리 방법 및 장치 |
TWI400912B (zh) * | 2010-07-19 | 2013-07-01 | Chunghwa Telecom Co Ltd | 封包導向方法 |
WO2012068171A1 (en) * | 2010-11-15 | 2012-05-24 | Reed Coke S | Parallel information system utilizing flow control and virtual channels |
US10620988B2 (en) | 2010-12-16 | 2020-04-14 | Et International, Inc. | Distributed computing architecture |
CN102200906B (zh) * | 2011-05-25 | 2013-12-25 | 上海理工大学 | 大规模并发数据流处理系统及其处理方法 |
CN102201992B (zh) * | 2011-05-25 | 2013-09-25 | 上海理工大学 | 面向流处理器并行环境的数据流通信系统及其通信方法 |
US9965520B2 (en) * | 2011-06-17 | 2018-05-08 | Microsoft Corporation | Efficient logical merging over physically divergent streams |
US8984526B2 (en) * | 2012-03-09 | 2015-03-17 | Microsoft Technology Licensing, Llc | Dynamic processor mapping for virtual machine network traffic queues |
CN103546393B (zh) * | 2012-07-12 | 2018-01-19 | 中兴通讯股份有限公司 | 一种基于加权公平队列的调度实现方法及装置 |
CN103546392B (zh) * | 2012-07-12 | 2017-10-10 | 中兴通讯股份有限公司 | 队列单周期调度方法和装置 |
US8879578B2 (en) * | 2012-07-19 | 2014-11-04 | Broadcom Corporation | Reducing store and forward delay in distributed systems |
US9047417B2 (en) | 2012-10-29 | 2015-06-02 | Intel Corporation | NUMA aware network interface |
US9270602B1 (en) * | 2012-12-31 | 2016-02-23 | F5 Networks, Inc. | Transmit rate pacing of large network traffic bursts to reduce jitter, buffer overrun, wasted bandwidth, and retransmissions |
US10375155B1 (en) | 2013-02-19 | 2019-08-06 | F5 Networks, Inc. | System and method for achieving hardware acceleration for asymmetric flow connections |
US9106593B2 (en) * | 2013-06-12 | 2015-08-11 | Cisco Technology, Inc. | Multicast flow reordering scheme |
US9450881B2 (en) * | 2013-07-09 | 2016-09-20 | Intel Corporation | Method and system for traffic metering to limit a received packet rate |
CN104348751B (zh) | 2013-07-31 | 2019-03-12 | 中兴通讯股份有限公司 | 虚拟输出队列授权管理方法及装置 |
US10684973B2 (en) | 2013-08-30 | 2020-06-16 | Intel Corporation | NUMA node peripheral switch |
US9864606B2 (en) | 2013-09-05 | 2018-01-09 | F5 Networks, Inc. | Methods for configurable hardware logic device reloading and devices thereof |
US9853714B2 (en) | 2013-10-11 | 2017-12-26 | Ge Aviation Systems Llc | Data communications network for an aircraft |
US9876711B2 (en) | 2013-11-05 | 2018-01-23 | Cisco Technology, Inc. | Source address translation in overlay networks |
US9825857B2 (en) | 2013-11-05 | 2017-11-21 | Cisco Technology, Inc. | Method for increasing Layer-3 longest prefix match scale |
US9898482B1 (en) * | 2013-12-27 | 2018-02-20 | EMC IP Holding Company LLC | Managing stream connections in storage systems |
US20150281109A1 (en) * | 2014-03-30 | 2015-10-01 | Sachin Saxena | System for en-queuing and de-queuing data packets in communication network |
EP3295628B1 (en) * | 2015-05-13 | 2020-11-11 | Cisco Technology, Inc. | Dynamic protection of shared memory used by output queues in a network device |
US9866401B2 (en) * | 2015-05-13 | 2018-01-09 | Cisco Technology, Inc. | Dynamic protection of shared memory and packet descriptors used by output queues in a network device |
US10305819B2 (en) * | 2015-05-13 | 2019-05-28 | Cisco Technology, Inc. | Dynamic protection of shared memory used by output queues in a network device |
CN109391559B (zh) * | 2017-08-10 | 2022-10-18 | 华为技术有限公司 | 网络设备 |
US11855898B1 (en) | 2018-03-14 | 2023-12-26 | F5, Inc. | Methods for traffic dependent direct memory access optimization and devices thereof |
CN113114564A (zh) * | 2018-10-31 | 2021-07-13 | 华为技术有限公司 | 一种业务流处理方法及装置 |
US11537716B1 (en) | 2018-11-13 | 2022-12-27 | F5, Inc. | Methods for detecting changes to a firmware and devices thereof |
CN112311696B (zh) * | 2019-07-26 | 2022-06-10 | 瑞昱半导体股份有限公司 | 网络封包接收装置及方法 |
Family Cites Families (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69433109D1 (de) * | 1994-04-28 | 2003-10-09 | Hewlett Packard Co | Mehrfachsendeeinrichtung |
US5822540A (en) * | 1995-07-19 | 1998-10-13 | Fujitsu Network Communications, Inc. | Method and apparatus for discarding frames in a communications device |
US5859835A (en) * | 1996-04-15 | 1999-01-12 | The Regents Of The University Of California | Traffic scheduling system and method for packet-switched networks |
US5898687A (en) * | 1996-07-24 | 1999-04-27 | Cisco Systems, Inc. | Arbitration mechanism for a multicast logic engine of a switching fabric circuit |
US6128278A (en) * | 1996-08-30 | 2000-10-03 | Mmc Networks, Inc. | Cell queuing in ATM switches |
US6452933B1 (en) * | 1997-02-07 | 2002-09-17 | Lucent Technologies Inc. | Fair queuing system with adaptive bandwidth redistribution |
WO1998045990A1 (en) | 1997-04-04 | 1998-10-15 | Ascend Communications, Inc. | High speed packet scheduling method and apparatus |
US6014367A (en) * | 1997-04-25 | 2000-01-11 | Mmc Networks, Inc | Method for weighted fair queuing for ATM cell scheduling |
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 |
US6026093A (en) * | 1997-10-02 | 2000-02-15 | Sun Microsystems, Inc. | Mechanism for dispatching data units via a telecommunications network |
US6434620B1 (en) * | 1998-08-27 | 2002-08-13 | Alacritech, Inc. | TCP/IP offload network interface device |
US6233243B1 (en) * | 1997-11-24 | 2001-05-15 | Ascend Communications, Inc. | Method and apparatus for performing cut-through virtual circuit merging |
US6144668A (en) * | 1997-11-26 | 2000-11-07 | International Business Machines Corporation | Simultaneous cut through and store-and-forward frame support in a network device |
US6859438B2 (en) * | 1998-02-03 | 2005-02-22 | Extreme Networks, Inc. | Policy based quality of service |
US6160812A (en) * | 1998-05-04 | 2000-12-12 | Cabletron Systems, Inc. | Method and apparatus for supplying requests to a scheduler in an input buffered multiport switch |
US6606301B1 (en) * | 1999-03-01 | 2003-08-12 | Sun Microsystems, Inc. | Method and apparatus for early random discard of packets |
EP1172017A1 (en) * | 1999-04-03 | 2002-01-16 | Top Layer Networks, Inc. | Switching system and process for automatic detection of and quality of service for multimedia applications |
JP3683133B2 (ja) * | 1999-08-17 | 2005-08-17 | 日本電気株式会社 | パケットスケジューリング装置 |
US6760337B1 (en) * | 1999-08-17 | 2004-07-06 | Conexant Systems, Inc. | Integrated circuit that processes communication packets with scheduler circuitry having multiple priority levels |
US6985431B1 (en) * | 1999-08-27 | 2006-01-10 | International Business Machines Corporation | Network switch and components and method of operation |
US6680933B1 (en) | 1999-09-23 | 2004-01-20 | Nortel Networks Limited | Telecommunications switches and methods for their operation |
US6430152B1 (en) * | 1999-12-22 | 2002-08-06 | Alcatel Usa Sourcing, L.P. | Scheduler system for scheduling the distribution of ATM cells |
US6629147B1 (en) * | 2000-03-31 | 2003-09-30 | Intel Corporation | Segmentation and reassembly of data frames |
US7123622B2 (en) * | 2000-04-13 | 2006-10-17 | International Business Machines Corporation | Method and system for network processor scheduling based on service levels |
US7315901B1 (en) * | 2000-04-13 | 2008-01-01 | International Business Machines Corporation | Method and system for network processor scheduling outputs using disconnect/reconnect flow queues |
US7027394B2 (en) * | 2000-09-22 | 2006-04-11 | Narad Networks, Inc. | Broadband system with traffic policing and transmission scheduling |
US7457313B2 (en) * | 2000-09-25 | 2008-11-25 | General Instrument Corporation | Hierarchical prioritized round robin (HPRR) scheduling |
US20020107974A1 (en) * | 2000-10-06 | 2002-08-08 | Janoska Mark William | Data traffic manager |
US7760737B2 (en) * | 2000-11-30 | 2010-07-20 | Audiocodes, Inc. | Method for reordering and reassembling data packets in a network |
US7236491B2 (en) * | 2000-11-30 | 2007-06-26 | Industrial Technology Research Institute | Method and apparatus for scheduling for packet-switched networks |
US6882625B2 (en) * | 2000-12-14 | 2005-04-19 | Nokia Networks Oy | Method for scheduling packetized data traffic |
US7075934B2 (en) * | 2001-01-10 | 2006-07-11 | Lucent Technologies Inc. | Method and apparatus for hierarchical bandwidth distribution in a packet network |
US6917591B2 (en) * | 2001-01-12 | 2005-07-12 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods, systems and computer program products for bandwidth allocation in a multiple access system |
US7035212B1 (en) * | 2001-01-25 | 2006-04-25 | Optim Networks | Method and apparatus for end to end forwarding architecture |
US6934760B1 (en) * | 2001-02-04 | 2005-08-23 | Cisco Technology, Inc. | Method and apparatus for resequencing of packets into an original ordering using multiple resequencing components |
US6987760B2 (en) * | 2001-03-05 | 2006-01-17 | International Business Machines Corporation | High speed network processor |
-
2002
- 2002-04-11 WO PCT/US2002/011509 patent/WO2002084957A2/en active Application Filing
- 2002-04-11 JP JP2002582564A patent/JP4070610B2/ja not_active Expired - Fee Related
- 2002-04-11 KR KR1020037013456A patent/KR100902513B1/ko active IP Right Grant
- 2002-04-11 EP EP02723831A patent/EP1382165A2/en not_active Withdrawn
- 2002-04-11 US US10/475,066 patent/US20040260829A1/en not_active Abandoned
- 2002-04-11 CN CNA028082087A patent/CN1611035A/zh active Pending
- 2002-04-12 TW TW091107466A patent/TW558887B/zh not_active IP Right Cessation
-
2009
- 2009-02-19 US US12/388,630 patent/US7929433B2/en not_active Expired - Lifetime
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008520141A (ja) * | 2004-11-15 | 2008-06-12 | フランス テレコム | 優先して扱われるべきパケットの間接的な判断でネットワークにおいてルートするためのパケットを順序付けるための方法及び装置 |
JP4762996B2 (ja) * | 2004-11-15 | 2011-08-31 | フランス・テレコム | 優先して扱われるべきパケットの間接的な判断でネットワークにおいてルートするためのパケットを順序付けるための方法及び装置 |
JP2015076889A (ja) * | 2013-10-11 | 2015-04-20 | ジーイー・アビエイション・システムズ・エルエルシー | 航空機用データ通信ネットワーク |
US9749256B2 (en) | 2013-10-11 | 2017-08-29 | Ge Aviation Systems Llc | Data communications network for an aircraft |
JP2017163530A (ja) * | 2016-03-10 | 2017-09-14 | グーグル インコーポレイテッド | ネットワークデバイスおよびトラフィックシェーピング方法 |
US10404602B2 (en) | 2016-09-23 | 2019-09-03 | Fujitsu Limited | Transmission apparatus and transmission processing method |
Also Published As
Publication number | Publication date |
---|---|
EP1382165A2 (en) | 2004-01-21 |
US7929433B2 (en) | 2011-04-19 |
TW558887B (en) | 2003-10-21 |
JP4070610B2 (ja) | 2008-04-02 |
CN1611035A (zh) | 2005-04-27 |
WO2002084957A3 (en) | 2003-07-31 |
US20040260829A1 (en) | 2004-12-23 |
WO2002084957A2 (en) | 2002-10-24 |
US20090154459A1 (en) | 2009-06-18 |
KR100902513B1 (ko) | 2009-06-15 |
KR20030089717A (ko) | 2003-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4070610B2 (ja) | データ・ストリーム・プロセッサにおけるデータ・ストリームの操作 | |
US7346001B1 (en) | Systems and methods for limiting low priority traffic from blocking high priority traffic | |
US7050440B2 (en) | Method and structure for variable-length frame support in a shared memory switch | |
JP4879382B2 (ja) | パケットスイッチ、スケジューリング装置、廃棄制御回路、マルチキャスト制御回路、およびQoS制御装置 | |
US7100020B1 (en) | Digital communications processor | |
US8665875B2 (en) | Pipelined packet switching and queuing architecture | |
US6721316B1 (en) | Flexible engine and data structure for packet header processing | |
US8571024B2 (en) | Pipelined packet switching and queuing architecture | |
US7151744B2 (en) | Multi-service queuing method and apparatus that provides exhaustive arbitration, load balancing, and support for rapid port failover | |
US6999415B2 (en) | Switching device and method for controlling the routing of data packets | |
US8023521B2 (en) | Methods and apparatus for differentiated services over a packet-based network | |
US20070140282A1 (en) | Managing on-chip queues in switched fabric networks | |
US20040252711A1 (en) | Protocol data unit queues | |
EP1133110A2 (en) | Switching device and method | |
JP4111974B2 (ja) | 送信主導型フロー制御装置 | |
US9363186B2 (en) | Hierarchical shaping of network traffic | |
EP1209865B1 (en) | Method and structure for variable-length frame support in a shared memory switch | |
CA2325135A1 (en) | Asynchronous transfer mode layer device | |
CA2288513A1 (en) | Apparatus and method for an atm layer device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050408 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070320 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070522 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070822 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070829 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071121 |
|
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: 20071218 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080115 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4070610 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: 20110125 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120125 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: 20130125 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 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |