JP2003524934A - Automatic detection switch system and method for multimedia applications - Google Patents

Automatic detection switch system and method for multimedia applications

Info

Publication number
JP2003524934A
JP2003524934A JP2000610253A JP2000610253A JP2003524934A JP 2003524934 A JP2003524934 A JP 2003524934A JP 2000610253 A JP2000610253 A JP 2000610253A JP 2000610253 A JP2000610253 A JP 2000610253A JP 2003524934 A JP2003524934 A JP 2003524934A
Authority
JP
Japan
Prior art keywords
data
data packet
flow
packet
cell
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
JP2000610253A
Other languages
Japanese (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 JP2003524934A publication Critical patent/JP2003524934A/en
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/104Asynchronous transfer mode [ATM] switching fabrics
    • H04L49/105ATM switching elements
    • H04L49/108ATM switching elements using shared central buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/04Selecting arrangements for multiplex systems for time-division multiplexing
    • H04Q11/0428Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
    • H04Q11/0478Provisions for broadband connections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5651Priority, marking, classes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5665Interaction of ATM with other protocols
    • H04L2012/5667IP over ATM
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5681Buffer or queue management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

(57)【要約】 データコミュニケーションスイッチにおいて、マルチメディアストリーミングアプリケーションへ適切な品質のサービスを自動的に提供するための過程並びに装置についての発明である。スイッチは、後続の聴覚並びに視覚ストリームの特性を決定するマルチメディアセットアップメッセージを審査及び解釈し、これらのストリームに適切なプライオリティーを付与するフローテーブルのエントリーを自動的にセットアップする。 (57) [Summary] The present invention relates to a process and an apparatus for automatically providing an appropriate quality service to a multimedia streaming application in a data communication switch. The switch examines and interprets the multimedia setup messages that determine the characteristics of subsequent audio and visual streams and automatically sets up flow table entries that give these streams the appropriate priority.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【発明の属する技術分野】TECHNICAL FIELD OF THE INVENTION

本願発明は一般にはコンピューターネットワーク、特に、通信方式イーサネッ
ト(登録商標) プロトコルやワイド エリア ネットワーク(WANs)に、また
非同期転送モード(ATMs)プロトコルにサポートされているようなローカル エ
リア ネットワーク(LANs)の切替可能な接続に関係するものである。
The present invention is generally directed to switching computer networks, particularly local area networks (LANs), such as those supported by communication protocols Ethernet® protocols and wide area networks (WANs), and asynchronous transfer mode (ATMs) protocols. It concerns the possible connections.

【0002】[0002]

【従来の技術と発明が解決しようとする課題】[Prior Art and Problems to be Solved by the Invention]

(関連出願の説明) 本願はアメリカ特許出願第09/285,617号「Application-Level Data Communicati
on Switching System and Quality of Service Adjustment for Multimedia Str
eaming Applications」を基礎の出願とし、優先権主張するものである。
(Description of Related Applications) This application is US Patent Application No. 09 / 285,617 "Application-Level Data Communicati
on Switching System and Quality of Service Adjustment for Multimedia Str
The basic application is "eaming Applications" and the priority is claimed.

【0003】 本願は、1998年4月10日提出のアメリカ特許出願第09/058,448号「Syst
em and Process for Application-Level Flow Connection of Data Processing
Networks」と、1998年4月15日提出のアメリカ特許出願第09/060,575号「
System and Process for Flexible Queuing of Data Packets in Network Switc
hing」の一部継続出願である。
The present application is directed to US patent application Ser. No. 09 / 058,448 filed April 10, 1998 “Syst
em and Process for Application-Level Flow Connection of Data Processing
Networks "and US patent application Ser. No. 09 / 060,575 filed April 15, 1998"
System and Process for Flexible Queuing of Data Packets in Network Switc
It is a partial continuation application of "hing".

【0004】 本願はバーリー スピニーとクリシュナ ナラヤナスワミィによって同日に同co
mmon entityに委譲されたアメリカ特許出願「Application-Level Data Communi
cation Switching System and Process for Automatic Detection of and Quali
ty of Service Adjustment for Bulk Data Transfers」と一緒に提出されるもの
である。
This application is co-authored on the same day by Burley Spinney and Krishna Narayana Swami.
US patent application `` Application-Level Data Communi '' delegated to mmon entity
cation Switching System and Process for Automatic Detection of and Quali
ty of Service Adjustment for Bulk Data Transfers ".

【0005】 本願は1998年4月10日提出のアメリカ特許出願第09/058,629号「ネット
ワーク切替の為の高速データバス」と、1998年4月10日提出のアメリカ特
許出願第09/058,597号「System and Switching of Data Packets」にも関連して
いるものである。 (発明の背景) 既存のデータコミュニケーション切替の問題点は、異なった型式のデータフロ
ーを区別することが出来ないことにあった。従って、切替や結節は過剰優先順位
の低い電子メールやファイル転送のデータ交通量によっての混雑を招くおそれが
あった。この切替の招く混雑は、よりリアルタイムであることを要する、また、
インターネット電話法やビデオ会議や など発達によってより重要となってきて
いるビデオやオーディオストリーミングの交通を中断させてしまうおそれがある
The present application is US patent application Ser. No. 09 / 058,629 filed April 10, 1998 “High-speed data bus for network switching” and US patent application Ser. No. 09 / 058,597 filed April 10, 1998 “ It is also related to "System and Switching of Data Packets". (Background of the Invention) A problem of existing data communication switching is that it is impossible to distinguish different types of data flows. Therefore, switching or knotting may lead to congestion due to data traffic of low priority email or file transfer. The congestion caused by this switching needs to be in more real time, and
It may disrupt traffic for video and audio streaming, which has become more important due to developments such as Internet telephony and video conferencing.

【0006】 ネットワーク接続においての大きな問題の一つは、特有なネットワークにおい
ての異なったデータのプロセスシステム間での通信に利用される多種の異なった
ネットワーク プロトコルがそのようなネットワーク間での通信を困難にしてい
ることである。他の大きな問題点は多くののネットワーク プロトコルはコンピ
ューターシステムやノードをjくわえる時に、相当なパラメーターのコンフィギ
ュレーションを要することであり、典型的にはそれがネットワーク専門の人であ
ってもミスをおかすため、、デバイスアドレスの手入力で行われた場合である。
この問題はネットワークボウンダリーをまたいでの接続である時には悪化する。
One of the major problems in network connectivity is that the different network protocols used to communicate between different data process systems in a particular network make communication between such networks difficult. Is what you are doing. The other major problem is that many network protocols require considerable parameter configuration when adding computer systems or nodes, which is typically a mistake even if you are a network expert. Therefore, this is the case where the device address is manually input.
This problem is exacerbated when connecting across network boundaries.

【0007】[0007]

【課題を解決するための手段】[Means for Solving the Problems]

本願発明は、データパケットのフローのための受信フィジカルパス及び送信フ
ィジカルパスの柔軟な接続のための方法であって、以下のものからなる方法であ
る。即ち、 (a)前記受信フィジカルパスのデータパケットを受信し、 (b)前記データパケットがマルチメディアストリームデータのクラスと関連
するセットアップシーケンスの一部であって所定のフローとして特定されている
か否かを決定し、もしそうであれば、前記マルチメディアストリームデータのク
ラスとして特定されたパケットの送信のサービスシーケンスのクオリティーを適
用し、さらに、 (c)前記適用されたサービスシーケンスのクオリティーに従った、前記特定
のフローの一部であるデータパケットを送信する。
The present invention is a method for flexible connection of a receiving physical path and a transmitting physical path for a flow of data packets, which method comprises: That is, (a) whether the data packet of the reception physical path is received, and (b) whether the data packet is part of a setup sequence associated with a class of multimedia stream data and is identified as a predetermined flow. And, if so, applying the quality of service sequence of the transmission of the packet identified as the class of the multimedia stream data, and (c) according to the quality of the applied service sequence, Send a data packet that is part of the particular flow.

【0008】[0008]

【発明の実施の形態】DETAILED DESCRIPTION OF THE INVENTION

本明細書は、以下のように編成されている。   This specification is organized as follows.

【0009】 1.BlazePath(商標)/BlazeFire(商標)アーキテクチ
ャ/チップ・セット 2.ヘッダの「カノニカル化」およびパケットの「カノニカル化」 3.BlazeWire(商標)高速MACバス 4.データ・フロー・イン 5.キュー・ポインタ管理およびオペレーション 6.リライ・エンジン・オペレーション/フロー整合(FastPath(商
標)) 7.送信スケジューリング 8.インターフェースへのダウンロード/送信クレジット・ループ 9.超高速RAMBUS(登録商標)オペレーション 10.背景エンジン/初期化/監視 11.マルチメディア・データ・フローのスケジューリング 1.BlazePath(商標)/BlazeFire(商標)アーキテクチ
ャ/チップ・セット 本発明のアーキテキクチャは、BlazePath(商標)と呼ばれ、アプリ
ケーション層フロー切替え、または、特定のフローにおけるメンバシップを特徴
付けるパケットのアプリケーション・ヘッダの情報に基づいて行われた決定によ
る、多数の仮想キューの1つまたは複数に入来するデータ・パケットを(高速デ
ータ・バッファに対するポインタによって)仮想的に割り付けることによって実
施される接続を備える。システムのスループットまたは帯域幅を改善するために
、好ましい実施形態である、AppSwitch(商標)アプリケーション・フ
ロー・スイッチは、フローの初期パケットにより決定し、情報のヘッダのハッシ
ュ・バージョンを整合させて、フローの後のパケットを識別する。入来するフロ
ーのヘッダ情報を「カノニカル化」し、長いフレームをより小さい内部セルに分
割することによって(ただし論理的には接続されているように保つ)、システム
は、独立した「フレームのセル」になる。
1. BlazePath ™ / BlazeFire ™ architecture / chip set 1. 2. "Canonicalization" of the header and "canonicalization" of the packet. BlazeWire ™ high-speed MAC bus 4. Data flow in 5. Queue pointer management and operations 6. Reli Engine Operation / Flow Matching (FastPath ™) 7. Transmission scheduling 8. Download / Send to Interface Credit Loop 9. Ultra-high speed RAMBUS (registered trademark) operation 10. Background engine / initialization / monitoring 11. Scheduling of multimedia data flows 1. BlazePath (TM) / BlazeFire (TM) Architecture / Chipset The architecture of the present invention is called BlazePath (TM) and is an application layer flow switch or application header for packets that characterize membership in a particular flow. A connection made by virtually allocating (by a pointer to a high speed data buffer) an incoming data packet to one or more of a number of virtual queues according to a decision made based on In order to improve system throughput or bandwidth, the preferred embodiment, AppSwitch ™ Application Flow Switch, determines the flow's initial packet to match the hashed version of the header of the information, Identifies the packet after. By "canonicalizing" the header information of the incoming flow and splitting the long frame into smaller internal cells (but keeping them logically connected), the system uses independent cells of the frame. "become.

【0010】 図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に対するインターフェース
の役割りを果たすことが可能である。
Referring to FIG. 1, in the preferred embodiment, the architecture is Blaz.
BlazeFire connected by eWire ™ MAC bus 60
(Trademark) chip set. Architecture is 100M
It is centered around a 287k gate Queue Manager (“QM”) ASIC 30 operating at Hz. This queue manager places a 16,000,000 queue of pointers (24 bit definition) at the location of the high speed data buffers 35 and 36 connected to the QM 30 where incoming packets are temporarily stored. Implement a queue-pointer scheme that allows placement. The queue is 410k
Gate Reli Engine ("RE") or Transfer Engine ("FE") AS running at 100 MHz, including Argonaut RISC (ARC) Central Processing Unit 387 and FIFO 305 for inspected packet headers.
Loaded based on the decisions made by IC 40. Inputs to and outputs from the system are 350k gate, 60MHz MOM (MTI (Media Independent Interface) Octal MAC) ASICs 10 and 20, daisy-chained on the BlazWire ™ MAC bus 60. Carried out using. The MOM chips 10 and 20 each have two quad physical link chips for local area Ethernet (71 and 72 and 70 and 73 respectively) or T1 and POTS ("normal conventional telephone service").
Can serve as an interface to a distributed access device (DAD) WAN processor 66 or a background engine (“BE”) 50 servicing the WAN line 69 of the.

【0011】 図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に送信するときを決定する。
FIG. 2 illustrates a MOM chip 10, such as M, used in a preferred embodiment of the present invention.
It is a block diagram of an OM chip. In general, the figure shows an MII interface 65 that provides eight dual Ethernet ports. The receive interface 11 and parser 12 receive the data packet, rewrite the frame header as a canonical header as described in Section 2 below, and divide the resulting packet into 128 byte cells. This cell is a round of 8 ports
Producer 13 and FIFO Arbiter 1 in Robin Arbitration
4 is placed in the FIFO 15. Data cells that do not carry a canonical header (packet cells following the first cell of the packet) have a burst header added by burst logic 17 for internal tagging of the data.
RX credit manager 19 adds transmit credits (discussed in section 8 below) to the header as appropriate to notify QM 30 that transmit FIFO 24 can receive more data to be transmitted. . The token arbiter 18 sends the data to the MAC bus TX cell 76, which
Determine when to send to QM 30 on C-bus 60.

【0012】 さらに図2を参照すると、MACバス60に入来するデータ・セルは、カノニ
カル/バースト・ヘッダの回路識別子により、送信コンシューマ26に向けられ
る。データ・パケット・ヘッダは、送信コンシューマ26とインターフェース2
7によって再構築および送信され、TXクレジット/マネジャ28は、クレジッ
ト情報で更新されて、QM30に戻る。
Still referring to FIG. 2, incoming data cells on the MAC bus 60 are directed to the transmit consumer 26 by the circuit identifier of the canonical / burst header. The data packet header is sent by the sending consumer 26 and the interface 2
Rebuilt and sent by 7, TX Credit / Manager 28 is updated with credit information and returned to QM 30.

【0013】 図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と調和する。適切なフィールド・
マッピングがハードワイヤードされているこれらのオペレーションは、非常に高
速で実行されたスケジューリングとルーティングの高度な柔軟性に備えている。
FIG. 3 is a block diagram of the QM 30 used in the preferred embodiment of the present invention. In essence, the QM 30 quickly performs the placement of data cells on the appropriate queues (virtually implemented by a linked list of pointers linked to the data buffer) and queues supported by the RE 40. A collection of gates and state machines designed to apply policies. QM 30 is divided into three clock regimes. The interface between the MAC bus 60 through the digital delay lock loop 302 that supplies the receive data FIFO 306 and the receive command FIFO 312 and the receive interface 304, and the digital delay lock loop 301 that discharges the transmit data FIFO 305 and the send interface 303 is
It is on the C bus clock. The received data cells are, as discussed below,
ERAM3 through direct dual RAMBUS access cell 308
Channeled 5 and 36. The DRAM interface 307 operating on the DRAM clock includes the MAC bus FIFOs 305 and 306 as well as the header out FIFO 309 (RE4 on the header data interface 74).
0 (not shown), including canonical header cells), header-in FIFO 310 (including canonical headers rewritten at the Reli engine data interface with appropriate routing information), and DRAM.
Coordinate operation of command FIFO 311. DRAM command FIF
O311 contains the RE determination implemented by the QM logic shown in the functional network under the SRAM clock domain. Reception engine 315, transmission engine 3
16, and the header prefetch engine 234 sends the data to the DRAM 35.
Directs the function of DRAM arbiter 314 to provide instructions to and from DRAM interface 307. Also, the reception engine 315
The transmit engine 316 coordinates with the free buffer manager 318 to allocate the buffers of DRAMs 35 and 36 for incoming data. Enqueue
Manager 319 and dequeue manager 312 coordinate with the header prefetch engine and receive queue state (receive queue pointer head and tail, as discussed in Section 5 below) 320, especially for pattern matching. , Decides when to send a cell containing canonical header data to the RE 40 and retrieve the corresponding packet from the received queue. header·
The prefetch engine 314 coordinates with the reli engine context 326, the instruction dispatch manager 327 that receives instructions from the RE via the interface 75, the reli engine instruction interface 329, and the reli engine instruction FIFO 328. The circuit poller 317 polls the transmission engine 316 for each circuit to transmit cells, and the SRAM interface 323.
Through an SRAM arbiter 322 that accesses a linked list of buffer pointers (“descriptors”) in SRAM 32 and keeps track of the constituent cells of a packet as it is received and transmitted on one or more queues. Appropriate fields
These operations, where the mappings are hard-wired, provide for a high degree of scheduling and routing flexibility, which is very fast.

【0014】 図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によって
処理する。
FIG. 4 is a block diagram of the RE 40. The main function of the RE 40 examines the canonicalized packet header received at the interface 74 from the QM 30 and determines if the packet belongs to a known flow and accordingly issues an instruction on the interface 75 for proper scheduling. Quickly decide whether to provide (quality of service). CPU core 387 (implemented in an ARC processor) includes instruction cache 386 and data cache 385, and DRAM
Code and data DRAM via interface 384 (also receiving instructions from BE 50 via slow bus 62 and DMA 383 at initialization)
42. A string compare coprocessor 389 is used to assist in pattern recognition used to match packets and flows. Generally, the canonicalized packet header entering the RE 40 is data FI by MUSIn 394.
Pre-processed by hash preprocessor 399 in parallel with MUXing into FO394. The results of the parallel hashing are placed in the hash FIFO 393 and compared by the hash search engine 392 with the contents of the onboard L1 cache of the hash table 391 (for known hashes of header information associated with particular flow characteristics). . If no match is found in the L1 cache 391, the hash search engine 329 will consult the entire hash table of the search SRAM 45 accessed via the SRAM interface and arbiter 388. The tri-search coprocessor 390 is used to find appropriate flow parameters in situations where rapid pattern matching is not appropriate or has failed (discussed below). Depending on the determined flow parameters, CP
U387 issues an appropriate instruction to the instruction FIFO 395, and the data FIFO
QM across interface 75 from O394 to MUX Out 397
Any data provided in 30 is processed by the instruction push 396 multiplexed.

【0015】 図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上に配置される。
FIG. 5 shows a general schematic diagram of the operation of the preferred embodiment of the present invention in terms of queue management. The data on the MOM receive port 15 'is directed into the QM main receive FIFO 330. Also, data is enqueued from WAN (T1 and POTS) port receive queues 69 'processed under protocol 66' and DAD management 66 'into DAD Ethernet transmit queue 348' and appears on MOM receive port 348. To do. The data cells of the receive FIFO 330 are located in the main system packet memory DRAMs 35 and 36, while
The canonical header is transferred to QM 30 in FIFO 394. Here, FastPath ™ processing is applied to per flow, per priority, and each port queue 332 (static priority as discussed below) and 33.
Appropriate queuing of packets per 3 (as discussed below, weighted Robin priority), MOM transmit port 24 '(or even T
1 and POTS port transmit queue 69 "for distribution to circuit queue 350.
It is possible to send to the DAD 66) distributed above. Fine tuning of scheduling can be achieved using quality of service scheduling process 336 for per-flow queuing with queue 335 scheduled as an "intermediate" queue. Management queue 337 also comprises a management operations process 338 running on the weighted round robin queue 333. Also, a monitor queue 334 is provided to the network that monitors the information transmitted on the MII 24 '. On the BE50 side, M
The data placed on the OM port transmission queue 339 is MII (100 Mbit).
On the Ethernet link 54) into the BE receive queue 341. The background engine main transfer process 342 sends information to the BE send low priority queue 346 or the management queue 3 served by the management operations process 344.
43, and develops data (serving commands) and sends BE high priority queue 345
Place it on top. Both BE transmit queues are drained into MOM port receive queue 347 and placed on QM receive queue 330 via link 64.

【0016】 図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から受信される。
FIG. 6 is a generalized flow diagram for the process of the present invention. It should be appreciated that the process takes place simultaneously along various points of the figure for different cells.
Since the preferred embodiment of the invention often splits incoming long Ethernet frames into cells for later reassembly, it is important in this embodiment to characterize the cells with respect to the original packet. Is. The received cell is
It can be "start of packet"("SOP"),"middle of packet"("MOP"),"end of packet"("EOP"), or "start and end of packet" ( It is possible to include one packet as "SEP"). Packet reception and transmission in the preferred embodiment is performed per circuit,
Circuits are defined as local connections that maintain packet ordering, but cells of packets on one circuit can be interleaved with cells of packets on another circuit, such as on the MAC bus. , Cells received on the same circuit must be transmitted in the same order. Thus, in FIG. 6A, as time progresses from top to bottom, SOP 371 is received from circuit 2 in the order they appear on the MAC bus, then SEP 372 from circuit 1, SOP 373 from circuit 3, MOP 374 from circuit 2, EOP 376 from circuit 3, SOP 375 from circuit 1, EOP 37
7 is received from the circuit 3.

【0017】 図6の示した一般化したプロセスを参照すると、オペレーション351におい
て、パケットはMIIにおいて受信され、オペレーション352において、やは
りカノニカル・ヘッダ(および可能であればバースト・ヘッダ)を追加するMO
M10または20によってセルに分割される(図1参照)。MOM送信バッファ
のセルは、オペレーション353において、MACバス上で調停され、オペレー
ション354において、後に送信するためにDRAMに格納され、これはまた、
本発明の好ましい実施形態で使用した仮想パケットのリンクリストなど、セルを
当初のパケットに関連付ける手順の開発を含む。セルがSOPである場合、セル
をパターン整合手順に送信する決定355が行われ、セルは、以前に識別された
フローに関連付けられている既知のハッシュ結果に対して、ハッシュされ356
、次いで整合される357。整合が存在しない場合(おそらくはいくつかの整合
手順後)、新しいフローまたは例外が指定される358。いずれの場合でも、パ
ケットを適切にスケジューリングおよび経路指定するために、適切なヘッダが書
かれる。好ましい実施形態では、スケジューリングは、パケットを指定されたサ
ービス品質と特定の回路に関連付けられているキューに割り当てることによって
行われる。キュー上のセルは、適切な時間に送信360され、プロセスは、おそ
らくはヘッダの書換えを含む。送信されたセルがEOPであった場合、パケット
は、回路からデキューされ361、パケットを送信するという他の要求が存在し
ない場合(オーナ362がもはやない場合)、データ・バッファは解放される3
63。このプロセスは、さらに一般化して、多様な方式で実施することが可能で
ある。
Referring to the generalized process shown in FIG. 6, at operation 351 the packet is received at the MII and at operation 352 the MO also adds a canonical header (and possibly a burst header).
It is divided into cells by M10 or 20 (see FIG. 1). The cells of the MOM transmit buffer are arbitrated on the MAC bus in operation 353 and stored in DRAM for later transmission in operation 354, which is also
Including the development of procedures for associating cells with the original packet, such as the linked list of virtual packets used in the preferred embodiment of the present invention. If the cell is a SOP, then a decision 355 is made to send the cell to the pattern matching procedure and the cell is hashed 356 against the known hash result associated with the previously identified flow.
, Then matched 357. If no match exists (possibly after some match steps), a new flow or exception is specified 358. In either case, the appropriate header is written to properly schedule and route the packet. In the preferred embodiment, scheduling is done by assigning packets to queues associated with a specified quality of service and a particular circuit. Cells on the queue are sent 360 at the appropriate time, and the process probably involves rewriting the header. If the cell sent was an EOP, the packet is dequeued from the circuit 361 and the data buffer is freed 3 if there is no other request to send the packet (owner 362 is no longer present).
63. This process can be further generalized and implemented in a variety of ways.

【0018】 本発明の好ましい実施形態によるデータのフローについて、さらに以下で提示
する。これには、追加の発明が含まれる。
The flow of data according to the preferred embodiment of the present invention will be further presented below. This includes additional inventions.

【0019】 2.ヘッダ「カノニカライゼーション」およびフレーム「セルラー化」 物理レイヤ上でデータ・パケットを受信すると、この発明的なネットワーク・
スイッチは、到来パケットのレイヤ2ヘッダおよびレイヤ3ヘッダをとり(レイ
ヤ1パケット・プリアンブルがあればドロップし)、それをカノニカル形式に変
換する。本発明はさらに、可変長パケットを、高速内部バス上での通信にとって
最大限に都合のよい長さの「セル」に分割する。これにより、イーサネット「フ
レーム」やATM「セル」などの異なるレイヤ2ヘッダ・フォーマットおよびレ
イヤ3ヘッダ・フォーマットであって異なる長さのデータ・パケットを、同じス
イッチング・プロセスおよび装置でルーティングすることができる。ヘッダの「
カノニカライゼーション」はまた、処理に都合のよい4バイト境界に沿ってヘッ
ダを整列させる。ここでの例はイーサネット・フレームの場合であるが、用語お
よびインターフェースASICを適切に修正すればATMセルにも適用可能であ
る。
2. Header "Canonicalization" and Frame "Cellularization" When a data packet is received on the physical layer, this inventive network
The switch takes the layer 2 and layer 3 headers of the incoming packet (drops any layer 1 packet preamble) and converts it to canonical form. The present invention further divides variable length packets into "cells" of a length that is most convenient for communication on a high speed internal bus. This allows data packets of different Layer 2 and Layer 3 header formats, such as Ethernet "frames" and ATM "cells", but different lengths, to be routed by the same switching process and equipment. . In the header
Canonicalization also aligns the headers along 4-byte boundaries, which is convenient for processing. The example here is for an Ethernet frame, but it is also applicable to ATM cells with appropriate modifications to the terminology and the interface ASIC.

【0020】 図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アクセス・モジュールを形成する。
Referring to FIG. 1, a frame of information is received by MOM1 chip 10 via one of the eight ports shown. Physical link layer 1 processing is
In the preferred embodiment, a dual "off-the-shelf" QuadPHY integrated circuit (L
uCent Technologies) and each circuit is 10 Base-T (10 Mbit / sec) or 100 Base-T.
Handles X (100 Mbit / sec) Ethernet transmit / receive electronics. One of the ports, for example the port from MOM2, can be connected by internal or external 10 Mbit Ethernet to a DAD integrated circuit containing an off-the-shelf WAN processor (such as those available from Motorola), which is a modem. Interface with the T1 and POTS lines via. Together, they form the QuadServer ™ WAN access module.

【0021】 図1を参照すると、メッセージを形成するデータ・ストリームの形をとる情報
のフレームまたはパケットが物理回路70に入力され、次いで、MOM1チップ
10によってその8つのポートの1つを介して受信される。図18に、典型的な
パケット・フォーマットの構成を概略的に示す。プリアンブル620があり、こ
れに続いて、パケットをブリッジングするための情報を含むデータ・リンク・レ
イヤ2ヘッダ622と、メッセージをルーティングするための情報を含むネット
ワーク・レイヤ3ヘッダ623と、データの使用対象であるアプリケーションに
関する情報を含むアプリケーション・ヘッダ624がある。これらのヘッダの後
にデータ本体625、および場合によってはトレーラ626があるが、トレーラ
626は通常は不要であり使用されない。
Referring to FIG. 1, a frame or packet of information in the form of a data stream forming a message is input to physical circuit 70 and then received by MOM1 chip 10 via one of its eight ports. To be done. FIG. 18 schematically shows the structure of a typical packet format. There is a preamble 620, followed by a data link layer 2 header 622 containing information for bridging packets, a network layer 3 header 623 containing information for routing messages, and the use of data There is an application header 624 that contains information about the application of interest. Following these headers is the data body 625, and possibly the trailer 626, which is usually unnecessary and unused.

【0022】 MOM1チップは、好ましい実施形態では様々なイーサネット・プロトコルを
認識するようにハードウェア中に事前プログラムされたものだが、これは、受信
フレームから、プリアンブルおよびトレーラをドロップし、レイヤ2および3の
ヘッダを読み、図7Aの28バイトのカノニカル・ヘッダを生成する。MOM1
は、1ポートにつき256バイトのバッファ容量があるので、フレーム・データ
をそれぞれ128バイトのセルにセグメント化する(他の実施形態では他のセル
長を用いてもよい)。
The MOM1 chip, which in the preferred embodiment is pre-programmed in hardware to recognize various Ethernet protocols, drops preambles and trailers from received frames, layers 2 and 3 7A to generate the 28-byte canonical header of FIG. 7A. MOM1
Has a buffer capacity of 256 bytes per port, thus segmenting frame data into cells of 128 bytes each (other cell lengths may be used in other embodiments).

【0023】 受信されたレイヤ3(ネットワーク)ヘッダ情報は、カノニカル・ヘッダをす
ぐに付加して記憶される。カノニカル・ヘッダは28バイトなので、レイヤ3ヘ
ッダは、常にセルの開始点から4の倍数バイトで開始する。レイヤ3内の重要な
フィールドは、通常、4バイト境界に整列する。これにより、32ビット・プロ
セッサ/メモリ・アーキテクチャの場合にこれらのフィールドの処理が非常に効
率的になる。
The received layer 3 (network) header information is stored with the canonical header immediately added. Since the canonical header is 28 bytes, the layer 3 header always starts at a multiple of 4 bytes from the beginning of the cell. The important fields in layer 3 are typically aligned on 4-byte boundaries. This makes processing these fields very efficient for 32-bit processor / memory architectures.

【0024】 レイヤ3ヘッダには、アプリケーション・レイヤを含めた上位レイヤからの他
のヘッダ情報が続く。カノニカル・ヘッダは、受信された各フレームまたはパケ
ットの第1のセルの最初に配置され、パケットをルーティングまたはブリッジン
グするためにRE40によって使用される。セルのストリームの形をとるパケッ
トが送信されるようにMOMに送られたとき、MOMは、送信カノニカル・ヘッ
ダ中の宛先およびプロトコル情報に従って適切なヘッダ、プリアンブル、および
トレーラを再構築し、指定されたポートに接続された回線上で、再構築したパケ
ットの送信を開始する。
The layer 3 header is followed by other header information from higher layers, including the application layer. The canonical header is placed at the beginning of the first cell of each received frame or packet and is used by the RE 40 to route or bridge the packet. When a packet in the form of a stream of cells is sent to the MOM for transmission, the MOM reconstructs the appropriate header, preamble, and trailer according to the destination and protocol information in the transmitted canonical header and is designated. Start sending reconstructed packets on the line connected to the port.

【0025】 図7Aに、好ましい一実施形態におけるカノニカル・ヘッダの構成および内容
を示す。最初の2つのバイト430は、データ・パケットが受信された回路の回
路識別を保持し、バイト432すなわちDL Infoは、元の受信ヘッダから
のデータ・リンク(レイヤ2)ヘッダに関する情報を提供する。図7Bに、これ
らのビットに対する具体的な割当てを示す。ビット7は、受信されたフレームが
その受信時にVLAN(仮想ローカル・エリア・ネットワーク)でタグ付けされ
ていたかどうかを示す。送信時にこのビットがセットされている場合、送出パケ
ットは、送信を処理するMOMチップによってVLANヘッダでカプセル化され
る。ただし、VLANタグ付きで受信されたパケットは必ずしもVLANタグ付
きで送出する必要はなく、その逆も同様であることに留意されたい。
FIG. 7A shows the structure and contents of the canonical header in a preferred embodiment. The first two bytes 430 hold the circuit identification of the circuit from which the data packet was received, and byte 432 or DL Info provides information about the data link (Layer 2) header from the original received header. FIG. 7B shows the specific allocation for these bits. Bit 7 indicates whether the received frame was tagged with a VLAN (Virtual Local Area Network) when it was received. If this bit is set on transmission, the outgoing packet is encapsulated in the VLAN header by the MOM chip that handles the transmission. However, it should be noted that packets received with a VLAN tag do not necessarily have to be sent out with a VLAN tag and vice versa.

【0026】 図7Bのビット6および5は、どのようにCRC(巡回冗長検査)が処理され
るかを示す。図7Cは改めて説明する必要はない。送出フレームが受信フレーム
と異なるときは新しいCRCを生成しなければならないが、単に元のフレームが
転送される場合はCRCを変更しなくてもよく、したがって、古いCRCを保持
するか別のCRCを生成する必要があることに留意されたい。ビット3および4
は未使用であり、0のままである。図7Dに、データ・リンク・フォーマットを
識別するビット2、1、および0に対する符号化を示す。
Bits 6 and 5 of FIG. 7B show how CRC (Cyclic Redundancy Check) is processed. FIG. 7C need not be described again. A new CRC has to be generated when the outgoing frame is different from the received frame, but the CRC does not have to be changed if the original frame is simply transferred, so either keep the old CRC or use another CRC. Note that it needs to be generated. Bits 3 and 4
Is unused and remains 0. FIG. 7D shows the encoding for bits 2, 1, and 0 that identify the data link format.

【0027】 カノニカル・ヘッダNL Infoフィールド434は、ネットワーク・レイ
ヤ情報を含む。図8Aに、NL Info中の8つのビットの意味を示す。受信
に関して、ビット7の真は、受信された情報の宛先アドレス(DA)が、パケッ
トが受信された回路に関連するブリッジ・グループのアドレスであることを示す
。ビット6の真は、DAがそのポートに対するシステム・アドレスであることを
示す。ビット5の真は、DAが、ネットワーク制御プロトコルに関連するアドレ
スなど、本発明により「周知のアドレス」として事前構成されているアドレスで
あることを示す。送信時にこのビットは無視される。送信時、ビット7および6
がセットされている場合は、SAフィールドに適切なソース・アドレスが入る。
The canonical header NL Info field 434 contains network layer information. FIG. 8A shows the meaning of 8 bits in NL Info. For reception, bit 7 true indicates that the destination address (DA) of the received information is the address of the bridge group associated with the circuit in which the packet was received. Bit 6 true indicates that DA is the system address for that port. Bit 5 true indicates that the DA is an address that is preconfigured as a "well-known address" by the present invention, such as an address associated with a network control protocol. This bit is ignored during transmission. On transmission, bits 7 and 6
If set, the SA field contains the appropriate source address.

【0028】 ビット4〜0は、パケットのレイヤ3プロトコルを識別する。図8Bは、本発
明の中に事前プログラムされたこれらのプロトコルを識別するものである。これ
らは、新しいプロトコルが開発されたときに拡張することができ、このシステム
によって効率的に扱う必要がある。
Bits 4-0 identify the layer 3 protocol of the packet. FIG. 8B identifies these protocols pre-programmed within the present invention. These can be extended as new protocols are developed and need to be handled efficiently by this system.

【0029】 タイム・スタンプの4つのバイト138は、パケットが失効する時間を含む。
QM30は、パケットの第1のセルの一部としてカノニカル・ヘッダを受け取っ
たときに、そのパケットが失効する時間を入力する。QM30は、パケットの送
信時、現在時間がカノニカル・ヘッダ中のタイム・スタンプ値よりも大きいかど
うかをチェックすることになる。大きい場合は、データ・リンク・デバイスは、
そのパケットを送信せず、代わりにそれをカウントするように指示を受ける。こ
のフィールドは、MOMによって最初に生成されるときに、以下のセクションの
「Data Flow In」で述べるセル情報を含む。
The four bytes 138 of the time stamp contain the time at which the packet expires.
The QM 30 enters the time at which the packet expires when it receives the canonical header as part of the first cell of the packet. When sending a packet, the QM 30 will check if the current time is greater than the time stamp value in the canonical header. If so, the data link device
Do not send the packet, instead instructed to count it. This field, when initially generated by MOM, contains cell information as described in the "Data Flow In" section below.

【0030】 2バイト受信回路識別(Rx Ckt Id)は、パケットが受信される回路
を識別する。QMは、データが再送される回路の回路識別でCkt Idフィー
ルド430を上書きする前に、MOM1によって最初に供給された受信回路識別
をCkt Idフィールド430からコピーする。したがって受信回路識別は、
後で使用されるように(BE50による管理およびRMON機能などのために)
保持される。
The 2-byte receive circuit identification (Rx Ckt Id) identifies the circuit in which the packet is received. The QM copies from the Ckt Id field 430 the receive circuit identification initially provided by MOM1 before overwriting the Ckt Id field 430 with the circuit identification of the circuit where the data is retransmitted. Therefore, the receiving circuit identification is
For later use (for management by BE50 and RMON functions etc.)
Retained.

【0031】 DAは、受信パケットの48ビット・レイヤ2(MAC)宛先アドレスである
DA is the 48-bit Layer 2 (MAC) destination address of the received packet.

【0032】 SAは、受信パケットの48ビット・レイヤ2(MAC)ソース・アドレスで
ある。
SA is the 48-bit Layer 2 (MAC) source address of the received packet.

【0033】 VLANタグは、イーサネット802.1Qタグ付きで受信したパケットに対
応するための2バイト・フィールドである。前述のように、DL Infoフィ
ールド中のVLANタグ・ビットもまたセットされる。このパケットの送信を処
理するMOMチップは、送出パケットにタグ付けすることになる。
The VLAN tag is a 2-byte field for supporting a packet received with an Ethernet 802.1Q tag. As mentioned above, the VLAN tag bit in the DL Info field is also set. The MOM chip that handles the transmission of this packet will tag the outgoing packet.

【0034】 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ヘッダ中の長さを使用した妥当性チェックに使用できる長さを含む
ことになる。
P-Type / len is a 2-byte field containing a protocol type / length field. In the preferred embodiment, this value is 1500 (10
If the value is greater than decimal, this field represents the protocol and its value is 150.
If 0 or less, this field represents the length. The protocol is NL Inf
It is included in the Protocol Kind subfield of the o field.
If the protocol is not so configured, then P in the NL Info field
The protocol Kind subfield will indicate Unknown (0), and the P-Type / len field will have that value. For example, if the packet is in Ethernet 802.3 format, this field will contain a length that can be used for validation using the length in the Layer 3 header.

【0035】 XXバイトは、受信パケットのパケット・フォーマットに基づく他の情報を有
することができる。図8Cに、異なるDLフォーマット・タイプの場合のXXバ
イトの内容を示す。
The XX bytes may carry other information based on the packet format of the received packet. FIG. 8C shows the contents of the XX bytes for different DL format types.

【0036】 3.BlazeWire(商標)高速MACバス 受信されて1つまたは複数のセルに再構築され、第1のセルがカノニカル・ヘ
ッダおよび上位レイヤ・ヘッダを含むフレームは、QMとの間で、BlazeW
ire(商標)と呼ばれる高速MACバス上で通信される。
3. BlazWire ™ High Speed MAC Bus A frame received and reassembled into one or more cells, where the first cell contains a canonical header and an upper layer header, is transmitted to and from the QM.
It is communicated on a high speed MAC bus called ire ™.

【0037】 BlazeWire(商標)のここでの設計は、2つの大規模集積回路チップ
間で各方向に10個の信号および1つのクロック信号がある全二重クロック・バ
スである。このクロッキング・プロトコルにより、バス上のデータ転送をセルフ
・フレーミングかつ非対称かつ非エイリアシングにすることができる。すべての
信号は、内在伝送回線が適切に終端している2つの導体ラン間の差動信号である
。この好ましい実施形態では、差動ドライバおよびレシーバの電気的特性は、ほ
ぼ低電圧差動規格(SVDS)ANSI/TIA/EIA−644に記述されて
いるとおりである。差動信号電圧は、約250ミリボルト(mv)であり、ケー
ブル終端および物理信号パスは、バスにわたる高速動作に対応するように設計さ
れる。バスは、一方の大きなチップ(MOMまたはQM)から他方のチップに続
くチェーンとして構成される。バスへのチップのアクセスを制御するために、後
述するように別のデイジー・チェーン型トークン・パス手法が実装される。バス
の電子設計は、場合によって異なる製造、供給電圧変動、および温度変動からく
る、チップの異なる製品ランに付きものの実際の変形を補償する。好ましい実施
形態では、バスのスピードは、ギガヘルツの範囲まで上げることができる。
The BlazeWire ™ design here is a full-duplex clock bus with 10 signals and 1 clock signal in each direction between two large integrated circuit chips. This clocking protocol allows data transfers on the bus to be self-framing, asymmetric and non-aliasing. All signals are differential signals between two conductor runs where the underlying transmission line is properly terminated. In this preferred embodiment, the electrical characteristics of the differential driver and receiver are approximately as described in the Low Voltage Differential Standard (SVDS) ANSI / TIA / EIA-644. The differential signal voltage is approximately 250 millivolts (mv), and cable terminations and physical signal paths are designed for high speed operation across the bus. The bus is organized as a chain from one large chip (MOM or QM) to the other. Another daisy-chained token pass approach is implemented to control chip access to the bus, as described below. The electronic design of the bus compensates for the actual variations associated with different product runs of the chip, possibly resulting from different manufacturing, supply voltage variations, and temperature variations. In the preferred embodiment, the speed of the bus can be increased to the gigahertz range.

【0038】 10個の信号は8つのデータから構成され、1つはパリティであり1つは制御
である。これらのデータは、クロック信号の立上りと立下りの両方の線上に配置
される。データはクロック遷移における信号線上に配置されるので、信号は、受
信端でまたはクロック信号の中心の至近で読むべきである。これにより、どんな
オーバーシュートも、他のどんな信号遅延または異常も解決することができる。
両方のクロック信号遷移における信号線上にデータがロードされるので、クロッ
ク・エッジとバス上に配置されたデータとの間のスキューが最小限に抑えられた
対称クロックを有することがクリティカルである。この回路は、クロック信号の
両方の位相の中心を監視および発見するフィードバック機構を提供し、さらに、
チップを介してバスの継続の上に送出されつつある信号に対称クロックを提供す
る。
The 10 signals are composed of 8 data, one is parity and one is control. These data are arranged on both the rising and falling lines of the clock signal. Since the data is placed on the signal line at the clock transitions, the signal should be read at the receiving end or close to the center of the clock signal. This allows any overshoot and any other signal delays or anomalies to be resolved.
Since the data is loaded on the signal line at both clock signal transitions, it is critical to have a symmetrical clock with minimal skew between the clock edge and the data located on the bus. This circuit provides a feedback mechanism to monitor and find the center of both phases of the clock signal, and
It provides a symmetric clock for the signal being sent over the continuation of the bus through the chip.

【0039】 図9に、各方向に10本がグループになった20本の信号線と各グループにつ
き1つのクロックとを有するMOM1およびMOM2として示す2つのサブシス
テム間の基本的な信号フローを図示する。図10に、22本の線のそれぞれの差
動特徴を示す。当技術分野で周知の差動ドライバおよびレシーバが、信号忠実度
を最大限にしてリンギングを最小限に抑えるために、それらに特徴的なインピー
ダンスで伝送回線を適切に終端する。他の実施形態で有利なように、ドライブ側
に実装する手法など他の終端技術を使用することもできる。
FIG. 9 illustrates the basic signal flow between two subsystems shown as MOM 1 and MOM 2 with 20 signal lines in groups of 10 in each direction and one clock for each group. To do. FIG. 10 shows the differential characteristics of each of the 22 lines. Differential drivers and receivers well known in the art properly terminate transmission lines with impedances characteristic of them to maximize signal fidelity and minimize ringing. Other termination techniques may be used, such as a drive-side implementation, as may be advantageous in other embodiments.

【0040】 図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は、以上のことを単純化した
タイミング図である。
FIG. 11 is a schematic of a circuit for outputting one of the ten data bits from one of the MOMs. This circuit is essentially duplicated for the other data bits. This circuit implementation maximizes clock symmetry and minimizes skew. A data 462 is placed on output 466 and B data 4
64 follows. The A data is latched into flop 468 and presented in a logical array. Consider that the previous B data remains in latch 472 and is input to logic array 460. The logic array is configured to load a signal into latch 474, which provides an A signal at the output of gate 466 when "exclusively ORed" with the signal remaining in latch 476. . Then, on a clock edge, a similar operation provides a B data signal at the output, which B data 464 is latched at 472 and "exclusive OR'ed with the previous signal in latch 474. Therefore, the “exclusive OR” of the data in the latch 476 is the “exclusive OR” 4
It will provide the B signal to the output of 66. FIG. 12 is a timing diagram that simplifies the above.

【0041】 図12Aに、バス・クロックと、MOM1と2の間のバス上にある10本のデ
ータ線との複合タイミング・チャートを示す。図12Aは、クロック信号の各エ
ッジの上における8つの連続したバイト(加えてパリティおよび制御)の転送を
示している。
FIG. 12A shows a composite timing chart of the bus clock and the 10 data lines on the bus between MOM 1 and 2. FIG. 12A shows the transfer of eight consecutive bytes (plus parity and control) on each edge of the clock signal.

【0042】 信号が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遅延信号を用
いて上に述べたのと同に方式で達成されたものである。この実施形態では、ある
遅延クロックがデータをラッチしている間に、他の遅延クロックがいくらか後で
使用されるように中心合わせされる。
When the signal is received at the MOM or QM, FIG. 13 shows the circuit of the MOM used to provide a delayed clock with an edge at the center of some phase of the receive clock. Another similar circuit is used to provide a delayed clock with an edge at the center of another phase of the received clock. These centered clocks are used to latch the data during the receive MOM and serve as a reference to the symmetrical clock used to send the signal out of the MOM. The reception clock 80 becomes the data input to the latch 482 and the latch 484. Delayed clock DLYA (a delayed version of the input clock) latches clock signal 480 into latch 482, the output of latch 482 is SAMPLE CLK A, and delayed clock DLYB latches clock signal 480 into latch 484, which Output SAMPLE C
With LKB. DLYA and DLYB are delayed by the control logic by a programmable amount. Both of these SAMPLE CLKs are fed back to the control logic array 90 via circuitry designed to synchronize the signals.
In operation, the control logic can program when DLYA occurs. In this way, DLYA can latch the clock 480 signal when low and the control logic can determine when low by the SAMPLE CLK A signal. The control logic continues to set different delays until the clock 480 signal goes high. Similarly, the control logic continues to set different delays until the clock signal returns low. As before, the control logic is SAMPLE C
This condition is determined by monitoring the LKA signal. Referring to FIG. 13A,
When the control logic finds the first rising edge 480 ′ and the falling edge 480 ″ of the clock signal 480, the control logic “knows” the DLYA rising edge 486 and can set the center of the positive phase of the clock 480. This DLYA rising signal effectively becomes the rising 486 'used to latch the data on the next consecutive positive phase of clock 480. During centering of the DLYA signal, time 48 in FIG. 13A.
The actual data received at 6 is latched by the signal DLYB of FIG. 13 previously centered on the positive phase of clock 480. Pre-centering of DLYB was accomplished in the same manner as described above with the SAMPLE CLK B feedback signal and the DLYB delay signal. In this embodiment, one delay clock is latching data while another delay clock is centered for some later use.

【0043】 図13の回路は、複製されて、反対の位相上のデータをラッチするために入力
クロック信号の負の位相の中心が正確に測定される。図13は、受信クロックの
負の位相の中心に正確にDLYC立上り489を示している。前述のように、他
方のクロック(図示していないDLYD)がデータをラッチしている間に、DL
YCクロックがクロック480のある負の位相の間に中心合わせされ、DLYC
クロックがデータをラッチする間に、DLYDが中心合わせされる。
The circuit of FIG. 13 is duplicated to accurately measure the center of the negative phase of the input clock signal to latch the data on the opposite phase. FIG. 13 shows the DLYC rising 489 exactly at the center of the negative phase of the receive clock. As described above, while the other clock (DLYD (not shown)) is latching data, DL
The YC clock is centered during some negative phase of clock 480 and the DLYC
DLYD is centered while the clock latches the data.

【0044】 図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ナノ秒までにわた
る場合があることが予想される。
FIG. 14 shows each part of the delay circuit. The IN signal 494 is delayed by some gate 495 and input to the "and" gate 466. If the control 1 signal is a logic signal, it crosses 96 and is output via the “or” structure 498 and 3
The output signal is delayed by one gate delay, 495, 496, 498. This delay is considered as one delay unit. Control 1 signal is logic "0"
And the control 2 signal is a logic "1", the IN signal is applied to the gates 495, 495.
Move through'496 ', 498', 498. This path is longer than two gates and the IN signal is considered to have gone through two single unit delay circuits. Each signal delay unit adds two gate delays. If the control logic allows the IN signal to reach the three gates 500 and the control X signal is a logic signal, the IN signal will have four gates, namely three gates 500 and 504.
(The gate 502 is a common path duplicated in each delay circuit and disabled in the previous delay circuit). This circuit adds four gate delays to form two unit delays. A four unit delay (not shown) would replace three gates 500 with seven gates,
Therefore, adding 8 gate delays or 4 unit delay increments. In this preferred embodiment, there are 32 single unit delays, 16 2 unit delays and 16 4 unit delays. The configuration in this preferred embodiment allows for an arithmetic progression of delays up to a total of 128 unit delays that can be selected. In other embodiments, other delay circuit configurations may be selected and other known delay circuits may be used to advantage. This preferred embodiment provides a single delay of approximately 0.15 nanoseconds for the expected manufacturing process used to build the circuit, and for expected temperature and supply voltage operation. It is expected that one unit delay variation can range from 0.08 to 0.3 nanoseconds, depending on the parameters mentioned above.

【0045】 図15(表1)は、この好ましい実施形態での制御ビットの使用法を示す表で
ある。ビットはフレーミングに使用される。図12Aのタイミング図では、e0
〜e7でマークされた各クロック遷移で8バイトが転送される。表1は、偶数遷
移、e0、e2、e4、およびe6に関する制御ビットの値を示すものである。
これらの組合せが、一番右の列に示された許容機能を示す。各偶数遷移で制御ビ
ットがゼロの場合、バスはアイドル状態である。行510に示されたいずれの組
合せも、データ・ライン上にあるデータが有効フレームであることを表示するも
のである。具体的に言えば、データの有効フレームでは、e6時間の値が常にゼ
ロでありe0時間の値が常に1であるため、システムは制御ビットのゼロから1
の時間シーケンスを探す。e0では1が想定され、行510に示された組合せが
存在すれば、このデータのフレーミングは8バイトの有効セットを示す。
FIG. 15 (Table 1) is a table showing the usage of control bits in this preferred embodiment. Bits are used for framing. In the timing diagram of FIG. 12A, e0
8 bytes are transferred at each clock transition marked ~ e7. Table 1 shows the values of the control bits for even transitions, e0, e2, e4, and e6.
These combinations represent the allowed functions shown in the rightmost column. If the control bit is zero on each even transition, the bus is idle. Any combination shown in row 510 indicates that the data on the data line is a valid frame. Specifically, in a valid frame of data, the value of the e6 time is always zero and the value of the e0 time is always 1, so that the system has zero to one control bits.
Find the time sequence of. For e0 a 1 is assumed, and if the combination shown in row 510 is present, the framing of this data indicates a valid set of 8 bytes.

【0046】 8バイト・データの有効フレームにエイリアシングが発生することのないよう
に、行510の値が選択される。有効な制御ビット・シーケンスの組合せ、すな
わち図15の行510には、必ずゼロの次に1があり、有効フレーム内にそれ以
外のゼロ/1パターンはない。図16では、偶数クロック遷移での制御ビット値
のパターンが、フレーム512を無効として示しているが、これは、フレーム5
12のe2およびe4に、別のゼロ/1パターンがあるからである。ただし、フ
レーム514はフレーム516と同様に有効である。実際には、制御ビットの値
が各受信クロック位相で測定され、クロック位相で分けられたゼロから1への遷
移が監視される。このような遷移が発生した場合、1はe0時間スロット内にあ
るものとして扱われ、フレームの有効性の監視は、その相対的タイミングに基づ
くものである。
The values in row 510 are selected so that aliasing does not occur in a valid frame of 8-byte data. There are always zeros followed by ones in the valid control bit sequence combinations, row 510 of FIG. 15, and no other zero / 1 pattern in the valid frame. In FIG. 16, the pattern of control bit values on the even clock transitions shows frame 512 as invalid, but this
This is because there is another zero / 1 pattern at 12 e2 and e4. However, the frame 514 is as effective as the frame 516. In practice, the value of the control bit is measured at each receive clock phase and the zero-to-one transitions separated by the clock phase are monitored. If such a transition occurs, a 1 is treated as being in the e0 time slot and the monitoring of the validity of the frame is based on its relative timing.

【0047】 MOMチップからQMへのデータ伝送は、好ましい実施形態では、トークン・
リングによって調停される。図1のシステム構成/概略図を再度参照すると、ト
ークン・リング調停パス61が、MOM 1とMOM 2との間に示されている
。トークン・リングとは、入力トークン信号と出力トークン信号との間に論理的
な相違が存在する場合、チップがトークンを有するループ状の信号のことである
。図17では、チップ内に有効な反転がないため、パス内にインバータがあり、
初期設定時に1つのチップ、この場合はMOM 1がトークンを得て、バスを制
御することが保証される。チップがトークンを得ると、バスを介して独自のデー
タを送信することが可能であるが、チップがトークンを得ていないと、トークン
を待たなければならず、その間他のデータは単にチップを介して渡される。チッ
プがトークンを得ると、そのチップによって送信される必要のあるすべてのデー
タが送信された後に、トークンが解放される。MOM 1がトークンを得た場合
、MOM 1が出力信号61の状態を変えることによって、トークンがMOM
2に渡される。その後、MOM 2がトークンを得る。
Data transfer from the MOM chip to the QM is in the preferred embodiment a token
Arbitrated by the ring. Referring again to the system configuration / schematic diagram of FIG. 1, a token ring arbitration path 61 is shown between MOM 1 and MOM 2. A token ring is a looped signal in which the chip has a token when there is a logical difference between the input token signal and the output token signal. In Figure 17, there is an inverter in the path because there is no valid inversion in the chip,
At initialization, one chip, in this case MOM 1, is guaranteed to get the token and control the bus. Once the chip gets the token, it is possible to send its own data over the bus, but if the chip does not get the token, it has to wait for the token, while other data simply passes through the chip. Will be handed over. When the chip gets the token, the token is released after all the data that needs to be sent by the chip has been sent. When MOM 1 gets the token, MOM 1 changes the state of the output signal 61 to cause the token to MOM.
Passed to 2. Then MOM 2 gets the token.

【0048】 このトークン・パッシングは、1つのデバイスの単一トークン出力信号と、次
のデバイスの単一トークン入力信号とを接続することによって、複数のデバイス
へと延長することができる。最終デバイスのトークン出力信号が反転され、その
後、トークン・パッシング・チェーン内の最初のデバイスに送られる。
This token passing can be extended to multiple devices by connecting the single token output signal of one device and the single token input signal of the next device. The token output signal of the final device is inverted and then sent to the first device in the token passing chain.

【0049】 エッジでトークン・パッシングを実施するか、または情報の状態を変えること
で、異なるクロック・ドメイン間での同期化が容易になる。エッジ・ベースの情
報パッシングにより、トークンが認識され、トークン・パッシング・チェーン内
の次のデバイスに渡されるまで、そのトークンは自動的に前のデバイスで有効な
ままとなる。
Implementing token passing or changing the state of the information at the edge facilitates synchronization between different clock domains. Edge-based information passing automatically keeps the token valid on the previous device until the token is recognized and passed to the next device in the token passing chain.

【0050】 4.データのフロー・イン MOM 1チップ10は、8ポートそれぞれについて、2セルまたは256バ
イトまでの受信データを格納またはバッファリングすることができる。前述の「
ヘッダのカノニカライゼーション(Header Canonicalizat
ion)」の項で述べたように、MOMチップが、受信したフレームまたはパケ
ットからレイヤ2およびレイヤ3のヘッダを読み取り、28バイトの最初のカノ
ニカル・ヘッダを生成(この項で詳細に述べる)した後、ネットワークのレイヤ
3ヘッダおよび第1セルのアプリケーション・レイヤ・ヘッダが処理される。
4. Data Flow In The MOM 1 chip 10 can store or buffer up to 2 cells or up to 256 bytes of received data for each of 8 ports. The above
Header Canonicalization (Header Canonicalizat
section), the MOM chip read the Layer 2 and Layer 3 headers from the received frame or packet and generated the first 28-byte canonical header (detailed in this section). Afterwards, the layer 3 header of the network and the application layer header of the first cell are processed.

【0051】 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内に配置される。
The MOM 10 (or 20) transmits cells to the QM 30 on the high speed MAC bus 60 when the MOM holds the token of the token ring arbitration path described above. Arbitration is sequential among the eight ports of MOM. Although the QM receives the cells and stores them in the dynamic RAMs 35 and 36, in the preferred embodiment, RAMBUS® with two fast access DRAM banks as described in Section 9 below. DRAM
Is. The information that describes the cells received and stored is called the "descriptor" and is the SRA.
It is located at M 32. The canonical header is modified to include a time stamp. The modified canonical header and the remaining header information in the first cell in the packet is forwarded to the header out FIFO for transfer to the RE 40.
It is arranged in 309.

【0052】 フレームのセグメント化およびアービトレーション・スキームにより、ある回
路上で受け取られたパケットの後続セルは、他の回路上で受け取られた他のパケ
ットのセルを使ってインターリーブすることができる。QMがパケットのセルの
順序を追跡できるような情報を提供するために、MOMは、パケットの第1セル
の最初のカノニカル・ヘッダの第1のオクトバイトに対応して、同じパケットの
後続セルに追加された8バイト(オクトバイト)の「バースト」ヘッダを書き込
む(最高17オクトバイトになる)。
Frame segmentation and arbitration schemes allow subsequent cells of a packet received on one circuit to be interleaved with cells of another packet received on another circuit. In order to provide information so that the QM can track the cell order of the packet, the MOM is added to subsequent cells of the same packet, corresponding to the first octobyte of the first canonical header of the first cell of the packet. Write the additional 8 byte (octbyte) "burst" header (up to 17 octbytes).

【0053】 追加情報が制御信号回線または高速MACバスのビット上で送信されることに
より、セルの境界およびセル内に格納された情報のタイプが識別可能になる。図
21は、オクトバイトのグループでデータを描くための、制御ビットの使用法を
示す図である。8つの連続するクロック位相上にある制御ビット700が、8バ
イトでフレーミングし、データを区別する。制御ビットの値は、図22の表で、
e0からe7で示されている。
Additional information is transmitted on the control signaling line or bits of the high speed MAC bus to allow identification of cell boundaries and the type of information stored within the cell. FIG. 21 is a diagram showing the use of control bits to draw data in groups of octobytes. Control bits 700 on eight consecutive clock phases, framing on eight bytes, distinguish the data. The control bit values are shown in the table of FIG.
It is indicated by e0 to e7.

【0054】 図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はあり得ないことを示す。
In FIG. 22, even control bits e0, e2, e4, and e6 are encoded as follows. E0 to indicate that an 8-bit valid group has been received
Is always 1 and e6 is always zero. In order to avoid aliasing of this encoding, the value indicating the valid group (for even control bits e0 to e6) is
Only 1000, 1100, and 1110. Bit e2 indicates the start of the cell and e4 indicates the start of the packet. FIG. 23 shows a possible sequence of even control bits where group 702 is not a valid group but groups 704, 708 and 710 are valid. A circled zero / one 708 indicates that the start of a valid group is only zero first, followed immediately by one, and the following two bits (e2 and e4) cannot have another zero / 1. Indicates that.

【0055】 さらに図22を参照すると、奇数の制御ビットは、以下のように符号化される
。e1は伝送クレジット(以下の考察を参照)が存在することを示し、e3(コ
ード・ビット0)およびe5(コード・ビット1)は2ビットのエンド・コード
を形成し、e7(ショート・ワード)は、オクトバイトが8つの有意バイトより
も少ないバイトを含むことを示す。ショート・ワードは、セルの開始およびセル
の終了時に使用することができる。
Still referring to FIG. 22, the odd control bits are encoded as follows. e1 indicates that there is a transmission credit (see discussion below), e3 (code bit 0) and e5 (code bit 1) form a 2-bit end code, and e7 (short word). Indicates that the octobyte contains less than eight significant bytes. Short words can be used at the beginning and end of cells.

【0056】 図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バイト長
である必要はないことに留意されたい。
FIG. 24 is a diagram showing some of the packet types that may occur. The first cell 720 can have up to 16 octbytes, or 128 bytes. The even control bits 722 for the first 32-bit word (octobyte) are 1110. As shown in FIG. 22, this code means that this octobyte is part of the valid first cell of the packet. A valid cell requires e0 to be equal to "1", e2 equal to "1" means this 8-byte transfer is the start of a cell, and e4 equals "1" means this. We know that e6 must be zero for a valid cell, meaning the start of a packet. For cell 720, the odd control bits are all zeros, with the exception that only bit e5 of the last 8-byte transfer is "1". FIG. 25 is a diagram showing encoding of control bits e1, e3, e5, and e7, that is, odd control bits. In the case of the cell 720, e5 is “1” and e3 is “
0 ", which is decoded" end of packet ". Therefore, cell 7
20 is one cell packet (SEP). Note that this cell need not be all 128 bytes long.

【0057】 セル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が含まれることになる。
Cell 724 is a valid starting cell for the packet, where odd control bit 726 is
E3 is set to mean "end of cell" rather than "end of packet", so it is a SOP cell. The next cell 728 is the second cell (MOP) of the packet and all cells following the SOP contain an octobyte burst header 330 added to the beginning of each cell and have up to 17 octobytes. It will be. For this second cell, the last octbyte e3 is set to mean that this cell is the end of the cell, not the end of the packet. Cell 734 has e5 in the last 8-byte group, which is set to mean that this cell is the end of packet (EOP), and in this case also e7. Bit e7 means that the last group of eight was a "short word" (as represented in Figure 25) rather than being full, and when this occurs, the last byte 338 contains the last The number of valid bytes in the 8-byte group is stored. For example, if the last group had only three significant bytes, then the last byte (occurring at the same time as the e7 control bit) would contain 0011, or decimal 3.

【0058】 MOMチップからQMへのセルの伝送に関して、第1セルの開始時に、第1の
オクトバイトには、タイム・スタンプを含めるようにQMによって修正されたカ
ノニカル・ヘッダの一部が含まれる。カノニカル・ヘッダ全体が、他のヘッダと
共にDRAM内に格納され、このようなフレーム・データを128バイトの残り
部分に収めることができる。
For the transmission of cells from the MOM chip to the QM, at the beginning of the first cell, the first octobyte contains a part of the canonical header modified by the QM to include a time stamp. . The entire canonical header, along with other headers, is stored in DRAM, allowing such frame data to fit in the remaining 128 bytes.

【0059】 図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の最後のバ
イトは、セルの長さをバイト数で表す。
FIG. 26 is a diagram showing the transmission of the first octobyte of the canonical header by QM. As can be seen, the first 4 bytes 740 written with MOM, Ckt ID, DL Info, and NL Info are transferred by QM. The second 4 bytes 742 containing the cell information are timed by the QM.
Overwritten with stamp 748. (The canonical header is sent to the RE and is only processed in the packet policy and is not concerned with cell information.) The first byte 744 of cell information byte 742 contains the number of transmission credits reported by the QM. Included (below "Transmission Credit Scheme (Transmi
session credit scheme) ”). The second byte contains the credit flag, bit 7 is the SYNCH flag (for initialization) and bit 6 is the "parent" flag (described in Section 8 below). The third byte is
Cell information having the meaning shown in FIG. 27 is provided. Each bit was selected from bit 7 a cell error, bit 6 a packet timeout, bit 5 a packet from the bad packet queue, bit 4 from a watch queue and bits 3 to 0 from the control described above. It means to indicate a bit. Bit 3 is the packet end bit, bit 2 is the packet start bit, bit 1 is the data cell bit, and bit 0 is the transmission credit bit. The last byte of cell information byte 742 represents the length of the cell in bytes.

【0060】 カノニカル・ヘッダなしのセルを追跡するのに使用されるオクトバイト長さの
バースト・ヘッダが、図28に示される。このフィールドは、DL Infoお
よびNL Info(SOPだけを対象とするREによって使用される)が、セ
ル・シーケンス番号752および未使用スペースに置き換えられている点を除い
て、最初のカノニカル・ヘッダの第1のオクトバイトのフィールドと同じである
。Ckt Id 750は、セル(より具体的に言えば、その代理であるバッフ
ァ記述子)を、同じCkt Idを有し、(セルが廃棄されていない限り)逐次
シーケンス番号を有しているはずの先行セルと一致させるために使用される。Q
Mによって、セルが先行セルと(以下で説明するように)いったんリンクされ、
クレジットが入力され、他方のセル情報に関するアクションが実行されると、バ
ースト・ヘッダは不要となり、ドロップされる。(セルは、パリティ情報がエラ
ーを検出すると廃棄される場合がある。このような場合には、MOMチップへの
信号送信によって、この時点でセルが、さらに最終的にパケットが打ち切られる
。)伝送段階でQMによって、セル用の新しいバースト・ヘッダが作成され、こ
こでCKT IDはパケットが送信される場所を示す。
An octobyte long burst header used to track cells without canonical headers is shown in FIG. This field is the first of the canonical header except that DL Info and NL Info (used by the RE intended for SOP only) have been replaced by cell sequence number 752 and unused space. This is the same as the field of 1 octbyte. The Ckt Id 750 should have a cell (more specifically, its surrogate buffer descriptor) having the same Ckt Id and a sequential sequence number (unless the cell has been discarded). Used to match the preceding cell. Q
M links the cell once (as described below) with the preceding cell,
When the credit is entered and the action on the other cell information is performed, the burst header is no longer needed and is dropped. (A cell may be discarded when the parity information detects an error. In such a case, signaling to the MOM chip causes the cell to be dropped at this point, and eventually the packet to be dropped.) Transmission At step QM creates a new burst header for the cell, where the CKT ID indicates where the packet will be sent.

【0061】 5.QMバッファおよびキューの構造と操作 QMによってMACバス上に受け取ったデータ・セルは、以下のセクション9
で説明する高速アクセス操作に従ってRAMBUS(登録商標)DRAMの、ア
ドレス可能な128バイトのデータ・バッファに、正規のヘッダはそのままだが
タイムスタンプを含むように書き直され、またバースト・ヘッダのオクトバイト
をドロップして、個別に記憶される。アドレス00000はセル情報を含まず、
ヌル・ポインタに対応する。
5. QM Buffer and Queue Structure and Operation The data cells received by the QM on the MAC bus are described in Section 9 below.
In accordance with the high-speed access operation described in, a RAMBUS (registered trademark) DRAM addressable 128-byte data buffer is rewritten to include a time stamp but with a regular header, and an octobyte in a burst header is dropped. And are stored individually. Address 00000 does not include cell information,
Corresponds to a null pointer.

【0062】 MACバス上に受け取り、データ・バッファに記憶されたすべてのセルは、例
外として少数の専用キュー以外に使用される記述子/ポインタ方式を使用して単
一の仮想受信キューに編成される。この方式は、1ギガバイトまでのデータに対
応する受信キューを使用可能にする。
All cells received on the MAC bus and stored in the data buffer are organized into a single virtual receive queue using the descriptor / pointer scheme, with the exception of a few dedicated queues. It This scheme enables a receive queue for data up to 1 gigabyte.

