(57)【特許請求の範囲】
【請求項１】
複数の入力ライン及び出力ラインと、前記入力ライン毎に配置されたパケット処理部と、前記パケット処理部の出力の前記複数の出力ラインへの交換処理を行うパケットスイッチと、前記パケットスイッチの出力を前記複数の出力ラインへ出力するパケット出力処理部とを含み、パケット内に当該パケットの処理方法が記述されたプログラム内蔵パケットを当該記述に基づいて処理するプログラム内蔵方式のパケット処理装置であって、
前記パケットスイッチと接続される仮想パケット処理部を有し、
前記パケット処理部及び前記仮想パケット処理部は、前記プログラム内蔵パケット内のプログラムが実行可能であり、
前記パケット処理部にルーティングテーブルを設け、
前記パケット処理部は、前記プログラム内蔵パケット内のプログラムを実行した際に、前記プログラムが前記ルーティングテーブルを参照することによって、前記プログラム内蔵パケットを、前記仮想パケット処理部を経由させるか否かの決定を行い、前記パケット処理部間で情報共有を必要とするパケットを、前記仮想パケット処理部を経由させると決定し、前記プログラム内蔵パケットを前記仮想パケット処理部に送出して異なる入力ラインから入力されたパケット間の情報共有を行い、
前記仮想パケット処理部は、前記プログラム内蔵パケット内のプログラムを実行し、前記仮想パケット処理部に搭載するメモリへのアクセス命令が実行されると、前記メモリからの読み込みまたは前記メモリへの書き込みを実行することを特徴とするパケット処理装置。
【請求項２】
複数の入力ライン及び出力ラインと、前記入力ライン毎に配置されたパケット処理部と、前記パケット処理部の出力の前記複数の出力ラインへの交換処理を行うパケットスイッチと、前記パケットスイッチの出力を前記複数の出力ラインへ出力するパケット出力処理部とを含み、パケット内に当該パケットの処理方法が記述されたプログラム内蔵パケットを当該記述に基づいて処理するプログラム内蔵方式のパケット処理装置であって、
前記パケットスイッチと接続される仮想パケット処理部を有し、
前記パケット処理部及び前記仮想パケット処理部は、前記プログラム内蔵パケット内のプログラムが実行可能であり、
前記パケット処理部に複数のルーティングテーブルを設け、
前記パケット処理部は、前記プログラム内蔵パケット内のプログラムを実行した際に、前記プログラムが参照するルーティングテーブルの種類に基づいて、前記プログラム内蔵パケットを、前記仮想パケット処理部を経由させるか否かを決定し、
前記パケット処理部間で情報共有を必要とするパケットを、前記仮想パケット処理部を経由させると決定し、前記プログラム内蔵パケットを前記仮想パケット処理部に送出して異なる入力ラインから入力されたパケット間の情報共有を行い、
前記仮想パケット処理部は、前記プログラム内蔵パケット内のプログラムを実行し、前記仮想パケット処理部に搭載するメモリへのアクセス命令が実行されると、前記メモリからの読み込みまたは前記メモリへの書き込みを実行することを特徴とするパケット処理装置。
【請求項３】
複数の入力ライン及び出力ラインと、前記入力ライン毎に配置されたパケット処理部と、前記パケット処理部の出力の前記複数の出力ラインへの交換処理を行うパケットスイッチと、前記パケットスイッチの出力を前記複数の出力ラインへ出力するパケット出力処理部とを含み、パケット内に当該パケットの処理方法が記述されたプログラム内蔵パケットを当該記述に基づいて処理するプログラム内蔵方式のパケット処理装置であって、
前記パケットスイッチと接続される仮想パケット処理部を有し、
前記パケット処理部及び前記仮想パケット処理部は、前記プログラム内蔵パケット内のプログラムが実行可能であり、
前記パケット処理部に共有メモリ領域と非共有メモリ領域とを設け、
前記パケット処理部は、前記プログラム内蔵パケット内のプログラムを実行した際に、当該プログラム内に共有メモリ領域へのアクセス命令があった場合、前記プログラム内蔵パケットを前記仮想パケット処理部に送出して異なる入力ラインから入力されたパケット間の情報共有を行い、
前記仮想パケット処理部は、前記プログラム内蔵パケット内のプログラムを実行し、前記仮想パケット処理部に搭載するメモリへのアクセス命令が実行されると、前記メモリからの読み込みまたは前記メモリへの書き込みを実行することを特徴とするパケット処理装置。
【請求項４】
複数の入力ライン及び出力ラインと、前記入力ライン毎に配置されたパケット処理部と、前記パケット処理部の出力の前記複数の出力ラインへの交換処理を行うパケットスイッチと、前記パケットスイッチの出力を前記複数の出力ラインへ出力するパケット出力処理部とを含み、パケット内に当該パケットの処理方法が記述されたプログラム内蔵パケットを当該記述に基づいて処理するプログラム内蔵方式のパケット処理装置に用いるパケット処理方法であって、
前記パケット処理装置内に、前記パケットスイッチと接続される仮想パケット処理部を設け、
前記パケット処理部及び前記仮想パケット処理部において、前記プログラム内蔵パケット内のプログラムを実行可能とするとともに、
前記パケット処理部にルーティングテーブルを設け、
前記パケット処理部が、前記プログラム内蔵パケット内のプログラムを実行した際に、前記プログラムが前記ルーティングテーブルを参照することによって、前記プログラム内蔵パケットを、前記仮想パケット処理部を経由させるか否かの決定を行い、前記パケット処理部間で情報共有を必要とするパケットを、前記仮想パケット処理部を経由させると決定し、前記プログラム内蔵パケットを前記仮想パケット処理部に送出して異なる入力ラインから入力されたパケット間の情報共有を行い、
前記仮想パケット処理部が、前記プログラム内蔵パケット内のプログラムを実行し、前記仮想パケット処理部に搭載するメモリへのアクセス命令が実行されると、前記メモリからの読み込みまたは前記メモリへの書き込みを実行することを特徴とするパケット処理方法。
【請求項５】
複数の入力ライン及び出力ラインと、前記入力ライン毎に配置されたパケット処理部と、前記パケット処理部の出力の前記複数の出力ラインへの交換処理を行うパケットスイッチと、前記パケットスイッチの出力を前記複数の出力ラインへ出力するパケット出力処理部とを含み、パケット内に当該パケットの処理方法が記述されたプログラム内蔵パケットを当該記述に基づいて処理するプログラム内蔵方式のパケット処理装置に用いるパケット処理方法であって、
前記パケット処理装置内に、前記パケットスイッチと接続される仮想パケット処理部を設け、
前記パケット処理部及び前記仮想パケット処理部において、前記プログラム内蔵パケット内のプログラムを実行可能とするとともに、
前記パケット処理部に複数のルーティングテーブルを設け、
前記パケット処理部が、前記プログラム内蔵パケット内のプログラムを実行した際に、前記プログラムが参照するルーティングテーブルの種類に基づいて、前記プログラム内蔵パケットを、前記仮想パケット処理部を経由させるか否かを決定し、前記パケット処理部間で情報共有を必要とするパケットを、前記仮想パケット処理部を経由させると決定し、前記プログラム内蔵パケットを前記仮想パケット処理部に送出して異なる入力ラインから入力されたパケット間の情報共有を行い、
前記仮想パケット処理部が、前記プログラム内蔵パケット内のプログラムを実行し、前記仮想パケット処理部に搭載するメモリへのアクセス命令が実行されると、前記メモリからの読み込みまたは前記メモリへの書き込みを実行することを特徴とするパケット処理方法。
【請求項６】
複数の入力ライン及び出力ラインと、前記入力ライン毎に配置されたパケット処理部と、前記パケット処理部の出力の前記複数の出力ラインへの交換処理を行うパケットスイッチと、前記パケットスイッチの出力を前記複数の出力ラインへ出力するパケット出力処理部とを含み、パケット内に当該パケットの処理方法が記述されたプログラム内蔵パケットを当該記述に基づいて処理するプログラム内蔵方式のパケット処理装置に用いるパケット処理方法であって、
前記パケット処理装置内に、前記パケットスイッチと接続される仮想パケット処理部を設け、
前記パケット処理部及び前記仮想パケット処理部において、前記プログラム内蔵パケット内のプログラムを実行可能とするとともに、
前記パケット処理部に共有メモリ領域と非共有メモリ領域とを設け、
前記パケット処理部が、前記プログラム内蔵パケット内のプログラムを実行した際に、当該プログラム内に共有メモリ領域へのアクセス命令があった場合、前記プログラム内蔵パケットを前記仮想パケット処理部に送出して異なる入力ラインから入力されたパケット間の情報共有を行い、
前記仮想パケット処理部が、前記プログラム内蔵パケット内のプログラムを実行し、前記仮想パケット処理部に搭載するメモリへのアクセス命令が実行されると、前記メモリからの読み込みまたは前記メモリへの書き込みを実行することを特徴とするパケット処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はパケット処理装置及びそれに用いるパケット処理方法に関し、特にパケット通信網においてパケット内に当該パケットの処理方法が規定されたパケットの処理を行うパケット処理装置の構成方法に関する。
【０００２】
【従来の技術】
従来のパケット通信方式の代表例であるＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）プロトコルではパケット処理装置はパケット処理に関して各パケットが属する上位アプリケーション毎の状態を保持する必要がないため、パケット間の情報共有を実現する必要がない。
【０００３】
Ｄ．Ｓｃｏｔｔ  Ａｌｅｘａｎｄｅｒ，Ｗｉｌｌｉａｍ  Ａ．Ａｒｂａｕｇｈ，Ｍｉｃｈａｅｌ  Ｗ．Ｈｉｃｋｓ，Ｐａｎｋａｊ  Ｋａｋｋａｒ，Ａｎｇｅｌｏｓ  Ｄ．Ｋｅｒｏｍｙｔｉｓ，Ｊｏｎａｔｈａｎ  Ｔ．Ｍｏｏｒｅ，ＣａｒｌＡ．Ｇｕｎｔｅｒ，Ｓｃｏｔｔ  Ｍ．Ｎｅｔｔｌｅｓ，ａｎｄ  Ｊｏｎａｔｈａｎ  Ｍ．Ｓｍｉｔｈ，“Ｔｈｅ  ＳｗｉｔｃｈＷａｒｅ  Ａｃｔｉｖｅ  Ｎｅｔｗｏｒｋ  Ａｒｃｈｉｔｅｃｔｕｒｅ”（ＩＥＥＥ  Ｎｅｔｗｏｒｋ  Ｓｐｅｃｉａｌ  Ｉｓｓｕｅ  ｏｎ  Ａｃｔｉｖｅ  ａｎｄ  Ｃｏｎｔｒｏｌｌａｂｌｅ  Ｎｅｔｗｏｒｋｓ，ｖｏｌ．１２  ｎｏ．３，ｐｐ．２９−３６）に記載の技術ではプログラム内蔵方式パケット処理装置内に１つのパケット処理部を持ち、全ての入力ラインからのパケットを１つのパケット処理部にて処理している。
【０００４】
パケット処理を高速化するためにはパケット処理装置に複数のパケット処理部を搭載し、処理を分散する必要がある。複数のパケット処理部を持つプログラム内蔵方式パケット処理装置において、パケット処理部は入力ラインまたは出力ライン毎に分散配置される。
【０００５】
パケットスイッチ後段にパケット処理部を持つパケット処理装置では、スイッチ前段にてパケットが属する上位アプリケーションが識別され、いずれのパケット処理部で処理されるかが決定される。同一の上位アプリケーションに属するパケットが同一のパケット処理部で処理されることによって、パケット間で情報が共有される。
【０００６】
多賀戸裕樹、長谷川洋平、日野浩志、“アクティブネットワーク向けストリームコードエンジンのＦＰＧＡを用いた実装”（信学総合大会，２０００）に記載の技術では、入力ライン毎にパケット処理部を設けることによって、同じ入力ラインから入力されたパケット間の情報共有を可能としている。このパケット処理装置の構成を図４に示す。
【０００７】
図４において、パケット処理装置３は入力ライン３０１，３０２と、パケット処理部３１，３２と、パケットスイッチ３３と、パケット出力処理部３４，３５と、出力ライン３０７，３０８と、内部接続線３０３〜３０６とから構成されている。
【０００８】
パケット処理部３１，３２各々の入力は入力ライン３０１，３０２に接続され、パケット処理部３１，３２各々の出力は内部接続線３０３，３０４を介してパケットスイッチ３３の入力へと接続される。
【０００９】
パケットスイッチ３３の入力はパケット処理部３１，３２と内部接続線３０３，３０４を介して接続され、パケットスイッチ３３の出力はパケット出力処理部３４，３５の入力にそれぞれ内部接続線３０５，３０６を介して接続される。
【００１０】
パケット出力処理部３４，３５各々の入力はパケットスイッチ３３の出力からそれぞれ内部接続線３０５，３０６を介して接続され、パケット出力処理部３４，３５各々の出力は出力ライン３０７，３０８へと接続される。
【００１１】
パケット処理部３１，３２ではそれぞれ入力ライン３０１，３０２から入力されたパケットに格納されたパケット内プログラムが実行される。パケット処理部３１，３２内にメモリ（図示せず）を搭載することによって、同一のパケット処理部を通過するパケット間の情報共有を実現している。パケット内プログラムの処理結果にしたがって出力されるパケットは内部接続線３０３，３０４を介してパケットスイッチ３３へと出力される。
【００１２】
パケットスイッチ３３にはパケットスイッチ素子（図示せず）が用意され、パケット処理部３１，３２からそれぞれ内部接続線３０３，３０４を介して入力されたパケットを当該パケット内プログラムのパケット処理部３１もしくはパケット処理部３２での処理結果にしたがって宛先向けの出力ライン３０７，３０８のいずれかへパケット交換処理を行い、内部接続線３０５，３０６を介してパケット出力処理部３４，３５へと送出する。
【００１３】
パケット出力処理部３４，３５はそれぞれパケットスイッチ３３から内部接続線３０５，３０６を介して入力されたパケットを出力ライン３０７，３０８へ送出する。以上の構成によって、パケット処理装置３では同一の入力ライン３０１，３０２から入力されたパケット間の情報共有を実現している。
【００１４】
Ｄｅｃａｓｐｅｒ，Ｄ．，Ｐａｒｕｌｋａｒ，Ｇ．，Ｃｈｏｉ，Ｓ．，ＤｅＨａｒｔ，Ｊ．，Ｗｏｌｆ，Ｔ．，Ｐｌａｔｔｎｅｒ，Ｂ．，“Ａ  Ｓｃａｌａｂｌｅ，  Ｈｉｇｈ  Ｐｅｒｆｏｒｍａｎｃｅ  Ａｃｔｉｖｅ  Ｎｅｔｗｏｒｋ  Ｎｏｄｅ”（ＩＥＥＥ  Ｎｅｔｗｏｒｋ，Ｊａｎｕａｒｙ／Ｆｅｂｒｕａｒｙ  １９９９）に記載された技術では入力ライン後段と出力ライン前段とにパケット処理部を設けることによって、同じ入力ラインから入力されたパケット、同じ出力ラインから出力されるパケット間で情報を共有している。
【００１５】
多賀戸裕樹、長谷川洋平、江川尚志、日野浩志、“オープン網制御のためのアクティブネットワークハードウェアの試作”（信学技報，ＳＳＳＥ９９−９１，ＴＭ９９−３４，１９９９）に記載された技術では入力ライン毎にパケット処理部と、全てのパケット処理部から共有されるメモリとを設けることによって、異なる入力ラインから入力されたパケット間の情報共有を可能としている。
【００１６】
このように、パケットスイッチ前段にパケット処理部を持つパケット処理装置では、全てのパケット処理部から共有されるメモリを用いることによって、各パケット処理部で情報を共有している。
【００１７】
【発明が解決しようとする課題】
上述した従来のパケット通信方式では、多くの入力ラインを持つパケット処理装置において、高速なパケット処理を実現しつつ、パケット間の情報共有、特に異なる入力ラインから入力されたパケット間の情報共有を実現する場合、様々な問題が生じる。
【００１８】
まず、一つのみのパケット処理部をもつパケット処理装置では、パケット処理の高速化が難しいことである。全ての入力ラインから入力されたパケットが一つのパケット処理部にて処理されることによって、全ての入力ラインから入力されたパケット間の情報共有が実現されるが、パケット処理部の処理能力の向上が難しい。また、複数のパケット処理部を持つパケット処理装置では、異なるパケット処理部で処理されるパケット間の情報共有が難しいことである。
【００１９】
入力ライン毎のみにパケット処理部を配置したパケット処理装置において、それぞれのパケット処理部間で情報交換が不可能な場合には、異なる入力ラインから入力されたパケット間の情報共有が不可能である。例えば、サーバ・クライアント型の上位アプリケーションにて使用されるパケット間の情報共有を考えた場合、各経路が適切に設定されている限り、サーバからクライアントに向かうパケットとクライアントからサーバに向かうパケットとが一つのパケット処理装置の同じ入力ラインを通過することはない。
【００２０】
パケットスイッチ後段にパケット処理部を持つパケット処理装置では、パケットスイッチ前段でいずれのパケット処理部に入力されるかが決定されるが、マルチキャストアプリケーション等で複数のパケット処理部を利用する場合にはパケット間の情報を共有することができない。
【００２１】
パケット内に格納されるプログラムは各パケット毎に独立な処理であり、前後パケット間での処理の類似性がないため、メモリのキャッシュ構成等による高速化効果が期待できない。このため、各パケット処理部に専用の高速メモリを実装した場合でもメモリアクセスがプログラム内蔵パケット処理のボトルネックとなる可能性が高い。
【００２２】
複数のパケット処理部から共有されるメモリを用意する方法では共有メモリに複数のパケット処理部からのアクセスが集中するため、共有メモリへのアクセス速度が低下し、パケット処理のボトルネックとなる。特に、数十から数百といった多数のパケット処理部からメモリが共有される場合においては、重大な性能の低下を招く原因となり得る。
【００２３】
そこで、本発明の目的は上記の問題点を解消し、高速なパケット交換処理を行うことができ、異なる入力ラインから入力されたパケット間の情報共有を共有メモリを用いずに実現することができるパケット処理装置及びそれに用いるパケット処理方法を提供することにある。
【００２４】
【課題を解決するための手段】
本発明によるパケット処理装置は、複数の入力ライン及び出力ラインと、前記入力ライン毎に配置されたパケット処理部と、前記パケット処理部の出力の前記複数の出力ラインへの交換処理を行うパケットスイッチと、前記パケットスイッチの出力を前記複数の出力ラインへ出力するパケット出力処理部とを含み、パケット内に当該パケットの処理方法が記述されたプログラム内蔵パケットを当該記述に基づいて処理するプログラム内蔵方式のパケット処理装置であって、
前記パケットスイッチと接続される仮想パケット処理部を備え、
前記パケット処理部及び前記仮想パケット処理部は、前記プログラム内蔵パケット内のプログラムが実行可能であり、
前記パケット処理部にルーティングテーブルを設け、
前記パケット処理部は、前記プログラム内蔵パケット内のプログラムを実行した際に、前記プログラムが前記ルーティングテーブルを参照することによって、前記プログラム内蔵パケットを、前記仮想パケット処理部を経由させるか否かの決定を行い、前記パケット処理部間で情報共有を必要とするパケットを、前記仮想パケット処理部を経由させると決定し、前記プログラム内蔵パケットを前記仮想パケット処理部に送出して異なる入力ラインから入力されたパケット間の情報共有を行い、
前記仮想パケット処理部は、前記プログラム内蔵パケット内のプログラムを実行し、前記仮想パケット処理部に搭載するメモリへのアクセス命令が実行されると、前記メモリからの読み込みまたは前記メモリへの書き込みを実行している。
【００２５】
本発明によるパケット処理方法は、複数の入力ライン及び出力ラインと、前記入力ライン毎に配置されたパケット処理部と、前記パケット処理部の出力の前記複数の出力ラインへの交換処理を行うパケットスイッチと、前記パケットスイッチの出力を前記複数の出力ラインへ出力するパケット出力処理部とを含み、パケット内に当該パケットの処理方法が記述されたプログラム内蔵パケットを当該記述に基づいて処理するプログラム内蔵方式のパケット処理装置に用いるパケット処理方法であって、
前記パケット処理装置内に、前記パケットスイッチと接続される仮想パケット処理部を設け、
前記パケット処理部及び前記仮想パケット処理部において、前記プログラム内蔵パケット内のプログラムを実行可能とするとともに、
前記パケット処理部にルーティングテーブルを設け、
前記パケット処理部が、前記プログラム内蔵パケット内のプログラムを実行した際に、前記プログラムが前記ルーティングテーブルを参照することによって、前記プログラム内蔵パケットを、前記仮想パケット処理部を経由させるか否かの決定を行い、前記パケット処理部間で情報共有を必要とするパケットを、前記仮想パケット処理部を経由させると決定し、前記プログラム内蔵パケットを前記仮想パケット処理部に送出して異なる入力ラインから入力されたパケット間の情報共有を行い、
前記仮想パケット処理部が、前記プログラム内蔵パケット内のプログラムを実行し、前記仮想パケット処理部に搭載するメモリへのアクセス命令が実行されると、前記メモリからの読み込みまたは前記メモリへの書き込みを実行している。
【００２６】
すなわち、本発明の第１のパケット処理装置は、各外部入力ライン毎に分散配置されたパケット処理部を持つパケット処理装置において、パケット処理装置内に仮想パケット処理部を持ち、外部から入力されたプログラム内蔵パケットがパケット処理装置のパケットスイッチに到達するのと同様に仮想パケット処理部へと到達可能とすることを特徴としている。
【００２７】
本発明の第２のパケット処理装置は、各外部入力ライン毎に分散配置されたパケット処理部を持つパケット処理装置において、各パケット処理部に複数のルーティングテーブルを用意し、パケット内プログラムがルーティングテーブルを選択して経路を決定することを可能とすることを特徴としている。
【００２８】
本発明の第３のパケット処理装置は、各外部入力ライン毎に分散配置されたパケット処理部を持つパケット処理装置において、各パケット処理部に複数のルーティングテーブルを用意し、パケット内プログラムがルーティングテーブルを選択して経路を決定することによって、仮想パケット処理部を通過するか否かを選択可能とすることを特徴としている。
【００２９】
本発明の第４のパケット処理装置は、上記のパケット処理装置において、各パケット処理部内のプロセッサが共有メモリアクセス管理装置を持ち、共有メモリ領域へのアクセスが発生した場合にパケットを仮想パケット処理部へと送出することを特徴としている。
【００３０】
本発明では入力ライン毎に分散配置されたパケット処理部によって高速なパケット処理を実現しつつ、仮想パケット処理部にて異なる入力ラインからパケット処理装置に入力されたパケット間の情報共有を可能としている。
【００３１】
情報共有を必要とするパケットのみが仮想パケット処理部を経由することによって、仮想パケット処理部で必要とされる処理能力を低く抑えることが可能となる。また、共有メモリを用いないことによって、パケット処理部の速度低下もない。
【００３２】
【発明の実施の形態】
次に、本発明の一実施例について図面を参照して説明する。図１は本発明の一実施例によるパケット処理装置の構成を示すブロック図である。図１において、パケット処理装置１は入力ライン１０１，１０２と、パケット処理部１１，１２と、パケットスイッチ１３と、仮想パケット処理部１４と、パケット出力処理部１５，１６と、出力ライン１０９，１１０と、内部接続線１０３〜１０８とから構成されている。
【００３３】
パケット処理部１１，１２各々の入力は入力ライン１０１，１０２に接続され、パケット処理部１１，１２各々の出力は内部接続線１０３，１０４を介してパケットスイッチ１３の入力へと接続される。パケットスイッチ１３の入力は内部接続線１０３，１０４，１０６を介してパケット処理部１１，１２及び仮想パケット処理部１４各々の出力に接続され、パケットスイッチ１３の出力は仮想パケット処理部１４及びパケット出力処理部１５，１６各々の入力にそれぞれ内部接続線１０５，１０７，１０８を介して接続される。
【００３４】
仮想パケット処理部１４の入力はパケットスイッチ１３の出力に内部接続線１０５を介して接続され、仮想パケット処理部１４の出力はパケットスイッチ１３の入力に内部接続線１０６を介して接続される。パケット出力処理部１５，１６各々の入力はパケットスイッチ１３の出力にそれぞれ内部接続線１０７，１０８を介して接続され、パケット出力処理部１５，１６各々の出力はそれぞれ出力ライン１０９，１１０へと接続される。
【００３５】
パケット処理部１１，１２ではそれぞれ入力ライン１０１，１０２から入力されたパケットに格納されたパケット内プログラムが実行される。パケット処理部１１，１２内にメモリ（図示せず）を搭載することによって、同一のパケット処理部を通過するパケット間の情報共有を実現している。パケット内プログラムの処理結果にしたがって出力されるパケットは内部接続線１０３，１０４を介してパケットスイッチ１３へと出力される。
【００３６】
パケット処理部１１，１２には一つのルーティングテーブル（図示せず）が用意されており、パケット内プログラムはそのルーティングテーブルを参照することによって、パケットが出力される出力ラインを決定する。
【００３７】
また、パケット処理部１１，１２には複数のルーティングテーブル（図示せず）を用意することも可能である。この場合、パケット内プログラムは複数のルーティングテーブルの中から一つを選択して参照することが可能であり、パケット内プログラムから参照されるルーティングテーブルの種類によって仮想パケット処理部１４を経由するか否かが決定される。
【００３８】
パケットスイッチ１３にはパケットスイッチ素子（図示せず）が用意されており、パケット処理部１１，１２からそれぞれ内部接続線１０３，１０４を介して入力されたパケットを当該パケット内プログラムのパケット処理部１１もしくはパケット処理部１２での処理結果にしたがって宛先向けの出力ライン１０９，１１０のいずれか、もしくは仮想パケット処理部１４へパケット交換処理を行って内部接続線１０５，１０７，１０８を介して送出する。
【００３９】
仮想パケット処理部１４ではパケットスイッチ１３から内部接続線１０５を介して入力されたパケットに格納されたパケット内プログラムが実行され、パケットパケット処理部１１，１２と同等の機能を実現する。異なる入力ラインからパケット処理装置１に入力されたパケットが仮想パケット処理部１４を通過することによってパケット間の情報共有が可能となる。
【００４０】
パケット出力処理部１５，１６はそれぞれパケットスイッチ１３から内部接続線１０７，１０８を介して入力されたパケットを出力ライン１０９，１１０へ送出する。
【００４１】
図２は図１のパケット処理部１１，１２及び仮想パケット処理部１４の構成例を示すブロック図である。図２において、パケット処理部２はパケット処理部１１，１２及び仮想パケット処理部１４の構成例を示している。パケット処理部２はパケット処理部入力ライン２０１と、パケット入力処理部２１と、プロセッサ２２と、メモリ２３と、パケット処理部出力ライン２０４と、内部接続線２０２，２０３とから構成されている。
【００４２】
パケット処理部入力ライン２０１はパケット処理部１１，１２及び仮想パケット処理部１４それぞれにおける入力ライン１０１，１０２及び内部接続線１０５に相当し、パケット入力処理部２１の入力に接続される。パケット入力処理部２１の入力はパケット処理部入力ライン２０１に接続され、パケット入力処理部２１の出力は内部接続線２０２を介してプロセッサ２２の入力へと接続される。
【００４３】
プロセッサ２２の入力はパケット入力処理部２１の出力から内部接続線２０２を介して接続され、プロセッサ２２の出力はパケット処理部出力ライン２０４へと接続され、プロセッサ２２はメモリアクセス入出力線である内部接続線２０３を介してメモリ２３に接続される。パケット処理部出力ライン２０４はパケット処理部１１，１２及び仮想パケット処理部１４それぞれにおける内部接続線１０３，１０４，１０６に相当し、プロセッサ２２の出力に接続される。
【００４４】
パケット入力処理部２１ではパケット処理部入力ライン２０１から入力されたパケットがプロセッサ２２へと出力される。プロセッサ２２ではパケット入力処理部２１から内部接続線２０２を介して入力されたパケット内に格納されているプログラムが実行される。
【００４５】
プログラム内でメモリアクセス命令が実行されると、プロセッサ２２はメモリ２３へアクセスする。プログラム内でパケット出力命令が実行されると、パケットがパケットスイッチ１３へと出力される。メモリ２３の一部には共有メモリとして設定された領域があり、この空間へプログラムがアクセスした場合には、仮想パケット処理部１４を経由するようにパケットをパケット処理部出力ライン２０４を介してパケットスイッチ１３へ出力する。
【００４６】
メモリ２３ではパケット内プログラムから参照される各種情報を格納する。プロセッサ２２にてメモリアクセス命令が実行された場合には内部接続線２０３を介してメモリ２３に対する読込み、書込みという形でアクセスされる。メモリ２３にはルーティングテーブル、上位アプリケーションに関する情報、パケット処理装置に関する情報、パケット処理部に関する情報等が格納される。
【００４７】
また、メモリ２３にはパケット内プログラムから書込み可能な領域が用意されている。尚、メモリ２３には複数のルーティングテーブルを格納することも可能であり、その一部には共有メモリとして設定された領域を用意することも可能である。
【００４８】
図３は図２のパケット処理部２でのパケット処理例を示すフローチャートである。これら図２及び図３を参照してパケット処理部２でのパケット処理について説明する。
【００４９】
パケット処理部２でのパケット処理はパケットが到着することによって開始され、パケット処理部入力ライン２０１からパケットがパケット入力処理部２１へと入力される（図３ステップＳ１）。パケット入力処理部２１は当該パケットを内部接続線２０２を介してプロセッサ２２へと出力する（図３ステップＳ２）。
【００５０】
プロセッサ２２は当該パケット内に格納されているプログラムを解釈して実行する（図３ステップＳ３）。プロセッサ２２はメモリアクセス命令がプログラム内にあった場合（図３ステップＳ４）、内部接続線２０３を介してメモリ２３にアクセスする（図３ステップＳ５）。
【００５１】
また、プロセッサ２２はパケット出力命令がプログラム内にあった場合（図３ステップＳ６）、パケット処理部出力ライン２０４へとパケットを出力する（図３ステップＳ７）。
【００５２】
さらに、プロセッサ２２はプログラム内にメモリ２３の共有メモリ領域へのアクセス命令があった場合（図３ステップＳ８）、当該パケットが仮想パケット処理部１４を経由するように設定し、当該パケットをパケット処理部出力ライン２０４へと出力する（図３ステップＳ９）。全てのパケット処理が終了すると、パケット処理部２は処理を終了する。
【００５３】
このように、高速なパケット処理を実現しつつ、異なる入力ラインからパケット処理装置１に入力されたパケット間での情報共有を可能とすることができる。各パケット処理部１１，１２がほぼ独立して動作するため、入力ライン数とパケット処理部の数とに依存せずに高速なパケット処理装置が実現可能となる。
【００５４】
また、パケット処理装置１の構成はパケットスイッチ１３を介して仮想パケット処理部１４が配置され、それぞれのパケット処理部１１，１２はほぼ独立に動作するため、仮想パケット処理部１４を追加することが容易である。また、それぞれのパケット処理部１１，１２は全く同様の構成にて実現されるので、安価にパケット処理装置１を実現することができる。
【００５５】
【発明の効果】
以上説明したように本発明によれば、複数の入力ライン及び出力ラインと、入力ライン毎に配置されたパケット処理部と、パケット処理部の出力の複数の出力ラインへの交換処理を行うパケットスイッチと、パケットスイッチの出力を複数の出力ラインへ出力するパケット出力処理部とを含み、パケット内に当該パケットの処理方法が記述されたパケットを当該記述に基づいて処理するプログラム内蔵方式のパケット処理装置において、外部から入力されたプログラム内蔵パケットを外部からの入力ラインの代わりにパケットスイッチの出力を入力とする仮想パケット処理部へ到達可能とすることによって、高速なパケット交換処理を行うことができ、異なる入力ラインから入力されたパケット間の情報共有を共有メモリを用いずに実現することができるという効果がある。
【図面の簡単な説明】
【図１】本発明の一実施例によるパケット処理装置の構成を示すブロック図である。
【図２】図１のパケット処理部及び仮想パケット処理部の構成例を示すブロック図である。
【図３】図２のパケット処理部でのパケット処理例を示すフローチャートである。
【図４】従来例によるパケット処理装置の構成を示すブロック図である。
【符号の説明】
１  パケット処理装置
２，１１，１２  パケット処理部
１３  パケットスイッチ
１４  仮想パケット処理部
１５，１６  パケット出力処理部
２１  パケット入力処理部
２２  プロセッサ
２３  メモリ
１０１，１０２  入力ライン
１０３〜１０８，
２０２，２０３  内部接続線
１０９，１１０  出力ライン
２０１  パケット処理部入力ライン
２０４  パケット処理部出力ライン
【図１】
0004029572.tif 000002
【図２】
0004029572.tif 000003
【図３】
0004029572.tif 000004
【図４】
0004029572.tif 000005