JP3742250B2 - パケットデータ処理装置及びそれを用いたパケット中継装置 - Google Patents
パケットデータ処理装置及びそれを用いたパケット中継装置 Download PDFInfo
- Publication number
- JP3742250B2 JP3742250B2 JP15851499A JP15851499A JP3742250B2 JP 3742250 B2 JP3742250 B2 JP 3742250B2 JP 15851499 A JP15851499 A JP 15851499A JP 15851499 A JP15851499 A JP 15851499A JP 3742250 B2 JP3742250 B2 JP 3742250B2
- Authority
- JP
- Japan
- Prior art keywords
- packet
- processor
- data
- processing
- register
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/12—Protocol engines
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Description
【発明の属する技術分野】
本発明は、パケットデータ処理装置及びそれを用いたパケット中継装置に関し、端末と中継装置が相互接続された通信網におけるパケット中継装置において、宛先テーブルの検索やヘッダ書き換え処理等のパケット処理を行うパケットデータ処理装置及びそれを用いたパケット中継装置に関する。
【0002】
【従来の技術】
端末間の通信のためのネットワークの利用の拡大に伴い、ネットワークの規模拡大のためにネットワーク間の中継、例えばLAN(Local Area Network)とLAN、LANと専用線を相互接続する必要が生じる。こうして構築されるネットワークで現在主流なのはIP(Internet Protoco1) によるネットワークである。IPはISO(International Organization for Standardization)のOSI(Open Systems Interconnection)モデルにおけるネットワーク層に相当するコネクションレス型のプロトコルである。あらかじめ端末間で通信路を確保するコネクション型のプロトコルと異なり、コネクションレス型のIP通信では、LAN問を相互接続するパケット中継装置が、通信データが格納されているパケットを中継処理することによって端末間の通信が実現する。IPネットワークおける中継処理は、宛先テーブルの検索やヘッダ書き換え処理といった、パケット処理が必要になる。
【0003】
IPネットワークにおけるパケット処理は、パケット・ヘッダのチェックサムの計算、宛先テーブルの検索、パケット・ヘッダの書き換え等のパケットを中継するのに必要な処理に加え、ネットワークにおける通信を制限するためのパケットフィルタリングの実装が求められる。これを専用のハードウェアで行うには煩雑であり、従来はプロセッサによってソフトウェア処理していた。
【0004】
図1は、プロセッサによってパケット処理を行う従来装置の構成図を示している。従来の構成では、図1で示すように、プロセッサ10とメモリ11をバス12によって接続し、このような構成においてプロセッサ10がメモリ11内に格納したパケットに関する処理を実行することによって、パケット中継装置においてパケット処理が実行される。
【0005】
図2に示すパケット中継装置14は、図1に示すプロセッサ10とメモリ11を組み込む構成を取り、パケットを中継する。パケット中継装置14はパケットを中継するのにあたって、受信インタフェース15でパケットを受信した後、その受信パケットを一時的にメモリ11ヘ格納し、プロセッサ10によって、チェックサムの計算、宛先テーブルの検索、パケット・ヘッダの書き換え等のパケット処理を受信パケットに対して行った後に、決定した宛先情報等のパケットに付随する情報と共にスイッチ・ファブリック16にパケットを送る。
【0006】
そして、パケット中継装置14は、スイッチ・ファブリック16から、決定した宛先に従って、適切な送信インタフェース17にパケットを送り、送信インタフェース17からLANにパケットを送出する。このようにして、パケット中継装置14はパケットを中継する。
上記のパケット中継装置におけるパケット中継処理のなかで、図1で示されるプロセッサは、まず、受信したパケットデータを一時的にメモリ11に格納し、格納したパケットデータを、プログラムを構成する命令に従って、必要なとき必要な部分を汎用レジスタ21にデータ転送する。次にプロセッサは、汎用レジスタ21に格納したパケットデータに関して、テーブルの検索、パケット・ヘッダ・チェックサムの計算、パケット・ヘッダの宛先アドレスの書き換え等を命令に従って順次行った後、必要に応じて汎用レジスタ21に格納したパケットデータをメモリ11に格納し、その後、プロセッサ10は、処理を施したパケットをメモリ11から送り出す。
【0007】
テーブルの検索、パケット・ヘッダ・チェックサムの計算、パケット・ヘッダの宛先アドレスの書き換えのようなパケット処理に用いるようなプロセッサは、一般にパケットデータを格納し、演算対象のデータや演算結果を保持するバッファとなる汎用レジスタ21( 例えば、r0からr7の8 個ある) 、汎用レジスタ21に併設されデータの出力または入力対象となるレジスタを選択するセレクタ、データ転送・比較・演算を命令に従って実行する演算器22、命令を解釈しプロセッサ内の各構成要素に制御信号を与える制御部23、現在実行している命令のプログラム内の位置を保持するプログラム・カウンタ24、演算の結果を評価するためのフラグレジスタ25、外部バスインタフェース26、外部バスバッファ27を有する。プロセッサは、外部から読み込んだ命令に従って、上記の構成要素を駆動することによって、パケット処理を実行する。
【0008】
一方、近年、ネットワークの高速化/大容量化に伴い、パケットの中継処理についても一層の高速化が求められている。そこで、プロセッサを用いたソフトウェア処理によるパケット処理では処理性能的に不十分なため、パケット処理を専用のハードウェア回路で高速に実行する方法が開発され実装されている。しかし、専用回路では、プロトコルの改訂やネットワークとして提供するサービス機能向上のための機能の変更を容易に行うことはできず、単なる専用回路化では、その都度新たなハードウェアを開発する必要があるという問題点がある。
【0009】
これに対して、プロセッサによるパケット処理は、上記のように命令、つまりソフトウェアによってプロセッサを駆動して実行するゆえ、装置完成後のプロトコルの改訂やネットワークとして提供するサービス機能向上のための機能の変更等に容易に対応できる高い柔軟性を持っている。
このように高い柔軟性を有する従来のプロセッサによるパケット処理は、プロセッサとメモリ、およびプロセッサとメモリをつなぐバスによって構成した回路によって処理され、プロセッサは、パケットデータを、プロセッサとメモリ間でデータ転送している。
【0010】
【発明が解決しようとする課題】
しかしながら、従来のプロセッサを用いたパケット処理では、パケットデータを一時的に格納するメモリに対する読み出し/書き込み処理のため、パケット処理の高速化が難しいという問題点があった。
すなわち、プロセッサを用いたパケット処理では、パケットデータをメモリヘ格納し、それをプロセッサが適時読み出してパケットの内容に応じた処理を実行し、パケットデータおよびその処理結果をメモリに書き込む。プロセッサは、メモリに対し読み出しアドレスを与えてから、メモリからデータを読み出す。同様にプロセッサは、メモリに対し書き込みアドレスを与えてから、メモリにデータを書き込む。このとき、プロセッサがメモリにアドレスを与えてから、データを読み出し/書き込み可能になるまでに、プロセッサのサイクルタイムと比較して時間がかかる。
【0011】
また、逐次実行型のプロセッサは、同時に実行できる処理が単一であり読み出し動作と書き込み動作を同時に実行できないこと、およびメモリに関しても読み出しと書き込みの同時動作ができる回路は作りにくいことに起因して、通常メモリに対して、プロセッサは読み出しと書き込みを同時に行うことができない。以上のようなメモリヘの読み出し/書き込み処理のオーバヘッドがプロセッサとメモリ間のパケットデータのデータ転送において問題となり、パケット処理を高速に行うことができなかった。
【0012】
本発明は、上記の点に鑑みなされたものであり、プロセッサによるメモリヘの読み出し/書き込み処理のオーバヘッドを解消でき、高速なパケット処理が可能なパケットデータ処理装置及びそれを用いたパケット中継装置を提供することを目的とする。
【0013】
【課題を解決するための手段】
請求項1に記載の発明は、ネットワークから受信したパケットに対しプロセッサを用いて各種処理を行うパケットデータ処理装置において、
複数のレジスタから構成されており、前記受信したパケットを先頭からクロックに同期して前記複数のレジスタ間で順次シフトして外部に伝達し、前記複数のレジスタのいずれかを前記プロセッサから処理のためにアクセスされるパケットデータアクセス機構と、
複数のレジスタから構成されており、前記受信したパケットに対する処理結果である中間データを前記クロックに同期して前記複数のレジスタ間で順次シフトして外部に伝達する中間データ保持転送機構を有する。
【0014】
このように、受信したパケットを先頭からクロックに同期して複数のレジスタ間で順次シフトして外部に伝達するパケットデータアクセス機構を有するため、パケットデータをレジスタに取りこみシフトして送出することを命令手順とは独立して行い、それを見込んだプロセッサの命令手順を実行することによって、柔軟性を有しながら高速にパケット処理を実行することができ、受信したパケットに対する処理結果である中間データをクロックに同期して複数のレジスタ間で順次シフトして外部に伝達する中間データ保持転送機構を有するため、中間データをレジスタに取りこみシフトして送出することを命令手順とは独立して行い、それを見込んだプロセッサの命令手順を実行することによって、柔軟性を有しながら高速にパケット処理を実行することができる。
【0016】
請求項2に記載の発明は、請求項1記載のパケットデータ処理装置において、
前記パケットのデータを用いて検索され、前記パケットのデータに対応するデータが読み出される検索テーブルを有する。
このように、パケットのデータを用いて検索される検索テーブルを有するため、パケット処理に必要なインタフェース番号等の情報を得ることができる。
【0017】
請求項3に記載の発明は、請求項1記載のパケットデータ処理装置を用いたパケット中継装置であって
複数のパケットデータ処理装置を直列接続した。
このように、複数のパケットデータ処理装置を直列接続したことにより、複数のパケットデータ処理装置によるパイプライン処理を実行することが可能となり、パケット処理を高速に実行することができる。
【0018】
請求項4に記載の発明は、請求項3記載のパケット中継装置において、
直列接続した複数のパケットデータ処理装置からアクセスされ、前記複数のパケットデータ処理装置間でデータを共有する共有レジスタを有する。
このように、複数のパケットデータ処理装置間でデータを共有する共有レジスタを有するため、複数のパケットデータ処理装置と共有レジスタを使用して、パラレルに同時処理することができ、より高速にパケット処理を実行することができる。
【0019】
請求項5に記載の発明は、請求項1記載のパケットデータ処理装置において、
前記パケットデータアクセス機構または中間データ保持転送機構を構成する複数のレジスタに対する外部から伝達されたデータの書き込み位置を変更する書き込み位置変更機構を有する。
【0020】
このように、パケットデータアクセス機構または中間データ保持転送機構のレジスタに対する外部から伝達されたデータの書き込み位置を変更する書き込み位置変更機構を有するため、パケットの各部分がパケット処理プロセッサ内にとどまっている時間を調節し短くすることができる。
請求項6に記載の発明は、請求項1記載のパケットデータ処理装置において、
前記パケットデータアクセス機構または中間データ保持転送機構を構成する複数のレジスタから外部に伝達するデータの読み出し位置を変更する読み出し位置変更手段を有する。
【0021】
このように、パケットデータアクセス機構または中間データ保持転送機構のレジスタから外部に伝達するデータの読み出し位置を変更する読み出し位置変更手段を有するため、次段に向けて出力したデータも引き続きパケットデータアクセス機構または中間データ保持転送機構に残り、この残ったデータを参照することができる。
【0022】
【発明の実施の形態】
本発明では、パケットデータを直接取りこむパケットアクセスレジスタをプロセッサ内に設けることによって、高速にパケットデータにアクセスするパケットデータアクセス機構を構築し、プロセッサとメモリ間のパケットデータに関するメモリヘの読み出し/書き込み処理のオーバヘッドを解消する。これによって高い柔軟性を有するプロセッサを用いたパケット処理において、高速なパケット処理を実現する。
【0023】
図3は、本発明装置のパケット処理プロセッサの第1実施例のブロック図を示す。図4に図3のパケット処理プロセッサのデータ転送動作原理図を示す。
図3において、パケット処理プロセッサ30には、パケットデータを直接取りこみ、このデータに高速にアクセスするためのパケットデータアクセス機構としてパケットアクセスレジスタ( 例えば、8個のレジスタp0〜p7) 32を設けている。また、パケットデータに付随するパケットデータに対する処理結果として、外部ヘデータを伝達したり、このようなデータを受信インタフェース等の前段の処理部から受け取ったりする必要があるので、パケットデータに付随するパケットデータに対する処理結果データ、すなわち中間データを外部より受け取って保持し、そして、外部に伝達するための中間データ保持転送機構として、中間データレジスタ( 例えば、8個のレジスタe0〜e7) 34を設けている。
【0024】
パケット処理プロセッサ30は、パケットデータを受信インタフェースよりパケットアクセスレジスタ32に取りこみ、パケットアクセスレジスタ32からパケットデータを送出する。さらにパケット処理プロセッサ30は、受信インタフェースから処理結果を中間データレジスタ34に取りこみ、中間データレジスタ34から処理結果を送出する。パケット処理プロセッサ30が、受信インタフェースから取りこむ処理結果としては、例えば、パケットアクセスレジスタ32に取りこむパケットを受信した受信インタフェース番号であり、パケット処理プロセッサ30が送出する処理結果としては、例えば、ヘッダチェックサムの計算結果等である。
【0025】
パケットデータおよび処理結果をパケット処理プロセッサ外部から取りこみ、転送するデータ転送手順に関して、パケット処理プロセッサ30は、クロックに同期して順次、パケットアクセスレジスタ32および中間データレジスタ34にパケットの各部分および処理結果を格納し、クロックに同期して順次、パケットアクセスレジスタ32および中間データレジスタ34のレジスタ群内の隣のレジスタにシフトする。
【0026】
図4は、図3のパケット処理プロセッサ30において、パケットアクセスレジスタ32と中間データレジスタ34に関して、それぞれパケットデータと処理結果のデータがクロック単位時間毎に移動していく様子を示している。図4 (A),(B),(C),(D),(E)それぞれは、1,2,3,4,17クロック時間それぞれにおいて、パケット処理プロセッサ30がレジスタに格納しているデータの内容を示しており、例えば同図(B)は、同図(A)から時間的に1クロック進んだ状態である。
【0027】
同図(A)において、パケット処理プロセッサ30は、パケットAの各部分(a0 からa9) を、まだパケットアクセスレジスタ32に格納していない。時間的に1クロックが進んだ状態である同図(B)において、パケット処理プロセッサ30は、パケットAを一つシフトして、パケットアクセスレジスタ32のレジスタp7にパケットAのa0の部分を格納する。さらに同図(C)においては、パケット処理プロセッサ30は、パケットアクセスレジスタ32のp7に格納したa0をp6に移動し、パケットアクセスレジスタ32のp7にパケットAのa0の次の部分a1を格納する。
【0028】
同図(D)においては、パケット処理プロセッサ30は、同様にクロックに同期して、パケットAの各部分を隣のレジスタヘシフトする。さらに、同図(D)の状態より13クロック分進んだ同図(E)においては、パケット処理プロセッサ30は、パケットAの一部をパケットアクセスレジスタ32のp0より既に送出しており、パケットAの次のパケットであるパケットBの一部分をパケットアクセスレジスタヘ格納している。パケット処理プロセッサ30は、中間データレジスタ34に関しても同様に、格納したデータをクロックに同期してシフトして行き、例えば、同図(C)において、パケット処理プロセッサ30は中間データレジスタ34のe7に格納したデータを同図(D)において中間データレジスタ34のe6に移動する。
【0029】
ところで、プロセッサ内にすべての各パケットの先頭から終わりまで格納する容量を持つレジスタを構築することは回路規模が大きくなり難しい。それに対して、パケット処理におけるパケットデータのアクセスに関しては、局所性が存在し、例えば、パケット処理プロセッサ30がパケットAのa0とa9を同時に参照する可能性は低い。したがって、上記のような動作をするパケットアクセス機構および中間データ保持転送機構の各レジスタ数は、パケット処理を行うにあたって必要最小限( 例えば8個) で済み、パケット処理プロセッサ30内に構築することが可能となる。
【0030】
また、パケットデータに関する処理結果を保持し外部に転送する中間データレジスタ34の内容をパケットアクセスレジスタ32と同期して、シフトしていくことによって、例えば図4(E)に示されるように、パケット処理プロセッサ30の後続の処理部は、パケットの先頭が到着してから1クロック後に、そのパケットに関する属性情報が到着すると判断をすることができ、パケット中継装置は、パケットデータとその処理結果を格納している場所の各対応関係を示す特別な機構を有する必要が無くなり、これを構築しなくて済む。
【0031】
上記のパケット処理プロセッサ30がパケットアクセスレジスタ32および中間データレジスタ34に格納したデータをクロックに同期して移動する回路構成について説明する。図3において、パケット処理プロセッサ30は、パケットアクセスレジスタ32の各レジスタを、隣接する一つ番号が小さいレジスタとセレクタを介して接続し、パケット処理プロセッサ30の外部のクロック信号発生器がパケット処理プロセッサ30に与えるクロック信号に同期して、隣接の一つ番号が小さいレジスタヘ内容を転送する。
【0032】
さらに、パケット処理プロセッサ30は、パケットアクセスレジスタ30のp7に外部より直接パケットデータを格納し、p0から直接パケットデータを送出する。このとき、パケットデータの先頭がパケット処理プロセッサ30ヘ到着した時点で、パケット中継装置の受信インタフェースがパケット処理プロセッサ30にパケット到着信号を与え、パケット処理プロセッサ30はこれを合図に、予め装置設計者が用意し、メモリ等に格納した命令手順従って、パケットに対してパケット処理を行う。
【0033】
上記のパケット到着信号によって、パケット処理プロセッサ30は、不定期にパケットがパケット中継装置に到着したタイミングを知ることができ、パケットが到着した時点を処理の手順の初めとして命令手順を実行する。パケットアクセスレジスタ32の各レジスタ間に介在しているセレクタは、演算器が処理結果をパケットヘッダに反映するための書き込み動作を行うときに、転送先となるレジスタに演算器35からの書き込みデータを選択し、それ以外のときは、隣接する一つ番号が大きいレジスタの内容を選択し、パケットアクセスレジスタ32がシフトレジスタを構成するようにする。
【0034】
中間データレジスタ34もパケットアクセスレジスタ32と同様の機構を有しており、パケット処理プロセッサ30は、直接パケットデータに付随する処理結果を前段の受信インタフェースより中間データレジスタ34のe7に取り込み、中間データレジスタ34のe0より、これを後段のスイッチファブリックに向けて送出する。
【0035】
パケット処理プロセッサ30は、パケットアクセスレジスタ32および中間データレジスタ34を、メモリとバスという構成ではなく、パケット処理プロセッサ30内で図3のように直接結線しており、パケット処理プロセッサ30のサイクルタイムで、パケットアクセスレジスタ32および中間データレジスタ34の内容を読み出し/書き込むことが可能である。この結果、パケット処理プロセッサ30は、パケットデータの読み出し/書き込みのためのオーバヘッドを解消でき、高速に読み出し/書き込み処理を行うことができる。
【0036】
さらに、パケット処理プロセッサ30は、パケットアクセスレジスタ32の各レジスタ間および中間データレジスタ34の各レジスタ間のデータ移動をパケット処理プロセッサ30に備わっている命令、例えばデータ転送命令で行うのではなく、命令手順とは関係なく独立にパケット処理プロセッサ30のクロックによって常時移動するので、パケット処理プロセッサ30は、上記のデータ移動と同時に演算処理等を実行することができる。このとき、パケット処理プロセッサ30は、命令手順とは関係なく各レジスタの内容を書きかえることになるが、上記のようにパケット到着時には受信インタフェースがパケット到着信号をパケット処理プロセッサ30に与え、かつ、パケットアクセスレジスタ32,中間データレジスタ34のデータ移動をクロックに同期して行い、さらに、命令手順の各命令がそれぞれ一定クロック数で終了するような命令のみを具備するパケット処理プロセッサ30とすることによって、命令手順の記述者は、各時点でパケットアクセスレジスタ32および中間データレジスタ34にパケットデータまたは処理結果のどの部分を格納しているか判断することができる。
【0037】
したがって、パケットデータおよびその処理結果が格納されている各レジスタの内容が命令手順とは関係なく書きかわっても、命令手順の記述者が、各時点で各レジスタに格納されている内容を判断して、これを見込んで命令手順を記述することによって、命令手順によるパケットデータおよびその処理結果に対するパケット処理を行うことができる。
【0038】
上記のように、パケットデータおよびその処理結果を直接読み取り/書き込みする機構を設け、さらにこの機構におけるデータ転送を命令手順とは独立に行うことによって、パケットデータの読み出し/書き込みのためのオーバヘッドを解消し、命令手順に従った高い柔軟性を有する高速なパケット処理を行うことができる。
【0039】
図5は、本発明装置のパケット処理プロセッサの第1実施例のブロック図を示す。図5においては、パケットアクセスレジスタ32,中間データレジスタ34について図3より簡略化している。図6は、このパケット処理プロセッサをパケット中継装置に組み込んだ実施例を示す。また、図7はパケット処理プロセッサ30が備える命令セットの実施例を示し、図8はパケット処理プロセッサ30がパケット処理を実行するときの命令手順を図7の命令セットを用いて記述した実施例であり、パケット処理プロセッサ30がパケット処理を実行するときのデータ転送の動作例である。
【0040】
パケット処理の具体例として、図5に示すような32ビット×16ワードのパケットデータを直接取りこむためのレジスタであるパケットアクセスレジスタ32とパケットデータに関する処理結果を保持し、伝達するためのレジスタである中間データレジスタ34を有する構成をとるパケット処理プロセッサ30が実行するパケット処理の一つのアプリケーションであるヘッダチェックサム計算処理を実行する手順を説明する。
【0041】
図5において、パケット処理プロセッサ30は、パケットデータを直接取りこむためのレジスタであるパケットアクセスレジスタ32とパケットデータに関する処理結果を保持し、伝達するためのレジスタである中間データレジスタ34を備え、パケット処理を実行する。パケット処理プロセッサ30は内部でデータを扱うときの基本的な単位である1ワードが32ビットのアーキテクチャを有しており、汎用レジスタ36のレジスタr0〜r7、中間データレジスタ34のレジスタe0〜e7、およびパケットアクセスレジスタのレジスタp0〜p7は、それぞれ32ビット長とする。
【0042】
パケット処理プロセッサ30は図7に示される命令セット( 命令の種類) を有しており、パケット処理プロセッサ30は各命令を図8に示す命令手順に従って実行する。図8において、各命令を記述するとき用いる命令フォーマットに関しては、「MOVE」等で表現する命令ニモニックの前に必ず「A」や「≠」等の条件コードを付加している。この条件コードと直前の命令の演算結果の評価が一致したならば、パケット処理プロセッサ30は、該当する命令を実行する。
【0043】
例えば、パケット処理プロセッサ30が実行した直前の命令の演算結果が0であり、パケット処理プロセッサ30が現在実行しようとしている命令の条件コードが「=」(=0)ならば、この条件コードが「=」の命令を実行し、演算結果が0以外ならばパケット処理プロセッサ30は、条件コードが「=」の命令を実行せずに、クロックのみを消費する。条件コードとしては、例えば、=(0 と等しい),≠(0と等しくない),<(O より小さい),>(0 より大きい),A(Always; 常に実行) があり、直前の演算結果に対し、条件コードを評価可能な数の各フラグをフラグ・レジスタ37に備えるようにする。
【0044】
また、フラグ・レジスタ37には演算の結果のキャリーを保持するキャリーフラグを設ける。演算命令のフォーマットは、3 つのオペランドを持つときは、「条件コード、命令ニモニック、ディスティネーション・オペランド、ソース・オペランド1、ソースオペランド2」となり、2 つのオペランドを持つときは、「条件コード、命令ニモニック、ディスティネーション・オペランド、ソース・オペランド1」となる。
【0045】
パケット処理プロセッサ30がメモリ等から読み出す命令手順は、例えば、パケット中継装置の設計者が記述し、パケット中継装置のメモリ等に格納する。そして、例えば、パケット中継装置の電源投入時にメモリ等が命令手順をパケット処理プロセッサ30に与え、パケット処理プロセッサ30はその命令手順の各命令を制御部38内の命令デコーダ39によってデコードし、その結果をパケット処理プロセッサ内の制御部38で保持する。したがって、パケット処理プロセッサ30が、パケット処理中に命令の読み込み等でクロックを消費することはなく、図7で示した各命令をパケット処理プロセッサ30は、一定クロック数(一定クロック周期)で実行する。
【0046】
図5において、パケット処理プロセッサ30は、図5中のパケットCのような、LANの伝送路の規格の一つであるEthernet上でIPによって通信を行っているとき、パケットに対して例えばIPヘッダチェックサム計算を実行する。この処理は、IPヘッダが伝送路上を誤りなく伝送されたかを検査する処理である。パケットがパケット処理プロセッサ30に到着するときは、図6に示すパケット処理プロセッサ30の前段にあるビットアライメント整合送出器40が、図5中のパケットCのIPヘッダを32ビットのアライメントに合うようにして、このパケットCをパケット処理プロセッサ30に送り出し、パケット処理プロセッサ30は、このパケットを受け取る。
【0047】
図6中、ビットアライメント整合送出器40は、受信インタフェース42からの16ビットの入力に対して、それをパケットCのIPヘッダがちょうどアライメントが取れるように32ビットにして、パケット処理プロセッサ30に送出する。以降、図5中のパケットCの各部分を図5中に示されるように先頭からc0〜c 16と称し、図8の右側のカラムに示す「パケットアクセスレジスタに格納されているパケットCの部分」を表現するためにも、この表記法を使用する。IPヘッダチェックサム計算は、IPヘッダを32ビットワードの並びと見なし、それぞれの和を1の補数法で計算し、その結果の上位16ビットと下位16ビットを16ビットワード単位で加算し、その結果の1の補数が0であれば、IPヘッダは誤り無しとする。
【0048】
ビットアライメント整合送出器40がパケット処理プロセッサ30にパケットの先頭を送出すると、ビットアライメント整合送出器40はパケット到着信号をパケット処理プロセッサに与え、パケット処理プロセッサ30は図8の命令手順の順序1より順に命令を実行する。パケット処理プロセッサ30は各命令をすべて一定クロック数で実行する。パケット到着後、パケット処理プロセッサ30は、初めEthernetヘッダを順にパケットアクセスレジスタp7に格納し、5 クロック目でIPヘッダの先頭c4をパケットアクセスレジスタp7に格納する。このデータ移動に関しては、パケット処理プロセッサ30は命令手順とは独立にパケット処理プロセッサのクロックにより常時命令手順とは無関係に実行する。
【0049】
パケット処理プロセッサ30がIPヘッダの先頭c4をp7に格納するまでの命令手順の順序1〜4 の問は、パケット処理プロセッサ30は何もせずに待ち、5 クロック目でパケットアクセスレジスタ32p7の内容c4を汎用レジスタ36のレジスタr0にデータ転送する。次のクロックでパケット処理プロセッサ30は、p7の内容とr0の内容を加算し、その結果をrOに格納する。このとき、パケット処理プロセッサ30は、直前のクロックでp7に入っていたIPヘッダの先頭c4をp6に移動しており、p7に次のc5を格納している。すなわち、命令手順の順序6 の命令は、IPヘッダの先頭c4およびその次のc5を加算し、r0に格納することと同等となる。
【0050】
次の命令手順の順序7 では、パケット処理プロセッサ30は、p7に格納したc6とr0の内容を加算し、さらに上記のように和を1の補数法で計算するために、順序6 の加算のキャリーを加算した結果をrOに格納する。同様に命令手順8,9 で、パケット処理プロセッサ30は、さらにIPヘッダのc7とc8をr0に加算し、命令手順の順序10では、即値0(図8中で「$0」と表現し、レジスタ名ではなく値そのものを記述する) と、r0と、順序9 の命令の加算のキャリーを加算し、結果をr0に格納する。以上の加算によって、IPヘッダを32ビットワードの並びと見なし、それぞれの和を1の補数法で計算した結果を汎用レジスタ36のレジスタr0に格納したことになる。
【0051】
さらに、命令手順の順序11でパケット処理プロセッサ30は、r0の内容をr1にデータ転送し、順序12でr0の内容を16ビット分下位にシフトすることによって、加算した結果の上位16ビットと下位16ビットをそれぞれr0とr1に格納する。命令手順の順序13でパケット処理プロセッサ30は、16ビットのワード単位でr0とr1を加算した結果をr0に格納し、命令手順の順序10でパケット処理プロセッサ30は、16ビットワード単位でr0の1の補数をとる。命令手順の順序11では、命令ニモニック「MOVE」の前の条件コードが「≠」なので、パケット処理プロセッサ30は、直前の順序10の命令の結果が0でなかったならば、中問データレジスタe0に即値1を格納する。
【0052】
次のクロックでは、パケット処理プロセッサ30は、e0の内容をパケット処理プロセッサ30の外に送出するので、これによって、パケットデータに付随する情報として、IPヘッダチェックサム計算の結果をパケット処理プロセッサ30外に伝達することができ、パケット処理プロセッサ30は、パケットの先頭の到着から9 クロック目の中間データレジスタ34の内容が1ならば、IPヘッダに誤りがあることを判別することができる。
【0053】
図6に示すパケット中継装置41は、受信インタフェース42でパケットを受信した後、その受信パケットをビットアラインメント整合送出器40で整合してパケット処理プロセッサ30に供給し、ここでチェックサムの計算、宛先テーブルの検索、パケット・ヘッダの書き換え等のパケット処理を受信パケットに対して行った後に、決定した宛先情報等のパケットに付随する情報と共にスイッチ・ファブリック44にパケットを送る。そして、パケット中継装置41は、スイッチ・ファブリック44から決定した宛先に従って、適切な送信インタフェース45にパケットを送り、送信インタフェース45からLANにパケットを送出してパケットを中継する。
【0054】
以上のような、クロックに同期したレジスタ間のデータ移動を見込んだ命令手順をパケット処理プロセッサ30が実行することによって、パケット処理プロセッサ30はパケット処理のアプリケーションの一つであるIPヘッダチェックサム計算を実行し、その結果をパケット処理プロセッサ外に伝達することができる。
【0055】
このように、パケット処理プロセッサ30がパケットデータおよびその処理結果をレジスタに直接取りこみシフトして送出することを命令手順とは独立して、それを見込んだ命令手順を実行することによって、命令手順を変えれば様々な処理を実行することができるという命令特有の柔軟性を有しながら、高速にパケット処理を実行することができる。
【0056】
上記実施例は、パケット処理のアプリケーションの一つであるIPヘッダチェックサムの実行例であるが、命令手順を変更し、上記と同様にパケットデータおよび処理結果に関する処理をパケット処理プロセッサ30が実行することによって、他のパケット処理も上記と同様にパケット処理プロセッサ30は実行することが可能である。
【0057】
上記実施例では、図6中でパケット処理プロセッサ30より前の処理段階にビットアライメント整合送出器40があったが、ビットアライメントの整合を取る処理をパケット処理プロセッサ30がパケット処理とともに命令によって実行しても、上記と同様にパケット処理を実行することが可能である。命令手順をパケット処理プロセッサ30に与え、それを保持する方法としては、上記実施例以外の例えば命令のデコード結果を外部から与える方法や、プロセッサ外部の専用のメモリに保持する方法等があり、いずれの方法にしても、1クロックに限らず一定クロック数で各命令が終了する限り、パケットデータのデータシフト機構と命令手順の同期が取れ、上記と同様にパケット処理プロセッサ30はパケット処理を高速に実行することができる。
【0058】
また、上記実施例では、パケット処理プロセッサ30の駆動クロックスピードとパケットアクセスレジスタ32と中間データレジスタ34のデータシフト機構の駆動クロックスピードが同一のクロックスピードとなっていたが、パケット処理プロセッサ30の駆動クロックスピードを外部の回路に対して2 倍として、データの取りこみ及びデータのシフトおよびデータの送出をプロセッサの駆動クロックの2 回に1回実行するようにしても、命令手順でそのことを見込むことによって、上記と同様にパケット処理を高速に実行することができる。駆動クロックに関しては、パケット処理プロセッサとデータシフト機構を同期するようにすれば、倍率に関係なく、上記実施例と同様にパケット処理プロセッサ30はパケット処理を高速に実行することができる。
【0059】
上記実施例では、パケット処理プロセッサがパケットアクセスレジスタにパケットデータの実体を格納し、パケットアクセスレジスタ内を移動するようにしているが、実際にパケットアクセスレジスタに格納するものは、パケットデータの実体に限定されず、パケットデータを指し示すポインタを格納しても良い。
また、上記実施例では、パケットアクセスレジスタ内のデータの移動に関して、クロックに同期して各レジスタ間をパケットデータが移動するような構成としているが、パケットデータが移動するのではなく、命令で指定するレジスタ名が例えば同じp0であっても、命令を実行するクロックサイクルに応じてセレクタが選択するレジスタを順次変更することによって、パケットアクセスレジスタ内のパケットデータの移動を実現しても良い。
【0060】
図9は、本発明装置のパケット処理プロセッサの第2実施例のブロック図を示す。図9のパケット処理プロセッサは、中間データレジスタ34を具備せず、パケットアクセスレジスタ32を具備する形態を有し、そのような形態であっても処理可能なパケット処理を実行する。中間データレジスタ34は、パケットデータに付随するパケットデータに対する処理結果やパケットデータに関する属性情報をパケット処理プロセッサ30の外部に伝達すること、およびパケット処理プロセッサ30外部から受信することを可能とする機構であるが、パケット処理プロセッサ30が実行するパケット処理の内容によっては、中問データレジスタがなく、パケットアクセスレジスタ32があることによって、パケット処理プロセッサ30はパケット処理を実行することができる。
【0061】
パケット処理の内容がパケットデータを読み込み、読み込んだパケットデータに対する処理を実行し、処理結果をパケットデータのみに反映させる処理であるならば、パケットアクセスレジスタ32のみによって、パケット処理を実行することが可能である。例えば、このような処理としては、パケット処理の一つのアプリケーションであるIPヘッダチェック再計算がある。IPヘッダチェック再計算は、IPヘッダチェックサム計算とは逆に、IPヘッダを読み込み、計算したチェックサム値をIPヘッダのチェックサムフィールドに書き込む処理であるので、パケットデータに付随するパケットデータに対する処理結果やパケットデータに関する属性情報をパケット処理プロセッサ30外に伝達したり、パケット処理プロセッサ30外部から受信する必要は無く、このIPヘッダチェックサム再計算を、パケット処理プロセッサ30はパケットアクセスレジスタ32があれば実行することができる。
【0062】
図10は、本発明装置のパケット処理プロセッサの第3実施例のブロック図を示す。図10に示すようにパケット処理プロセッサ30内に宛先テーブル等を格納する検索メモリ50を構築する。パケット処理プロセッサ30は、プロセッサ内の検索メモリ50を検索することにより、パケットヘッダ内の宛先アドレスに従って送出インタフェース、すなわち送出するLANを判断する等のパケット処理を実行する。
【0063】
パケット処理プロセッサ30は、検索メモリ50に、パケットヘッダのアドレスに対する出力先のような対応関係を示すテーブルを格納し、パケット処理において、このテーブルを検索することにより、パケット処理プロセッサ30は、パケット処理に必要なパケットを送出するインタフェース番号等の情報を得ることができる。例えば、検索メモリ50にEthernetヘッダの宛先アドレス( 図10に示すパケットCにおけるDA:Destination Addressn)に対する送出インタフェース番号を示すテーブル( フォワーディンク・テーブル) を格納し、宛先アドレスを検索キーとして、検索メモリ50を検索することによって、その宛先アドレスを保持するパケットを送出するインタフェース番号を得ることができる。
【0064】
図10において検索メモリ50は、1エントリが64ビットの構成を取り、その検索動作は、パケット処理プロセッサ30が検索キーの内容を検索キーレジスタ51,52( k0,k1)に命令に従ってセットすると、検索メモリ制御部54が命令手順とは独立に検索メモリ50の各エントリと、検索キーレジスタ51,52の内容とを比較し、検索キーレジスタ51,52の内容に該当するエントリの内容をヒットコンテンツ・レジスタ55,56( h1,h2)に出力する。また、検索メモリ制御部54は、該当するエントリが存在したか否かの情報を検索フラグレジスタ58( hf) に出力する。
【0065】
このとき、パケット処理プロセッサ30が、命令手順によってパケット処理を行うためには、検索メモリ50が格納しているエントリ数に関係なく( エントリ数が増えても) 、パケット処理プロセッサ30は必ず一定クロック数で検索結果を得ることが必要である。上記の検索が一定クロック数で終了せずに、パケット処理プロセッサ30が一定クロック数で検索結果を得ることができないと、データ移動と命令手順が同期せず、ある時点でパケット処理プロセッサ30が各レジスタに何のデータを格納したか、命令手順の記述者は、判断することができない。したがって、検索メモリ制御部54は、検索メモリ50の各エントリと検索キーレジスタ51,52の内容との比較を一エントリずつではなく、検索キーと全エントリをパラレルに同時比較するようにする。このような比較を実現するメモリデバイスとしては、例えば、内容アドレスメモリ(CAM :Content Addressable Memory)がある。
【0066】
このように、パケット処理プロセッサ30が例えばCAM を用いた検索メモリ50を検索キーレジスタ51,52を介してアクセスすることにより、パケットアクセスレジスタ32および中間データレジスタ34のデータ移動と同期して、パケット処理プロセッサ30は検索結果を得ることができるので、命令によってパケットアクセスレジスタ32および中間データレジスタ34に、その検索結果を反映させることができる。したがって、図10に示されるような検索メモリ50を備えたパケット処理プロセッサによって、テーブルの検索を行うパケット処理を実行することができる。
【0067】
上記実施例においては、検索メモリ50の1エントリが64ビット長で、検索キーレジスタ51,52が32ビット長で2 個、検索結果を得るレジスタ55,56が32ビット長で2 個、検索結果の状態を知るレジスタ58が1個の構成となっていたが、これらの検索メモリ50のエントリ長やレジスタ数等が変わっても、パケット処理プロセッサ30が一定クロック数で検索結果を得ることができ、パケットアクセスレジスタ32、中間データレジスタ34データ移動と同期することが可能な検索メモリ50機構である限り、上記と同様にパケット処理プロセッサ30がパケット処理を実行することが可能である。
【0068】
図11は、本発明装置のパケット処理プロセッサ30を用いたパケットデータ処理装置の第1実施例の構成図を示す。図11では3個のパケット処理プロセッサ30A,30B,30Cを直列に接続し、パケット処理プロセッサ30A,30Bの中間データレジスタ34およびパケットアクセスレジスタ32からのデータ送出先を、次のパケット処理プロセッサ30B,30Cのデータ入力としてパケット処理を実行する。これら3個のパケット処理プロセッサ30A,30B,30C間を単一の集積回路のチップ内配線によって直接接続し、前段のパケット処理プロセッサは1クロックで次段のパケット処理プロセッサにデータを転送することができるようにする。
【0069】
図12に上記構成のパケットデータ処理装置の各パケット処理プロセッサ30A,30B,30Cが実行する命令手順を、通し番号による時系列に沿って記述する。このパケット処理は、例えばパケット処理プロセッサ30AによるIPヘッダ長チェック、パケット処理プロセッサ30BによるIPヘッダチェックサム計算、パケット処理プロセッサ30CによるTTL(Time to Live)の減算である。
【0070】
IPヘッダ長チェックは、IPヘッダ内のIPヘッダ長フィールド( 図11中のパケットCの拡大図) に格納されている値が5よりも小さい不正な値になっていないか検査する処理である。IPヘッダチェックサム計算は、前述の処理と同じ処理である。TTLの減算は、IPヘッダ内のTTLフィールド内の値を減らす処理であり、パケットがパケット中継装置を通過する度に1つTTLフィールドの値が減らされ、減算した結果が0になったパケットについてはパケット中継装置で中継しない。これによりパケットが網構成の誤り等によって永遠に中継されつづけないようにしている。
【0071】
図11において、初めパケット処理プロセッサ30AがパケットCを先頭から読み込み、図12のパケット処理プロセッサ30Aの命令手順の順序1より順に、パケット処理の一つのアプリケーションであるIPヘッダ長チェックを実行してパケットCをパケット処理プロセッサ30Bに送出する。次に、パケット処理プロセッサ30BがパケットCを先頭から読み込み、図12のパケット処理プロセッサ30Bの命令手順の順序1より順に、パケット処理の一つのアプリケーションであるIPヘッダチェックサム計算を実行してパケット処理プロセッサ30CにパケットCを送出する。次に、パケット処理プロセッサ30CがパケットCを先頭から読み込み、図12のパケット処理プロセッサ30Cの命令手順の順序1より順に、パケット処理の一つのアプリケ一ションであるTTLの減算を実行する。
【0072】
図12中の通し番号17〜23においてパケット処理プロセッサ30Bの命令手順とパケット処理プロセッサ30Cの命令手順は重なっており、この2つのパケット処理プロセッサ30は、この時間において同時にパケットCに関する処理を実行する。IPヘッダ長チェックを実行する図12のパケット処理プロセッサ30Aの命令手順においては、パケットCのIPヘッダのIPヘッダ長フィールドがパケット処理プロセッサ30Aに到着するまでに、パケット処理プロセッサ30Aは、IPヘッダ長フィールドを抽出するためのビットパターンを命令手順の順序2〜4の命令によって、汎用レジスタ36のレジスタr1に作成し、命令手順の順序5,6 の命令によってIPヘッダ長フィールドをレジスタr0に抽出し、命令手順の順序7 の命令によって、最低ヘッダ長の即値5を減じ、命令手順の順序8 の命令によって、その結果が負かどうかに応じ中間データレジスタ34に対応する値を書き込む。これによって、パケット処理プロセッサ30Aはチェックした結果をパケット処理プロセッサ外部に伝達する。
【0073】
IPヘッダチェックサム計算処理を実行する図12のパケット処理プロセッサ30Bの命令手順は、図8に示す命令手順と同様であり、パケット処理プロセッサ30Bは、図5に示すパケット処理プロセッサと同様のパケット処理を実行する。
TTLの減算を実行する図12のパケット処理プロセッサ30Cの命令手順においては、パケットCのIPヘッダのTTLフィールドがパケット処理プロセッサ30Cに到着するまでに、パケット処理プロセッサ30Cは、TTL以外のフィールドを抽出するためのビットパターンを命令手順の順序4 〜6 の命令によって汎用レジスタ36のレジスタr3に作成し、命令手順の順序7,8 の命令によって、TTLフィールドをレジスタr1に抽出し、命令手順の順序9 の命令によって、即値1を減じ、命令手順の順序10の命令によって、その結果が0かどうかに応じて、中間データレジスタ34に対応する値を書き込む。
【0074】
さらに、命令手順の順序11〜13の命令によって、パケット処理プロセッサ30Cは、TTLフィールドとそれ以外のフィールドを合わせて、パケットアクセスレジスタ32ヘ格納し、パケットヘッダのTTLフィールドに関する更新を実行する。パケット処理プロセッサ30Cは中間データレジスタ34に対応する値を書き込んでいるので、例えば次処理段のスイッチ・ファブリック44がこの値を受取り、スイッチ・ファブリック44がこのパケットを中継しない等の処理を実行することが可能である。
【0075】
上記の命令手順では、一つのパケットCに関してのみの命令手順を述べたが、パケットはある間隔を置いて連続的に到着しており、例えばパケット処理プロセッサ30Aの時系列の通し番号20からは、次のパケットDの処理を実行するといった、複数プロセッサによるパイプライン処理を実行することが可能である。また、通し番号17〜23においてパケット処理プロセッサ30Bとパケット処理プロセッサ30Cが同時にパケットCに関する処理を実行しているが、これもある一つのパケットCに関して、2 つのパケット処理プロセッサ30がパイプライン処理していることになる。
【0076】
このように、図11に示されるような複数のパケット処理プロセッサを直列に接続する構成を取り、図12に示されるような命令手順で各パケット処理プロセッサ30A,30B,30Cがパケット処理を実行することによって、パケット処理をパイプライン化して処理することができ、より多くの処理量を持ったパケット処理を高速に実行することが可能となる効果がある。上記の実施の形態においては、各パケット処理プロセッサがIPヘッダ長チェック、IPヘッダチェックサム計算、TTLの減算という、パケット処理におけるある論理的な塊を実行するような形態としたが、ある一つのパケット処理プロセッサで実行する処理の総クロック数が許す限り、ある一つのパケット処理プロセッサ30Aが、IPヘッダ長チェックとIPヘッダチェックサム計算の途中まで、といったパケット処理におけるある論理的な塊にとらわれない処理を行うことも可能である。
【0077】
図13は、本発明装置のパケット処理プロセッサ30を用いたパケットデータ処理装置の第2実施例の構成図を示す。図13では3個のパケット処理プロセッサ30A,30B,30Cを直列に接続し、パケット処理プロセッサ30A,30Bの中間データレジスタ34およびパケットアクセスレジスタ32からのデータ送出先を、次のパケット処理プロセッサ30B,30Cのデータ入力としてパケット処理を実行する。さらに、これら3 個のプロセッサがデータを共有するための領域として、グローバルレジスタ(共有レジスタ)60を設ける構成とする。
【0078】
グローバルレジスタ60は、例えば、ビット長32ビットの8個のレジスタg0〜g7で構成され、各パケット処理プロセッサ30A,30B,30Cと共に単一の集積回路のチップ内配線によって直接接続する。したがって、各パケット処理プロセッサ30A,30B,30Cは、パケット処理プロセッサ内のレジスタと同様に命令によってグローバルレジスタ60を直接アクセスすることが可能である。
【0079】
グローバルレジスタ60は、汎用レジスタ36と同様にデータの出力または入力対象となる特定のレジスタg0〜g7を選択するセレクタ61,62を隣接して持ち、各パケット処理プロセッサ30A,30B,30Cがこのセレクタヘ選択信号を与える回路機構とする。セレクタ61は、各パケット処理プロセッサ30A,30B,30Cのパケットアクセスレジスタ32から読み出す特定のレジスタg0〜g7を選択する信号を受け取り、各選択信号に従ってレジスタg0〜g7を選択する。そして、各パケット処理プロセッサ30A,30B,30Cは、同時にそれぞれ特定のレジスタからデータを読み出す。
【0080】
一方、グローバルレジスタ60は、複数のプロセッサの共有領域であるので、同一時点で各プロセッサからの書き込みが同時に発生する可能性がある。しかし、各パケット処理プロセッサ30A,30B,30Cの処理はパケットに同期しており、各時点でどのプロセッサがどの命令を処理するかを把握可能であるため、これを回避するように事前に装置設計者が命令手順を作成すれば、競合を調停する機構は不要となる。
【0081】
従って、例えばセレクタ62が各パケット処理プロセッサ30A,30B,30Cから書き込み先のレジスタg0〜g7を選択するための各選択信号を受け取った際に、単純にパケット処理プロセッサ30A,30B,30C順に優先して選択し、それに従って、一つのレジスタg0〜g7を選択する。このグローバルレジスタ60を設けることによって、パケット処理プロセッサ30A,30B,30C間で、例えばパケット処理プロセッサ30Aからパケット処理プロセッサ30Bからパケット処理プロセッサ30Cというような一方向のデータ伝達以外に、あるプロセッサが書き込んだ後、即座に他のプロセッサが読み出す等のデータ伝達を行うことができる。
【0082】
これによって、例えば、通常一つのパケット処理プロセッサを用いて、そのパケット処理プロセッサ30の汎用レジスタ36を使用して実行するパケット処理を、2 つのパケット処理プロセッサとグローバルレジスタ60を使用して、パラレルに同時処理することによって、より高速にパケット処理を実行することができる。
【0083】
例えば、これを図12の命令手順を用いて示すと、パケット処理プロセッサ30Cの命令手順では、必要なパケット内のフィールドが到着するまでの待ち時間を利用して、後に使用するビットパターンを生成することによって( 順序4 〜6)、効率化をはかっているが、このような時間が存在しない場合は、パケット処理プロセッサ30Bの命令手順の最後の順序15以降でこのビットパターンを生成し、グローバルレジスタ60ヘ書き込み、これをパケット処理プロセッサ30Cが利用することによって、パケット処理プロセッサ30Cでは、自身でビットパターンを生成するより少ないクロック数で効率的に命令を処理を実行することができる。以上のように、グローバルレジスタ60を設けることによって、個々のパケット処理プロセッサ間の命令手順の最適化の余地が増える効果がある。
【0084】
また、グローバルレジスタ60は、上記のパケット処理時のパケットデータの処理対象データの局所性に当てはまらず例えばパケット処理プロセッサ30A内のパケットアクセスレジスタ32の範囲にパケットデータが納まらないときに、このパケットアクセスレジスタ32の範囲に納まらないパケットデータの部分をグローバルレジスタ60に格納することによって、次段のパケット処理プロセッサ30Bや30Cがこのデータを参照することができる。
【0085】
また、グローバルレジスタ60は、データ伝達手段としてではなく、個々のパケット処理プロセッサ30A,30B,30Cの汎用レジスタ36としても利用することができ、個々のパケット処理プロセッサの汎用レジスタの数を増やさなくても、プロセッサ間でグローバルレジスタ60の利用を多重化することによって、実質的に各パケット処理プロセッサが利用することができる汎用レジスタ36の数を増やすことができる。
【0086】
図14は、本発明装置のパケット処理プロセッサの第4実施例のブロック図を示す。このパケット処理プロセッサ30は、データをパケット処理プロセッサ外から書き込む位置を変更する書き込み位置変更機構を有する。図15は、図14のパケット処理プロセッサ30の書き込み位置変更機構の動作原理図を示す。書き込み位置変更機構は、図15に示すように、パケットアクセスレジスタ132および中間データレジスタ134に対して、パケット処理プロセッサ外からデータを書き込む位置を、設定によってパケットアクセスレジスタ132のレジスタp7〜p0のいずれか、中間データレジスタ134のレジスタe7〜e0のいずれかに変更することを可能とする機構である。
【0087】
例えば、図15においては、パケット処理プロセッサ30は、パケット処理プロセッサ外からパケットアクセスレジスタ132のp4と中間データレジスタ134のe4にデータを書き込み、クロックに同期してp3/e3,p2/e2,p1/e1pを経由させて、パケットアクセスレジスタ132のp0と中間データレジスタ134のe0からデータを送出する。
【0088】
書き込み位置の変更は、例えば、図14に示す制御部38がパケットアクセスレジスタ132のセレクタsp0 〜sp7 と、中間データレジスタ134のセレクタse0 〜se7 に与える選択信号を保持するレジスタを設け、外部の装置管理プロセッサ等により動作開始前に選択信号を書き込んでおく等の方法で実現する。
書き込み位置変更機構は、パケット処理プロセッサ30が、例えばパケットデータを各レジスタp7〜p0間に介在する各セレクタsp0 〜sp7 ヘ入力し、各セレクタsp0 〜sp7 は、上記の書き込み位置の設定情報をもとに、パケットデータを次段のレジスタヘ送出するか、前のレジスタの内容を次段のレジスタヘ送出するか決定する機構とする。
【0089】
中間データに対するデータの書き込み機構も同様の機構とする。以上のように動作するセレクタsp〜sp7 及びse0 〜se7 を設けることによって、書き込み位置を変更することが可能となる書き込み位置変更機構によって、パケット処理プロセッサ30が実行するパケット処理の内容に応じて、書き込み位置を変更し、パケットの各部分がパケット処理プロセッサ内にとどまっている時間を調節し短くすることができる。
【0090】
例えば、図12のパケット処理プロセッサ30Aを図14の構成とすれば、パケット処理プロセッサ30Aが実行するIPヘッダ長チェックにおいては、命令手順の順序5 でパケットアクセスレジスタ32のp7を参照しているだけなので、書き込み位置を変更しパケットデータが通過するプロセッサ内のパケットアクセスレジスタ32の数を1つにして、プロセッサ内にとどまっている時間を短くすることができる。しかし、これは処理内容に依存しており、図12のパケット処理プロセッサ30Cが実行するTTLの減算においては、命令手順の順序7 でパケットアクセスレジスタ32のp7を参照し、後に命令手順の順序13でパケットアクセスレジスタ32のp0に書き込みを行っているので、書き込み位置を変更して、あるパケットに対し同時にアクセスできる範囲を、これより狭く変更することはできない。したがって、書き込み位置は、装置設計者がパケット処理プロセッサ30が実行する処理内容に応じてあらかじめ設定することにする。
【0091】
図16は、本発明装置のパケット処理プロセッサの第5実施例のブロック図を示す。このパケット処理プロセッサ30は、データをパケット処理プロセッサ外に送り出す位置を変更する送り出し位置変更機構を有する。図17は、図16のパケット処理プロセッサ30の送り出し位置変更機構の動作原理図を示す。送り出し位置変更機構は、図17に示すように、パケットアクセスレジスタ232および中間データレジスタ234から、パケット処理プロセッサ外にデータを送り出す位置を、設定によってパケットアクセスレジスタ232のレジスタp7〜p0のいずれか、中間データレジスタ234のレジスタe7〜e0のいずれかに変更することを可能とする機構である。
【0092】
例えば、図17においては、パケット処理プロセッサ30は、パケットアクセスレジスタ232のp7と図17中の中間データレジスタ234のe7ヘデータを書き込み、クロックに同期してp6/e6,p5/e5 を経由させて、パケットアクセスレジスタ232のp4と中間データレジスタ234のe4からデータが送出する。さらに、送り出し位置変更機構においては、パケットアクセスレジスタ232が、すでに次段の処理部に入力したデータに関しても、e3/p3,e2/p2,e1/p1,e0/p0 の順に通過させ、これらのデータに関して、パケット処理プロセッサ30がレジスタe3/p3,e2/p2,e1/p1,e0/p0 にデータを書き込んでも、パケット処理プロセッサ30が、そのデータをパケット処理プロセッサ外に伝達することはないが、既に次段の処理部に入力したデータを読み込むことはできる。
【0093】
送り出し位置の変更は、例えば、図16に示す制御部38がパケットアクセスレジスタ232のセレクタsp10と、中間データレジスタ234のセレクタse10に与える選択信号を与えるレジスタを設け、外部の装置管理プロセッサにより動作開始前に書き込んでおく等の方法で実現する。
送り出し位置の変更機構は、パケットアクセスレジスタ232のp0〜p7のパケットデータをすべて一つのセレクタsp10に入力し、このセレクタsp10が上記の送り出し位置の設定情報をもとに、どのデータをプロセッサ外部に送出するか選択する機構とする。そして、セレクタsp10とは関係なく、レジスタp0〜p7間でデータを移動するので、パケット処理プロセッサ30が次段の処理部に供給したデータを、レジスタp0〜p7のいずれかから読み込み再使用することが可能となる。
【0094】
中間データからのデータの送り出し機構も同様の機構とする。以上のように動作するセレクタsp10及びse10を設けることによって、送り出し位置を変更することが可能となる送り出し位置変更機構を構築する。
上記の送り出し位置変更機構によって、パケット処理プロセッサ30が実行するパケット処理の内容に応じて送り出し位置を変更し、パケットの各部分がパケット処理プロセッサ内にとどまっている時間を調節し短くすることができることに加えて、次段の処理部に向けて出力したデータも引き続き送り出し位置以降のパケットアクセスレジスタ232に残るため、参照することができる。
【0095】
図14の書き込み位置変更機構を具備するパケット処理プロセッサ30においては、パケット処理プロセッサ30が、あるパケットデータを取りこんだ後、一定クロック数後にそれを参照する処理を行うため、パケットの各部分がパケット処理プロセッサ内にとどまっている時間を短くできなかった場合でも、図16の実施例では、次段の処理部に入力したデータも引き続き参照することができることによって、この時間を短くすることができる効果がある。
【0096】
以上説明したように、本発明によれば、パケットデータを直接取りこむレジスタ32,34をパケット処理プロセッサ30内に設けることによって、さらに、レジスタ32,34内でデータを順次シフトしていき、特定の範囲のデータを参照する構成とすることで必要となるレジスタ容量を抑え、上記のレジスタ32,34をパケット処理プロセッサ30内に実装可能とすることによって、パケットデータのデータ転送に関するメモリヘの読み出し/書き込み処理のオーバヘッドを解消することができる。
【0097】
また、上記メモリヘの読み出し/書き込み処理のオーバヘッドを解消することによって、高速なパケット処理を実現することができる効果がある。また、データを順次シフトしていく機構のデータ転送と、パケット処理プロセッサの命令実行との同期をとることによって、命令手順に従ってパケット処理を実行することができ、高い柔軟性を有するパケット処理を高速に実行することができる。
【0098】
また、パケットデータに対する処理結果を保持し転送するレジスタをパケット処理プロセッサ内に設け、このレジスタとパケットデータを直接取りこむレジスタとのデータ転送の同期をとることによって、パケットデータとその処理結果が格納されている場所の各対応関係を示す特別な機構を構築しなくても済む。
また、複数の本発明パケット処理プロセッサを直列に接続しパケット処理をパイプライン化して実行するときに、パケット処理プロセッサ間でデータ共有するグローバルレジスタ60を設けることによって、パケット処理プロセッサ間でパケット処理を最適化することができる。
【0099】
また、パケット処理プロセッサのパケットデータを取りこむレジスタにおける書き込み位置を変更することができる機構を設けることによって、パケット処理プロセッサ内にパケットデータがとどまっている時間を調節することができる。また、パケット処理プロセッサのパケットデータを取りこむレジスタにおけるパケットデータを送り出す位置を変更することができる機構を設けることによって、パケット処理プロセッサ内にパケットがとどまっている時間を調節することができることに加えて、次段の処理部に入力したパケットデータを引き続き参照することができる。これによって、書き込み位置を変更することができる機構を具備するパケット処理プロセッサにおいては、パケット処理プロセッサ内にパケットデータがとどまっている時間を短くすることができなかった場合でも、この時間を短くすることができる。
【0100】
【発明の効果】
上述の如く、請求項1に記載の発明は、複数のレジスタから構成されており、前記受信したパケットを先頭からクロックに同期して前記複数のレジスタ間で順次シフトして外部に伝達し、前記複数のレジスタのいずれかを前記プロセッサから処理のためにアクセスされるパケットデータアクセス機構と、複数のレジスタから構成されており、前記受信したパケットに対する処理結果である中間データを前記クロックに同期して前記複数のレジスタ間で順次シフトして外部に伝達する中間データ保持転送機構を有する。
【0101】
このように、受信したパケットを先頭からクロックに同期して複数のレジスタ間で順次シフトして外部に伝達するパケットデータアクセス機構を有するため、パケットデータをレジスタに取りこみシフトして送出することを命令手順とは独立して行い、それを見込んだプロセッサの命令手順を実行することによって、柔軟性を有しながら高速にパケット処理を実行することができ、受信したパケットに対する処理結果である中間データをクロックに同期して複数のレジスタ間で順次シフトして外部に伝達する中間データ保持転送機構を有するため、中間データをレジスタに取りこみシフトして送出することを命令手順とは独立して行い、それを見込んだプロセッサの命令手順を実行することによって、柔軟性を有しながら高速にパケット処理を実行することができる。
【0103】
請求項2に記載の発明は、パケットのデータを用いて検索され、前記パケットのデータに対応するデータが読み出される検索テーブルを有する。
このように、パケットのデータを用いて検索される検索テーブルを有するため、パケット処理に必要なインタフェース番号等の情報を得ることができる。
請求項3に記載の発明は、複数のパケットデータ処理装置を直列接続した。
【0104】
このように、複数のパケットデータ処理装置を直列接続したことにより、複数のパケットデータ処理装置によるパイプライン処理を実行することが可能となり、パケット処理を高速に実行することができる。
請求項4に記載の発明は、直列接続した複数のパケットデータ処理装置からアクセスされ、前記複数のパケットデータ処理装置間でデータを共有する共有レジスタを有する。
【0105】
このように、複数のパケットデータ処理装置間でデータを共有する共有レジスタを有するため、複数のパケットデータ処理装置と共有レジスタを使用して、パラレルに同時処理することができ、より高速にパケット処理を実行することができる。
請求項5に記載の発明は、パケットデータアクセス機構または中間データ保持転送機構を構成する複数のレジスタに対する外部から伝達されたデータの書き込み位置を変更する書き込み位置変更機構を有する。
【0106】
このように、パケットデータアクセス機構または中間データ保持転送機構のレジスタに対する外部から伝達されたデータの書き込み位置を変更する書き込み位置変更機構を有するため、パケットの各部分がパケット処理プロセッサ内にとどまっている時間を調節し短くすることができる。
請求項6に記載の発明は、パケットデータアクセス機構または中間データ保持転送機構を構成する複数のレジスタから外部に伝達するデータの読み出し位置を変更する読み出し位置変更手段を有する。
【0107】
このように、パケットデータアクセス機構または中間データ保持転送機構のレジスタから外部に伝達するデータの読み出し位置を変更する読み出し位置変更手段を有するため、次段に向けて出力したデータも引き続きパケットデータアクセス機構または中間データ保持転送機構に残り、この残ったデータを参照することができる。
【図面の簡単な説明】
【図1】プロセッサによってパケット処理を行う従来装置の構成図である。
【図2】従来のパケット中継装置の構成図である。
【図3】本発明装置のパケット処理プロセッサの第1実施例のブロック図である。
【図4】図3のパケット処理プロセッサのデータ転送動作原理図である。
【図5】本発明装置のパケット処理プロセッサの第1実施例のブロック図である。
【図6】図5のパケット処理プロセッサを組み込んだパケット中継装置のブロック図である。
【図7】パケット処理プロセッサ30が備える命令セットの実施例を示す図である。
【図8】パケット処理プロセッサ30がパケット処理を実行するときの命令手順を図7の命令セットを用いて記述した実施例を示す図である。
【図9】本発明装置のパケット処理プロセッサの第2実施例のブロック図である。
【図10】本発明装置のパケット処理プロセッサの第3実施例のブロック図である。
【図11】本発明装置のパケット処理プロセッサ30を用いたパケットデータ処理装置の第1実施例の構成図である。
【図12】パケットデータ処理装置の各パケット処理プロセッサ30A,30B,30Cが実行する命令手順を記述した実施例を示す図である。
【図13】本発明装置のパケット処理プロセッサ30を用いたパケットデータ処理装置の第2実施例の構成図である。
【図14】本発明装置のパケット処理プロセッサの第4実施例のブロック図である。
【図15】図14のパケット処理プロセッサ30の書き込み位置変更機構の動作原理図である。
【図16】本発明装置のパケット処理プロセッサの第5実施例のブロック図である。
【図17】図16のパケット処理プロセッサ30の送り出し位置変更機構の動作原理図である。
【符号の説明】
30 パケット処理プロセッサ
32 パケットアクセスレジスタ
34 中間データレジスタ
41 パケット中継装置
42 受信インタフェース
44 スイッチ・ファブリック
45 送信インタフェース
50 検索メモリ
51,52 検索キーレジスタ
54 検索メモリ制御部
55,56 ヒットコンテンツ・レジスタ
58 検索フラグレジスタ58
Claims (6)
- ネットワークから受信したパケットに対しプロセッサを用いて各種処理を行うパケットデータ処理装置において、
複数のレジスタから構成されており、前記受信したパケットを先頭からクロックに同期して前記複数のレジスタ間で順次シフトして外部に伝達し、前記複数のレジスタのいずれかを前記プロセッサから処理のためにアクセスされるパケットデータアクセス機構と、
複数のレジスタから構成されており、前記受信したパケットに対する処理結果である中間データを前記クロックに同期して前記複数のレジスタ間で順次シフトして外部に伝達する中間データ保持転送機構を
有することを特徴とするパケットデータ処理装置。 - 請求項1記載のパケットデータ処理装置において、
前記パケットのデータを用いて検索され、前記パケットのデータに対応するデータが読み出される検索テーブルを
有することを特徴とするパケットデータ処理装置。 - 請求項1記載のパケットデータ処理装置を用いたパケット中継装置であって
複数のパケットデータ処理装置を直列接続したことを特徴とするパケット中継装置。 - 請求項3記載のパケット中継装置において、
直列接続した複数のパケットデータ処理装置からアクセスされ、前記複数のパケットデータ処理装置間でデータを共有する共有レジスタを
有することを特徴とするパケット中継装置。 - 請求項1記載のパケットデータ処理装置において、
前記パケットデータアクセス機構または中間データ保持転送機構を構成する複数のレジスタに対する外部から伝達されたデータの書き込み位置を変更する書き込み位置変更機構を
有することを特徴とするパケットデータ処理装置。 - 請求項1記載のパケットデータ処理装置において、
前記パケットデータアクセス機構または中間データ保持転送機構を構成する複数のレジスタから外部に伝達するデータの読み出し位置を変更する読み出し位置変更手段を
有することを特徴とするパケットデータ処理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP15851499A JP3742250B2 (ja) | 1999-06-04 | 1999-06-04 | パケットデータ処理装置及びそれを用いたパケット中継装置 |
US09/587,529 US7188190B1 (en) | 1999-06-04 | 2000-06-01 | Packet data processing apparatus and packet relay apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP15851499A JP3742250B2 (ja) | 1999-06-04 | 1999-06-04 | パケットデータ処理装置及びそれを用いたパケット中継装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000349816A JP2000349816A (ja) | 2000-12-15 |
JP3742250B2 true JP3742250B2 (ja) | 2006-02-01 |
Family
ID=15673410
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP15851499A Expired - Fee Related JP3742250B2 (ja) | 1999-06-04 | 1999-06-04 | パケットデータ処理装置及びそれを用いたパケット中継装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7188190B1 (ja) |
JP (1) | JP3742250B2 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4342100B2 (ja) | 2000-12-08 | 2009-10-14 | 富士通株式会社 | パケット処理装置 |
US8782287B2 (en) * | 2001-12-21 | 2014-07-15 | Agere Systems Llc | Methods and apparatus for using multiple reassembly memories for performing multiple functions |
JP4567373B2 (ja) * | 2004-05-20 | 2010-10-20 | ルネサスエレクトロニクス株式会社 | データ転送装置及び通信データ処理システム |
JP2008199348A (ja) * | 2007-02-14 | 2008-08-28 | Fujitsu Ltd | 中継装置、中継プログラム及び通信システム |
JP4663761B2 (ja) * | 2008-06-20 | 2011-04-06 | アラクサラネットワークス株式会社 | パケット中継装置 |
KR101407943B1 (ko) * | 2010-06-23 | 2014-06-17 | 한국전자통신연구원 | 근원-장애 분석에 기반한 하의 상달식 다계층 망 복구 방법 및 장치 |
US8858263B2 (en) | 2011-08-08 | 2014-10-14 | Novano Corporation | Service over ethernet InterConnectable wall plate (SoEICWP) module |
CN103780481B (zh) | 2012-10-18 | 2017-10-27 | 中兴通讯股份有限公司 | 一种数据通信网络中报文修改与转发的方法及装置 |
GB201302402D0 (en) * | 2013-02-11 | 2013-03-27 | Telecom Ltd Q | Communication apparatus |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4145686A (en) * | 1977-06-27 | 1979-03-20 | Recognition Equipment Incorporated | Data compressor |
SE451219B (sv) * | 1986-03-05 | 1987-09-14 | Stiftelsen Inst Mikrovags | Dataanordning fremst avsedd for exekvering av program i form av soktred, s k or parallel execution |
JPH01214993A (ja) * | 1988-02-23 | 1989-08-29 | Nissan Motor Co Ltd | データ記憶装置 |
US5293500A (en) * | 1989-02-10 | 1994-03-08 | Mitsubishi Denki K.K. | Parallel processing method and apparatus |
JP3081614B2 (ja) * | 1989-03-08 | 2000-08-28 | 富士通株式会社 | 部分書込み制御装置 |
US5076133A (en) * | 1989-10-11 | 1991-12-31 | Yamaha Corporation | Musical tone signal generating apparatus |
US5537418A (en) * | 1993-03-11 | 1996-07-16 | Unisys Corporation | Data transmit resynchronization at a node |
JP3516963B2 (ja) | 1993-03-12 | 2004-04-05 | 株式会社東芝 | メモリアクセス制御装置 |
US5553095A (en) * | 1993-04-28 | 1996-09-03 | Allen-Bradley Company, Inc. | Method and apparatus for exchanging different classes of data during different time intervals |
US5452250A (en) * | 1994-06-14 | 1995-09-19 | International Business Machines, Inc. | Non-volatile register system utilizing thin-film floating-gate amorphous transistors |
US5608662A (en) * | 1995-01-12 | 1997-03-04 | Television Computer, Inc. | Packet filter engine |
US5732233A (en) * | 1995-01-23 | 1998-03-24 | International Business Machines Corporation | High speed pipeline method and apparatus |
JP3515263B2 (ja) * | 1995-05-18 | 2004-04-05 | 株式会社東芝 | ルータ装置、データ通信ネットワークシステム、ノード装置、データ転送方法及びネットワーク接続方法 |
JP3097525B2 (ja) * | 1995-11-10 | 2000-10-10 | 株式会社日立製作所 | 情報フィルタリング処理を行うデータ伝送方法 |
US6519225B1 (en) * | 1999-05-14 | 2003-02-11 | Nortel Networks Limited | Backpressure mechanism for a network device |
US6535489B1 (en) * | 1999-05-21 | 2003-03-18 | Advanced Micro Devices, Inc. | Method and apparatus in a network switch for handling link failure and link recovery in a trunked data path |
-
1999
- 1999-06-04 JP JP15851499A patent/JP3742250B2/ja not_active Expired - Fee Related
-
2000
- 2000-06-01 US US09/587,529 patent/US7188190B1/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000349816A (ja) | 2000-12-15 |
US7188190B1 (en) | 2007-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6654823B2 (en) | Packet-data processing apparatus | |
JP4203979B2 (ja) | パケット処理装置 | |
US6101599A (en) | System for context switching between processing elements in a pipeline of processing elements | |
US6681341B1 (en) | Processor isolation method for integrated multi-processor systems | |
US6195739B1 (en) | Method and apparatus for passing data among processor complex stages of a pipelined processing engine | |
US6192491B1 (en) | Data processor with CRC instruction set extension | |
US8181003B2 (en) | Instruction set design, control and communication in programmable microprocessor cores and the like | |
US7069372B1 (en) | Processor having systolic array pipeline for processing data packets | |
JP2001251349A (ja) | パケットプロセッサ | |
US6356999B1 (en) | Data processor with trie traversal instruction set extension | |
US9678866B1 (en) | Transactional memory that supports put and get ring commands | |
USRE43825E1 (en) | System and method for data forwarding in a programmable multiple network processor environment | |
US5129075A (en) | Data processor with on-chip logical addressing and off-chip physical addressing | |
KR102409024B1 (ko) | 네트워크 프로세서에서의 멀티-코어 상호접속 | |
JP3742250B2 (ja) | パケットデータ処理装置及びそれを用いたパケット中継装置 | |
US7484078B2 (en) | Pipelined asynchronous instruction processor having two write pipeline stages with control of write ordering from stages to maintain sequential program ordering | |
US6813703B2 (en) | Emulation system for data-driven processor | |
US20230099730A1 (en) | System and Method for Implementing Strong Load Ordering in a Processor Using a Circular Ordering Ring | |
JP3498673B2 (ja) | 記憶装置 | |
US7380101B2 (en) | Architecture for a processor complex of an arrayed pipelined processing engine | |
EP1137983B1 (en) | Digital signal processor with bit fifo | |
JP2001117858A (ja) | データ処理装置 | |
JP4342128B2 (ja) | パケット処理プロセッサ及びパケット処理プロセッサシステム | |
US20040190466A1 (en) | Systems and methods for providing single-packet and multi-packet transactions in an integrated circuit | |
US9342313B2 (en) | Transactional memory that supports a get from one of a set of rings command |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050804 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050816 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051007 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20051108 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051110 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081118 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091118 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101118 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101118 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111118 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111118 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121118 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121118 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131118 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |