JP4524734B2 - 外部デバイス伝送システムおよびこれを採用する高速パターンプロセッサ - Google Patents

外部デバイス伝送システムおよびこれを採用する高速パターンプロセッサ Download PDF

Info

Publication number
JP4524734B2
JP4524734B2 JP2002093461A JP2002093461A JP4524734B2 JP 4524734 B2 JP4524734 B2 JP 4524734B2 JP 2002093461 A JP2002093461 A JP 2002093461A JP 2002093461 A JP2002093461 A JP 2002093461A JP 4524734 B2 JP4524734 B2 JP 4524734B2
Authority
JP
Japan
Prior art keywords
argument
external device
context
modified
transmission system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2002093461A
Other languages
English (en)
Other versions
JP2003008618A (ja
Inventor
エー. ブラウン ディヴィッド
イー. ローソン シャノン
ダブリュ. マックギー シーン
ゾーハー レスリー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Agere Systems LLC
Original Assignee
Agere Systems LLC
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 Agere Systems LLC filed Critical Agere Systems LLC
Publication of JP2003008618A publication Critical patent/JP2003008618A/ja
Application granted granted Critical
Publication of JP4524734B2 publication Critical patent/JP4524734B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、一般的には、通信システム、より詳細には、外部デバイス伝送システム、外部デバイスにコマンドを伝送するための方法、および上述のシステムおよび方法を採用する高速パターンプロセッサに関する。
【0002】
【従来の技術】
通信網は、今日、リアルタイム情報を多様な位置に配信することに対する需要の増加によってもたらされた革命の最中にある。多くの状況において、多量のデータを、地理的境界を越えて、より高速かつ高精度に伝送する能力が要求される。ただし、今日では、ますます大きなサイズのますます複雑なデータが伝送されるようになっており、要求される速度および精度を維持することはますます困難になっている。
【0003】
初期の通信網は、階層星型トポロジーに似た形態に構成された。遠隔サイトからのアクセスは全てメインフレームコンピュータが配備される中央位置にチャネルバックされた。このため、ある遠隔サイトから別の遠隔サイトへの、あるいはある遠隔サイトから中央位置へのデータ伝送は全て中央位置にて処理することを要求された。このアーキテクチャは、極端にプロセッサ集中的(processor−intensive)であり、各伝送に対してより高い帯域幅の利用が強いられる。このことは、1980年第の中期から後期頃までは、比較的少数の遠隔サイトしか中央位置に結合されてなかったためにそれほど重大な問題とはならなかった。加えて、多くの遠隔サイトは、中央位置と近接した配置されていた。
ただし、今日では、数十万もの遠隔サイトが様々な大陸間(assorted continents)を横断して様々な場所に位置する。このため、過去の伝統的な網では、今日の市場において要求される速度および精度にてデータを伝送することは不可能となっている。
【0004】
このような爆発的な需要に答えて、分散処理を用いてデータを網を通じて伝送する方式が採用されることとなり、これによって多数の情報をパケットとして複数の地理的境界を越えて正確かつ迅速に分配することが可能となった。今日、多くの通信サイトは、多くの他のサイトと、それらの位置と関係なく、通信する知能(インテリジェント)と能力を持つ。これは、典型的には、中央化されたトポロジーではなく、ピアレベルにて達成され、中央サイトの所のホストコンピュータは、もっぱら、どのようなトランザクションが行なわれているかを監視したり、データベースを維持し、これから管理レポートを生成したり、運用上の問題に当たったりすることにとどまる。
【0005】
今日の分散処理においては、中央サイトは、過去の多くのプロセッサ集中的なデータ転送要件から解放される。データの転送は、典型的には、データ網を用いて達成され、データ網はルータの集合から成る。これらルータは、遠隔サイト間で情報およびデータファイルを知能的にやりとりする能力を持つ。ただし、今日の情報およびデータファイルのルーティングに対する需要並びにこれに対して要求される複雑さの増加のために、現存のルータの能力も直ぐに限界に達した。新たなタイプのプロセッサおよびデバイスを採用することで、幾らかの効率は得られている。ただし、これらプロセッサおよびデバイスは、しばしば、特殊な処理構造を要求し、このため、これらを収容するためにはシステムの再設計が必要となる。
【0006】
【発明が解決しようとする課題】
より具体的には、システム内で遂行される基本動作は、関数コマンド(function commands)によって決定される。従って、セットの関数コマンドの決定は、 通常、システム設計において重要なパラメータとなる。これは、各コマンドは、典型的には、制御レジスタ内に硬直に定義されたフィールドを持つためである。これら関数フィールド(function fields)の定義によってシステムに対するハードウエア設計が規定され、従って、これら関数フィールドが変更は、必然的にシステムハードウエアの変更を伴うが、これは通常は現実的でない。加えて、固定の関数フィールド(fixed function fields)の場合、システムによって収容できる外部デバイスの範囲も制限される。このことは、これら様々な外部デバイスの特性が異なる場合は特にそうである。
【0007】
従って、当分野においては、通信システム内に採用される異なるデバイス間での関数(function)の使用を促進し、従来の技術の欠点を克服することができるやり方に対する必要性が存在する。
【0008】
【課題を解決するための手段】
従来の技術の上述の欠陥を克服するために、本発明は、内部関数バスを持つ高速パターンプロセッサと共に用いる外部デバイス伝送システム、外部デバイス伝送システムにコマンドを送信するための方法、およびこのシステムおよび方法を採用する高速パターンプロセッサを提供する。一つの実施例においては、外部デバイス伝送システムは、複数の引数署名レジスタを維持するコンテクストメモリサブシステムを含み、これら複数の引数署名レジスタの各々は、一つの対応するコンテクストと関連し、一つの対応する引数を含む。外部デバイス伝送システムはさらに、引数を動的に修正し、こうして修正された引数と関連するコンテクストの関数として、送信コマンドを生成するパターン処理エンジンを備える。外部デバイス伝送システムはさらに、この送信コマンドを受信し、この送信コマンドに基づいて、修正された引数を外部デバイスに送信する出力インタフェースサブシステムを備える。
【0009】
もう一つの実施例においては、本発明はコマンドを外部デバイスに伝送するための方法を提供する。一つの実施例においては、この方法は、複数の引数署名レジスタを維持するステップを含み、この複数の引数署名レジスタの各々は一つの対応するコンテクストと関連し、一つの対応する引数を含む。この方法はさらに、引数を動的に修正するステップ、修正された引数と関連するコンテクストの関数として、送信コマンドを生成するステップ、および送信コマンドに基づいて修正された引数を外部デバイスに送信するステップを含む。
【0010】
もう一つの実施例においては、本発明は、高速パターンプロセッサを提供する。この高速パターンプロセッサは、一つの実施例においては、内部関数バス、外部デバイス伝送システムおよびデータバッファコントローラを備える。外部デバイス伝送システムは、複数の引数署名レジスタを維持するコンテクストメモリサブシステムを含み、これら複数の引数署名レジスタの各々は、一つの対応するコンテクストと関連し、一つの対応する引数を含む。外部デバイス伝送システムはさらに、引数を動的に修正し、こうして修正された引数と関連するコンテクストの関数として、送信コマンドを生成するパターン処理エンジンを備える。外部デバイス伝送システムはさらに、この送信コマンドを受信し、この送信コマンドに基づいて、修正された引数を外部デバイスに送信する出力インタフェースサブシステムを備える。データバッファコントローラは、構成情報をコンテクストメモリサブシステムの対応するコンテクストと関連する部分に格納する。
【0011】
上では、本発明の好ましい実施例(特徴)および代替実施例(特徴)について当業者が本発明の以下の詳細をより良く理解できるようにやや広く概説した。以下では、本発明のクレームの主題を構成する本発明の追加の実施例(特徴)についても説明される。当業者においては理解できるように、ここに開示される概念および特定の実施例を用いて、本発明の同一の目的を遂行する他の構造を設計あるいはこれらを他の構造に修正することもできる。当業者においては理解できるように、このような同等な構造も本発明の精神および範囲から最も広い意味において逸脱するものではない。
【0012】
本発明のより完全な理解が以下の説明を付属の図面を参照しながら読むことで得られるものである。
【0013】
【発明の実施の形態】
図1は本発明の原理に従って構成された通信網100の一つの実施例のブロック図を示す。通信網100は、より一般的には、情報をデータパケットの形式にて網内のある点から網内のもう一つの点に伝送するように設計される。
【0014】
図1に示すように、通信網100はパケット網110、公衆電話網(PSTN)115、発信デバイス120および着信デバイス130を含む。図1に示す説明の実施例においては、パケット網110は非同期転送モード(Asynchronous Transfer Mode、ATM)網から成る。ただし、当業者においては容易に理解できるように、本発明は任意の他のパケット網を用いることもできる。パケット網110は、ルータ140、145、150、160、165、170およびゲートウェイ155を含むが、当業者においては理解できるように、パケット網110は任意の数のルータおよびゲートウェイを含むことができる。
【0015】
ソースデバイス120はパケット網110を通じて宛先デバイス130に送信されるべきデータパケットを生成する。説明の実施例においては、ソースデバイス120は、最初、データパケットを第一のルータに送信し、第一のルータは、次に、そのデータパケットから、ルーティング情報および網の負荷状況(loading)に基づいてそのデータパケットをどのルータに送信すべきかを決定する。次のルータの選択を決定する際に用いられる幾つかの情報には、データパケットのサイズ、ルータおよび宛先への通信リンクの負荷状況が含まれる。説明の実施例においては、第一のルータ140はデータパケットを第二のルータ145あるいは第四のルータ160に送信する。
【0016】
データパケットは、パケット網110内のルータからルータへと横断し、ゲートウェイ155へと辿り着く。ある一つの特定の実施例においては、データパケットは、第一のルータ140、第四のルータ160、第五のルータ165、第六のルータ170、第三のルータ150、そして最後にゲートウェイ155へと至る経路を辿る。ゲートウェイ155は、このデータパケットを、パケット網110と関連するプロトコルから公衆交換網(PSTN)115と互換性のある異なるプロトコルに変換する。ゲートウェイ155は次にこのデータパケットをPSTN115を経由して宛先デバイス130に送信する。ただし、別の例として、データパケットは、異なる経路、例えば、第一のルータ140、第二のルータ145、第三のルータ150、そして、最終的にゲートウェイ155へと辿り着くことも考えられる。次のルータを選択する際には、通常はデータパケットが辿る経路はそのデータパケットに対して最速スループット(fastest throughput)であることを要求される。ただし、この経路は常に最少数のルータを含むとは限らない。
【0017】
図2は、本発明の原理に従って構成されたルータアーキテクチャ200の実施例のブロック図を示す。このルータアーキテクチャ200は、一つの実施例においては、図1に示す任意のルータ内で用いられる。ルータアーキテクチャ200は、新規なハードウエアとソフトウエアの組合せを持ち、複数の通信プロトコルに対して、高速処理能力を、フルプログラムビリティ(full programmability)にて達成する。この新規な組合せは、従来の縮小命令セット計算(reduced instruction set computing、RISC)プロセッサのプログラムビリティ(programmability)を、これまでは特定用途向け集積回路(application specific integrated circuit、ASIC)プロセッサによってしか達成できなかった速度にて提供する。
【0018】
図2に示す実施例においては、ルータアーキテクチャ200は、物理インタフェース210、高速パターンプロセッサ(fast pattern processor、FPP)220、ルーティングスイッチプロセッサ(routingswitch processor、RSP)230、およびシステムインタフェースプロセッサ(system interface processor、SIP)240を備える。ルータアーキテクチャ200は、さらに、RSP230とファブリック網260に結合されたファブリックインタフェースコントローラ250を備える。本発明の範囲から逸脱することなく、図示されない他の要素もルータアーキテクチャ200内に含めることもできることに注意する。
【0019】
物理インタフェース210は、外部網への結合を提供する。一つの実施例においては、物理インタフェース210は、POS PHY/UTOPIAレベル3インタフェースから成る。一つの実施例においては、FPP220は物理インタフェース210に結合され、物理インタフェース210からプロトコルデータユニット(protocol data units、PDU)を含むデータ流を受信する。FPP220はこれらPDUを分析および分類し、RSP230にパケットを出力することで処理を終える。
【0020】
FPP220は、強力な高水準関数プログラミング言語(functional programming language、FPL)との関連で、複雑なパターンおよび署名(signature)認識を実現する能力を持ち、これら署名を含む処理ブロックに関して動作する。FPP220は、データ流のペイロードの個々の全てのバイトとヘッダに関してパターン分析を遂行する。このパターン分析の結論は、次に、システム論理、すなわちRSP230に送られ、RSP230はこれを用いて、処理ブロックの操作(manipulation)およびキューイング(queuing)機能を行なう。FPP220とRSP230は、スイッチングおよびルーティングに対する解決(solution)を提供する。FPP220は、さらに、RSP230およびSIP240に対するグルーレスインタフェース(glueless interfaces)を提供し、こうして、次世代テラビットスイッチおよびルータにおけるワイヤ速度処理(wire−speed processing)に対する完全な解決を提供する。
【0021】
図2に示すように、FPP220は、物理インタフェース210からのデータ流を受信するために第一の通信リンク270を用いる。この第一の通信リンク270は、例えば、産業標準のUTOPIAレベル3/UTOPIAレベル2/POS PHYレベル3インタフェースから成る。加えて、FPP220は、パターンおよび結論をRSP230に送信するために第二の通信リンク272を用いる。この第二の通信リンク272は、例えば、POS PHYレベル3インタフェースから成る。
【0022】
FPP220は、さらに、管理パスインタフェース(management path interface、MPI)275、関数バスインタフェース(function bus interface、FBI)280、および構成バスインタフェース(configuration bus interface、CBI)285を含む。MPI275は、FPP220によってローカルマイクロプロセッサから管理フレームを受信するために用いられる。一つの実施例においては、これはSIP240を通じて扱われる。FBI280は、FPP220とSIP240を、あるいは幾つかの状況においてはカスタム論理とを、関数呼(function calls)の外部処理のために接続するために用いられる。CNI285は、FPP220と他のデバイス(例えば、物理インタフェース210およびRSP230)をSIP240に接続するために用いられる。本発明の範囲から逸脱することなく、他のインタフェース(図示せず)、例えばメモリインタフェースを設けることもできる。
【0023】
FPP220は、これがプログラマブルであり、多様なアプリケーションおよびプロトコルの性能の最適化における柔軟性を持つという点で追加の利益を提供する。つまり、FPPは固定された機能を持つASICではなく、プログラマブルなプロセッサであるために、将来開発されるであろう新たなプロトコルおよびアプリケーション並びに要求されるであろう新たなネットワーク機能を扱うことができる。FPP220は、さらに、多様な探索アルゴリズムを収容することもでき、これら探索アルゴリズムは大きなリストにも適用することができる。
【0024】
RSP230もプログラマブルであり、FPP220と協調して、FPP220によって分類されたPDUを処理する。RSP230はFPP220から受信される分類情報を用いて、PDUペイロードの開始オフセットおよび長さを決定することで、そのPDUに対する分類結論を得る。この分類情報は、そのPDUに対して選択されるべきポートおよび関連するRSP230を決定するために用いられる。RSP230は加えてフラッグの形式にてパスされる追加のPDUもさらなる処理のために受信する。
【0025】
RSP230は、さらに、ランダム早期廃棄(random early discard、RED)、重み付きランダム早期廃棄(weighted random early discard、WRED)、早期パケット廃棄(early packet discard、EPD)、および部分的パケット廃棄(partial packet discard、PPD)などの方針を含むプログラマブルなトラヒック管理を提供する。RSP230は、さらに、キュー毎にプログラマブルなサービス品質(quality of service、QoS)およびサービスクラス(class of service、CoS)パラメータを含むプログラマブルなトラヒック整形(traffic shaping)も提供する。QoSパラメータには、固定ビットレート(constant bit rate、CBR)、未指定ビットレート(unspecified bit rate、UBR)、および可変ビットレート(variable bit rate、VBR)が含まれる。同様に、CoSパラメータには、固定優先(fixedpriority)、ラウンドロビン(round robin)、重み付きラウンドロビン(weighted round robin、WRR)、重み付き公平キューイング(weighted fair queuing、WFQ)および保障フレームレート(guaranteed frame rate、GFR)が含まれる。
【0026】
代替として、RSP230は、ヘッダあるいはテーラの追加あるいは削除、内容の書替えあるいは修正、タグの追加、および検査合計とCRCの更新を含むプログラマブルなパケット修正を提供することもできる。RSP230は、C言語と類似のセマンティクス(semantics:意味)を持つ記述言語を用いてプログラミングされる。このような言語は当分野において周知である。RSP230にはファブリックインタフェースコントローラ250およびファブリック網260も接続される。ファブリックインタフェースコントローラ250は、典型的には通信網から成るファブリック260への物理インタフェースを提供する。SIP240は、FPP220、RSP230および物理インタフェース210、250の初期化および構成を集中的に扱う。SIP240は、一つの実施例においては、方針の決定(policing)、管理状態情報の供給、ホストコンピュータへの周辺要素相互接続(peripheral component interconnect、PCI)接続の提供等を行なう。SIP240には、例えば、Agere Systems,Inc.から市販されているPayloadPlus(登録商標)Agere System Interfaceが用いられる。
【0027】
図3は本発明の原理に従って構成された高速パターンプロセッサ(FPP)300の一つの実施例のブロック図を示す。FPP300は、外部入力データ流330、332を介してPDUを受信する入力フレーマ302を備える。入力フレーマ302は、これらPDUを含むパケットを64−バイト処理ブロックにフレーム化し、この処理ブロックを外部データバッファ340内に格納する。入力データ流330と332は、それぞれ、物理(PHY)インタフェースからの32−ビットUTOPIA/POS/PHYからのデータ流と、IP240からの8−ビットPOS−PHY管理パスインタフェース(図2)からのデータ流から成る。
【0028】
典型的には、処理ブロックを外部データバッファ340に格納するためにデータバッファコントローラ304が用いられる。データバッファコントローラ304は、加えて、この処理ブロックおよび関連する構成情報をコンテクストメモリサブシステム308の、1つの処理スレッドを構成する、コンテクストと関連する部分にも格納する。図示するように、コンテクストメモリサブシステム308はデータバッファコントローラ304に結合される。
【0029】
加えて、コンテクストメモリサブシステム308は、検査合計/巡回冗長検査(CRC)エンジン314およびパターン処理エンジン312にも結合される。検査合計/巡回冗長検査(CRC)エンジン314は、処理ブロックおよび処理ブロック内に含まれるPDUに関して検査合計あるいはCRC機能を遂行する。パターン処理エンジン312は、PDUをどのように分類し、処理すべきかを決定するパターンマッチング(pattern matching)を遂行する。パターン処理エンジン312はプログラムメモリ350に結合される。
【0030】
FPP300は、さらに、キューエンジン316および演算論理ユニット(arithmetic logic unit、ALU)318を備える。キューエンジン316は、FPP300に対するリプレイコンテクスト(replay contexts)の管理、ブロックバッファに対するアドレスの提供、並びに、ブロック、PDU、および接続キューに関する情報の維持を行なう。キューエンジン316は、外部制御メモリ360と内部関数バス310に結合される。
【0031】
ALU318は内部関数バスに結合され、関連する計算機能を遂行する。
【0032】
内部関数バス310には関数バスインタフェース322も結合される。関数バスインタフェース322は、外部関数プログラミング言語による関数呼をデータポート336を通じて外部論理にパスする。一つの実施例においては、このデータポート336は、SIP240(図2)への32ビット接続から成る。FPP300は、さらに、外部に接続されたプロセッサからの構成リクエストを処理するための構成バスインタフェース320を備える。図示するように、この構成バスインタフェース320は、データポート334、例えば、8−ビットCBIソースに接続される。
【0033】
加えて、内部関数バス310には、出力インタフェース306が結合される。
出力インタフェース306は、PDUおよびこれらの分類結論を下流の論理に送信する。出力インタフェース306は、データバッファ340内に格納されている処理ブロックを取り出し、これら処理ブロック内に含まれるPDUを出力データポート338を通じて外部ユニットに送る。出力データポート338は、一つの実施例においては、RSP230(図2)に接続された32−ビットPOS−PHYから成る。
【0034】
図4は本発明の原理に従って構成された外部デバイス伝送システム400の一つの実施例のブロック図を示す。外部デバイス伝送システム400は、内部関数バスを持つ高速パターンプロセッサと共に用いられる。外部デバイス伝送システム400は、複数の引数署名レジスタ(argument signatureregister)406を持つコンテクストメモリサブシステム405、内部関数バス415を利用するパターン処理エンジン410、および出力インタフェースサブシステム420を備える。パターン処理エンジン410はプログラムメモリ430に結合され、出力インタフェースサブシステム420は出力データポート416を介して外部プロセッサ425に結合される。
【0035】
コンテクストメモリサブシステム405は、複数の引数署名レジスタ406を維持するように構成される。これら引数署名レジスタ406の各々は、対応する引数を含み、対応するコンテクストと関連する。コンテクスト(context)は、FPPによって用いられる一つの処理スレッドである。(コンテクストの説明については図3を参照されたい)。コンテクストは、コンテクストメモリサブシステム405内のブロックバッファ(図示せず)内に格納されている処理ブロックとも関連する。各処理ブロックはプロトコルデータユニット(PDU)の少なくとも一部を含む。
【0036】
本発明の目的に対しては、「プロトコルデータユニット(protocol data unit)」は、網を通じてパケットを介して伝送される特定のプロトコル内の底辺に横たわるメッセージ(underlying message)を意味する。例えば、プロトコルデータユニットは、非同期転送モード(Asynchronous Transfer Mode、「ATM」)網を通じて伝送されるインターネットプロトコル(Internet Protocol、「IP」)メッセージであり得る。ATM網においては、IPメッセージはATM網を通じて伝送する前にATMセル(パケット)に分解される。ただし、勿論、プロトコルデータユニットは、網を通じて伝送される任意のプロトコルメッセージであり得、パケットはプロトコルデータユニットの一部分であることも、プロトコルデータユニット全体であることもあり得る。「構成される(configuredto)」なる用語は、そのデバイス、システムあるいはサブシステムが、記述されるタスクを達成するために必要なソフトウエア、ハードウエア、ファームウエアあるいはこれらの組合せを備えることを意味する。
【0037】
説明の実施例においては、パターン処理エンジン410は、プログラムメモリ430および関数プログラミング言語(FPL)にて定義される動作命令のシーケンスを用いて、その動作を指令する。関数プログラミング言語は、Cプログラミング言語などの手続き型プログラミング言語とは、関数(function)を遂行するためにより少数のコードラインを必要とし、従って、本質的により直観的である点で異なる。これら属性は、プログラミングの容易さと、全体としての性能の向上の両方に貢献する。
【0038】
加えて、パターン処理エンジン410は、引数を動的に修正するように構成される。この修正された引数は、例えば、外部デバイスコマンド、ルーティングパラメータおよびプロトコルデータユニットの分類を表すデータ含む。勿論、これらは可能なものの単なる例示に過ぎず、本発明はこれらに制限されるものではない。パターン処理エンジンは、さらに、修正された引数をPDUの内容(content)に基づいて動的に修正するように構成される。加えて、パターン処理エンジン410は、修正された引数と関連するコンテクストの関数として、送信コマンド(tramsmit command)を生成する。この送信コマンドは、内部関数バス415を介して出力インタフェースサブシステム420に送信される。
【0039】
出力インタフェースサブシステム420は、内部関数バス415から送信コマンドを受信し、この送信コマンドに基づいて修正された引数を、外部デバイス、例えば、外部プロセッサ425に送信する。説明の実施例においては、外部プロセッサ425はルーティングスイッチプロセッサから成る。ただし、勿論、本発明は、送信コマンドを、たった1つの外部プロセッサ425に送信することに制限されるものではなく、他の幾つかの実施例においては、本発明は、送信コマンドを、任意の数の外部プロセッサに送信し、送信コマンドは外部プロセッサに依存して異なる情報を含む。一つの関連する実施例においては、出力インタフェースサブシステム420は、さらに、プロトコルデータユニットの一部分と修正された引数を外部プロセッサ425に送信するように構成される。こうして、本発明は、長所として、任意のデータを外部デバイスにパスするための一般メカニズムを提供する。
【0040】
図5は本発明の原理に従って構成された複数の引数署名レジスタ500の一つの実施例の略図を示す。説明の実施例においては、これら複数の引数署名レジスタ500は、引数署名レジスタ0から引数署名レジスタ63までの64個の引数署名レジスタから構成される。これら引数署名レジスタ0〜63の各々は、外部デバイスコマンドでもあり得る引数、ルーティングパラメータ、プロトコルデータユニットの分類、キュー番号、セットのフラッグ、オフセットあるいはストリング番号を含む。勿論、引数は、本発明によって採用可能な任意の他のタイプの情報あるいはパラメータを含むこともできる。これら引数署名レジスタ0〜63の各々は、64ビット幅の引数を収容する。ただし、これら複数の引数署名レジスタは、64個の引数署名レジスタと64ビット幅に制限されるものではなく、本発明の他の幾つかの実施例においては、任意の数の引数署名レジスタと任意のビット幅が用いられる。説明の実施例においては、これら引数署名レジスタ0〜63のおのおのは一つのコンテクストと関連し、コンテクスト番号を用いてアクセスされる。こうして、本発明によると、長所として、異なる内部あるいは外部コープロセッサ(co−processors)間で引数をコンテクスト番号を用いてパスすることが可能となる。
【0041】
図6は本発明の原理に従って構成された外部デバイスにコマンドを送信するための方法600の一つの実施例の流れ図を示す。方法600は内部関数バスを持つ高速パターンプロセッサとの関連で用いられ、ステップ605における初期化から開始される。次に、ステップ610において、複数の引数署名レジスタの維持が達成される。つまり、複数の引数署名レジスタの各々は、対応する引数を、対応するコンテクストと関連付ける。この維持には、これら複数の署名レジスタの各々の初期化および更新も含まれる。次に、ステップ615において、関数プログラミング言語(FPL)の命令が処理され、次に、第一の判定ステップ620において、送信コマンドが生成されるべきであるか否かの決定が下される。
【0042】
第一の判定ステップ620において、送信コマンドが生成されるべきことが決定された場合は、ステップ625において、高速パターンプロセッサと関連するパターン処理エンジンの指令の下で、引数が動的に修正される。方法600は、引数を動的に修正するために、関数プログラミング言語にて定義される動作命令のシーケンスを用いる。こうして修正された引数は、外部デバイスコマンド、ルーティングパラメータおよびプロトコルデータユニットの分類から成る一群から選択されるデータを含む。もう一つの実施例においては、こうして修正された引数は、プロトコルデータユニットの内容に基づいて動的に修正される。
【0043】
次に、ステップ630において、修正された引数と関連するコンテクストの関数として送信コマンドが生成される。次に、ステップ635において、修正された引数が外部デバイスに送信される。ステップ635は、プロトコルデータユニットの部分と修正された引数を、例えば、ルーティングスイッチプロセッサから成る外部デバイスに送信することもできる。一つの関連する実施例においては、方法600は、修正された引数を外部デバイスに送信するために出力インタフェースサブシステムを用いる。この方法は、次に、さらなる処理のためにステップ615に戻る。他方、第一の判定ステップ620において、送信コマンドを生成しないことが決定された場合も、方法600は、さらなる処理のためにステップ615に戻る。
【0044】
当業者においては理解できるように、本発明は上述のタイプのリクエストに制限されるものではない。さらに、本発明は上述のような処理のシーケンスに制限されるものでもない。本発明の他の実施例として、追加のタイプのコマンドを生成することも、あるいはステップ数を追加もくしは削減することもできる。
【0045】
本発明が詳細に説明されたが、当業者においては理解できるように、本発明の精神および範囲から最も広い意味において逸脱することなく、様々な変更、置換および代替を加えることも可能である。
【図面の簡単な説明】
【図1】本発明の原理に従って構成された通信網の一つの実施例のブロック図を示す。
【図2】本発明の原理に従って構成されたルータアーキテクチャの一つの実施例のブロック図を示す。
【図3】本発明の原理に従って構成された高速パターンプロセッサの一つの実施例のブロック図を示す。
【図4】本発明の原理に従って構成された外部デバイス伝送システムの一つの実施例のブロック図を示す。
【図5】本発明の原理に従って構成された複数の引数署名レジスタの一つの実施例のブロック図を示す。
【図6】本発明の原理に従って構成された外部デバイスにコマンドを送信するための方法の一つの実施例の流れ図を示す。
【符号の説明】
100 通信網
110 パケット網
115 公衆電話網(PSTN)
120 発信デバイス
130 着信デバイス
140、145、150、160、170 ルータ
155 ゲートウェイ
200 ルータアーキテクチャ
210 物理インタフェース
220 高速パターンプロセッサ(FPP)
230 ルーティングスイッチプロセッサ(RSP)
240 システムインタフェースプロセッサ(SIP)
250 ファブリックインタフェースコントローラ
260 ファブリック網
270 第一の通信リンク
272 第二の通信リンク
275 管理パスインタフェース(MPI)
280 関数バスインタフェース(FBI)
285 構成バスインタフェース(CBI)
300 高速パターンプロセッサ(FPP)
302 入力フレーマ
304 データバッファコントローラ
306 出力インタフェース
308 コンテクストメモリサブシステム
330、332 外部入力データ流
310 内部関数バス
312 パターン処理エンジン
314 検査合計/巡回冗長検査(CRC)エンジン
316 キューエンジン
318 演算論理ユニット(ALU)
322 関数バスインタフェース
334 データポート
336 データポート
338 出力データポート
340 外部データバッファ
350 プログラムメモリ
360 外部制御メモリ
400 外部デバイス伝送システム
406 引数署名レジスタ
405 コンテクストメモリサブシステム
410 パターン処理エンジン
415 内部関数バス
416 出力データポート
420 出力インタフェースサブシステム
425 外部プロセッサ
430 プログラムメモリ

Claims (9)

  1. 内部関数バスを持つ高速パターンプロセッサと共に用いる外部デバイス伝送システムであって、
    複数の引数署名レジスタを維持するように構成されたコンテクストメモリサブシステムであって、前記複数の引数署名レジスタの各々が一つの対応するコンテクストと関連づけられるとともに、一つの対応する引数を含むようなコンテクストメモリサブシステムと、
    前記複数の引数署名レジスタのうちの1つのレジスタからの引数を動的に修正し、当該修正された引数と関連づけられるコンテクストの関数として、送信コマンドを生成するように構成されたパターン処理エンジンと、
    前記送信コマンドを受信し、およびこの送信コマンドに基づいて、前記修正された引数を外部デバイスに対して送信するように構成された出力インタフェースサブシステムと、を備えることを特徴とする外部デバイス伝送システム。
  2. 前記修正された引数が、
    外部デバイスコマンド、
    ルーティングパラメータ、および
    プロトコルデータユニットの分類、から成る一群から選択されたデータを含む請求項1記載の外部デバイス伝送システム。
  3. 前記出力インタフェースサブシステムが、さらにプロトコルデータユニットの一部分と前記修正された引数を前記外部デバイスに送信するように構成される請求項1記載の外部デバイス伝送システム。
  4. 前記パターン処理エンジンが、さらに前記修正された引数をプロトコルデータユニットの内容に基づいて動的に修正するように構成される請求項1記載の外部デバイス伝送システム。
  5. 内部関数バスを持つ高速パターンプロセッサと共に用いる、コマンドを外部デバイスに送信するための方法であって、
    複数の引数署名レジスタを維持するステップであって、この複数の引数署名レジスタの各々が一つの対応するコンテクストと関連づけられるとともに、一つの対応する引数を含むステップと、
    送信コマンドを送信すべきかどうかを決定して、送信コマンドが生成される場合に、前記複数の引数署名レジスタのうちの1つのレジスタからの引数を動的に修正するステップと、
    前記修正された引数と関連づけられるコンテクストの関数として、前記送信コマンドを生成するステップと、
    前記送信コマンドに基づいて、前記修正された引数を外部デバイスに対して送信するステップと、を含むことを特徴とする方法。
  6. 前記修正された引数が、
    外部デバイスコマンド、
    ルーティングパラメータ、および
    プロトコルデータユニットの分類、から成る一群から選択されたデータを含む請求項5記載の方法。
  7. 前記送信するステップが、さらに、プロトコルデータユニットの一部分と前記修正された引数を前記外部デバイスに送信する処理を含む請求項5記載の方法。
  8. 高速パターンプロセッサであって、
    内部関数バスと、
    外部デバイス伝送システムとを含み、この外部デバイス伝送システムが、
    複数の引数署名レジスタを維持するコンテクストメモリサブシステムであって、前記複数の引数署名レジスタの各々が一つの対応するコンテクストと関連づけられるとともに、一つの対応する引数を含むコンテクストメモリサブシステムであって、前記対応するコンテクストの各々がコンテクスト番号により識別され、および各引数署名レジスタが前記コンテクスト番号を用いてアクセスされるようになっているコンテクストメモリサブシステムと、
    前記複数の引数署名レジスタのうちの1つのレジスタ内の引数を動的に修正し、この修正された引数と関連づけられるコンテクストの関数として、送信コマンドを生成するパターン処理エンジンと、
    前記パターン処理エンジンから前記内部関数バスを介して前記送信コマンドを受信し、この送信コマンドに基づいて、前記修正された引数を外部デバイスに対して送信する出力インタフェースサブシステムと、
    構成情報を、前記コンテクストメモリサブシステムの、前記対応するコンテクストと関連づけられる部分内に格納するデータバッファコントローラと、を備えることを特徴とする高速パターンプロセッサ。
  9. 前記修正された引数が、
    外部デバイスコマンド、
    ルーティングパラメータ、および
    プロトコルデータユニットの分類、から成る一群から選択されたデータを含む請求項8記載の高速パターンプロセッサ。
JP2002093461A 2001-03-30 2002-03-29 外部デバイス伝送システムおよびこれを採用する高速パターンプロセッサ Expired - Fee Related JP4524734B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/821,893 US6918026B2 (en) 2001-03-30 2001-03-30 External device transmission system and a fast pattern processor employing the same
US09/821893 2001-03-30

Publications (2)

Publication Number Publication Date
JP2003008618A JP2003008618A (ja) 2003-01-10
JP4524734B2 true JP4524734B2 (ja) 2010-08-18

Family

ID=25234538

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002093461A Expired - Fee Related JP4524734B2 (ja) 2001-03-30 2002-03-29 外部デバイス伝送システムおよびこれを採用する高速パターンプロセッサ

Country Status (2)

Country Link
US (1) US6918026B2 (ja)
JP (1) JP4524734B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060136619A1 (en) * 2004-12-16 2006-06-22 Intel Corporation Data integrity processing and protection techniques
US8930684B2 (en) * 2005-10-26 2015-01-06 Hewlett-Packard Development Company, L.P. Adding a runtime service for firmware-based images for a device not known to an operating system

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6078968A (en) * 1997-10-03 2000-06-20 Vicom Systems, Inc. Platform-independent communications protocol supporting communications between a processor and subsystem controller based on identifying information
US6195739B1 (en) * 1998-06-29 2001-02-27 Cisco Technology, Inc. Method and apparatus for passing data among processor complex stages of a pipelined processing engine
US6728839B1 (en) * 1998-10-28 2004-04-27 Cisco Technology, Inc. Attribute based memory pre-fetching technique
US6415394B1 (en) * 1999-05-10 2002-07-02 Delphi Technologies, Inc. Method and circuit for analysis of the operation of a microcontroller using signature analysis during operation
US6654389B1 (en) * 1999-11-23 2003-11-25 International Business Machines Corporation System and method for searching patterns in real-time over a shared media
US6654373B1 (en) * 2000-06-12 2003-11-25 Netrake Corporation Content aware network apparatus
US6381242B1 (en) * 2000-08-29 2002-04-30 Netrake Corporation Content processor

Also Published As

Publication number Publication date
US6918026B2 (en) 2005-07-12
JP2003008618A (ja) 2003-01-10
US20020141399A1 (en) 2002-10-03

Similar Documents

Publication Publication Date Title
US6988235B2 (en) Checksum engine and a method of operation thereof
US7149211B2 (en) Virtual reassembly system and method of operation thereof
US12261926B2 (en) Fabric control protocol for data center networks with packet spraying over multiple alternate data paths
US11038993B2 (en) Flexible processing of network packets
JP4066382B2 (ja) ネットワーク・スイッチ及びコンポーネント及び操作方法
US6947430B2 (en) Network adapter with embedded deep packet processing
JP3817477B2 (ja) Vlsiネットワーク・プロセッサ及び方法
US7177276B1 (en) Pipelined packet switching and queuing architecture
US6160811A (en) Data packet router
JP2004503986A (ja) コンテンツ・アウェアネットワーク装置
JP2003508967A (ja) ネットワーク・プロセッサ及び方法を用いるネットワーク・スイッチ
JP2003508851A (ja) ネットワーク・プロセッサ、メモリ構成及び方法
US7009979B1 (en) Virtual segmentation system and method of operation thereof
US6763375B1 (en) Method for defining and controlling the overall behavior of a network processor device
US8792511B2 (en) System and method for split ring first in first out buffer memory with priority
US7366884B2 (en) Context switching system for a multi-thread execution pipeline loop and method of operation thereof
US7724855B2 (en) Event edge synchronization system and method of operation thereof
US7206880B2 (en) Multi-protocol bus system and method of operation thereof
US7275117B2 (en) Fast pattern processor including a function interface system
JP4524734B2 (ja) 外部デバイス伝送システムおよびこれを採用する高速パターンプロセッサ
US8891549B1 (en) Method and apparatus for content processing application acceleration
Papaefstathiou et al. PR03: a hybrid NPU architecture
Shimonishi et al. IP-on-the-fly packet processing mechanism for an ATM/IP integrated switch
Al-Hajery Application-oriented communication protocols for high-speed networks

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040331

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060810

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060823

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20061122

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20061128

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070223

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070709

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071108

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20071225

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20080125

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20091110

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20091113

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20091210

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20091215

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20100210

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100520

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100520

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

Free format text: PAYMENT UNTIL: 20130611

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees