JP2003308206A - プロセッサ装置 - Google Patents

プロセッサ装置

Info

Publication number
JP2003308206A
JP2003308206A JP2002111514A JP2002111514A JP2003308206A JP 2003308206 A JP2003308206 A JP 2003308206A JP 2002111514 A JP2002111514 A JP 2002111514A JP 2002111514 A JP2002111514 A JP 2002111514A JP 2003308206 A JP2003308206 A JP 2003308206A
Authority
JP
Japan
Prior art keywords
register
field
packet
protocol stack
bit
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
JP2002111514A
Other languages
English (en)
Other versions
JP2003308206A5 (ja
Inventor
Yuji Kojima
祐治 小島
Tetsuaki Tsuruoka
哲明 鶴岡
Kenichi Abiru
健一 阿比留
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 JP2002111514A priority Critical patent/JP2003308206A/ja
Priority to US10/374,343 priority patent/US20030193949A1/en
Publication of JP2003308206A publication Critical patent/JP2003308206A/ja
Publication of JP2003308206A5 publication Critical patent/JP2003308206A5/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/56Routing software
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Executing Machine-Instructions (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

(57)【要約】 【課題】 プロトコルスタックの違いを意識せずに、同
一プログラムでのアクセスを可能とすることで、設計効
率を向上させ、高品質なパケット処理を行う。 【解決手段】 パケット格納部10は、固定レジスタ長
を持つ複数のデータレジスタに、パケットを格納する。
アドレスレジスタ20は、パケットの先頭からプロトコ
ルスタックの開始位置を示すプロトコルスタック位置情
報を取得し保持する。アドレスレジスタテーブル30
は、プロトコルスタック内のフィールドの位置及び対象
フィールドを処理するためのパラメータを示すフィール
ド位置情報を管理する。演算部40は、プロトコルスタ
ックの違いにより、フィールド位置が異なるパケットに
対し、プロトコルスタックの違いに依存せずに同一のプ
ログラムにより、プロトコルスタック位置情報及びフィ
ールド位置情報にもとづき、レジスタアライメントの整
形処理をして、対象フィールドのパケット処理を行う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はプロセッサ装置に関
し、特にパケットに対して、プログラムによる処理を実
行するプロセッサ装置に関する。
【0002】
【従来の技術】コンピュータや各種の情報処理機器を接
続してシステムの利用を拡大するために、例えば、LA
N(Local Area Network)とLAN、LANと専用線等を
相互接続するといったネットワークが増加している。
【0003】こうして構築されるネットワークで現在主
流なのはIP(Internet Protocol)によるネットワーク
である。IPはISO(International Organization fo
r Standardization)のOSI(Open Systems Interconne
ction)モデルにおけるネットワーク層に相当するコネク
ションレス型のプロトコルである。
【0004】コネクションレス型のIP通信は、あらか
じめ端末間で通信路を確保するコネクション型のプロト
コルとは異なり、LAN間を相互接続するパケット中継
装置が、通信データが格納されているパケットを、ヘッ
ダ情報にもとづいて中継処理することにより端末間の通
信を実現する。
【0005】パケット中継装置では、受信パケットのパ
ケットフォーマットをヘッダ情報から判別し、各パケッ
トフォーマットに応じて、パケットヘッダのチェックサ
ムの計算、宛先テーブルの検索、パケットヘッダの書き
換え等を行ってパケット中継を実現する。
【0006】さらに、パケット中継装置では、上述のパ
ケット中継処理に加え、ネットワーク上のある特定の通
信を制限するパケットフィルタリングの実装が求められ
ている。パケットフィルタリング処理では、特定の宛先
アドレスを有するパケットを判別して、パケット中継を
制限する処理を行う。
【0007】パケット処理システムを構築する場合、装
置完成後のプロトコル自体の改訂に伴う処理手順の変更
に耐えうるためには、上述のパケット中継処理やフィル
タリング処理を含め、プロセッサによってソフトウェア
処理するのが一般的である。
【0008】また近年では、装置開発者が記述したマイ
クロコード(命令列)のプログラムに従って、パケット
処理を行うパケット処理プロセッサが開発されている。
マイクロコードとは、パケット処理プロセッサが具備す
る機械語レベルの言語である。
【0009】
【発明が解決しようとする課題】しかし、従来のパケッ
ト処理プロセッサでパケットへアクセスする場合、ある
ヘッダ(例えば、IPヘッダ)に対して、同一内容のパケ
ット処理を行うプログラムであったとしても、そのヘッ
ダよりも下位層のプロトコルスタックが互いに違う場合
には、プログラム内の命令中で指定するオペランド(デ
ータの所在を示すもの)が異なることになる。
【0010】このため、装置開発者は、パケットのプロ
トコルスタックの違いに応じて、個別のプログラムを作
成しなければならず、プログラム作成工数の増大及びプ
ログラム格納用メモリの容量増大を招くといった問題が
あった。
【0011】本発明はこのような点に鑑みてなされたも
のであり、プロトコルスタックの違いを意識せずに、同
一プログラムでのアクセスを可能とすることで、設計効
率を向上させ、高品質なパケット処理を行うプロセッサ
装置を提供することを目的とする。
【0012】
【課題を解決するための手段】本発明では上記課題を解
決するために、図1に示すような、パケットに対して、
プログラムによる処理を実行するプロセッサ装置1にお
いて、固定レジスタ長を持つ複数のデータレジスタに、
パケットを格納するパケット格納部10と、パケットの
先頭からプロトコルスタックの開始位置を示すプロトコ
ルスタック位置情報を取得し保持するアドレスレジスタ
20と、プロトコルスタック内のフィールドの位置及び
対象フィールドを処理するためのパラメータを示すフィ
ールド位置情報を管理するアドレスレジスタテーブル3
0と、プロトコルスタックの違いにより、フィールド位
置が異なるパケットに対して、プロトコルスタックの違
いに依存せずに同一のプログラムにより、プロトコルス
タック位置情報及びフィールド位置情報にもとづいて、
レジスタアライメントの整形処理をして、対象フィール
ドのパケット処理を行う演算部40と、を有することを
特徴とするプロセッサ装置1が提供される。
【0013】ここで、パケット格納部10は、固定レジ
スタ長を持つ複数のデータレジスタに、パケットを格納
する。アドレスレジスタ20は、パケットの先頭からプ
ロトコルスタックの開始位置を示すプロトコルスタック
位置情報を取得し保持する。アドレスレジスタテーブル
30は、プロトコルスタック内のフィールドの位置及び
対象フィールドを処理するためのパラメータを示すフィ
ールド位置情報を管理する。演算部40は、プロトコル
スタックの違いにより、フィールド位置が異なるパケッ
トに対して、プロトコルスタックの違いに依存せずに同
一のプログラムにより、プロトコルスタック位置情報及
びフィールド位置情報にもとづいて、レジスタアライメ
ントの整形処理をして、対象フィールドのパケット処理
を行う。
【0014】
【発明の実施の形態】以下、本発明の実施の形態を図面
を参照して説明する。図1は本発明のプロセッサ装置の
原理図である。プロセッサ装置1は、プログラム(マイ
クロコード)によりパケット処理を実行する装置であ
り、パケット中継装置などに適用される。パケット中継
装置(IPルータ等)は、宛先テーブルの検索やヘッダ
書き換え処理等のパケット処理を行って、通信網上でパ
ケットの中継を行うものである。
【0015】パケット格納部10は、複数のデータレジ
スタ(1つのデータレジスタは固定のレジスタ長を持
つ)から構成され、受信したパケットを格納する。アド
レスレジスタ20は、パケットの先頭からプロトコルス
タックの開始位置を示すプロトコルスタック位置情報
を、受信パケット毎に取得し保持する。
【0016】アドレスレジスタテーブル30は、プロト
コルスタック内のフィールドの位置及び対象フィールド
を処理するためのパラメータを示すフィールド位置情報
を管理する。
【0017】なお、アドレスレジスタ20で保持される
プロトコルスタック位置情報は、受信したパケット毎に
応じて取得される情報であり、アドレスレジスタテーブ
ル30で管理するフィールド位置情報は、プログラム共
通のライブラリとしてあらかじめ設定しておく情報であ
る。
【0018】演算部40は、プロトコルスタックの違い
に依存せずに同一のプログラムにより、プロトコルスタ
ック位置情報及びフィールド位置情報にもとづいて、レ
ジスタアライメントの整形処理をしつつ、対象フィール
ドに対してのパケット処理(ここでは対象フィールドの
抽出・更新)を行う。
【0019】なお、レジスタアライメントの整形処理と
は、抽出・更新すべき対象フィールドのデータのMSB
(Most Significant Bit)またはLSB(Least Significa
nt Bit)を、データレジスタのアライメント(境界線)
に一致させる処理のことである。
【0020】ここで、パケットA、Bに対し、プロトコ
ルスタックが双方ちがうと、対象フィールドの位置がパ
ケットA、Bで異なる。このような場合、従来では、対
象フィールドにアクセスするために、プロトコルスタッ
ク毎にプログラムA、Bを作成する必要があったが(す
なわち、パケットA、Bそれぞれに対応するプログラム
を作成する必要があった)、本発明では、プロトコルス
タックが異なっていても、1つのプログラムCでパケッ
トA、Bのそれぞれの対象フィールドに、アクセスの実
行を可能とするものである。なお、本発明の詳細な構成
及び動作については図4以降で説明する。
【0021】次に本発明が解決したい問題点について詳
しく説明する。図2、図3はパケット構成を示す図であ
る。図2はデータリンク層がEthernet(登録商標)(DI
X)形式の場合のパケット101を示し、図3はデータ
リンク層がEthernet(SNAP)形式の場合のパケット10
2を示している。
【0022】図中、“任意の名前_DA”は、任意の名
前のデスティネーションアドレス(Destination Addres
s:宛先アドレス)を示し、“任意の名前_SA”は、
任意の名前のソースアドレス(Source Address:発信元
アドレス)を示す。そして、“任意のフィールド名[数
値1:数値2]”は、任意のフィールドの数値1と数値
2を含む数値1から数値2までの範囲を示す。
【0023】また、DIXはDigital,Intel,Xeroxの略
であり、SNAPはSubNetwork Access Protocolの略で
ある。MACはMedia Access Controlの略でデータリン
ク層を示し、SSAPはSource Service Access Point
の略である。DSAPは、Destination Service Access
Pointの略であり、LLCはLogical Link Controlの略
であり、OUIはOrganizationally Unique Identifier
の略である。
【0024】通常、パケットは、先頭から複数のパケッ
トヘッダが積み重なるように格納され、(図では、Ether
netヘッダの次にIPヘッダが積まれている)、後続して
パケットデータ(図中のData)が格納される。そして、各
パケットヘッダには、複数のフィールド(例えば、MA
C_DA等)が格納される。
【0025】また、パケットヘッダの位置は、パケット
が包含するプロトコルスタックに応じて異なる。例え
ば、ネットワーク層のプロトコルがIPのパケット同士
であったとしても、下位層のデータリンク層のプロトコ
ルが互いに異なれば、パケットヘッダの位置も異なって
くる。
【0026】すなわち、図2、図3に示すように、デー
タリンク層のフォーマット形式がEthernet(DIX)形式とE
thernet(SNAP)形式というように異なれば、IPヘッダ
の位置は異なることになる。データリンク層がEthernet
(DIX)形式のパケット101では、データレジスタd3
からIPヘッダの先頭が始まるのに対して、Ethernet(S
NAP)形式のパケット102では、データレジスタd5か
らIPヘッダの先頭が始まっている。
【0027】ただし、パケットヘッダ内の各フィールド
位置は、固定的であり、パケットヘッダの種類が同一種
ならば、各フィールドの位置は、パケットヘッダの先頭
から互いに同一位置になる。例えば、IP_SAフィー
ルドは、いずれのパケット101、102に対しても、
IPヘッダの先頭から同一位置(IPヘッダ中のビット
位置32、ビット位置63)にある。
【0028】このような特性を持つパケットに対して、
装置開発者が記述したマイクロコードの命令によって、
パケット処理が行われる。命令列のフォーマットは、
「修飾詞 オペコード デスティネーションレジスタ
ソースレジスタ」といった形をとる。
【0029】オペコードとは、加算や減算等の処理動作
を規定し、デスティネーションレジスタは、処理動作結
果の格納先を示し、ソースレジスタは、処理動作の対象
となるデータの読み出し元を示す。
【0030】ここで、命令列の一例として、パケット1
01に対して、“ソースレジスタとしてIP_SAを指
定する命令列”について示すと、この命令列は、Cond O
pecode Operand0 d6、Cond Opecode Operand1 d7とな
る。
【0031】「Cond」は、任意の命令に対する任意の修
飾詞を示し、「Opecode」は、任意のオペコード(例え
ば、加算、減算等)を示し、「Operand0」「Operand1」
は、任意のデスティネーションレジスタを示す。そし
て、IP_SAは、パケット101の場合、データレジ
スタd6とデータレジスタd7にまたがっているため、
ソースレジスタ部分は「d6」、「d7」となる。
【0032】同様にパケット102に対して、“ソース
レジスタとしてIP_SAを指定する命令列”を示す
と、この命令列はCond Opecode Operand0 d8、Cond Ope
code Operand1 d9となる。パケット102では、IP_
SAは、データレジスタd8とデータレジスタd9にま
たがっているため、ソースレジスタ部分は「d8」、
「d9」となる。
【0033】このように、同一内容である「IP_SA
を参照する」というパケット処理を実行する場合、デー
タリンク層がEthernet(DIX)形式のパケット101で
は、ソースレジスタとしてデータレジスタd6、d7を
指定するプログラムを実行するのに対して、データリン
ク層がEthernet(SNAP)形式のパケット102では、ソー
スレジスタとしてデータレジスタd8、d9を指定する
プログラムを実行することになる。
【0034】このため、従来では、装置開発者は、デー
タリンク層がEthernet(DIX)形式のときのプログラム
と、データリンク層がEthernet(SNAP)形式のときのプロ
グラムとの両方を作成する必要があり、利便性及び設計
効率が悪いといった問題があった。本発明では、プロト
コルスタックの違いに依存せず、同一プログラムで互い
のフィールドへアクセス可能となるように制御して、設
計効率の向上及びパケット処理の高品質化を図るもので
ある。
【0035】次に本発明のプロセッサ装置1の構成及び
動作(第1の実施の形態とする)について具体例を用い
て詳しく説明する。図4はプロセッサ装置1によるパケ
ット格納部10へのアクセスアーキテクチャを示す図で
ある。
【0036】パケット格納部10は、一定のビット長
(レジスタ長を32ビットとする)を有するデータレジス
タで構成され(図中のd0〜d15はデータレジスタ
名)、パケットデータは、基本的にビット長単位に入出
力が実行される。
【0037】したがって、1つの命令によってプロセッ
サ装置1がアクセス可能な最大フィールド長は、32ビ
ットのレジスタ長であり、このレジスタ長より長いフィ
ールドをアクセスする際には、複数命令に分けて対象フ
ィールドをアクセスすることになる(本発明が解決した
い課題やその解決といったことに関係なく上述のことが
いえる)。
【0038】本発明のプロセッサ装置1では、最大フィ
ールド長(32ビット)から、最小フィールド長(0ビ
ット)までの範囲内のアクセス処理において、プロトコ
ルスタックの違いに関係なく、同一の対象フィールドに
対し、同一のオペランドでアクセスを可能とする。
【0039】このため、本発明では、プロセッサ装置1
が、対象フィールドを複数命令に分けてアクセスする際
にも、対象フィールドを各命令がアクセスするフィール
ド長に分配して、分割後の対象フィールドを、あらたな
対象フィールドとしてアドレスレジスタテーブル上定義
しなおすことによって、これら複数の各命令に対して、
同一の対象フィールドに対し、同一のオペランドでアク
セス可能である。
【0040】次に図中の各構成要素について説明する。
アドレスレジスタ20は、複数のアドレスレジスタAddR
eg0、 AddReg1、 AddReg2、…によって構成し、プロト
コルスタック0がアドレスレジスタAddReg0、プロトコ
ルスタック1がアドレスレジスタAddReg1というように
対応する。
【0041】なお、アドレスレジスタの番号(例えば、A
ddReg0)と、そのアドレスレジスタ番号が示すプロトコ
ルスタック(例えば、IPヘッダ)との対応関係は、固定
的ではなく、装置開発者がプログラムに応じて関連付け
を定義して設定するものである。また、各アドレスレジ
スタは、プロトコルスタック位置情報として、レジスタ
オフセット(RegOffset)とビットオフセット(BitOffs
et)から構成される。
【0042】1つのアドレスレジスタは、1つのプロト
コルスタック(例えば、EthernetヘッダとかIPヘッダ
等)のパケット先頭からの開始位置を示している。例え
ば、アドレスレジスタAddReg0に対しては、レジスタオ
フセットが4であり、ビットオフセットが24であるの
で(以降、[AddReg0, RegOffset]=4、[AddReg0, BitOf
fset]=24というように表記する)、プロトコルスタッ
ク0の開始位置は、データレジスタd4のビット位置7
となる。
【0043】なお、32ビット長のレジスタのビット位
置は、LSB側から、ビット位置0、1、2、…、31
である(1つのデータレジスタの右アライメント側がL
SB、左アライメント側がMSBである)。
【0044】一方、アドレスレジスタテーブル30は、
複数のアドレスレジスタテーブルAddRegTbl0、AddRegTb
l1、AddRegTbl2、…によって構成される。なお、アドレ
スレジスタテーブルAddRegTbl0はアドレスレジスタAddR
eg0に、アドレスレジスタテーブルAddRegTbl1はアドレ
スレジスタAddReg1に、というように1:1に対応して
いる。
【0045】また、各アドレスレジスタテーブルは、フ
ィールド位置情報として、エントリ番号(entry)、フィ
ールドレジスタオフセット(RegOffset)、フィールドM
SB位置、回転量、ビットマスク(64ビット)(BitM
ask(64bit))の各項目から構成される。
【0046】図5はアドレスレジスタテーブル30上の
フィールド位置情報の内容を説明するための図である。
エントリ番号(entry)は、プロトコルスタック内のフィ
ールドを示す。例えば、アドレスレジスタテーブルAddR
egTbl0のプロトコルスタックがIPヘッダのテーブルで
あるとき、E0はIPヘッダ内のIP_SAに該当す
る、というようにエントリ番号はフィールドを表すもの
である。図では、エントリ番号E0は、図中の対象フィ
ールド0に該当し、エントリ番号E1は、対象フィール
ド1に該当するものとする。
【0047】フィールドレジスタオフセット(RegOffse
t)は、プロトコルスタックの先頭がデータレジスタのア
ライメントと一致した場合の対象フィールドのMSBが
存在するデータレジスタを示す。図の場合、パケット格
納部10に対してプロトコルスタックの開始位置を、そ
の開始位置が存在する行の左端に移動させた場合に、左
端のデータレジスタから数えて、対象フィールドのMS
Bが存在するデータレジスタまでの数を示す。
【0048】ここで、プロトコルスタック0の実際の開
始位置は、図4で上述したように、データレジスタd4
のビット位置7(図5の位置P)であるが、この開始位
置Pを、その開始位置が存在するデータレジスタ左端
(位置Pt)に移動させる。そして、この状態(位置P
tからプロトコルスタック0が開始すると設定した状
態)のときに、開始位置が存在するデータレジスタから
数えて、対象フィールドのMSBが存在するデータレジ
スタまでの数がフィールドレジスタオフセットである。
【0049】例えば、エントリ番号E0の対象フィール
ド0のフィールドレジスタオフセット(RegOffset)につ
いて見ると、このフィールドレジスタオフセット(RegOf
fset)は、開始位置が存在するデータレジスタ(データ
レジスタd4)から数えて、対象フィールド0のMSB
が存在するデータレジスタ(データレジスタd7)まで
の数を示している。
【0050】すなわち、データレジスタd4から0から
数えて3番目のデータレジスタに対象フィールド0のM
SBがあるので(データレジスタd4から0から数えた
数字を図中の括弧内に示す)、対象フィールド0のフィ
ールドレジスタオフセット(RegOffset)は3となる。
【0051】同様に、位置Ptからプロトコルスタック
0が開始するとみなした状態で、エントリ番号E1の対
象フィールド1のフィールドレジスタオフセット(RegOf
fset)について見ると、対象フィールド1のMSBは、
データレジスタd12に存在することになるので、デー
タレジスタd4から0から数えて8番目のデータレジス
タとなり、対象フィールド1のフィールドレジスタオフ
セット(RegOffset)は8となる。
【0052】一方、フィールドMSB位置は、位置Pt
からプロトコルスタック0が開始するとみなした状態
で、対象フィールドのMSBがあるデータレジスタ内で
の対象フィールドの開始位置(すなわち、対象フィール
ドのMSBの位置)を示す。
【0053】例えば、対象フィールド0のMSBは、デ
ータレジスタd7のビット位置7から始まるので、対象
フィールド0のフィールドMSB位置は7であり、対象
フィールド1のMSBは、データレジスタd12のビッ
ト位置15から始まるので、対象フィールド1のフィー
ルドMSB位置は15である。
【0054】また、指定回転量を示す回転量及び対象フ
ィールドの存在箇所を示すビットマスク(BitMask(64bi
t))は、レジスタアライメントの整形処理時に用いるパ
ラメータである。これらのパラメータを使用してのレジ
スタアライメントの整形処理については後述する。
【0055】なお、ビットマスクのビット長は、レジス
タ長の2倍を持ち、ここではレジスタ長は32ビットな
ので、この2倍の64ビットとなっている。レジスタ長
が32ビット以外のときは、ビットマスクのビット長
は、そのレジスタ長の2倍のビット長を有することにな
る。
【0056】以上説明したような、アドレスレジスタ2
0のプロトコルスタック位置情報及びアドレスレジスタ
テーブル30のフィールド位置情報にもとづき、装置開
発者が記述したプログラムにより、プロセッサ装置1
は、データレジスタ上の対象フィールドに対してアクセ
スを行うことになる。
【0057】ここで、本発明のプロセッサ装置1を動作
させる際の、プロトコルスタックの違いに依存しないプ
ログラムについて説明する。例えば、IPヘッダ内のI
P_SAフィールドにアクセスする命令列を、装置開発
者が記述する場合、装置開発者は、IPヘッダを示す
“AddReg0”とIP_SAフィールドを示すAddRegTbl0
のエントリ番号“E0”を組で、ソースレジスタ/デス
ティネーションレジスタとして指定することにより、パ
ケットのプロトコルスタックの違いに関係なく、同一処
理を同一プログラムで記述できる。
【0058】命令列の具体例を示すと、ソースレジスタ
として対象フィールド0を指定する命令列はCond Opeco
de Operand0 AddReg0 E0となり、ソースレジスタとして
対象フィールド1を指定する命令列はCond Opecode Ope
rand1 AddReg0 E1となる。
【0059】また、デスティネーションレジスタとして
対象フィールド0を指定する命令列はCond Opecode Add
Reg0 E0 Operand0となり、デスティネーションレジスタ
として対象フィールド1を指定する命令列はCond Opeco
de AddReg0 E1 Operand1となる。
【0060】次に演算部40について説明する。上述し
たようなプログラムにもとづいて、プログラム装置1内
の演算部40は、対象フィールドを特定して、抽出/更
新(Read/Write)の処理を行うことになる。まず最初
に、ソースレジスタ内の対象フィールド0を抽出(リー
ド)してデスティネーションレジスタへ格納する処理に
ついて図6〜図11を用いて説明する。
【0061】図6は演算部の全体構成を示す図である。
演算部40Rは、ソースレジスタ選択器41R−1、4
1R−2、フィールド抽出器42R−1、42R−2か
ら構成される。ソースレジスタ選択器41R−1、41
R−2は、対象フィールドが存在するデータレジスタ
(ソースレジスタ)を選択する。フィールド抽出器42
R−1、42R−2は、レジスタアライメントの整形処
理を行い、対象フィールドを抽出し、抽出した対象フィ
ールドを、指定されたデスティネーションレジスタへ格
納する。
【0062】図7はソースレジスタ選択器41R−1の
構成を示す図である。ソースレジスタ選択器41R−1
(第1のソースレジスタ選択器)は、減算部41R−1
a、加算部41R−1bから構成される。ソースレジス
タ選択器41R−1は、データレジスタd8とデータレ
ジスタd9にまたがって格納されている対象フィールド
0の第1ソースレジスタとして、データレジスタd8を
選択するものである。
【0063】また、ソースレジスタ選択器41R−1
は、基本的には、[AddReg0, RegOffset]と[AddRegTbl0,
E0, RegOffset]をもとにデータレジスタを選択する
が、[AddRegTbl0, E0, フィールドMSB位置]が[AddRe
g0, BitOffset]よりも小さいときには、[AddReg0, RegO
ffset]と[AddRegTbl0, E0, RegOffset]をもとに選択し
たデータレジスタ値から次のデータレジスタを選択す
る。
【0064】ここで、減算部41R−1aは、[AddRegT
bl0,E0,フィールドMSB位置]=7と[AddReg0, BitOff
set]=24を入力値として、7−24の減算を行う。減
算結果が負の数のとき([AddRegTbl0, E0, フィールド
MSB位置]が[AddReg0, BitOffset]よりも小さいと
き)は“1”を出力する。
【0065】加算部41R−1bは、[AddReg0,RegOffs
et]=4、[AddRegTbl0,E0,RegOffset]=3を加算し、さ
らに減算部41R−2aの出力値=1を加えて加算値8
として、データレジスタ選択番号d8を選択する。
【0066】図8はソースレジスタ選択器41R−2の
構成を示す図である。ソースレジスタ選択器41R−2
(第2のソースレジスタ選択器)は、減算部41R−2
a、加算部41R−2bから構成される。ソースレジス
タ選択器41R−2は、データレジスタd8とデータレ
ジスタd9にまたがって格納されている対象フィールド
0の第2ソースレジスタとして、データレジスタd9を
選択するものである。
【0067】ソースレジスタ選択器41R−2は、ソー
スレジスタ選択器41R−1と同様の動作を行う。ただ
し、ソースレジスタ選択器41R−1が選択した次のデ
ータレジスタを選択するため、加算部41R−2bで
は、[AddReg0,RegOffset]=4、[AddRegTbl0,E0,RegOff
set]=3、減算部41R−2aの出力値=1の他に、さ
らに1を加算して加算値9として、データレジスタ選択
番号d9を選択する。
【0068】図9はフィールド抽出器(置き換え)42
R−1の構成を示す図である。第1のフィールド抽出器
であるフィールド抽出器(置き換え)42R−1は、論
理積器42R−1a、右回転器42R−1b(第2の右
回転器)、右回転器42R−1c(第1の右回転器)、
左回転器42R−1d、上位32bit/下位32bi
t出力器42R−1e(ビット分割部)、セレクタ42
R−1f、減算部42R−1gから構成される。
【0069】フィールド抽出器(置き換え)42R−1
は、対象フィールドがレジスタアライメントと一致して
いない場合に、対象フィールドを抽出して整形処理をし
て置き換えを行う。ここでは、データレジスタd8の下
位16ビットの位置にある対象フィールド0を抽出し、
デスティネーションレジスタOperand0の上位16ビット
に置き換えて格納する。
【0070】減算部42R−1gは、[AddReg0, BitOff
set]=24と[AddRegTbl0、E0、フィールドMSB位置]
=7とを減算して大小関係を求め“1”を出力する。右
回転器42R−1cは、[AddReg0, BitOffset]=24を
指定回転量として、[AddRegTbl0, E0, BitMask]=0x000
000FFFFFFFF00(0xは16進数を示す)に、後述の右
回転処理を施し、0xFFFF00000000FFFFを出力する。
【0071】上位32bit/下位32bit出力器4
2R−1eは、右回転器42R−1cの64ビットの出
力値を上位32ビット、下位の32ビットに分割して、
上位32ビット0xFFFF0000、下位32ビット0x0000FFFF
を出力する。
【0072】セレクタ42R−1fは、減算部42R−
1gの出力値をセレクト信号として用いて、端子(0)
に入力する上位32ビットデータと、端子(1)に入力
する下位32ビットデータのいずれかを選択して出力す
る。ここでは、減算部42R−1gの出力値は“1”な
ので、端子(1)に入力する下位32ビットデータ0x00
00FFFFが選択されて出力される。
【0073】論理積器42R−1aは、データレジスタ
d8内のデータ値(0x12345678とする)とセレクタ42
R−1fの選択出力0x0000FFFFとを受信し、AND論理
をとって、0x00005678を出力する。
【0074】右回転器42R−1bは、[AddRegTbl0, E
0, 回転量]=8を指定回転量として、論理積器42R−
1aからの出力値0x00005678に、後述の右回転処理を施
し、0x78000056を出力する。
【0075】左回転器42R−1dは、[AddReg0, BitO
ffset]=24を指定回転量として、右回転器42R−1
bからの出力値0x78000056に、後述の左回転処理を施
し、0x56780000を出力する。
【0076】このような演算制御を行って、対象フィー
ルド0の下位16ビットが存在するデータレジスタd8
のデータ0x12345678を0x56780000と変換している。これ
により、第1ソースレジスタ(データレジスタd8)か
ら対象フィールド0の下位16ビットを抽出した結果
を、デスティネーションレジスタOperand0の上位16
ビット側へ置き換えて格納できる。
【0077】ここで右回転処理、左回転処理について説
明する。右回転処理は、指定回転量の分だけ、下位ビッ
ト値を上位ビットの位置へ移動させて全体を右へシフト
する。左回転処理は、上位ビット値を下位ビットの位置
へ移動させて全体を左へシフトする。例えば、2進数1
011を1ビット右回転すると2進数1101になる。
また、2進数1011を1ビット左回転すると2進数0
111になる。
【0078】図10は右回転、左回転を示す図である。
右回転器42R−1cと左回転器42R−1dの動作に
ついて示す。右回転器42R−1cでは、0x000000FFFF
FFFF00に対し、指定回転量の[AddReg0, BitOffset]=2
4ビット分を右回転する場合、下位ビット値FFFF00を上
位ビットの位置へ移動させて全体を右へシフトする。右
回転後の値は、0xFFFF00000000FFFFとなる。
【0079】また、左回転器42R−1dでは、0x7800
0056に対し、指定回転量の[AddReg0, BitOffset]=24
ビット分を左回転する場合、上位ビット値780000を下位
ビットの位置へ移動させて全体を左へシフトする。左回
転後の値は、0x56780000となる。
【0080】図11はフィールド抽出器(追加)42R
−2の構成を示す図である。第2のフィールド抽出器で
あるフィールド抽出器(追加)42R−2は、論理積器
42R−2a、右回転器42R−2b(第2の右回転
器)、右回転器42R−2c(第1の右回転器)、左回
転器42R−2d、上位32bit/下位32bit出
力器42R−2e(ビット分割部)、セレクタ42R−
2f、減算部42R−2g、論理和器42R−2hから
構成される。
【0081】フィールド抽出器(追加)42R−2は、
図9で上述したフィールド抽出器(置き換え)42R−
1により格納された残りのデータレジスタの空き部分
に、データレジスタd9から抽出した対象フィールドを
追加して格納する。
【0082】ここでは、データレジスタd9の上位16
ビットの位置にある対象フィールド0を抽出し、レジス
タアライメントの整形処理を行って、デスティネーショ
ンレジスタOperand0の下位16ビット(上位16ビット
は、すでにデータレジスタd8の対象フィールド0が格
納済み)に追加して格納できる。
【0083】減算部42R−2gは、[AddReg0, BitOff
set]=24と[AddRegTbl0、E0、フィールドMSB位置]
=7とを減算して大小関係を求め“1”を出力する。右
回転器42R−2cは、[AddReg0, BitOffset]=24を
指定回転量として、[AddRegTbl0, E0, BitMask]=0x000
000FFFFFFFF00に、右回転処理を施し、0xFFFF00000000F
FFFを出力する。
【0084】上位32bit/下位32bit出力器4
2R−2eは、0xFFFF00000000FFFFを、上位32ビット
0xFFFF0000、下位32ビット0x0000FFFFに分割して出力
する。
【0085】セレクタ42R−2fは、減算部42R−
2gの出力値をセレクト信号として用いて、端子(1)
に入力する上位32ビットデータと、端子(0)に入力
する下位32ビットデータのいずれかを選択して出力す
る。ここでは、端子(1)に入力する上位32ビットデ
ータ0xFFFF0000が選択されて出力される。
【0086】論理積器42R−2aは、データレジスタ
d9のデータ値(0x9ABCDEF0とする)とセレクタ42R
−2fの選択出力0xFFFF0000とを受信し、AND論理を
とって、0x9ABC0000を出力する。
【0087】右回転器42R−2bは、[AddRegTbl0, E
0, 回転量]=8を指定回転量として、論理積器42R−
2aからの出力値0x9ABC0000に、右回転処理を施し、0x
009ABC00を出力する。
【0088】左回転器42R−2dは、[AddReg0, BitO
ffset]=24を指定回転量として、右回転器42R−2
bからの出力値0x009ABC00に、左回転処理を施し、0x00
009ABCを出力する。
【0089】論理和器42R−2hは、左回転器42R
−2dからの出力値0x00009ABCと、図9で上述したフィ
ールド抽出器(置き換え)42R−2による演算結果0x
56780000とのOR論理をとって、0x56789ABCを出力す
る。
【0090】このような演算制御を行って、対象フィー
ルド0の上位16ビットが存在するデータレジスタd9
のデータ0x9ABCDEF0を0x56789ABCと変換している。これ
により、第2ソースレジスタ(データレジスタd9)か
ら対象フィールド0の上位16ビットを抽出した結果
を、デスティネーションレジスタOperand0の下位16
ビット側へ追加して格納する。
【0091】以上説明したような制御を行うことで、プ
ロトコルスタックの違いに依存しないプログラムによ
り、対象フィールドを特定して、抽出処理を行うことが
可能になる。
【0092】次にデスティネーションレジスタに格納さ
れている対象フィールドをソースレジスタのデータで更
新(ライト)する処理について図12〜図16を用いて
説明する。図12は演算部の全体構成を示す図である。
演算部40Wは、デスティネーションレジスタ選択器4
1W−1、41W−2、フィールド書き込み器42W−
1、42W−2から構成される。デスティネーションレ
ジスタ選択器41W−1、41W−2は、対象フィール
ドが存在するデータレジスタを選択する。
【0093】ここでは、デスティネーションレジスタ選
択器41W−1(第1のデスティネーションレジスタ選
択器)とデスティネーションレジスタ選択器(第2のデ
スティネーションレジスタ選択器)41W−2は、デス
ティネーションレジスタとして、データレジスタd8、
d9を選択する。
【0094】なお、デスティネーションレジスタ選択器
41W−1、41W−2の内部構成及び動作は、図7、
図8で上述したソースレジスタ選択器41R−1、41
R−2と同様であるので説明は省略する。一方、フィー
ルド書き込み器42W−1、42W−2は、レジスタア
ライメントの整形処理を行い、フィールド書き込み処理
を実行する。
【0095】図13、図14はフィールド書き込み器4
2W−1の構成を示す図である。フィールド書き込み器
42W−1(第1のフィールド書き込み器)は、論理積
器42W−1a(第2の論理積器)、論理積器42W−
1b(第1の論理積器)、右回転器42W−1c(第2
の右回転器)、右回転器42W−1d(第1の右回転
器)、上位32bit/下位32bit出力器42W−
1e(ビット分割部)、セレクタ42W−1f、減算部
42W−1g、論理和器42W−1h、左回転器42W
−1i、論理否定器42W−1jから構成される。
【0096】フィールド書き込み器42W−1は、デス
ティネーションレジスタd8の対象フィールド0の下位
16ビットのみを書き換えて(他の領域は書き換えな
い)更新する。
【0097】減算部42W−1gは、[AddReg0, BitOff
set]=24と[AddRegTbl0、E0、フィールドMSB位置]
=7とを減算して大小関係を求め“1”を出力する。右
回転器42W−1dは、[AddReg0, BitOffset]=24を
指定回転量として、[AddRegTbl0, E0, BitMask]=0x000
000FFFFFFFF00に、右回転処理を施し、0xFFFF00000000F
FFFを出力する。
【0098】上位32bit/下位32bit出力器4
2W−1eは、0xFFFF00000000FFFFを、上位32ビット
0xFFFF0000、下位32ビット0x0000FFFFに分割して出力
する。
【0099】セレクタ42W−1fは、減算部42W−
1gの出力値をセレクト信号として用いて、端子(0)
に入力する上位32ビットデータと、端子(1)に入力
する下位32ビットデータのいずれかを選択して出力す
る。ここでは、端子(1)に入力する下位32ビットデ
ータ0x0000FFFFが選択されて出力される。
【0100】右回転器42W−1cは、[AddReg0, BitO
ffset]=24を指定回転量として、ソースレジスタOper
and0のデータ値(0x6789ABCDとする)に、右回転処理を
施し、0x89ABCD67を出力する。
【0101】左回転器42W−1iは、[AddRegTbl0, E
0, 回転量]=8を指定回転量として、右回転器42W−
1cからの出力値0x89ABCD67に、左回転処理を施し、0x
ABCD6789を出力する。
【0102】論理積器42W−1aは、左回転器42W
−1iからの出力値0xABCD6789と、セレクタ42W−1
fからの選択出力0x0000FFFFとを受信し、AND論理を
とって、0x00006789を出力する。
【0103】論理否定器42W−1jは、セレクタ42
W−1fからの選択出力0x0000FFFFのNOT論理をとっ
て、0xFFFF0000とする。論理積器42W−1bは、デス
ティネーションレジスタd8のデータ値(0x12345678と
する)と、論理否定器42W−1jからの出力値0xFFFF
0000とのAND論理をとって、0x12340000を出力する。
論理和器42W−1hは、論理積器42W−1aからの
出力値0x00006789と、論理積器42W−1bからの出力
値0x12340000とのOR論理をとって、0x12346789を出力
する。
【0104】このような演算制御を行って、対象フィー
ルド0の下位16ビットが存在するデータレジスタd8
のデータ0x12345678を0x12346789と変換している。すな
わち、第1デスティネーションレジスタ(データレジス
タd8)の対象フィールド0の下位16ビットのみを、
ソースレジスタOperand0の上位16ビットの書き換えデ
ータ元で書き換えている。
【0105】図15、図16はフィールド書き込み器4
2W−2の構成を示す図である。フィールド書き込み器
42W−2(第2のフィールド書き込み器)は、論理積
器42W−2a(第2の論理積器)、論理積器42W−
2b(第1の論理積器)、右回転器42W−2c(第1
の右回転器)、右回転器42W−2d(第1の右回転
器)、上位32bit/下位32bit出力器42W−
2e(ビット分割部)、セレクタ42W−2f、減算部
42W−2g、論理和器42W−2h、左回転器42W
−2i、論理否定器42W−2jから構成される。
【0106】フィールド書き込み器42W−2は、デス
ティネーションレジスタd9の対象フィールド0の上位
16ビットのみを書き換えて(他の領域は書き換えな
い)更新する。
【0107】減算部42W−2gは、[AddReg0, BitOff
set]=24と[AddRegTbl0、E0、フィールドMSB位置]
=7とを減算して大小関係を求め“1”を出力する。右
回転器42W−1dは、[AddReg0, BitOffset]=24を
指定回転量とし、[AddRegTbl0, E0, BitMask]=0x00000
0FFFFFFFF00に、右回転処理を施し、0xFFFF00000000FFF
Fを出力する。
【0108】上位32bit/下位32bit出力器4
2W−2eは、0xFFFF00000000FFFFを、上位32ビット
0xFFFF0000、下位32ビット0x0000FFFFに分割して出力
する。
【0109】セレクタ42W−2fは、減算部42W−
2gの出力値をセレクト信号として用いて、端子(0)
に入力する下位32ビットデータと、端子(1)に入力
する上位32ビットデータのいずれかを選択して出力す
る。ここでは、端子(1)に入力する上位32ビットデ
ータ0xFFFF0000が選択されて出力される。
【0110】右回転器42W−2cは、[AddReg0, BitO
ffset]=24を指定回転量として、ソースレジスタOper
and0のデータ値(0x6789ABCDとする)に、右回転処理を
施し、0x89ABCD67を出力する。
【0111】左回転器42W−2iは、[AddRegTbl0, E
0, 回転量]=8を指定回転量として、右回転器42W−
2cからの出力値0x89ABCD67に、左回転処理を施し、0x
ABCD6789を出力する。
【0112】論理積器42W−2aは、左回転器42W
−2iからの出力値0xABCD6789と、セレクタ42W−2
fからの選択出力0xFFFF0000とを受信し、AND論理を
とって、0xABCD0000を出力する。
【0113】論理否定器42W−2jは、セレクタ42
W−2fからの選択出力0xFFFF0000のNOT論理をとっ
て、0x0000FFFFとする。論理積器42W−2bは、デス
ティネーションレジスタd9のデータ値(0x9ABCDEF0と
する)と、論理否定器42W−2jからの出力値0x0000
FFFFとのAND論理をとって、0x0000DEF0を出力する。
【0114】論理和器42W−2hは、論理積器42W
−2aからの出力値0x0000DEF0と、論理積器42W−2
bのから出力値0xABCD0000とのOR論理をとって、0xAB
CDDEF0を出力する。
【0115】このような演算制御を行って、対象フィー
ルド0の上位16ビットが存在するデータレジスタd9
のデータ0x9ABCDEF0を0xABCDDEF0と変換している。すな
わち、第2デスティネーションレジスタ(データレジス
タd9)の対象フィールド0の上位16ビットのみを、
ソースレジスタOperand0の下位16ビットの書き換えデ
ータ元で書き換えている。
【0116】以上説明したような制御を行うことで、プ
ロトコルスタックの違いに依存しないプログラムによ
り、対象フィールドを特定して、更新処理を行うことが
可能になる。
【0117】次に第2の実施の形態について図17〜図
24を用いて説明する。第2の実施の形態のプロセッサ
装置は、パケット前処理部を有する。パケット前処理部
では、受信したパケットのプロトコルスタックの先頭
が、データレジスタのアライメントと一致するように、
パディングを付加してパケットを加工する。その後にパ
ケット処理が行われる。
【0118】図17は第2の実施の形態によるパケット
格納部10へのアクセスアーキテクチャを示す図であ
る。第1の実施の形態と異なる点を中心に説明する。ア
ドレスレジスタ20−2は、複数のアドレスレジスタAd
dReg0、 AddReg1、 AddReg2、…によって構成する。ま
た、各アドレスレジスタは、プロトコルスタック位置情
報として、レジスタオフセット(RegOffset)のみから
構成される。
【0119】図では、パケット前処理部によって、プロ
トコルスタック0はデータレジスタd5のアライメント
に一致するように加工されているため、[AddReg0, RegO
ffset]=5である。
【0120】一方、アドレスレジスタテーブル30−2
は、複数のアドレスレジスタテーブルAddRegTbl0、AddR
egTbl1、AddRegTbl2、…によって構成される。また、各
アドレスレジスタテーブルは、フィールド位置情報とし
て、エントリ番号(entry)、フィールドレジスタオフセ
ット(RegOffset)、回転量、ビットマスク(64ビッ
ト)(BitMask(64bit))の各項目から構成される。な
お、パケット格納部10内の括弧内の数字は、データレ
ジスタd5から0から数えた数字を示す。
【0121】このような、アドレスレジスタ20−2の
プロトコルスタック位置情報及びアドレスレジスタテー
ブル30−2のフィールド位置情報にもとづき、装置開
発者が記述したプログラムにより、第2の実施の形態の
プロセッサ装置は、データレジスタ上の対象フィールド
に対してアクセスを行うことになる。なお、プログラム
例は、第1の実施の形態で上述した命令列と同じフォー
マットである。
【0122】図18、図19は第2の実施の形態による
パケット格納部10への入力例を示す図である。図18
はデータリンク層がEthernet(DIX)形式のパケットの
格納例111を示し、図19はデータリンク層がEthern
et(SNAP)形式のパケットの格納例112を示してい
る。
【0123】図18に対し、パケット前処理部は、Ethe
rnet(DIX)形式のヘッダの末尾へ16ビット長のパディ
ング(以下、PAD)を付加し、IPヘッダの先頭をデ
ータレジスタd4の先頭から開始するようにパケットデ
ータを加工している。
【0124】図19に対し、パケット前処理部は、Ethe
rnet(SNAP)形式のヘッダの末尾へ16ビット長のPAD
を付加し、IPヘッダの先頭をデータレジスタd6の先
頭から開始するようにパケットデータを加工している。
【0125】次に図7、図8のソースレジスタ選択器に
対応する、第2の実施の形態のソースレジスタ選択器に
ついて説明する。図20はソースレジスタ選択器を示す
図である。ソースレジスタ選択器43−1(第1のソー
スレジスタ選択器)は、加算部43−1bを含む。加算
部43−1bは、[AddReg0,RegOffset]=5、[AddRegTb
l0,E0,RegOffset]=3を加算して加算値8として、デー
タレジスタ選択番号d8を選択する。
【0126】図21はソースレジスタ選択器を示す図で
ある。ソースレジスタ選択器43−2(第2のソースレ
ジスタ選択器)は、加算部43−2bを含み、ソースレ
ジスタ選択器43−1が選択した次のデータレジスタを
選択する、加算部43−2bでは、[AddReg0,RegOffse
t]=5、[AddRegTbl0,E0,RegOffset]=3の他に、さら
に1を加算して加算値9とし、データレジスタ選択番号
d9を選択する。
【0127】このように、第2の実施の形態でのソース
レジスタ選択器は、第1の実施の形態と比べて、論理段
数が少なくてすむため、より高速の選択動作を行うこと
が可能になる。
【0128】次に図9、図11のフィールド抽出器に対
応する、第2の実施の形態のフィールド抽出器について
説明する。図22はフィールド抽出器(置き換え)の構
成を示す図である。第1のフィールド抽出器であるフィ
ールド抽出器(置き換え)44−1は、論理積器44−
1a、右回転器44−1b、上位32bit出力器44
−1e(上位ビット出力部)から構成される。
【0129】フィールド抽出器(置き換え)44−1のこ
こでの動作は、データレジスタd8の下位8ビットの位
置にある対象フィールド0を抽出し、デスティネーショ
ンレジスタOperand0の上位8ビットに置き換えて格納す
る。
【0130】上位32bit出力器42R−1eは、[A
ddRegTbl0, E0, BitMask]=0x000000FFFFFFFF00の上位
32ビット0x000000FFを出力する。論理積器44−1a
は、データレジスタd8の値(0xF0123456とする)と、
0x000000FFとを受信し、AND論理をとって、0x000000
56を出力する。
【0131】右回転器44−1bは、[AddRegTbl0, E0,
回転量]=8を指定回転量として、論理積器44−1a
からの出力値0x00000056に、右回転処理を施し、0x5600
0000を出力する。
【0132】このような演算制御を行って、対象フィー
ルド0の下位8ビットが存在するデータレジスタd8の
データ0xF0123456を0x56000000と変換している。これに
より、第1ソースレジスタ(データレジスタd8)から
対象フィールド0の下位8ビットを抽出した結果を、デ
スティネーションレジスタOperand0の上位8ビット側
へ置き換えて格納できる。
【0133】図23はフィールド抽出器(追加)の構成
を示す図である。第2のフィールド抽出器であるフィー
ルド抽出器(追加)44−2は、論理積器44−2a、
右回転器44−2b、下位32bit出力器44−2e
(下位ビット出力部)、論理和器44−2hから構成さ
れる。
【0134】フィールド抽出器(追加)44−2のここで
の動作は、データレジスタd9の上位24ビットの位置
にある対象フィールド0を抽出し、デスティネーション
レジスタOperand0の下位24ビットに追加して格納する
(上位8ビットは、すでにデータレジスタd8の対象フ
ィールド0が格納済み)。
【0135】下位32bit出力器42R−2eは、[A
ddRegTbl0, E0, BitMask]=0x000000FFFFFFFF00の下位
32ビット0xFFFFFF00を出力する。論理積器44−2a
は、データレジスタd9の値(0x789ABCDEとする)と、0
xFFFFFF00とを受信し、AND論理をとって、0x789ABC0
0を出力する。
【0136】右回転器44−2bは、[AddRegTbl0, E0,
回転量]=8を指定回転量として、論理積器44−1a
からの出力値0x789ABC00に、右回転処理を施し、0x0078
9ABCを出力する。論理和器44−2hは、右回転器44
−2bからの出力値0x00789ABCと、図22で上述したフ
ィールド抽出器(置き換え)44−1による演算結果0x
56000000とのOR論理をとって、0x56789ABCを出力す
る。
【0137】このような演算制御を行って、対象フィー
ルド0の上位24ビットが存在するデータレジスタd9
のデータ0x789ABCDEを0x56789ABCと変換している。これ
により、第2ソースレジスタ(データレジスタd9)か
ら対象フィールド0の上位24ビットを抽出した結果
を、デスティネーションレジスタOperand0の下位24
ビット側へ追加して格納できる。
【0138】以上説明したように、第2の実施の形態で
のフィールド抽出器は、第1の実施の形態と比べて、論
理段数が少なくてすむため、より高速のフィールド抽出
動作を行うことが可能になる。
【0139】次に図13、図14のフィールド書き込み
器に対応する第2の実施の形態のフィールド書き込み器
について説明する。図24はフィールド書き込み器の構
成を示す図である。第1のフィールド書き込み器である
フィールド書き込み器45は、論理積器45a(第2の
論理積器)、論理積器45b(第1の論理積器)、上位
32bit出力器45e(上位ビット出力部)、論理和
器45h、左回転器45i、論理否定器45jから構成
される。
【0140】フィールド書き込み器45は、デスティネ
ーションレジスタd8の対象フィールド0の書き換え対
象領域を、この書き換え対象領域以外の領域は書き換え
ずに更新する。
【0141】上位32bit出力器45eは、0x000000
FFFFFFFF00の上位32ビット0x000000FFを出力する。左
回転器45iは、[AddRegTbl0, E0, 回転量]=8を指定
回転量として、ソースレジスタOperand0のデータ値(0x
6789ABCDとする)に、左回転処理を施し、0x89ABCD67を
出力する。
【0142】論理積器42aは、左回転器45iからの
出力値0x89ABCD67と、上位32bit出力器45eの出
力値0x000000FFとを受信し、AND論理をとって、0x00
000067を出力する。
【0143】論理否定器45jは、上位32bit出力
器45eの出力値0x000000FFのNOT論理をとって、0x
FFFFFF00とする。論理積器45bは、デスティネーショ
ンレジスタd8のデータ値(0xF0123456とする)と、論
理否定器45jからの出力値0xFFFFFF00とのAND論理
をとって、0xF0123400を出力する。論理和器45hは、
論理積器45aからの出力値0x00000067と論理積器45
bからの出力値0xF0123400とのOR論理をとって、0xF0
123467を出力する。
【0144】このような演算制御を行って、対象フィー
ルド0の下位8ビットが存在するデータレジスタd8の
データ0xF0123456を0xF0123467と変換している。すなわ
ち、第1デスティネーションレジスタ(データレジスタ
d8)の対象フィールド0の下位8ビットのみを、ソー
スレジスタOperand0の上位8ビットの書き換えデータ元
で書き換えている。
【0145】なお、デスティネーションレジスタd9の
上位24ビットの対象フィールド0を対象領域とした書
き換えを行う第2のフィールド書き込み器に対しては、
図24の構成に対し、上位32ビット出力器を下位32
ビット出力器(下位ビット出力部)に変更するだけでよ
い。
【0146】このように、第2の実施の形態でのフィー
ルド書き込み器は、第1の実施の形態と比べて、論理段
数が少なくてすむため、より高速のフィールド書き込み
動作を行うことが可能になる。
【0147】以上説明したように、第2の実施の形態で
は、パケット前処理部が、プロトコルスタックの先頭を
データレジスタアライメントに一致するように加工す
る。これにより、その後のパケット処理として、演算部
40における論理段数が全体的に少なくなるので、装置
開発者が記述したプログラムにしたがって、より高速に
抽出・更新の処理を行うことが可能になる。
【0148】次に第3の実施の形態について説明する。
第3の実施の形態では、第1の実施の形態で上述したよ
うな数値にエンコードしたレジスタオフセットを取得す
るのではなく、レジスタビットマップ作成部がレジスタ
ビットマップを作成し、このレジスタビットマップによ
りデータレジスタの選択動作が実行されるものである。
【0149】図25はレジスタビットマップの構成を示
す図である。レジスタビットマップ作成部はレジスタビ
ットマップMを作成する。また、レジスタビットマップ
M上の対応データレジスタのビット位置が“1”なら
ば、そこのデータレジスタを選択することを意味する。
例えば、図の場合、データレジスタd8が選択されるこ
とになる。
【0150】図26はソースレジスタ選択器とデスティ
ネーションレジスタ選択器の動作を示す図である。第1
のソースレジスタを選択するソースレジスタ選択器また
は第1のデスティネーションレジスタを選択するデステ
ィネーションレジスタ選択器(以下、両方を含めてレジ
スタ選択器41−1と呼ぶ)は、[AddReg, RegBitMap]
としてデータレジスタd5に“1”が立っているレジス
タビットマップM1を受信する。
【0151】そして、[AddRegTbl0, E0, RegOffset]=
3であるため、レジスタビットマップM1に対して、3
ビット分左シフトする。これにより、レジスタ選択器4
1−1は、データレジスタd8に“1”が立つレジスタ
ビットマップM1aを出力することで、データレジスタ
d8を選択する。
【0152】図27はソースレジスタ選択器とデスティ
ネーションレジスタ選択器の動作を示す図である。第2
のソースレジスタを選択するソースレジスタ選択器また
は第2のデスティネーションレジスタを選択するデステ
ィネーションレジスタ選択器(以下、両方を含めてレジ
スタ選択器41−2呼ぶ)は、[AddReg, RegBitMap]と
してデータレジスタd5に“1”が立っているレジスタ
ビットマップM1を受信する。
【0153】そして、[AddRegTbl0, E0, RegOffset]=
3であるため、レジスタビットマップM1に対して、3
ビット分左シフトし、さらにここでは左へ1ビットシフ
トする。これにより、レジスタ選択器41−2は、デー
タレジスタd9に“1”が立つレジスタビットマップM
1bを出力することで、データレジスタd9を選択す
る。
【0154】このように、第3の実施の形態では、デー
タレジスタの選択動作から加減算処理を排すことができ
るので、より高速に選択動作が可能となり、パケット処
理の高速化を図ることが可能になる。
【0155】次に第4の実施の形態について説明する。
図28は第4の実施の形態の構成を示す図である。第4
の実施の形態のプロセッサ装置1−4は、パケット格納
部10、アドレスレジスタ20、アドレスレジスタテー
ブル30、書き換え計算部60、アドレスレジスタテー
ブル(書き換え後)30aから構成される。
【0156】動作として、書き換え計算部60は、プロ
トコルスタック位置情報にもとづき、アドレスレジスタ
テーブル30のフィールド位置情報の書き換え計算をパ
ケットの受信毎に行い、あらたにアドレスレジスタテー
ブル(書き換え後)30aを作成する。
【0157】演算部40では、アドレスレジスタ30と
アドレスレジスタテーブル(書き換え後)30aの内容
にもとづいてパケット処理を行う。なお、元のアドレス
レジスタテーブル30は、他の次パケット処理を実行す
るときに必要となるので、別記憶領域にマスターテーブ
ルとして格納しておく。
【0158】図29は第4の実施の形態の概要を説明す
るための図である。書き換え計算部60により、元のア
ドレスレジスタテーブル30のAddRegTbl0の内容は、ア
ドレスレジスタテーブル(書き換え後)30aのAddReg
Tbl0aに示す値に書き換えられる。
【0159】ここで、アドレスレジスタテーブル30
は、プロトコルスタックの先頭がデータレジスタのアラ
イメントに一致させた場合における値を格納している
が、アドレスレジスタテーブル(書き換え後)30a
は、書き換え計算部60により計算された、パケット格
納部10に対するそのままの位置(データレジスタのア
ライメントに一致していない位置)のフィールド位置情
報が格納される。
【0160】図では、アドレスレジスタテーブル(書き
換え後)30aのAddRegTbl0aに対し、エントリ番号E
0の対象フィールド0は、[AddRegTbl0a, E0, RegOffse
t]=8、[AddRegTbl0a, E0, 回転量]=16、[AddRegTb
l0a, E0, BitMask]=0x0000FFFFFFFF0000となる。
【0161】なお、フィールドMSB位置は、アドレス
レジスタテーブル30からアドレスレジスタテーブル
(書き換え後)30aを作成するときには必要だが、そ
の後のパケット処理には不要であるので、アドレスレジ
スタテーブル30aではフィールドMSB位置は書き換
えない(この項目は必要ないということ)。
【0162】一方、演算部40では、AddRegTbl0aにも
とづきパケット処理を行う。この場合、ソース/デステ
ィネーションレジスタの選択処理、フィールド抽出及び
フィールド書き込み処理内のアドレスレジスタのビット
オフセットまたはフィールドMSB位置を入力とする処
理ブロックは、実行する必要がなく、高速に処理するこ
とができる。
【0163】例えば、演算部40は対象フィールド0に
対し、[AddRegTbl0a, E0, RegOffset]=8から直ちに、
第1のデータレジスタはデータレジスタd8、したがっ
て第2のデータレジスタはデータレジスタd9と認識で
きるし、[AddRegTbl0a, E0,BitMask]=0000FFFFFFFF000
0から、データレジスタd8の下位16ビットが対象フ
ィールド0の有効ビット、データレジスタd9の上位1
6ビットが対象フィールド0の有効ビットであり、[Add
RegTbl0a, E0, 回転量]=16の指定回転量を回転し
て、レジスタアライメントの整形が行える。このよう
に、第4の実施の形態により、演算部40での処理を高
速化できる。
【0164】次に第4の実施の形態の変形例について説
明する。図29ではパケット受信毎に、書き換え計算を
行ってアドレスレジスタテーブル30aを作成したが、
変形例の場合では、プログラム中で別のプロトコルスタ
ックをアクセスする際に、該当のプロトコルスタックに
対応するアドレスレジスタテーブルの値を書き換えるも
のである。
【0165】図30は第4の実施の形態の変形例の概要
を説明するための図である。変形例では、別プロトコル
スタックへアクセスを行う毎に、アドレスレジスタテー
ブルの書き換え計算を行う。図に示すように、命令列が
プロトコルスタック0に関する命令列C0からプロトコ
ルスタック1に関する命令列C1に切り替わったとき
に、書き換え計算部60は、プロトコルスタック1に関
する書き換え計算を行って、アドレスレジスタテーブル
(書き換え後)30aとしてAddRegTbl0bを作成する。
【0166】ここで、一般的にパケット処理を実行する
プログラムは、対象フィールドアクセスに関して、プロ
トコルスタック毎の局在性が存在する。変形例ではこの
点に注目したものである。したがって、パケット受信時
に全アドレスレジスタテーブルを書きかえるよりも、別
プロトコルスタックのアクセス時に書き換え計算を行っ
た方が、パケット処理全体での高速化を図ることができ
る。
【0167】次に第5の実施の形態について説明する。
図31は第5の実施の形態を示す図である。第5の実施
の形態では、アドレスレジスタテーブルの構成要素(フ
ィールド位置情報)を命令列中に即値として記述して、
演算部40がこれを処理するものである。
【0168】すなわち、マイクロコードが格納されるメ
モリから命令列をリードした後、命令中のエントリ番号
をもとに、アドレスレジスタテーブルからアドレスレジ
スタテーブルの構成要素をリードして、命令を実行する
のではなく、マイクロコード格納メモリから命令列をリ
ードした後に、即時に命令を実行するものである。これ
により、より高速に命令を実行することが可能になる。
【0169】以上説明したように本発明によれば、装置
開発者は、対象フィールドを演算処理する命令列中に対
して、ソースレジスタまたはデスティネーションレジス
タとして、対象フィールドと一意に対応する、アドレス
レジスタのレジスタネームとアドレスレジスタテーブル
のエントリ番号を組で指定するだけで、パケットのプロ
トコルスタックの違いに関係なく、同一処理を同一プロ
グラムで実行することが可能になる。
【0170】また、パケット前処理部により、パケット
のプロトコルスタックの先頭をレジスタアライメントと
一致するように整形することで、演算部内の論理段数を
少なくすることができるので、パケット処理を高速に行
うことが可能になる。
【0171】さらに、アドレスレジスタのプロトコルス
タック位置情報を、数値としてではなくレジスタビット
マップの形で受信することによって、データレジスタの
選択動作から加減算処理を排することができ、より高速
にデータレジスタ選択動作を実行することが可能にな
る。
【0172】また、書き換え計算部により、パケット受
信時または別プロトコルスタックのアクセス時に、アド
レスレジスタテーブル値を書きかえることによって、以
降の受信パケットに対する処理を高速に行うことが可能
になる。
【0173】さらに、アドレスレジスタテーブルの構成
要素を命令列中に即値として記述して、演算部がこれを
処理することにより、高速に命令を実行し、パケット処
理の高速化を図ることが可能になる。
【0174】なお、上記の説明では、パケット処理を中
心に説明したが、パケット処理以外にも、手順を記述し
たプログラムにより処理を実行するさまざまなプロセッ
サに対して、本発明の機能を適用することが可能であ
る。
【0175】(付記1) パケットに対して、プログラ
ムによる処理を実行するプロセッサ装置において、固定
レジスタ長を持つ複数のデータレジスタに、前記パケッ
トを格納するパケット格納部と、前記パケットの先頭か
らプロトコルスタックの開始位置を示すプロトコルスタ
ック位置情報を取得し保持するアドレスレジスタと、前
記プロトコルスタック内のフィールドの位置及び対象フ
ィールドを処理するためのパラメータを示すフィールド
位置情報を管理するアドレスレジスタテーブルと、前記
プロトコルスタックの違いにより、フィールド位置が異
なる前記パケットに対して、前記プロトコルスタックの
違いに依存せずに同一のプログラムにより、前記プロト
コルスタック位置情報及び前記フィールド位置情報にも
とづいて、レジスタアライメントの整形処理をして、前
記対象フィールドのパケット処理を行う演算部と、を有
することを特徴とするプロセッサ装置。
【0176】(付記2) 前記アドレスレジスタは、前
記プロトコルスタック位置情報として、前記プロトコル
スタックの開始位置が存在するデータレジスタを示すレ
ジスタオフセットと、前記データレジスタ内で、前記開
始位置のビット位置を示すビットオフセットと、から構
成され、前記アドレスレジスタテーブルは、前記フィー
ルド位置情報として、前記プロトコルスタック内のフィ
ールドを示すエントリ番号と、前記プロトコルスタック
の先頭がデータレジスタのアライメントと一致した場合
の対象フィールドのMSBが存在するデータレジスタを
示すフィールドレジスタオフセットと、前記対象フィー
ルドのMSBがあるデータレジスタ内での開始位置のビ
ット位置を示すフィールドMSB位置と、指定回転量を
示す回転量と、前記対象フィールドの存在箇所を示すビ
ットマスクと、から構成されることを特徴とする付記1
記載のプロセッサ装置。
【0177】(付記3) 前記演算部は、ソースレジス
タ内の対象フィールドを抽出してデスティネーションレ
ジスタへ格納する場合、前記プロトコルスタック位置情
報及び前記フィールド位置情報にもとづいて、前記対象
フィールドが存在するソースレジスタを選択するソース
レジスタ選択器と、前記プロトコルスタック位置情報及
び前記フィールド位置情報にもとづいて、選択されたソ
ースレジスタから前記対象フィールドを抽出するフィー
ルド抽出器と、から構成されることを特徴とする付記2
記載のプロセッサ装置。
【0178】(付記4) 前記対象フィールドが2つの
データレジスタにまたがっている場合、前記ソースレジ
スタ選択器は、前記フィールドMSB位置と前記ビット
オフセットとの大小関係を求める減算部と、前記レジス
タオフセットと前記フィールドレジスタオフセットと前
記減算部からの出力値とを加算して1つ目のデータレジ
スタである第1のソースレジスタを求める加算部と、を
含む第1のソースレジスタ選択器と、前記第1のソース
レジスタ選択器の結果に1を加算して2つ目のデータレ
ジスタである第2のソースレジスタを求める第2のソー
スレジスタ選択器と、から構成されることを特徴とする
付記3記載のプロセッサ装置。
【0179】(付記5) 前記対象フィールドが2つの
データレジスタにまたがっている場合、前記フィールド
抽出器は、前記第1のソースレジスタから抽出した該当
ビットをデスティネーションレジスタの対応する該当ビ
ット位置に置き換える第1のフィールド抽出器と、前記
第2のソースレジスタから抽出した該当ビットをデステ
ィネーションレジスタの対応する該当ビット位置に追加
する第2のフィールド抽出器と、から構成されることを
特徴とする付記3記載のプロセッサ装置。
【0180】(付記6) 前記第1のフィールド抽出器
は、前記フィールドMSB位置と前記ビットオフセット
との大小関係を求める減算部と、前記ビットオフセット
の値を指定回転量として前記ビットマスクを右回転する
第1の右回転器と、前記第1の右回転器からの出力値を
上位ビットと下位ビットに分割するビット分割部と、前
記減算部の出力値にもとづき、前記上位ビットまたは前
記下位ビットを選択するセレクタと、前記対象フィール
ドが存在するデータレジスタのデータ値と、選択された
前記上位または下位ビットの論理積をとる論理積器と、
前記回転量により前記論理積器からの出力値を右回転す
る第2の右回転器と、前記ビットオフセットの値を指定
回転量として、前記第2の右回転器からの出力値を左回
転する左回転器と、から構成されることを特徴とする付
記5記載のプロセッサ装置。
【0181】(付記7) 前記第2のフィールド抽出器
は、前記フィールドMSB位置と前記ビットオフセット
との大小関係を求める減算部と、前記ビットオフセット
の値を指定回転量として前記ビットマスクを右回転する
第1の右回転器と、前記第1の右回転器からの出力値を
上位ビットと下位ビットに分割するビット分割部と、前
記減算部の出力値にもとづき、前記上位ビットまたは前
期下位ビットを選択するセレクタと、前記対象フィール
ドが存在するデータレジスタのデータ値と、選択された
前記上位または下位ビットの論理積をとる論理積器と、
前記回転量により前記論理積器からの出力値を右回転す
る第2の右回転器と、前記ビットオフセットの値を指定
回転量として、前記第2の右回転器からの出力値を左回
転する左回転器と、前記左回転器からの出力値と前記第
1のフィールド抽出器の処理結果との論理和をとる論理
和器と、から構成されることを特徴とする付記5記載の
プロセッサ装置。
【0182】(付記8) 前記演算部は、デスティネー
ションレジスタに格納されている対象フィールドをソー
スレジスタのデータで更新する場合、前記プロトコルス
タック位置情報及び前記フィールド位置情報にもとづい
て、前記対象フィールドが存在するデスティネーション
レジスタを選択するデスティネーションレジスタ選択器
と、前記プロトコルスタック位置情報及び前記フィール
ド位置情報にもとづいて、選択されたデスティネーショ
ンレジスタ内の前記対象フィールドを更新するフィール
ド書き込み器と、から構成されることを特徴とする付記
2記載のプロセッサ装置。
【0183】(付記9) 前記対象フィールドが2つの
データレジスタにまたがっている場合、前記デスティネ
ーションレジスタ選択器は、前記フィールドMSB位置
と前記ビットオフセットとの大小関係を求める減算部
と、前記レジスタオフセットと前記フィールドレジスタ
オフセットと前記減算部からの出力値とを加算して1つ
目のデータレジスタである第1のデスティネーションレ
ジスタを求める加算部と、を含む第1のデスティネーシ
ョンレジスタ選択器と、前記第1のデスティネーション
レジスタ選択器の結果に1を加算して2つ目のデータレ
ジスタである第2のデスティネーションレジスタを求め
る第2のデスティネーションレジスタ選択器と、から構
成されることを特徴とする付記8記載のプロセッサ装
置。
【0184】(付記10) 前記対象フィールドが2つ
のデータレジスタにまたがっている場合、前記フィール
ド書き込み器は、ソースレジスタの該当ビットのデータ
を元にして、前記第1のデスティネーションレジスタの
対応する該当ビットのデータを更新する第1のフィール
ド書き込み器と、ソースレジスタの前記該当ビット以外
のビットのデータを元にして、前記第2のデスティネー
ションレジスタの対応する該当ビットのデータを更新す
る第2のフィールド書き込み器と、から構成されること
を特徴とする付記8記載のプロセッサ装置。
【0185】(付記11) 前記第1のフィールド書き
込み器は、前記フィールドMSB位置と前記ビットオフ
セットとの大小関係を求める減算部と、前記ビットオフ
セットの値を指定回転量として前記ビットマスクを右回
転する第1の右回転器と、前記第1の右回転器からの出
力値を上位ビットと下位ビットに分割するビット分割部
と、前記減算部の出力値にもとづき、前期上位ビットま
たは前記下位ビットを選択するセレクタと、前記セレク
タからの出力値の論理否定をとる論理否定器と、前記第
1のデスティネーションレジスタ内のデータ値と前記論
理否定器からの出力値との論理積をとる第1の論理積器
と、前記ビットオフセットの値を指定回転量として、ソ
ースレジスタ内のデータ値を右回転する第2の右回転器
と、前記回転量により前記第2の右回転器からの出力値
を左回転する左回転器と、前記左回転器からの出力値と
前記セレクタからの出力値との論理積をとる第2の論理
積器と、前記第1の論理積器と前記第2の論理積器から
の出力値との論理和をとる論理和器と、から構成される
ことを特徴とする付記10記載のプロセッサ装置。
【0186】(付記12) 前記第2のフィールド書き
込み器は、前記フィールドMSB位置と前記ビットオフ
セットとの大小関係を求める減算部と、前記ビットオフ
セットの値を指定回転量として前記ビットマスクを右回
転する第1の右回転器と、前記第1の右回転器からの出
力値を上位ビットと下位ビットに分割するビット分割部
と、前記減算部の出力値にもとづき、前記上位ビットま
たは前期下位ビットを選択するセレクタと、前記セレク
タからの出力値の論理否定をとる論理否定器と、第2の
デスティネーションレジスタ内のデータ値と前記論理否
定器からの出力値との論理積をとる第1の論理積器と、
前記ビットオフセットの値を指定回転量として、ソース
レジスタ内のデータ値を右回転する第2の右回転器と、
前記回転量により前記第2の右回転器からの出力値を左
回転する左回転器と、前記左回転器の出力値と前記セレ
クタからの出力値との論理積をとる第2の論理積器と、
前記第1の論理積器と前記第2の論理積器からの出力値
との論理和をとる論理和器と、から構成されることを特
徴とする付記10記載のプロセッサ装置。
【0187】(付記13) 受信したパケットのプロト
コルスタックの先頭が、データレジスタのアライメント
と一致するように、パディングを付加して前記パケット
を加工するパケット前処理部をさらに有することを特徴
とする付記1記載のプロセッサ装置。
【0188】(付記14) 前記アドレスレジスタは、
前記プロトコルスタックの開始位置が存在するデータレ
ジスタを示すレジスタオフセットを含み、前記アドレス
レジスタテーブルは、前記フィールド位置情報として、
前記プロトコルスタック内のフィールドを示すエントリ
番号と、対象フィールドのMSBが存在するデータレジ
スタを示すフィールドレジスタオフセットと、指定回転
量を示す回転量と、前記対象フィールドの存在箇所を示
すビットマスクと、から構成されることを特徴とする付
記13記載のプロセッサ装置。
【0189】(付記15) 前記演算部は、ソースレジ
スタ内の対象フィールドを抽出してデスティネーション
レジスタへ格納する場合、前記プロトコルスタック位置
情報及び前記フィールド位置情報にもとづいて、前記対
象フィールドが存在するソースレジスタを選択するソー
スレジスタ選択器と、前記プロトコルスタック位置情報
及び前記フィールド位置情報にもとづいて、選択された
ソースレジスタから前記対象フィールドを抽出するフィ
ールド抽出器と、から構成されることを特徴とする付記
14記載のプロセッサ装置。
【0190】(付記16) 前記対象フィールドが2つ
のデータレジスタにまたがっている場合、前記ソースレ
ジスタ選択器は、前記レジスタオフセットと前記フィー
ルドレジスタオフセットとを加算して1つ目のデータレ
ジスタである第1のソースレジスタを求める加算部を含
む第1のソースレジスタ選択器と、前記第1のソースレ
ジスタ選択器の結果に1を加算して2つ目のデータレジ
スタである第2のソースレジスタを求める第2のソース
レジスタ選択器と、から構成されることを特徴とする付
記15記載のプロセッサ装置。
【0191】(付記17) 前記対象フィールドが2つ
のデータレジスタにまたがっている場合、前記フィール
ド抽出器は、前記第1のソースレジスタから抽出した該
当ビットをデスティネーションレジスタの対応する該当
ビット位置に置き換える第1のフィールド抽出器と、前
記第2のソースレジスタから抽出した該当ビットをデス
ティネーションレジスタの対応する該当ビット位置に追
加する第2のフィールド抽出器と、から構成されること
を特徴とする付記15記載のプロセッサ装置。
【0192】(付記18) 前記第1のフィールド抽出
器は、前記ビットマスクの上位ビットを出力する上位ビ
ット出力部と、前記対象フィールドが存在するデータレ
ジスタのデータ値と前記上位ビットとの論理積をとる論
理積器と、前記回転量により前記論理積器からの出力値
を右回転する右回転器と、から構成されることを特徴と
する付記17記載のプロセッサ装置。
【0193】(付記19) 前記第2のフィールド抽出
器は、前記ビットマスクの下位ビットを出力する下位ビ
ット出力部と、前記対象フィールドが存在するデータレ
ジスタのデータ値と前記下位ビットの論理積をとる論理
積器と、前記回転量により前記論理積器からの出力値を
右回転する右回転器と、前記右回転器からの出力値と前
記第1のフィールド抽出器の処理結果との論理和をとる
論理和器と、から構成されることを特徴とする付記17
記載のプロセッサ装置。
【0194】(付記20) 前記演算部は、デスティネ
ーションレジスタに格納されている対象フィールドをソ
ースレジスタのデータで更新する場合、前記プロトコル
スタック位置情報及び前記フィールド位置情報にもとづ
いて、前記対象フィールドが存在するデスティネーショ
ンレジスタを選択するデスティネーションレジスタ選択
器と、前記プロトコルスタック位置情報及び前記フィー
ルド位置情報にもとづいて、選択されたデスティネーシ
ョンレジスタ内の前記対象フィールドを更新するフィー
ルド書き込み器と、から構成されることを特徴とする付
記14記載のプロセッサ装置。
【0195】(付記21) 前記対象フィールドが2つ
のデータレジスタにまたがっている場合、前記デスティ
ネーションレジスタ選択器は、前記レジスタオフセット
と前記フィールドレジスタオフセットとを加算して1つ
目のデータレジスタである第1のデスティネーションレ
ジスタを求める加算部を含む第1のデスティネーション
レジスタ選択器と、前記第1のデスティネーションレジ
スタ選択器の結果に1を加算して2つ目のデータレジス
タである第2のデスティネーションレジスタを求める第
2のデスティネーションレジスタ選択器と、から構成さ
れることを特徴とする付記20記載のプロセッサ装置。
【0196】(付記22) 前記対象フィールドが2つ
のデータレジスタにまたがっている場合、前記フィール
ド書き込み器は、ソースレジスタの該当ビットのデータ
を元にして、前記第1のデスティネーションレジスタの
対応する該当ビットのデータを更新する第1のフィール
ド書き込み器と、ソースレジスタの前記該当ビット以外
のビットのデータを元にして、前記第2のデスティネー
ションレジスタの対応する該当ビットのデータを更新す
る第2のフィールド書き込み器と、から構成されること
を特徴とする付記3記載のプロセッサ装置。
【0197】(付記23) 前記第1のフィールド書き
込み器は、前記ビットマスクの上位ビットを出力する上
位ビット出力器と、前記上位ビットの論理否定をとる論
理否定器と、第1のデスティネーションレジスタ内のデ
ータ値と前記論理否定器からの出力値との論理積をとる
第1の論理積器と、前記回転量によりソースレジスタ内
のデータ値を左回転する左回転器と、前記左回転器から
の出力値と前記上位ビットとの論理積をとる第2の論理
積器と、前記第1の論理積器と前記第2の論理積器から
の出力値との論理和をとる論理和器と、から構成される
ことを特徴とする付記22記載のプロセッサ装置。
【0198】(付記24) 前記第2のフィールド書き
込み器は、前記ビットマスクの下位ビットを出力する下
位ビット出力器と、前記下位ビットの論理否定をとる論
理否定器と、第1のデスティネーションレジスタ内のデ
ータと前記論理否定器からの出力値との論理積をとる第
1の論理積器と、前記回転量により前記ソースレジスタ
内のデータ値を左回転する左回転器と、前記左回転器の
出力値と前記下位ビットの論理積をとる第2の論理積器
と、前記第1の論理積器と前記第2の論理積器からの出
力値との論理和をとる論理和器と、から構成されること
を特徴とする付記22記載のプロセッサ装置。
【0199】(付記25) 前記対象フィールドが存在
するデータレジスタを示すレジスタビットマップを作成
するレジスタビットマップ作成部をさらに有し、前記演
算部は、前記レジスタビットマップにもとづきデータレ
ジスタを選択することを特徴とする付記1記載のプロセ
ッサ装置。
【0200】(付記26) 前記パケットの受信毎に、
または別プロトコルスタックへアクセスを行う毎に、前
記アドレスレジスタテーブルの書き換え計算を行い、プ
ロトコルスタックの先頭が、データレジスタのアライメ
ントに一致していない場合のフィールド位置情報を含む
書き換え後のアドレスレジスタテーブルを作成する書き
換え計算部をさらに有することを特徴とする付記1記載
のプロセッサ装置。
【0201】(付記27) 前記演算部は、前記アドレ
スレジスタテーブルの前記フィールド位置情報が記述さ
れた命令列にもとづいて、前記対象フィールドのパケッ
ト処理を行うことを特徴とする付記1記載のプロセッサ
装置。
【0202】(付記28) パケットに対して、プログ
ラムによる処理を実行するパケット処理方法において、
固定レジスタ長を持つ複数のデータレジスタに、前記パ
ケットを格納し、前記パケットの先頭からプロトコルス
タックの開始位置を示すプロトコルスタック位置情報を
取得して保持し、前記プロトコルスタック内のフィール
ドの位置及び対象フィールドを処理するためのパラメー
タを示すフィールド位置情報を管理し、前記プロトコル
スタックの違いにより、フィールド位置が異なる前記パ
ケットに対して、前記プロトコルスタックの違いに依存
せずに同一のプログラムにより、前記プロトコルスタッ
ク位置情報及び前記フィールド位置情報にもとづいて、
レジスタアライメントの整形処理を含み、前記対象フィ
ールドのパケット処理を行うことを特徴とするパケット
処理方法。
【0203】(付記29) パケットの中継制御を行う
パケット中継装置において、固定レジスタ長を持つ複数
のデータレジスタに、前記パケットを格納するパケット
格納部と、前記パケットの先頭からプロトコルスタック
の開始位置を示すプロトコルスタック位置情報を取得し
保持するアドレスレジスタと、前記プロトコルスタック
内のフィールドの位置及び対象フィールドを処理するた
めのパラメータを示すフィールド位置情報を管理するア
ドレスレジスタテーブルと、前記プロトコルスタックの
違いにより、フィールド位置が異なる前記パケットに対
して、前記プロトコルスタックの違いに依存せずに同一
のプログラムにより、前記プロトコルスタック位置情報
及び前記フィールド位置情報にもとづいて、レジスタア
ライメントの整形処理を含み、前記対象フィールドのパ
ケット処理を行う演算部と、から構成されるプロセッサ
部と、前記プロセッサ部で演算された結果にもとづい
て、パケットの中継制御を行うパケット中継制御部と、
を有することを特徴とするパケット中継装置。
【0204】
【発明の効果】以上説明したように、本発明のプロセッ
サ装置は、パケットの先頭からプロトコルスタックの開
始位置を示すプロトコルスタック位置情報と、プロトコ
ルスタック内のフィールドの位置及び対象フィールドを
処理するためのパラメータを示すフィールド位置情報と
から、プロトコルスタックの違いに依存せずに同一プロ
グラムにより、レジスタアライメントの整形処理をしつ
つ、対象フィールドのパケット処理を行う構成とした。
これにより、異なるプロトコルスタック毎に個別のプロ
グラムを作成する必要がなくなり、同一プログラムで互
いのフィールドへアクセスが可能となるので、設計効率
が向上し、高品質なパケット処理を行うことが可能にな
る。
【図面の簡単な説明】
【図1】本発明のプロセッサ装置の原理図である。
【図2】パケット構成を示す図である。
【図3】パケット構成を示す図である。
【図4】プロセッサ装置によるパケット格納部へのアク
セスアーキテクチャを示す図である。
【図5】アドレスレジスタテーブル上のフィールド位置
情報の内容を説明するための図である。
【図6】演算部の構成を示す図である。
【図7】ソースレジスタ選択器の構成を示す図である。
【図8】ソースレジスタ選択器の構成を示す図である。
【図9】フィールド抽出器(置き換え)の構成を示す図
である。
【図10】右回転、左回転を示す図である。
【図11】フィールド抽出器(追加)の構成を示す図で
ある。
【図12】演算部の全体構成を示す図である。
【図13】フィールド書き込み器の構成を示す図であ
る。
【図14】フィールド書き込み器の構成を示す図であ
る。
【図15】フィールド書き込み器の構成を示す図であ
る。
【図16】フィールド書き込み器の構成を示す図であ
る。
【図17】第2の実施の形態によるパケット格納部への
アクセスアーキテクチャを示す図である。
【図18】第2の実施の形態によるパケット格納部への
入力例を示す図である。
【図19】第2の実施の形態によるパケット格納部への
入力例を示す図である。
【図20】ソースレジスタ選択器を示す図である。
【図21】ソースレジスタ選択器を示す図である。
【図22】フィールド抽出器(置き換え)の構成を示す
図である。
【図23】フィールド抽出器(追加)の構成を示す図で
ある。
【図24】フィールド書き込み器の構成を示す図であ
る。
【図25】レジスタビットマップの構成を示す図であ
る。
【図26】ソースレジスタ選択器とデスティネーション
レジスタ選択器の動作を示す図である。
【図27】ソースレジスタ選択器とデスティネーション
レジスタ選択器の動作を示す図である。
【図28】第4の実施の形態の構成を示す図である。
【図29】第4の実施の形態の概要を説明するための図
である。
【図30】第4の実施の形態の変形例の概要を説明する
ための図である。
【図31】第5の実施の形態を示す図である。
【符号の説明】
1 プロセッサ装置 10 パケット格納部 20 アドレスレジスタ 30 アドレスレジスタテーブル 40 演算部
───────────────────────────────────────────────────── フロントページの続き (72)発明者 阿比留 健一 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 Fターム(参考) 5B033 AA08 BD03 BD04 BE00 DD09 5K034 AA13 DD01 EE11 HH63 SS01

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 パケットに対して、プログラムによる処
    理を実行するプロセッサ装置において、 固定レジスタ長を持つ複数のデータレジスタに、前記パ
    ケットを格納するパケット格納部と、 前記パケットの先頭からプロトコルスタックの開始位置
    を示すプロトコルスタック位置情報を取得し保持するア
    ドレスレジスタと、 前記プロトコルスタック内のフィールドの位置及び対象
    フィールドを処理するためのパラメータを示すフィール
    ド位置情報を管理するアドレスレジスタテーブルと、 前記プロトコルスタックの違いにより、フィールド位置
    が異なる前記パケットに対して、前記プロトコルスタッ
    クの違いに依存せずに同一のプログラムにより、前記プ
    ロトコルスタック位置情報及び前記フィールド位置情報
    にもとづいて、レジスタアライメントの整形処理をし
    て、前記対象フィールドのパケット処理を行う演算部
    と、 を有することを特徴とするプロセッサ装置。
  2. 【請求項2】 前記アドレスレジスタは、前記プロトコ
    ルスタック位置情報として、前記プロトコルスタックの
    開始位置が存在するデータレジスタを示すレジスタオフ
    セットと、前記データレジスタ内で、前記開始位置のビ
    ット位置を示すビットオフセットと、から構成され、前
    記アドレスレジスタテーブルは、前記フィールド位置情
    報として、前記プロトコルスタック内のフィールドを示
    すエントリ番号と、前記プロトコルスタックの先頭がデ
    ータレジスタのアライメントと一致した場合の対象フィ
    ールドのMSBが存在するデータレジスタを示すフィー
    ルドレジスタオフセットと、前記対象フィールドのMS
    Bがあるデータレジスタ内での開始位置のビット位置を
    示すフィールドMSB位置と、指定回転量を示す回転量
    と、前記対象フィールドの存在箇所を示すビットマスク
    と、から構成されることを特徴とする請求項1記載のプ
    ロセッサ装置。
  3. 【請求項3】 受信したパケットのプロトコルスタック
    の先頭が、データレジスタのアライメントと一致するよ
    うに、パディングを付加して前記パケットを加工するパ
    ケット前処理部をさらに有することを特徴とする請求項
    1記載のプロセッサ装置。
  4. 【請求項4】 前記対象フィールドが存在するデータレ
    ジスタを示すレジスタビットマップを作成するレジスタ
    ビットマップ作成部をさらに有し、前記演算部は、前記
    レジスタビットマップにもとづきデータレジスタを選択
    することを特徴とする請求項1記載のプロセッサ装置。
  5. 【請求項5】 前記パケットの受信毎に、または別プロ
    トコルスタックへアクセスを行う毎に、前記アドレスレ
    ジスタテーブルの書き換え計算を行い、プロトコルスタ
    ックの先頭が、データレジスタのアライメントに一致し
    ていない場合のフィールド位置情報を含む書き換え後の
    アドレスレジスタテーブルを作成する書き換え計算部を
    さらに有することを特徴とする請求項1記載のプロセッ
    サ装置。
JP2002111514A 2002-04-15 2002-04-15 プロセッサ装置 Withdrawn JP2003308206A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002111514A JP2003308206A (ja) 2002-04-15 2002-04-15 プロセッサ装置
US10/374,343 US20030193949A1 (en) 2002-04-15 2003-02-26 Packet processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002111514A JP2003308206A (ja) 2002-04-15 2002-04-15 プロセッサ装置

Publications (2)

Publication Number Publication Date
JP2003308206A true JP2003308206A (ja) 2003-10-31
JP2003308206A5 JP2003308206A5 (ja) 2004-10-28

Family

ID=28786651

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002111514A Withdrawn JP2003308206A (ja) 2002-04-15 2002-04-15 プロセッサ装置

Country Status (2)

Country Link
US (1) US20030193949A1 (ja)
JP (1) JP2003308206A (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150145700A (ko) * 2014-06-19 2015-12-30 캐비엄, 인코포레이티드 패킷의 구조를 식별하기 위해 고유한 패킷 식별자를 사용하는 방법 및 이의 장치
JP2016005281A (ja) * 2014-06-19 2016-01-12 エックスプライアント, インコーポレイテッド パケットを汎用フォーマットに変更して、プログラマブルな変更を可能にする方法およびその装置
JP2017503237A (ja) * 2013-12-23 2017-01-26 インテル コーポレイション 入出力データアライメント
US10397113B2 (en) 2014-06-19 2019-08-27 Cavium, Llc Method of identifying internal destinations of network packets and an apparatus thereof
US10560399B2 (en) 2014-06-19 2020-02-11 Cavium, Llc Method of dynamically renumbering ports and an apparatus thereof
US10616380B2 (en) 2014-06-19 2020-04-07 Cavium, Llc Method of handling large protocol layers for configurable extraction of layer information and an apparatus thereof
US10785169B2 (en) 2013-12-30 2020-09-22 Marvell Asia Pte, Ltd. Protocol independent programmable switch (PIPS) for software defined data center networks
US11050859B2 (en) 2014-06-19 2021-06-29 Marvell Asia Pte, Ltd. Method of using bit vectors to allow expansion and collapse of header layers within packets for enabling flexible modifications and an apparatus thereof

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7447777B1 (en) 2002-02-11 2008-11-04 Extreme Networks Switching system
US7584262B1 (en) 2002-02-11 2009-09-01 Extreme Networks Method of and system for allocating resources to resource requests based on application of persistence policies
US7814204B1 (en) 2002-02-11 2010-10-12 Extreme Networks, Inc. Method of and system for analyzing the content of resource requests
US7082477B1 (en) * 2002-04-30 2006-07-25 Cisco Technology, Inc. Virtual application of features to electronic messages
FR2840482B1 (fr) * 2002-05-28 2004-10-15 Thales Sa Procede de reconstitution de messages achemines par un ou plusieurs reseaux de transmission par paquets
US7310337B2 (en) * 2002-12-31 2007-12-18 Intel Corporation Packet header alignment
KR100512980B1 (ko) * 2003-11-17 2005-09-07 삼성전자주식회사 메인프로세서의 패킷 헤더 처리 효율 향상을 위해 패킷헤더 필더를 추출해 정렬하는 패킷프로세서,버퍼메모리제어장치 및 그 방법
US7554978B1 (en) 2004-03-30 2009-06-30 Extreme Networks, Inc. System for accessing content-addressable memory in packet processor
US8161270B1 (en) 2004-03-30 2012-04-17 Extreme Networks, Inc. Packet data modification processor
US7463628B2 (en) * 2004-03-30 2008-12-09 Extreme Networks, Inc. Packet data modification processor command instruction set
US7304996B1 (en) * 2004-03-30 2007-12-04 Extreme Networks, Inc. System and method for assembling a data packet
US7649879B2 (en) * 2004-03-30 2010-01-19 Extreme Networks, Inc. Pipelined packet processor
US7613209B1 (en) 2004-03-30 2009-11-03 Extreme Networks, Inc. System and method for egress packet marking
US7453874B1 (en) 2004-03-30 2008-11-18 Extreme Networks, Inc. Method and system for incrementally updating a checksum in a network data packet
US7385984B2 (en) * 2004-03-30 2008-06-10 Extreme Networks, Inc. Packet processing system architecture and method
US7822032B1 (en) 2004-03-30 2010-10-26 Extreme Networks, Inc. Data structures for supporting packet data modification operations
US7292591B2 (en) * 2004-03-30 2007-11-06 Extreme Networks, Inc. Packet processing system architecture and method
US7889750B1 (en) 2004-04-28 2011-02-15 Extreme Networks, Inc. Method of extending default fixed number of processing cycles in pipelined packet processor architecture
CN1801679B (zh) * 2005-10-11 2010-08-04 华为技术有限公司 一种移动广播业务分发方法和系统
US7822033B1 (en) 2005-12-30 2010-10-26 Extreme Networks, Inc. MAC address detection device for virtual routers
US7894451B2 (en) * 2005-12-30 2011-02-22 Extreme Networks, Inc. Method of providing virtual router functionality
US7817633B1 (en) 2005-12-30 2010-10-19 Extreme Networks, Inc. Method of providing virtual router functionality through abstracted virtual identifiers
US7817629B2 (en) * 2006-05-12 2010-10-19 Agere Systems Inc. Methods and apparatus for performing network operations on packets of data in response to content of particular user-specified protocol header fields
US7672238B2 (en) * 2006-08-08 2010-03-02 Opnet Technologies, Inc. Mapping off-network traffic to an administered network
US8427952B1 (en) * 2009-03-24 2013-04-23 Packet Plus, Inc. Microcode engine for packet processing
US8605732B2 (en) 2011-02-15 2013-12-10 Extreme Networks, Inc. Method of providing virtual router functionality
CN103825824A (zh) * 2014-03-04 2014-05-28 华为技术有限公司 一种报文处理方法及装置
US9531849B2 (en) 2014-06-19 2016-12-27 Cavium, Inc. Method of splitting a packet into individual layers for modification and intelligently stitching layers back together after modification and an apparatus thereof
US9531848B2 (en) 2014-06-19 2016-12-27 Cavium, Inc. Method of using generic modification instructions to enable flexible modifications of packets and an apparatus thereof
US9473601B2 (en) 2014-06-19 2016-10-18 Cavium, Inc. Method of representing a generic format header using continuous bytes and an apparatus thereof
US9516145B2 (en) 2014-06-19 2016-12-06 Cavium, Inc. Method of extracting data from packets and an apparatus thereof
US10050833B2 (en) 2014-06-19 2018-08-14 Cavium, Inc. Method of reducing latency in a flexible parser and an apparatus thereof
US9438703B2 (en) 2014-06-19 2016-09-06 Cavium, Inc. Method of forming a hash input from packet contents and an apparatus thereof
US9929745B2 (en) * 2014-09-26 2018-03-27 Intel Corporation Apparatus and method for vector compression
CN104461676B (zh) * 2014-10-27 2017-09-08 杭州中天微系统有限公司 二进制转译堆栈操作加速处理方法及其处理器
US9606781B2 (en) 2014-11-14 2017-03-28 Cavium, Inc. Parser engine programming tool for programmable network devices
WO2018141358A1 (en) * 2017-01-31 2018-08-09 Huawei Technologies Co., Ltd. Processing device, communication device and methods thereof
US20220210064A1 (en) * 2020-12-28 2022-06-30 Nokia Solutions And Networks Oy Address registration

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5491802A (en) * 1992-05-29 1996-02-13 Hewlett-Packard Company Network adapter for inserting pad bytes into packet link headers based on destination service access point fields for efficient memory transfer
US6172990B1 (en) * 1997-06-19 2001-01-09 Xaqti Corporation Media access control micro-RISC stream processor and method for implementing the same
US6996105B1 (en) * 2000-12-19 2006-02-07 Adaptec, Inc. Method for processing data packet headers

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017503237A (ja) * 2013-12-23 2017-01-26 インテル コーポレイション 入出力データアライメント
US10785169B2 (en) 2013-12-30 2020-09-22 Marvell Asia Pte, Ltd. Protocol independent programmable switch (PIPS) for software defined data center networks
US12301456B2 (en) 2013-12-30 2025-05-13 Marvell Asia Pte, LTD Protocol independent programmable switch (PIPS) for software defined data center networks
US11824796B2 (en) 2013-12-30 2023-11-21 Marvell Asia Pte, Ltd. Protocol independent programmable switch (PIPS) for software defined data center networks
US10616380B2 (en) 2014-06-19 2020-04-07 Cavium, Llc Method of handling large protocol layers for configurable extraction of layer information and an apparatus thereof
US10560399B2 (en) 2014-06-19 2020-02-11 Cavium, Llc Method of dynamically renumbering ports and an apparatus thereof
KR20150145700A (ko) * 2014-06-19 2015-12-30 캐비엄, 인코포레이티드 패킷의 구조를 식별하기 위해 고유한 패킷 식별자를 사용하는 방법 및 이의 장치
US10397113B2 (en) 2014-06-19 2019-08-27 Cavium, Llc Method of identifying internal destinations of network packets and an apparatus thereof
US11050859B2 (en) 2014-06-19 2021-06-29 Marvell Asia Pte, Ltd. Method of using bit vectors to allow expansion and collapse of header layers within packets for enabling flexible modifications and an apparatus thereof
KR102337518B1 (ko) * 2014-06-19 2021-12-09 마벨 아시아 피티이 엘티디. 패킷의 구조를 식별하기 위해 고유한 패킷 식별자를 사용하는 방법 및 이의 장치
US11258886B2 (en) 2014-06-19 2022-02-22 Marvell Asia Pte, Ltd. Method of handling large protocol layers for configurable extraction of layer information and an apparatus thereof
US11799989B2 (en) 2014-06-19 2023-10-24 Marvell Asia Pte, Ltd. Method of using bit vectors to allow expansion and collapse of header layers within packets for enabling flexible modifications and an apparatus thereof
JP2016005281A (ja) * 2014-06-19 2016-01-12 エックスプライアント, インコーポレイテッド パケットを汎用フォーマットに変更して、プログラマブルな変更を可能にする方法およびその装置
JP2016005282A (ja) * 2014-06-19 2016-01-12 エックスプライアント, インコーポレイテッド パケットの固有の識別子を用いて、パケットの構造を特定する方法およびその装置
US12381963B2 (en) 2014-06-19 2025-08-05 Marvell Asia Pte, LTD Method of using bit vectors to allow expansion and collapse of header layers within packets for enabling flexible modifications and an apparatus thereof

Also Published As

Publication number Publication date
US20030193949A1 (en) 2003-10-16

Similar Documents

Publication Publication Date Title
JP2003308206A (ja) プロセッサ装置
JP2003308206A5 (ja)
CN110381054B (zh) 报文解析方法、装置、设备及计算机可读存储介质
CN105794172B (zh) 网络设备和用于在网络设备中处理报文的方法
US20240283735A1 (en) Method for generating segment list, method for forwarding packet, device, and system in srv6 network
US8069023B1 (en) Hardware support for instruction set emulation
US6611524B2 (en) Programmable data packet parser
JP2001251349A (ja) パケットプロセッサ
JP2001094596A (ja) パケット処理装置及びパケット処理方法
US20080184197A1 (en) Macro to instantiate a variable used with a first macro requiring use of a second macro suitable for said variable
JP2002538731A (ja) 高性能ネットワークインターフェースにおけるダイナミックな構文解析
JPH09511105A (ja) パケット系ネットワーク用探索エンジン
CN110096628B (zh) 一种基于字符串的快速匹配识别方法和装置
JPS63163930A (ja) アライメント補正方式
EP3349402B1 (en) Message processing method and device
CN117240947A (zh) 一种报文处理方法、装置及介质
CN114374641A (zh) 一种三层报文转发方法及装置
JP2002538721A (ja) 高性能ネットワークインターフェースにおけるネットワークトラフィックを分類するための方法および装置
JP2001147837A (ja) プログラムトレース装置及び記憶媒体
JP4342128B2 (ja) パケット処理プロセッサ及びパケット処理プロセッサシステム
TW200428288A (en) Direct instructions rendering emulation computer technique
CA2064957A1 (en) Method and apparatus for performing pattern search functions
US7539694B1 (en) Concurrently searching and manipulating binary trees
CN114143195A (zh) 一种数据包处理装置及方法
JP3589349B2 (ja) 経路検索システムとその検索方法、及び経路検索プログラムを記録した記録媒体

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