JP2002541732A - バルクデータトランスファのためのサービスアジャストメントの自動検出方法 - Google Patents

バルクデータトランスファのためのサービスアジャストメントの自動検出方法

Info

Publication number
JP2002541732A
JP2002541732A JP2000610190A JP2000610190A JP2002541732A JP 2002541732 A JP2002541732 A JP 2002541732A JP 2000610190 A JP2000610190 A JP 2000610190A JP 2000610190 A JP2000610190 A JP 2000610190A JP 2002541732 A JP2002541732 A JP 2002541732A
Authority
JP
Japan
Prior art keywords
data
flow
packet
received
data packet
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.)
Pending
Application number
JP2000610190A
Other languages
English (en)
Other versions
JP2002541732A5 (ja
Inventor
スピニー,バリー,エー.
ナラヤスワミー,クリシュナ
Original Assignee
トップ レイヤー ネットワークス,インク.
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 トップ レイヤー ネットワークス,インク. filed Critical トップ レイヤー ネットワークス,インク.
Publication of JP2002541732A publication Critical patent/JP2002541732A/ja
Publication of JP2002541732A5 publication Critical patent/JP2002541732A5/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • H04L12/462LAN interconnection over a bridge based backbone
    • H04L12/4625Single bridge functionality, e.g. connection of two networks over a single bridge
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5019Ensuring fulfilment of SLA
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/20Traffic policing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/52Queue scheduling by attributing bandwidth to queues
    • H04L47/522Dynamic queue service slot or variable bandwidth allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/205Quality of Service based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/508Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement
    • H04L41/5087Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement wherein the managed service relates to voice services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/508Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement
    • H04L41/509Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement wherein the managed service relates to media content delivery, e.g. audio, video or TV
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3018Input queuing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/60Software-defined switches
    • H04L49/602Multilayer or multiprotocol switching, e.g. IP switching

Abstract

(57)【要約】 データコミュニケーションスイッチにおいて、データフローに関連するデータバイトのナンバーをトラッキングする過程並びに装置に関する発明である。データフローはセッションの一部であって、フローが電子メール又はその他ファイルの伝達の部分であることを示す領域に到達すると、フローのリマインダー伝達に付与されたプライオリティーを自動的に減少させる。

Description

【発明の詳細な説明】 【発明の属する技術分野】
本願発明は一般にはコンピューターネットワーク、特に、通信方式イーサネッ
ト(登録商標) プロトコルやワイド エリア ネットワーク(WANs)に、また 非同期転送モード(ATMs)プロトコルにサポートされているようなローカル エ リア ネットワーク(LANs)の切替可能な接続に関係するものである。
【従来の技術と発明の解決しようとする課題】
(発明の背景) 既存のデータコミュニケーション切替の問題点は、異なった型式のデータフロ
ーを区別することが出来ないことにあった。従って、切替や結節は過剰優先順位
の低い電子メールやファイル転送のデータ交通量によっての混雑を招くおそれが
あった。この切替の招く混雑は、よりリアルタイムであることを要する、また、
インターネット電話法やビデオ会議や など発達によってより重要となってきて
いるビデオやオーディオストリーミングの交通を中断させてしまうおそれがある
。 ネットワーク接続においての大きな問題の一つは、特有なネットワークにおい
ての異なったデータのプロセスシステム間での通信に利用される多種の異なった
ネットワーク プロトコルがそのようなネットワーク間での通信を困難にしてい
ることである。他の大きな問題点は多くののネットワーク プロトコルはコンピ
ューターシステムやノードをjくわえる時に、相当なパラメーターのコンフィギ
ュレーションを要することであり、典型的にはそれがネットワーク専門の人であ
ってもミスをおかすため、、デバイスアドレスの手入力で行われた場合である。
この問題はネットワークボウンダリーをまたいでの接続である時には悪化する。
【課題を解決するための手段】
以上の課題を解決するため、本願発明では、レシーブフィジカルパスとトラン
スミットフィジカルパスとの間でデータパケットのフローをフレキシブルに接続
するための方法であって、 (a)該レシーブフィジカルパスにデータパケットを受領するステップと、 (b)該データパケットが以前に受領したデータパケットでイニシエートされ
たフローの一部であるか否かを決定し、(i)一部でなければ、新フローの一部と
して受領されたデータバイトの数のカウントに提供されたデータバイトの数を追
加し、(ii)一部であれば、前記以前にイニシエートされたフローの一部として以
前にカウントされたデータバイトの数のカウントに提供されたデータバイトの数
を追加するステップと、 (c)前記追加ステップの結果として受領されたデータバイトの数のカウント
が所定のしきい値を超えるか否かを決定し、(i)超えなければ、トランスミッシ
ョンのために第1品質のサービスセクエンスを適用し、(ii)超えれば、トランス
ミッションのために第2品質のサービスセクエンスを適用するステップと、 (d)前記適用された品質のサービスセクエンスに従って前記フローの一部で
あるデータパケットをトランスミットするステップと、 を含んでいることを特徴とする方法を提案した。
【発明の実施の形態】
本明細書は、以下のように編成されている。 1.BlazePath(商標)/BlazeFire(商標)アーキテクチ
ャ/チップ・セット 2.ヘッダの「カノニカル化」およびパケットの「カノニカル化」 3.BlazeWire(商標)高速MACバス 4.データ・フロー・イン 5.キュー・ポインタ管理およびオペレーション 6.リライ・エンジン・オペレーション/フロー整合(FastPath(商
標)) 7.送信スケジューリング 8.インターフェースへのダウンロード/送信クレジット・ループ 9.超高速RAMBUS(登録商標)オペレーション 10.背景エンジン/初期化/監視 11.マルチメディア・データ・フローのスケジューリング 1.BlazePath(商標)/BlazeFire(商標)アーキテクチ
ャ/チップ・セット 本発明のアーキテキクチャは、BlazePath(商標)と呼ばれ、アプリ
ケーション層フロー切替え、または、特定のフローにおけるメンバシップを特徴
付けるパケットのアプリケーション・ヘッダの情報に基づいて行われた決定によ
る、多数の仮想キューの1つまたは複数に入来するデータ・パケットを(高速デ
ータ・バッファに対するポインタによって)仮想的に割り付けることによって実
施される接続を備える。システムのスループットまたは帯域幅を改善するために
、好ましい実施形態である、AppSwitch(商標)アプリケーション・フ
ロー・スイッチは、フローの初期パケットにより決定し、情報のヘッダのハッシ
ュ・バージョンを整合させて、フローの後のパケットを識別する。入来するフロ
ーのヘッダ情報を「カノニカル化」し、長いフレームをより小さい内部セルに分
割することによって(ただし論理的には接続されているように保つ)、システム
は、独立した「フレームのセル」になる。 図1を参照すると、好ましい実施形態において、アーキテクチャが、Blaz
eWire(商標)MACバス60によって接続されているBlazeFire
(商標)のチップセットにおいて実施されている。アーキテクチャは、100M
Hzで動作する287kゲートのキュー・マネジャ(「QM」)ASIC30の
周囲に集中している。このキュー・マネジャは、入来するパケットが一時的に格
納されるQM30に接続されている高速データ・バッファ35および36の位置
に、ポインタ(24ビットの定義)の16、000、000のキューを配置する
ことを可能にするキュー−ポインタ・スキームを実施する。キューは、410k
ゲートのリライ・エンジン(「RE」)、または、検査されるパケット・ヘッダ
に対するArgonaut RISC(ARC)中央処理ユニット387および
FIFO305を含む、100MHzで動作する転送エンジン(「FE」)AS
IC40によって行われた決定に基づいてロードされる。システムへの入力とシ
ステムからの出力は、BlazeWire(商標)MACバス60上でデイジー
チェーン接続されている、350kゲートの60MHz MOM(MTI(メデ
ィアに無関係なインターフェース)8進法MAC)ASIC10および20を使
用して実施される。MOMチップ10および20は、各々、ローカルエリアイー
サネットに対する2つのクワッド物理リンクチップ(それぞれ71および72と
70および73)、または、T1とPOTS(「普通の従来の電話サービス」)
のWANライン69をサービスする分散アクセス・デバイス(DAD)WANプ
ロセッサ66あるいは背景エンジン(「BE」)50に対するインターフェース
の役割りを果たすことが可能である。 図2は、MOMチップ10など、本発明の好ましい実施形態で使用される、M
OMチップのブロック図である。一般に、図は、8つの2重イーサネット・ポー
トを提供するMIIインターフェース65を示す。受信インターフェース11と
パーサ12は、データ・パケットを受信し、以下のセクション2で記述するカノ
ニカル・ヘッダとしてフレーム・ヘッダを書き換え、結果的に得られるパケット
を128バイトのセルに分割する。このセルは、8つのポートの中のラウンド・
ロビン・アービトレーションにおいて、プロデューサ13とFIFOアービタ1
4によって、FIFO15に配置される。カノニカル・ヘッダを担っていないデ
ータ・セル(パケットの第1セルに続くパケット・セル)は、データの内部タグ
付けのためにバースト論理17によって追加されたバースト・ヘッダを有する。
RXクレジット・マネジャ19は、送信クレジット(以下のセクション8におい
て議論する)を適切であるとしてヘッダに追加して、送信FIFO24が送信さ
れるより多くのデータを受信することができることをQM30に通知する。トー
クン・アービタ18は、データをMACバスTXセル76に送信し、さらにMA
Cバス60上でQM30に送信するときを決定する。 さらに図2を参照すると、MACバス60に入来するデータ・セルは、カノニ
カル/バースト・ヘッダの回路識別子により、送信コンシューマ26に向けられ
る。データ・パケット・ヘッダは、送信コンシューマ26とインターフェース2
7によって再構築および送信され、TXクレジット/マネジャ28は、クレジッ
ト情報で更新されて、QM30に戻る。 図3は、本発明の好ましい実施形態で使用されるQM30のブロック図である
。本質的に、QM30は、(データ・バッファに連結されたポインタの連結リス
トによって仮想的に実施された)適切なキュー上でデータ・セルの配置を迅速に
実行し、RE40によって支持されたキュー・ポリシを適用するように設計され
ているゲートと状態機械の集合体である。QM30は、3つのクロック・レジー
ムに分割される。受信データFIFO306と受信コマンドFIFO312を供
給するデジタル遅延ロック・ループ302と受信インターフェース304を通り
、送信データFIFO305を排出するデジタル遅延ロック・ループ301と送
信インターフェース303を通るMACバス60とのインターフェースは、MA
Cバス・クロック上にある。受信したデータ・セルは、以下で議論するように、
直接2重RAMBUS(登録商標)アクセス・セル308を通って、ERAM3
5および36にチャネリングされる。DRAMクロック上で動作するDRAMイ
ンターフェース307は、MACバスFIFO305と306、ならびに、ヘッ
ダ・アウトFIFO309(ヘッダ・データ・インターフェース74上でRE4
0(図示せず)に送信されるカノニカル・ヘッダ・セルを含む)、ヘッダ・イン
FIFO310(適切なルーティング情報でリライ・エンジン・データ・インタ
ーフェースにおいて書き直されたカノニカル・ヘッダを含む)、およびDRAM
コマンドFIFO311のオペレーションを調整する。DRAMコマンドFIF
O311は、SRAMクロック領域下の機能ネットワークにおいて示したQM論
理によって実施されたREの決定を含む。受信エンジン315、送信エンジン3
16、およびヘッダ・プリフェッチ・エンジン234は、データをDRAM35
および36から出し入れする命令をDRAMインターフェース307に提供する
ように、DRAMアービタ314の機能に指示する。また、受信エンジン315
と送信エンジン316は、DRAM35および36のバッファを入来するデータ
に割り付けるように、自由バッファ・マネジャ318と調和する。エンキュー・
マネジャ319とデキュー・マネジャ312は、ヘッダ・プリフェッチ・エンジ
ンおよび受信キュー状態(以下のセクション5において議論するように、受信キ
ュー・ポインタのヘッドとテール)320と調和して、とりわけパターン整合の
ために、カノニカル・ヘッダ・データを含んでいるセルをRE40に送信し、受
信したキューから対応するパケットを取り出すときについて決定する。ヘッダ・
プリフェッチ・エンジン314は、リライ・エンジン・コンテキスト326、イ
ンターフェース75を介してREから命令を受信する命令ディスパッチ・マネジ
ャ327、リライ・エンジン命令インターフェース329、およびリライ・エン
ジン命令FIFO328と調和する。回路ポーラ317は、回路ごとに送信エン
ジン316をポーリングして、セルを送信し、SRAMインターフェース323
を通して、SRAM32のバッファ・ポインタ(「記述子」)の連結リストにア
クセスし、1つまたは複数のキュー上で受信および送信される際のパケットの構
成要素セルを追跡するSRAMアービタ322と調和する。適切なフィールド・
マッピングがハードワイヤードされているこれらのオペレーションは、非常に高
速で実行されたスケジューリングとルーティングの高度な柔軟性に備えている。 図4は、RE40のブロック図である。RE40の主要機能は、QM30から
インターフェース74において受信したカノニカル化したパケット・ヘッダを検
査して、パケットが既知のフローに属するか、および、それに応じて適切なスケ
ジューリングのためにインターフェース75上で命令を提供するかについて、迅
速に決定する(サービス品質)。CPUコア387(ARCプロセッサで実施さ
れる)は、命令キャッシュ386とデータ・キャッシュ385を含み、DRAM
インターフェース384(やはり、初期化時に、低速バス62とDMA383を
介して、BE50から命令を受信する)を介して、コードおよびデータDRAM
42と通信する。ストリング比較コプロセッサ389を使用して、パケットとフ
ローを整合するために使用するパターン認識を援助する。一般に、RE40に入
るカノニカル化したパケット・ヘッダは、MUSIn394によってデータFI
FO394内にMUXすることと併行して、ハッシュ・プリプロセッサ399に
よって事前処理される。併行ハッシングの結果は、ハッシュFIFO393に配
置され、ハッシュ探索エンジン392によって、(特定のフロー特性と関連付け
られているヘッダ情報の既知のハッシュに関する)ハッシュ表391のオンボー
ドL1キャッシュのコンテンツと比較される。L1キャッシュ391に整合性が
見出されない場合、ハッシュ探索エンジン329は、SRAMインターフェース
とアービタ388を介してアクセスした、探索SRAM45のハッシュ表全体を
調べることになる。トライ・サーチ・コプロセッサ390を使用して、迅速なパ
ターン整合が適切でないかまたは失敗した状況(以下で議論する)における、適
切なフロー・パラメータを見つける。決定したフロー・パラメータにより、CP
U387によって、適切な命令を命令FIFO395に発行して、データFIF
O394からMUXアウト397によってインターフェース75を横切ってQM
30内に提供されたあらゆるデータで多重化された命令プッシュ396によって
処理する。 図5は、キュー管理の観点から、本発明の好ましい実施形態のオペレーション
に関する一般的な概略図を示す。MOM受信ポート15’上のデータは、QM主
要受信FIFO330内に向けられる。また、データは、プロトコル66’下お
よびDAD管理66’下で処理されたWAN(T1およびPOTS)ポート受信
キュー69’からDADイーサネット送信キュー348’内にエンキューされて
、MOM受信ポート348上に出現する。受信FIFO330のデータ・セルは
、主要システム・パケット・メモリDRAM35および36に配置され、一方、
カノニカル・ヘッダは、FIFO394において、QM30に転送される。ここ
で、FastPath(商標)処理を適用して、フローごと、優先順位ごと、お
よび各ポート・キュー332(以下で議論するように静的優先順位)および33
3(以下で議論するように、重みを付けたロビン優先順位)ごとにパケットの適
切なキューイングを、送信のためにMOM送信ポート24’(または、さらにT
1およびPOTSポート送信キュー69”に分配するために、回路キュー350
上で分配されるDAD66)に送信することを可能にする。スケジューリングの
微妙な同調は、「中間」キューとしてスケジューリングしたキュー335を使用
したフローごとのキューイングに対して、サービス品質スケジューリング・プロ
セス336を使用して達成することが可能である。管理キュー337も、重みを
付けたラウンド・ロビン・キュー333上で動作する管理オペレーション・プロ
セス338を備える。また、モニタ・キュー334が、MII24’上で送信さ
れる情報を監視するネットワークに対して提供されている。BE50側では、M
OMポート送信キュー339上に配置されたデータは、MII(100Mbit
のイーサネット)リンク54上で、BE受信キュー341内に送信される。背景
エンジン主要転送プロセス342は、情報を、BE送信低優先キュー346、ま
たは管理オペレーション・プロセス344によってサービスされる管理キュー3
43内に渡し、データ(命令を服務)を開発して、BE送信高優先キュー345
上に配置する。両方のBE送信キューとも、リンク64を介して、MOMポート
受信キュー347内に排出され、QM受信キュー330上に配置される。 図6は、本発明のプロセスに関する一般化した流れ図である。プロセスは、異
なるセルに対する図の様々な点に沿って、同時に行われることを理解されたい。
本発明の好ましい実施形態は、しばしば、入来する長いイーサネット・フレーム
を、後の再アセンブリのためにセルに分割するので、この実施形態では、元とな
ったパケットに関して、セルを特徴付けることが重要である。受信したセルは、
「パケットの開始」(「SOP」)、「パケットの中間」(「MOP」)、「パ
ケットの終了」(「EOP」)とすることが可能であり、または、「パケットの
開始および終了」(「SEP」)として1つのパケットを含むことが可能である
。好ましい実施形態におけるパケットの受信および送信は回路ごとに実行され、
回路はパケットの順序を維持する局所的な接続として定義されるので、1つの回
路上のパケットのセルは、MACバス上など、他の回路上のパケットのセルでイ
ンタリーブすることが可能であるが、同じ回路上で受信されたセルは、同じ順序
で送信されなければならない。したがって、図6Aでは、時間が上から下に進む
につれ、MACバス上に現れる順序で、SOP371が回路2から受信され、次
いでSEP372が回路1から、SOP373が回路3から、MOP374が回
路2から、EOP376が回路3から、SOP375が回路1から、EOP37
7が回路3から受信される。 図6の示した一般化したプロセスを参照すると、オペレーション351におい
て、パケットはMIIにおいて受信され、オペレーション352において、やは
りカノニカル・ヘッダ(および可能であればバースト・ヘッダ)を追加するMO
M10または20によってセルに分割される(図1参照)。MOM送信バッファ
のセルは、オペレーション353において、MACバス上で調停され、オペレー
ション354において、後に送信するためにDRAMに格納され、これはまた、
本発明の好ましい実施形態で使用した仮想パケットのリンクリストなど、セルを
当初のパケットに関連付ける手順の開発を含む。セルがSOPである場合、セル
をパターン整合手順に送信する決定355が行われ、セルは、以前に識別された
フローに関連付けられている既知のハッシュ結果に対して、ハッシュされ356
、次いで整合される357。整合が存在しない場合(おそらくはいくつかの整合
手順後)、新しいフローまたは例外が指定される358。いずれの場合でも、パ
ケットを適切にスケジューリングおよび経路指定するために、適切なヘッダが書
かれる。好ましい実施形態では、スケジューリングは、パケットを指定されたサ
ービス品質と特定の回路に関連付けられているキューに割り当てることによって
行われる。キュー上のセルは、適切な時間に送信360され、プロセスは、おそ
らくはヘッダの書換えを含む。送信されたセルがEOPであった場合、パケット
は、回路からデキューされ361、パケットを送信するという他の要求が存在し
ない場合(オーナ362がもはやない場合)、データ・バッファは解放される3
63。このプロセスは、さらに一般化して、多様な方式で実施することが可能で
ある。 本発明の好ましい実施形態によるデータのフローについて、さらに以下で提示
する。これには、追加の発明が含まれる。 2.ヘッダ「カノニカライゼーション」およびフレーム「セルラー化」 物理レイヤ上でデータ・パケットを受信すると、この発明的なネットワーク・
スイッチは、到来パケットのレイヤ2ヘッダおよびレイヤ3ヘッダをとり(レイ
ヤ1パケット・プリアンブルがあればドロップし)、それをカノニカル形式に変
換する。本発明はさらに、可変長パケットを、高速内部バス上での通信にとって
最大限に都合のよい長さの「セル」に分割する。これにより、イーサネット「フ
レーム」やATM「セル」などの異なるレイヤ2ヘッダ・フォーマットおよびレ
イヤ3ヘッダ・フォーマットであって異なる長さのデータ・パケットを、同じス
イッチング・プロセスおよび装置でルーティングすることができる。ヘッダの「
カノニカライゼーション」はまた、処理に都合のよい4バイト境界に沿ってヘッ
ダを整列させる。ここでの例はイーサネット・フレームの場合であるが、用語お
よびインターフェースASICを適切に修正すればATMセルにも適用可能であ
る。 図1を参照すると、図示した8つのポートのうちの1つを介して情報のフレー
ムがMOM1チップ10によって受信される。物理リンク・レイヤ1の処理は、
好ましい実施形態ではデュアル「オフザシェルフ」QuadPHY集積回路(L
ucent Technologiesから入手可能なものなど)によって扱い
、各回路は、10Base−T(10Mbit/秒)または100Base−T
X(100Mbit/秒)のイーサネットの送信/受信電子回路を扱う。ポート
の1つ、例えばMOM2からのポートを、内部または外部10Mbitイーサネ
ットによって、オフザシェルフWANプロセッサ(Motorolaから入手可
能なものなど)を含むDAD集積回路に接続することができ、DAD集積回路は
、モデムを介してT1およびPOTS回線とインターフェースする。これらは共
に、QuadServe(商標)WANアクセス・モジュールを形成する。 図1を参照すると、メッセージを形成するデータ・ストリームの形をとる情報
のフレームまたはパケットが物理回路70に入力され、次いで、MOM1チップ
10によってその8つのポートの1つを介して受信される。図18に、典型的な
パケット・フォーマットの構成を概略的に示す。プリアンブル620があり、こ
れに続いて、パケットをブリッジングするための情報を含むデータ・リンク・レ
イヤ2ヘッダ622と、メッセージをルーティングするための情報を含むネット
ワーク・レイヤ3ヘッダ623と、データの使用対象であるアプリケーションに
関する情報を含むアプリケーション・ヘッダ624がある。これらのヘッダの後
にデータ本体625、および場合によってはトレーラ626があるが、トレーラ
626は通常は不要であり使用されない。 MOM1チップは、好ましい実施形態では様々なイーサネット・プロトコルを
認識するようにハードウェア中に事前プログラムされたものだが、これは、受信
フレームから、プリアンブルおよびトレーラをドロップし、レイヤ2および3の
ヘッダを読み、図7Aの28バイトのカノニカル・ヘッダを生成する。MOM1
は、1ポートにつき256バイトのバッファ容量があるので、フレーム・データ
をそれぞれ128バイトのセルにセグメント化する(他の実施形態では他のセル
長を用いてもよい)。 受信されたレイヤ3(ネットワーク)ヘッダ情報は、カノニカル・ヘッダをす
ぐに付加して記憶される。カノニカル・ヘッダは28バイトなので、レイヤ3ヘ
ッダは、常にセルの開始点から4の倍数バイトで開始する。レイヤ3内の重要な
フィールドは、通常、4バイト境界に整列する。これにより、32ビット・プロ
セッサ/メモリ・アーキテクチャの場合にこれらのフィールドの処理が非常に効
率的になる。 レイヤ3ヘッダには、アプリケーション・レイヤを含めた上位レイヤからの他
のヘッダ情報が続く。カノニカル・ヘッダは、受信された各フレームまたはパケ
ットの第1のセルの最初に配置され、パケットをルーティングまたはブリッジン
グするためにRE40によって使用される。セルのストリームの形をとるパケッ
トが送信されるようにMOMに送られたとき、MOMは、送信カノニカル・ヘッ
ダ中の宛先およびプロトコル情報に従って適切なヘッダ、プリアンブル、および
トレーラを再構築し、指定されたポートに接続された回線上で、再構築したパケ
ットの送信を開始する。 図7Aに、好ましい一実施形態におけるカノニカル・ヘッダの構成および内容
を示す。最初の2つのバイト430は、データ・パケットが受信された回路の回
路識別を保持し、バイト432すなわちDL Infoは、元の受信ヘッダから
のデータ・リンク(レイヤ2)ヘッダに関する情報を提供する。図7Bに、これ
らのビットに対する具体的な割当てを示す。ビット7は、受信されたフレームが
その受信時にVLAN(仮想ローカル・エリア・ネットワーク)でタグ付けされ
ていたかどうかを示す。送信時にこのビットがセットされている場合、送出パケ
ットは、送信を処理するMOMチップによってVLANヘッダでカプセル化され
る。ただし、VLANタグ付きで受信されたパケットは必ずしもVLANタグ付
きで送出する必要はなく、その逆も同様であることに留意されたい。 図7Bのビット6および5は、どのようにCRC(巡回冗長検査)が処理され
るかを示す。図7Cは改めて説明する必要はない。送出フレームが受信フレーム
と異なるときは新しいCRCを生成しなければならないが、単に元のフレームが
転送される場合はCRCを変更しなくてもよく、したがって、古いCRCを保持
するか別のCRCを生成する必要があることに留意されたい。ビット3および4
は未使用であり、0のままである。図7Dに、データ・リンク・フォーマットを
識別するビット2、1、および0に対する符号化を示す。 カノニカル・ヘッダNL Infoフィールド434は、ネットワーク・レイ
ヤ情報を含む。図8Aに、NL Info中の8つのビットの意味を示す。受信
に関して、ビット7の真は、受信された情報の宛先アドレス(DA)が、パケッ
トが受信された回路に関連するブリッジ・グループのアドレスであることを示す
。ビット6の真は、DAがそのポートに対するシステム・アドレスであることを
示す。ビット5の真は、DAが、ネットワーク制御プロトコルに関連するアドレ
スなど、本発明により「周知のアドレス」として事前構成されているアドレスで
あることを示す。送信時にこのビットは無視される。送信時、ビット7および6
がセットされている場合は、SAフィールドに適切なソース・アドレスが入る。 ビット4〜0は、パケットのレイヤ3プロトコルを識別する。図8Bは、本発
明の中に事前プログラムされたこれらのプロトコルを識別するものである。これ
らは、新しいプロトコルが開発されたときに拡張することができ、このシステム
によって効率的に扱う必要がある。 タイム・スタンプの4つのバイト138は、パケットが失効する時間を含む。
QM30は、パケットの第1のセルの一部としてカノニカル・ヘッダを受け取っ
たときに、そのパケットが失効する時間を入力する。QM30は、パケットの送
信時、現在時間がカノニカル・ヘッダ中のタイム・スタンプ値よりも大きいかど
うかをチェックすることになる。大きい場合は、データ・リンク・デバイスは、
そのパケットを送信せず、代わりにそれをカウントするように指示を受ける。こ
のフィールドは、MOMによって最初に生成されるときに、以下のセクションの
「Data Flow In」で述べるセル情報を含む。 2バイト受信回路識別(Rx Ckt Id)は、パケットが受信される回路
を識別する。QMは、データが再送される回路の回路識別でCkt Idフィー
ルド430を上書きする前に、MOM1によって最初に供給された受信回路識別
をCkt Idフィールド430からコピーする。したがって受信回路識別は、
後で使用されるように(BE50による管理およびRMON機能などのために)
保持される。 DAは、受信パケットの48ビット・レイヤ2(MAC)宛先アドレスである
。 SAは、受信パケットの48ビット・レイヤ2(MAC)ソース・アドレスで
ある。 VLANタグは、イーサネット802.1Qタグ付きで受信したパケットに対
応するための2バイト・フィールドである。前述のように、DL Infoフィ
ールド中のVLANタグ・ビットもまたセットされる。このパケットの送信を処
理するMOMチップは、送出パケットにタグ付けすることになる。 P−Type/lenは、プロトコル・タイプ/長さのフィールドを含む2バ
イト・フィールドである。この好ましい実施形態では、この値が1500(10
進法)よりも大きい場合、このフィールドはプロトコルを表し、この値が150
0以下である場合、このフィールドは長さを表す。プロトコルは、NL Inf
oフィールドのProtocol Kindサブフィールド中に取り込まれる。
プロトコルがそのように構成されていない場合、NL InfoフィールドのP
rotocol Kindサブフィールドは、Unknown(0)を示すこと
になり、P−Type/lenフィールドはその値を有することになる。例えば
、パケットがイーサネット802.3フォーマットである場合、このフィールド
は、レイヤ3ヘッダ中の長さを使用した妥当性チェックに使用できる長さを含む
ことになる。 XXバイトは、受信パケットのパケット・フォーマットに基づく他の情報を有
することができる。図8Cに、異なるDLフォーマット・タイプの場合のXXバ
イトの内容を示す。 3.BlazeWire(商標)高速MACバス 受信されて1つまたは複数のセルに再構築され、第1のセルがカノニカル・ヘ
ッダおよび上位レイヤ・ヘッダを含むフレームは、QMとの間で、BlazeW
ire(商標)と呼ばれる高速MACバス上で通信される。 BlazeWire(商標)のここでの設計は、2つの大規模集積回路チップ
間で各方向に10個の信号および1つのクロック信号がある全二重クロック・バ
スである。このクロッキング・プロトコルにより、バス上のデータ転送をセルフ
・フレーミングかつ非対称かつ非エイリアシングにすることができる。すべての
信号は、内在伝送回線が適切に終端している2つの導体ラン間の差動信号である
。この好ましい実施形態では、差動ドライバおよびレシーバの電気的特性は、ほ
ぼ低電圧差動規格(SVDS)ANSI/TIA/EIA−644に記述されて
いるとおりである。差動信号電圧は、約250ミリボルト(mv)であり、ケー
ブル終端および物理信号パスは、バスにわたる高速動作に対応するように設計さ
れる。バスは、一方の大きなチップ(MOMまたはQM)から他方のチップに続
くチェーンとして構成される。バスへのチップのアクセスを制御するために、後
述するように別のデイジー・チェーン型トークン・パス手法が実装される。バス
の電子設計は、場合によって異なる製造、供給電圧変動、および温度変動からく
る、チップの異なる製品ランに付きものの実際の変形を補償する。好ましい実施
形態では、バスのスピードは、ギガヘルツの範囲まで上げることができる。 10個の信号は8つのデータから構成され、1つはパリティであり1つは制御
である。これらのデータは、クロック信号の立上りと立下りの両方の線上に配置
される。データはクロック遷移における信号線上に配置されるので、信号は、受
信端でまたはクロック信号の中心の至近で読むべきである。これにより、どんな
オーバーシュートも、他のどんな信号遅延または異常も解決することができる。
両方のクロック信号遷移における信号線上にデータがロードされるので、クロッ
ク・エッジとバス上に配置されたデータとの間のスキューが最小限に抑えられた
対称クロックを有することがクリティカルである。この回路は、クロック信号の
両方の位相の中心を監視および発見するフィードバック機構を提供し、さらに、
チップを介してバスの継続の上に送出されつつある信号に対称クロックを提供す
る。 図9に、各方向に10本がグループになった20本の信号線と各グループにつ
き1つのクロックとを有するMOM1およびMOM2として示す2つのサブシス
テム間の基本的な信号フローを図示する。図10に、22本の線のそれぞれの差
動特徴を示す。当技術分野で周知の差動ドライバおよびレシーバが、信号忠実度
を最大限にしてリンギングを最小限に抑えるために、それらに特徴的なインピー
ダンスで伝送回線を適切に終端する。他の実施形態で有利なように、ドライブ側
に実装する手法など他の終端技術を使用することもできる。 図11は、10個のデータ・ビットのうちの1つをMOMのうちの1つから出
力するための回路の概略である。この回路は、本質的に他のデータ・ビット用に
複製される。この回路実装により、クロック対称性が最大限になり、スキューが
最小限に抑えられる。Aデータ462が、出力466上に配置され、Bデータ4
64がそれに続く。Aデータは、フロップ468中にラッチされ、論理配列に提
示される。前のBデータがラッチ472中に残されており論理配列460に入力
されると考えてみる。論理配列は、信号をラッチ474にロードするように構成
され、ラッチ474は、ラッチ476中に残った信号との「排他的論理和がとら
れる」と、ゲート466の出力にA信号を提供する。次にクロック・エッジ上で
、同様の演算がBデータ信号を出力に提供し、このBデータ464は、472で
ラッチされ、ラッチ474中にある前の信号との「排他的論理和がとられ」、し
たがって、ラッチ476中のデータの「排他的論理和」が、「排他的論理和」4
66の出力にB信号を提供することになる。図12は、以上のことを単純化した
タイミング図である。 図12Aに、バス・クロックと、MOM1と2の間のバス上にある10本のデ
ータ線との複合タイミング・チャートを示す。図12Aは、クロック信号の各エ
ッジの上における8つの連続したバイト(加えてパリティおよび制御)の転送を
示している。 信号がMOMまたはQMで受信されるとき、図13に、受信クロックのある位
相の中心にエッジがある遅延クロックを提供するのに使用されるMOMの回路を
示す。別の類似の回路を使用して、受信クロックの別の位相の中心にエッジがあ
る遅延クロックを提供する。これらの中心合わせしたクロックは、データを受信
MOM中にラッチするのに使用され、また、MOMから信号を送出するのに使用
される対称クロックに対する基準となる。受信クロック80は、ラッチ482お
よびラッチ484に入力されるデータになる。遅延クロックDLYA(入力クロ
ックの遅延バージョン)が、クロック信号480をラッチ482にラッチし、ラ
ッチ482の出力はSAMPLE CLK Aであり、遅延クロックDLYBが
、クロック信号480をラッチ484にラッチし、これは出力SAMPLE C
LK Bを伴う。DLYAおよびDLYBは、プログラム可能な分だけ制御論理
によって遅延される。これらのSAMPLE CLKは両方とも、信号の同期を
とるように設計された回路を介して制御論理配列90にフィードバックされる。
動作時、制御論理は、いつDLYAが発生するかをプログラムすることができる
。このようにして、DLYAはローのときにクロック480信号をラッチするこ
とができ、制御論理がSAMPLE CLK A信号によってローのときを決定
することができる。制御論理は、クロック480信号がハイになるまで、異なる
遅延の設定を継続する。同様にして、制御論理は、クロック信号がローに戻るま
で、異なる遅延の設定を継続する。前と同様に、制御論理は、SAMPLE C
LK A信号を監視することからこの条件を決定する。図13Aを参照すると、
制御論理がクロック信号480の第1の立上り480’および立下り480”を
見つけると、制御論理は、DLYA立上り486を「知り」、クロック480の
正の位相の中心に設定することができる。このDLYA立上り信号は効果的にも
、クロック480の次の連続した正の位相上のデータをラッチするのに使用され
る立上り486’となる。DLYA信号の中心合わせの間、図13Aの時間48
6で受け取られる実際のデータは、前にクロック480の正の位相に中心合わせ
された図13の信号DLYBによってラッチされる。DLYBの前の中心合わせ
は、SAMPLE CLK Bフィードバック信号およびDLYB遅延信号を用
いて上に述べたのと同に方式で達成されたものである。この実施形態では、ある
遅延クロックがデータをラッチしている間に、他の遅延クロックがいくらか後で
使用されるように中心合わせされる。 図13の回路は、複製されて、反対の位相上のデータをラッチするために入力
クロック信号の負の位相の中心が正確に測定される。図13は、受信クロックの
負の位相の中心に正確にDLYC立上り489を示している。前述のように、他
方のクロック(図示していないDLYD)がデータをラッチしている間に、DL
YCクロックがクロック480のある負の位相の間に中心合わせされ、DLYC
クロックがデータをラッチする間に、DLYDが中心合わせされる。 図14に遅延回路の各部を示す。IN信号494は、あるゲート495によっ
て遅延され、「and」ゲート466に入力される。制御1信号が論理信号であ
る場合、この信号は、96を横断し、「or」構造498を介して出力され、3
つのゲート遅延すなわち495、496、498によって遅延された出力信号と
なる。この遅延は、1つの遅延ユニットと見なされる。制御1信号が論理「0」
であり制御2信号が論理「1」である場合、IN信号は、ゲート495、495
’、496’、498’、498を通って移動する。このパスは、2つのゲート
よりも長く、IN信号は2つの単一ユニット遅延回路を通って行ったものと見な
される。各信号遅延ユニットは、2つのゲート遅延を追加する。制御論理によっ
てIN信号が3つのゲート500に到達でき、制御X信号が論理信号である場合
、IN信号は、4つのゲート、すなわち3つのゲート500およびゲート504
のインクリメンタルを通っていくことになる(ゲート502は各遅延回路中で複
製されて前の遅延回路中でディセーブルにされた共通パスである)。この回路は
、4つのゲート遅延を追加し、2つのユニット遅延を形成する。4ユニット遅延
(図示せず)は、3つのゲート500を7つのゲートで置き換えることになり、
したがって8つのゲート遅延または4つのユニット遅延のインクリメントを追加
する。この好ましい実施形態では、32個の単一ユニット遅延と、16個の2ユ
ニット遅延と、16個の4ユニット遅延がある。この好ましい実施形態における
構成により、選択できる合計128個のユニット遅延までの等差数列状の遅延が
可能である。他の実施形態では、他の遅延回路構成を選択することもでき、他の
周知の遅延回路を有利に使用することもできる。この好ましい実施形態では、回
路を構築するのに使用される予想される製造プロセスに対し、かつ予想される温
度および供給電圧動作に対し、単一遅延が約0.15ナノ秒となる。前述のパラ
メータに応じて、1ユニット遅延の変動が0.08から0.3ナノ秒までにわた
る場合があることが予想される。 図15(表1)は、この好ましい実施形態での制御ビットの使用法を示す表で
ある。ビットはフレーミングに使用される。図12Aのタイミング図では、e0
〜e7でマークされた各クロック遷移で8バイトが転送される。表1は、偶数遷
移、e0、e2、e4、およびe6に関する制御ビットの値を示すものである。
これらの組合せが、一番右の列に示された許容機能を示す。各偶数遷移で制御ビ
ットがゼロの場合、バスはアイドル状態である。行510に示されたいずれの組
合せも、データ・ライン上にあるデータが有効フレームであることを表示するも
のである。具体的に言えば、データの有効フレームでは、e6時間の値が常にゼ
ロでありe0時間の値が常に1であるため、システムは制御ビットのゼロから1
の時間シーケンスを探す。e0では1が想定され、行510に示された組合せが
存在すれば、このデータのフレーミングは8バイトの有効セットを示す。 8バイト・データの有効フレームにエイリアシングが発生することのないよう
に、行510の値が選択される。有効な制御ビット・シーケンスの組合せ、すな
わち図15の行510には、必ずゼロの次に1があり、有効フレーム内にそれ以
外のゼロ/1パターンはない。図16では、偶数クロック遷移での制御ビット値
のパターンが、フレーム512を無効として示しているが、これは、フレーム5
12のe2およびe4に、別のゼロ/1パターンがあるからである。ただし、フ
レーム514はフレーム516と同様に有効である。実際には、制御ビットの値
が各受信クロック位相で測定され、クロック位相で分けられたゼロから1への遷
移が監視される。このような遷移が発生した場合、1はe0時間スロット内にあ
るものとして扱われ、フレームの有効性の監視は、その相対的タイミングに基づ
くものである。 MOMチップからQMへのデータ伝送は、好ましい実施形態では、トークン・
リングによって調停される。図1のシステム構成/概略図を再度参照すると、ト
ークン・リング調停パス61が、MOM 1とMOM 2との間に示されている
。トークン・リングとは、入力トークン信号と出力トークン信号との間に論理的
な相違が存在する場合、チップがトークンを有するループ状の信号のことである
。図17では、チップ内に有効な反転がないため、パス内にインバータがあり、
初期設定時に1つのチップ、この場合はMOM 1がトークンを得て、バスを制
御することが保証される。チップがトークンを得ると、バスを介して独自のデー
タを送信することが可能であるが、チップがトークンを得ていないと、トークン
を待たなければならず、その間他のデータは単にチップを介して渡される。チッ
プがトークンを得ると、そのチップによって送信される必要のあるすべてのデー
タが送信された後に、トークンが解放される。MOM 1がトークンを得た場合
、MOM 1が出力信号61の状態を変えることによって、トークンがMOM
2に渡される。その後、MOM 2がトークンを得る。 このトークン・パッシングは、1つのデバイスの単一トークン出力信号と、次
のデバイスの単一トークン入力信号とを接続することによって、複数のデバイス
へと延長することができる。最終デバイスのトークン出力信号が反転され、その
後、トークン・パッシング・チェーン内の最初のデバイスに送られる。 エッジでトークン・パッシングを実施するか、または情報の状態を変えること
で、異なるクロック・ドメイン間での同期化が容易になる。エッジ・ベースの情
報パッシングにより、トークンが認識され、トークン・パッシング・チェーン内
の次のデバイスに渡されるまで、そのトークンは自動的に前のデバイスで有効な
ままとなる。 4.データのフロー・イン MOM 1チップ10は、8ポートそれぞれについて、2セルまたは256バ
イトまでの受信データを格納またはバッファリングすることができる。前述の「
ヘッダのカノニカライゼーション(Header Canonicalizat
ion)」の項で述べたように、MOMチップが、受信したフレームまたはパケ
ットからレイヤ2およびレイヤ3のヘッダを読み取り、28バイトの最初のカノ
ニカル・ヘッダを生成(この項で詳細に述べる)した後、ネットワークのレイヤ
3ヘッダおよび第1セルのアプリケーション・レイヤ・ヘッダが処理される。 MOM 10(または20)は、MOMが前述のトークン・リング・アービト
レーション・パスのトークンを保持しているときに、高速MACバス60上でセ
ルをQM 30に伝送する。MOMの8ポート間で、アービトレーションは順繰
りである。QMがセルを受け取り、このセルをダイナミックRAM 35および
36に格納するが、この好ましい実施形態では、以下の第9項で述べるような高
速アクセスのDRAMバンクを2つ備えた、RAMBUS(登録商標)DRAM
である。受け取って格納したセルを記述する情報は「記述子」と呼ばれ、SRA
M 32に配置される。カノニカル・ヘッダは、タイム・スタンプを含むように
修正される。パケット内の第1のセルにある修正されたカノニカル・ヘッダおよ
び残りのヘッダ情報は、RE 40に転送するために、ヘッダ・アウトFIFO
309内に配置される。 フレームのセグメント化およびアービトレーション・スキームにより、ある回
路上で受け取られたパケットの後続セルは、他の回路上で受け取られた他のパケ
ットのセルを使ってインターリーブすることができる。QMがパケットのセルの
順序を追跡できるような情報を提供するために、MOMは、パケットの第1セル
の最初のカノニカル・ヘッダの第1のオクトバイトに対応して、同じパケットの
後続セルに追加された8バイト(オクトバイト)の「バースト」ヘッダを書き込
む(最高17オクトバイトになる)。 追加情報が制御信号回線または高速MACバスのビット上で送信されることに
より、セルの境界およびセル内に格納された情報のタイプが識別可能になる。図
21は、オクトバイトのグループでデータを描くための、制御ビットの使用法を
示す図である。8つの連続するクロック位相上にある制御ビット700が、8バ
イトでフレーミングし、データを区別する。制御ビットの値は、図22の表で、
e0からe7で示されている。 図22では、偶数の制御ビットe0、e2、e4、およびe6が以下のように
符号化される。8ビットの有効グループが受け取られたことを示すために、e0
は常に1であり、e6は常にゼロである。この符号化のエイリアシングを避ける
ために、有効グループ(偶数の制御ビットe0からe6について)を示す値は、
1000、1100、および1110のみである。ビットe2はセルの開始を示
し、e4はパケットの開始を示す。図23は、偶数の制御ビットの可能なシーケ
ンスを示す図であって、グループ702は有効なグループではないが、グループ
704、708、および710は有効である。丸で囲まれたゼロ/1 708は
、有効グループの開始は、最初にゼロ、その直後が1である場合のみであり、続
く2ビット(e2およびe4)に別のゼロ/1はあり得ないことを示す。 さらに図22を参照すると、奇数の制御ビットは、以下のように符号化される
。e1は伝送クレジット(以下の考察を参照)が存在することを示し、e3(コ
ード・ビット0)およびe5(コード・ビット1)は2ビットのエンド・コード
を形成し、e7(ショート・ワード)は、オクトバイトが8つの有意バイトより
も少ないバイトを含むことを示す。ショート・ワードは、セルの開始およびセル
の終了時に使用することができる。 図24は、発生する可能性のあるいくつかのパケット・タイプを示す図である
。第1セル720は、16オクトバイトまで、すなわち128バイトまで有する
ことができる。第1の32ビット・ワード(オクトバイト)に関する偶数の制御
ビット722は1110である。図22に示されるように、このコードは、この
オクトバイトがパケットの有効な第1セルの一部であることを意味するものであ
る。有効なセルにはe0が「1」に等しいことが必要であり、e2が「1」に等
しければこの8バイト転送がセルの開始であることを意味し、e4が「1」に等
しければこれがパケットの開始であることを意味し、有効なセルにはe6がゼロ
でなければならないことがわかる。セル720の場合、奇数の制御ビットはすべ
てゼロであるが、例外として、最後の8バイト転送のビットe5だけは「1」で
ある。図25は、制御ビットe1、e3、e5、およびe7、すなわち奇数の制
御ビットの符号化を示す図である。セル720の場合、e5は「1」、e3は「
0」であり、これが「パケットの終わり」に復号化される。したがって、セル7
20は1つのセル・パケット(SEP)である。このセルは、全128バイト長
である必要はないことに留意されたい。 セル724はパケットの有効な開始セルであり、ここで奇数制御ビット726
のe3は、「パケットの終わり」ではなく「セルの終わり」を意味するように設
定されているため、これはSOPセルである。次のセル728は、パケットの第
2セル(MOP)であり、SOPに続くすべてのセルは、各セルの始まりに追加
されたオクトバイト・バースト・ヘッダ330を含み、17までのオクトバイト
を有することになる。この第2セルの場合、最後のオクトバイトe3は、このセ
ルがパケットの終わりではなくセルの終わりであることを意味するように設定さ
れる。セル734は、最後の8バイト・グループにe5を有し、これはこのセル
がパケットの終わり(EOP)であることを意味するように設定され、さらにこ
の場合、e7も設定される。ビットe7は、8つのうち最後のグループが一杯で
はなく、(図25に表されたように)「ショート・ワード」であったことを意味
し、これが発生すると、最後のバイト338には、最後の8バイト・グループ内
の有効バイト数が格納される。たとえば、最後のグループに有効バイトが3つし
かない場合、最後のバイト(e7制御ビットと同時に発生)には0011、すな
わち10進法の3が含まれることになる。 MOMチップからQMへのセルの伝送に関して、第1セルの開始時に、第1の
オクトバイトには、タイム・スタンプを含めるようにQMによって修正されたカ
ノニカル・ヘッダの一部が含まれる。カノニカル・ヘッダ全体が、他のヘッダと
共にDRAM内に格納され、このようなフレーム・データを128バイトの残り
部分に収めることができる。 図26は、QMによるカノニカル・ヘッダの第1のオクトバイトの伝送を示し
た図である。図からわかるように、MOM、Ckt ID、DL Info、お
よびNL Infoが書き込まれた最初の4バイト740が、QMによって転送
される。セル情報が含まれた2番目の4バイト742は、QMによってタイム・
スタンプ748で上書きされる。(カノニカル・ヘッダはREに送られ、パケッ
ト・ポリシーでのみ処理されて、セル情報には関与されない。) セル情報バイト742の第1のバイト744には、QMから報告された伝送ク
レジットの数が含まれる(以下の「伝送クレジット・スキーム(Transmi
ssion Credit Scheme)」の項で説明)。第2のバイトには
クレジット・フラグが含まれており、ビット7はSYNCHフラグ(初期設定用
)、ビット6は「親」フラグである(以下の第8項で説明)。第3のバイトは、
図27に示された意味を有するセル情報を提供する。ビットはそれぞれ、ビット
7はセル・エラーを示し、ビット6はパケットのタイムアウト、ビット5は不良
パケット・キューからのパケット、ビット4は監視キューから、ビット3〜0は
前述の制御から選択されたビットを示すという意味である。ビット3はパケット
終了ビット、ビット2はパケット開始ビット、ビット1はデータ・セル・ビット
、ビット0は伝送クレジット・ビットである。セル情報バイト742の最後のバ
イトは、セルの長さをバイト数で表す。 カノニカル・ヘッダなしのセルを追跡するのに使用されるオクトバイト長さの
バースト・ヘッダが、図28に示される。このフィールドは、DL Infoお
よびNL Info(SOPだけを対象とするREによって使用される)が、セ
ル・シーケンス番号752および未使用スペースに置き換えられている点を除い
て、最初のカノニカル・ヘッダの第1のオクトバイトのフィールドと同じである
。Ckt Id 750は、セル(より具体的に言えば、その代理であるバッフ
ァ記述子)を、同じCkt Idを有し、(セルが廃棄されていない限り)逐次
シーケンス番号を有しているはずの先行セルと一致させるために使用される。Q
Mによって、セルが先行セルと(以下で説明するように)いったんリンクされ、
クレジットが入力され、他方のセル情報に関するアクションが実行されると、バ
ースト・ヘッダは不要となり、ドロップされる。(セルは、パリティ情報がエラ
ーを検出すると廃棄される場合がある。このような場合には、MOMチップへの
信号送信によって、この時点でセルが、さらに最終的にパケットが打ち切られる
。)伝送段階でQMによって、セル用の新しいバースト・ヘッダが作成され、こ
こでCKT IDはパケットが送信される場所を示す。 5.QMバッファおよびキューの構造と操作 QMによってMACバス上に受け取ったデータ・セルは、以下のセクション9
で説明する高速アクセス操作に従ってRAMBUS(登録商標)DRAMの、ア
ドレス可能な128バイトのデータ・バッファに、正規のヘッダはそのままだが
タイムスタンプを含むように書き直され、またバースト・ヘッダのオクトバイト
をドロップして、個別に記憶される。アドレス00000はセル情報を含まず、
ヌル・ポインタに対応する。 MACバス上に受け取り、データ・バッファに記憶されたすべてのセルは、例
外として少数の専用キュー以外に使用される記述子/ポインタ方式を使用して単
一の仮想受信キューに編成される。この方式は、1ギガバイトまでのデータに対
応する受信キューを使用可能にする。 この記述子/ポインタ方式では、QM SRAMにあるデータ・バッファ「記
述子」は2つの4バイトの語を含んでおり、そのバッファに記憶されている実デ
ータの代理となり、論理パケットを形成するようにリンクされている。したがっ
て、データと共にデータ・バッファに割り当てられた記述子は、関連するセルが
記憶されているDRAMにあるバッファのアドレスを示す第1の語のフィールド
と、同一パケットの次のセルに関連するSRAMにある別の記述子802へのポ
インタを含む第2の語のフィールドとを有する。図29に示すように、完全なマ
ルチセル・パケットは、MOPバッファ記述子802を指すSOPバッファ記述
子801の第2の語と、EOPバッファ記述子803を指す記述子802の第2
の語と、パケットの最終セルに関連付けられた記述子803の第2の語と共に、
パケットの第1のセルに関連付けられた記述子801を指すポインタを含めて、
記述子「link−list」によって記述される。図29Bに示すように、不
完全なパケットは、記述子805の第2の語にヌル・ポインタを有する。 本発明では、キューは、キューの第1のパケットの第1のセルと、キューの次
のパケットの第1のセルに関連付けられた記述子の第1の語を指すフィールドと
に関連付けられた記述子の第1の語を指すキュー・ヘッド・ポインタによって形
成されており、キューの最終パケットまでこのように反復的にリンクされる。こ
のキューは図30に示すようにそれを指すキュー・テール・ポインタを有し、受
信キュー・ヘッド・ポインタはキューの第1のパケットの第1のセルに関連付け
られた指名子812を指し、テール811は受信キューの最終パケットの第1の
セルに関連付けられた指名子815を指す(記述子は、それぞれDRAM35ま
たは36の128バイトのバッファにマッピングする)。図示するように、キュ
ーに入れられたパラメータは必ずしも完全である必要はないが、このパケット志
向の実施例では、MACバスから受信したデータ・セルは、キューの最後ではな
く、バースト・ヘッダのRcv Cktによって識別されるそのパケットに「付
加」される。 受信動作において、QM Descriptor SRAMは、バッファ記述
子テーブルと受信コンテキスト(または回路)テーブルの中に編成される。この
バッファ・テーブルすなわちリストは2つの4バイトの語を含む記述子を有し、
語0はRAMBUS(登録商標)DRAMのデータ・バッファのバッファ・アド
レスを含み(したがってこのバッファ・テーブル項目は暗黙バッファである)、
語1はそのバッファ・テーブルの別の記述子へのポインタを含む。初期化の際、
このバッファ・テーブルは「フリー・バッファ・テーブル」であり、そこでは第
1のフリー・バッファの指名子をヘッド・ポインタによってQMハードウェアが
指し、その第2の語が次のフリー・バッファ記述子を指し、第2の語のヌル・タ
ーミネータを含む最終フリー・バッファ指名子までこのように反復的にリンクさ
れる。 データ・セルがMACバスからQMに提示される際、QMはその回路IDをそ
の正規のヘッダまたはバースト・ヘッダから抽出し、その回路の活動状況に関す
る情報をもたらす受信コンテキスト(回路)テーブルの項目に対してチェックす
る。SOPが検出されると、受信コンテキスト・テーブルの項目(8バイト・回
路)が作成され、ポインタ(現行バッファ)が次のフリー・バッファ識別子を指
すように入力される。このセル・データは関連するRAMBUS(登録商標)D
RAMバッファに書き込まれる。フリー・バッファ・リスト・ポインタは、「現
行バッファ」が割り当てられた後、次のフリー・バッファ指名子に移動される。 受信したセルがSEPでない場合、バッファ指名子の第2の語は次のフリー・
バッファ指名子を指し、関連するバッファを事前割当てし、次のバッファ項目の
第2の語に「0」が書き込まれる。 受信したセルがSEPまたはEOPである場合、このバッファ指名子の第2の
語はそのパケットの第1のバッファ指名子を指すようにセットされ、結果として
生じるパケットを定義するリンク・リストが受信コンテキスト・テーブルからリ
ンク解除される。 従って、MACバス上にインターリーブされる場合がある同一回路idと共に
受信されたセルは、事実上、リンク・リストによってパケット内に再構成され、
先導するセルが切断動作で送信されているときでさえその一部は不完全な場合が
ある。後者の場合、図30Bに示すように、受信コンテキスト・テーブル820
の現行バッファは、データ・セルがロードされるべきバッファに対応する次のバ
ッファ記述子833を指し、バッファ記述子833は、パケットの他のセルの記
述子832、822、および821にリンクされている。この記述子の1つ記述
子832は、送信コンテキスト・テーブルの回路項目の現行バッファ821とし
てリンクされている。送信コンテキスト・テーブルの回路項目が経路指定情報を
提供するので、記述子833に関連付けられたバッファにその後に配置されたデ
ータは「行く先を知っている」。このリンク管理システムは、「切断」すなわち
パケットの他の部分をまだ受信中にそのパケットの一部を送信することを可能に
する。 6.リレー・エンジン処理/フロー・マッチング(FastPath(商標)
) SOPのリンクされた記述子の受信キューはRE40による処理を待つ。SO
Pセル自体は、メモリ空間が使用可能になると、リレー・エンジンによって処理
される16個の128バイトのレジスタの「循環」FIFO394にロードされ
る。これは、SOPセルの処理に続くポインタ・システムによって実施され、そ
のレジスタが一杯になるまで(第2のポインタが図19の受信ポインタに「追い
つく」とき)セルを加え、次いでヘッド・ポインタによって指されたセルの処理
が完了し、ドロップされたときだけ(かつ、受信ポインタが送信ポインタに「後
れを取った」とき)、別のセルを付加する。 REの動作は4ステージのパイプラインを中心とする。パイプラインは、特に
高速ハードウェア設計における、長年に亘る当技術分野の用語であり、付随的に
言及する以外は本明細書でこれ以上説明はしない。REのタスクは、記憶されて
いるパケットの再送信を経路指定しスケジュール管理するために、フレーム・フ
ローの最良の転送を行い、それに従って転送情報をQMに提供する方法を決定す
ることである。この4つのステージをここで簡単に説明し、次いでフローを識別
するためのパターン・マッチングを実施するために使用されるハッシュ関数およ
び署名関数のより詳細な説明を続ける。 第1のステージは、ヘッダがハッシュ・エンジンによって処理されるのと平行
して、完全なヘッダ情報(SOPセル全体)を「循環」データFIFOに記憶し
、そのパケットが、経路指定情報およびスケジュール管理情報が既にそのために
開発されている既存のフローの一部であるかどうかをチェックするためのパター
ン・マッチング関数を実施するためにハッシュ値および署名値を計算する。 第2のステージは、Hash Table L1 391にアドレスするため
に使用されるHash値を受信する。このテーブルで有効な項目が見つかると、
L1 Tableからの署名が、Hashedデータの計算された署名と比較さ
れる。一致した場合、Hash TableのFlow Tag(図示せず)が
、パイプライン処理されるFE/REハードウェアの次のステージに有効なヒッ
トが見つかったという指示と共に提示される。Flow Tagは、そのフロー
に関する情報が記憶されているメモリのテーブルへの24ビットのインデックス
である。この情報には、本明細書各所で記載するように、他のフロー関連情報と
共にパケットを転送する1つまたは複数の回路が含まれる。 有効Flow Tagポインタ(指された内容をリンクする)は、この好まし
い実施形態で説明されるパターン・マッチング関数の好適な結果である。 L1でマッチが見つからない場合、外部L2Table45上でサーチが実施
される。前記のように署名が比較され、L2テーブルのFlow Tagが次の
ステージに提示される。次のサーチを容易にするために、L2項目はL1テーブ
ルに書き込まれる。 L1とL2のどちらにもヒットがない場合、計算されたハッシュおよび署名は
、ヒットが発見されなかったという指示と共に次のステージに提示される。 第3のステージは前記情報を受信し、ヘッダのルックアップが成功したかどう
かを判定する。成功した場合、そのヘッダ・データは、適用されるプロトコル規
則に従って更新され、そのパケットはフロー情報に従って転送される。しかし、
そのヘッダがTCP(レイヤ4転送制御プロトコル)SYNパケットまたは別の
プロトコルの接続パケットの相当する開始であることが判明すると、またはその
フレームが知られている接続フローの一部でない場合、そのパケットはそのフロ
ー情報に従って転送されない。それらの場合、REは、完全な事前ハッシュされ
たヘッダを復号化することによってそのフロー・フレームを経路指定するように
働く。このプロセスにおいて、有用なフロー情報を作成し、ステージ1でハード
ウェアによって得られたハッシュ値および署名値を使用してL2 Hash T
ableにそれを指すタグを挿入する。 このパイプラインの第4のステージでは、Flow Tagによって供給され
る情報または、REの完全な事前ハッシュされたヘッダの復号化によって供給さ
れる経路指定情報に従って、ヘッダは、指定のキューに送信するためにキューに
入れられるようにQMに戻される。そのフローの後続パケットを転送するための
情報を統合するために、REは、Layer2およびLayer3のヘッダに加
えてアプリケーション層データを検査する。 さらに詳細には、図4を参照すると、パケットが受信されたとき、QM30は
(NLフィールドから判定されるような)128バイトの長さである場合がある
有用なヘッダを、そのヘッダ・データをREのデュアルポート循環バッファにロ
ードすることによって、FE/REに提供する。図4を参照すると、ヘッダ・デ
ータはQM100からMUXIn 102送信され、RE40のFIFOスタッ
クDFに配置される。REは、128ビット項目の既に記憶されている順序付け
られたデータ・アレイにインデックスするためにネットワーク・リンク・バイト
を使用する。ここでは、各ビットは受信した完全なヘッダ・データ・バイトの1
つに対応する。1つの1と共にビットに対応するバイトが、ハッシュ関数および
署名関数によって抽出、処理される。バイト・ストリングは、複数の奇数個の4
バイトのストリングを提供するために、終端部がゼロによってパディングされる
。この好ましい実施形態では、128ヘッダ・バイトの64バイトまでをハッシ
ュ/署名動作によって処理することができるが、他の好ましい実施形態を有利に
するためにはこれより少なくてもより多くてもよい。 ハッシュ関数および署名関数は、異なる乗数が使用されることを除いて同一で
ある。しかし、別の好ましい実施形態では、有利にするために、異なる乗数およ
び異なる除数の他の組合わせを使用することも可能である。 図4を参照すると、Hash Preprocessor399は、128バ
イトのヘッダ・データからの選択バイトを入力する。この選択バイトは、32ビ
ット・ワード(上記のように4の倍数)のn番目を形成する。この32ビット・
ワードのシーケンス中のビットは、ガロア体、GF[2]、すなわち2のガロア
体(ガロア体は当分野で知られている)で多項式として扱われる。この好ましい
実施形態では、この多項式を無作為の32ビット多項式で乗算し、注意深く選択
した32次の多項式で除算し、その結果32ビットの剰余が得られる。上記で使
用した除数は、既約(irreducible)および基本(primitiv
e)両方になるように選択される(既約および基本は当分野で知られる用語であ
る)。剰余ビットのサブセットは、ハッシュ・テーブルへの実際のインデックス
として使用される。ビット5から0は、オンチップL1キャッシュ391に割り
当てられるアドレスである。ビット16から1は、オフチップL2RAM45中
の64K位置をアドレス指定するのに使用される。 この好ましい実施形態で使用する除数は、x12+x7+x5+x3+x2+x+1
であるが、既約かつ基本であれば他の除数を使用してもよい。 着信フレームのFlow Tagおよび/または宛先を識別するHash T
ableの内容の編成は以下の通りである。 Hash Table1はそれぞれ64ビットである64ワードを含み、チッ
プ上に存在して、少数のフローだけがアクティブである共通のオカレンスにおけ
る値のリターンを最適化する。これより大きなテーブルを使用することもできる
。図20Aおよび図20Bを見ると、各ワードで、ビット31〜24は、ビット
31が真であれば有効なエントリを示す状態を形成している。ビット0〜23は
24ビットのFlow Tagを形成し、ここには特定フローに関する情報が記
憶される。このタグは、パケットの転送先である1つまたは複数の回路について
の情報を指すポインタである。Flow Tagを獲得することは、REの主要
なタスクである。Hash Tableはビット63〜32に32ビットのシグ
ニチャも含み、これは衝突が発生しておらず、また結果が有効であることを保証
するために使用される。Flow Tagルック・アップの有効性をさらに確実
にするために、あいまいでない識別を行えるように事前にハッシュしたヘッダ・
データが記憶される。 L1Hashテーブルで一致がない場合、当システムは、ハッシュ済みの結果
ビット16〜0を使用して、64K Hash Table L2にインデック
スする。各位置は64ビット幅になる。ビット30はHash Bucketポ
インタであり、このビットがゼロの場合は、L2テーブル中のビットをL1テー
ブルと同じように機能面から編成する。このHash Addressに有効な
エントリが1つある場合、当システムは、L2ビット0〜23をフロー・テーブ
ルへのインデックスとして、フロー・タグを入手する。図20Bを参照されたい
。このHash Addressに有効エントリがない場合、有効ビットである
L2ビット31をゼロにセットする。このハッシュ・アドレスに2つ以上のエン
トリがある場合は、状態ワード・ビット30が1にセットされ、当システムは、
L2ビット55〜36をHash Bucketへのポインタにする。 Hash Bucketは64ビット・ワードのエイリアス・アドレスを8つ
まで保持する。衝突ビット29が1の場合、エイリアス状態はハッシュおよびシ
グニチャ両方の動作について存続し、また有用な情報を得ることができないので
、ハッシュ機構はそれ以上の分解を行わない。この時点で、2つの競合フローは
プロセッサに戻され、ルーティング情報を求めてトライ検索を行う。Hash
Bucket中の8ワードは連続して検索され、この検索を容易にするために、
アドレスはテーブルへの最下位のインデックスから始まって連続している。9つ
以上のエントリがHash Bucketに向けられる場合、当システムは元に
戻り、トライ・ルーチンによりオーバーフローを検索する。トライ検索はコプロ
セッサ390を使用し、ルーティングおよびブリッジング用の大規模トライデー
タベースとして編成されている。 シグニチャおよび/またはハッシュ衝突の発生は監視することができ、それが
過度である場合は、各乗数を変更することができる。このように変更すると、そ
の結果、ネットワーク中で遭遇する所与のアドレス・セットに対してより有効に
ランダム化を行うことができる。 ハッシングおよびシグニチャ・ルーチンの結果はある状況では使用することが
できない。TCP SYNまたはそれと同等の「接続の開始」パケットが到着す
るとき、あるいは接続フローに属さないパケットが見つかった場合、あるいはそ
のパケットが高セキュリティまたは他の特別モードの一部であるときなどに、接
続が開始される時がその例である。このような状況が見つかると、当システムは
トライ検索に戻ることができる。 一般に、フロー中の後続パケットの処理は、上記のようにソフトウェア・パタ
ーン・マッチングを最適化することによって加速される。 REは、アドレッシングとともに転送するのにどのキューにセルを置くべきか
を指定する命令を含む情報を戻す。QMは情報を受け取ってセルを配置するが、
このセルは、送信するリスト上で、受信中であるかまたは受信されたパケットの
内容を形成するリンクされたリストに記憶される。 7.送信スケジューリング REはQMをプログラミングし、このQMは、種々の回路についての管理され
た優先順位により、16,000,000送信キュー(24ビット)までのQM
記述子SRAMのリンクされたポインタによって仮想的に進展する。 送信段階のコアはTransmit Context Tableであり、こ
れは回路によって編成され、図35に示すように各回路につき4つの4バイト・
ワードがある。ワード0は、クレジットsyncビット、送信クレジット用の7
ビット812(回路に対してクレジットが存在しないと送信は行われない)、パ
ケット・ビットのスタート・ビット814、および送信する次のバッファ(次の
バッファID)を指定する23ビットを含む。ワード1 816は、8つのフラ
グ・ビット818を含む。図35Aは、これらのフラグ・ビットの意味を示して
いる。ビット7はパケットがシングル・バッファであることを示し、ビット6は
、通例はCRCエラーによりパケットが不良であり、MOMがそのパケットを中
止すべきであることを示し、ビット5はそのパケットがモニタ・キューからデキ
ューされ、そのパケットはトラフィック分析のためにどこか他のポートかまたは
バックグランウンド・エンジンにオフ・ロードできることを示し、ビット4はそ
のパケットが「複数所有」されており、2つ以上の回路に送信されうることを示
し、ビット3〜0は、16バイトのグループ中の128バイトまでのバイトのバ
ッファ長を示している。ワード1の残りの24ビットは、第1キューのアドレス
を含んでいる(各回路は1、2、4、8、あるいは16個の関連するキューを有
することが可能である)。送信コンテキスト・テーブルのワード2 820は、
モニタ・キューが添付されていることを示す1ビット822、キュー・サービス
・ポリシーを示す4ビット、および参照カウントを示す3ビットを含んでいる。
図35Bは、この4つのキュー・サービス・ポリシー・ビットの意味を示してい
る。可能な指示は;1がキュー、2、4、8、あるいは16が静的キュー;また
は2、4、あるいは8が重み付けラウンド・ロビン・キュー、;または2、4、
8、および16の2分の1が静的キュー、2分の1が重み付けラウンド・ロビン
・キュー、などである。下記で述べるように、静的キューが最高の優先順位を有
し、その次に重み付けラウンド・ロビン・キューが続く。ワード3はスタンバイ
・スケジューラ・コントロール・ワードを含み、これは「次のcctID」「ペ
アレントcctID」(スタンバイ・スケジューラ回路にのみ使用される)、状
態ビット(アクティブまたはアイドル)、およびスタンバイ・スケジューラ・イ
ンターバルを含む。 図36に示すQueue Tableは、Transmit Context
Tableと連携して働き、キューごとに4つの4バイト・ワードを含む。ワ
ード0は、2バイトのスタンバイ回路ID(下記で説明する)、および2バイト
のキュー・サマリー・ビット(16のキュー番号ごとにのみ)を含む。ワード1
は、キュー・サイズを示す2バイト、および2バイトのオーバーフロー・カウン
タIDを含む。ワード2はスタンバイ・キューの数を示す5ビット・フィールド
と、ヘッド・オブ・キュー・ポインタの24ビットを含む。ワード3は、24ビ
ットのテール・オブ・キュー・ポインタを含む。 好ましい実施形態では、ヘッド・オブ・キュー・ポインタで始まるSOPセル
を最初のSOPに(かつテール・ポインタを最後のSOPに)リンクすることに
よってキューが形成され、パケットの新しいセルがパケットのセルに追加される
ことを思い出されたい。したがって、図37を参照すると、リンクした記述子8
63で表すように、Queue Table850のキュー16には4つのSO
Pがあり、キュー17にはリンクした記述子864で表すように2つのSOPが
ある。リンクした記述子862で表すような不完全なパケットはそれでもなお送
信することができるが(「カットスルー」を許可することにより)、最後の記述
子がそれに関連するバッファが空であることを示すと送信は回路上で停止し、そ
れにより、回路上でパケット順序を保つという規則を維持する。 キュー・ポリシーは、データ・パケット送信の優先順位づけ、およびスケジュ
ーリングを可能にする。したがって、固定した静的優先順位下では、特定キュー
にあるパケットはすべて別のキューにあるパケットよりも先に送信される。重み
付けラウンド・ロビン・キュー方式では、1つのキューにある特定数のパケット
が送信され、次いで次のキューにある特定数のパケットが送信され、その後も同
様である。これにより、低い優先順位クラスを「窮乏」させることなく、トラフ
ィックのクラス(キュー)に相対的な優先順位を持たせることが可能になる。静
的キューがサービスされる時に、静的キューが優先権を有する「ハーフ・アンド
・ハーフ」方式が提供される。 使用中の回路についてのSchedule Tableは継続的に走査される
。図37に示すように、このテーブルは、Primary Schedule
Table A865、Primary Schedule Table B
866、およびSecondary Schedule Table 870を
備えるPrimary Schedule Tableからなる。Primar
y Schedule Tableはオンチップに位置し、それぞれ64のエン
トリを有する、2つの先に触れたサブテーブルからなる。Primary Sc
hedule Table A中のスロットは、すべてのSchedule T
ime時間が「時を刻む」たびに1回訪れられる。Primary Table
Aエントリは、Primary Schedule Table Bのエント
リへの6ビット・インデックスを含む。図37に示すように、Table Bエ
ントリはどれも、それをポイントするTable Aエントリを2つ以上有する
。Primary Table Bエントリは2次テーブルのサイズを含み、こ
のサイズが「0」に等しくない場合は、2次テーブル857へのオフセットと、
2次テーブル868の基底アドレスをも含む。サイズが「0」に等しい場合、残
りのフィールドは、「Use Parent Circuit」ビット 871
、Parent Circuit ID 872、およびCircuit ID
873になる。 セル送信イベントは、Circuit IDを有するスケジュール・テーブル
・エントリが見つかると起動される。適切なCircuit IDをSched
ule Tableに入力することにより、セル送信順序付けパターンが生成さ
れ、これは送信イベントの回路個々の比率に応じて回路に帯域幅を有効に割り当
てる。 Schedule Tableの階層的性質は、広範囲の割合をプログラムす
ることを可能にする。これは、サブテーブルの3レベルまで「チェーニング」す
ることによって行われる。Primary Table Bエントリのサイズ・
フィールドがゼロでない場合、このエントリは、オフチップに位置するSeco
ndary Tableへのポインタを含む。Secondary Table
870は、エントリを255個まで有することが可能であり、このエントリは
それぞれTertiary Tableをポイントするか、またはCircui
t IDを含むことができる。テーブル・チェーニングに遭遇すると、オフセッ
ト・フィールド867を使用して、低レベル・テーブルでどのエントリにアクセ
スすべきかを追跡する。このフィールドを訪れるたびに、テーブル・サイズを法
としてオフセットが増分される。 Stand−by Scheduler(SBS)は、2次スケジューリング
機構である。その名前が意味するように、Stand−by Schedule
rは、スケジュール・テーブルから後回しにされた帯域幅についてのトラフィッ
クをスケジュールする。スタンドバイ・トラフィックを伝送することができる2
つのケースがある。すなわち、(1)伝送イベントが、回路に対してデータを伝
送しなかった(クレジットの不足またはデータの不足)ケースと、(2)スケジ
ュール・テーブル中にプログラムされるCircuit IDがゼロであり、そ
れによって帯域幅うちのある量がスタンドバイ・トラフィックに事前割り振りさ
れるケースである。 SBSは、Calendar Queueアルゴリズムのバージョン、本質的
にはリンクされたリストの配列として実装されるスロットされたタイム・リング
を使用する。配列の各要素は、異なるタイム・スロットに対応する。各タイム・
スロットには、この時にセルを送信するようにスケジュールされる回路のリスト
が装着される。スロット・インデックスは時間と共に進む。人気のあるスロット
が見つかったとき、そのスロットでのリストの先頭の回路についてのセルを伝送
することができる。セルが特定の回路に対して伝送されるとき、その回路上の次
のセルに対する適格時間が計算され、別のタイム・スロットにマップされる。 図38を参照すると、Stand by Scheduler Calend
ar Table 878は、64個のエントリからなるオンチップ・テーブル
である。各エントリは、特定のスロットに装着される回路のリンクされたリスト
を記述するヘッド・インデックスおよびテール・インデックスを含む。リンクは
、Transmit Context Table 860中のword 3の
Next CCtIdフィールド中に格納される。スロット・インデックス87
7は、QMコア・クロックに対応する期間と共に進む。SBSの機会が生じたと
き、伝送するための次の回路が、スロット・インデックスの現在値によって表さ
れる時点から前方にスキャンすることによって見つかる。送信するための次の回
路は、次に人気のあるスロットに対するリストの先頭にある回路である。次の回
路が見つかった後、その回路がリストから待機解除され、再スケジュールされる
。 再スケジューリングは、回路を送信すべき次のスロットを計算することによっ
て実行される。次のスロットの計算は、Transmit Context T
able中のWord 3のSBSインターバル・フィールドに基づく。このフ
ィールドは、回路についての連続する伝送イベントの間のカレンダー・テーブル
・スロットの数を表す6ビットの数である。回路についての次のスロットは、テ
ーブル・サイズを法として、現スロットとこのインターバルとの和である。SB
Sの正味の効果は、重み付けWeighted Fair Queueingア
ルゴリズムの近似である。所与の回路の重みは、そのSBSインターバルの逆で
ある。 Stand−by Schedulerの別の態様は、「アクティブ」な、す
なわち送信するためのデータを有する回路のみに基づく動的帯域幅割振りを実行
できることである。多くの回路をスタンドバイ帯域幅に対して可能にすることが
できる。しかし少数の回路のみが、どの時点でもアクティブである可能性が高い
。スタンドバイ帯域幅をより効果的に使用するために、SBSは、スケジューラ
中のアクティブな回路のみを保つ。SBSは、回路がアクティブになるか、また
はアイドルになったときに、Queue Tableを管理するプロセスからメ
ッセージを受信する。アクティブからアイドルへの移行は、パケットが待機解除
され、回路についてのすべてのキューが空になったときに行われる。アイドルか
らアクティブへの移行は、パケットがすべて空のキューを有する回路に対して待
ち行列に入れられたときに行われる。 どんな回路もスケジュール・テーブルとSBSの両方を同時に使用してスケジ
ュールすることができる。これは、ATM利用可能ビット・レート(「ABR」
)トラフィックに対して有用である。 好ましい実施形態での「送信」は、パケット・ストリング(これは不完全であ
る可能性がある)をそのキューからリンク解除し(「待機解除」)、それを(図
37に示す)Transmit Context Table 860の現バッ
ファにリンクすることで開始する。次いでTransmit Context
Tableの回路エントリがポーリングされ、現バッファのバッファ・コンテン
トが(空でない場合に)対応する「回路」63’に送信される。セル・データは
、以下に説明する「ピンポン(ping−pong)」方式に従ってRAMBU
S DRAMから読み取られる。 パケットが完全に伝送されたとき、そのバッファは自由バッファ・リストに返
される。パケットの伝送の完了は、transmit context tab
leの次のバッファがパケットの第1バッファに関連するデスクリプタ880に
向けて送られるときに、図39Aのポインタ883を参照して、パケットの最後
のバッファのデスクリプタ882の第2ワードによって示される。次いで自由バ
ッファ・マネージャ(図示せず)は、SOPのデスクリプタ880の「所有者」
フィールドを調べることによって、他の(マルチキャスティングなどに対する)
「所有者」がいるかどうかをチェックし、図39Bに示すように所有者がいない
場合(値が1である場合。そうでない場合は減分する)、自由バッファ・マネー
ジャは、デスクリプタ890の第2ワード中のバッファ・カウント891によっ
て自由カウンタ890を増分する。自由バッファ・マネージャは、自由バッファ
・リスト・ヘッド・ポインタを、自由バッファ・リストの先頭895から、デス
クリプタ880が指すデスクリプタ、すなわち第2セルのバッファのデスクリプ
タ881に移動し、デスクリプタ880のデスクリプタ・フィールド中に自由バ
ッファ・リスト896の前の先頭へのポインタを入力する。したがって図39B
からわかるように、3つのバッファすべては自由バッファ・リストの先頭でリン
クされる。 8.伝送クレジット・ループ 好ましい実施形態では、多重クレジット・ループを使用することによって階層
的フローおよび輻輳制御方式を提供する。伝送のためにセルを受諾するための8
個の出力チャネルそれぞれについての、MOMチップの能力を示すクレジットの
システムが確立される。特定のチャネルについてのMOMが、セルごとにパケッ
トを送信し、各セルが送信されるとき、そのMOMは、前述のクレジット・ビッ
トを介して、別のセルをそのMOMチップに送信できることを示す。図31に示
すように、セルを送信している時のMOMは、クレジット・カウント760を増
分し、QMがセル762をMOMに転送するときに、そのQMはクレジット・カ
ウント764を減分する。前述のように、クレジットは、適切なMOMチャネル
・クレジットが保持されるように回路IDを有する。この好ましい実施形態では
、4つの伝送セルを格納することができる。MOMは、その中でパケットがセル
から再組上げされるFIFOを有する。 MOMチップからセルが伝送されるとき、QMに送り返されるクレジットは、
最大長セルについてのクレジットである。それはセル・モードでは17オクトバ
イト、またはパケット・モードでは16オクトバイトにすることができる(パケ
ット・モードのときはMOMがバースト・ヘッダを削除するからである)。しか
しQMは、最大セル・サイズ未満を送信する可能性がある。図32は、MOMチ
ップに関連する各出力チャネルに対して重複するものであり、クレジットがMO
Mチップ中で処理される機構を略図で示す。ヘッド・ポインタ770、テール・
ポインタ772、仮想テール・ポインタ774、およびパケット・ポインタの開
始776がある。この好ましい実施形態では、伝送FIFO中に512バイト・
ロケーション、または4つの全128バイト・ロケーションがある。図32では
、64個のスロットがあり、各スロット778は、象徴的に1オクトバイトを保
持する(この実施形態では64オクトバイトはFIFOの記憶容量512バイト
に等しい)。 初期設定時に、FIFOは空であり、仮想テールは増分され、FIFOロケー
ションを通って移動する。仮想テール・ポインタは、仮想テールがヘッド・ポイ
ンタに到達したか、またはヘッド・ポインタに到達することを試行するときに停
止する。仮想テール・ポインタが増分するごとに単一クレジットがMOMチップ
中の送信クレジット・マネージャおよび受信クレジット・マネージャを介して送
信される。これらのクレジットは、この回路についてのQM中に蓄積される。M
OMがこの回路へのセルを受信したとき、テール・ポインタ(このポインタは実
際のセル長を表す実情報を指す)は増分される。QMがセル全体未満を送信した
とき、仮想テール・ポインタは補正される。MOMが実際にセルを伝送するとき
、ヘッド・ポインタは増分される。MOMがセルを送信するとき、ヘッド・ポイ
ンタは、仮想テール・ポインタおよび実テール・ポインタから移動し、FIFO
中のルームを空ける。最大セル未満を送信し、QMによって補正された可能性が
ある仮想テール・ポインタが、ヘッド・ポインタを循環することなく伝送FIF
O中の最大セル長を増分することができるとき、クレジットはQM中に送信され
、確立される。 他の残りのポインタ、パケット・ポインタ776の開始は、1つの重要な機能
を有する。その機能は、パケットの開始の開始ロケーションを保持し、その結果
イーサネット・ケーブル上でコリジョンがある場合に衝突したパケットを公開さ
れた明細書に従って再伝送することができることである。 図2に関して、仮想テール・ポインタは、伝送クレジット・マネージャによっ
て制御され、実テール・ポインタは、伝送FIFO「プロデューサ」によって制
御され、「コンシューマ」は、パケット・ポインタのヘッダおよび開始を制御す
る。すべてのポインタは、比較およびクレジットの発行のために、すべての伝送
クレジット・マネージャにとってアクセス可能である。 図33に、どのようにMOM FIFO、2ポート、64オクトバイト・メモ
リが制御されるかを示す。アービタ780は、QMからロードされたセルを追跡
するために、「プロデューサ」側からのFIFOの最も顕著な3つのアドレス・
ビットを制御し、512のロケーションをアドレス指定するために必要な全9ビ
ットの下側の6ビットは、テール・ポインタ782(8つのうちの1つを示す)
によって制御される。仮想テール・ポインタ784は実データを指さない。カウ
ンタ機構によって、クレジット・マネージャは、QMに送信するクレジット数を
決定することができる。別のアービタ786およびヘッド・ポインタ(8つのう
ちの1つを示す)は、パケットがMOMチップによって物理的に送信されるとき
にFIFOをアンローディングすること、FIFOを空けることを制御する。ヘ
ッド・ポインタ788は、FIFOのアンローディング側からFIFOの下側の
6ビットを制御する。コンシューマは、データが送信されたときにヘッド・ポイ
ンタを増分する。ヘッド・ポインタのヘッド、テール、および開始は、伝送クレ
ジット回路が利用可能である。 図26を参照すると、イニシアル・カノニカル・ヘッダの第1オクトバイトの
部分742が、かつ、図27を参照すると、バースト・ヘッダが、2つのクレジ
ット・フラグ、「シンク」フラグおよび「親」フラグを含む。シンク・フラグは
、電源投入時に、前述のクレジット・サイクル・オペレーションを適切に確立す
るために使用される。電源投入時に、MOMは、10ミリ秒ごとにシンク・フラ
グをQMに送信する。QMが電源投入されたとき、QMは、シンク・フラグを探
し、QMを見つけたとき、シンク確認をMOMに送信する。次いでMOMは、前
述の何らかのクレジットをQMがクレジットを受諾す準備ができていることの保
証と共に送信する。 ペアレント・フラッグは、MOMチップのチャネルにマルチプレックスされた
物理的通信パスが複数あるので、必要となる。MOMチャネルに接続されている
通信回路が1つだけで、MOMがEthernetに接続されているとき、クレ
ジット・システムは、上記のように働くが、MOMチャネルへの多数の別々のパ
スにより1つのMOMチャネルに接続されたパスのそれぞれに対してクレジット
を維持する方法が設計される。このクレジット・システムの重要な態様は、1つ
のMOMチャネルに接続された複数の通信パスのどれをとっても該複数通信パス
中の他のパスによってブロックまたはロックアウトされる可能性のないことを保
証する必要があることである。この実施形態で、図34にMOMチップ内の2つ
のFIFOチャネルを示す。FIFO 800は単一の通信パスで動作する。こ
の場合、MOM FIFO 800は、単一の通信回路によるその動作を示すリ
ーフである。FIFO 802は、FIFOチャネルに関連付けられ、これは、
他のチップ、たとえば、本好適な実施形態のDADチップ804に接続されてお
り、ただし、DADはさらに他の8個の通信回路804にさらに接続されている
。この場合、FIFO802は、「ペアレント」と称され、DADに接続された
該8個の通信回路はリーフである。この回路では、QMは、MOM内のペアレン
トFIFOに接続された個々のリーフに対するクレジットを維持する。このよう
にして、QMは、送信FIFOが満たされ、さらなるセルを受入れ不可能になる
時を知ることになる。続いて、QMは、ペアレントおよびリーフ内のクレジット
を単にポーリングすることによって、他のリーフにセルを転送し、結果的にセル
を送信することになる。このやり方では、1つのリーフが他のリーフのサービス
を阻止することはできない。 図38を参照すると、QM内のSchedule Table 866には、
特定の回路に関連するペアレントがあるかどうかの指示871がある。ペアレン
トとして作用するMOMは、ペアレントFIFO、および該ペアレントに関連す
るリーフのそれぞれに対するクレジットを送る。 Parent Credit Table 875は、QM内の64エントリ
・オンチップ・テーブルである。各エントリは、「ペアレント回路」として扱わ
れているものに対するクレジット・カウントを含んでいる。回路がペアレント回
路に結合されているとき、それは、そのTramsmit Context T
ableクレジット・フィールドと、Parent Credit Table
内にあるそのペアレント・クレジット・フィールドとの両方で使用可能なクレジ
ットを有する場合にMACバスに対してセルを送信するだけである。 セルが、ペアレントを備えた回路に送信されたとき、Transmit Co
ntext Tableクレジットおよび関連するクレジットが減分される。ペ
アレント・チャネルからのペアレント・クレジット更新セルは、QMに送り返さ
れ、これによってペアレント・クレジットを増分させる。 スケジュール・テーブルは、回路を所与のペアレント回路に結合させるために
使用する。Use Parent Circuit ID フィールド872は
、この目的に使用する。スケジュール・テーブル・エントリがPビットのセット
を有する場合、これは、回路がペアレントを有し、Parent Credit
Table 875をインデックス付けするためにParent Circu
it ID 872を用いるべきことを意味する。 9.RAMBUS(登録商標)上の超高速アクセス RAMBUS(登録商標) DRAM 35および36は、オフ・ザ・シェル
フ(off−the−shelf)の品目である。本発明では、それらは、この
デート通信用途に対し読取りおよび書込み帯域幅を最大限高める固有の方式で使
用される。 本発明は、RAMBUS(登録商標)に対するインターフェース308を提供
し、これは、RMBUS(登録商標)メモリの有効帯域幅を増やすために、デュ
アル・バンク・オーガニゼーション(dual bank organizat
ion)を使用する。Dual FIFOスタックはコントロ−ラとともに使用
されて、RAMBUS(登録商標)内の別々のDRAMバンクを交互にアドレス
指定する。FIFOにより待ち時間が増え、RAMBUS(登録商標)を制御す
る電子機器のハードウェア・オーバヘッドが増えることになるが、書込みまたは
読取りが行われた一連のデータを保証する試みが代替バンクから来る。この方式
では、一方のバンクがプレチャージし、その間他方のバンクがアクセスされるこ
とになり、次いで該他方のバンクがプレチャジし、その間第1バンクがアクセス
されることになる。 図40を参照すると、RAMBUS 900がブロック形式で示されており、
これの中に、フェーズロック・ループ、PLL、および2つのダイナミックRA
Mバンク、DRAM 1および2が示されている(それぞれ36、37)。RA
MBUS(登録商標)に入る、またはそこから出るマルチプレックスされたデー
タ/アドレス・バスは、付属のクロックを備えた基本的に8ビット幅のシリアル
・ポートである。 DARAM 35および36内のデータ・バッファの編成は、(128バイト
)の偶数データ・バッファすべてが一方のバンク上にあり、奇数のデータ・バッ
ファすべてが他方のバンク上にあるようになっている。アービタ902は、デー
タに関する様々なリクエストがFIFOスタック904および906に対してロ
ードされる順番を決定する。リクエスト内のバッファ・アドレスは、偶数または
奇数であり、偶数バッファを有するリクエストはFIFO 904にロードされ
、奇数バッファを有するものはFIFO 906にロードされる。 ????は空である条件では、リクエストは偶数または奇数の????にロードされ、
インターリーバ???はそのリクエストをコントローラ???に送る。リクエストは多
数であるため、????のリクエストがバックアップする。リクエストが両方の????
にバックアップしたら、インターリーバー???は????とその他から交互にリクエ
ストを受け取る?“ピンポン操作”?。これらバッファアドレスは交互に偶数と奇
数になるので、コントローラは??????の?つの異なるバンクに交互またはインタ
ーリーブ的にアクセスする。この操作で、第?バンクは第?バンクがプレチャージ
されているときにアクセスされ、次のアクセスで第?バンクは第?バンクがプレチ
ャージされているときにアクセスされる。 この交互アクセスは実質的に??????のライティングまたはリーディングのため
の最速アクセスを提供し、両方の????スタックにリクエストが存在するかぎり??
????メモリのスループットを最大化する。一方、純粋に????ベースに存在するリ
クエストはバックツーバック偶数またはバックツーバック奇数リクエストで分数
を有するであろう。それでタイムアウトの分数はプレチャージされる。 特定のリクエストに関する待ち時間は通常の方法で発生する。この方法は高ト
ラフィック条件で??????の最大利用を保証する。 ???バックグラウンドエンジン/イニシャリゼーション 本願発明の重要部分は、モニターと他の重要決定時の???ポートでインターフ
ェースされる??の使用である。これで??????????とラーンアンドロック安全シス
テムにコンフィギュレーションとコントロール機能にアクセスさせる。 図?において、ブーツ????? ?????はシステムのイニシャリゼーションとスタ
ートアップのために????にアクセスできるように提供される。ブーツ???インス
トラクションはパワーアップまたは完全システムリセットが存在するときにラン
する。ブーツは?? ??????のセクションに操作性があり、信頼できることをテス
トして確認する。このセクションは???コードと???????? ??????? ??????????
??が存在するところである。?????の最初の???????または???小数?アドレスは当
初の妨害ベクトルをホールドする。アドレス?????は???情報をホールドし、????
?はコンソールサポートインターフェースルーチンをホールドし、???????は???
アトリビュートテーブルをホールドし、?????????はブーツイメージをホールド
し、???????????はシクリックリダンダンシーチェック?????のブーツイメージチ
ェックサムをホールドする。この実施例では、残りの?? ??????は????イニシャ
リゼーションプロセスと平行にテストされるであろう。 ブーツはまた、?????バックグラウンドエンジンカーネル?に、例えば、タイマ
ーからインテラプトを受け取らせるようにインテラプト構造とオペレーションを
テストする。次に、ブーツは???バス??をイニシャライズし、???バスに取り付け
られたチップにアドレスをアサインする。ブーツは次にバスのチップの??を決定
する。ブーツは発見されたチップの??を調べ、イニシャライザーは実行のために
ダウンロードされたブーツディレクトリ内に発見される。 メインなシステムイメージは、例えば??メガバイトのシステムソフトウエアを
含んだコンパクトフラッシュ(登録商標)カードの???????????ストレージ??に 存在する。ベーシック情報は???バスで????と?????及び??に移される。完全イメ ージは???チャンネルで移される。 以上の説明は出願時の本願発明の好適実施例である。均等な部材と機能で置き
換えが可能である。ハードとソフトの多彩な混合適用が可能である。本願発明は
非常にフレキシブルであり、スケール調整可能である。 ???バルクトランスファーのスケジュール アプリケーションの形態によってはバルクデータを、例えば、?メールで添付
資料を付けて送ることができる。バルクデータトランスファーアプリケーション
からのパケットは出て行く回路?リンク?をコンジェストすることができよう。バ
ルクデータトランスファにより引き起こされるコンジェスチオン問題に対処する
保証されたプライオリティの高品質サービスが提供される。 図??は本願発明の本実施例に使用される???インターネットプロトコール?パケ
ット????の図である。??パケット????は複数のインフォメーションフィールドを
有している。バージョンナンバーとヘッダレングスフィールド????はパケットが
属する??プロトコールのバージョンとパケットヘッダの長さを??ビットワードで
ホールドする。サービスフィールド????のタイプはホストにインターネット装置
?すなわち、スイッチまたはルータ?に対してどの種類のサービスが必要かを告げ
る。データレングスフィールド????はトランスミッションのデータバイト数をホ
ールドする。データバイトカウントはフローがバルクトランスファーであるかど
うかの決定をする。アイデンティファイヤーフィールド????はどのパケットに新
規に到着したフラグメントが属するかを決定するのにデスティネーションホスト
によって必要とされる。データパケットの全フラグメントは同一の識別値を有し
ている。フラグメンテーションフィールド????はさらに多くのフラグメント情報
を与える。これには現行のフラグメントが属する現行データパケットのオフセッ
トを含んでいる。ライブフィールド????への時間はパケットライフタイムを限定
するのに使用されるカウンターである。プロトコールフィールド????はトランス
ポートインフォメーションをホールドする。ヘッダチェックサムフィールド????
はヘッダベリフィケーションのためにのみ有効である。ソース??アドレス????と
デスティネーション??アドレス????はソースとデスティネーションアドレス情報
を供給する。??オプションフィールド????はユーザに情報を加えさせる。トラン
スポートヘッダとデータフィールド????は???または???パケットをホールドする
。図??は?メールとファイルトランスファーのごときバルクデータのトランザク
ションに典型的である????トランスミッションコントロールプロトコール?パケ
ット????のプログラムである。???は?つのホストにコネクションとデータの交換
ストリームを確立させる。???はさらにデータの搬送を保証し、データパケット
が送られたときと同じ順序で搬送されることを保証する。 図?を解説する。???リレーエンジン???のブロック図が提供されている。????
の主要な機能は???キューマネージャ???からインターフェース??で受領されたキ
ャノニカナイズされたパケットヘッダを検査し、パケットが知られたフローに属
するかどうかを迅速に決定し、適当なスケジュール処理のためにインターフェー
ス??でインストラクションを提供することである。??コードとデータ??????の特
殊なハンドラー????はフローのパケットが到着するときにデータバイトの蓄積デ
ータバイトカウントをホールドする。??????はフローがバルクデータトランスフ
ァーであるかどうかを決定するためにデータバイトカウントが比較されるしきい
値????をもホールドする。 フロー決定は、知られたフローがデータのバルクトランスファーであるかどう
かの決定を行うことを含んでいる。????はそれぞれのフローのための蓄積データ
バイトカウントを所定のしきい値と比較する。もしデータバイトカウントがしき
い値以上であればフローはバルクトランスファーであり、????は????にサービス
品質を低下させ、さらに時間が重要なデータにスケジュールサービスを継続的に
受領させる。もしデータバイトカウントがしきい値以下であれば、フローには非
バルクトランスファー品質のサービスが提供される。 層?/層?情報は所定のパケット用の出て行く回路?リンク?の発見に使用される
。本願発明の本実施例ではシステムの全ての回路は??キューでセットアップされ
ている。別実施例では別数のキューが関与する。??キューのどれがパケットを配
置するかの決定はさらに高い層の情報?層????に基く。 図?を説明する。レシーブ???????のデータセルはメインシステムパケットメモ
リ??????と??に配置され、???の基準ヘッダは???????でリレーエンジン??に送り
出される。そこで????????プロセスが実施され、フロー、プライオリティ及びポ
ートキュー???、???ごとにパケットの適当なキュー処理を可能にし、???トラン
スミットポート??’に送る。各受領されたパケットのデータバイトカウントはデ
ータバイトカウントバッファのそれぞれの識別フロー用に保存される。パケット
は特定のフローの一部として識別されるので、バッファー内のカウントは漸増す
る。 図??はフォーワードエンジン????コードとデータ???????図??に配置されたフ
ローインフォメーションデータストラクチャー????、????と、アプリケーション
ポリシーレコード????の一部の図である。各フローは?つのインフォメーション
データストラクチャー????、????を有している。第?フローインフォメーション
データストラクチャー????はクライエントからサーバーへのフロー方向のためで
ある。第?フローインフォメーションデータストラクチャー????はサーバーから
クライエントへのフロー方向のためである。 フローインフォメーションデータストラクチャー????、????は複数のフィール
ドを有している。プレハッシュデータフィールド????はハッシュ処理が行われる
前にデータパケットから引き出された情報をホールドする。引き出されたデータ
はフロー識別プロセスに使用されるものである。フローハンドラーフィールド??
??は所定タイプのフローに必要な追加プロセスを完成させるソフトウェアルーチ
ンへのポインターである。フローキューインストラクションフィールド????は特
定のキューにフローを配置するためのインストラクションを含み、特定のキュー
の数はフローキューナンバーフィールド????に保存される。フローバイトとパケ
ットカウンターフィールド????はフロー用のバイトとパケットカウントをホール
ドする。リバースフローデータフィールド????は?つのフローインフォメーショ
ンデータストラクチャー????と????をリンクさせる。クライエント/サーバーフ
ローインフォメーションデータストラクチャー????のリバースフローデータフィ
ールドはサーバー/クライエントインフォメーションデータストラクチャー????
へのポインターを有している。その逆もある。フローポリシーデータフィールド
????はアプリケーションポリシーレコード????へポイントするポインターをホー
ルドする。本実施例においては、両方のフローインフォメーションデータストラ
クチャーのフローポリシーデータフィールド????は同じポリシーレコードにポイ
ントするが、それらはそれぞれ異なるものにポイントさせることもできる。フロ
ーメインテナンスデータフィールド????は、データストラクチャーをスイッチ内
で整合させるソフトウェアオーバーヘッドを含んでいる。 アプリケーションポリシーレコード????はスイッチを通過する各タイプのフロ
ーのハンドリングデータとパラメータをホールドする。図??に示すアプリケーシ
ョンポリシーレコードの部分は?フィールド、すなわち、しきい値フィールド???
?、スタートプライオリティフィールド????、エンドプライオリティフィールド?
???を有している。それらはバルクフローとサービス品質の決定に利用される。
もしデータバイトカウントがしきい値を超えるとフローはバルクデータトランス
ファーである。スタートプライオリティフィールド????はバルクトランスファー
の決定が行われる前にフローの開始で特定のフローに提供されるプライオリティ
を保存する。エンドプライオリティフィールド????はバルクトランスファー決定
が行われた後に特定のフローに提供されたプライオリティを保存する。これら?
つのフィールドは特定タイプのフローのための受領されるサービス品質のポリシ
ーパラメータをホールドする。 図??はバルクトランスファー品質のサービスをスケジュールする方法のフロー
図である。第?パケットはスイッチ到着する?ブロック?????。フォーワードエン
ジン??は当初のパケットが属するフローのタイプを決定する?ブロック?????。変
化するプライオリティサービスを得るフローが?つのプライオリティキューの?つ
に指定される。フォーワードエンジンは特定された当初のプライオリティレベル
の特定フローのポリシーレコードをコンサルトする?ブロック?????。フローはポ
リシーレコード????のスタートプライオリティフィールド????で特定された特定
フローに指定される。フォーワードエンジンコードとデータ??????の特殊ハンド
ラー????はその特定フローから受領したバイト数をカウントし始める?ブロック?
????。このカウントはフローインフォメーションデータストラクチャー????のフ
ローバイトとパケットカウントフィールド????に保存される。このデータバイト
カウント値はしきい値と比較される?決定ブロック?????。もしデータバイトカウ
ントがしきい値を超えなければ、データパケットはフローのスタートでセットさ
れたプライオリティで処理を継続する。しかし、もしデータバイトカウントがし
きい値よりも大きければ、データフローは低いプライオリティキューに再指定さ
れ、フローの残りのデータパケットはポリシーレコードのエンドプライオリティ
フィールドで特定されたキューで処理される。フローは特殊ハンドラーから通常
ハンドラーへ移動される。バルクデータトランスファーフローの残りのパケット
は低いプライオリティキューで処理される?ブロック?????。これで、同じ回路に
進む他のアピリケーションフロー及びバイトしきい値を冒さない同じアプリケー
ションの他のフローによって必要とされるバンド幅が開かれる。 本願発明を実施例を利用して解説した。これら実施例には本願発明のスコープ
内で改良及び変更が可能である。
【図面の簡単な説明】
【図1】本発明の好適実施例のブロックダイアグラム。
【図2】本発明の好適実施例のメディアインターフェイスASIC(MOM)
のブロックダイアグラム。
【図3】本発明の好適実施例のキューマネジャーASIC(QM)のブロック
ダイアグラム。
【図4】本発明の好適実施例のリレーエンジンASIC(RE)のブロックダ
イアグラム。
【図5】本発明の好適実施例のデータフローの概略のダイアグラム。
【図6】本発明の好適実施例で使用されている家庭の一般的なフローダイアグ
ラム。
【図7】図7Aは、本発明の好適実施例に使用されている標準的なヘッダーの
データ構成を示す。図7Bは本発明の好適実施例に使用されている標準的なヘッ
ダーの一部のデータ構成を示す。図7Cは、データ構成及び本発明の好適実施例
に使用されている標準的なヘッダーの別の部分の可能なエントリーを示す。図7
Dは、データ構成及び本発明の好適実施例に使用されている標準的なヘッダーの
別の部分の可能なエントリーを示す。
【図8】図8Aは、本発明の好適実施例に使用されている標準的なヘッダーの
別の部分のデータ構成を示す。図8Bは、データ構成及び本発明の好適実施例に
使用される標準的なヘッダーの別の部分の可能なエントリーを示す。図8Cはデ
ータ構成及び本発明の好適実施例に使用される標準的なヘッダーの別の部分の可
能なエントリーを示す。
【図9】本発明の好適実施例に使用されているハイスピードバスのブロックダ
イアグラム。
【図10】図9のバスラインの特徴を示す。
【図11】図9に示されているバスで使用されているトランスミットサーキット
の概略。
【図12】図11のトランスミットサーキットのタイミングダイアグラム。図1
2Aは、図11のトランスミットサーキットの複合タイミング。
【図13】図9に示されているバスの伝達に使用されるクロックディレイの概略
。図13Aは、図13に示されているサーキットのシグナルのタイミングダイア
グラム。
【図14】図13に示されているサーキットのサーキットの詳細。
【図15】可能な価値及び図9に示されているバスに使用されているコントロー
ルビットの意味を示す。
【図16】図15に示されているコントロールビットの順序を示す。
【図17】図1に示されているインターフェースチップ間で使用されているトク
ーンリングアービトレーションに示しているブロックダイアグラム。
【図18】本発明の好適実施例に使用されているセルトランスミッションの順序
を示す。
【図19】本発明の好適実施例に使用されているポインターレジスター構成を示
す。
【図20】図20Aは、本発明の好適実施例に使用されているハッシュテーブル
エントリのデータ構成を示す。図20Bは、本発明の好適実施例に使用されてい
る別ののハッシュテーブルエントリのデータ構成を示す。
【図21】図9に示されているバスで使用されているコントロールシグナルのた
めのタイミングダイアグラム。
【図22】可能な価値及び図9で示されているバスに使用されているコントロー
ルビットの意味を示す。
【図23】図9に示されているバスに見られうるコントロールビットの順序の例
を示す。
【図24】図9に示されているバスに伝達される可能性のあるセルのためのセル
トランスミッションを図式的に示す。
【図25】可能な価値及び図9で示されているバスに使用されているコードの意
味を示す。
【図26】異なった時間に好適実施例で使用されている標準的なヘッダーの分野
のデータ構成を示す。
【図27】図26に示されているサブフィールドの一つのデータ構成の詳細を示
す。
【図28】本発明の好適実施例に使用されている一時的な「バースト」ヘッダー
のデータ構成を示す。
【図29】好適実施例に使用されているデータパケットに描かれている一連の詳
細を示す。 図29Bは、不完全なパケットを描写するために好適実施例に使用されている一
連の詳細を示す。
【図30】バーチャルキューを作るために好適実施例に使用されている一連の詳
細を示し、図30Bは、パケットを形成するデータセルを探知するために好適実
施例に使用されているコンテクストテーブルを受信したり伝達したりするバッフ
ァーディスクリプターの関連を示す。
【図31】本発明の好適実施例に使用されているクレジットマネージドトランス
ミッションシステムの説明。
【図32】クレジットが図31で説明したシステムに発行されるべきかどうか決
定するために本発明の好適実施例に使用されているリングポインターシステムの
説明。
【図33】図31で説明されているシステムのより詳細な説明。
【図34】本発明の好適実施例に使用されている階層的なキューシステムの説明
【図35】本発明の好適実施例に使用されているトランスミットコンテクストテ
ーブルエントリーのデータ構成を示す。
【図35】図35Aは、図35に示されているデータ構成の分野のデータ構成を
示し、図35Bは、図35に示されているデータ構成のQ SVCポリシー分野
で記号化されている可能なサービスポリシーを示す。
【図36】好適実施例に使用されているキューテーブルのデータ構成を示す。
【図37】好適実施例のトランスミッションフェーズにおける可能なリンクとキ
ューの説明。
【図38】本発明の好適実施例に使用されている予備のスケジューラーの操作を
示す。
【図39】図39Aは、好適実施例のメモリーの完全なパケットを説明している
リンクされたディスクリプターセットを表し、図39Bは、図39Aに示されて
いるリンクされたディスクリプターによって表されたバッファーをフリーにする
ために図39Aに示されたディスクリプターセットの分離を説明している。
【図40】本発明の好適実施例に使用されているDRAMコントロールシステム
のブロックダイアグラム。
【図41】現在の発明の原則による前エンジンコードとデータDRAM45(図
1)に配置されているフローインフォメーションデータ構成1100,1102
のダイアグラム。
【図42】現在の発明の原則による応用スイッチのコントロールコネクション過
程のフローチャート。
【図43】現在の発明の原則によるビデオやヴォイスコネクションデータフロー
のフローチャート。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SL,SZ,TZ,UG,ZW ),EA(AM,AZ,BY,KG,KZ,MD,RU, TJ,TM),AE,AG,AL,AM,AT,AU, AZ,BA,BB,BG,BR,BY,CA,CH,C N,CR,CU,CZ,DE,DK,DM,DZ,EE ,ES,FI,GB,GD,GE,GH,GM,HR, HU,ID,IL,IN,IS,JP,KE,KG,K P,KR,KZ,LC,LK,LR,LS,LT,LU ,LV,MA,MD,MG,MK,MN,MW,MX, NO,NZ,PL,PT,RO,RU,SD,SE,S G,SI,SK,SL,TJ,TM,TR,TT,TZ ,UA,UG,UZ,VN,YU,ZA,ZW (72)発明者 ナラヤスワミー,クリシュナ アメリカ合衆国 マサチューセッツ州 01581−1770 ウェストボロ コンピュー タ ドライブ 2400,トップ レイヤー ネットワークス,インク.内 Fターム(参考) 5K030 GA11 HA08 HD03 KA03 LB13 LC01 5K033 AA01 CB06 DA15 DB13 DB18

Claims (29)

    【特許請求の範囲】
  1. 【請求項1】レシーブフィジカルパスとトランスミットフィジカルパスとの間
    でデータパケットのフローをフレキシブルに接続するための方法であって、 (a)該レシーブフィジカルパスにデータパケットを受領するステップと、 (b)該データパケットが以前に受領したデータパケットでイニシエートされ
    たフローの一部であるか否かを決定し、(i)一部でなければ、新フローの一部と
    して受領されたデータバイトの数のカウントに提供されたデータバイトの数を追
    加し、(ii)一部であれば、前記以前にイニシエートされたフローの一部として以
    前にカウントされたデータバイトの数のカウントに提供されたデータバイトの数
    を追加するステップと、 (c)前記追加ステップの結果として受領されたデータバイトの数のカウント
    が所定のしきい値を超えるか否かを決定し、(i)超えなければ、トランスミッシ
    ョンのために第1品質のサービスセクエンスを適用し、(ii)超えれば、トランス
    ミッションのために第2品質のサービスセクエンスを適用するステップと、 (d)前記適用された品質のサービスセクエンスに従って前記フローの一部で
    あるデータパケットをトランスミットするステップと、 を含んでいることを特徴とする方法。
  2. 【請求項2】受領したデータバイトのカウントが所定のしきい値を超えるか否
    かを決定するステップ(c)は、該しきい値が所定のフローに関して最初に超えら
    れた後に該フローのコンスタントな肯定であることを特徴とする請求項1記載の
    方法。
  3. 【請求項3】ステップ(b)は、(b1)フローを識別するデータパケットのフィー
    ルドの内容を以前に受領したデータパケットの対応するフィールドの内容と比較
    するステップをさらに含んでいることを特徴とする請求項1記載の方法。
  4. 【請求項4】ステップ(b1)はフィールドのハッシュ処理の結果を比較すること
    で行われることを特徴とする請求項3記載の方法。
  5. 【請求項5】ステップ(b1)で比較されたフィールドはデータパケットの層2ま
    たはさらに高い層のヘッダの対応部分であることを特徴とする請求項3記載の方
    法。
  6. 【請求項6】データパケットの受領によって受領されたデータを基準セルに分
    割させるステップをさらに含んでいることを特徴とする請求項1記載の方法。
  7. 【請求項7】ステップ(d)は受領されたデータパケットから引き出されたそれ
    ぞれの基準セルのデータを順番にトランスミットすることで実行されることを特
    徴とする請求項6記載の方法。
  8. 【請求項8】受領されたパケットのそれぞれ順番のセルはメモリロケーション
    に保存され、論理的にリンクされ、トランスミッション用にキュー処理されるこ
    とを特徴とする請求項7記載の方法。
  9. 【請求項9】論理リンク処理とキュー処理はセルが保存されているそれぞれの
    メモリロケーションにポインターをリンクさせることで実行されることを特徴と
    する請求項8記載の方法。
  10. 【請求項10】サービスセクエンスはポインターに対するポインターのそれぞれ
    のテーブルのエントリーのそれぞれのセクエンスによって決定されることを特徴
    とする請求項9記載の方法。
  11. 【請求項11】カウントされたデータバイトの所定のしきい値はトランスファー
    されているバルクドキュメントを表示し、第2品質のサービスセクエンスは、全
    アクティブフローに関係するデータパケットに対するポインターの割合でフロー
    に関係するデータパケットに対するポインターのさらに小さい割合を含んでいる
    ことを特徴とする請求項10記載の方法。
  12. 【請求項12】カウントされたデータバイトの所定のしきい値はトランスファー
    されているバルクドキュメントを表示し、第2品質のサービスセクエンスは、第
    1品質のサービスセクエンスの場合よりも、所定期間のフローに関係する少ない
    データパケットのトランスミッションとなることを特徴とする請求項2記載の方
    法。
  13. 【請求項13】レシーブフィジカルパスとトランスミットフィジカルパスとの間
    でデータパケットのフローを、バルクデータトランスファーと関係すると決定さ
    れたフローのためのサービスの下方アジャストメントとフレキシブルに接続する
    方法であって、 (a)前記フィジカルパスにデータパケットを受領するステップと、 (b)該受領されたデータパケットを基準セルに分割するステップと、 (c)該セルのそれぞれのセクエンスに対して、 (i)該セルを保存し、それを同じデータパケットから分割された以前のセ
    ルと論理的にリンクさせ、 (ii)データパケットの一部のセルの前記セクエンスが以前に受領されたデ
    ータパケットでイニシエートされたフローの一部であるか否かを、該フローを特
    定する前記データパケットのそれぞれのデータフィールドから引き出されたそれ
    ぞれの情報を比較することで決定し、(A)一部でなければ、新フローの一部とし
    て受領されたデータバイトの数のカウントに提供されたデータバイトの数を追加
    し、(B)一部であれば、前記以前にイニシエートされたフローの一部として以前
    にカウントされたデータバイトの数を追加し、 (iii)前記追加から得られた受領されたデータバイトの数のカウントが特
    定のアプリケーションのためのバルクデデータトランスファーと関係する所定の
    しきい値を超えるか否かを決定し、(A)超えていなければ、前記フローのデータ
    パケットのトランスミッションのために第1品質のサービスセクエンスを適用し
    、(B)超えていれば、さらに少ない頻度のトランスミッションを提供する第2品
    質のサービスキューを適用するステップと、 (d)前記セルのリンクと前記適用された品質のサービスキューに従って前記
    フローの一部であるデータパケットをトランスミットするステップと、 を含んでいることを特徴とする方法。
  14. 【請求項14】レシーブフィジカルパスとトランスミットフィジカルパスとの間
    でデータパケットをフレキシブルに接続する装置であって、 (a)該レシーブフィジカルパスにデータパケットを受領するための受領手段
    と、 (b)該データパケットが以前に受領したデータパケットでイニシエートされ
    たフローの一部であるか否かを決定するフロー決定手段であって、該フロー決定
    手段はデータバイトカウントを創出するためのデータバイトカウント手段を有し
    ており、さらに、 (i)前記データパケットが前記以前にイニシエートされたフローの一部で
    なければ新フローの一部として受領されたデータバイトの数のカウントに提供さ
    れたデータバイトの数を追加する第1追加手段と、 (ii)一部であれば、前記以前にイニシエートされたフローの一部として以
    前にカウントされたデータバイトの数のカウントに提供されたデータバイトの数
    を追加する第2追加手段と、 を含んでおり、 (c)前記追加の結果として受領されたデータバイトの数のカウントが所定の
    しきい値を超えるか否かを決定するしきい値手段であって、該しきい値手段は、 (i)超えなければ、トランスミッションのために第1品質のサービスセク
    エンスを適用する手段と、 (ii)超えれば、トランスミッションのために第2品質のサービスセクエン
    スを適用する手段と、 を含んでおり、 (d)前記適用された品質のサービスセクエンスに従って前記フローの一部で
    あるデータパケットをトランスミットする手段と、 を含んでいることを特徴とする装置。
  15. 【請求項15】受領したデータバイトのカウントが所定のしきい値を超えるか否
    かを決定する手段は、該しきい値が所定のフローに関して最初に超えられた後に
    該フローのコンスタントな肯定であることを特徴とする請求項14記載の装置。
  16. 【請求項16】フロー決定手段は、フローを識別するデータパケットのフィール
    ドの内容を以前に受領したデータパケットの対応するフィールドの内容と比較す
    る手段をさらに含んでいることを特徴とする請求項14記載の装置。
  17. 【請求項17】比較手段はフィールドのハッシュ処理の結果を比較する手段をさ
    らに含んでいることを特徴とする請求項16記載の装置。
  18. 【請求項18】比較手段で比較されたフィールドはデータパケットの層2または
    さらに高い層のヘッダの対応部分であることを特徴とする請求項16記載の装置
  19. 【請求項19】データパケットの受領によって受領されたデータを基準セルに分
    割させる手段をさらに含んでいることを特徴とする請求項14記載の装置。
  20. 【請求項20】データパケットをトランスミットする手段は受領されたデータパ
    ケットから引き出されたそれぞれの基準セルのデータを順番にトランスミットす
    る手段をさらに含んでいることを特徴とする請求項19記載の装置。
  21. 【請求項21】受領されたパケットのそれぞれ順番のセルをメモリロケーション
    に保存し、論理的にリンクし、トランスミッション用にキュー処理すり手段をさ
    らに含んでいることを特徴とする請求項20記載の装置。
  22. 【請求項22】論理リンク処理とキュー処理はセルが保存されているそれぞれの
    メモリロケーションにポインターをリンクさせるキューポインターをさらに含ん
    でいることを特徴とする請求項21記載の装置。
  23. 【請求項23】サービスセクエンスはポインターに対するポインターのそれぞれ
    のテーブルのエントリーのそれぞれのセクエンスによって決定されることを特徴
    とする請求項22記載の装置。
  24. 【請求項24】カウントされたデータバイトの所定のしきい値はトランスファー
    されているバルクドキュメントを表示し、第2品質のサービスセクエンスは、全
    アクティブフローに関係するデータパケットに対するポインターの割合でフロー
    に関係するデータパケットに対するポインターのさらに小さい割合を含んでいる
    ことを特徴とする請求項23記載の装置。
  25. 【請求項25】カウントされたデータバイトの所定のしきい値はトランスファー
    されているバルクドキュメントを表示し、第2品質のサービスセクエンスは、第
    1品質のサービスセクエンスの場合よりも、所定期間のフローに関係する少ない
    データパケットのトランスミッションとなることを特徴とする請求項15記載の
    装置。
  26. 【請求項26】レシーブフィジカルパスとトランスミットフィジカルパスとの間
    でデータパケットのフローを、バルクデータトランスファーと関係すると決定さ
    れたフローのためのサービスの下方アジャストメントとフレキシブルに接続する
    装置であって、 (a)前記フィジカルパスにデータパケットを受領する手段と、 (b)該受領されたデータパケットを基準セルに分割する手段と、 (c)前記セルの各セクエンスを保存し、以前のセルが存在すれば各セルを同
    じデータから分割された以前のセルに論理的にリンクさせる手段と、 (d)各セルの各セクエンスに関して、該セルが以前に受領されたデータパケ
    ットによってイニシエートされたフローのデータパケットの一部であるか否かを
    、該フローを特定する前記データパケットのそれぞれのデータフィールドから引
    き出されたそれぞれの情報を比較する手段と、 (e)新フローの一部として受領されたデータバイトの数のカウントに提供さ
    れたデータバイトの数を追加する第1データバイトカウント手段と、 (f)前記以前にイニシエートされたフローの一部として以前にカウントされ
    たデータバイトの数のカウントに提供されたデータバイトの数を追加する第2デ
    ータバイトカウント手段と、 (g)前記追加で得られたデータバイトの数のカウントがアプリケーションの
    ためのバルクデータトランスファーと関係する所定のしきい値を超えるか否かを
    決定するしきい値手段と、 (h)前記データパケットが前記以前にイニシエートされたフローの一部でな
    ければ新フローの一部として受領されたデータバイトの数のカウントに提供され
    たデータバイトの数を追加する第1追加手段と、 (i)前記データパケットが以前にイニシエートされたフローの一部であれば
    前記以前にイニシエートされたフローの一部として以前にカウントされたデータ
    バイトの数のカウントに提供されたデータバイトの数を追加する第2追加手段と
    、 (j)前記セルのリンクと前記適用されたサービスセクエンスに従って前期フ
    ローの一部であるデータパケットをトランスミットするトランスミット手段と、
    を含んでいることを特徴とする装置。
  27. 【請求項27】レシーブフィジカルパスとトランスミットフィジカルパスとの間
    でデータパケットのフローをフレキシブルに接続するネットワークスイッチであ
    って、 レシーブフィジカルパスとトランスミットフィジカルパスとの間で接続され
    たネットワークインターフェースであって、前記レシーブフィジカルパスでデー
    タパケットを受領するものであり、該ネットワークインターフェースは前記デー
    タパケットに提供されたデータバイトをカウントするネットワークインターフェ
    ースと、 該ネットワークインターフェースと接続され、前記データパケットが新フロ
    ーまたは以前にイニシエートされたフローの一部であるか否かを決定するフォー
    ワードエンジンと、 該フォーワードエンジンに接続され、前記ネットワークインターフェースと
    該フォーワードエンジンに従って各特定されたフローのデータバイトカウントを
    保存するフォーワードエンジンであって、該エンジンは前記データバイトのカウ
    ントバッファに保存された各フローのデータバイトカウントを所定のしきい値と
    比較し、特定のフローがバルクトランスファーであるか否かを決定し、データカ
    ウントバイト比較に従って特定フローに対するサーブスを決定するエンジンと、 該エンジンに接続され、該エンジンの決定に対応するデータパケットのトラ
    ンシミッションをスケジュールするキューマネージャと、 を含んでいることを特徴とするネットワークスイッチ。
  28. 【請求項28】レシーブフィジカルパスとトランスミットフィジカルパスとの間
    でデータパケットのフローをフレキシブルに接続する装置であって、 データパケットを受領するインターフェースと、 該データパケットを保存し、しきい値を保存するメモリと、 前記インターフェースで受領したフローのデータバイトカウントをキープし
    、パケットが該インターフェースで受領されるとデータバイトを漸増させるする
    カウンターと、 前記メモリと前記カウンターとインターアクトするマイクロプロセッサーで
    あって、該データパケットが特定フローの一部であるか否かを決定し、該データ
    カウントが前記しきい値を越えて前記フローがバルクフローであることを示すか
    否かを決定し、該フロー決定に従って前記データパケットをトランスミットする
    サービスを特定し、該データパケットのトランスミットは前記サービスに従って
    いることを特徴とするマイクロプロセッサーと、 を含んでいることを特徴とする装置。
  29. 【請求項29】インフォメーションパケットスイッチであって、 A)少なくとも1つのパケットレシーバと、 B)該レシーバに接続されたパーサであって、該レシーバから受領された情報
    を前記パケットのアプリケーションを特定するヘッダ情報を含むに充分な要領の
    均一なセルに分割するパーサと、 C)該パーサに接続されており、前記セルを収容する位置に組織化されている
    ファーストメモリであって、前記パーサはポインターをセットし、前記受領情報
    パケットに関レさせて維持するファーストメモリと、 D)該パーサに接続されたコンパレータであって、以前のタイムウィンドー中
    に受領されたパケットから得られた情報を含んだメモリに接続されており、該コ
    ンパレータが、以前の情報とマッチしないなら該メモリーに新しく受領されたパ
    ケットの情報を追加し、前記新しく受領されたパケットのセルに対するポインタ
    ーを以前に受領されたパケットで特定するコンパレータと、 E)前記ファーストメモリに接続された少なくとも1つのトランスミッターと
    、 F)該トランスミッターに前記ファーストメモリからの情報をトランスミット
    させるようにプログラムされた論理プロセッサーであって、特定タイプのアプリ
    ケーションストリームに関連するサービスポリシーに従っていり論理プロセッサ
    ーと、 を含んでおり、 G)アプリケーションがバルクトランスファータイプのアプリケーションスト
    リームであるか否かを決定するために該論理プロセッサーはA-B-C-Eのパスに沿
    った情報量カウンターにさらに対応することを特徴とする情報パケットスイッチ
JP2000610190A 1999-04-03 2000-03-31 バルクデータトランスファのためのサービスアジャストメントの自動検出方法 Pending JP2002541732A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/285,618 1999-04-03
US09/285,618 US6426943B1 (en) 1998-04-10 1999-04-03 Application-level data communication switching system and process for automatic detection of and quality of service adjustment for bulk data transfers
PCT/US2000/008700 WO2000060819A1 (en) 1999-04-03 2000-03-31 Process for automatic detection of and quality of service adjustment for bulk data transfers

Publications (2)

Publication Number Publication Date
JP2002541732A true JP2002541732A (ja) 2002-12-03
JP2002541732A5 JP2002541732A5 (ja) 2005-09-29

Family

ID=23095021

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000610190A Pending JP2002541732A (ja) 1999-04-03 2000-03-31 バルクデータトランスファのためのサービスアジャストメントの自動検出方法

Country Status (5)

Country Link
US (1) US6426943B1 (ja)
EP (1) EP1171978A1 (ja)
JP (1) JP2002541732A (ja)
AU (1) AU4062500A (ja)
WO (1) WO2000060819A1 (ja)

Families Citing this family (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7073196B1 (en) * 1998-08-07 2006-07-04 The United States Of America As Represented By The National Security Agency Firewall for processing a connectionless network packet
EP1051000B1 (en) * 1999-03-25 2014-05-07 Canon Kabushiki Kaisha Method and device for allocating at least one routing identifier to at least one bridge in a network
US6724721B1 (en) * 1999-05-07 2004-04-20 Cisco Technology, Inc. Approximated per-flow rate limiting
US6826177B1 (en) * 1999-06-15 2004-11-30 At&T Corp. Packet telephony appliance
US6956852B1 (en) * 1999-06-25 2005-10-18 Cisco Technology Inc. Multi-function high-speed network interface
US6714967B1 (en) * 1999-07-30 2004-03-30 Microsoft Corporation Integration of a computer-based message priority system with mobile electronic devices
US6983350B1 (en) 1999-08-31 2006-01-03 Intel Corporation SDRAM controller for parallel processor architecture
US7016301B1 (en) * 1999-09-01 2006-03-21 Cisco Technology, Inc. Fair multiplexing scheme for multiple input port router
US7263558B1 (en) 1999-09-15 2007-08-28 Narus, Inc. Method and apparatus for providing additional information in response to an application server request
US6526034B1 (en) 1999-09-21 2003-02-25 Tantivy Communications, Inc. Dual mode subscriber unit for short range, high rate and long range, lower rate data communications
US6532509B1 (en) 1999-12-22 2003-03-11 Intel Corporation Arbitrating command requests in a parallel multi-threaded processing system
US6694380B1 (en) 1999-12-27 2004-02-17 Intel Corporation Mapping requests from a processing unit that uses memory-mapped input-output space
US6629163B1 (en) 1999-12-29 2003-09-30 Implicit Networks, Inc. Method and system for demultiplexing a first sequence of packet components to identify specific components wherein subsequent components are processed without re-identifying components
US6661794B1 (en) 1999-12-29 2003-12-09 Intel Corporation Method and apparatus for gigabit packet assignment for multithreaded packet processing
US7327761B2 (en) * 2000-02-03 2008-02-05 Bandwiz Inc. Data streaming
US7933249B2 (en) * 2000-02-08 2011-04-26 Ipr Licensing, Inc. Grade of service and fairness policy for bandwidth reservation system
US6735174B1 (en) * 2000-03-29 2004-05-11 Intel Corporation Method and systems for flow control of transmissions over channel-based switched fabric connections
US6795870B1 (en) * 2000-04-13 2004-09-21 International Business Machines Corporation Method and system for network processor scheduler
US6977940B1 (en) * 2000-04-28 2005-12-20 Switchcore, Ab Method and arrangement for managing packet queues in switches
JP3590949B2 (ja) 2000-08-17 2004-11-17 松下電器産業株式会社 データ伝送装置およびデータ伝送方法
US20020069309A1 (en) * 2000-09-25 2002-06-06 Edward Balassanian Method and system for data metering
US6738355B1 (en) * 2000-11-01 2004-05-18 Agilent Technologies, Inc. Synchronization method for multi-probe communications network monitoring
FR2822006B1 (fr) * 2001-03-08 2003-04-25 France Telecom Procede et systeme de transmission de flux de donnees entre deux postes distants
JP2002281080A (ja) * 2001-03-19 2002-09-27 Fujitsu Ltd パケットスイッチ装置およびマルチキャスト送出方法
US6940854B1 (en) * 2001-03-23 2005-09-06 Advanced Micro Devices, Inc. Systems and methods for determining priority based on previous priority determinations
US20020152307A1 (en) * 2001-04-12 2002-10-17 Doyle Ronald Patrick Methods, systems and computer program products for distribution of requests based on application layer information
US6996632B2 (en) * 2001-06-19 2006-02-07 Intel Corporation Multiphase encoded protocol and synchronization of buses
US7328250B2 (en) 2001-06-29 2008-02-05 Nokia, Inc. Apparatus and method for handling electronic mail
US20030115350A1 (en) * 2001-12-14 2003-06-19 Silverback Systems, Inc. System and method for efficient handling of network data
US7433943B1 (en) * 2001-12-20 2008-10-07 Packeteer, Inc. Volume-based network management scheme
US7346099B2 (en) * 2002-01-03 2008-03-18 Intel Corporation Network fabric physical layer
US7471688B2 (en) * 2002-06-18 2008-12-30 Intel Corporation Scheduling system for transmission of cells to ATM virtual circuits and DSL ports
CN100359885C (zh) * 2002-06-24 2008-01-02 武汉烽火网络有限责任公司 以策略流方式转发数据的方法和数据转发设备
JP2004297773A (ja) * 2003-03-12 2004-10-21 Matsushita Electric Ind Co Ltd データ通信方法及びデータ通信装置
US7324535B1 (en) 2003-04-10 2008-01-29 Cisco Technology, Inc. Methods and apparatus for maintaining a queue
US7620070B1 (en) * 2003-06-24 2009-11-17 Nvidia Corporation Packet processing with re-insertion into network interface circuitry
US7913294B1 (en) 2003-06-24 2011-03-22 Nvidia Corporation Network protocol processing for filtering packets
US8068508B2 (en) * 2003-08-29 2011-11-29 Koninklijke Philips Electronics N.V. Electronic circuit with processing units coupled via a communication network
US8554860B1 (en) * 2003-09-05 2013-10-08 Sprint Communications Company L.P. Traffic segmentation
US20050102526A1 (en) * 2003-11-10 2005-05-12 Davey Melville G. System governing the sending and delivery of electronic mail using an eMstamp
JP2005150948A (ja) * 2003-11-12 2005-06-09 Fujitsu Ltd パケットスイッチング装置
US7613775B2 (en) * 2003-11-25 2009-11-03 Freescale Semiconductor, Inc. Network message filtering using hashing and pattern matching
US7240041B2 (en) * 2003-11-25 2007-07-03 Freescale Semiconductor, Inc. Network message processing using inverse pattern matching
US20060002393A1 (en) * 2004-06-30 2006-01-05 Nokia Inc. Primary control marker data structure
US20060013242A1 (en) * 2004-06-30 2006-01-19 Nokia Inc. Cluster control marker data structure
JP2006180162A (ja) * 2004-12-22 2006-07-06 Nec Corp パケット交換装置およびパケット交換方法
SG163590A1 (en) * 2006-03-31 2010-08-30 Qualcomm Inc Memory management for high speed media access control
US7830918B2 (en) * 2007-08-10 2010-11-09 Eaton Corporation Method of network communication, and node and system employing the same
US8264965B2 (en) * 2008-03-21 2012-09-11 Alcatel Lucent In-band DPI application awareness propagation enhancements
US8031606B2 (en) 2008-06-24 2011-10-04 Intel Corporation Packet switching
US9460422B2 (en) * 2009-11-20 2016-10-04 Sears Brands, L.L.C. Systems and methods for managing to-do list task items to automatically suggest and add purchasing items via a computer network
US8397138B2 (en) * 2009-12-08 2013-03-12 At & T Intellectual Property I, Lp Method and system for network latency virtualization in a cloud transport environment
US8184540B1 (en) * 2009-12-11 2012-05-22 Juniper Networks, Inc. Packet lifetime-based memory allocation
US9535762B2 (en) * 2010-05-28 2017-01-03 At&T Intellectual Property I, L.P. Methods to improve overload protection for a home subscriber server (HSS)
US9319433B2 (en) 2010-06-29 2016-04-19 At&T Intellectual Property I, L.P. Prioritization of protocol messages at a server
US20120191628A1 (en) * 2011-01-24 2012-07-26 Embarq Holdings Company, Llc Ip service peering mechanisms
US9148817B1 (en) * 2013-01-21 2015-09-29 Sprint Spectrum L.P. Methods and systems for routing signaling traffic
US9400811B2 (en) * 2013-07-05 2016-07-26 Juniper Networks, Inc. Systems and methods for increasing the scalability of software-defined networks
US20150180791A1 (en) * 2013-12-20 2015-06-25 Avaya, Inc. Adaptive modification of class of service for supporting bandwidth over-allocation
CN104954249B (zh) * 2014-03-27 2018-09-21 华为技术有限公司 一种报文转发方法、系统及装置
US10877955B2 (en) * 2014-04-29 2020-12-29 Microsoft Technology Licensing, Llc Using lineage to infer data quality issues
US10637906B2 (en) 2017-10-31 2020-04-28 Cisco Technology, Inc. Dynamic socket QoS settings for web service connections
US10764201B2 (en) 2017-11-28 2020-09-01 Dornerworks, Ltd. System and method for scheduling communications
US10817413B2 (en) * 2018-12-11 2020-10-27 Nxp Usa, Inc. Hardware-based memory management for system-on-chip (SoC) integrated circuits that identify blocks of continuous available tokens needed to store data
CN113779019A (zh) * 2021-01-14 2021-12-10 北京沃东天骏信息技术有限公司 一种基于环形链表的限流方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03247145A (ja) * 1990-02-26 1991-11-05 Nippon Telegr & Teleph Corp <Ntt> ポリシング方式
JPH04156026A (ja) * 1990-10-19 1992-05-28 Fujitsu Ltd 監視制御方法、監視制御装置及び交換システム
JPH08191309A (ja) * 1995-01-10 1996-07-23 Hitachi Ltd トラヒック観測機能を有するatm交換機

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5418781A (en) * 1993-07-23 1995-05-23 Digital Equipment Corporation Architecture for maintaining the sequence of packet cells transmitted over a multicast, cell-switched network
EP0706297A1 (en) * 1994-10-07 1996-04-10 International Business Machines Corporation Method for operating traffic congestion control in a data communication network and system for implementing said method
US5519701A (en) * 1995-03-29 1996-05-21 International Business Machines Corporation Architecture for high performance management of multiple circular FIFO storage means
US5633865A (en) * 1995-03-31 1997-05-27 Netvantage Apparatus for selectively transferring data packets between local area networks
US5604742A (en) * 1995-05-31 1997-02-18 International Business Machines Corporation Communications system and method for efficient management of bandwidth in a FDDI station
US5781549A (en) * 1996-02-23 1998-07-14 Allied Telesyn International Corp. Method and apparatus for switching data packets in a data network
US6028842A (en) * 1996-12-23 2000-02-22 Nortel Networks Corporation Dynamic traffic conditioning
US5859849A (en) * 1997-05-06 1999-01-12 Motorola Inc. Modular switch element for shared memory switch fabric

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03247145A (ja) * 1990-02-26 1991-11-05 Nippon Telegr & Teleph Corp <Ntt> ポリシング方式
JPH04156026A (ja) * 1990-10-19 1992-05-28 Fujitsu Ltd 監視制御方法、監視制御装置及び交換システム
JPH08191309A (ja) * 1995-01-10 1996-07-23 Hitachi Ltd トラヒック観測機能を有するatm交換機

Also Published As

Publication number Publication date
WO2000060819A9 (en) 2002-07-11
EP1171978A1 (en) 2002-01-16
WO2000060819A1 (en) 2000-10-12
AU4062500A (en) 2000-10-23
US6426943B1 (en) 2002-07-30

Similar Documents

Publication Publication Date Title
JP2002541732A (ja) バルクデータトランスファのためのサービスアジャストメントの自動検出方法
US6226267B1 (en) System and process for application-level flow connection of data processing networks
US6714553B1 (en) System and process for flexible queuing of data packets in network switching
US6430184B1 (en) System and process for GHIH-speed pattern matching for application-level switching of data packets
JP2002541732A5 (ja)
US6522188B1 (en) High-speed data bus for network switching
JP3777161B2 (ja) マルチキャスト伝送の効率的処理
US6967951B2 (en) System for reordering sequenced based packets in a switching network
US6377998B2 (en) Method and apparatus for performing frame processing for a network
US6504846B1 (en) Method and apparatus for reclaiming buffers using a single buffer bit
US6687247B1 (en) Architecture for high speed class of service enabled linecard
US7715419B2 (en) Pipelined packet switching and queuing architecture
USRE44151E1 (en) Switching ethernet controller
US7647472B2 (en) High speed and high throughput digital communications processor with efficient cooperation between programmable processing components
US7620693B1 (en) System and method for tracking infiniband RDMA read responses
JPH09504149A (ja) 非同期転送モード(atm)ネットワーク・デバイス
KR19990087752A (ko) 효율적인 출력 요구 패킷 스위치와 방법
US7206880B2 (en) Multi-protocol bus system and method of operation thereof
US7486689B1 (en) System and method for mapping InfiniBand communications to an external port, with combined buffering of virtual lanes and queue pairs
US7124231B1 (en) Split transaction reordering circuit
US7342934B1 (en) System and method for interleaving infiniband sends and RDMA read responses in a single receive queue
US7292593B1 (en) Arrangement in a channel adapter for segregating transmit packet data in transmit buffers based on respective virtual lanes
JP2003524934A (ja) マルチメディアアプリケーションのための自動検出スイッチシステム及び方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070329

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091102

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091124

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100907