JP2001251349A - パケットプロセッサ - Google Patents

パケットプロセッサ

Info

Publication number
JP2001251349A
JP2001251349A JP2000061250A JP2000061250A JP2001251349A JP 2001251349 A JP2001251349 A JP 2001251349A JP 2000061250 A JP2000061250 A JP 2000061250A JP 2000061250 A JP2000061250 A JP 2000061250A JP 2001251349 A JP2001251349 A JP 2001251349A
Authority
JP
Japan
Prior art keywords
field
general
instruction
extraction
packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2000061250A
Other languages
English (en)
Inventor
Yuji Kojima
祐治 小島
Tetsuaki Tsuruoka
哲明 鶴岡
Kenichi Abiru
健一 阿比留
Yasuyuki Umezaki
康之 梅崎
Yoshitomo Shimozono
善知 下園
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2000061250A priority Critical patent/JP2001251349A/ja
Priority to US09/742,939 priority patent/US6799267B2/en
Publication of JP2001251349A publication Critical patent/JP2001251349A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30018Bit or string instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE

Abstract

(57)【要約】 【課題】 ソフトウェア(命令)によるパケットフィー
ルドの抽出・書き込み処理を高速化して、高い柔軟性と
高速処理性能とを兼ね備えたパケットプロセッサを提供
する。 【解決手段】 汎用演算器14とは別の専用の回路17
により、汎用レジスタ13からパケットデータの特定フ
ィールドを汎用演算器14による演算対象フィールドと
して抽出するとともに、その特定フィールドに対する汎
用演算器14による演算処理結果を元の特定フィールド
の情報として汎用レジスタ13に書き込むようにする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、パケットプロセッ
サに関し、例えば、パケットヘッダの書き換え処理など
のパケット処理を実施するパケット中継装置に用いて好
適なパケットプロセッサに関する。
【0002】
【従来の技術】近年、端末間通信のためのネットワーク
利用拡大に伴い、ネットワーク規模の拡大を図るべく、
ネットワーク間の中継、例えば、LAN(Local Area N
etwork)とLAN、LANと専用線とを相互接続する必
要性が生じてきている。このようにして構築されるネッ
トワークで、現在、主流なのはIP(Internet Protoco
l)によるネットワークである。
【0003】ここで、IPとは、ISO(International
Organization for Standardization)のOSI(Open Sy
stems Interconnection)モデルにおけるネットワーク層
に相当するコネクションレス型の通信プロトコルであ
る。このIPによる通信(IP通信)では、予め端末間
で通信路を確保するコネクション型のプロトコルとは異
なり、例えば、LAN間を相互接続するパケット中継装
置が、通信データの格納されているパケットをそのヘッ
ダに設定されている宛先情報(宛先IPアドレス)に基
づいて中継処理(ルーティング)することよって端末間
の通信が実現する。
【0004】このため、IPネットワークにおけるパケ
ット中継処理には、パケットヘッダのチェックサムの計
算や宛先テーブルの検索,パケットヘッダの書き換え処
理といった、パケット処理が必要になる。また、この他
にも、ネットワークにおける通信を制限するためのパケ
ットフィルタリングの実装なども求められる。これらの
処理を専用のハードウェアで行なうには煩雑であり、通
常は、プロセッサによってソフトウェア処理することが
多い。
【0005】図18はパケット中継装置の一例を示すブ
ロック図で、この図18に示すように、パケット中継装
置100は、それぞれ収容ネットワーク(この場合はL
AN104)数に応じた分だけ設けられたパケット受信
・処理部101とパケット送信・処理部103とをそな
えるとともに、パケット受信・処理部101で受信され
たパケットを所望のパケット送信・処理部103へルー
ティングするためのスイッチ・ファブリック(スイッチ
部)102とをそなえて構成されている。
【0006】このパケット中継装置101では、パケッ
ト中継を行なうに当たって、まず、パケット受信・処理
部101の受信インタフェース111で受信されたパケ
ットがバス114を通じて一時的にメモリ112へ格納
される。そして、パケットプロセッサ(以下、単に「プ
ロセッサ」という)113によって、メモリ112に格
納された受信パケットに対するチェックサムの計算や宛
先テーブルの検索,パケットヘッダの書き換えなどのパ
ケット処理が実施される。
【0007】その後、受信パケットは、バス114を通
じて、プロセッサ113による上記パケット処理により
決定した宛先情報などのその受信パケットに付随する情
報とともにスイッチファブリック102へ送られ、スイ
ッチファブリック102にて、決定した宛先情報に従っ
て適切なパケット送信・処理部103の送信インタフェ
ース131へ送信され、その送信インタフェース131
から目的のLAN104へ送出される。このようにし
て、パケット中継装置100は、所望のLAN104か
らの受信パケットをその宛先情報に基づいて目的のLA
N104へ中継する。
【0008】次に、上記のプロセッサ113によるパケ
ット処理について、より詳細に説明する。図19は上記
のメモリ112及びプロセッサ113に着目した部分の
詳細構成を示すブロック図で、この図19に示すプロセ
ッサ113は、外部バスインタフェース121,外部バ
スバッファ122,汎用演算器123,汎用レジスタ1
24,プログラム・カウンタ125,フラグ・レジスタ
126及び制御部127をそなえて構成されている。
【0009】ここで、外部バスインタフェース121
は、バス114とのインタフェースをとるためのもの
で、この外部バスインタフェース121を介して、プロ
セッサ113とメモリ112との間でパケットデータの
転送が行なわれるようになっている。また、外部バスバ
ッファ122は、パケット処理対象の受信パケットデー
タを一時的に保持しておくためのものであり、汎用演算
器123は、制御部127の命令デコーダ128から入
力される命令に従って、整数演算や論理演算,ビット演
算などの汎用演算を実行することで、パケットデータの
転送・比較・演算などの処理を行なえるものである。
【0010】さらに、汎用レジスタ124(ここでは、
r0〜r15の16個から成る)は、受信パケットデー
タを格納し、演算対象のデータや演算結果を保持するた
めのもので、この汎用レジスタ124に隣接して設けら
れたセレクタ124a,124bによって、汎用レジス
タ124からのデータの出力(抽出)または汎用レジス
タ124への入力(書き込み)対象となるレジスタ(r
0〜r15)の選択が行なわれるようになっている。
【0011】また、プログラムカウンタ125は、現在
実行している命令のプログラム内の位置を保持するため
のもので、1命令を実行する毎にそのカウント値が順次
インクリメントされるようになっている。さらに、フラ
グ・レジスタ126は、汎用演算器123による演算結
果を評価するためのものであり、制御部127は、外部
バスインタフェース121を通じて入力される命令を解
釈(命令デコーダ128によりデコード)して、本プロ
セッサ113内の各構成要素へ制御信号を与えるための
ものである。なお、上記の命令は、例えば、受信パケッ
トを格納する上記のメモリ112に保持されていてもよ
いし、専用の外部メモリに保持されていていてもよい。
【0012】上述のごとく構成されたプロセッサ113
では、まず、受信パケットデータを、制御部127(命
令デコーダ128)からのデータ転送命令に従って、メ
モリ112から読み込んで、汎用レジスタ124へ転送
する。次に、プロセッサ113は、汎用レジスタ124
に格納したパケットデータについて、宛先テーブルの検
索,パケットヘッダのチェックサムの計算,パケットヘ
ッダの宛先アドレスの書き換えなどを、制御部127
(命令デコーダ128)からの命令に従って、順次、実
行する。
【0013】このとき、プロセッサ113は、実際に
は、汎用レジスタ124の任意のレジスタri(i=0
〜15)にそのビット長単位(例えば、32ビット)に
格納されたパケットデータから、汎用レジスタ124の
ビット長と同じ長さとは限らない特定のフィールド〔例
えば、TTL(Time To Live)フィールド〕だけを抽出
して作業領域となる他のレジスタriへ格納して、その
フィールドについてのパケット処理を実行した後、その
フィールドを再び汎用レジスタ124のビット長単位で
元のパケットデータのフィールドとして元のレジスタr
iへ書き込むことによって、一連のパケット処理を実行
する。
【0014】その後、プロセッサ113は、必要に応じ
て、汎用レジスタ124に格納したパケットデータをメ
モリ112へ戻し、処理済みのパケットを適宜にメモリ
112からバス114を通じてスイッチ・ファブリック
102へ送り出す。このように、プロセッサ113で
は、受信パケットを汎用レジスタ124に格納して、特
定フィールドの抽出・書き込みを繰り返すことで、更新
すべきパケットフィールドの更新を行なって、適切な中
継処理を実現している。
【0015】
【発明が解決しようとする課題】ところで、近年、ネッ
トワークの高速化/大容量化に伴い、パケットの中継処
理についても一層の高速化が求められている。しかしな
がら、上述したようなプロセッサ113によるパケット
処理では、パケット処理対象のパケットフィールドが、
必ずしも汎用レジスタ124の特定ビット長のアライメ
ントに整合しているわけではないため、パケットフィー
ルドの抽出・書き込み処理を高速に実行できないという
課題がある。
【0016】例えば、汎用レジスタ124のビット長が
32ビットで、パケットフォーマットが図20に示すよ
うなイーサネット(登録商標)(Ethernet(登
録商標))フォーマットであるとき、パケットのヘッダ
を汎用レジスタ124へ格納するならば、プロセッサ1
13は、32ビットのIPアドレス〔SA(Source Addre
ss);32ビット/DA(Destination Address);32
ビット〕を16ビットずつ、2つのレジスタriへ跨っ
て格納することになるが、このようにプロセッサ113
が特定ビット長単位のデータ転送命令を使用して、汎用
レジスタ124に格納したパケットデータから特定のフ
ィールドを抽出したり、書き込む処理を行なうとなる
と、メモリ112からのデータ転送以外に、必ず、シフ
ト演算やレジスタriの特定領域を“0”にするマスク
処理演算などを汎用演算器123にて行なう必要があ
り、その分、クロック数を費やすことになる。ゆえに、
従来のプロセッサ113では、パケットフィールドの抽
出・書き込み処理を高速化するには限界がある。
【0017】そこで、上記のパケット処理を専用のハー
ドウェア回路で高速に実行する方法も考えられている。
しかしながら、このような専用のハードウェア回路で
は、プロトコルの改訂やネットワークとして提供するサ
ービス機能向上のための機能変更に対して容易に対応す
ることはできず、単なる専用のハードウェア回路化で
は、その都度、新たな回路を開発する必要がある。
【0018】これに対して、上記のプロセッサ113に
よるパケット処理では、命令、つまり、ソフトウェア
(プログラム)によってプロセッサ113を起動して実
行するため、装置完成後のプロトコルの改訂やネットワ
ークとして提供するサービス機能向上のための機能変更
などに容易に対応できる高い柔軟性をもっている。従っ
て、プロセッサ113によるパケット処理の高い柔軟性
を活かしながら、高速なパケット中継処理を実現するに
は、プロセッサ113によるパケットフィールドの抽出
・書き込み処理を高速化することが必須となる。
【0019】本発明は、このような課題に鑑み創案され
たもので、ソフトウェア(命令)によるパケットフィー
ルドの抽出・書き込み処理を高速化して、高い柔軟性と
高速処理性能とを兼ね備えたパケットプロセッサを提供
することを目的とする。
【0020】
【課題を解決するための手段】上記の目的を達成するた
めに、本発明のパケットプロセッサ(請求項1)は、パ
ケットデータを保持する汎用レジスタと、汎用演算命令
に従って、この汎用レジスタに保持されたパケットデー
タの特定フィールドに対して所定の汎用演算を施すこと
により所定のパケット処理を実行する汎用演算器と、フ
ィールド抽出命令に従って、上記の汎用レジスタから上
記特定フィールドを汎用演算器による演算対象フィール
ドとして抽出するフィールド抽出回路と、フィールド書
き込み命令に従って、その特定フィールドに対する汎用
演算器による演算処理結果を元の特定フィールドの情報
として上記汎用レジスタに書き込むフィールド書き込み
回路とをそなえて成ることを特徴としている。
【0021】ここで、上記のフィールド抽出回路とフィ
ールド書き込み回路とは、フィールド抽出・書き込み専
用回路として共通化されていてもよい(請求項2)。そ
して、この場合、本パケットプロセッサは、上記の特定
フィールドの汎用レジスタにおけるビット位置を表わす
フィールド抽出・書き込みビットパターンと上記の特定
フィールドの汎用レジスタにおけるビット回転量とを組
にした命令を保持する命令保持部をそなえ、上記のフィ
ールド抽出・書き込み専用回路が、この命令保持部の命
令に基づいて、上記の特定フィールドについてのフィー
ルド抽出処理とフィールド書き込み処理とを実施するよ
うに構成されていてもよい(請求項3)。また、この場
合、上記の命令保持部及び汎用レジスタは、上記の命令
とパケットデータとを保持しうる複合レジスタとして構
成されていてもよい(請求項4)。
【0022】さらに、上記の汎用演算器及びフィールド
抽出・書き込み専用回路は、それぞれに専用の命令によ
る処理手順を記述した個別プログラムに従って動作する
ように構成されていてもよいし(請求項5)、それぞれ
に専用の命令による処理手順を混在させて記述した共通
のプログラムに従って動作するように構成されていても
よく(請求項6)、また、1命令内に上記フィールド抽
出・書き込み専用回路に対する命令と上記汎用演算器に
対する命令とを混在させた命令による処理手順を記述し
た共通プログラムに従って動作するように構成されてい
てもよい(請求項7)。
【0023】さらに、上記のフィールド抽出・書き込み
専用回路は、上記の汎用演算器の構成要素を用いて構成
されていてもよく、これらの汎用演算器およびフィール
ド抽出・書き込み専用回路が、それぞれに専用の命令に
よる処理手順を混在させて記述した共通プログラムに従
って動作するように構成されていてもよい(請求項
8)。
【0024】
【発明の実施の形態】以下、図面を参照して本発明の実
施の形態を説明する。 (A)第1実施形態の説明 図1は本発明の第1実施形態としてのパケットプロセッ
サの構成を示すブロック図で、この図1に示すパケット
プロセッサ1も、例えば図18により前述したパケット
中継装置100のパケット受信処理部101に適用され
て、LAN104からの受信パケットに対してヘッダチ
ェックサムの計算や宛先情報の書き換えなどの所定のパ
ケット処理を施すもので、その要部の構成に着目する
と、外部バスインタフェース11,外部バスバッファ1
2,使用レジスタ切り替え用のセレクタ13a,13b
が隣接して設けられた汎用レジスタ13(例えば、r0
〜r15の16個から成る),汎用演算器14,プログ
ラム・カウンタ15,フラグ・レジスタ16,フィール
ド抽出・書き込み器17,プログラム・カウンタ18お
よび制御部19をそなえて構成されている。なお、この
図1において、符号2は、図18や図19に示すものと
同様、受信パケットをパケット処理のために一時的に記
憶しておくためのメモリを表わし、符号114はパケッ
トプロセッサ1とメモリ2とを接続するバス(データ転
送路)を表わす。
【0025】ここで、外部バスインタフェース11,外
部バスバッファ12,汎用演算器14,プログラム・カ
ウンタ15及びフラグ・レジスタ16は、それぞれ、図
19により前述したものと同様の機能を有するものであ
るので、ここでは、その詳細な説明については省略し、
本実施形態の要部であるこれら以外の構成要素を中心に
説明を行なう。
【0026】まず、汎用レジスタ(r0〜r15)13
は、基本的に、パケットデータを格納するためのもので
あるが、本実施形態では、プロセッサ1内で扱う基本デ
ータ単位であるワードに関して、1ワードが32ビット
のアーキテクチャを有するものとし、例えば、最低限必
要なビット長(32ビット)を5ビット分拡張した37
ビットとし、32ビット分をコア(Core)部132,5ビ
ット分をエクステンション(Extension)部131とし
て、エクステンション部131は、フィールド抽出・書
き込み命令のみで使用し、その他の命令については、3
2ビットのレジスタとしてコア部132を使用するよう
になっている。
【0027】具体的に、本実施形態では、フィールド抽
出・書き込み命令(コード)を、後述するように、抽出
あるいは書き込み対象の特定フィールドの汎用レジスタ
13におけるビット位置を表わす「抽出・書き込みビッ
トパターン」と、そのフィールドの汎用レジスタ13に
おける「ビット回転量」(以下、単に「回転量」とい
う)との組で指定するため、上記の汎用レジスタ13の
エクステンション部131へ「回転量」が格納され、コ
ア部132へ「抽出・書き込みビットパターン」が格納
されるようになっている。
【0028】なお、「フィールドの回転」とは、フィー
ルドの最上位ビット(MSB)側を、指定された回転量
(ビット)分だけ順番に、最下位ビット(LSB)側を
MSB側(左側)に移動させながらLSB側に移動、あ
るいは、逆に、フィールドのLSB側を、指定された回
転量(ビット)分だけ順番に、MSB側をLSB側(右
側)に移動させながらMSB側に移動させる操作を表わ
し、前者を「左回転」、後者を「右回転」という。
【0029】つまり、上述した本実施形態の汎用レジス
タ13は、フィールドの「回転量」と「フィールド抽出
・書き込みビットパターン」とを組にした命令を保持す
る命令保持部としても機能し、しかも、上記の命令とパ
ケットデータとを保持しうる複合レジスタとして構成さ
れているのである。このようにすることで、別々のレジ
スタ名などを命令中で指定して「回転量」と「抽出・書
き込みビットパターン」とを指示するよりも、1つのレ
ジスタ名を指定すれば済むので、命令長を短くすること
ができ、命令を保持するのに必要な記憶容量(例えば、
命令をメモリ2に保持するならメモリ2の記憶容量)を
節約することができる。特に、基本命令アーキテクチャ
を全ての命令ビット長が同じである固定命令長とする場
合、命令長を短くすることはコード効率の点から重要で
ある。本実施形態においても、パケットプロセッサ1の
命令アーキテクチャは固定命令長とする(詳細について
は後述する)。
【0030】次に、フィールド抽出・書き込み器(フィ
ールド抽出・書き込み専用回路)17は、制御部19か
らのフィールド抽出・書き込み処理用の命令シーケンス
に従って、汎用レジスタ13からパケットデータの特定
フィールド〔例えば、IPアドレスやTTL(Time To L
ive)〕を汎用演算器14による演算対象フィールドとし
て抽出する専用のフィールド抽出回路としての機能と、
その特定フィールドに対する汎用演算器14による演算
処理結果を元の特定フィールドの情報として汎用レジス
タ13に書き込む専用のフィールド書き込み回路として
の機能とを兼ね備えた(共通化した)もので、本実施形
態では、前記の「回転量」と「抽出・書き込みビットパ
ターン」とを用いた論理演算〔論理積(AND),論理
和(OR),論理否定(NOT),回転など〕を実行す
ることにより、この機能が実現されている。
【0031】このため、フィールド抽出・書き込み器1
7は、図5〜図7にて後述するように、論理積(AN
D)回路17−1,17−4,17−6,論理和(O
R)回路17−7,17−8,論理否定(NOT)回路
17−3,右回転器17−2,左回転器17−5などを
内蔵している。なお、本フィールド抽出・書き込み器1
7は、演算対象の特定フィールド〔例えば、IPアドレ
ス(SA,DA)やTTLフィールド〕毎に別々の回路
で構築されているのではなく、装置設計者などが記述し
た命令に従って、任意のフィールドを抽出し書き込むこ
とができる柔軟性をもった、演算対象の各フィールドに
共通の演算器として構成されている。また、上記のフィ
ールド抽出・書き込み処理用のプログラムは、メモリ2
や専用の外部メモリ(図示省略)に予め格納されている
ものとする。
【0032】さらに、プログラム・カウンタ18は、現
在、フィールド抽出・書き込み器17が実行している命
令のプログラム内の位置を保持するためのもので、汎用
演算器14用のプログラム・カウンタ15と同様に、1
命令を実行する毎にそのカウント値が順次インクリメン
トされるようになっている。そして、制御部19は、上
記のプログラム(命令コード)を順次読み出し、その命
令コードを命令デコーダ191によってデコードするこ
とによって、汎用演算器14及びフィールド抽出・書き
込み器17に与えるべき命令を生成するためのものであ
る。
【0033】以下、上述のごとく構成された本実施形態
のパケットプロセッサ1の動作原理について、図2〜図
7を用いて詳述する。なお、これらの図2〜図7におい
て、「0−0」と付記している部分は連続した0のビッ
ト列、「1−1」と付記している部分は連続した1のビ
ット列、「0/1」と付記している部分はそのビット位
置の値が0または1の任意の値であることをそれぞれ示
すものとする。
【0034】まず、フィールド抽出・書き込み器17
は、汎用レジスタ13に格納したパケットデータから、
制御部19(命令デコーダ191)からの命令に従っ
て、任意に様々な位置,様々な長さの特定フィールドの
みを、汎用演算器14での演算対象のフィールドとし
て、その特定フィールドには含まれない他のデータとは
区別して、該当汎用レジスタ(ソースレジスタ)ri
(i=0〜15)から抽出し、そのフィールドを命令で
指定されたレジスタ(デスティネーションレジスタ)r
j(ただし、j=0〜15でj≠i)へ書き込む。
【0035】一方、汎用演算器14での演算によって更
新処理を施したフィールド(演算処理結果)について
は、フィールド抽出・書き込み器17は、そのフィール
ドに含まれない他のデータと更新前のフィールドとが混
在している元の汎用レジスタ(ソースレジスタ)ri
へ、他のデータに影響を与えない(上書きしない)よう
に書き込む。つまり、フィールド抽出・書き込み器17
は、演算対象以外の他のデータと演算対象のフィールド
とが、1つの汎用レジスタ13に統合された形で更新さ
れるように書き込み処理を行なう。
【0036】ここで、フィールド抽出・書き込み器17
が、汎用レジスタ13に対して任意の特定フィールドを
抽出したり書き込むためには、対象とするフィールドの
長さ,位置及び抽出したフィールドを作業領域となるレ
ジスタ(デスティネーションレジスタ)riのどの位置
に書き込むかという情報を指定する必要があり、本実施
形態では、これを「抽出・書き込みビットパターン」と
「回転量」とを指定した命令を用いることで、特定フィ
ールドの抽出・書き込み処理をパケットプロセッサ1へ
指示する。
【0037】ただし、このとき、対象フィールドには、
1つのレジスタriに格納されている場合(図20に示
すTTLなど)と、複数のレジスタriに跨って格納さ
れている場合(図20に示すIPアドレスなど)がある
が、対象フィールドが後者の場合は、複数のレジスタr
iに跨っていてもセットで処理されるべきなので、抽出
したフィールドは1つのデスティネーションレジスタr
iに書き込む必要がある。
【0038】このため、フィールド抽出処理に関して
は、例えば図2に示すように、対象フィールド21でデ
スティネーションレジスタri(図2では、レジスタr
6)の内容を置き換え、そのデスティネーションレジス
タr6内の対象フィールド21以外のビットを「0」に
するケース(以下、置き換えケースという)と、図3に
示すように、抽出済の対象フィールド21には変更を加
えずに、後に抽出される、抽出済みの対象フィールド2
1とセットで処理されるべき対象フィールド22を同じ
レジスタr6に追加するケース(追加ケースという)と
が存在する。
【0039】従って、フィールド抽出・書き込み器17
は、これらの2種のケースに対応する必要があり、本実
施形態では、それぞれに専用の命令を設けることで、処
理ケースを判別して、それぞれに対応する動作(抽出処
理)を実行する。例えば、前者の置き換えケースを実行
する命令を受けた場合、フィールド抽出・書き込み器1
7は、対象フィールド21を含むレジスタr1内のデー
タと、対象フィールド位置(領域)をビット“1”で表
わした「抽出・書き込みビットパターン」と、5ビット
(値0〜31)で指定される「回転量」(図2では値
4)とをレジスタr1から読み込み、まず、「抽出・書
き込みビットパターン」を基にレジスタr1から対象フ
ィールド21を抽出する。
【0040】具体的には、フィールド抽出・書き込み器
17は、図5に模式的に示すように、対象フィールド2
1(10ビット)が含まれているレジスタr1の内容
と、そのレジスタr1内の対象フィールド位置(10ビ
ット)をビット“1”で示した「抽出・書き込みビット
パターン」との論理積(AND)をAND回路17−1
でとることで、対象フィールド21以外の領域を全てビ
ット“0”にして対象フィールド21を抽出する。
【0041】次いで、フィールド抽出・書き込み器17
は、抽出した対象フィールド21を、レジスタr1の拡
張部131に格納されている命令で指定された回転量
(値4)分だけ、右回転器17−2によって右(LSB
向き)回転させて対象フィールド21の位置をずらし、
その対象フィールド21を命令で指定されるデスティネ
ーションレジスタr6へ書き込む。
【0042】一方、後者の追加ケースを実行するための
命令を受けた場合、フィールド抽出・書き込み器17
は、図6に模式的に示すように、上述した置き換えケー
スの場合と同様にして対象フィールド22を抽出しその
位置をずらした後、その出力と抽出済みのフィールド2
1を格納したデスティネーションレジスタr6の内容と
の論理和(OR)を論理和(OR)回路17−8でと
り、その結果をデスティネーションレジスタr6に書き
込むことで、対象フィールド22をデスティネーション
レジスタr6へ追加する。
【0043】ここで、抽出済みの対象フィールド21を
格納したデスティネーションレジスタr6において、対
象フィールド22を格納するビット位置の値は、図6に
示すように対象フィールド21を抽出する段階(AND
回路17−1)で“0”としており、抽出済みの対象フ
ィールド21と、これから抽出しようとする対象フィー
ルド22のデスティネーションレジスタr6内でのビッ
ト位置とが重ならない限り、上述の論理和を実行するだ
けで、対象フィールド22を所望のビット位置に正確に
追加することができる。
【0044】なお、デスティネーションレジスタr6内
でのビット位置が重ならないことは、命令記述者が命令
中でビット位置が重ならないように指定することによっ
て実現すればよい。また、図5,図6においては、命令
実行中の状態が分かるように処理途中の値を逐一表記し
たが、図5,図6の処理手順より、その状態を一時的に
記憶する回路を特に設けなくても、組み合わせ回路のみ
で抽出処理は実行できる。従って、プロセッサ1内に構
築するフィールド抽出・書き込み器17は、上記の抽出
処理、つまり、抽出命令を上述の処理方式で高速に実行
することができる。
【0045】次に、フィールド書き込み処理において
は、フィールド抽出・書き込み器17は、例えば図4に
模式的に示すように、命令で指定される、対象フィール
ド22(21)を含むレジスタr6内のデータと「抽出
・書き込みビットパターン」と「回転量」とを読み込
み、「抽出・書き込みビットパターン」と「回転量」と
に基づいて、レジスタr2(r1)(この場合は、抽出
処理時とは逆にデスティネーションレジスタとなる)に
おいて対象フィールド22(21)以外のデータが書き
換わらないように、レジスタr6(抽出処理時とは逆に
ソースレジスタとなる)における更新後の対象フィール
ド22(21)をデスティネーションレジスタr2(r
1)に書き込む。
【0046】この際、フィールド抽出・書き込み器17
は、対象フィールド22(21)を抽出したときと同じ
レジスタr2(r1)を参照することで、対象フィール
ド22(21)を抽出したときと同じ「抽出・書き込み
ビットパターン」及び「回転量」を読み込み、これに基
づいて対象フィールド22(21)を元のレジスタr2
(r1)の元のビット位置に書き込む。
【0047】例えば、フィールド抽出・書き込み器17
は、図7に示すように、未更新のフィールドが含まれて
いるデスティネーションレジスタr2の内容と、「抽出
・書き込みビットパターン」のNOT回路17−3によ
る論理否定(NOT)との論理積をAND回路17−4
でとり、デスティネーションレジスタr2における更新
対象フィールドの6ビット分を全て「0」にする。
【0048】この一方で、フィールド抽出・書き込み器
17は、対象フィールド22を格納したソースレジスタ
r6のビット位置を、命令実行後のデスティネーション
レジスタr2における元のビット位置までずらすため
に、ソースレジスタr6の内容に、上述した抽出処理時
とは逆回転の左(MSB向き)回転を左回転器17−5
によって施して、2ビット分だけMSB側にソースレジ
スタr6の内容をずらし、その結果と「抽出・書き込み
ビットパターン」との論理積をAND回路17−6でと
って、対象フィールド22のみを抽出する。
【0049】そして、フィールド抽出・書き込み器17
は、このようにして抽出した対象フィールド22と、A
ND回路17−4により得られた、更新対象のフィール
ド以外のビットが“0”となっているデスティネーショ
ンレジスタr2の内容との論理和をOR回路17−7で
とり、その出力をデスティネーションレジスタr2へ書
き込む。この結果、デスティネーションレジスタr2の
更新対象のフィールドのみがソースレジスタr6の内容
(対象フィールド22)で更新されることになる。
【0050】なお、図7においても、命令実行中の状態
が分かるように処理中途の値を逐一表記したが、図7に
示す処理手順により、上記の状態を一時的に記憶する回
路を特に設けなくても、組み合わせ回路のみで上述した
書き込み処理は実行することができる。従って、プロセ
ッサ1内に構築するフィールド抽出・書き込み器17
は、上記の書き込み処理、つまり、書き込み命令を上述
の処理方式で高速に実行することができる。
【0051】次に、本実施形態のパケットプロセッサ1
が実行するパケット処理の具体例として、TTL(Time
To Live)の減算処理を実行する手順について、図8〜図
10を用いて説明する。なお、TTLの減算処理とは、
IPヘッダ内のTTLフィールド内の値を減らす処理
で、例えば、パケット中継装置100を通過する度にそ
のパケット中継装置100において1つ値が減らされ、
減算した結果が0になったパケットについては、パケッ
トが網構成の誤りなどによって永遠に中継され続けない
ように該当パケットは廃棄される。
【0052】また、図8は本パケットプロセッサ1に適
用される命令セット(命令の種類)の一例を示す図であ
り、図9は本パケットプロセッサ1がパケット処理(T
TLの減算処理)を実行するときの命令手順を図8に示
す命令セットを用いて記述した例を示す図であり、図1
0は本パケットプロセッサ動作中の汎用レジスタ13の
データ内容例を示す図である。
【0053】まず、本実施形態のパケットプロセッサ1
の命令アーキテクチャについて説明する。本実施形態に
おいて、命令を記述するときに用いる命令フォーマット
に関しては、図9中に示すように、「SUB」(減算命
令),「MOVE」(データ転送命令)等で表現する命
令ニモニック(図8参照)の前に必ず条件コード(AL
等;後述)が付くフォーマットとし、この条件コードと
直前の命令の演算結果に関する評価が一致すれば、パケ
ットプロセッサ1は、該当する命令を実行する。
【0054】例えば、パケットプロセッサ1が実行した
直前の命令の演算結果が0で、パケットプロセッサ1が
現在実行しようとしている命令の条件コードが「ZE
(Zero;0と等しい)」ならば、パケットプロセッサ1
は、条件コードが「ZE」の命令を実行し、それ以外な
らば、条件コード「ZE」の命令を実行せずに、クロッ
クのみを消費する。
【0055】ここで、条件コードとしては、このZE
(Zero;0と等しい)以外に、例えば、NV(Never;常に
実行しない),AL(Always;常に実行),NZ(Not Zero;
0と等しくない),GT(Greater Than;0よりも大き
い),GE(Greater Equal;0以上),LT(Less Than;0
よりも小さい),LE(Less Equal;0以下),CS(Carry
Set;桁上がり),CC(Carry Clear;桁上がりなし)等が
あり、直前の演算結果に対しこれらの条件コードの評価
が可能な数のフラグが前記のフラグ・レジスタ16に格
納されている。このフラグ・レジスタ16には演算結果
のキャリー(桁上がり)を保持するキャリー・フラグも
存在する。
【0056】そして、演算命令の基本フォーマットは、
3つのオペランドをもつときは、「条件コード 命令ニ
モニック デスティネーション・オペランド ソース・
オペランド1 ソース・オペランド2」となり、2つの
オペランドをもつときは、「条件コード 命令ニモニッ
ク デスティネーション・オペランド ソース・オペラ
ンド1」とする。また、レジスタ名ではなく、命令中に
値そのものを埋め込んで記述する即値は、例えば、値0
ならば「$0」ように表記する。
【0057】このような命令アーキテクチャを基本とし
て、本実施形態では、フィールド抽出(置き換え)命令
を「条件コード LDPTR デスティネーションレジ
スタソースレジスタ1 ソースレジスタ2」、フィール
ド抽出(追加)命令を「条件コード LDPTO デス
ティネーションレジスタ ソースレジスタ1 ソースレ
ジスタ2」、フィールド書き込み命令を「条件コード
STPT デスティネーションレジスタ ソースレジス
タ1 ソースレジスタ2」とする。
【0058】そして、命令記述者は、フィールド抽出命
令なら、「デスティネーションレジスタ」に抽出した対
象フィールドを格納するレジスタ名を指定し、「ソース
レジスタ1」に、抽出対象フィールドを格納したレジス
タ名を指定し、「ソースレジスタ2」に、前記の「回転
量」及び「抽出・書き込みビットパターン」を格納する
レジスタ名を指定する。
【0059】同様に、フィールド書き込み命令なら、
「デスティネーションレジスタ」に更新対象フィールド
を格納するレジスタ名を指定し、「ソースレジスタ2」
に「回転量」及び「抽出・書き込みビットパターン」を
格納するレジスタ名を指定する。このようなフィールド
抽出・書き込み命令に則して、パケットプロセッサ1
(フィールド抽出・書き込み器17)は、フィールド抽
出・書き込み処理を実行する。
【0060】なお、パケットプロセッサ1がメモリ2な
どから読み出す命令手順は、例えば、パケット中継装置
の設計者が記述し、メモリ2などに格納する。そして、
例えば、装置の電源投入時にメモリ2などが命令手順を
パケットプロセッサ1に与え、パケットプロセッサ1
が、その命令手順の各命令を命令デコーダ191によっ
てデコードした結果を制御部19で保持する。これによ
り、パケットプロセッサ1が、パケット処理中に、命令
の読み込みなどでクロックを消費することはなく、パケ
ットプロセッサ1は、図8に示す各命令を一定クロック
数の1クロックで実行する。
【0061】次に、上述したような命令アーキテクチャ
を有するパケットプロセッサ1による実際のTTLの減
算処理について説明する。まず、パケットプロセッサ1
は、図9に示す命令手順を実行する前に、パケットのヘ
ッダ部分を、制御部19からのデータ転送命令などによ
って、図10に示すように、メモリ2から汎用レジスタ
13(r0〜r8)へ格納する。また、これとともに、
TTLフィールドを抽出するための「回転量」及び「フ
ィールド抽出・書き込みビットパターン」を例えば汎用
レジスタr14へ格納する。なお、これらの格納動作
は、命令記述者が、メモリ2からのデータ転送命令や命
令中に埋め込んだ値(即値)を汎用レジスタ13へロー
ドする命令などによって、パケットプロセッサ1へ指示
することで実行される。
【0062】そして、パケットプロセッサ1は、フィー
ルド抽出書き込み器17が、例えば、図9中に示すフィ
ールド抽出・書き込みシーケンスの実行サイクル“m+
2”(プログラム・カウンタ18でカウントされてい
る)の命令(抽出命令「AL LDPTR r15 r5 r14」)に従
って動作することにより、汎用レジスタ(ソースレジス
タ)r5から汎用レジスタ(デスティネーションレジス
タ)r15へTTLフィールドを抽出する。
【0063】今、この抽出命令は「置き換え」(LDP
TR)なので、フィールド抽出・書き込み器17は、図
5にて前述した動作原理により、図10中に示すよう
に、汎用レジスタr15の対象フィールドを除く上位ビ
ット側を“0”とする。一方、この抽出処理のとき、汎
用演算器14は、図9中に示すように、「別の処理1」
を実行している。そして、次に、汎用演算器14は、上
述のごとくフィールド抽出・書き込み器17によって抽
出されたTTLフィールドの値を、図9中に示す汎用演
算器14の命令シーケンスにおける実行サイクル“n+
3”(プログラム・カウンタ15でカウントされてい
る)の命令(減算命令「AL SUB r15 r15 $1」)に従っ
て、“1”だけ減算する。
【0064】この更新処理を受けて、フィールド抽出・
書き込み器17は、汎用レジスタr15のTTLの値を
図9中に示す実行サイクル“m+4”の命令(書き込み
命令「AL STPT r5 r15 r14」)に従って、図7により前
述した動作原理(フィールド書き込み処理)を実行し
て、汎用レジスタr5のTTLフィールドの値のみを更
新する。なお、このとき、汎用演算器14は「別の処理
2」を実行している。また、図9では、「別の処理
1」,「別の処理2」についての命令を明記していない
が、TTLの減算処理とは直接関係がない別のパケット
処理を実行していることを表わしているものとする。
【0065】つまり、本パケットプロセッサ1は、汎用
演算器14とフィールド抽出・書き込み器17を別個の
回路として設け、それぞれについて専用のプログラム・
カウンタ15,18とデータパス(配線)とを設け、命
令記述者がそれぞれに専用の命令を個別に指定すること
によって、フィールド抽出・書き込み処理とこの処理以
外の別の処理とをパラレルに実行することができるので
ある。
【0066】なお、このように「フィールド抽出・書き
込み処理」と「別の処理」とをパラレル実行する場合、
汎用レジスタ13に対する書き込みの競合が発生する可
能性があるが、各命令の実行クロック数を、例えば、1
クロックとし、命令記述者が各命令のタイミングを把握
可能にしておけば、命令記述者が競合を回避するように
命令を事前に記述することが可能であり、競合を調停す
る機構は不要となる。
【0067】従って、この場合、前記のセレクタ13
a,13b(図1参照)は、例えば、制御部19や汎用
演算器14,フィールド抽出・書き込み器17から受け
取る書き込み対象の汎用レジスタriを選択するための
各選択信号を、単純に、汎用演算器14,フィールド抽
出・書き込み器17の順に選択し、それに従って、汎用
レジスタriを選択すればよいことになる。
【0068】ただし、勿論、上述の競合を独自に判断し
て回避する特別な回路(調停回路)をパケットプロセッ
サ1内に設けて、処理結果が変わらない範囲で、命令の
順序やタイミングを変更できるようにしてもよい。この
ようにすれば、回路規模は増大するが、上述のごとく命
令記述者が競合を回避するように命令を記述する必要が
無いので、命令記述者の負担を軽減することが可能であ
る。
【0069】以上のように、本実施形態のパケットプロ
セッサ1によれば、汎用演算器14とフィールド抽出・
書き込み器17とを別個の回路として設け、これらの汎
用演算器14とフィールド抽出・書き込み器17とが、
個別のプログラム・カウンタ15,18、即ち、それぞ
れに専用の命令手順(個別プログラム)に従って独立し
て(パラレルに)動作するので、従来のように汎用演算
器14がフィールドのシフト演算や対象フィールド以外
を0にするマスク処理などを行なう必要が無く、パケッ
ト処理に必要なクロック数を削減することができる。従
って、汎用演算器14による汎用演算とフィールド抽出
・書き込み処理とを極めて高速に実行することができ、
結果として、パケット処理の処理速度が飛躍的に向上す
る。
【0070】なお、上述したのはパケット処理のアプリ
ケーションの1つであるTTLの減算処理の実行例であ
るが、勿論、他のパケット処理(TTLフィールド以外
のフィールド)についても、それに応じて命令手順を変
更して、上記と同様のフィールド抽出,更新,フィール
ド書き込み処理をパケットプロセッサ1が実行すること
によって、同様にして実行することが可能である。
【0071】つまり、本実施形態のパケットプロセッサ
1は、命令手順を変更して、フィールド抽出・書き込み
器17をプログラマブルに駆動することによって、様々
なパケット処理に対応することができるという、命令特
有の高い柔軟性も有しているのである。従って、パケッ
ト処理の高速化を図りながら、プロトコルの改訂やネッ
トワークとして提供するサービス機能向上のための機能
変更に対しても容易に対応することができる。即ち、こ
の高い柔軟性と高速処理性能とを兼ね備えたパケットプ
ロセッサ1が実現される。
【0072】また、上述したフィールド抽出・書き込み
器17は、フィールド抽出回路としての機能と、フィー
ルド書き込み回路としての機能とを兼ね備えている(共
通化している)ので、これらの回路を個別にそなえる場
合に比して、その回路規模が大幅に削減されており、こ
の結果、パケットプロセッサ1の回路規模削減にも大き
く寄与している。
【0073】なお、上述した実施形態では、フィールド
抽出・書き込み処理に必要な「回転量」と「抽出・書き
込みビットパターン」の両方を、汎用レジスタ13を拡
張することによって指定しているが、両者を別個のレジ
スタを用いて指定したり、レジスタ名ではなく命令内に
値そのものを埋め込んだりする方法によっても、同様に
フィールド抽出・書き込み処理を高速に実行することが
できる。
【0074】また、命令手順をパケットプロセッサ1に
与え、それを保持する方法としては、上述した方法以外
に、例えば、命令のデコード結果を外部から与える方法
やメモリ2以外の外部の専用メモリに保持する方法など
も考えられる。いずれの方法にしても、汎用演算器14
がフィールド更新処理する事を考慮して、フィールド抽
出・書き込み命令の実行タイミングを、命令記述者また
はコンパイラなどの外部ソフトウェアもしくはパケット
プロセッサ1内に別途設けた命令スケジューリング回路
などによって、適切にスケジューリングすることができ
れば、上述した実施形態と同様のパケット処理(フィー
ルド抽出・書き込み処理)を実行することができる。
【0075】(B)第2実施形態の説明 図11は本発明の第2実施形態としてのパケットプロセ
ッサの構成を示すブロック図で、この図11に示すパケ
ットプロセッサ1Aは、図1により前述したパケットプ
ロセッサ1と同様にフィールド抽出・書き込み器17を
汎用演算器14とは別の回路として具備する一方、プロ
グラム・カウンタ15を汎用演算器14とフィールド抽
出・書き込み器17に共通とするとともに、汎用演算器
14およびフィールド抽出・書き込み器17の入力側お
よび出力側にそれぞれセレクタ23,24を設け、且
つ、プログラム・カウンタ15の出力側にセレクタ25
を設けた構成になっている。なお、この図11におい
て、符号3は、検索メモリを表わし、その機能について
は後述する。また、この図11において、図1中に示す
符号と同一符号を付したものは、それぞれ、図1により
前述したものと同様のものを表わすものとする。
【0076】ここで、上記のセレクタ23は、汎用演算
器14およびフィールド抽出・書き込み器17への入力
のいずれか一方を選択するためのものであり、セレクタ
24は、汎用演算器14およびフィールド抽出・書き込
み器17の各出力のいずれか一方を選択するものであ
り、セレクタ25は、プログラム・カウンタ15の出力
(カウント値)を汎用演算器14およびフィールド抽出
・書き込み器17のいずれか一方へ選択的に出力するた
めのもので、いずれも、汎用演算器14およびフィール
ド抽出・書き込み器17のいずれか一方の入出力が選択
されるように、それぞれの選択が切り替えられるように
なっている。
【0077】つまり、本第2実施形態のパケットプロセ
ッサ1Aは、汎用演算器14およびフィールド抽出・書
き込み器17がそれぞれ実行する汎用演算処理およびフ
ィールド抽出・書き込み処理を、例えば図12に示すよ
うに、それぞれに共通のプログラム(命令シーケンス)
に従って動作するようになっているのである。このよう
にすると、汎用演算処理とフィールド抽出・書き込み処
理とをパラレルに実行することができず、両処理をシー
ケンシャルに実行することになるが、汎用演算器14の
みを使用して、シフト演算やマスク処理などのいくつか
の処理(命令)に分けて実行するよりも、パケットプロ
セッサ1Aはフィールド抽出・書き込み処理を高速に実
行することができ、結果として、パケット処理を高速化
することができる。また、プログラムカウンタ15及び
パケットプロセッサ1A内のデータパス、特に、ビット
幅及び数量が多い汎用レジスタ13からのデータパスを
パケットプロセッサ1A内で引き回す量が削減されるの
で、その分、回路規模を縮小することができる。
【0078】以下、本第2実施形態のパケットプロセッ
サ1Aによるパケット処理の具体例として、パケット処
理のアプリケーションの1つであるIPアドレスのDA
(Destination Address)の抽出・検索処理の実行手順に
ついて、図12及び図13を用いて説明する。なお、I
PアドレスのDAの抽出・検索処理は、IPアドレスの
DAをパケットヘッダから抽出し、そのDAを基に検索
メモリ3に格納されているルーティングテーブル(図示
省略)を検索することによって、受信パケットの送出イ
ンタフェース(ポート番号)などの検索結果を得る処理
である。ここで、検索メモリ3としては、高速な検索処
理を実現するため、CAM(Content Addressable Memor
y)と呼ばれるメモリデバイスを適用するのが好ましい。
【0079】このCAM3は、CAM3が指定するレジ
スタなどの記憶領域に検索キーとなる抽出内容(DA)
を格納することによって、その検索キーに対する検索結
果〔例えば、ルーティングテーブルから得られた、イー
サネットヘッダ内の宛先MAC(Media Access Contro
l)アドレス〕を一定クロック数後に出力するデバイス
で、このCAM3から出力される検索結果を受けて、パ
ケットプロセッサ1Aは、イーサネットヘッダ内の宛先
MACアドレスを更新することになる。
【0080】まず、パケットプロセッサ1Aは、図12
に示す命令シーケンスを実行する前に、例えば、メモリ
2からのデータ転送命令(制御部19の命令デコーダ1
91によってデコードされる)などによって、パケット
のヘッダ部分をメモリ2から外部バスバッファ12を介
して汎用レジスタr0〜r8(図13参照)へ格納す
る。
【0081】一方、パケットプロセッサ1Aは、汎用レ
ジスタr0〜r8に格納されたパケットヘッダデータか
らDAフィールドを抽出するための「回転量」及び「フ
ィールド抽出・ビットパターン」を汎用レジスタr0〜
r8以外の汎用レジスタriに格納する。ここで、DA
フィールドは、図13に示すように、汎用レジスタr7
と汎用レジスタr8とに跨って格納されているので、こ
れを抽出するためには、2組(「置き換えケース」用と
「追加ケース」用)の「回転量」及び「フィールド抽出
・書き込みビットパターン」が必要であり、本実施形態
では、これら2組の「回転量」及び「フィールド抽出・
ビットパターン」を例えば図13中に示すように汎用レ
ジスタr12,r13へそれぞれ格納する。この格納
は、例えば、命令記述者が、メモリ2からのデータ転送
命令や命令中に埋め込んだ値(即値)を汎用レジスタr
iへロードする命令などによってパケットプロセッサ1
Aへ指示することで実行される。
【0082】そして、パケットプロセッサ1Aは、図1
2に示す命令シーケンスの実行サイクル“n+3”の命
令(抽出命令「AL LDPTR r15 r7 r12」)に従って、フ
ィールド抽出・書き込み器17が、図13中、汎用レジ
スタ(ソースレジスタ)r7から汎用レジスタ(デステ
ィネーションレジスタ)r15へDAフィールドの上位
ビット側を抽出する。なお、これ以前の実行サイクル
“n”〜“n+2”では、パケットプロセッサ1Aは、
図12に示すように、汎用演算器14により、IPアド
レスの抽出・検索処理とは直接関係のない「別の処理」
を実行している。
【0083】ところで、DAフィールドの上位ビット側
は汎用レジスタr7内では下位ビット側に位置している
ので、フィールド抽出・書き込み器17は、汎用レジス
タr12のエクステンション部131に格納されている
(右)回転量(値16;ビット列10000)分だけD
Aフィールドのビット位置をずらす。このときの抽出命
令は「置き換え」なので、フィールド抽出・書き込み器
17は、図5により前述した動作原理と同様にして、図
13中、汎用レジスタr15の上位ビット側にDAの上
位ビット側を格納し、下位ビットにビット0を詰める。
【0084】次に、フィールド抽出・書き込み器17
は、図12に示す命令シーケンスの実行サイクル“n+
4”の命令(抽出命令「AL LDPTO r15 r8 r13」)に従
って、図13中、汎用レジスタr8から汎用レジスタr
15へDAフィールドの下位ビット側を抽出する。この
とき、DAフィールドの下位ビット側は、汎用レジスタ
r8内では上位ビット側に位置しているので、汎用レジ
スタr13のエクステンション部131に格納されてい
る(右)回転量(値16;ビット列10000)分だけ
DAフィールドのビット位置をずらす。
【0085】このときの抽出命令は「追加」なので、フ
ィールド抽出・書き込み器17は、汎用レジスタr15
の既に格納したDAフィールドの上位ビット側のデータ
を壊さないように、DAフィールドの下位ビット側を格
納する。具体的には、図6により前述した動作原理と同
様にして、既にDAフィールドの上位ビットを格納した
汎用レジスタr15と、位置をずらし上位ビット側を0
としたDAの下位ビット側との論理和(OR)をとっ
て、その結果を汎用レジスタr15へ格納する。
【0086】上述のようにしてフィールド抽出・書き込
み器17によるフィールド抽出処理が行なわれた後、パ
ケットプロセッサ1Aは、図12に示す命令シーケンス
“n+5”以降の命令に従って動作することで、汎用演
算器14により、汎用レジスタr15に抽出されたDA
フィールドを、CAM3が指定するレジスタ等の記憶領
域へ検索キーとして格納し、これによりCAM3から出
力される検索結果を汎用レジスタr14へ格納する処理
を実行する。
【0087】以上のようにして、図12に示す一連の命
令シーケンスをパケットプロセッサ1A内の汎用演算器
14とフィールド抽出・書き込み器17が実行すること
で、パケットプロセッサ1Aは、パケットヘッダの特定
フィールドであるIPアドレス(DA)の抽出・検索処
理を実行することができる。なお、このDAについての
抽出・検索処理後の処理結果(更新後のDA)の元の汎
用レジスタr7,r8への書き戻しは、図7により前述
した動作原理と同様にして、フィールド抽出・書き込み
器17によって実行される。
【0088】以上のように、本第2実施形態のパケット
プロセッサ1Aによれば、汎用演算器14及びフィール
ド抽出・書き込み器17が、同一命令シーケンス(それ
ぞれに専用の命令による処理手順を混在させて記述した
共通のプログラム)に従って動作するので、第1実施形
態のように汎用演算処理とフィールド抽出・書き込み処
理とをパラレルに実行することはできないものの、上述
したごとくパケットプロセッサ1A内を引き回すデータ
パスの量を削減できるので、第1実施形態のパケットプ
ロセッサ1よりも回路規模を縮小することができる。
【0089】(C)第3実施形態の説明 図14は本発明の第3実施形態としてのパケットプロセ
ッサの構成を示すブロック図で、この図14に示すパケ
ットプロセッサ1Bも、第2実施形態(図11)にて上
述したパケットプロセッサ1Aと同様に、フィールド抽
出・書き込み器17を汎用演算器14とは別の回路とし
て具備する一方、プログラム・カウンタ15を汎用演算
器14及びフィールド抽出・書き込み器17に対して共
通とし、汎用演算器14およびフィールド抽出・書き込
み器17がそれぞれ実行する汎用演算処理およびフィー
ルド抽出・書き込み処理を同一プログラム(同一命令シ
ーケンス)に従って実行する構造を有している。なお、
この図14においても、図1に示す符号と同一符号を付
したものは、図1により前述したものと同様のものを表
わし、その詳細な説明については省略する。
【0090】ただし、本実施形態のパケットプロセッサ
1Bは、汎用演算器14およびフィールド抽出・書き込
み器17のデータ入力部および演算結果(データ)出力
部は個別にもち、汎用演算器14及びフィールド抽出・
書き込み器17と汎用レジスタ13との間のデータパス
もそれぞれ個別にもつように設計されている。そして、
本パケットプロセッサ1Bは、例えば図15に示すよう
に、1命令内にフィールド抽出・書き込み器17に対す
る命令(LDPTR,STPTなど)と汎用演算器14
に対する命令(NOP,SUBなど)とを混在させた命
令を同一実行サイクルで実行する。このため、命令記述
者は、1命令内にフィールド抽出・書き込み器17に対
する命令と汎用演算器14に対する命令とを混在させて
命令を記述する。
【0091】このようにすることで、第1実施形態のパ
ケットプロセッサ1と同様に、フィールド抽出・書き込
み器17が実行するフィールド抽出・書き込み処理と汎
用演算器14が実行する処理とをパラレルに実行するこ
とが可能となる。この場合、第1実施形態の命令フォー
マット(図9参照)とは異なるが、図15に示すよう
に、パケットプロセッサ1Bは、TTLの減算処理など
のパケット処理を、第1実施形態のパケットプロセッサ
1と同様に、高速に実行することができる。
【0092】以上のように、本第3実施形態のパケット
プロセッサ1Bによれば、汎用演算器14及びフィール
ド抽出・書き込み器17が、1命令内にフィールド抽出
・書き込み器17に対する命令と汎用演算器14に対す
る命令とを混在させた命令による処理手順を記述した共
通プログラムに従って動作するので、第1実施形態と同
様に汎用演算処理とフィールド抽出・書き込み処理とを
パラレルに実行することができるとともに、その回路規
模も縮小することができる。従って、高い柔軟性と高速
処理性能とを兼ね備えたパケットプロセッサ1Bを小
型、且つ、安価に実現することができる。
【0093】(D)第4実施形態の説明 上述したフィールド抽出・書き込み器17は、その処理
内容から、前述したように、論理積(AND)回路17
−1,17−4,17−6,論理和(OR)回路17−
7,17−8,論理否定(NOT)回路17−3,右回
転器17−2,左回転器17−5などを内蔵している
(図5〜図7参照)が、これらの回路は、図8の命令セ
ットテーブル中に示すように、通常、汎用演算器14も
内蔵している。
【0094】そこで、本第4実施形態では、これらの回
路群を共用する形、即ち、例えば図16に示すように、
汎用演算器14とフィールド抽出・書き込み器17と
を、単一の汎用演算−フィールド抽出・書き込み器26
として、パケットプロセッサ1C内に構築する。なお、
この図16においても、図1中に示す符号と同一符号を
付したものは、それぞれ、図1により前述したものと同
様のものを表わし、その詳細な説明については省略す
る。
【0095】これにより、汎用演算器14とフィールド
抽出・書き込み器17とを別個に設けるよりもパケット
プロセッサ1Cの回路規模を縮小することができる。た
だし、この場合、汎用演算器14とフィールド抽出・書
き込み器17とで一部の回路(構成要素)を共用するの
で、パケットプロセッサ1Cは、フィールド抽出・書き
込み処理と汎用演算処理とをパラレルに実行することは
できず、TTLの減算処理に関しても、例えば図17に
示すように、フィールド抽出・書き込み命令と汎用演算
命令とを同一実行サイクルでシーケンシャルに実行する
ことになる。
【0096】しかしながら、このようにフィールド抽出
・書き込み器17を、汎用演算器14の一部回路を共用
して、汎用演算−フィールド抽出・書き込み器26とし
て実現したとしても、フィールド抽出・書き込み処理を
汎用演算器14のみを使用して、シフト演算やマスク処
理などのいくつかの処理(命令)に分けて実行するより
も、パケットプロセッサ1Cは、高速にフィールド抽出
・書き込み処理を実行することができ、結果として、高
速にパケット処理を実行することができる。
【0097】なお、図17に示す命令シーケンスに基づ
くTTLの減算処理の詳細については、第1実施形態と
同様であるので、ここでは、その詳細な説明は省略す
る。このように、本第4実施形態のパケットプロセッサ
1Cによれば、フィールド抽出・書き込み器17を、汎
用演算器14の一部回路を用いて実現した、汎用演算−
フィールド抽出・書き込み器26をそなえ、この汎用演
算−フィールド抽出・書き込み器26が、汎用演算器1
4及びフィールド抽出・書き込み器17のそれぞれに専
用の命令による処理手順を混在させて記述した共通プロ
グラムに従って動作するので、高い柔軟性と高速処理性
能とを兼ね備えたパケットプロセッサ1Cを小型、且
つ、安価に実現することができる。
【0098】(E)その他 なお、上述した各実施形態では、フィールド抽出・書き
込み器17が、フィールド抽出回路としての機能とフィ
ールド書き込み回路としての機能とを兼ね備えている場
合について説明したが、本発明はこれに限定されず、こ
れらの回路を個別にそなえるようにしてもよい。
【0099】また、上述した各実施形態では、説明の便
宜上、いずれも、1種類のパケット処理(TTLの減算
処理,IPアドレスの抽出・検索処理)に着目した動作
について説明したが、勿論、複数種類のパケット処理に
対応できることはいうまでもない。例えば、第1,第3
及び第4実施形態では、IPアドレスの抽出・検索処理
については述べなかったが、例えば、図1や図14,図
16において、検索メモリ(CAM)3をそなえること
で、IPアドレスの抽出・検索処理も第2実施形態と同
様に実行することができる。逆に、第2実施形態におい
ても、第1,第3及び第4実施形態と同様に、TTLの
減算処理を実行することができる。
【0100】さらに、上述した命令アーキテクチャは、
あくまでも一例であり、適宜変更してもよい。また、パ
ケットフォーマットについても、必ずしも、上述したよ
うなイーサネットフォーマットである必要はなく、他の
既存フォーマットでも、上述した各実施形態と同様の作
用効果が得られる。そして、本発明は、上述した各実施
形態に限定されるものではなく、本発明の趣旨を逸脱し
ない範囲で、種種変形して実施することができる。
【0101】
【発明の効果】以上詳述したように、本発明のパケット
プロセッサによれば、命令に従って、専用の回路によ
り、汎用レジスタに保持されたパケットデータから特定
フィールドを抽出するとともに、その特定フィールドに
対する汎用演算器による演算処理結果を元の特定フィー
ルドの情報として汎用レジスタに書き込むので、汎用演
算器による処理対象となる特定フィールドの抽出・書き
込み処理を高速化することができ、これにより、命令に
よる高い柔軟性と高速処理性能とを兼ね備えたパケット
プロセッサを実現することができる(請求項1)。
【0102】ここで、上記のフィールド抽出回路とフィ
ールド書き込み回路とを、フィールド抽出・書き込み専
用回路として共通化すれば、パケットプロセッサの回路
規模を大幅に削減することができる(請求項2)。そし
て、この場合、本パケットプロセッサは、フィールド抽
出・書き込みビットパターンとフィールドの回転量とを
組にした命令を保持する命令保持部をそなえ、上記のフ
ィールド抽出・書き込み専用回路が、この命令保持部の
命令に従って、上記のフィールド抽出処理とフィールド
書き込み処理とを実施するように構成されていてもよ
い。このようにすれば、従来のように特定フィールドに
対するシフト演算やマスク処理を汎用演算器が行なう必
要が無いので、さらに、フィールド抽出・書き込み処理
を高速化することができる(請求項3)。
【0103】また、この場合、上記の命令保持部及び汎
用レジスタは、上記の命令とパケットデータとを保持し
うる複合レジスタとして構成されていてもよい。このよ
うにすれば、特定フィールドについての命令を個別のレ
ジスタに個別のレジスタ名などを用いて指定・保持させ
る必要がないので、命令長を短くすることができ、命令
の保持に必要な記憶容量を削減することができるととも
に、プログラム効率を向上することができる(請求項
4)。
【0104】さらに、上記の汎用演算器及びフィールド
抽出・書き込み専用回路は、それぞれに専用の命令によ
る処理手順を記述した個別プログラムに従って動作する
ように構成されていてもよい。このようにすれば、汎用
演算処理とフィールド抽出・書き込み処理とを完全にパ
ラレルに実行することができるので、パケット処理を飛
躍的に高速化することができる(請求項5)。
【0105】また、上記の汎用演算器及びフィールド抽
出・書き込み専用回路は、それぞれに専用の命令による
処理手順を混在させて記述した共通のプログラムに従っ
て動作するように構成されていてもよく、このようにす
れば、プログラムカウンタなど、個別に必要な回路数を
削減することができるので、本パケットプロセッサの回
路規模削減に大きく寄与する(請求項6)。
【0106】さらに、上記の汎用演算器及びフィールド
抽出・書き込み専用回路は、1命令内に上記フィールド
抽出・書き込み専用回路に対する命令と上記汎用演算器
に対する命令とを混在させた命令による処理手順を記述
した共通プログラムに従って動作するように構成されて
いてもよい。このようにすれば、個別に必要な回路数を
削減しながら、汎用演算処理とフィールド抽出・書き込
み処理とをパラレルに実行することができるので、パケ
ットプロセッサの高速化と小型化とを図ることができる
(請求項7)。
【0107】また、上記の汎用演算器とフィールド抽出
・書き込み専用回路とは、共通の演算回路として構成さ
れて、この演算回路が、上記の汎用演算器及びフィール
ド抽出・書き込み専用回路のそれぞれに専用の命令によ
る処理手順を混在させて記述した共通プログラムに従っ
て動作するように構成されていてもよい。このようにす
れば、パケット処理を高速化しながら、本パケットプロ
セッサをさらに小型化することができる(請求項8)。
【図面の簡単な説明】
【図1】本発明の第1実施形態としてのパケットプロセ
ッサの構成を示すブロック図である。
【図2】図1に示すパケットプロセッサのフィールド抽
出・書き込み器によるフィールド抽出(置き換え)動作
を説明するための図である。
【図3】図1に示すパケットプロセッサのフィールド抽
出・書き込み器によるフィールド抽出(追加)動作を説
明するための図である。
【図4】図1に示すパケットプロセッサのフィールド抽
出・書き込み器によるフィールド書き込み動作を説明す
るための図である。
【図5】図1に示すパケットプロセッサのフィールド抽
出・書き込み器によるフィールド抽出(置き換え)動作
の具体例を説明するための図である。
【図6】図1に示すパケットプロセッサのフィールド抽
出・書き込み器によるフィールド抽出(追加)動作の具
体例を説明するための図である。
【図7】図1に示すパケットプロセッサのフィールド抽
出・書き込み器によるフィールド書き込み動作の具体例
を説明するための図である。
【図8】図1に示すパケットプロセッサに適用される命
令セット(命令の種類)の一例を示す図である。
【図9】図1に示すパケットプロセッサがパケット処理
(TTLの減算処理)を実行するときの命令手順を図8
に示す命令セットを用いて記述した例を示す図である。
【図10】図1に示すパケットプロセッサ動作中の汎用
レジスタのデータ内容例を示す図である。
【図11】本発明の第2実施形態としてのパケットプロ
セッサの構成を示すブロック図である。
【図12】図11に示すパケットプロセッサがパケット
処理(IPアドレスの抽出・検索処理)を実行するとき
の命令手順を図8に示す命令セットを用いて記述した例
を示す図である。
【図13】図11に示すパケットプロセッサ動作中の汎
用レジスタのデータ内容例を示す図である。
【図14】本発明の第3実施形態としてのパケットプロ
セッサの構成を示すブロック図である。
【図15】図14に示すパケットプロセッサがパケット
処理(TTLの減算処理)を実行するときの命令手順を
図8に示す命令セットを用いて記述した例を示す図であ
る。
【図16】本発明の第4実施形態としてのパケットプロ
セッサの構成を示すブロック図である。
【図17】図16に示すパケットプロセッサがパケット
処理(TTLの減算処理)を実行するときの命令手順を
図8に示す命令セットを用いて記述した例を示す図であ
る。
【図18】パケット中継装置の一例を示すブロック図で
ある。
【図19】図18に示すパケット中継装置におけるメモ
リ及びパケットプロセッサに着目した部分の詳細構成を
示すブロック図である。
【図20】パケットフォーマット(イーサネットフォー
マット)の一例を示す図である。
【符号の説明】
1,1A〜1C パケットプロセッサ 2 メモリ 3 検索メモリ(CAM) 11 外部バスインタフェース 12 外部バスバッファ 13 汎用レジスタ(命令保持部,複合レジスタ) 13a,13b,23〜25 セレクタ 14 汎用演算器 15 プログラム・カウンタ 16 フラグ・レジスタ 17 フィールド抽出・書き込み器(フィールド抽出・
書き込み専用回路) 17−1,17−4,17−6 論理積(AND)回路 17−7,17−8 論理和(OR)回路 17−2 右回転器 17−5 左回転器 18 プログラム・カウンタ 19 制御部 21,22 対象フィールド 26 汎用演算−フィールド抽出・書き込み器 100 パケット中継装置 101 パケット受信処理部 104 LAN 114 バス(データ転送路) 131 エクステンション(Extension)部 132 コア(Core)部 191 命令デコーダ
フロントページの続き (72)発明者 阿比留 健一 福岡県福岡市博多区博多駅前三丁目22番8 号 富士通九州ディジタル・テクノロジ株 式会社内 (72)発明者 梅崎 康之 福岡県福岡市博多区博多駅前三丁目22番8 号 富士通九州ディジタル・テクノロジ株 式会社内 (72)発明者 下園 善知 福岡県福岡市博多区博多駅前三丁目22番8 号 富士通九州ディジタル・テクノロジ株 式会社内 Fターム(参考) 5B089 GA31 HB02 KD01 KG08 5K030 GA03 HA08 JA05 KA01 MA12 9A001 BB04 CC06 CC07 JJ12 KK56

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 パケットデータを保持する汎用レジスタ
    と、 汎用演算命令に従って、該汎用レジスタに保持されたパ
    ケットデータの特定フィールドに対して所定の汎用演算
    を施すことにより所定のパケット処理を実行する汎用演
    算器と、 フィールド抽出命令に従って、該汎用レジスタから該特
    定フィールドを該汎用演算器による演算対象フィールド
    として抽出する専用のフィールド抽出回路と、 フィールド書き込み命令に従って、該フィールド抽出回
    路により抽出された該特定フィールドに対する該汎用演
    算器による演算処理結果を元の特定フィールドの情報と
    して該汎用レジスタに書き込む専用のフィールド書き込
    み回路とをそなえて成ることを特徴とする、パケットプ
    ロセッサ。
  2. 【請求項2】 該フィールド抽出回路と該フィールド書
    き込み回路とが、フィールド抽出・書き込み専用回路と
    して共通化されていることを特徴とする、請求項1記載
    のパケットプロセッサ。
  3. 【請求項3】 該特定フィールドの該汎用レジスタにお
    けるビット位置を表わすフィールド抽出・書き込みビッ
    トパターンと該特定フィールドの該汎用レジスタにおけ
    るビット回転量とを組にした命令を保持する命令保持部
    をそなえ、 該フィールド抽出・書き込み専用回路が、 該命令保持部の該命令に基づいて、該特定フィールドに
    ついてのフィールド抽出処理とフィールド書き込み処理
    とを実施するように構成されていることを特徴とする、
    請求項2記載のパケットプロセッサ。
  4. 【請求項4】 該命令保持部及び該汎用レジスタが、該
    命令と該パケットデータとを保持しうる複合レジスタと
    して構成されていることを特徴とする、請求項3記載の
    パケットプロセッサ。
  5. 【請求項5】 該汎用演算器及び該フィールド抽出・書
    き込み専用回路が、それぞれに専用の命令による処理手
    順を記述した個別プログラムに従って動作するように構
    成されていることを特徴とする、請求項2記載のパケッ
    トプロセッサ。
  6. 【請求項6】 該汎用演算器及び該フィールド抽出・書
    き込み専用回路が、それぞれに専用の命令による処理手
    順を混在させて記述した共通のプログラムに従って動作
    するように構成されていることを特徴とする、請求項2
    記載のパケットプロセッサ。
  7. 【請求項7】 該汎用演算器及び該フィールド抽出・書
    き込み専用回路が、1命令内に該フィールド抽出・書き
    込み専用回路に対する命令と該汎用演算器に対する命令
    とを混在させた命令による処理手順を記述した共通プロ
    グラムに従って動作するように構成されていることを特
    徴とする、請求項2記載のパケットプロセッサ。
  8. 【請求項8】 該フィールド抽出・書き込み専用回路
    が、該汎用演算器の構成要素を用いて構成されるととも
    に、 該汎用演算器及び該フィールド抽出・書き込み専用回路
    が、それぞれに専用の命令による処理手順を混在させて
    記述した共通プログラムに従って動作するように構成さ
    れていることを特徴とする、請求項2記載のパケットプ
    ロセッサ。
JP2000061250A 2000-03-06 2000-03-06 パケットプロセッサ Withdrawn JP2001251349A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2000061250A JP2001251349A (ja) 2000-03-06 2000-03-06 パケットプロセッサ
US09/742,939 US6799267B2 (en) 2000-03-06 2000-12-20 Packet processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000061250A JP2001251349A (ja) 2000-03-06 2000-03-06 パケットプロセッサ

Publications (1)

Publication Number Publication Date
JP2001251349A true JP2001251349A (ja) 2001-09-14

Family

ID=18581416

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000061250A Withdrawn JP2001251349A (ja) 2000-03-06 2000-03-06 パケットプロセッサ

Country Status (2)

Country Link
US (1) US6799267B2 (ja)
JP (1) JP2001251349A (ja)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100515413B1 (ko) * 2000-08-31 2005-09-15 매그나칩 반도체 유한회사 비트 스트림 처리기
WO2002065259A1 (en) * 2001-02-14 2002-08-22 Clearspeed Technology Limited Clock distribution system
US7039060B2 (en) * 2001-03-07 2006-05-02 Mips Tech Inc System and method for extracting fields from packets having fields spread over more than one register
JP4342128B2 (ja) * 2001-09-18 2009-10-14 富士通株式会社 パケット処理プロセッサ及びパケット処理プロセッサシステム
US20030223417A1 (en) * 2002-06-04 2003-12-04 Masashi Higashida Method of processing data packets
US20040103086A1 (en) * 2002-11-26 2004-05-27 Bapiraju Vinnakota Data structure traversal instructions for packet processing
US20040108136A1 (en) * 2002-12-04 2004-06-10 International Business Machines Corporation Structure comprising a barrier layer of a tungsten alloy comprising cobalt and/or nickel
US7385984B2 (en) * 2004-03-30 2008-06-10 Extreme Networks, Inc. Packet processing system architecture and method
US8161270B1 (en) * 2004-03-30 2012-04-17 Extreme Networks, Inc. Packet data modification processor
US20060248375A1 (en) 2005-04-18 2006-11-02 Bertan Tezcan Packet processing switch and methods of operation thereof
US8631483B2 (en) * 2005-06-14 2014-01-14 Texas Instruments Incorporated Packet processors and packet filter processes, circuits, devices, and systems
JP3936721B2 (ja) * 2005-07-29 2007-06-27 株式会社日立コミュニケーションテクノロジー 光アクセスシステム、光加入者装置及び光集線装置
US7747904B1 (en) 2006-05-12 2010-06-29 Integrated Device Technology, Inc. Error management system and method for a packet switch
US7817652B1 (en) 2006-05-12 2010-10-19 Integrated Device Technology, Inc. System and method of constructing data packets in a packet switch
US7706387B1 (en) 2006-05-31 2010-04-27 Integrated Device Technology, Inc. System and method for round robin arbitration
US7693040B1 (en) 2007-05-01 2010-04-06 Integrated Device Technology, Inc. Processing switch for orthogonal frequency division multiplexing
GB2485774A (en) * 2010-11-23 2012-05-30 Advanced Risc Mach Ltd Processor instruction to extract a bit field from one operand and insert it into another with an option to sign or zero extend the field
US8605732B2 (en) 2011-02-15 2013-12-10 Extreme Networks, Inc. Method of providing virtual router functionality
US9384354B2 (en) * 2013-02-20 2016-07-05 International Business Machines Corporation Rule matching in the presence of languages with no types or as an adjunct to current analyses for security vulnerability analysis
US9344349B2 (en) 2013-07-12 2016-05-17 Nicira, Inc. Tracing network packets by a cluster of network controllers
US9407580B2 (en) * 2013-07-12 2016-08-02 Nicira, Inc. Maintaining data stored with a packet
US9282019B2 (en) 2013-07-12 2016-03-08 Nicira, Inc. Tracing logical network packets through physical network
WO2015039320A1 (en) * 2013-09-19 2015-03-26 Intel Corporation Techniques for distributed processing task portion assignment
US10469342B2 (en) 2014-10-10 2019-11-05 Nicira, Inc. Logical network traffic analysis
US10805239B2 (en) 2017-03-07 2020-10-13 Nicira, Inc. Visualization of path between logical network endpoints
US10608887B2 (en) 2017-10-06 2020-03-31 Nicira, Inc. Using packet tracing tool to automatically execute packet capture operations
US11283699B2 (en) 2020-01-17 2022-03-22 Vmware, Inc. Practical overlay network latency measurement in datacenter
US11558426B2 (en) 2020-07-29 2023-01-17 Vmware, Inc. Connection tracking for container cluster
US11196628B1 (en) 2020-07-29 2021-12-07 Vmware, Inc. Monitoring container clusters
US11570090B2 (en) 2020-07-29 2023-01-31 Vmware, Inc. Flow tracing operation in container cluster
US11736436B2 (en) 2020-12-31 2023-08-22 Vmware, Inc. Identifying routes with indirect addressing in a datacenter
US11336533B1 (en) 2021-01-08 2022-05-17 Vmware, Inc. Network visualization of correlations between logical elements and associated physical elements
US11687210B2 (en) 2021-07-05 2023-06-27 Vmware, Inc. Criteria-based expansion of group nodes in a network topology visualization
US11711278B2 (en) 2021-07-24 2023-07-25 Vmware, Inc. Visualization of flow trace operation across multiple sites
US11677645B2 (en) 2021-09-17 2023-06-13 Vmware, Inc. Traffic monitoring

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3203978B2 (ja) * 1994-07-25 2001-09-04 ソニー株式会社 データ送受信装置、データ受信装置及びデータ送信装置
JP3575100B2 (ja) * 1994-11-14 2004-10-06 ソニー株式会社 データ送信/受信装置及び方法並びにデータ記録/再生装置及び方法
US6587476B1 (en) * 1999-05-26 2003-07-01 3 Com Corporation Ethernet frame encapsulation over VDSL using HDLC

Also Published As

Publication number Publication date
US6799267B2 (en) 2004-09-28
US20010020266A1 (en) 2001-09-06

Similar Documents

Publication Publication Date Title
JP2001251349A (ja) パケットプロセッサ
US7089407B2 (en) Packet processing device processing input packet data in a packet routing device
JP3670160B2 (ja) タスクに各リソースを割当てるための回路、複数のリソースを共用するための方法、命令を実行するためのプロセッサ、マルチタスクプロセッサ、コンピュータ命令を実行するための方法、マルチタスク方法、コンピュータプロセッサを含む装置、複数の所定のグループのタスクを実行するステップを含む方法、ネットワークデータを処理するステップを含む方法、複数のソフトウェアタスクを実行するための方法およびコンピュータプロセッサを含むネットワーク装置
US9110714B2 (en) Systems and methods for multi-tasking, resource sharing, and execution of computer instructions
US6654823B2 (en) Packet-data processing apparatus
US6212569B1 (en) Data processor with bit stuffing instruction set extension
US6101599A (en) System for context switching between processing elements in a pipeline of processing elements
CN102272716A (zh) 网络分组的simd处理
JP2001134436A (ja) 効率的な粒度のシフトとマージの一方または両方の命令をそなえたプロセッサの回路、システム及び方法
US20030159021A1 (en) Selected register decode values for pipeline stage register addressing
WO2021146463A1 (en) Zero packet loss upgrade of an io device
JP4342128B2 (ja) パケット処理プロセッサ及びパケット処理プロセッサシステム
EP1137983B1 (en) Digital signal processor with bit fifo
JP3742250B2 (ja) パケットデータ処理装置及びそれを用いたパケット中継装置
US20050289326A1 (en) Packet processor with mild programmability
US11507378B1 (en) Hardware engine with configurable instructions
US9948756B1 (en) Automated pipeline generation
US20050033938A1 (en) Network processing system, core language processor and method of executing a sequence of instructions in a stored program
Efnusheva et al. Memory-centric approach of network processing in a modified RISC-based processing core
JP2002335275A (ja) パケット処理装置
JPH0687221B2 (ja) 情報処理装置
JP2002057703A (ja) データ交換処理装置
JP2002182900A (ja) ブロックデータ転送装置およびその方法
JP3958534B2 (ja) データ駆動型情報処理装置
KR20140107404A (ko) 디지털 신호 프로세서

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20070605