【0063】 この記述子/ポインタ方式では、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の語にヌル・ポインタを有する。
In this descriptor / pointer scheme, the data buffer “descriptor” in the QM SRAM contains two 4-byte words that act as a proxy for the actual data stored in that buffer and pass the logical packet Linked to form. Therefore, the descriptor assigned to the data buffer along with the data is stored in the first word field indicating the address of the buffer in the DRAM in which the associated cell is stored and in the SRAM associated with the next cell in the same packet. A second word field containing a pointer to another descriptor 802. As shown in FIG. 29, a complete multi-cell packet has a second word of SOP buffer descriptor 801 pointing to MOP buffer descriptor 802 and a second word of descriptor 802 pointing to EOP buffer descriptor 803.
With the second word of descriptor 803 associated with the last cell of the packet,
Including a pointer to the descriptor 801 associated with the first cell of the packet,
It is described by the descriptor "link-list". The incomplete packet has a null pointer in the second word of descriptor 805, as shown in FIG. 29B.

【0064】 本発明では、キューは、キューの第1のパケットの第1のセルと、キューの次
のパケットの第1のセルに関連付けられた記述子の第1の語を指すフィールドと
に関連付けられた記述子の第1の語を指すキュー・ヘッド・ポインタによって形
成されており、キューの最終パケットまでこのように反復的にリンクされる。こ
のキューは図30に示すようにそれを指すキュー・テール・ポインタを有し、受
信キュー・ヘッド・ポインタはキューの第1のパケットの第1のセルに関連付け
られた指名子812を指し、テール811は受信キューの最終パケットの第1の
セルに関連付けられた指名子815を指す(記述子は、それぞれDRAM35ま
たは36の128バイトのバッファにマッピングする)。図示するように、キュ
ーに入れられたパラメータは必ずしも完全である必要はないが、このパケット志
向の実施例では、MACバスから受信したデータ・セルは、キューの最後ではな
く、バースト・ヘッダのRcv Cktによって識別されるそのパケットに「付
加」される。
In the present invention, the queue is associated with the first cell of the first packet of the queue and the field pointing to the first word of the descriptor associated with the first cell of the next packet of the queue. Formed by the queue head pointer pointing to the first word of the assigned descriptor, and thus iteratively linked to the last packet of the queue. This queue has a queue tail pointer to it, as shown in FIG. 30, with the receive queue head pointer pointing to the designator 812 associated with the first cell of the first packet of the queue, and the tail 811 points to the designator 815 associated with the first cell of the last packet of the receive queue (the descriptor maps to a 128-byte buffer in DRAM 35 or 36, respectively). As shown, the queued parameters do not necessarily have to be complete, but in this packet-oriented embodiment, the data cells received from the MAC bus are not at the end of the queue, but at the Rcv of the burst header. It is "appended" to that packet identified by Ckt.

【0065】 受信動作において、QM Descriptor SRAMは、バッファ記述
子テーブルと受信コンテキスト(または回路)テーブルの中に編成される。この
バッファ・テーブルすなわちリストは2つの4バイトの語を含む記述子を有し、
語0はRAMBUS(登録商標)DRAMのデータ・バッファのバッファ・アド
レスを含み(したがってこのバッファ・テーブル項目は暗黙バッファである)、
語1はそのバッファ・テーブルの別の記述子へのポインタを含む。初期化の際、
このバッファ・テーブルは「フリー・バッファ・テーブル」であり、そこでは第
1のフリー・バッファの指名子をヘッド・ポインタによってQMハードウェアが
指し、その第2の語が次のフリー・バッファ記述子を指し、第2の語のヌル・タ
ーミネータを含む最終フリー・バッファ指名子までこのように反復的にリンクさ
れる。
In a receive operation, the QM Descriptor SRAM is organized into a buffer descriptor table and a receive context (or circuit) table. This buffer table or list has a descriptor containing two 4-byte words,
The word 0 contains the buffer address of the data buffer of the RAMBUS® DRAM (hence this buffer table entry is an implicit buffer),
Word 1 contains a pointer to another descriptor in the buffer table. When initializing,
This buffer table is the "free buffer table", in which the head pointer points to the designator of the first free buffer by the QM hardware and its second word is the next free buffer descriptor. , And is iteratively linked to the final free buffer designator that contains the null terminator of the second word.

【0066】 データ・セルがMACバスからQMに提示される際、QMはその回路IDをそ
の正規のヘッダまたはバースト・ヘッダから抽出し、その回路の活動状況に関す
る情報をもたらす受信コンテキスト(回路)テーブルの項目に対してチェックす
る。SOPが検出されると、受信コンテキスト・テーブルの項目(8バイト・回
路)が作成され、ポインタ(現行バッファ)が次のフリー・バッファ識別子を指
すように入力される。このセル・データは関連するRAMBUS(登録商標)D
RAMバッファに書き込まれる。フリー・バッファ・リスト・ポインタは、「現
行バッファ」が割り当てられた後、次のフリー・バッファ指名子に移動される。
When a data cell is presented to the QM from the MAC bus, the QM extracts its circuit ID from its regular header or burst header and provides a receive context (circuit) table that provides information about the activity of that circuit. Check for items. When a SOP is detected, an entry (8 bytes circuit) in the receive context table is created and a pointer (current buffer) is entered to point to the next free buffer identifier. This cell data is the associated RAMBUS® D
Written to RAM buffer. The free buffer list pointer is moved to the next free buffer designator after the "current buffer" has been allocated.

【0067】 受信したセルがSEPでない場合、バッファ指名子の第2の語は次のフリー・
バッファ指名子を指し、関連するバッファを事前割当てし、次のバッファ項目の
第2の語に「0」が書き込まれる。
If the received cell is not a SEP, the second word of the buffer designator is the next free
Points to the buffer designator, preallocates the associated buffer, and writes a "0" in the second word of the next buffer entry.

【0068】 受信したセルがSEPまたはEOPである場合、このバッファ指名子の第2の
語はそのパケットの第1のバッファ指名子を指すようにセットされ、結果として
生じるパケットを定義するリンク・リストが受信コンテキスト・テーブルからリ
ンク解除される。
If the received cell is a SEP or EOP, the second word of this buffer designator is set to point to the first buffer designator of that packet, and a linked list defining the resulting packet. Is unlinked from the receive context table.

【0069】 従って、MACバス上にインターリーブされる場合がある同一回路idと共に
受信されたセルは、事実上、リンク・リストによってパケット内に再構成され、
先導するセルが切断動作で送信されているときでさえその一部は不完全な場合が
ある。後者の場合、図30Bに示すように、受信コンテキスト・テーブル820
の現行バッファは、データ・セルがロードされるべきバッファに対応する次のバ
ッファ記述子833を指し、バッファ記述子833は、パケットの他のセルの記
述子832、822、および821にリンクされている。この記述子の1つ記述
子832は、送信コンテキスト・テーブルの回路項目の現行バッファ821とし
てリンクされている。送信コンテキスト・テーブルの回路項目が経路指定情報を
提供するので、記述子833に関連付けられたバッファにその後に配置されたデ
ータは「行く先を知っている」。このリンク管理システムは、「切断」すなわち
パケットの他の部分をまだ受信中にそのパケットの一部を送信することを可能に
する。
Thus, cells received with the same circuit id, which may be interleaved on the MAC bus, are effectively reassembled into packets by the linked list,
Some of them may be incomplete even when the leading cell is being sent in a disconnect operation. In the latter case, as shown in FIG. 30B, the reception context table 820
Current buffer points to the next buffer descriptor 833 corresponding to the buffer into which the data cell is to be loaded, which is linked to descriptors 832, 822, and 821 of the other cells of the packet. There is. One of this descriptor, descriptor 832, is linked as the current buffer 821 of the circuit entry in the send context table. Since the circuit entry in the send context table provides the routing information, the data subsequently placed in the buffer associated with descriptor 833 is "knowing where to go." This link management system allows "cutting" or sending part of a packet while still receiving the other part of the packet.

【0070】 6.リレー・エンジン処理/フロー・マッチング(FastPath(商標)
) SOPのリンクされた記述子の受信キューはRE40による処理を待つ。SO
Pセル自体は、メモリ空間が使用可能になると、リレー・エンジンによって処理
される16個の128バイトのレジスタの「循環」FIFO394にロードされ
る。これは、SOPセルの処理に続くポインタ・システムによって実施され、そ
のレジスタが一杯になるまで(第2のポインタが図19の受信ポインタに「追い
つく」とき)セルを加え、次いでヘッド・ポインタによって指されたセルの処理
が完了し、ドロップされたときだけ(かつ、受信ポインタが送信ポインタに「後
れを取った」とき)、別のセルを付加する。
6. Relay engine processing / flow matching (FastPath ™)
The SOP's linked descriptor receive queue awaits processing by the RE 40. SO
The P-cell itself is loaded into a "circular" FIFO 394 of 16 128-byte registers processed by the relay engine as memory space becomes available. This is done by the pointer system following the processing of the SOP cell, adding cells until its register is full (when the second pointer "catches up" with the receive pointer in FIG. 19) and then pointing with the head pointer. Another cell is added only when the processed cell is complete and dropped (and when the receive pointer "lags" the send pointer).

【0071】 REの動作は4ステージのパイプラインを中心とする。パイプラインは、特に
高速ハードウェア設計における、長年に亘る当技術分野の用語であり、付随的に
言及する以外は本明細書でこれ以上説明はしない。REのタスクは、記憶されて
いるパケットの再送信を経路指定しスケジュール管理するために、フレーム・フ
ローの最良の転送を行い、それに従って転送情報をQMに提供する方法を決定す
ることである。この4つのステージをここで簡単に説明し、次いでフローを識別
するためのパターン・マッチングを実施するために使用されるハッシュ関数およ
び署名関数のより詳細な説明を続ける。
The operation of RE is centered on a 4-stage pipeline. Pipeline is a term of the art for many years, especially in high speed hardware design, and will not be described further herein except as a concomitant reference. The task of the RE is to make the best transfer of frame flows and to determine how to provide the transfer information to the QM accordingly, in order to route and schedule the retransmissions of stored packets. The four stages are briefly described here, followed by a more detailed description of the hash and signature functions used to perform pattern matching to identify flows.

【0072】 第1のステージは、ヘッダがハッシュ・エンジンによって処理されるのと平行
して、完全なヘッダ情報(SOPセル全体)を「循環」データFIFOに記憶し
、そのパケットが、経路指定情報およびスケジュール管理情報が既にそのために
開発されている既存のフローの一部であるかどうかをチェックするためのパター
ン・マッチング関数を実施するためにハッシュ値および署名値を計算する。
The first stage stores the complete header information (entire SOP cells) in a “circular” data FIFO, in parallel with the header being processed by the hash engine, and the packet is routed to the routing information. And compute a hash value and a signature value to implement a pattern matching function to check if the schedule management information is part of an existing flow already developed for it.

【0073】 第2のステージは、Hash Table L1 391にアドレスするため
に使用されるHash値を受信する。このテーブルで有効な項目が見つかると、
L1 Tableからの署名が、Hashedデータの計算された署名と比較さ
れる。一致した場合、Hash TableのFlow Tag(図示せず)が
、パイプライン処理されるFE/REハードウェアの次のステージに有効なヒッ
トが見つかったという指示と共に提示される。Flow Tagは、そのフロー
に関する情報が記憶されているメモリのテーブルへの24ビットのインデックス
である。この情報には、本明細書各所で記載するように、他のフロー関連情報と
共にパケットを転送する1つまたは複数の回路が含まれる。
The second stage receives the Hash value used to address the Hash Table L1 391. If a valid entry is found in this table,
The signature from the L1 Table is compared to the calculated signature of the Hashed data. If there is a match, a Hash Table Flow Tag (not shown) is presented with an indication that a valid hit was found in the next stage of the pipelined FE / RE hardware. The Flow Tag is a 24-bit index into a table in memory where information about that flow is stored. This information includes one or more circuits that forward the packet along with other flow-related information, as described elsewhere herein.

【0074】 有効Flow Tagポインタ(指された内容をリンクする)は、この好まし
い実施形態で説明されるパターン・マッチング関数の好適な結果である。
A valid Flow Tag pointer (which links the content pointed to) is the preferred result of the pattern matching function described in this preferred embodiment.

【0075】 L1でマッチが見つからない場合、外部L2Table45上でサーチが実施
される。前記のように署名が比較され、L2テーブルのFlow Tagが次の
ステージに提示される。次のサーチを容易にするために、L2項目はL1テーブ
ルに書き込まれる。
If no match is found in L1, then a search is performed on the external L2Table45. The signatures are compared as described above and the Flow Tag of the L2 table is presented to the next stage. The L2 entry is written to the L1 table to facilitate the next search.

【0076】 L1とL2のどちらにもヒットがない場合、計算されたハッシュおよび署名は
、ヒットが発見されなかったという指示と共に次のステージに提示される。
If there is no hit in either L1 or L2, the calculated hash and signature are submitted to the next stage with an indication that no hit was found.

【0077】 第3のステージは前記情報を受信し、ヘッダのルックアップが成功したかどう
かを判定する。成功した場合、そのヘッダ・データは、適用されるプロトコル規
則に従って更新され、そのパケットはフロー情報に従って転送される。しかし、
そのヘッダがTCP(レイヤ4転送制御プロトコル)SYNパケットまたは別の
プロトコルの接続パケットの相当する開始であることが判明すると、またはその
フレームが知られている接続フローの一部でない場合、そのパケットはそのフロ
ー情報に従って転送されない。それらの場合、REは、完全な事前ハッシュされ
たヘッダを復号化することによってそのフロー・フレームを経路指定するように
働く。このプロセスにおいて、有用なフロー情報を作成し、ステージ1でハード
ウェアによって得られたハッシュ値および署名値を使用してL2 Hash T
ableにそれを指すタグを挿入する。
The third stage receives said information and determines if the header lookup was successful. If successful, the header data is updated according to the applicable protocol rules and the packet is forwarded according to the flow information. But,
If the header is found to be a TCP (Layer 4 Transfer Control Protocol) SYN packet or the corresponding start of a connection packet of another protocol, or if the frame is not part of a known connection flow, the packet is It is not transferred according to the flow information. In those cases, the RE acts to route the flow frame by decrypting the complete pre-hashed header. In this process, it creates useful flow information and uses the hash and signature values obtained by the hardware in stage 1 to generate the L2 Hash T
Insert a tag pointing to it in the table.

【0078】 このパイプラインの第4のステージでは、Flow Tagによって供給され
る情報または、REの完全な事前ハッシュされたヘッダの復号化によって供給さ
れる経路指定情報に従って、ヘッダは、指定のキューに送信するためにキューに
入れられるようにQMに戻される。そのフローの後続パケットを転送するための
情報を統合するために、REは、Layer2およびLayer3のヘッダに加
えてアプリケーション層データを検査する。
In the fourth stage of this pipeline, according to the information provided by the Flow Tag or the routing information provided by decoding the full pre-hashed header of the RE, the header is put into a designated queue. Returned to QM to be queued for transmission. To consolidate the information for forwarding subsequent packets of that flow, the RE inspects the application layer data in addition to the Layer2 and Layer3 headers.

【0079】 さらに詳細には、図4を参照すると、パケットが受信されたとき、QM30は
(NLフィールドから判定されるような)128バイトの長さである場合がある
有用なヘッダを、そのヘッダ・データをREのデュアルポート循環バッファにロ
ードすることによって、FE/REに提供する。図4を参照すると、ヘッダ・デ
ータはQM100からMUXIn 102送信され、RE40のFIFOスタッ
クDFに配置される。REは、128ビット項目の既に記憶されている順序付け
られたデータ・アレイにインデックスするためにネットワーク・リンク・バイト
を使用する。ここでは、各ビットは受信した完全なヘッダ・データ・バイトの1
つに対応する。1つの1と共にビットに対応するバイトが、ハッシュ関数および
署名関数によって抽出、処理される。バイト・ストリングは、複数の奇数個の4
バイトのストリングを提供するために、終端部がゼロによってパディングされる
。この好ましい実施形態では、128ヘッダ・バイトの64バイトまでをハッシ
ュ/署名動作によって処理することができるが、他の好ましい実施形態を有利に
するためにはこれより少なくてもより多くてもよい。
In more detail, referring to FIG. 4, when a packet is received, the QM 30 provides a useful header that may be 128 bytes long (as determined from the NL field). Provide the FE / RE by loading the data into the RE's dual port circular buffer. Referring to FIG. 4, the header data is transmitted from the QM 100 to the MUXIn 102 and placed in the FIFO stack DF of the RE 40. The RE uses the network link byte to index into the already stored ordered data array of 128-bit items. Here each bit is 1 of the complete header data byte received.
Correspond to one. The bytes corresponding to the bits with a 1 are extracted and processed by the hash and signature functions. The byte string consists of an odd number of 4
The end is padded with zeros to provide a string of bytes. In this preferred embodiment, up to 64 bytes of the 128 header bytes can be processed by the hash / signature operation, but less or more may be advantageous in favor of other preferred embodiments.

【0080】 ハッシュ関数および署名関数は、異なる乗数が使用されることを除いて同一で
ある。しかし、別の好ましい実施形態では、有利にするために、異なる乗数およ
び異なる除数の他の組合わせを使用することも可能である。
The hash function and signature function are the same, except that different multipliers are used. However, in another preferred embodiment, it is also possible to use other combinations of different multipliers and different divisors for the sake of advantage.

【0081】 図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位置をアドレス指定するのに使用される。
Referring to FIG. 4, the Hash Preprocessor 399 inputs a selected byte from 128 bytes of header data. This select byte forms the nth 32 bit word (a multiple of 4 as described above). This 32 bits
The bits in the sequence of words are treated as polynomials in the Galois field, GF [2], a Galois field of 2 (the Galois field is known in the art). In the preferred embodiment, this polynomial is multiplied by a random 32-bit polynomial and divided by a carefully selected 32nd order polynomial, resulting in a 32-bit remainder. The divisors used above are irreducible and primitive (primitive).
e) Selected to be both (irreducible and basic are terms known in the art). The subset of remainder bits is used as the actual index into the hash table. Bits 5 to 0 are addresses assigned to the on-chip L1 cache 391. Bits 16 to 1 are used to address the 64K location in the off-chip L2RAM 45.

【0082】 この好ましい実施形態で使用する除数は、 32 +x +x +x +x x+1 であるが、既約かつ基本であれば他の除数を使用してもよい。The divisor used in this preferred embodiment is x 32 + x 7 + x 5 + x 3 + x 2 + x + 1 , but other divisors may be used as long as they are irreducible and basic.

【0083】 着信フレームのFlow Tagおよび/または宛先を識別するHash T
ableの内容の編成は以下の通りである。
Hash T to identify the Flow Tag and / or the destination of the incoming frame
The organization of the contents of the "able" is as follows.

【0084】 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ルック・アップの有効性をさらに確実
にするために、あいまいでない識別を行えるように事前にハッシュしたヘッダ・
データが記憶される。
Hash Table 1 contains 64 words, each of which is 64 bits, and exists on-chip to optimize the return of values at common occurrences where only a few flows are active. Larger tables can be used. Looking at FIGS. 20A and 20B, in each word, bits 31-24 form a state that indicates a valid entry if bit 31 is true. Bits 0 to 23 form a 24-bit Flow Tag in which information regarding a specific flow is stored. This tag is a pointer that points to information about one or more circuits to which the packet is transferred. Acquiring a Flow Tag is the main task of RE. The Hash Table also includes a 32-bit signature in bits 63-32, which is used to ensure that no collisions have occurred and the result is valid. To further ensure the validity of the Flow Tag lookup, a pre-hashed header to allow unambiguous identification.
The data is stored.

【0085】 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へのポインタにする。
If there is no match in the L1Hash table, the system uses the hashed result bits 16-0 to index into the 64K Hash Table L2. Each position is 64 bits wide. Bit 30 is a Hash Bucket pointer, and when this bit is zero, the bits in the L2 table are organized functionally in the same way as the L1 table. If there is one valid entry in this Hash Address, the system gets the flow tag with L2 bits 0-23 as the index into the flow table. See FIG. 20B. If there is no valid entry in this Hash Address, the valid bit L2 bit 31 is set to zero. If there is more than one entry in this hash address, status word bit 30 is set to 1 and the system
The L2 bits 55 to 36 are used as pointers to Hash Buckets.

【0086】 Hash Bucketは64ビット・ワードのエイリアス・アドレスを8つ
まで保持する。衝突ビット29が1の場合、エイリアス状態はハッシュおよびシ
グニチャ両方の動作について存続し、また有用な情報を得ることができないので
、ハッシュ機構はそれ以上の分解を行わない。この時点で、2つの競合フローは
プロセッサに戻され、ルーティング情報を求めてトライ検索を行う。Hash
Bucket中の8ワードは連続して検索され、この検索を容易にするために、
アドレスはテーブルへの最下位のインデックスから始まって連続している。9つ
以上のエントリがHash Bucketに向けられる場合、当システムは元に
戻り、トライ・ルーチンによりオーバーフローを検索する。トライ検索はコプロ
セッサ390を使用し、ルーティングおよびブリッジング用の大規模トライデー
タベースとして編成されている。
The Hash Bucket holds up to eight 64-bit word alias addresses. If the collision bit 29 is 1, then the aliasing state persists for both hash and signature operations, and no useful information is available, so the hash mechanism does not perform further decomposition. At this point, the two competing flows are returned to the processor to do a trie search for routing information. Hash
The 8 words in the Bucket are searched consecutively, and to facilitate this search,
Addresses are contiguous, starting with the lowest index into the table. If more than eight entries are destined for the Hash Bucket, the system reverts and searches the overflow for a try routine. Trie search uses coprocessor 390 and is organized as a large trie database for routing and bridging.

【0087】 シグニチャおよび/またはハッシュ衝突の発生は監視することができ、それが
過度である場合は、各乗数を変更することができる。このように変更すると、そ
の結果、ネットワーク中で遭遇する所与のアドレス・セットに対してより有効に
ランダム化を行うことができる。
The occurrence of signatures and / or hash collisions can be monitored and, if excessive, each multiplier can be changed. Such changes result in more effective randomization for a given set of addresses encountered in the network.

【0088】 ハッシングおよびシグニチャ・ルーチンの結果はある状況では使用することが
できない。TCP SYNまたはそれと同等の「接続の開始」パケットが到着す
るとき、あるいは接続フローに属さないパケットが見つかった場合、あるいはそ
のパケットが高セキュリティまたは他の特別モードの一部であるときなどに、接
続が開始される時がその例である。このような状況が見つかると、当システムは
トライ検索に戻ることができる。
The results of the hashing and signature routines may not be available in some situations. Connect when a TCP SYN or equivalent "start connection" packet arrives, or if a packet is found that does not belong to the connection flow, or if the packet is part of a high security or other special mode. An example is when is started. When such a situation is found, the system can return to the try search.

【0089】 一般に、フロー中の後続パケットの処理は、上記のようにソフトウェア・パタ
ーン・マッチングを最適化することによって加速される。
Processing of subsequent packets in the flow is generally accelerated by optimizing software pattern matching as described above.

【0090】 REは、アドレッシングとともに転送するのにどのキューにセルを置くべきか
を指定する命令を含む情報を戻す。QMは情報を受け取ってセルを配置するが、
このセルは、送信するリスト上で、受信中であるかまたは受信されたパケットの
内容を形成するリンクされたリストに記憶される。
The RE returns information including instructions that specify in which queue a cell should be placed for transfer with addressing. QM receives the information and places the cell,
This cell is stored in the linked list forming the content of the packet which is being received or has been received on the sending list.

【0091】 7.送信スケジューリング REはQMをプログラミングし、このQMは、種々の回路についての管理され
た優先順位により、16,000,000送信キュー(24ビット)までのQM
記述子SRAMのリンクされたポインタによって仮想的に進展する。
7. Transmission Scheduling RE programs the QM, which can manage up to 16,000,000 transmission queues (24 bits) with controlled priorities for various circuits.
It is virtually evolved by the linked pointer of the descriptor SRAM.

【0092】 送信段階のコアは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」(スタンバイ・スケジューラ回路にのみ使用される)、状
態ビット(アクティブまたはアイドル)、およびスタンバイ・スケジューラ・イ
ンターバルを含む。
The core of the transmit stage is the Transmit Context Table, which is organized by circuits and has four 4 bytes per circuit, as shown in FIG.
There is a word. Word 0 is the credit sync bit, 7 for send credit
It includes bit 812 (no transmission is done if there is no credit to the circuit), a start bit 814 of the packet bit, and 23 bits that specify the next buffer to send (next buffer ID). Word 1 816 contains eight flag bits 818. FIG. 35A shows the meaning of these flag bits. Bit 7 indicates that the packet is a single buffer, bit 6 indicates that the packet is bad due to a CRC error, and the MOM should abort the packet, and bit 5 indicates that the packet is monitored. Dequeued from the queue, indicating that the packet can be offloaded to some other port or background engine for traffic analysis, bit 4 is "multi-owned" and more than one , Bits 3-0 indicate a buffer length of up to 128 bytes in a group of 16 bytes. The remaining 24 bits of word 1 contain the address of the first queue (each circuit can have 1, 2, 4, 8 or 16 associated queues). Word 2 820 of the send context table is
It contains 1 bit 822 indicating that a monitor queue is attached, 4 bits indicating the queue service policy, and 3 bits indicating the reference count.
FIG. 35B shows the meaning of these four queue service policy bits. Possible indications are: 1 is a queue, 2, 4, 8 or 16 is a static queue; or 2, 4, or 8 is a weighted round robin queue; or 2, 4,
Half of 8 and 16 are static queues, half are weighted round robin queues, and so on. As described below, static queues have the highest priority, followed by weighted round robin queues. Word 3 contains the standby scheduler control word, which contains the "next cctID", "parent cctID" (used only for standby scheduler circuitry), status bits (active or idle), and standby scheduler interval. including.

【0093】 図36に示すQueue Tableは、Transmit Context
Tableと連携して働き、キューごとに4つの4バイト・ワードを含む。ワ
ード0は、2バイトのスタンバイ回路ID(下記で説明する)、および2バイト
のキュー・サマリー・ビット(16のキュー番号ごとにのみ)を含む。ワード1
は、キュー・サイズを示す2バイト、および2バイトのオーバーフロー・カウン
タIDを含む。ワード2はスタンバイ・キューの数を示す5ビット・フィールド
と、ヘッド・オブ・キュー・ポインタの24ビットを含む。ワード3は、24ビ
ットのテール・オブ・キュー・ポインタを含む。
The Queue Table shown in FIG. 36 is a Transmit Context.
Works in conjunction with Table and contains four 4-byte words per queue. Word 0 contains a 2-byte standby circuit ID (discussed below), and a 2-byte queue summary bit (only for every 16 queue numbers). Word 1
Contains a 2-byte indicating the queue size and a 2-byte overflow counter ID. Word 2 contains a 5-bit field that indicates the number of standby queues and 24 bits of the head of queue pointer. Word 3 contains a 24-bit tail of cue pointer.

【0094】 好ましい実施形態では、ヘッド・オブ・キュー・ポインタで始まるSOPセル
を最初のSOPに(かつテール・ポインタを最後のSOPに)リンクすることに
よってキューが形成され、パケットの新しいセルがパケットのセルに追加される
ことを思い出されたい。したがって、図37を参照すると、リンクした記述子8
63で表すように、Queue Table850のキュー16には4つのSO
Pがあり、キュー17にはリンクした記述子864で表すように2つのSOPが
ある。リンクした記述子862で表すような不完全なパケットはそれでもなお送
信することができるが(「カットスルー」を許可することにより)、最後の記述
子がそれに関連するバッファが空であることを示すと送信は回路上で停止し、そ
れにより、回路上でパケット順序を保つという規則を維持する。
In the preferred embodiment, a queue is formed by linking the SOP cell starting with the head of queue pointer to the first SOP (and the tail pointer to the last SOP), and the new cell of the packet is Remember that it will be added to the cell. Therefore, referring to FIG. 37, the linked descriptor 8
As indicated by 63, the queue 16 of the Queue Table 850 has four SOs.
P, and there are two SOPs in queue 17, as represented by the linked descriptor 864. Incomplete packets, such as those represented by linked descriptor 862, can still be sent (by allowing "cut-through"), but the last descriptor indicates that its associated buffer is empty. And the transmission stops on the circuit, thereby maintaining the rule of keeping the packet order on the circuit.

【0095】 キュー・ポリシーは、データ・パケット送信の優先順位づけ、およびスケジュ
ーリングを可能にする。したがって、固定した静的優先順位下では、特定キュー
にあるパケットはすべて別のキューにあるパケットよりも先に送信される。重み
付けラウンド・ロビン・キュー方式では、1つのキューにある特定数のパケット
が送信され、次いで次のキューにある特定数のパケットが送信され、その後も同
様である。これにより、低い優先順位クラスを「窮乏」させることなく、トラフ
ィックのクラス(キュー)に相対的な優先順位を持たせることが可能になる。静
的キューがサービスされる時に、静的キューが優先権を有する「ハーフ・アンド
・ハーフ」方式が提供される。
Queue policies allow prioritization and scheduling of data packet transmissions. Therefore, under a fixed static priority, all packets in a particular queue are sent before packets in another queue. The weighted round robin queue scheme sends a certain number of packets in one queue, then a certain number of packets in the next queue, and so on. This allows classes of traffic (queues) to have a relative priority without "povertying" the lower priority classes. A "half and half" scheme is provided in which static queues have priority when they are serviced.

【0096】 使用中の回路についての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になる。
The Schedule Table for the circuit in use is continuously scanned. As shown in FIG. 37, this table is stored in the Primary Schedule.
Table A865, Primary Schedule Table B
866, and a Primary Schedule Table with a Secondary Schedule Table 870. Primar
The yScheduleTable is located on-chip and consists of two previously mentioned subtables, each with 64 entries. Primary Sc
The slots in the Hedible Table A are all Schedule T
It is visited once every time the "time" ticks. Primary Table
The A entry contains a 6-bit index into the entry of the Primary Schedule Table B. As shown in FIG. 37, every Table B entry has two or more Table A entries pointing to it. The Primary Table B entry contains the size of the secondary table, and if this size is not equal to "0", the offset into the secondary table 857, and
It also contains the base address of the secondary table 868. If the size is equal to "0", the remaining fields are "Use Parent Circuit" bits 871.
, Parent Circuit ID 872, and Circuit ID
873.

【0097】 セル送信イベントは、Circuit IDを有するスケジュール・テーブル
・エントリが見つかると起動される。適切なCircuit IDをSched
ule Tableに入力することにより、セル送信順序付けパターンが生成さ
れ、これは送信イベントの回路個々の比率に応じて回路に帯域幅を有効に割り当
てる。
A cell send event is fired when a schedule table entry with a Circuit ID is found. Sched the appropriate Circuit ID
By inputting into the ule Table, a cell transmission ordering pattern is generated which effectively allocates bandwidth to the circuit depending on the circuit's individual ratio of transmit events.

【0098】 Schedule Tableの階層的性質は、広範囲の割合をプログラムす
ることを可能にする。これは、サブテーブルの3レベルまで「チェーニング」す
ることによって行われる。Primary Table Bエントリのサイズ・
フィールドがゼロでない場合、このエントリは、オフチップに位置するSeco
ndary Tableへのポインタを含む。Secondary Table
870は、エントリを255個まで有することが可能であり、このエントリは
それぞれTertiary Tableをポイントするか、またはCircui
t IDを含むことができる。テーブル・チェーニングに遭遇すると、オフセッ
ト・フィールド867を使用して、低レベル・テーブルでどのエントリにアクセ
スすべきかを追跡する。このフィールドを訪れるたびに、テーブル・サイズを法
としてオフセットが増分される。
The hierarchical nature of the Schedule Table allows a wide range of rates to be programmed. This is done by "chaining" up to three levels of subtables. Size of the Primary Table B entry
If the field is non-zero, this entry is a Seco located off-chip.
Contains a pointer to the ndary Table. Secondary Table
The 870 can have up to 255 entries, each of which points to a Tertiary Table, or Circui.
t ID can be included. When table chaining is encountered, offset field 867 is used to track which entry in the low level table should be accessed. Each visit to this field increments the offset modulo the table size.

【0099】 Stand−by Scheduler(SBS)は、2次スケジューリング
機構である。その名前が意味するように、Stand−by Schedule
rは、スケジュール・テーブルから後回しにされた帯域幅についてのトラフィッ
クをスケジュールする。スタンドバイ・トラフィックを伝送することができる2
つのケースがある。すなわち、(1)伝送イベントが、回路に対してデータを伝
送しなかった(クレジットの不足またはデータの不足)ケースと、(2)スケジ
ュール・テーブル中にプログラムされるCircuit IDがゼロであり、そ
れによって帯域幅うちのある量がスタンドバイ・トラフィックに事前割り振りさ
れるケースである。
The Stand-by Scheduler (SBS) is a secondary scheduling mechanism. As its name implies, a Stand-by Schedule
r schedules traffic for postponed bandwidth from the schedule table. Can carry standby traffic 2
There are two cases. That is, (1) the transmission event did not transmit data to the circuit (insufficient credit or insufficient data), and (2) the Circuit ID programmed in the schedule table was zero, and Is a case where a certain amount of bandwidth is pre-allocated to standby traffic.

【0100】 SBSは、Calendar Queueアルゴリズムのバージョン、本質的
にはリンクされたリストの配列として実装されるスロットされたタイム・リング
を使用する。配列の各要素は、異なるタイム・スロットに対応する。各タイム・
スロットには、この時にセルを送信するようにスケジュールされる回路のリスト
が装着される。スロット・インデックスは時間と共に進む。人気のあるスロット
が見つかったとき、そのスロットでのリストの先頭の回路についてのセルを伝送
することができる。セルが特定の回路に対して伝送されるとき、その回路上の次
のセルに対する適格時間が計算され、別のタイム・スロットにマップされる。
SBS uses a version of the Calendar Queue algorithm, essentially a slotted time ring implemented as an array of linked lists. Each element of the array corresponds to a different time slot. Each time
The slot is populated with a list of circuits that are scheduled to transmit cells at this time. The slot index advances over time. When a popular slot is found, the cell for the first circuit in the list in that slot can be transmitted. When a cell is transmitted for a particular circuit, the qualifying time for the next cell on that circuit is calculated and mapped to another time slot.

【0101】 図38を参照すると、Stand by Scheduler Calend
ar Table 878は、64個のエントリからなるオンチップ・テーブル
である。各エントリは、特定のスロットに装着される回路のリンクされたリスト
を記述するヘッド・インデックスおよびテール・インデックスを含む。リンクは
、Transmit Context Table 860中のword 3の
Next CCtIdフィールド中に格納される。スロット・インデックス87
7は、QMコア・クロックに対応する期間と共に進む。SBSの機会が生じたと
き、伝送するための次の回路が、スロット・インデックスの現在値によって表さ
れる時点から前方にスキャンすることによって見つかる。送信するための次の回
路は、次に人気のあるスロットに対するリストの先頭にある回路である。次の回
路が見つかった後、その回路がリストから待機解除され、再スケジュールされる
Referring to FIG. 38, Stand by Scheduler Calendar
The ar Table 878 is an on-chip table composed of 64 entries. Each entry contains a head index and a tail index that describe a linked list of circuits that are installed in a particular slot. The link is stored in the Next CCtId field of word 3 in the Transmit Context Table 860. Slot index 87
Step 7 progresses with the period corresponding to the QM core clock. When an SBS opportunity occurs, the next circuit to transmit is found by scanning forward from the time represented by the current value of the slot index. The next circuit to send is the one at the top of the list for the next most popular slot. After the next circuit is found, it is delisted from the list and rescheduled.

【0102】 再スケジューリングは、回路を送信すべき次のスロットを計算することによっ
て実行される。次のスロットの計算は、Transmit Context T
able中のWord 3のSBSインターバル・フィールドに基づく。このフ
ィールドは、回路についての連続する伝送イベントの間のカレンダー・テーブル
・スロットの数を表す6ビットの数である。回路についての次のスロットは、テ
ーブル・サイズを法として、現スロットとこのインターバルとの和である。SB
Sの正味の効果は、重み付けWeighted Fair Queueingア
ルゴリズムの近似である。所与の回路の重みは、そのSBSインターバルの逆で
ある。
Rescheduling is performed by calculating the next slot in which to send the circuit. The calculation of the next slot is based on the Transmit Context T
Based on the Word 3 SBS interval field in the available. This field is a 6-bit number that represents the number of calendar table slots during consecutive transmission events for the circuit. The next slot for the circuit is the sum of the current slot and this interval modulo the table size. SB
The net effect of S is an approximation of the weighted Weighted Fair Queueing algorithm. The weight of a given circuit is the inverse of its SBS interval.

【0103】 Stand−by Schedulerの別の態様は、「アクティブ」な、す
なわち送信するためのデータを有する回路のみに基づく動的帯域幅割振りを実行
できることである。多くの回路をスタンドバイ帯域幅に対して可能にすることが
できる。しかし少数の回路のみが、どの時点でもアクティブである可能性が高い
。スタンドバイ帯域幅をより効果的に使用するために、SBSは、スケジューラ
中のアクティブな回路のみを保つ。SBSは、回路がアクティブになるか、また
はアイドルになったときに、Queue Tableを管理するプロセスからメ
ッセージを受信する。アクティブからアイドルへの移行は、パケットが待機解除
され、回路についてのすべてのキューが空になったときに行われる。アイドルか
らアクティブへの移行は、パケットがすべて空のキューを有する回路に対して待
ち行列に入れられたときに行われる。
Another aspect of the Stand-by Scheduler is that it can perform dynamic bandwidth allocation based only on circuits that are “active”, that is, have data to send. Many circuits can be enabled for standby bandwidth. However, only a few circuits are likely to be active at any given time. In order to use the standby bandwidth more effectively, the SBS keeps only the active circuits in the scheduler. The SBS receives messages from the process that manages the Queue Table when the circuit becomes active or becomes idle. The transition from active to idle occurs when the packet is dequeued and all queues for the circuit are empty. The transition from idle to active occurs when a packet is queued to a circuit that has an empty queue.

【0104】 どんな回路もスケジュール・テーブルとSBSの両方を同時に使用してスケジ
ュールすることができる。これは、ATM利用可能ビット・レート(「ABR」
)トラフィックに対して有用である。
Any circuit can be scheduled using both the schedule table and SBS at the same time. This is the ATM available bit rate ("ABR").
) Useful for traffic.

【0105】 好ましい実施形態での「送信」は、パケット・ストリング(これは不完全であ
る可能性がある)をそのキューからリンク解除し(「待機解除」)、それを(図
37に示す)Transmit Context Table 860の現バッ
ファにリンクすることで開始する。次いでTransmit Context
Tableの回路エントリがポーリングされ、現バッファのバッファ・コンテン
トが(空でない場合に)対応する「回路」63’に送信される。セル・データは
、以下に説明する「ピンポン(ping−pong)」方式に従ってRAMBU
S DRAMから読み取られる。
The "send" in the preferred embodiment unlinks the packet string (which may be incomplete) from its queue ("unwait") and it (shown in Figure 37). Start by linking to the current buffer of the Transmit Context Table 860. Then the Transmit Context
The Table's circuit entry is polled and the buffer content of the current buffer (if not empty) is sent to the corresponding "circuit" 63 '. The cell data is stored in the RAMBU according to the "ping-pong" method described below.
Read from SDRAM.

【0106】 パケットが完全に伝送されたとき、そのバッファは自由バッファ・リストに返
される。パケットの伝送の完了は、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つのバッファすべては自由バッファ・リストの先頭でリン
クされる。
When the packet is completely transmitted, its buffer is returned in the free buffer list. Completion of packet transmission is indicated by the transmit context tab.
When the next buffer of le is sent towards the descriptor 880 associated with the first buffer of the packet, with reference to pointer 883 of FIG. 39A, it is indicated by the second word of descriptor 882 of the last buffer of the packet. The free buffer manager (not shown) then determines the "owner" of the SOP's descriptor 880.
Others (for multicasting etc.) by examining the field
Check if there is an "owner", and if there is no owner (if the value is 1, decrement otherwise) as shown in FIG. 39B, the free buffer manager returns the second of descriptor 890. The free counter 890 is incremented by the buffer count 891 in the word. The free buffer manager moves the free buffer list head pointer from the head 895 of the free buffer list to the descriptor pointed to by the descriptor 880, that is, the descriptor 881 of the buffer of the second cell, and the descriptor field of the descriptor 880. Enter a pointer to the beginning of the free buffer list 896 before it. Thus FIG. 39B
As can be seen, all three buffers are linked at the beginning of the free buffer list.

【0107】 8.伝送クレジット・ループ 好ましい実施形態では、多重クレジット・ループを使用することによって階層
的フローおよび輻輳制御方式を提供する。伝送のためにセルを受諾するための8
個の出力チャネルそれぞれについての、MOMチップの能力を示すクレジットの
システムが確立される。特定のチャネルについてのMOMが、セルごとにパケッ
トを送信し、各セルが送信されるとき、そのMOMは、前述のクレジット・ビッ
トを介して、別のセルをそのMOMチップに送信できることを示す。図31に示
すように、セルを送信している時のMOMは、クレジット・カウント760を増
分し、QMがセル762をMOMに転送するときに、そのQMはクレジット・カ
ウント764を減分する。前述のように、クレジットは、適切なMOMチャネル
・クレジットが保持されるように回路IDを有する。この好ましい実施形態では
、4つの伝送セルを格納することができる。MOMは、その中でパケットがセル
から再組上げされるFIFOを有する。
8. Transmit Credit Loop The preferred embodiment provides a hierarchical flow and congestion control scheme by using a multiple credit loop. 8 to accept cells for transmission
A system of credits is established that indicates the MOM chip's capabilities for each of the output channels. The MOM for a particular channel sends a packet on a cell-by-cell basis, and when each cell is transmitted, that MOM indicates that another cell may be sent to its MOM chip via the aforementioned credit bits. As shown in FIG. 31, the MOM when transmitting a cell increments the credit count 760 and when the QM transfers the cell 762 to the MOM, the QM decrements the credit count 764. As mentioned above, the credit has a circuit ID such that the appropriate MOM channel credit is retained. In this preferred embodiment, four transmission cells can be stored. The MOM has a FIFO in which packets are reassembled from the cell.

【0108】 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バイト
に等しい)。
When a cell is transmitted from the MOM chip, the credit sent back to the QM is
This is the credit for the maximum length cell. It can be 17 octbytes in cell mode or 16 octbytes in packet mode (because MOM removes the burst header when in packet mode). However, the QM may send less than the maximum cell size. FIG. 32 is duplicated for each output channel associated with the MOM chip and the credit is MO
A schematic representation of the mechanism processed in the M-chip is shown. Head pointer 770, tail
There is a pointer 772, a virtual tail pointer 774, and a start 776 of the packet pointer. In the preferred embodiment, 512 bytes
There are locations, or all four 128 byte locations. In FIG. 32, there are 64 slots, and each slot 778 symbolically holds one octobyte (64 octobytes equal 512 bytes of storage in this embodiment).

【0109】 初期設定時に、FIFOは空であり、仮想テールは増分され、FIFOロケー
ションを通って移動する。仮想テール・ポインタは、仮想テールがヘッド・ポイ
ンタに到達したか、またはヘッド・ポインタに到達することを試行するときに停
止する。仮想テール・ポインタが増分するごとに単一クレジットがMOMチップ
中の送信クレジット・マネージャおよび受信クレジット・マネージャを介して送
信される。これらのクレジットは、この回路についてのQM中に蓄積される。M
OMがこの回路へのセルを受信したとき、テール・ポインタ(このポインタは実
際のセル長を表す実情報を指す)は増分される。QMがセル全体未満を送信した
とき、仮想テール・ポインタは補正される。MOMが実際にセルを伝送するとき
、ヘッド・ポインタは増分される。MOMがセルを送信するとき、ヘッド・ポイ
ンタは、仮想テール・ポインタおよび実テール・ポインタから移動し、FIFO
中のルームを空ける。最大セル未満を送信し、QMによって補正された可能性が
ある仮想テール・ポインタが、ヘッド・ポインタを循環することなく伝送FIF
O中の最大セル長を増分することができるとき、クレジットはQM中に送信され
、確立される。
At initialization, the FIFO is empty and the virtual tail is incremented and moves through the FIFO location. The virtual tail pointer stops when the virtual tail reaches or attempts to reach the head pointer. Each increment of the virtual tail pointer causes a single credit to be sent via the send and receive credit managers in the MOM chip. These credits are accumulated in the QM for this circuit. M
When the OM receives a cell to this circuit, the tail pointer (which points to the actual information representing the actual cell length) is incremented. The virtual tail pointer is corrected when the QM transmits less than the entire cell. The head pointer is incremented when the MOM actually transmits a cell. When the MOM sends a cell, the head pointer moves from the virtual tail pointer and the real tail pointer,
Empty the room inside. A virtual tail pointer, which sends less than the maximum cells and may have been corrected by QM, is transmitted by the transmit FIFO without cycling through the head pointer.
Credits are sent and established during QM when the maximum cell length in O can be incremented.

【0110】 他の残りのポインタ、パケット・ポインタ776の開始は、1つの重要な機能
を有する。その機能は、パケットの開始の開始ロケーションを保持し、その結果
イーサネット・ケーブル上でコリジョンがある場合に衝突したパケットを公開さ
れた明細書に従って再伝送することができることである。
The start of the other remaining pointer, the packet pointer 776, has one important function. Its function is to keep the starting location of the start of the packet so that if there is a collision on the Ethernet cable the colliding packet can be retransmitted according to the published specification.

【0111】 図2に関して、仮想テール・ポインタは、伝送クレジット・マネージャによっ
て制御され、実テール・ポインタは、伝送FIFO「プロデューサ」によって制
御され、「コンシューマ」は、パケット・ポインタのヘッダおよび開始を制御す
る。すべてのポインタは、比較およびクレジットの発行のために、すべての伝送
クレジット・マネージャにとってアクセス可能である。
With reference to FIG. 2, the virtual tail pointer is controlled by the transmission credit manager, the real tail pointer is controlled by the transmission FIFO “producer”, and the “consumer” controls the header and start of the packet pointer. To do. All pointers are accessible to all transmission credit managers for comparison and credit issuance.

【0112】 図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ビットを制御する。コンシューマは、データが送信されたときにヘッド・ポイ
ンタを増分する。ヘッド・ポインタのヘッド、テール、および開始は、伝送クレ
ジット回路が利用可能である。
FIG. 33 shows how a MOM FIFO, 2 port, 64 octobyte memory is controlled. The arbiter 780 uses the three most significant addresses of the FIFO from the "producer" side to keep track of the cells loaded from the QM.
The bottom 6 bits of all 9 bits needed to control the bits and address the 512 locations are tail pointers 782 (indicating one of eight).
Controlled by. Virtual tail pointer 784 does not point to real data. The counter mechanism allows the credit manager to determine the number of credits to send to the QM. Another arbiter 786 and head pointer (indicate one of eight) controls the unloading and emptying of the FIFO as the packet is physically transmitted by the MOM chip. The head pointer 788 controls the lower 6 bits of the FIFO from the unload side of the FIFO. The consumer increments the head pointer when the data is sent. The head, tail, and start of the head pointer are available to the transmission credit circuit.

【0113】 図26を参照すると、イニシアル・カノニカル・ヘッダの第1オクトバイトの
部分742が、かつ、図27を参照すると、バースト・ヘッダが、2つのクレジ
ット・フラグ、「シンク」フラグおよび「親」フラグを含む。シンク・フラグは
、電源投入時に、前述のクレジット・サイクル・オペレーションを適切に確立す
るために使用される。電源投入時に、MOMは、10ミリ秒ごとにシンク・フラ
グをQMに送信する。QMが電源投入されたとき、QMは、シンク・フラグを探
し、QMを見つけたとき、シンク確認をMOMに送信する。次いでMOMは、前
述の何らかのクレジットをQMがクレジットを受諾す準備ができていることの保
証と共に送信する。
Referring to FIG. 26, the first octobyte portion 742 of the initial canonical header, and referring to FIG. 27, the burst header contains two credit flags, a “sync” flag and a “parent” flag. Including the flag. The sync flag is used at power up to properly establish the aforementioned credit cycle operation. On power up, the MOM sends a sync flag to the QM every 10 ms. When the QM is powered up, it looks for the sync flag and when it finds the QM, it sends a sync confirmation to the MOM. The MOM then sends any of the credits mentioned above along with a guarantee that the QM is ready to accept the credit.

【0114】 ペアレント・フラッグは、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つのリーフが他のリーフのサービス
を阻止することはできない。
The parent flag is necessary because there are multiple physical communication paths multiplexed in the channel of the MOM chip. When there is only one communication circuit connected to the MOM channel and the MOM is connected to the Ethernet, the credit system works as described above, but with multiple separate paths to the MOM channel A method is designed to maintain credit for each of the paths connected to the channel. An important aspect of this credit system is that it ensures that no one of the multiple communication paths connected to one MOM channel can be blocked or locked out by other paths in the multiple communication paths. It is necessary. In this embodiment, FIG. 34 shows two FIFO channels in the MOM chip. FIFO 800 operates in a single communication path. In this case, MOM FIFO 800 is a leaf that illustrates its operation by a single communication circuit. FIFO 802 is associated with a FIFO channel, which is
It is connected to another chip, for example the DAD chip 804 of the presently preferred embodiment, provided that the DAD is further connected to eight other communication circuits 804. In this case, the FIFO 802 is called "parent", and the eight communication circuits connected to the DAD are leaves. In this circuit, the QM maintains credits for the individual leaves connected to the parent FIFO in the MOM. In this way, the QM will know when the transmit FIFO is full and cannot accept any more cells. The QM will then forward the cell to the other leafs by simply polling for the credits in the parent and leaf, resulting in the cell being transmitted. In this way, one leaf cannot block the services of another leaf.

【0115】 図38を参照すると、QM内のSchedule Table 866には、
特定の回路に関連するペアレントがあるかどうかの指示871がある。ペアレン
トとして作用するMOMは、ペアレントFIFO、および該ペアレントに関連す
るリーフのそれぞれに対するクレジットを送る。
Referring to FIG. 38, the Schedule Table 866 in the QM includes:
There is an indication 871 of whether there is a parent associated with a particular circuit. The MOM, which acts as a parent, sends a credit for the parent FIFO and each leaf associated with the parent.

【0116】 Parent Credit Table 875は、QM内の64エントリ
・オンチップ・テーブルである。各エントリは、「ペアレント回路」として扱わ
れているものに対するクレジット・カウントを含んでいる。回路がペアレント回
路に結合されているとき、それは、そのTramsmit Context T
ableクレジット・フィールドと、Parent Credit Table
内にあるそのペアレント・クレジット・フィールドとの両方で使用可能なクレジ
ットを有する場合にMACバスに対してセルを送信するだけである。
The Parent Credit Table 875 is a 64-entry on-chip table in QM. Each entry contains a credit count for what is treated as a "parent circuit". When a circuit is coupled to a parent circuit, it is connected to its Transmit Context T
Able Credit Field and Parent Credit Table
It only sends a cell to the MAC bus if it has credit available both in its parent credit field within.

【0117】 セルが、ペアレントを備えた回路に送信されたとき、Transmit Co
ntext Tableクレジットおよび関連するクレジットが減分される。ペ
アレント・チャネルからのペアレント・クレジット更新セルは、QMに送り返さ
れ、これによってペアレント・クレジットを増分させる。
When a cell is transmitted to a circuit with a parent, the Transmit Co
The text Table credits and associated credits are decremented. Parent credit update cells from the parent channel are sent back to the QM, which increments the parent credit.

【0118】 スケジュール・テーブルは、回路を所与のペアレント回路に結合させるために
使用する。Use Parent Circuit ID フィールド872は
、この目的に使用する。スケジュール・テーブル・エントリがPビットのセット
を有する場合、これは、回路がペアレントを有し、Parent Credit
Table 875をインデックス付けするためにParent Circu
it ID 872を用いるべきことを意味する。
The schedule table is used to bind a circuit to a given parent circuit. The Use Parent Circuit ID field 872 is used for this purpose. If the schedule table entry has the P bit set, this means that the circuit has a parent and Parent Credential
Parent Circu for Indexing Table 875
It means that it ID 872 should be used.

【0119】 9.RAMBUS(登録商標)上の超高速アクセス RAMBUS(登録商標) DRAM 35および36は、オフ・ザ・シェル
フ(off−the−shelf)の品目である。本発明では、それらは、この
デート通信用途に対し読取りおよび書込み帯域幅を最大限高める固有の方式で使
用される。
9. Ultrafast Access on RAMBUS® RAMBUS® DRAMs 35 and 36 are off-the-shelf items. In the present invention, they are used in a unique manner to maximize read and write bandwidth for this date communication application.

【0120】 本発明は、RAMBUS(登録商標)に対するインターフェース308を提供
し、これは、RMBUS(登録商標)メモリの有効帯域幅を増やすために、デュ
アル・バンク・オーガニゼーション(dual bank organizat
ion)を使用する。Dual FIFOスタックはコントロ−ラとともに使用
されて、RAMBUS(登録商標)内の別々のDRAMバンクを交互にアドレス
指定する。FIFOにより待ち時間が増え、RAMBUS(登録商標)を制御す
る電子機器のハードウェア・オーバヘッドが増えることになるが、書込みまたは
読取りが行われた一連のデータを保証する試みが代替バンクから来る。この方式
では、一方のバンクがプレチャージし、その間他方のバンクがアクセスされるこ
とになり、次いで該他方のバンクがプレチャジし、その間第1バンクがアクセス
されることになる。
The present invention provides an interface 308 to RAMBUS®, which is a dual bank organization for increasing the effective bandwidth of RMBUS® memory.
Ion) is used. The Dual FIFO stack is used with the controller to alternately address the separate DRAM banks in the RAMBUS®. Although FIFO adds latency and increases the hardware overhead of the electronics that control the RAMBUS®, an attempt is made to guarantee the sequence of data written or read from the alternate bank. In this scheme, one bank will be precharged while the other bank will be accessed, then the other bank will be precharged and the first bank will be accessed during that time.

【0121】 図40を参照すると、RAMBUS 900がブロック形式で示されており、
これの中に、フェーズロック・ループ、PLL、および2つのダイナミックRA
Mバンク、DRAM 1および2が示されている(それぞれ36、37)。RA
MBUS(登録商標)に入る、またはそこから出るマルチプレックスされたデー
タ/アドレス・バスは、付属のクロックを備えた基本的に8ビット幅のシリアル
・ポートである。
Referring to FIG. 40, a RAMBUS 900 is shown in block form,
Among these are a phase-locked loop, a PLL, and two dynamic RAs.
M banks, DRAMs 1 and 2 are shown (36 and 37 respectively). RA
The multiplexed data / address bus entering or exiting MBUS® is an essentially 8-bit wide serial port with an attached clock.

【0122】 DARAM 35および36内のデータ・バッファの編成は、(128バイト
)の偶数データ・バッファすべてが一方のバンク上にあり、奇数のデータ・バッ
ファすべてが他方のバンク上にあるようになっている。アービタ902は、デー
タに関する様々なリクエストがFIFOスタック904および906に対してロ
ードされる順番を決定する。リクエスト内のバッファ・アドレスは、偶数または
奇数であり、偶数バッファを有するリクエストはFIFO 904にロードされ
、奇数バッファを有するものはFIFO 906にロードされる。
The organization of the data buffers in DARAMs 35 and 36 is such that all (128 byte) even data buffers are on one bank and all odd data buffers are on the other bank. ing. The arbiter 902 determines the order in which various requests for data are loaded into the FIFO stacks 904 and 906. The buffer addresses in the request are even or odd, requests with even buffers are loaded into FIFO 904, and those with odd buffers are loaded into FIFO 906.

【0123】 FIROは空である条件では、リクエストは偶数または奇数のFIROにロー
ドされ、インターリーバ908はそのリクエストをコントローラ910に送る。
リクエストは多数であるため、FIROのリクエストがバックアップする。リク
エストが両方のFIROにバックアップしたら、インターリーバー908はFI
ROとその他から交互にリクエストを受け取る(“ピンポン操作”)。これらバ
ッファアドレスは交互に偶数と奇数になるので、コントローラはRAMBUSの
2つの異なるバンクに交互またはインターリーブ的にアクセスする。この操作で
、第1バンクは第2バンクがプレチャージされているときにアクセスされ、次の
アクセスで第2バンクは第1バンクがプレチャージされているときにアクセスさ
れる。 この交互アクセスは実質的にRAMBUSのライティングまたはリーディング
のための最速アクセスを提供し、両方のFIROスタックにリクエストが存在す
るかぎりRAMBUSメモリのスループットを最大化する。一方、純粋にFIR
Oベースに存在するリクエストはバックツーバック偶数またはバックツーバック
奇数リクエストで分数を有するであろう。それでタイムアウトの分数はプレチャ
ージされる。
On condition that the FIRO is empty, the request is loaded into an even or odd FIRO and the interleaver 908 sends the request to the controller 910.
Since there are many requests, FIRO requests back up. Once the request backs up to both FIROs, the interleaver 908 will
Receive requests alternately from RO and others ("ping-pong operation"). Since these buffer addresses alternate between even and odd, the controller accesses the two different banks of RAMBUS in an alternating or interleaved manner. By this operation, the first bank is accessed when the second bank is precharged, and in the next access, the second bank is accessed when the first bank is precharged. This alternating access substantially provides the fastest access for writing or reading the RAMBUS and maximizes the RAMBUS memory throughput as long as there are requests on both FIRO stacks. On the other hand, purely FIR
Requests residing on the O base will have fractions in back-to-back even or back-to-back odd requests. So the timeout minutes are precharged.

【0124】 特定のリクエストに関する待ち時間は通常の方法で発生する。この方法は高ト
ラフィック条件でRAMBUSの最大利用を保証する。 10.バックグラウンドエンジン/イニシャリゼーション 本願発明の重要部分は、モニターと他の重要決定時のMOMポートでインター
フェースされるBEの使用である。これでBlazeWatchとラーンアンド
ロック安全システムにコンフィギュレーションとコントロール機能にアクセスさ
せる。
Latency for a particular request occurs in the usual way. This method guarantees maximum utilization of RAMBUS in high traffic conditions. 10. Background Engine / Initialization An important part of the present invention is the use of BE to interface with the monitor and other MOM ports when making important decisions. This gives the BlazeWatch and Learn & Lock safety system access to configuration and control functions.

【0125】 図1において、ブーツFLASH ROM51はシステムのイニシャリゼーシ
ョンとスタートアップのためにBE50にアクセスできるように提供される。ブ
ーツROMインストラクションはパワーアップまたは完全システムリセットが存
在するときにランする。ブーツはBE DRAM53のセクションに操作性があ
り、信頼できることをテストして確認する。このセクションはISBコードとB
lazeNet Runtime Kernal(BeRT)が存在するところ
である。ROM51の最初の1F(hex)または32(小数)アドレスは当初
の妨害ベクトルをホールドする。アドレス20−7FはROM情報をホールドし
、80−FFはコンソールサポートインターフェースルーチンをホールドし、1
00−4FFはMOMアトリビュートテーブルをホールドし、500−1FFF
Bはブーツイメージをホールドし、1FFFC−1FFFFはシクリックリダン
ダンシーチェック(CRC)のブーツイメージチェックサムをホールドする。こ
の実施例では、残りのBE DRAM53はBeRTイニシャリゼーションプロ
セスと平行にテストされるであろう。
In FIG. 1, boot FLASH ROM 51 is provided to allow access to BE 50 for system initialization and startup. Boot ROM instructions run when there is a power up or a complete system reset. The boots are tested and verified to be maneuverable and reliable in the BE DRAM 53 section. This section is ISB code and B
This is where the lazeNet Runtime Journal (BeRT) exists. The first 1F (hex) or 32 (decimal) address of the ROM 51 holds the original interference vector. Address 20-7F holds ROM information, 80-FF holds console support interface routine, 1
00-4FF holds the MOM attribute table, 500-1FFF
B holds the boot image, and 1FFFC-1FFFF holds the boot image checksum of cyclic redundancy check (CRC). In this embodiment, the remaining BE DRAM 53 will be tested in parallel with the BeRT initialization process.

【0126】 ブーツはまた、BARK(バックグラウンドエンジンカーネル)に、例えば、
タイマーからインテラプトを受け取らせるようにインテラプト構造とオペレーシ
ョンをテストする。次に、ブーツはI2Cバス62をイニシャライズし、I2C
バスに取り付けられたチップにアドレスをアサインする。ブーツは次にバスのチ
ップのIDを決定する。ブーツは発見されたチップのIDを調べ、イニシャライ
ザーは実行のためにダウンロードされたブーツディレクトリ内に発見される。
Boots may also be in BARK (background engine kernel), for example
Test the interrupt structure and operation to get the interrupt from the timer. Next, the boots initialize the I2C bus 62 and I2C
Assign addresses to chips attached to the bus. The boot then determines the ID of the bus chip. The boot looks up the ID of the found chip and the initializer is found in the boot directory downloaded for execution.

【0127】 メインなシステムイメージは、例えば10メガバイトのシステムソフトウエア
を含んだコンパクトフラッシュ(登録商標)カードのNonVolatileス
トレージ52に存在する。ベーシック情報はI2CバスでRE40とMOM10
及び20に移される。完全イメージはDMAチャンネルで移される。
The main system image is present in the non-volatile storage 52 of the CompactFlash (registered trademark) card containing, for example, 10 megabytes of system software. Basic information is RE40 and MOM10 on I2C bus.
And 20. The full image is transferred on the DMA channel.

【0128】 以上の説明は出願時の本願発明の好適実施例である。均等な部材と機能で置き
換えが可能である。ハードとソフトの多彩な混合適用が可能である。本願発明は
非常にフレキシブルであり、スケール調整可能である。 11.マルチメディアデータストリームのスケジュール マルチメディア適用は信頼できるものと信頼できないデータネットワーク通信
を使用する。コントロールシグナルは送られた順番に確実に受領されなければな
らない。コントロールシグナルは確実な形態の通信を必要とする。オーディオと
ビデオデータは通常はUDP等の不確実な搬送プロトコールで運搬される。リア
ルタイムプロトコール基準は2つのプロトコールである、TCP上でランするリ
アルタイムコントロールプロトコール(RTCP)とUDP上でランするリアル
タイムプロトコール(RTP)で成る。これらプロトコールはTCPとUDPト
ランスポート層上で薄シムを提供し、マルチメディア通信をサポートする。例え
ば、RTPヘッダはタイムスタンプとセクエンス番号とで成る。受領ステーショ
ンはセクエンスパケットから重なるパケットを排除し、サウンド、ビデオ及びデ
ータを同調させ、連続プレーバックを達成する。複数のレシーバが存在するとき
、センダーはパケットをそれぞれのレシーバに複製するかわりにIPマルチキャ
ストを使用する。レシーバはコントロールチャンネルで交換されたIPマルチキ
ャストグループを結合してパケットを受領する。H.323基準は搬送のために
一般的にRTPプロトコールを使用する。
The above description is a preferred embodiment of the present invention at the time of filing. It is possible to replace them with uniform members and functions. Various mixed applications of hardware and software are possible. The present invention is very flexible and can be scaled. 11. Scheduling multimedia data streams Multimedia applications use reliable and unreliable data network communications. Control signals must be reliably received in the order sent. Control signals require a reliable form of communication. Audio and video data are usually carried in an uncertain transport protocol such as UDP. The real-time protocol standard consists of two protocols, a real-time control protocol (RTCP) running over TCP and a real-time protocol (RTP) running over UDP. These protocols provide thin shims over TCP and UDP transport layers to support multimedia communications. For example, the RTP header consists of a time stamp and a sequence number. The receiving station removes overlapping packets from the sequence packets and synchronizes the sound, video and data to achieve continuous playback. When there are multiple receivers, the sender uses IP multicast instead of duplicating the packet to each receiver. The receiver combines the IP multicast groups exchanged on the control channel and receives the packet. The H.323 standard generally uses the RTP protocol for delivery.

【0129】 マルチメディアアプリケーションは、タイムリーなパケット搬送に保証された
バンド幅とウェイトされたプライオリティのごとき高品質サービスを必要とする
。マルチメディアアプリケーションのための充分なバンド幅を有することはアプ
リケーションインテグリティに必須であるが、多量データネットワークでの達成
は困難である。加えて、マルチメディアデータは、容易にインターワークするス
イッチをコンジェストさせる非リアルタイムアプリケーションからの全ての他の
データパケットとコンテンドしなければならない。これらの問題はアプリケーシ
ョンの進展する状況を維持するマルチメディアアプリケーションスイッチを使用
することで解消される。
Multimedia applications require high quality services such as guaranteed bandwidth and weighted priority for timely packet transport. Having sufficient bandwidth for multimedia applications is essential for application integrity, but difficult to achieve in high volume data networks. In addition, the multimedia data must be content with all other data packets from non-real-time applications that cause the switch to easily interwork. These problems are eliminated by using multimedia application switches that keep the application evolving.

【0130】 図41はフォーワードエンジン(FE)コードとデータDRAM45(図1)
に位置するフローインフォメーションデータストラクチャー1100、1102
と、アプリケーションポリシーレコード1110の一部を示す。各フローは2つ
のフローインフォメーションデータストラクチャー1100、1102を有して
いる。第1フローインフォメーションデータストラクチャー1100はセンダー
からレシーバへのフロー方向である。第2フローインフォメーションデータスト
ラクチャー1102はレシーバからセンダーへのフロー方向である。
FIG. 41 shows a forward engine (FE) code and data DRAM 45 (FIG. 1).
Flow information data structure 1100, 1102 located in
Shows a part of the application policy record 1110. Each flow has two flow information data structures 1100 and 1102. The first flow information data structure 1100 is the flow direction from sender to receiver. The second flow information data structure 1102 is the flow direction from the receiver to the sender.

【0131】 フロー情報データストラクチャー1100、1102は複数のフィールドを有
している。プレハッシュデータフィールド1115はハッシング処理が行われる
前にデータパケットから引き出された情報をホールドする。引き出された情報は
フロー識別プロセスで使用されるものである。フローハンドラーフィールド11
20は与えられたタイプのフローのために必要な追加プロセスを完成させるソフ
トウェアルーチンへのポインターである。フローキューインストラクションフィ
ールド1125は、フローを所定のキューに配置するためのインストラクション
を含んでおり、所定のキューの数はフローキュー数フィールド1130に保存さ
れる。フローバイトとパケットカウンターフィールド1135はフローのために
バイトとパケットカウントをホールドする。リバースフローデータフィールド1
137は2つのフローインフォメーションデータストラクチャー1100、11
02を一緒にリンクさせる。センダー/レシーバフローインフォメーションデー
タストラクチャー1100のリバースフローデータフィールドはレシーバ/セン
ダーフローインフォメーションデータストラクチャー1102あるいはその反対
へのポインターを有している。アプリケーションデータフィールド1140はア
プリケーションポリシーレコード110へポイントするポインターをホールドす
る。本実施例では、両方のフローインフォメーションデータストラクチャーのア
プリケーションデータフィールド1140は同じポリシーレコードにポイントす
るが、それらを別のポリシーレコードにポイントさせることもできる。フローメ
ンテナンスデータフィールド1145はスイッチ内で整合するデータストラクチ
ャーをキープするソフトウェアオーバーヘッドを含む。
The flow information data structures 1100 and 1102 have a plurality of fields. The pre-hash data field 1115 holds information extracted from the data packet before the hashing process is performed. The extracted information is what is used in the flow identification process. Flow handler field 11
20 is a pointer to a software routine that completes the additional processes needed for a given type of flow. The flow queue instruction field 1125 includes an instruction for arranging a flow in a predetermined queue, and the number of predetermined queues is stored in the flow queue number field 1130. The flow byte and packet counter field 1135 holds the byte and packet count for the flow. Reverse flow data field 1
137 is two flow information data structures 1100 and 11
Link 02 together. The reverse flow data field of the sender / receiver flow information data structure 1100 has a pointer to the receiver / sender flow information data structure 1102 or vice versa. The application data field 1140 holds a pointer to the application policy record 110. In this example, the application data fields 1140 of both flow information data structures point to the same policy record, but they can point to different policy records. The flow maintenance data field 1145 contains software overhead to keep the data structure consistent within the switch.

【0132】 アプリケーションポリシーレコード1110は、スイッチを通過する各タイプ
のフローのハンドリングデータとパラメータをホールドする。図41に示すアプ
リケーションポリシーレコードの部分は10のフィールド、マルチメディアアプ
リケーションID1150、コントロールポリシーID1155、センダーIP
アドレス1160、レシーバIPアドレス1165、ボイス−センダーポートナ
ンバーフィールド1170、ボイス−レシーバポートナンバーフィールド117
5、ビデオ―センダーポートナンバーフィールド1180、ビデオ−レシーバポ
ードナンバーフィールド1185、ビデオポリシーID1190及びビデオポリ
シーID1195を有している。
The application policy record 1110 holds handling data and parameters of each type of flow passing through the switch. The application policy record shown in FIG. 41 includes 10 fields, multimedia application ID 1150, control policy ID 1155, and sender IP.
Address 1160, receiver IP address 1165, voice-sender port number field 1170, voice-receiver port number field 117
5, video-sender port number field 1180, video-receiver port number field 1185, video policy ID 1190 and video policy ID 1195.

【0133】 アプリケーションスイッチはセンダーとレシーバとの間でセットアップされた
新コントロールコネクションを監視する。使用可能なセットアップ基準の例はマ
ルチメディアデータ用のITU H.245プロトコールである。コントロール
コネクションが開くと、スイッチはフローの各方向1100、1102のための
新フローレコードを創出する。フローレコードはリバースフローデータフィール
ド1137で共にリンクされる。スイッチはコネクションを提供するソースとデ
スチネーションとの間での交換を立ち聞き(eavesdrop)する。ソースとデスチネ
ーション及び交換はフローレコード1100、1102のアプリケーションデー
タフィールド1140に保存される。センダーがコントロールチャンネル内のオ
ーディオとビデオのアドレス(UDPポート数)を示すと、アプリケーションス
イッチはこの情報をフローレコード1100、1102に保存し、このアプリケ
ーションのためのポリシーをロックアップし、次のオーディオとビデオをスイッ
チングするためのコネクションセットアップハンドラーの新ルックアップレコー
ドを創出させてトランザクションの続く部分の準備を行う。
The application switch monitors the new control connection set up between the sender and receiver. An example of a set-up criterion that can be used is the ITU H.245 protocol for multimedia data. When the control connection opens, the switch creates a new flow record for each direction 1100, 1102 of the flow. The flow records are linked together in the reverse flow data field 1137. The switch eavesdrops the exchange between the source and destination that provide the connection. Sources and destinations and exchanges are stored in the application data field 1140 of the flow records 1100, 1102. When the sender indicates the audio and video address (UDP port number) in the control channel, the application switch stores this information in the flow records 1100, 1102, locks up the policy for this application, and Prepare a subsequent part of the transaction by creating a new lookup record for the connection setup handler to switch the video.

【0134】 複数のレシーバが存在する場合には、アプリケーションスイッチはコントロー
ルコネクションからオーディオ/ビデオデータのIPマルチキャストグループを
入手し、アプリケーションからのパケットが到着するときに使用される1つのフ
ローレコードをセットアップする。レコード内のフローキュー数の代わりに、そ
れぞれのレシーバに1つづつのキューリストを有している。続いてキューマネー
ジャにパケットをそれぞれのキューにキュー処理するように指示する。キューマ
ネージャのマルチキャストトランスミッション能力と共同で、各レシーバのパケ
ットの別々のコピーを準備する必要性をなくす。
If there are multiple receivers, the application switch gets the IP multicast group of audio / video data from the control connection and sets up one flow record used when packets from the application arrive. . Instead of the number of flow queues in the record, we have one queue list for each receiver. It then directs the queue manager to queue the packets into their respective queues. In conjunction with the queue manager's multicast transmission capabilities, it eliminates the need to prepare a separate copy of each receiver's packet.

【0135】 図42はアプリケーションスイッチのコントロールコネクションプロセスのフ
ローチャートである。アプリケーションスイッチの受信プロセスはキューマネー
ジャから受信したパケットを異なるハンドラーに送り、パケットを特定の出て行
くキューに配置させるようにキューマネージャに指示することで送り出す。マリ
チメディアアプリケーションパケットを扱うのに使用される3つの異なるハンド
ラーが存在する。それらは、コネクションセットアップハンドラー、マルチメデ
ィアコントロールハンドラー、マルチメディアデータ用のポリシーハンドラーで
ある。
FIG. 42 is a flowchart of the control connection process of the application switch. The receiving process of the application switch sends the packet received from the queue manager to a different handler and sends it out by instructing the queue manager to place the packet in a particular outgoing queue. There are three different handlers used to handle multimedia application packets. They are a connection setup handler, a multimedia control handler, and a policy handler for multimedia data.

【0136】 アプリケーションスイッチの受信プロセスが、ハッシテーブルにはエントリー
が存在しないパケットを受信すると(ブロック1200)、スイッチはこれらパ
ケットをコネクションセットアップハンドラーへ送る(ブロック1205)。マ
ルチメディアアプリケーションがインボークされると、第1パケットはセンダー
とレシーバとの間のものとなる。コネクションセットアップハンドラーはTCP
ヘッダのデスチネーションポートナンバーフィールドをIETFで指定された知
られたポート数とマッチさせることでこのパケットを識別する(ブロック121
0)。パケットが新マルチメディアフローのスタートであると特定されると、コ
ネクションセットアップハンドラーは2つの新フローレコードを創出する(ブロ
ック1220)。1つはセンダーとレシーバ間のフロー用であり、1つはレシー
バとセンダー間のフロー用である。これら2つの新フローにはマルチメディアコ
ントロールコネクションハンドラーが指定され、創出されたフローレコード用の
フロータッグでリレーエンジンハッシュテーブルをプログラムする(ブロック1
220)。センダー及びレシーバから受領される全ての続くパケットはマルチメ
ディアコントロールコネクションハンドラーへ送られる(ブロック1225)。
このハンドラーはパケット内に立ち聞きし、それらからの情報をフローレコード
のアプリケーションデータフィールド内に保存する。センダーとレシーバとの間
で交換される情報の間には、ボイスとビデオデータをを送るためのポート数に関
する情報が含まれる。この情報が交換されると、マルチメディアコントロールコ
ネクションハンドラーは情報を局部的に保存し、ポリシーデータベースとコンサ
ルトしてボイスとビデオデータ用の情報を保存する(ブロック1230、123
5)。続いて、ボイスとビデオコネクションがイニシャライズされるときに使用
されるポリシーを示すコネクションセットアップハンドラーによって使用される
トランスポートルックアップテーブルの新エントリーが創出される(ブロック1
240)。
When the receiving process of the application switch receives packets that have no entries in the hash table (block 1200), the switch sends these packets to the connection setup handler (block 1205). When the multimedia application is invoked, the first packet is between the sender and receiver. Connection setup handler is TCP
This packet is identified by matching the destination port number field in the header with the known port number specified in the IETF (block 121.
0). When the packet is identified as the start of a new multimedia flow, the connection setup handler creates two new flow records (block 1220). One is for the flow between the sender and the receiver, and one is for the flow between the receiver and the sender. A multimedia control connection handler is specified for these two new flows to program the relay engine hash table with the flow tag for the created flow record (block 1
220). All subsequent packets received from the sender and receiver are sent to the multimedia control connection handler (block 1225).
This handler listens in the packet and stores the information from them in the application data field of the flow record. Among the information exchanged between the sender and receiver is information about the number of ports for sending voice and video data. Once this information has been exchanged, the multimedia control connection handler saves the information locally and consults with the policy database to save the information for voice and video data (blocks 1230, 123).
5). Subsequently, a new entry is created in the transport lookup table used by the connection setup handler that indicates the policy used when the voice and video connections are initialized (block 1).
240).

【0137】 図43はビデオとボイスコネクションデータフローのフローチャートである。
ボイスとビデオコネクションの最初のパケットがスイッチに到着すると、受領プ
ロセスはそれをコネクションセットアップハンドラーに送る(ブロック1300
)。コネクションセットアップハンドラーはマルチメディアqコントロールコネ
クションハンドラーによってプライム処理されているので、これら新フローに適
用されるポリシーが発見される(ブロック1305)。続いて、新レコードが創
出され、そのアプリケーション用のポリシーに基くポリシーが指定され、フロー
レコード用のフロータッグでハッシュテーブルがプログラムされる。続いて、ボ
イスとビデオコネクションパケットが到着したら、受領プロセスは直接的にそれ
らをパケットを送り出すポリシーハンドラーに送る(ブロック1315)。全て
のフローはフローレコードが破棄され、エントリーが除かれるときのエンドオブ
フローの表示が受領されるまでアクティブな状態である(ブロック1320、1
325)。
FIG. 43 is a flowchart of the video and voice connection data flow.
When the first packet of a voice and video connection arrives at the switch, the receiving process sends it to the connection setup handler (block 1300).
). Since the connection setup handler has been primed by the multimedia q control connection handler, the policies that apply to these new flows are discovered (block 1305). Then a new record is created, a policy based on the policy for that application is specified, and the hash table is programmed with the flow tag for the flow record. Then, when the voice and video connection packets arrive, the receiving process sends them directly to the policy handler that sends them out (block 1315). All flows remain active until the flow record is discarded and an end-of-flow indication is received when the entry is removed (blocks 1320, 1).
325).

【0138】 以上の実施例は本願発明の説明のためであり、それらには本願発明のスコープ
内で多様な変更と改良が可能であろう。
The above embodiments are for the purpose of explaining the present invention, and various modifications and improvements can be made within the scope of the present invention.

【図面の簡単な説明】[Brief description of drawings]

【図1】本発明の好適実施例のブロックダイアグラム。FIG. 1 is a block diagram of a preferred embodiment of the present invention.

【図2】本発明の好適実施例のメディアインターフェイスASIC(MOM)
のブロックダイアグラム。
FIG. 2 is a media interface ASIC (MOM) of the preferred embodiment of the present invention.
Block diagram of.

【図3】本発明の好適実施例のキューマネジャーASIC(QM)のブロック
ダイアグラム。
FIG. 3 is a block diagram of the queue manager ASIC (QM) of the preferred embodiment of the present invention.

【図4】本発明の好適実施例のリレーエンジンASIC(RE)のブロックダ
イアグラム。
FIG. 4 is a block diagram of a relay engine ASIC (RE) of the preferred embodiment of the present invention.

【図5】本発明の好適実施例のデータフローの概略のダイアグラム。FIG. 5 is a schematic diagram of the data flow of the preferred embodiment of the present invention.

【図6】本発明の好適実施例で使用されている家庭の一般的なフローダイアグ
ラム。
FIG. 6 is a general household flow diagram used in the preferred embodiment of the present invention.

【図7】図7Aは、本発明の好適実施例に使用されている標準的なヘッダーの
データ構成を示す。図7Bは本発明の好適実施例に使用されている標準的なヘッ
ダーの一部のデータ構成を示す。図7Cは、データ構成及び本発明の好適実施例
に使用されている標準的なヘッダーの別の部分の可能なエントリーを示す。図7
Dは、データ構成及び本発明の好適実施例に使用されている標準的なヘッダーの
別の部分の可能なエントリーを示す。
FIG. 7A shows the data structure of a standard header used in the preferred embodiment of the present invention. FIG. 7B shows the data structure of a portion of the standard header used in the preferred embodiment of the present invention. FIG. 7C shows possible entries for the data structure and another portion of the standard header used in the preferred embodiment of the present invention. Figure 7
D shows the data structure and possible entries of another part of the standard header used in the preferred embodiment of the present invention.

【図8】図8Aは、本発明の好適実施例に使用されている標準的なヘッダーの
別の部分のデータ構成を示す。図8Bは、データ構成及び本発明の好適実施例に
使用される標準的なヘッダーの別の部分の可能なエントリーを示す。図8Cはデ
ータ構成及び本発明の好適実施例に使用される標準的なヘッダーの別の部分の可
能なエントリーを示す。
FIG. 8A shows the data structure of another portion of the standard header used in the preferred embodiment of the present invention. FIG. 8B shows possible entries for the data structure and another portion of the standard header used in the preferred embodiment of the present invention. FIG. 8C shows the data structure and possible entries of another part of the standard header used in the preferred embodiment of the present invention.

【図9】本発明の好適実施例に使用されているハイスピードバスのブロックダ
イアグラム。
FIG. 9 is a block diagram of a high speed bus used in the preferred embodiment of the present invention.

【図10】図9のバスラインの特徴を示す。FIG. 10 shows characteristics of the bus line of FIG.

【図11】図9に示されているバスで使用されているトランスミットサーキット
の概略。
FIG. 11 is a schematic of the transmit circuit used in the bus shown in FIG.

【図12】図11のトランスミットサーキットのタイミングダイアグラム。図1
2Aは、図11のトランスミットサーキットの複合タイミング。
FIG. 12 is a timing diagram of the transmission circuit of FIG. Figure 1
2A is the composite timing of the transmit circuit of FIG.

【図13】図9に示されているバスの伝達に使用されるクロックディレイの概略
。図13Aは、図13に示されているサーキットのシグナルのタイミングダイア
グラム。
FIG. 13 is a schematic of the clock delay used to propagate the bus shown in FIG. FIG. 13A is a timing diagram of the signals of the circuit shown in FIG.

【図14】図13に示されているサーキットのサーキットの詳細。FIG. 14 is a circuit detail of the circuit shown in FIG.

【図15】可能な価値及び図9に示されているバスに使用されているコントロー
ルビットの意味を示す。
FIG. 15 shows the possible values and the meaning of the control bits used in the bus shown in FIG.

【図16】図15に示されているコントロールビットの順序を示す。16 shows the order of the control bits shown in FIG.

【図17】図1に示されているインターフェースチップ間で使用されているトク
ーンリングアービトレーションに示しているブロックダイアグラム。
FIG. 17 is a block diagram showing a token ring arbitration used between the interface chips shown in FIG. 1.

【図18】本発明の好適実施例に使用されているセルトランスミッションの順序
を示す。
FIG. 18 shows the sequence of cell transmissions used in the preferred embodiment of the present invention.

【図19】本発明の好適実施例に使用されているポインターレジスター構成を示
す。
FIG. 19 shows the pointer register configuration used in the preferred embodiment of the present invention.

【図20】図20Aは、本発明の好適実施例に使用されているハッシュテーブル
エントリのデータ構成を示す。図20Bは、本発明の好適実施例に使用されてい
る別ののハッシュテーブルエントリのデータ構成を示す。
FIG. 20A shows the data structure of a hash table entry used in the preferred embodiment of the present invention. FIG. 20B shows the data structure of another hash table entry used in the preferred embodiment of the present invention.

【図21】図9に示されているバスで使用されているコントロールシグナルのた
めのタイミングダイアグラム。
FIG. 21 is a timing diagram for the control signals used in the bus shown in FIG.

【図22】可能な価値及び図9で示されているバスに使用されているコントロー
ルビットの意味を示す。
22 shows the possible values and the meaning of the control bits used in the bus shown in FIG.

【図23】図9に示されているバスに見られうるコントロールビットの順序の例
を示す。
23 shows an example of the order of control bits that may be found in the bus shown in FIG.

【図24】図9に示されているバスに伝達される可能性のあるセルのためのセル
トランスミッションを図式的に示す。
FIG. 24 schematically shows a cell transmission for the cells that may be transmitted to the bus shown in FIG.

【図25】可能な価値及び図9で示されているバスに使用されているコードの意
味を示す。
FIG. 25 shows the possible values and the meaning of the codes used in the bus shown in FIG.

【図26】異なった時間に好適実施例で使用されている標準的なヘッダーの分野
のデータ構成を示す。
FIG. 26 shows the data structure of the standard header field used in the preferred embodiment at different times.

【図27】図26に示されているサブフィールドの一つのデータ構成の詳細を示
す。
27 shows details of one data structure of the sub-field shown in FIG. 26. FIG.

【図28】本発明の好適実施例に使用されている一時的な「バースト」ヘッダー
のデータ構成を示す。
FIG. 28 shows the data structure of a temporary “burst” header used in the preferred embodiment of the present invention.

【図29】好適実施例に使用されているデータパケットに描かれている一連の詳
細を示す。 図29Bは、不完全なパケットを描写するために好適実施例に使用されている一
連の詳細を示す。
FIG. 29 shows a series of details depicted in the data packet used in the preferred embodiment. FIG. 29B shows a series of details used in the preferred embodiment to delineate incomplete packets.

【図30】バーチャルキューを作るために好適実施例に使用されている一連の詳
細を示す。
FIG. 30 shows a series of details used in the preferred embodiment to create a virtual cue.

【図30B】図30Bは、パケットを形成するデータセルを探知するために好適
実施例に使用されているコンテクストテーブルを受信したり伝達したりするバッ
ファーディスクリプターの関連を示す。
FIG. 30B shows the association of buffer descriptors for receiving and transmitting the context table used in the preferred embodiment to track the data cells forming a packet.

【図31】本発明の好適実施例に使用されているクレジットマネージドトランス
ミッションシステムの説明。
FIG. 31 is a description of the credit managed transmission system used in the preferred embodiment of the present invention.

【図32】クレジットが図31で説明したシステムに発行されるべきかどうか決
定するために本発明の好適実施例に使用されているリングポインターシステムの
説明。
32 is a description of the ring pointer system used in the preferred embodiment of the present invention to determine whether credits should be issued to the system described in FIG.

【図33】図31で説明されているシステムのより詳細な説明。FIG. 33 is a more detailed description of the system described in FIG.

【図34】本発明の好適実施例に使用されている階層的なキューシステムの説明
FIG. 34 is a description of the hierarchical queuing system used in the preferred embodiment of the present invention.

【図35】本発明の好適実施例に使用されているトランスミットコンテクストテ
ーブルエントリーのデータ構成を示す。図35Aは、図35に示されているデー
タ構成の分野のデータ構成を示し、図35Bは、図35に示されているデータ構
成のQ SVCポリシー分野で記号化されている可能なサービスポリシーを示す
FIG. 35 shows the data structure of a Transmit Context Table entry used in the preferred embodiment of the present invention. FIG. 35A shows the data structure of the field of the data structure shown in FIG. 35, and FIG. 35B shows the possible service policies symbolized in the Q SVC policy field of the data structure shown in FIG. Show.

【図36】好適実施例に使用されているキューテーブルのデータ構成を示す。FIG. 36 shows the data structure of the queue table used in the preferred embodiment.

【図37】好適実施例のトランスミッションフェーズにおける可能なリンクとキ
ューの説明。
FIG. 37 is a description of possible links and queues during the transmission phase of the preferred embodiment.

【図38】本発明の好適実施例に使用されている予備のスケジューラーの操作を
示す。
FIG. 38 illustrates the operation of the spare scheduler used in the preferred embodiment of the present invention.

【図39】図39Aは、好適実施例のメモリーの完全なパケットを説明している
リンクされたディスクリプターセットを表し、図39Bは、図39Aに示されて
いるリンクされたディスクリプターによって表されたバッファーをフリーにする
ために図39Aに示されたディスクリプターセットの分離を説明している。
39A illustrates a linked descriptor set illustrating a complete packet of memory in the preferred embodiment, and FIG. 39B is represented by the linked descriptors shown in FIG. 39A. FIG. 39A illustrates the separation of the descriptor set shown in FIG. 39A to free the buffer.

【図40】本発明の好適実施例に使用されているDRAMコントロールシステム
のブロックダイアグラム。
FIG. 40 is a block diagram of a DRAM control system used in the preferred embodiment of the present invention.

【図41】現在の発明の原則による前エンジンコードとデータDRAM45(図
1)に配置されているフローインフォメーションデータ構成1100,1102
のダイアグラム。
FIG. 41 is a flow information data configuration 1100, 1102 located in the previous engine code and data DRAM 45 (FIG. 1) according to the principles of the present invention.
Diagram of.

【図42】現在の発明の原則による応用スイッチのコントロールコネクション過
程のフローチャート。
FIG. 42 is a flow chart of a control connection process of an applied switch according to the principles of the present invention.

【図43】現在の発明の原則によるビデオやヴォイスコネクションデータフロー
のフローチャート。
FIG. 43 is a flowchart of a video or voice connection data flow according to the principles of the present invention.

───────────────────────────────────────────────────── フロントページの続き (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 (72)発明者 ナラヤスワミー,クリシュナ アメリカ合衆国 マサチューセッツ州 01581−1770 ウェストボロ コンピュー タ ドライブ 2400,トップ レイヤー ネットワークス,インク.内 Fターム(参考) 5K030 GA01 GA08 HA08 HB13 HB18 HB21 HC01 JA05 LC01 LC05─────────────────────────────────────────────────── ─── Continued front page    (81) Designated countries 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 (72) Inventor Naraya Swami, Krishna             Massachusetts, United States             01581-1770 Westborough Computer             Tadrive 2400, top layer             Networks, Inc. Within F term (reference) 5K030 GA01 GA08 HA08 HB13 HB18                       HB21 HC01 JA05 LC01 LC05

Claims (32)

【特許請求の範囲】[Claims] 【請求項1】 データパケットのフローのための受信フィジカルパス及び送信
フィジカルパスの柔軟な接続のための方法であって、以下のものからなる方法、 (a)前記受信フィジカルパスのデータパケットを受信し、 (b)前記データパケットがマルチメディアストリームデータのクラスと関連
するセットアップシーケンスの一部であって所定のフローとして特定されている
か否かを決定し、もしそうであれば、前記マルチメディアストリームデータのク
ラスとして特定されたパケットの送信のサービスシーケンスのクオリティーを適
用し、さらに、 (c)前記適用されたサービスシーケンスのクオリティーに従った、前記特定
のフローの一部であるデータパケットを送信する。
1. A method for flexible connection of a receive physical path and a transmit physical path for a flow of data packets, the method comprising: (a) receiving a data packet of the receive physical path. And (b) determining whether the data packet is part of a setup sequence associated with a class of multimedia stream data and is identified as a predetermined flow, and if so, the multimedia stream. Applying the quality of service sequence of the transmission of packets identified as the class of data, and (c) transmitting the data packets that are part of the particular flow according to the quality of the applied service sequence. .
【請求項2】 前記データパケットが前記セットアップシーケンスの一部であ
るか否かを決定するステップは、前記データパケットのフィールドの内容を、そ
のようなセットアップシーケンスを表示する情報の特定のパターンと比較するス
テップを有している請求項1に記載の方法。
2. The step of determining whether the data packet is part of the setup sequence comprises comparing the contents of a field of the data packet with a particular pattern of information indicative of such a setup sequence. The method of claim 1 including the step of:
【請求項3】 前記データパケットが前記所定のフローであるか否かを決定す
る前記ステップ(c)は、前記データパケットの特定フィールドの内容と、その
所定のフローのためのスタートアップシーケンスの一部であると先に決定された
データパケットの中の対応するフィールドの内容との比較をすることをさらに有
している請求項1に記載の方法。
3. The step (c) of determining whether the data packet is the predetermined flow comprises the contents of a specific field of the data packet and a part of a start-up sequence for the predetermined flow. The method of claim 1, further comprising: comparing the contents of corresponding fields in the data packet previously determined to be
【請求項4】 前記フィールドの内容を比較するステップは、前記フィールド
を細分した結果を比較することで達成されるものである請求項3に記載の方法。
4. The method of claim 3, wherein the step of comparing the contents of the fields is accomplished by comparing the results of subdividing the fields.
【請求項5】 前記情報のパターンは、ITU H.245プロトコルの下で
のセットアップデータパケット内の特異情報に対応するものである請求項2に記
載の方法。
5. The pattern of the information is ITU H.264. The method of claim 2, which corresponds to unique information in a setup data packet under the H.245 protocol.
【請求項6】 前記データパケットの受信後直ちに、前記受信データパケット
をカノニカルセルに分割するステップ(a1)をさらに有している請求項1に記
載の方法。
6. The method according to claim 1, further comprising the step (a1) of dividing the received data packet into canonical cells immediately after receiving the data packet.
【請求項7】 前記受信パケットから抽出された前記各カノニカルセル内のデ
ータを連続的に送信する、データパケット送信ステップ(d)が行われる請求項
6に記載の方法。
7. The method according to claim 6, wherein a data packet transmitting step (d) is performed, in which the data in each canonical cell extracted from the received packet is continuously transmitted.
【請求項8】 メモリー位置内の前記受信データパケットの前記セルの各連続
的な1つを保存するステップをさらに有する前記請求項6に記載の方法。
8. The method of claim 6, further comprising storing each successive one of the cells of the received data packet in a memory location.
【請求項9】 前記論理的なリンク及び配列は、キューポインターを、前記セ
ルが保存されている各メモリー位置にリンクさせることで達成される請求項8に
記載の方法。
9. The method of claim 8, wherein the logical linking and arraying is accomplished by linking a cue pointer to each memory location where the cell is stored.
【請求項10】 前記サービスシーケンスのクオリティーは、前記キューポイ
ンターのポインターテーブル内へのエントリーシーケンスによって決定される請
求項9に記載の方法。
10. The method according to claim 9, wherein the quality of the service sequence is determined by an entry sequence of the queue pointer into a pointer table.
【請求項11】 人が知覚できるように、エンドユーザーによって継続的に知
覚データへと変換されるデータパケットのフローのための受信フィジカルパス及
び送信フィジカルパスの柔軟な接続のための方法であって、以下のものからなる
方法。 (a)前記受信フィジカルパスのデータパケットを受信し、 (b)前記受信データパケットをカノニカルセルに分割し、 (c)前記セルの各連続的な1つのために、 (i)前記セルを保存し、論理的にそれを、もし存在すれば先のセルへリ
ンクさせる。 (ii)もし前記セルが前記データパケットの最初のセルであれば、前記
セルのフィールドの内容とそのようなセットアップシーケンスを示す情報の特定
のパターンとを比較することで、当該セルがマルチメディアストリームデータの
クラスと関連するセットアップシーケンスの一部であるか否かを決定し、もしそ
うであれば、前記マルチメディアストリームデータのクラスとして特定されたパ
ケットの送信のサービスシーケンスのクオリティーを適用し、 (iii)もし、前記セルが前記データパケットの最初のセルであれば、
前記セルの特定フィールドの内容と、特定のフローのためのスタートアップシー
ケンスの一部であると先に決定されたデータパケット中の対応するフィールドの
内用途とを比較することで、前記データパケットが特定のフローとして特定され
ているか否かを決定し、さらに、 (d)前記セルのリンク及び前記サービスシーケンスのクオリティーに基づい
て、前記フローの一部であるデータパケットを送信する。
11. A method for flexible connection of an inbound physical path and an outbound physical path for a flow of data packets that are continuously converted into perceptual data by a human perceptible. , A method consisting of: (A) receive the data packet of the received physical path, (b) divide the received data packet into canonical cells, (c) for each successive one of the cells, (i) save the cell And logically link it to the previous cell, if it exists. (Ii) If the cell is the first cell of the data packet, comparing the contents of the fields of the cell with a specific pattern of information indicating such a setup sequence, the cell is a multimedia stream. Determining whether it is part of a setup sequence associated with a class of data and, if so, applying the quality of service sequence of the transmission of packets identified as the class of the multimedia stream data, iii) if the cell is the first cell of the data packet,
The data packet is identified by comparing the contents of the particular field of the cell with the internal use of the corresponding field in the data packet previously determined to be part of the startup sequence for the particular flow. Of the data packets that are part of the flow based on the link of the cell and the quality of the service sequence.
【請求項12】 前記特定の情報パターンは、ITU H.245プロトコル
の下でのセットアップパケット内の特異情報に対応するものである請求項11に
記載の方法。
12. The specific information pattern is ITU H.264. 12. The method of claim 11, corresponding to unique information in a setup packet under the H.245 protocol.
【請求項13】 前記サービスシーケンスのクオリティーは、ポインターテー
ブル内へのポインターのエントリーのシーケンスによって決定される前記請求項
11に記載の方法。
13. The method of claim 11, wherein the quality of the service sequence is determined by a sequence of pointer entries in a pointer table.
【請求項14】 前記フィールド内の内容を比較するステップは、前記フィー
ルドを細分した結果を比較することで達成されるものである請求項11に記載の
方法。
14. The method of claim 11, wherein the step of comparing the contents within the field is accomplished by comparing the results of subdividing the field.
【請求項15】 各保存されリンクされたセルは、送信のために配列されてい
る請求項11に記載の方法。
15. The method of claim 11, wherein each stored and linked cell is arranged for transmission.
【請求項16】 ステップ(c)(i)は、送信のために前記保存されリンク
されたセルを配列するステップをさらに備えている請求項11に記載の方法。
16. The method of claim 11, wherein step (c) (i) further comprises arranging the stored and linked cells for transmission.
【請求項17】 前記論理的なリンク及び配列は、前記セルが保存された対応
するメモリー位置へキューポインターをリンクすることで達成される請求項16
に記載の方法。
17. The logical linking and arraying is accomplished by linking a cue pointer to a corresponding memory location where the cell is stored.
The method described in.
【請求項18】 前記サービスシーケンスのクオリティーは、前記キューポイ
ンターへのポインターテーブル内へのエントリーのシーケンスによって決定され
るものである請求項17に記載の方法。
18. The method according to claim 17, wherein the quality of the service sequence is determined by the sequence of entries in the pointer table to the queue pointer.
【請求項19】 データパケットのフローのための受信フィジカルパス及び送
信フィジカルパスの柔軟な接続のための装置であって、以下のものからなる装置
。 前記受信フィジカルパスのデータパケットの受信手段。 前記データパケットがマルチメディアストリームデータのクラスと関連するセ
ットアップシーケンスの一部であるか否かを決定するためのセットアップシーケ
ンス手段。 前記データパケットがセットアップシーケンスの一部であれば、それにサービ
スシーケンスのクオリティーを適用するためのサービスクオリティー手段。 前記データパケットが所定のフローとして特定されているか否かを決定するた
めのフロー決定手段。及び、 前記サービスシーケンスのクオリティーに従って、前記特定のフローのデータ
パケットを送信するための送信手段。
19. A device for flexible connection of a receiving physical path and a transmitting physical path for a flow of data packets, which device comprises: Means for receiving the data packet of the reception physical path. Setup sequence means for determining whether the data packet is part of a setup sequence associated with a class of multimedia stream data. Quality of service means for applying the quality of service sequence to the data packet if it is part of a setup sequence. Flow determining means for determining whether or not the data packet is specified as a predetermined flow. And transmitting means for transmitting the data packet of the specific flow according to the quality of the service sequence.
【請求項20】 前記セットアップシーケンス手段は、さらに、前記データパ
ケットのフィールドの内容と、特定のセットアップシーケンスを示す特定の情報
パターンとを比較するための第一の比較手段を備えている請求項19に記載の装
置。
20. The setup sequence means further comprises first comparison means for comparing the contents of the field of the data packet with a specific information pattern indicating a specific setup sequence. The device according to.
【請求項21】 前記フロー決定手段は、さらに、前記データパケットの特定
フィールドの内容と、先に前記特定のフローのためのスタートアップシーケンス
の一部であると決定されたデータパケットのデータパケット内の対応するフィー
ルドの内容とを比較するための第二の比較手段を備えている請求項19に記載の
装置。
21. The flow determining means further includes the contents of a specific field of the data packet and a data packet of a data packet previously determined to be part of a startup sequence for the specific flow. 20. Apparatus according to claim 19, comprising second comparing means for comparing with the content of the corresponding field.
【請求項22】 前記第二の比較手段は、さらに、前記フィールドの細分結果
を比較する手段を備えている請求項21に記載の装置。
22. The apparatus of claim 21, wherein the second comparing means further comprises means for comparing the subdivision results of the fields.
【請求項23】 前記情報のパターンは、ITU H.245プロトコルの下
でのセットアップデータパケット内の特異データに対応する請求項20に記載の
装置。
23. The information pattern is ITU H.264. 21. The apparatus of claim 20, corresponding to singular data in a setup data packet under the H.245 protocol.
【請求項24】 前記受信手段は、前記データパケットの受信後直ちに前記受
信データパケットをカノニカルセルに分割するための手段をさらに有する請求項
19に記載の装置。
24. The apparatus of claim 19, wherein the receiving means further comprises means for dividing the received data packet into canonical cells immediately after receiving the data packet.
【請求項25】 前記送信手段は、前記受信されたデータパケットから抽出さ
れた前記各カノニカルセル内の前記データを連続的に送信する請求項24に記載
の装置。
25. The apparatus according to claim 24, wherein the transmitting means continuously transmits the data in each of the canonical cells extracted from the received data packet.
【請求項26】 メモリー位置内の前記受信パケットの前記セルの内の各連続
的な1つを保存するための保存手段と、 送信のために、保存された前記セルを論理的にリンクさせさらに配列するため
の配列手段とをさらに有する請求項24に記載の装置。
26. Storage means for storing each successive one of said cells of said received packet in a memory location, and logically linking said stored cells for transmission, 25. The apparatus of claim 24, further comprising arranging means for arranging.
【請求項27】 前記配列手段は、前記セルが保存されている対応するメモリ
ー位置にキューポインターをリンクさせるための手段をさらに有している請求項
26に記載の装置。
27. The apparatus of claim 26, wherein the arranging means further comprises means for linking a cue pointer to a corresponding memory location where the cells are stored.
【請求項28】 前記サービスクオリティー手段は、前記キューポインターへ
のポインターテーブル内のエントリーシーケンスをさらに備えている請求項27
に記載の装置。
28. The quality of service means further comprises an entry sequence in a pointer table to the queue pointer.
The device according to.
【請求項29】 データパケットのフローのための受信フィジカルパス及び送
信フィジカルパスの柔軟な接続のための装置であって、以下のものからなる装置
。 前記受信フィジカルパスと送信フィジカルパスとに接続されたインターフェイ
ス。 前記インターフェイスに接続されたマルチメディアデータストリーム検出器で
あって、前記データパケットが特定のマルチメディアストリームデータのクラス
と関連するか否かを決定するための検出器。 前記インターフェイスに接続され、前記データパケットが特定のフローの一部
であるか否かを決定するためのフロー検出器。 前記フロー検出器及び前記マルチメディアデータストリーム検出器に対応して
前記データパケットの送信を複数のキューの1つに割り当てるキューマネージャ
ーであって、当該割り当てられたキューは、特定のサービスクオリティーを提供
する。
29. An apparatus for flexible connection of a receiving physical path and a transmitting physical path for a flow of data packets, the apparatus comprising: An interface connected to the reception physical path and the transmission physical path. A multimedia data stream detector connected to the interface for determining whether the data packet is associated with a particular multimedia stream data class. A flow detector connected to the interface for determining whether the data packet is part of a particular flow. A queue manager that allocates the transmission of the data packet to one of a plurality of queues corresponding to the flow detector and the multimedia data stream detector, the allocated queue providing a particular quality of service. .
【請求項30】 データパケットのフローのための受信フィジカルパス及び送
信フィジカルパスの柔軟な接続のためのネットワークスイッチであって、以下の
ものからなる。 前記受信フィジカルパスと送信フィジカルパスとに接続され、データパケット
を受信するネットワークインターフェイス。 前記ネットワークインターフェイスに接続された送付エンジンであって、前記
データパケットが特定のマルチメディアストリームデータのクラスを示すか否か
を決定し、前記データパケットが特定のフローの一部であるか否かを決定するた
めの送付エンジン。及び、 前記送付エンジンの前記決定に応じて前記データパケットの送信の時間を管理
するために前記送付エンジンに接続されたキューマネージャー。
30. A network switch for flexible connection of a receiving physical path and a transmitting physical path for the flow of data packets, which comprises: A network interface connected to the reception physical path and the transmission physical path to receive a data packet. A sending engine connected to the network interface for determining whether the data packet represents a particular class of multimedia stream data, and whether the data packet is part of a particular flow. Sending engine for making decisions. And a queue manager connected to the sending engine for managing the time of transmission of the data packet according to the determination of the sending engine.
【請求項31】 データパケットのフローのための受信フィジカルパス及び送
信フィジカルパスの柔軟な接続のためのネットワークスイッチであって、以下の
ものからなる。 データパケットをを受信し、且つ、送信するためのネットワークインターフェ
イス。 前記データパケットを保存するためのメモリー。 マルチメディアデータストリームについての保存データを有するデータベース
。 前記メモリーと接続され、前記データパケットが前記データベース内の保存デ
ータを用いたマルチメディアデータストリームを示すか否かを決定するためのマ
イクロプロセッサであって、当該マイクロプロセッサはさらに前記パケットが特
定のフローの一部であるか否かについても決定し、前記マイクロプロセッサは前
記マルチメディアデータストリームお帯フローの決定に応じてサービスのクオリ
ティを決定する。さらに、 前記サービスのクオリティーに従って前記データパケットを送信するキューマ
ネージャー。
31. A network switch for flexible connection of a receiving physical path and a transmitting physical path for the flow of data packets, which comprises: A network interface for receiving and sending data packets. A memory for storing the data packet. A database with stored data about multimedia data streams. A microprocessor connected to the memory for determining whether the data packet represents a multimedia data stream using stored data in the database, the microprocessor further comprising: , The microprocessor determines the quality of service in response to the determination of the multimedia data stream ribbon flow. Further, a queue manager that sends the data packet according to the quality of service.
【請求項32】 データパケットのフローのための受信フィジカルパス及び送
信フィジカルパスの柔軟な接続のための方法であって、以下のものからなる方法
。 (a)前記受信フィジカルパスにおいて、送信者から受信者へのデータパケッ
トを受信し、 (b)前記データパケット内の少なくとも1つのマルチメディアデータフロー
ポート番号を特定することによって、前記データパケットがセットアップシーケ
ンスの一部であるか否かを決定することでマルチメディアデータフローを特定し
、 (c)前記マルチメディアデータフローにおけるデータパケットを送信するの
に使用される音響及び映像ポート番号のための前記送信者と受信者との間におけ
る接続を成立させるための交換を傍受し、 (d)前記音響及び映像ポート番号に応じて、前記マルチメディアデータフロ
ーにおける後続のデータパケットに適用されるべきサービスクオリティーを割り
当て、 (e)前記サービスクオリティーに従った、前記マルチメディアデータフロー
の後続のデータパケットを送信する。
32. A method for flexible connection of a receive physical path and a transmit physical path for a flow of data packets, the method comprising: (A) receiving a data packet from a sender to a receiver on the receiving physical path; (b) setting up the data packet by identifying at least one multimedia data flow port number in the data packet. Identifying a multimedia data flow by determining whether it is part of a sequence, and (c) said for audio and video port numbers used to transmit data packets in said multimedia data flow. Intercepting exchanges to establish a connection between sender and receiver, and (d) depending on the audio and video port number, the quality of service to be applied to subsequent data packets in the multimedia data flow. (E) according to the quality of service , Sending subsequent data packets of the multimedia data flow.
JP2000610253A 1999-04-03 2000-04-01 Automatic detection switch system and method for multimedia applications Pending JP2003524934A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US28561799A 1999-04-03 1999-04-03
US09/285,617 1999-04-03
PCT/US2000/008949 WO2000060899A1 (en) 1999-04-03 2000-04-01 Switching systems and process for automatic detection of and quality of service for multimedia applications

Publications (1)

Publication Number Publication Date
JP2003524934A true JP2003524934A (en) 2003-08-19

Family

ID=23095019

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000610253A Pending JP2003524934A (en) 1999-04-03 2000-04-01 Automatic detection switch system and method for multimedia applications

Country Status (4)

Country Link
EP (1) EP1172017A1 (en)
JP (1) JP2003524934A (en)
AU (1) AU4196300A (en)
WO (1) WO2000060899A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014515532A (en) * 2011-05-27 2014-06-30 クアルコム,インコーポレイテッド Hardware support for dynamic language hash tables

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7082133B1 (en) 1999-09-03 2006-07-25 Broadcom Corporation Apparatus and method for enabling voice over IP support for a network switch
US20020095400A1 (en) * 2000-03-03 2002-07-18 Johnson Scott C Systems and methods for managing differentiated service in information management environments
US6831890B1 (en) * 2000-10-31 2004-12-14 Agilent Technologies, Inc. Measuring network performance parameters in data communication networks
EP1382165A2 (en) * 2001-04-13 2004-01-21 MOTOROLA INC., A Corporation of the state of Delaware Manipulating data streams in data stream processors
GB0320506D0 (en) * 2003-09-02 2003-10-01 Koninkl Philips Electronics Nv Cell scheduling
CN100401842C (en) * 2005-04-14 2008-07-09 华为技术有限公司 Method for identifying flow bisness
US10764201B2 (en) 2017-11-28 2020-09-01 Dornerworks, Ltd. System and method for scheduling communications
CN112347142B (en) * 2020-11-17 2024-03-01 上海幻电信息科技有限公司 Data processing method and device

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05227211A (en) * 1992-02-17 1993-09-03 Fujitsu Ltd Packet switching system
JPH06509927A (en) * 1992-06-17 1994-11-02 アジレント・テクノロジーズ・インク Network monitoring method and device
JPH07273789A (en) * 1994-03-30 1995-10-20 Hitachi Ltd System and method for communication
JPH10322392A (en) * 1997-05-16 1998-12-04 Hitachi Ltd Packet network system and communication controller
JP2002164933A (en) * 1996-08-30 2002-06-07 Mmc Networks Inc Cell queuing in atm switch

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5533020A (en) * 1994-10-31 1996-07-02 International Business Machines Corporation ATM cell scheduler
GB9613020D0 (en) * 1996-06-21 1996-08-28 British Telecomm Atm partial cut-through

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05227211A (en) * 1992-02-17 1993-09-03 Fujitsu Ltd Packet switching system
JPH06509927A (en) * 1992-06-17 1994-11-02 アジレント・テクノロジーズ・インク Network monitoring method and device
JPH07273789A (en) * 1994-03-30 1995-10-20 Hitachi Ltd System and method for communication
JP2002164933A (en) * 1996-08-30 2002-06-07 Mmc Networks Inc Cell queuing in atm switch
JPH10322392A (en) * 1997-05-16 1998-12-04 Hitachi Ltd Packet network system and communication controller

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014515532A (en) * 2011-05-27 2014-06-30 クアルコム,インコーポレイテッド Hardware support for dynamic language hash tables
US9063749B2 (en) 2011-05-27 2015-06-23 Qualcomm Incorporated Hardware support for hashtables in dynamic languages

Also Published As

Publication number Publication date
EP1172017A1 (en) 2002-01-16
WO2000060899A1 (en) 2000-10-12
AU4196300A (en) 2000-10-23

Similar Documents

Publication Publication Date Title
US6426943B1 (en) Application-level data communication switching system and process for automatic detection of and quality of service adjustment for bulk data transfers
US6226267B1 (en) System and process for application-level flow connection of data processing networks
US6430184B1 (en) System and process for GHIH-speed pattern matching for application-level switching of data packets
US6714553B1 (en) System and process for flexible queuing of data packets in network switching
US6522188B1 (en) High-speed data bus for network switching
JP2002541732A5 (en)
US7647472B2 (en) High speed and high throughput digital communications processor with efficient cooperation between programmable processing components
JP3832816B2 (en) Network processor, memory configuration and method
US6377998B2 (en) Method and apparatus for performing frame processing for a network
CA1337664C (en) Packet switches, switching methods, protocols and networks
JP3872342B2 (en) Device for network and scalable network processor
JP4066382B2 (en) Network switch and component and method of operation
US6122279A (en) Asynchronous transfer mode switch
JP3817477B2 (en) VLSI network processor and method
US20030133465A1 (en) System for reordering sequenced based packets in a switching network
JPH02131048A (en) Packet transfer method between adapter, contention eliminating device and token-ring device
JPH10505977A (en) Asynchronous transfer mode adapter for desktop
US7206880B2 (en) Multi-protocol bus system and method of operation thereof
JP2003508957A (en) Network processor processing complex and method
EP1082668A1 (en) Digital communications processor
US5495478A (en) Apparatus and method for processing asynchronous transfer mode cells
JP2003524934A (en) Automatic detection switch system and method for multimedia applications
WO1995014269A1 (en) A high-performance host interface for networks carrying connectionless traffic
JPH0213036A (en) Interface protocol from user to network for packet communication network
JPH1023059A (en) Inter-lan connection device

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

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100126

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100907