(57)【要約】【課題】処理が階層的に定義された一部の処理をハードウェア構成のエンジン部で行なうシステムにおいて、データ転送効率を向上する。【解決手段】複数の処理階層において共通の処理対象範囲を含む場合（Ｓ１００−ＹＥＳ）、上流側における共通部分の処理を未処理とし（Ｓ１０２）、コマンドディスクリプタを生成して（Ｓ１０６）、コマンドディスクリプタ領域に格納する（Ｓ１０８）。この後、下流側の処理階層の処理へ移行して（Ｓ１１０）、コマンドディスクリプタを生成して（Ｓ１１６）、コマンドディスクリプタキューを作り（Ｓ１１８）、エンジン部の処理を起動する（Ｓ１２０）。エンジン部において、コマンドディスクリプタキューのコマンドディスクリプタを読み出して解析し（Ｓ１３０）、解析結果に基づく手順に従って処理対象データを読み出し（Ｓ１３２）、所定の順に所定の処理を行なうことで、共通部分の重複転送を防止する（Ｓ１４０）。【選択図】図１３
2005167544.tif 000002
【特許請求の範囲】
【請求項１】
メインシステムからハードウェアで構成されたエンジン部に処理対象データを転送して、当該処理対象データに対して所定の処理を行ない、処理済みデータを前記メインシステムに転送するデータ処理方法であって、
前記エンジン部が担当するそれぞれ異なる処理階層の複数の処理が共通の処理範囲を対象とする場合には、
複数の前記処理階層における第１の処理階層においては、前記共通の処理範囲についての処理を保留し、
前記複数の処理階層のそれぞれにおける、前記共通の処理範囲についての処理内容の指示と、当該処理内容に対応した前記処理対象データの前記メインシステムにおける格納位置を示すアドレス情報とを、第２の処理階層において前記エンジン部に通知し、
前記エンジン部において、前記第２の処理階層における処理に移行した段階で、保留しておいた部分を含む前記第１の処理階層の処理と、前記第２の処理階層の処理とを順次実行し、
処理済みデータを前記メインシステムに転送する
ことを特徴とするデータ処理方法。
【請求項２】
前記所定の処理は、通信プロトコルにおける、暗号化処理、復号化処理、認証処理、あるいはチェックサム処理である
ことを特徴とする請求項１に記載のデータ処理方法。
【請求項３】
前記第１および第２の処理階層について、前記エンジン部に対して通知する前記処理内容の指示と前記アドレス情報とを対応付けて順に所定の記憶部に格納し、
前記第２の処理階層における処理に移行した段階で、前記記憶部から前記処理内容の指示と前記アドレス情報とを順に読み出して、前記保留しておいた部分を含む前記第１の処理階層の処理と前記第２の処理階層の処理とを順次実行する
ことを特徴とする請求項１に記載のデータ処理方法。
【請求項４】
前記共通の処理範囲には、異なるセキュリティプロトコルの処理間において形成される、アプリケーションにより生成されたデータやヘッダ情報が含まれる
ことを特徴とする請求項１に記載のデータ処理方法。
【請求項５】
前記共通の処理範囲は、前記暗号化処理、前記復号化処理、または前記認証処理の何れかの処理と、前記チェックサム処理との間において形成される
ことを特徴とする請求項２に記載のデータ処理方法。
【請求項６】
ＴＣＰ／ＩＰプロトコルとＩＰＳｅｃのＥＳＰプロトコルもしくはＡＨプロトコルを用いた送信処理時には、
前記共通の処理範囲を、ＴＣＰヘッダ部分もしくはＵＤＰヘッダ部分と、アプリケーションにより生成されたデータ部分とし、
前記第１の処理階層としてのＴＣＰまたはＵＤＰの処理階層におけるＴＣＰヘッダ部分もしくはＵＤＰヘッダ部分と、アプリケーションにより生成されたデータ部分に対するチェックサム処理を保留し、
前記第２の処理階層としてのＩＰＳｅｃの処理階層における処理に移行した段階で、保留しておいた前記チェックサム処理を行ない、
続いて前記ＩＰＳｅｃプロトコルに従ったセキュリティ処理を行なう
ことを特徴とする請求項２に記載のデータ処理方法。
【請求項７】
ＴＣＰ／ＩＰプロトコルとＩＰＳｅｃのＥＳＰプロトコルもしくはＡＨプロトコルを用いた受信処理時には、
前記共通の処理範囲を、ＴＣＰヘッダ部分もしくはＵＤＰヘッダ部分と、アプリケーションにより生成されたデータ部分とし、
前記第１の処理階層としてのＩＰＳｅｃの処理階層におけるセキュリティ処理を保留し、
前記第２の処理階層としてのＴＣＰまたはＵＤＰの処理階層における処理に移行した段階で、保留しておいた前記セキュリティ処理を行ない、
続いてＴＣＰヘッダ部分もしくはＵＤＰヘッダ部分と、アプリケーションにより生成されたデータ部分に対する前記チェックサム処理を行なう
ことを特徴とする請求項２に記載のデータ処理方法。
【請求項８】
ＳＳＬ／ＴＬＳプロトコルとＴＣＰ／ＩＰプロトコルとを用いた送信処理時には、
前記共通の処理範囲を、アプリケーションにより生成されたデータ部分と、ＴＣＰヘッダ部分もしくはＵＤＰヘッダ部分とを含むものとし、
前記第１の処理階層における前記ＳＳＬ／ＴＬＳプロトコルに従ったセキュリティ処理を保留し、
前記第２の処理階層としてのＴＣＰまたはＵＤＰの処理階層におけるＴＣＰヘッダ部分もしくはＵＤＰヘッダ部分と、アプリケーションにより生成されたデータ部分に対するチェックサム処理に移行した段階で、保留しておいた前記セキュリティ処理を行ない、
続いて前記チェックサム処理を行なう
ことを特徴とする請求項２に記載のデータ処理方法。
【請求項９】
ＳＳＬ／ＴＬＳプロトコルとＴＣＰ／ＩＰプロトコルとを用いた受信処理時には、
前記共通の処理範囲を、アプリケーションにより生成されたデータ部分と、ＴＣＰヘッダ部分もしくはＵＤＰヘッダ部分とを含むものとし、
前記第１の処理階層としてのＴＣＰまたはＵＤＰの処理階層におけるＴＣＰヘッダ部分もしくはＵＤＰヘッダ部分と、アプリケーションにより生成されたデータ部分に対するチェックサム処理を保留し、
前記第２の処理階層における前記ＳＳＬ／ＴＬＳプロトコルに従ったセキュリティ処理に移行した段階で、保留しておいた前記チェックサム処理を行ない、
続いて前記ＳＳＬ／ＴＬＳプロトコルに従ったセキュリティ処理を行なう
ことを特徴とする請求項２に記載のデータ処理方法。
【請求項１０】
ハードウェアで構成されたエンジン部とメインシステムとを備え、前記エンジン部に前記メインシステムから処理対象データを転送して、当該処理対象データに対して所定の処理を行ない、処理済みデータを前記メインシステムに転送するデータ処理装置であって、
前記メインシステムは、前記エンジン部が担当するそれぞれ異なる処理階層の複数の処理において共通する処理範囲について、第１の処理階層における処理を保留するとともに、該複数の処理階層のそれぞれにおける、前記共通の処理範囲の前記処理対象データに対する処理内容の指示と、当該処理内容に対応した前記処理対象データの前記メインシステムにおける格納位置を示すアドレス情報とを、第２の処理階層において前記エンジン部に通知する処理手順制御部
を備えていることを特徴とするデータ処理装置。
【請求項１１】
前記複数の処理が共通の処理範囲を含むか否かを判定する処理範囲判定部
をさらに備え、
前記処理手順制御部は、前記処理範囲判定部が前記共通の処理範囲を含むと判定した場合に、該保留された処理と前記通知を行なう
ことを特徴とする請求項１０に記載のデータ処理装置。
【請求項１２】
前記第１および第２の処理階層について、前記エンジン部に対して通知する前記処理内容の指示と前記アドレス情報とを対応付けて順に格納する記憶部
をさらに備えていることを特徴とする請求項１０に記載のデータ処理装置。
【請求項１３】
前記処理手順制御部は、
ＴＣＰ／ＩＰプロトコルとＩＰＳｅｃのＥＳＰプロトコルもしくはＡＨプロトコルを用いた送信処理時には、前記共通の処理範囲を、ＴＣＰヘッダ部分もしくはＵＤＰヘッダ部分と、アプリケーションにより生成されたデータ部分とし、
前記エンジン部との間で定められている前記記憶部への情報の格納と読出しの規則に従って、前記第１の処理階層としてのＴＣＰまたはＵＤＰの処理階層におけるＴＣＰヘッダ部分もしくはＵＤＰヘッダ部分と、アプリケーションにより生成されたデータ部分に対するチェックサム処理を保留し、前記第２の処理階層としてのＩＰＳｅｃの処理階層における処理に移行した段階で、保留しておいた前記チェックサム処理を行ない、続いて前記ＩＰＳｅｃプロトコルに従ったセキュリティ処理を行なうように、前記エンジン部に対して通知する前記処理内容の指示と前記アドレス情報とを対応付けて順に前記記憶部に格納する
ことを特徴とする請求項１２に記載のデータ処理装置。
【請求項１４】
前記処理手順制御部は、
ＴＣＰ／ＩＰプロトコルとＩＰＳｅｃのＥＳＰプロトコルもしくはＡＨプロトコルを用いた受信処理時には、前記共通の処理範囲を、ＴＣＰヘッダ部分もしくはＵＤＰヘッダ部分と、アプリケーションにより生成されたデータ部分とし、
前記エンジン部との間で定められている前記記憶部への情報の格納と読出しの規則に従って、前記第１の処理階層としてのＩＰＳｅｃの処理階層におけるセキュリティ処理を保留し、前記第２の処理階層としてのＴＣＰまたはＵＤＰの処理階層における処理に移行した段階で、保留しておいた前記セキュリティ処理を行ない、続いてＴＣＰヘッダ部分もしくはＵＤＰヘッダ部分と、アプリケーションにより生成されたデータ部分に対するチェックサム処理を行なうように、前記エンジン部に対して通知する前記処理内容の指示と前記アドレス情報とを対応付けて順に前記記憶部に格納する
ことを特徴とする請求項１２に記載のデータ処理装置。
【請求項１５】
前記処理手順制御部は、
ＳＳＬ／ＴＬＳプロトコルとＴＣＰ／ＩＰプロトコルとを用いた送信処理時には、前記共通の処理範囲を、アプリケーションにより生成されたデータ部分と、ＴＣＰヘッダ部分もしくはＵＤＰヘッダ部分とを含むものとし、
前記エンジン部との間で定められている前記記憶部への情報の格納と読出しの規則に従って、前記第１の処理階層における前記ＳＳＬ／ＴＬＳプロトコルに従ったセキュリティ処理を保留し、前記第２の処理階層としてのＴＣＰまたはＵＤＰの処理階層における前記ヘッダ部分に対するチェックサム処理に移行した段階で、保留しておいた前記セキュリティ処理を行ない、続いて前記チェックサム処理を行なうように、前記エンジン部に対して通知する前記処理内容の指示と前記アドレス情報とを対応付けて順に前記記憶部に格納する
ことを特徴とする請求項１２に記載のデータ処理装置。
【請求項１６】
前記処理手順制御部は、
ＳＳＬ／ＴＬＳプロトコルとＴＣＰ／ＩＰプロトコルとを用いた受信処理時には、前記共通の処理範囲を、アプリケーションにより生成されたデータ部分と、ＴＣＰヘッダ部分もしくはＵＤＰヘッダ部分とを含むものとし、
前記エンジン部との間で定められている前記記憶部への情報の格納と読出しの規則に従って、前記第１の処理階層としてのＴＣＰまたはＵＤＰの処理階層における前記ヘッダ部分に対するチェックサム処理を保留し、前記第２の処理階層における前記ＳＳＬ／ＴＬＳプロトコルに従ったセキュリティ処理に移行した段階で、保留しておいた前記チェックサム処理を行ない、続いて前記ＳＳＬ／ＴＬＳプロトコルに従ったセキュリティ処理を行なうように、前記エンジン部に対して通知する前記処理内容の指示と前記アドレス情報とを対応付けて順に前記記憶部に格納する
ことを特徴とする請求項１２に記載のデータ処理装置。
【請求項１７】
前記エンジン部は、前記所定の処理として、通信プロトコルにおける、暗号化処理、復号化処理、認証処理、あるいはチェックサム処理を行なう
ことを特徴とする請求項１０に記載のデータ処理装置。
【請求項１８】
前記エンジン部は、前記メインシステムの前記処理手順制御部から前記処理内容の指示と前記アドレス情報とともに処理の起動指示を受け付けると、前記記憶部から前記処理内容の指示と前記アドレス情報とを順に読み出して、前記保留されていた部分を含む前記第１の処理階層の処理と前記第２の処理階層の処理とを順次実行する
ことを特徴とする請求項１２に記載のデータ処理装置。
【請求項１９】
それぞれハードウェアで構成された所定のデータ処理を行なうデータ処理部および前記データ処理部を制御する制御部を備え、メインシステムから転送された処理対象データに対して所定の処理を行い、処理済みデータを前記メインシステムに転送するデータ処理装置であって、
前記制御部は、前記メインシステムから処理の起動指示を受け付けると、複数の処理階層のそれぞれにおける、共通の処理範囲についての前記処理対象データに対する処理内容の指示と、当該処理内容に対応した前記処理対象データの前記メインシステムにおける格納位置を示すアドレス情報とを対応付けて格納している記憶部から、前記処理内容の指示と前記アドレス情報とを順に読み出して、前記データ処理部に処理を順次実行させる
ことを特徴とするデータ処理装置。
【請求項２０】
前記データ処理部は、前記所定のデータ処理として、通信プロトコルにおける、暗号化処理、復号化処理、あるいは認証処理を行なうセキュリティ処理部、あるいはチェックサム処理を行なうチェックサム処理部を有している
ことを特徴とする請求項１９に記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハードウェアで構成されたエンジン部において、メインシステムから転送された処理対象データに対して所定の処理を行ない、処理済みデータをメインシステムに転送するデータ処理方法およびデータ処理装置に関する。たとえば、通信プロトコルにおける、暗号化処理や復号化処理あるいは認証処理といったセキュリティ処理や通信プロトコル階層におけるチェックサム処理を行なう技術に関する。
【背景技術】
【０００２】
近年、計算機や通信技術の分野では、データを暗号化してデータ配布し、配布されたデータを復号化することで、配布されたデータ内容を得る情報の秘匿技術（機密保護技術／セキュリティ技術）が知られている。たとえば、ネットワークを用いたデータ通信では、データの機密性や完全性を確保するため、暗号化や復号化（纏めて秘匿化もしくは機密化ともいう）や、データの改竄に対する保護のためのデータ認証技術が用いられており、送信データを暗号化して送信し、受信データを復号化して受信内容を得るようにしている。
【０００３】
また、この秘匿技術と併用して、暗号ペイロード部分や他の部分のデータの同一性を確認するための認証（完全性保証）を行なう認証技術も知られている。また、通信プロトコルによっては、プロトコルレイヤの階層に付加される、宛先や何のデータであるかなどの情報を書き込んだヘッダ（Header）または送受信されるデータの同一性を確認するため、のチェックサム処理を行なうこともある。
【０００４】
以下、完全性保証を行なう認証処理とヘッダの同一性を確認するチェックサム処理とを纏めて同一性確認処理ともいう。また、秘匿技術（セキュリティ技術）と同一性確認技術とを纏めて、情報セキュリティ技術ともいう。なお、暗号化または復号化あるいは認証といったセキュリティ技術（狭義のセキュリティ技術）と、ヘッダ、または送受信されるデータの同一性を確認するチェックサム処理を含む情報セキュリティ技術（広義のセキュリティ技術）は、何れもデータの改竄に対する対応処理である点で共通するものである。
【０００５】
ここで、この種の情報セキュリティ技術では、従来、暗号化処理や復号化処理といった秘匿処理や、認証コードの作成や削除といった認証処理やヘッダの完全同一性を確認するチェックサム処理を、ソフトウェアで行なう仕組みが採られていた。このソフトウェアで行なう仕組みは、並列処理や連続処理に柔軟に対処し得るものの、その処理が複雑になるに連れ、処理時間が長くなるため、処理速度の低下が問題となる。
【０００６】
この問題を改善する一手法として、たとえば特許文献１，２に提案されているように、セキュリティ処理（秘匿処理や認証処理）を、ハードウェア処理回路で行なうことで高速化を図ったアクセラレータシステムの仕組みが考えられている。このアクセラレータシステムは、処理が複雑であっても、処理速度の低下を防ぐことができ、高いスループットを得ることができる。
【０００７】
【特許文献１】特表２００３−５１２６４９号公報
【特許文献２】米国公開特許公報２００２／００７３３２４Ａ１
【０００８】
ここで、アクセラレータシステムでは、ひとつのデータに対してブロック暗号・認証の並列処理を行なう場合に、そのデータを暗号処理部、認証処理部それぞれに並列に転送して処理する。また、ひとつのデータに対してブロック暗号・認証の連続処理を行なう場合、先ずはデータを暗号処理部で処理し、その後、認証処理部に転送する。
【０００９】
ネットワークプロトコルとしては、たとえばＩＰＳｅｃ（Internet Protocol Security）、またはＳＳＬ（Secure Sockets Layer）やＳＳＬをベースに改良されたＴＬＳ（Transport Layer Security）（以下纏めてＳＳＬ／ＴＬＳとも記す）、またはＴＣＰ（Transmission Control Protocol ）やＵＤＰ（User Datagram Protocol）（以下纏めてＴＣＰ／ＵＤＰとも記す）、あるいはＩＰｖ４（Internet Protocol Version4）やＩＰｖ６（Internet Protocol Version6）などがある。
【００１０】
たとえば一方向性ハッシュ関数を利用した認証処理（完全性保証処理）、または共通鍵暗号処理や公開鍵暗号処理を利用した秘匿処理、またはヘッダに対するチェックサム処理を、たとえば特許文献１に示されるようなアクセラレータシステムに対して処理要求が発生した場合に、ホストＣＰＵがネットワークスタックから処理要求し、特許文献２に示されるような処理内容の指示と、処理対象データを指示する情報が組み込まれた（たとえばコマンドディスクリプタ）構成を、ＤＭＡ（Direct Memory Access）コントローラが読み出すことにより、処理対象データ転送が行なわれ、処理終了と同時に処理済対象データが転送される。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
ここで、一連の処理を階層構造で考えて取り扱う概念がある。たとえば、ネットワークプロトコルにおいては、ＯＳＩ（Open Systems Interconnection）の基本参照モデルのように、プロトコルの階層構造の概念が導入されているため、ネットワーク上に配送されるデータに対して、ネットワークプロトコルスタックでは幾つかのプロトコルによるトランザクションが発生することになり、セキュリティ処理あるいはチェックサム処理に関わる処理要求が存在する処理階層ごとにアクセラレータシステムへの重複したデータ転送が生じ、データ転送効率の低下を招いていた。
【００１２】
また、ＯＳＩの基本参照モデルにおける同一の階層内でも、アクセラレータシステムを利用したセキュリティ処理やチェックサム処理が異なる処理階層において生じる場合には、これら処理に関わる処理要求が存在する処理階層ごとにアクセラレータシステムへの重複したデータ転送が生じ、データ転送効率の低下を招いていた。
【００１３】
アクセラレータシステムへの重複したデータ転送が生じると、その都度ＣＰＵ（Central Processing Unit ）の介入が生じてしまう問題と、バス効率低下が生じてしまう問題が生じる。
【００１４】
図２９〜図３３は、従来技術における、この問題点を説明する図である。ここで、図２９は、ＯＳＩの基本参照モデルと対応付けて、ＴＣＰ／ＩＰ（Transmission Control Protocol／Internet Protocol）の処理階層モデルとアクセラレータシステムとの関係を示している。図３０〜図３３は、アクセラレータシステムが行なう処理の具体例における問題点を説明する図である。
【００１５】
処理対象データに対する各々の処理を階層化したモデル（階層モデル）で表しているＯＳＩ参照モデルに従って、所定のアプリケーションで取得されたデータに対して一連の処理を実行してネットワークに送出する場合、上位側のアプリケーション層から順にデータを下の階層に渡していく。このとき、各階層では、宛先や何のデータであるかなどの情報を書き込んだヘッダ（Header）をデータに付加して、その階層の処理済みデータとして下位の階層に渡す。
【００１６】
ここで、ある処理階層でセキュリティ処理を行なう必要がある場合、メインメモリ（主記憶部）に保持されている処理対象データをアクセラレータシステムに渡し、装置全体を制御するＣＰＵやデータを記憶するメインメモリを含むメインシステム側からアクセラレータシステムに処理を移行させ、アクセラレータシステムにおいてセキュリティ処理が完了した段階で、処理済みデータをメインシステム側に渡す（戻す）必要が生じる。
【００１７】
セキュリティ処理を行なうプロトコルとしては、各処理階層の少なくとも何れかの処理に関わって実現される。よって、アクセラレータシステムに対するセキュリティ処理に関わる処理要求は、セキュリティ処理を行なうプロトコルに応じて、たとえば、アプリケーション層、トランスポート、インターネット層、およびネットワークアクセス層の少なくとも１つの階層に対して発生する。
【００１８】
したがって、図２９のＡ１〜Ａ４に示すように、各処理階層において発生するアクセラレータシステムへの処理要求を実行するため、メインシステムのＣＰＵは、その都度、処理対象データに対する処理内容の指示（処理手順を示す情報）と、処理対象データのメインメモリにおける格納場所を示す情報とを生成し、アクセラレータシステムを起動しなければならない。この場合において、異なる処理階層間で、処理対象範囲を共通とする場合が起こり得る。
【００１９】
たとえば、図３０は、ＯＳＩの基本参照モデルと対応付けて、ＴＣＰ／ＩＰとＩＰＳｅｃの処理階層モデルを示し、同様に、図３１は、ＴＣＰ／ＩＰとＳＳＬ／ＴＬＳの処理階層モデルを示している。
【００２０】
ＴＣＰ／ＩＰの通信において、ＴＣＰとＵＤＰでは、ヘッダ部とデータ部のチェックサムを計算することで、データの信頼性を保証するようにしている。したがって、このチェックサムを計算する機能部分をアクセラレータシステムに搭載する場合には、メインシステムとアクセラレータシステムとの間では、図２９のＡ２に示すように、トランスポート層の処理時にデータの受け渡しが生じる。
【００２１】
よって、セキュリティ処理を行なうプロトコルと併用した場合には、メインシステムとアクセラレータシステムとの間では、ＯＳＩやＴＣＰ／ＩＰにおける処理階層が同一であるか異なるかを問わず、処理階層の異なるチェックサム処理要求とセキュリティ処理の要求があるので、少なくとも２回のデータの受け渡しが生じ、処理要求が存在する処理階層ごとにアクセラレータシステムへの重複したデータ転送が生じ得る。
【００２２】
たとえば、ＩＰＳｅｃプロトコルのＥＳＰ（Encapsulating Security Payload）フォーマットに基づいてセキュリティ処理を行なう場合、アプリケーション層で生成されたデータを送信する過程では、トランスポート層としてのＴＣＰ層でＴＣＰヘッダとデータに対してチェックサム処理を行なった後に、インターネット層としてのＩＰ層で、ＴＣＰヘッダ、データ、およびＥＳＰトレーラに対しては、共通鍵暗号処理や公開鍵暗号処理を利用した秘匿処理を、またＥＳＰヘッダ、終点ヘッダ（ＩＰｖ６の場合のオプション）、ＴＣＰヘッダ、データ、およびＥＳＰトレーラに対しては、ハッシュ処理を利用した認証処理を行なう。
【００２３】
このため、メインシステムとアクセラレータシステムとの間では、図３０に示すように、少なくてもＡ２，Ａ３にてＴＣＰヘッダ部分とデータ部分の重複したデータ転送が生じる。すなわち、ＴＣＰ層のチェックサム処理要求、そしてＩＰ層での秘匿処理要求や認証処理要求が存在するごとに、メインメモリからアクセラレータシステムへ、ＴＣＰヘッダとデータについて、重複したデータ転送が生じる。
【００２４】
ＷＥＰ（Wired Equivalent Privacy；IEEE 802.11bで採用）やＷＰＡ（Wi-Fi Protected Access）などのプロトコルを適用した無線ＬＡＮとする場合には、さらにＡ２，Ａ３，Ａ４にて重複したデータ転送が生じてしまう。
【００２５】
また、ＳＳＬ／ＴＬＳプロトコルに基づいてセキュリティ処理を行なう場合、アプリケーション層で生成されたデータを送信する過程（アプリケーション層→ＳＳＬ／ＴＬＳ→ＴＣＰ／ＩＰ→ＩＰ→ＣＳＭＡ／ＣＤなど）では、生成されたデータに対してＳＳＬ化してＳＳＬ  Ｃｉｐｈｅｒｔｅｘｔデータヘ変換してトランスポート層へデータを引き渡し、トランスポート層としてのＴＣＰ層でチェックサム処理を行なう。
【００２６】
このため、メインシステムとアクセラレータシステムとの間では、図３１に示すように、少なくてもＡ１，Ａ２にてデータ部分の重複したデータ転送が生じる。すなわち、アプリケーション層での秘匿処理要求や認証処理要求、そしてＴＣＰ層のチェックサム処理要求が存在するごとに、メインメモリからアクセラレータシステムへ、データ部分の重複した転送が生じる。ＷＥＰやＷＰＡを適用した無線ＬＡＮとする場合には、さらにＡ１，Ａ２，Ａ４にて重複したデータ転送が生じてしまう。
【００２７】
また、ＩＰｖ４では、ＩＰｖ６とは異なり、ＩＰヘッダフォーマットにヘッダチェックサム（Header Checksum ）が存在し、ＩＰヘッダが通信過程で破壊されていないかどうかを検出するようにしているので、ＩＰヘッダについてのチェックサムを計算する必要がある。よって、セキュリティ処理を行なうプロトコルと併用した場合には、メインシステムとアクセラレータシステムとの間では、ＯＳＩやＴＣＰ／ＩＰにおける処理階層が同一であるか異なるかを問わず、処理階層の異なるチェックサム処理要求とセキュリティ処理の要求があるので、少なくとも２回のデータの受け渡しが生じ、処理要求が存在する処理階層ごとにアクセラレータシステムへの重複したデータ転送が生じ得る。
【００２８】
たとえば、ＩＰｖ４にてＷＥＰやＷＰＡを適用した無線ＬＡＮとする場合、アプリケーション層で生成されたデータを送信する過程では、ＩＰ層にてＩＰヘッダについてのチェックサム処理を行なって下位階層のＣＳＭＡ／ＣＤにＩＰパケット全体のデータを渡した後に、ネットワークアクセス層にて、ＩＰパケット全体に対してＷＥＰやＷＰＡの仕様に基づくセキュリティ処理を行なう。このため、メインシステムとアクセラレータシステムとの間では、図３２に示すように、少なくてもＡ３，Ａ４にてデータ部分やＴＣＰヘッダあるいはＩＰヘッダ部分などにて重複したデータ転送が生じる。
【００２９】
すなわち、ＴＣＰ層の処理とＩＰ層の処理との間ではＩＰヘッダ部分で重複したデータ転送は生じないが、ＩＰ層でのＩＰｖ４ヘッダチェックサム処理要求と、ネットワークアクセス層での秘匿処理要求や認証処理が存在するごとに、メインメモリからアクセラレータシステムへ、ＩＰｖ４ヘッダ部分の重複した転送が生じる。加えて、ＩＰｖ４であるのかＩＰｖ６であるのかを問わず、データ部分やＴＣＰヘッダ部分にデータの重複転送が生じる。
【００３０】
また、ＩＰＳｅｃプロトコルのＡＨ（Authentication Header ）フォーマットに基づいて認証処理を行なう場合、ＩＰヘッダを含むほぼ全範囲を認証対象範囲とする。このため、ＩＰｖ４での通信を行なうと、メインシステムとアクセラレータシステムとの間では、図３３に示すように、ＩＰｖ４におけるＩＰヘッダについてのチェックサム処理と、ＡＨにおける認証処理といった異なる処理階層において、ＩＰヘッダ部分の重複したデータ転送が生じる。すなわち、どちらの処理階層も一般的なＯＳＩモデルやＴＣＰ／ＩＰモデルにおける同一の処理階層の処理ではあるが、異なる処理階層において、ＩＰヘッダ部分の重複した転送が生じる。なお、ＡＨフォーマットにおいても、ＥＳＰフォーマットの場合と同様に、メインシステムとアクセラレータシステムとの間では、Ａ２，Ａ３にてＴＣＰヘッダ部分とデータ部分の重複したデータ転送が生じる。
【００３１】
本発明は、上記事情に鑑みてなされたものであり、異なる処理階層の複数の処理が共通の処理対象範囲を含む場合に、データ転送効率を高めることのできる技術を提供することを目的とする。
【課題を解決するための手段】
【００３２】
本発明に係るデータ処理方法は、メインシステムからハードウェアで構成されたエンジン部に処理対象データを転送して、処理対象データに対して所定の処理を行ない、処理済みデータをメインシステムに転送するデータ処理方法であって、エンジン部が担当するそれぞれ異なる処理階層の複数の処理が共通の処理範囲を対象とする場合には、複数の処理階層における第１の処理階層では、共通の処理範囲についての処理を保留しておく。
【００３３】
このとき、対象となる複数の処理階層のそれぞれにおける、複数の処理階層のそれぞれにおける、共通の処理範囲についての処理内容の指示と、処理内容に対応した処理対象データのメインシステムにおける格納位置を示すアドレス情報とを、第２の処理階層においてエンジン部に通知する。
【００３４】
つまり、共通の処理対象範囲を含む場合には、第１および第２の処理階層にて対象となる処理を順に実行するための情報を、メインシステム側が第２の処理階層の処理に移行する段階で、一括してエンジン部に通知する。
【００３５】
そして、エンジン部においては、メインシステムからの起動指示を受け、第２の処理階層における処理に移行した段階で、保留しておいた部分を含む第１の処理階層の処理と、第２の処理階層の処理とを順次実行し、処理済みデータをメインシステムに転送する。
【００３６】
このような手順を踏むことで、共通の処理対象範囲を含む場合には、処理階層ごとに発生した処理要求を随時、エンジン部に対して発行し、処理対象データを転送する必要がなくなる。
【００３７】
また、本発明に係るデータ処理装置は、上記本発明に係るデータ処理方法を実施するのに好適な装置であって、メインシステムは、エンジン部が担当するそれぞれ異なる処理階層の複数の処理において共通する処理範囲について、第１の処理階層における処理を保留するとともに、この複数の処理階層のそれぞれにおける、共通の処理範囲の処理対象データに対する処理内容の指示と、この処理内容に対応した処理対象データのメインシステムにおける格納位置を示すアドレス情報とを、第２の処理階層においてエンジン部に通知する処理手順制御部を備えるものとした。
【００３８】
また従属項に記載された発明は、本発明に係るデータ処理方法やデータ処理装置のさらなる有利な具体例を規定する。
【００３９】
たとえば、エンジン部は、所定の処理として、通信プロトコルにおける、暗号化処理、復号化処理、あるいは認証処理などのセキュリティ処理を行なうセキュリティ処理部、あるいはヘッダ情報に対するチェックサム処理を行なうチェックサム処理部を有しているものであるのがよい。
【００４０】
勿論、メインシステムとエンジン部との間で協調処理を行なう場合に、処理が階層的に定義されていて、その内の一部の処理をハードウェアで構成されたエンジン部で行なうシステム構成であればよく、エンジン部が行なう処理内容は、通信プロトコルに関わる処理に限定されるものではない。
【００４１】
また、装置を複数の処理階層の処理に対応するように構成する場合には、メインシステム側は、それぞれ異なる処理階層の複数の処理が共通の処理対象範囲を含むか否かを判定する処理対象範囲判定部をさらに備えるのがよい。この場合、処理手順制御部は、処理対象範囲判定部が共通の処理対象範囲を含むと判定した場合に、保留の処理と通知の処理を行なうこととする。
【００４２】
なお、メインシステム側の処理対象範囲判定部や処理手順制御部に関しては、電子計算機（コンピュータ）を用いてソフトウェアで実現することもでき、このためのプログラムやこのプログラムを格納した記録媒体を発明として抽出することも可能である。プログラムは、コンピュータ読取り可能な記憶媒体に格納されて提供されてもよいし、有線あるいは無線による通信手段を介して配信されてもよい。
【発明の効果】
【００４３】
本発明に依れば、複数の処理階層の処理に共通の処理対象範囲を含む場合には、対象となる第１および第２の処理階層における処理を順に実行するための情報を、メインシステムが第２の処理階層の処理に移行する段階で、一括してエンジン部に通知し、エンジン部においては、メインシステムからの起動指示を受けると、保留されていた部分を含む第１の処理階層の処理と、第２の処理階層の処理とを順次実行してから、処理済みデータをメインシステムに転送するようにした。
【００４４】
このため、共通の処理対象範囲を含む場合には、処理階層ごとに発生した処理要求を随時、エンジン部に対して発行し、処理対象データを転送する必要がなくなる。メインシステムとエンジン部との間を行き来する処理を減らすことができ、結果としてシステム全体の処理能力を向上させることができる。
【発明を実施するための最良の形態】
【００４５】
以下、図面を参照して本発明の実施形態について詳細に説明する。
【００４６】
＜装置構成＞
図１は、本発明に係るデータ処理装置の一実施形態を備えたコンピュータ装置の構成を示したブロック図である。
【００４７】
図示するように、コンピュータ装置１は、メインシステム１００と、ハードウェアで構成された処理回路部分であるエンジン部２００と、周辺デバイス３００とを備えて構成されている。
【００４８】
メインシステム１００は、コンピュータ装置１全体の動作制御やそのほかの演算や制御の各処理機能をなすＣＰＵ（Central Processing Unit ）やＭＰＵ（Micro Processing Unit ）などの中央演算制御処理部１１０と、不揮発性の記憶部の一例であるＲＯＭ（Read Only Memory）１２２および書換可能な記憶部の一例でありメインメモリとして機能するＲＡＭ（Random Access Memory）１２４を有するメモリ部１２０とを備える。
【００４９】
またメインシステム１００は、種々の周辺デバイス３００やイントラネットあるいはインターネットなどの通信網との間のインタフェース（Inter Face）機能をなすインタフェース部１５０と、記録媒体４００からデータを読み出したり書き込んだりするドライブ機能とインタフェース機能とを持つメディアＩＦ部１７０と、各部を互いに接続するアドレスバスおよびデータバスを含む内部バス１８０とを備えている。処理データや制御データは、内部バス１８０を通じてコンピュータ装置１の各ハードウェア間をやり取りされる。
【００５０】
ＲＯＭ１２２は、内部に、中央演算制御処理部１１０のＣＰＵなどが各種処理を行なうための制御プログラムが格納されるプログラム記憶領域や、中央演算制御処理部１１０が各種処理を行なうために必要とするそのほかのデータ記憶領域を有する。さらに、プログラム記憶領域は、ＢＩＯＳ（Basic Input/Output System ）やＯＳ（Operating Systems ；基本ソフト）やＧＵＩ（Graphical User Interface）処理などのプログラムをも格納している。中央演算制御処理部１１０は、ＢＩＯＳやＯＳやＧＵＩ処理を利用しつつ、ＲＯＭ１２２内のプログラムを実行することによって、各種の処理を行なう各部の機能を実現する。
【００５１】
ＲＡＭ１２４は、中央演算制御処理部１１０が各種処理を実行する際のワークメモリとして用いられる作業領域であって、外部から取り込んだデータを格納するデータ記憶領域、あるいはそのほかの処理対象データを格納する領域を含んでいる。
【００５２】
周辺デバイス３００としては、ＣＲＴ（Cathode Ray Tube；陰極線管）やＬＣＤ（Liquid Crystal Display；液晶）などの表示デバイスを有するディスプレイ部３０２、コンピュータ装置１を操作するためのタッチパネル３０４ａや操作キー（たとえば押圧式のボタン）を持つキーボード３０４ｂやマウス３０４ｃなどの操作部３０４、処理結果を紙媒体などに印刷出力するためのプリンタ部３０６、画像を取り込むためのスキャナ部３０８、および記憶媒体の一例である外付けのハードディスク装置３１０を有する。周辺デバイス３００は、それぞれに応じたＩＦ（インタフェース）部１５１，１５２，１５４，１５６，１５８を介して内部バス１８０に接続されるようになっている。
【００５３】
記録媒体４００は、コンピュータ装置１のハードウェア資源に備えられている読取装置に対して、プログラムの記述内容に応じて、磁気、光、電気などのエネルギの変化状態を引き起こして、および対応する信号の形式で、読取装置にプログラムの記述内容を伝達できるものである。
【００５４】
たとえば、コンピュータ装置１に予め組み込まれた状態でユーザに提供される、プログラムが記録されているＲＯＭ１２２やハードディスク装置１７４、あるいは外付けのハードディスク装置３１０（４０４）などで構成されてもよい。あるいは、コンピュータ装置１とは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている、ＩＣカードやミニチュアカードなどの種々の方式の半導体メモリカードのようなフラッシュメモリなどの不揮発性の半導体メモリを用いた記録メディア４０２、磁気ディスク（フレキシブルディスク（ＦＤ）４０６を含む）、光ディスク（ＣＤ−ＲＯＭ（Compact Disc-Read Only Memory ）、ＤＶＤ（Digital Versatile Disc）を含む）４０８、光磁気ディスク（ＭＤ（Mini Disc ）を含む）などのパッケージメディア（可搬型の記憶媒体）により構成されてもよい。
【００５５】
上記構成によって、コンピュータ装置１は、それぞれ専用のハードウェアによりなされる処理機能を、その機能を実現するプログラムコードに基づきソフトウェア的に実現することができるようになっている。
【００５６】
コンピュータ装置１に組み込まれるソフトウェアとしては、たとえば、複写アプリケーション、プリンタアプリケーション、ファクシミリ（ＦＡＸ）アプリケーションあるいは他のアプリケーション用の処理プログラムなど、従来の各種装置におけるものと同様のものが組み込まれる。また、装置が、スキャナ部３０８で読み取った画像を処理したり、Ｗｅｂサイトへのアクセス要求に対してネットワークＩＦ部１５８を介して外部とのデータを送受信したりするためのアクセス制御処理あるいは認証処理のためのプログラムも組み込まれる。
【００５７】
たとえば、本発明に係るデータ処理を実施するためのハードウェア処理回路を制御する機能部分を、電子計算機（コンピュータ）を用いてソフトウェアで実現するために好適なプログラムあるいはこのプログラムを格納したコンピュータ読取可能な記憶媒体を発明として抽出することもできる。ソフトウェアにより実行させる仕組みとすることで、ハードウェアの変更を伴うことなく、処理手順などを容易に変更できる利点を享受できるようになる。
【００５８】
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ（組込マイコンなど）、あるいは、ＣＰＵやＭＰＵ、論理回路、記憶装置などの機能を１つのチップ上に搭載して所望のシステムを実現するＳＯＣ（System On a Chip：システムオンチップ）、または、各種プログラムをインストールすることで各種の機能を実行することが可能な汎用のパーソナルコンピュータなどに、記録媒体４００からインストールされる。または、ソフトウェアを構成するプログラムが、ネットワークＩＦ部１５８および有線あるいは無線などの通信網を介して提供されてもよい。
【００５９】
たとえば、Ｗｅｂサーバへのアクセス制御処理や認証処理を行なう機能を実現するソフトウェアのプログラムコードを記録した記憶媒体４００を、コンピュータ装置１に供給し、コンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、ハードウェアにて構成する場合と同様の効果は達成される。
【００６０】
なお、記録媒体４００から読み出されたプログラムコード自体がアクセス制御処理や認証処理の機能を実現することでもよいし、そのプログラムコードの指示に基づきコンピュータ上で稼働しているＯＳなどが実際の処理の一部または全部を行なうものであってもよい。また、一括のプログラムファイルとして提供されることに限らず、コンピュータで構成されるシステムのハードウェア構成に応じて、個別のプログラムモジュールとして提供されてもよい。
【００６１】
ここで、本実施形態のコンピュータ装置１においては、種々の制御処理機能をなす全ての処理をソフトウェアで行なうのではなく、これら機能部分の一部をハードウェアにて行なうための処理回路として、エンジン部２００が設けられている。ハードウェアにて処理を行なうことで、ソフトウェア処理よりも処理の高速化を図ることができる。
【００６２】
具体的には、本実施形態のエンジン部２００は、クリプトエンジン（Crypto Engine ；暗号エンジン）として機能するように構成されており、暗号化処理や復号化処理といった秘匿処理や認証処理やチェックサム処理を行なうデータ処理部２４０と、データ処理部２４０用の処理対象データをデータ処理部２４０に渡し処理済みのデータをメインシステム１００に返す制御部２６０とを有している。データ処理部２４０と制御部２６０は、それぞれの処理を行なうための図示しない小容量のワークメモリ（レジスタ）を持つ。このクリプトエンジンとして機能するエンジン部２００は、単一のハードウェアデバイスによって構成されるのがよい。
【００６３】
これにより、コンピュータ装置１は、エンジン部２００が、ＣＰＵなどを有する中央演算制御処理部１１０と、ＲＯＭ１２２およびＲＡＭ１２４を有するメモリ部１２０とに接続されて構成されることで、本発明に係るデータ処理装置３が構成される。
【００６４】
データ処理装置３は、内部バス１８０並びにネットワークＩＦ部１５８を介して、イントラネットやインターネットなどの通信網に接続され、他装置との間でデータの送受信を行なう。この際、通信データに対しては、所定のプロトコルに従って、たとえば、ハッシュ関数を利用した認証処理、共通鍵方式や公開鍵方式を利用した秘匿処理、あるいはチェックサム処理などがなされる。
【００６５】
データ処理装置３において、メインシステム１００の中央演算制御処理部１１０は、本実施形態特有の機能部（ソフトウェアで構成される）として、処理対象範囲判定部１１６と処理手順制御部１１８とを備えている。
【００６６】
処理対象範囲判定部１１６は、秘匿処理や認証処理やチェックサム処理などのデータ処理部２４０が処理を担当する複数の処理要求において、各処理要求の処理対象データ中に共通の処理対象範囲を含むか否かを判定する。
【００６７】
処理手順制御部１１８は、処理対象範囲判定部１１６が共通の処理対象範囲を含むと判定したことを条件として、データ処理部２４０における複数の処理要求の処理手順を示す処理手順情報と、データ処理部２４０が取り扱う処理対象データの格納場所を示すデータ格納場所情報とを対応付けて所定のメモリの所定の記憶領域に格納する。
【００６８】
また、処理手順制御部１１８は、共通の処理対象範囲を含む処理過程の上流側（第１の処理階層の相当）の処理要求においては共通の処理対象範囲に対して行なう処理を保留させた状態で下位の階層の処理に移行し、この後、共通の処理対象範囲を含む処理過程における下流側（第２の処理階層の相当）の処理要求において、データ処理部２４０における秘匿処理や認証処理やチェックサム処理を起動する。
【００６９】
ハードウェアで構成されるエンジン部２００は、処理手順制御部１１８からの起動指示を受けたことを条件として、所定のメモリに記憶されている処理手順情報とデータ格納場所情報とを読み出し、これらの情報に従って、要求された処理を順に行ない、処理済みのデータをメインシステム１００に返す。
【００７０】
たとえば、中央制御部１１０の主要部をなすＣＰＵは、予めＲＯＭ１２２やハードディスク装置１７４内に格納されている制御プログラムに基づいて必要なＧＵＩ画面をディスプレイ部３０２に順次表示させるとともに、制御プログラムおよびタッチパネル３０４ａを介して与えられるユーザ入力に基づいて、図示しないクライアント装置やＷｅｂサーバなどにアクセスして、ユーザの希望するコンテンツ（ここでは出力対象画像）をダウンロードし、プリンタ部３０６にて印刷出力させる。
【００７１】
この際、中央演算制御処理部１１０のＣＰＵは、そのユーザがアカウントを所持している認証サーバに問い合わせることでユーザ認証を行なってから、そのユーザにコンピュータ装置１の使用を許可し、さらにＷｅｂサーバへのアクセスも制御する。これにより、ユーザは、そのアカウントを利用して、コンピュータ装置１の使用やＷｅｂサーバへのアクセスが可能となる。
【００７２】
次に、本発明に係るデータ処理装置３がなすデータ処理について詳しく説明する。
【００７３】
＜エンジン部に対する処理手順の制御手法を実現する構成＞
図２〜図５は、データ処理装置３を用いてデータ処理を行なうに当たってのエンジン部に対する処理手順制御機能を実現するためのシステムアーキテクチャの構成例を説明する図である。
【００７４】
メインシステム１００は、データ処理装置３が行なう秘匿処理や認証処理を担当する複数の処理要求において各処理要求の処理対象データ中に共通の処理対象範囲を含む場合、データ処理装置３における前記複数の処理要求の処理手順を示す処理手順情報と、データ処理部が取り扱う処理対象データのメモリ部１２０における格納場所を示すデータ格納場所情報とを対応付けた情報を生成する。
【００７５】
ここで、本実施形態特有の機能として、処理要求を階層モデルで取り扱い、共通の処理対象範囲を含む複数の処理要求における上流側の処理要求においては、メインシステム１００は、その処理要求において共通の処理対象範囲に対して行なう処理を保留させた状態で下流側の処理に移行し、処理を保留させた上流側の処理要求とその下流側の処理要求とを同時にエンジン部２００に発することで、エンジン部２００を起動する。エンジン部２００は、メインシステム１００からの起動指示を受けると、処理手順情報とデータ格納場所情報とを読み出し、これらの情報に従って、処理を保留させた状態以降の処理を順に行なう。
【００７６】
つまり、本実施形態では、ＯＳＩやＴＣＰ／ＩＰなどの通信プロトコルにおける同一の階層であるか異なる階層であるかを問わず、処理階層の異なる複数の処理要求において各処理要求の処理対象データ中に共通の処理対象範囲を含む場合には、処理対象のパケットの一部を未処理として、次の処理階層へ処理を移行してから未処理分を含めて処理を実行する手法を採っている。
【００７７】
ここで、処理手順情報やデータ格納場所情報あるいは処理対象データをエンジン部２００に通知する仕組みとしては、コンピュータアーキテクチャにおけるメモリ管理の手法と同様に、メモリから所要部分のデータを読み出す際の種々の手法を利用することができる。また、データの読出しに際しては、ＣＰＵがメモリ制御部として機能しバスマスタとなるプログラム転送の形態と、制御部２６０にＤＭＡ（Direct Memory Access）コントローラをメモリ制御部として設けることで、制御部２６０がバスマスタとなりＤＭＡ転送することで、メインシステム１００の中央演算制御処理部１１０を介することなく、メモリ部１２０とエンジン部２００との間でデータ転送を行なう形態の何れであってもよい。ＤＭＡ転送にすれば、ＣＰＵ負荷を軽減でき転送効率が高まる。
【００７８】
また、データ転送における転送モードとしては、１回のアドレス指定で複数のデータを纏めて連続的に転送するバースト転送モードを用いることで、データ転送時に逐一アドレスを指定するサイクルを実行する手間を省き、データ転送速度を向上させるのがよい。この場合、データを、メモリ部１２０のＲＡＭ１２４における、連続したアドレスに格納するようにする。
【００７９】
何れにしても、中央演算制御処理部１１０とエンジン部２００との間においては、共通の処理対象範囲を含む処理過程における上流側の処理要求において保留させておいた処理から所定の順に、ハッシュ関数を利用した認証処理、共通鍵方式や公開鍵方式を利用した秘匿処理、あるいはチェックサム処理などが、エンジン部２００において処理がなされるように、メモリへのデータの格納手法や読出し手法を取り込めておく。
【００８０】
たとえば、図２に示す第１の構成例は、ＤＭＡコントローラ２３２を制御部２６０内に設けることで、制御部２６０がメモリ部１２０に対してバスマスタとなって、メモリ部１２０からデータを自律的に読み出す形態の構成例を示している。ここで、第１の構成例では、処理手順制御部１１８は、処理手順情報とデータ格納場所情報を、制御部２６０内のレジスタ（メモリの一種）２３４に設定する。いわゆる、レジスタ方式を利用したものである。なお、後述するキュー（Queue ）構造やスタック（stack ）構造とは異なり、データの格納順や読出順に左右されない形態である。このため、処理手順情報には、一連の処理における処理順序の情報も記述されるようにする。
【００８１】
レジスタ２６８には、図２（Ｂ）に示すように、データ格納領域であるレジスタ（記憶部）として、中央演算制御処理部１１０の処理手順制御部１１８が設定した処理手順情報とデータ格納場所情報とを対応付けて格納する処理手順レジスタ（Descriptor Registers）２６８ａ、処理手順制御部１１８からの処理指示命令を格納する制御レジスタ（Control Registers ）２６８ｂ、処理手順レジスタ２６８ａから順に読み出した処理コマンドを格納するコマンドレジスタ（Command Registers ）２６８ｃ、ＲＡＭ１２４の処理データ格納領域１２５から取り込んだ処理対象データ（元データ；Source Data ）や処理済みのデータを格納するデータレジスタ（Data Registers）２６８ｄが設けられている。
【００８２】
制御部２６０は、中央演算制御処理部１１０の処理手順制御部１１８から処理の開始指示を受けると、処理手順レジスタ２６８ａに設定されている処理手順情報とデータ格納場所情報とを参照して、メモリ部１２０内のＲＡＭ１２４における処理データ格納領域１２５から必要な部分の処理対象データを読み出して順に処理を実行する。
【００８３】
図３に示す第２の構成例は、ＤＭＡコントローラ２３２を制御部２６０内に設けることで、制御部２６０がメモリ部１２０に対してバスマスタとなってメモリ部１２０からデータを読み出す形態の他の構成例を示している。ここで、第２の構成例では、処理手順情報とデータ格納場所情報とを、メモリ部１２０内のＲＡＭ１２４におけるコマンド格納領域１２６に設定する。
【００８４】
制御部２６０は、中央演算制御処理部１１０から起動指示を受けると、メモリ部１２０内のコマンド格納領域１２６に設定されている処理手順情報とデータ格納場所情報とを参照して、メモリ部１２０内のＲＡＭ１２４における処理データ格納領域１２５から必要な部分の処理対象データを読み出して順に処理を実行する。
【００８５】
なお、後述するキュー（Queue ）構造やスタック（stack ）構造とは異なり、データの格納順や読出順に左右されない形態である。このため、処理手順情報には、一連の処理における処理順序の情報も記述するようにする。
【００８６】
よって、本実施形態の場合、処理対象データに対してのデータ処理装置３における一連の処理内容の指示と、処理対象データの格納場所を示す情報とが、バラバラの順でコマンド格納領域１２６に格納される。よって、処理手順制御部１１８から起動指示を受けた制御部２６０は、後述するスタック構造と同様に、そのときに指示された処理手順情報とデータ格納場所情報の全体を読み出す必要がある。ただし、スタック構造とは異なり、順にではなくバラバラに格納されているので、読み出した個々のコマンドの処理順を解析してからでないと、エンジン部２００にての処理を順に行なうことができない。この点では、後述するスタック構造の方が望ましいことが分る。
【００８７】
図４に示す第３の構成例は、ＤＭＡコントローラ２３２を制御部２６０内に設けることで、制御部２６０がメモリ部１２０に対してバスマスタとなってメモリ部１２０からデータを読み出す形態の他の構成例を示している。
【００８８】
ここで、第３の構成例は、ハードウェア構成は図３に示す第２の構成例と同一であるが、データの格納と読出しの形態に特徴があり、処理手順情報とデータ格納場所情報とを対応付けたコマンドディスクリプタをキュー（Queue ）構造もしくはスタック（stack ）構造としてメモリ部１２０内のＲＡＭ１２４におけるコマンドディスクリプタ領域１２７に格納し読み出す形態を採る。処理要求発生ごとの格納順と読出順とを対応付けておくので、処理手順情報には、一連の処理における処理順序の情報の記述は不要である。
【００８９】
制御部２６０は、中央演算制御処理部１１０から起動指示を受けると、メモリ部１２０内のコマンドディスクリプタ領域１２７にキュー構造もしくはスタック構造で設定されている処理手順情報とデータ格納場所情報とを参照して、メモリ部１２０内のＲＡＭ１２４における処理データ格納領域１２５から必要な部分の処理対象データを読み出して順に処理を実行する。
【００９０】
なお、ここでは図３の第２の構成例に対する変形例で示しているが、データの格納と読出しの形態として、キュー構造やスタック構造を採る形態は、図２に示した第１の構成例においても適用し得るものである。
【００９１】
図５に示す第４例の構成は、中央演算制御処理部１１０が、メモリ部１２０に対してバスマスタとなってメモリ部１２０から処理対象データを読み出して制御部２６０に渡す形態の一構成例を示している。ＣＰＵ負荷が大きくなるが、ＤＭＡコントローラを要しないのでシステムがコンパクトになる。なお、この場合においても、図５（Ａ）に示すように、各情報を中央演算制御処理部１１０内のレジスタ（記憶部）１１９に設定するレジスタ方式や、図５（Ｂ）に示すように、各情報をメモリ部１２０内のＲＡＭ１２４における処理データ格納領域１２５と対応するコマンドディスクリプタ領域１２７に設定するディスクリプタ方式を採り得る。また、データの格納と読出しの形態としては、キュー構造やスタック構造を採ることができる。
【００９２】
何れの場合でも、中央演算制御処理部１１０は、レジスタ１１９もしくはコマンドディスクリプタ領域１２７に設定されている処理内容の指示（コマンド）と、処理対象データの格納場所を示す情報とを参照して、メモリ部１２０内のＲＡＭ１２４における処理データ格納領域１２５から必要な部分のデータを読み出して、処理対象データを処理内容の指示（コマンド）とともに制御部２６０に転送する。
【００９３】
制御部２６０は、中央演算制御処理部１１０から起動指示を受けると、順に受け取る処理対象データおよび処理内容の指示（コマンド）に基づき、処理対象データに対して、処理内容の指示（コマンド）に従って順に処理を実行する。
【００９４】
＜コマンドディスクリプタ＞
図６は、処理手順レジスタ２６８ａもしくはコマンドディスクリプタ領域１２７へのコマンドの格納形態（コマンドディスクリプタ；Command Descriptor）Ｂ１０と、格納される個々のコマンドである処理手順情報およびデータ格納場所情報の一例を示した図である。図６（Ａ）に示すように、処理手順レジスタ２６８ａやコマンドディスクリプタ領域１２７には、処理階層の処理要求ごとに、１ワード目には命令構造（Command Structure ）１、…、Ｎワード目には命令構造Ｎというように、一連の命令構造が格納される。なお、処理内容によっては１つの命令構造だけで処理が実行される場合もある。
【００９５】
ワード（命令構造）の順に拘らず、１回のアドレス指定で一連の処理を行なうためのコマンドを纏めて連続的に読み出すべく、バースト転送モードを採用できるように、メモリ上の連続したアドレスをデータ格納位置とするのがよい。
【００９６】
データ処理のための命令構造を定義するために、１つの命令構造ＣＳ内には、暗号化や複合化あるいは認証の方式や、処理内容の他、暗号化や複合化あるいは認証の開始並びに終了位置などの情報が書き込まれる。
【００９７】
一例として、図６（Ｂ）においては、Ｃプログラミング言語を用いて提示されるものの場合を示しており、ＤＭＡ転送時の制御状態コマンド（control status command）ＣＳ１として、セキュリティ処理などのオペレーションに必要なソースデータの格納アドレスを特定する起点アドレス（Starting source address）ＣＳ２、処理済みデータの格納アドレスを特定する起点アドレス（Starting destination address）ＣＳ３、転送データ量（Number of bytes to transfer）ＣＳ４、および次のコマンドを示す情報（Ptr to next command struct）ＣＳ５が、一連の命令として書き込まれる。
【００９８】
図７〜図１０は、コマンドディスクリプタのキュー（Queue ）構造およびスタック（stack ）構造を説明する図である。
【００９９】
ここで、キューやスタックとは、複数のデータを一時的に格納しておくためのデータ構造であり、スタックやキューを使うことで、データを一時的に格納するためのメモリ領域を確保することができ、データを取り出すことによってメモリ領域を自動的に開放することができる。データを取り出す際は、インデックスなどのデータを識別するための情報を使わなくても、データの格納した順番を基準にしてデータを取り出すことができる。
【０１００】
たとえば、キューは、待ち行列のことで、キュー構造とは、データが一列に並んだイメージのデータ構造である。キュー構造の典型例は、図７に示すように、データを格納した順番でデータを取り出すようにしたもので、最初に取り出せるのは、最後に入れたデータである。このようなデータ構造は、一般に、先入れ先出し（ＦＩＦＯ；First In First Out）と呼ばれる。このようなメモリ構造を、以下キュー構造メモリともいう。
【０１０１】
本実施形態においてキュー構造メモリを採用する場合、処理対象データに対してのデータ処理装置３における一連の処理内容の指示と、処理対象データの格納場所を示す情報とが纏めてコマンドディスクリプタキューに組み込まれる。処理手順制御部１１８から起動指示を受けた制御部２６０は、そのときに指示された、キュー構造で設定された処理手順情報とデータ格納場所情報を順に１つずつ読み出して、エンジン部２００にての処理を順に行なうことができる。
【０１０２】
なお、キュー構造の実現に当たっては、データを格納したアドレスに拘らず、データを先入れ先出しの順で読み出すことができるようになっていればよく、配列を宣言することで、動作としては、ＦＩＦＯによる処理を記述することで実現することができる。たとえば、図７（Ｂ）に示すように、纏まった処理命令ごとにメモリの記憶領域を区分けして格納し、下流側への処理のリンクを順次設定していくようにしてもよい。
【０１０３】
一方、スタックは、ほし草や藁などの“山”のことで、同じ種類のデータを積み重ねた構造のことを指す用語として使われるものである。データを取り扱う場合、データを格納する領域のことをスタックエリアと呼び、図８に示すように、データを格納した順番とは逆の順番で、データを取り出すようにする。つまり、前述のＦＩＦＯとは逆に、最初に格納したデータが一番下になり、その上に次々にデータが積み重ねられるイメージである。データを取り出すときは、最後に入れた一番上のデータから順に取り出す。このようなスタックの構造は、一般に、後入れ先出し方式（ＬＩＦＯ；Last In First Out）と呼ばれる。このようなメモリ構造を、以下スタック構造メモリともいう。
【０１０４】
本実施形態においてスタック構造メモリを採用する場合、処理対象データに対してのデータ処理装置３における一連の処理内容の指示（コマンド）と、処理対象データの格納場所を示す情報とが、キュー構造の場合と同様に、纏めてコマンドディスクリプタスタックに組み込まれる。ただし、キュー構造の場合とは異なり読出しの順序が逆であるので、処理手順制御部１１８から起動指示を受けた制御部２６０は、そのときに指示された、スタック構造で設定された処理手順情報とデータ格納場所情報の全体を読み出してから、データ処理装置３にての処理を読出しの順とは逆順に処理を行なう必要がある。この点では、前述のキュー構造の方が望ましいことが分る。しかしながら、読出しは順に纏めて行なうことができ、その結果に基づき順に処理を行なうことができるので、第１例よりは処理が簡単である。
【０１０５】
なお、スタック構造メモリを採用する場合、ある処理階層の複数のコマンドに従って処理を行なう場合、個々のコマンドごとにエンジン部２００にて処理を行なうのではなく、図示するように、ある処理階層の全コマンドを一気に読み出してエンジン部２００のコマンドレジスタ２６８ｃにスタック構造で格納してからエンジン部２００の処理を行なうようにするとよい。この場合、コマンドだけでなく、それに対応した処理対象データも一気に読み出してエンジン部２００のデータレジスタ２６８ｄにスタック構造で格納するのがよい。こうすることで、内部バス１８０を早く開放できる利点がある。
【０１０６】
なお、スタック構造の実現に当たっても、データを格納したアドレスに拘らず、データを後入れ先出しの順で読み出すことができるようになっていればよく、配列を宣言することで、動作としては、ＬＩＦＯによる処理を記述することで実現することができる。
【０１０７】
ここで、複数の処理階層において共通の処理対象範囲を含むか否かに拘らず、複数の処理要求のそれぞれにおいてキュー構造もしくはスタック構造を採用するのがよい。また、本実施形態特有のメモリ構造として、ＯＳＩやＴＣＰ／ＩＰの処理階層モデルにおいて、同一階層であるか異なる階層であるかを問わず、異なる処理階層の複数の処理要求において共通の処理対象範囲を含む場合、その対象となる複数の処理要求について、キュー構造もしくはスタック構造を採るようにする。何れの場合も、特に、キュー構造が好ましい。
【０１０８】
図９は、各処理階層の個々の処理要求Ｂ００についてキュー構造を採用したコマンドディスクリプタＢ１０を構成しつつ、複数の処理要求において共通の処理対象範囲を含む場合に、それら処理要求もキュー構造を採用した場合のメモリ構造（以下コマンドディスクリプタキューともいう）Ｂ２０とする場合の一例を示している。
【０１０９】
なお、本明細書における処理階層とは、ＯＳＩ参照モデルやＴＣＰ／ＩＰの通信プロトコルの階層とは異なる概念である。たとえば、図１０に示すように、セキュリティプロトコルとしてＩＰＳｅｃを採用しつつ、通信プロトコルとしてＴＣＰ／ＩＰ，ＩＰｖ４を採用する場合、ＯＳＩ参照モデルやＴＣＰ／ＩＰのプロトコルにおける同一階層に位置していても、ＩＰＳｅｃ処理要求と、ＩＰヘッダのチェックサム処理要求とは、異なる処理階層に位置する。
【０１１０】
なお、ＥＳＰフォーマットの場合には、ＩＰＳｅｃ処理要求には、セキュリティ処理として、秘匿処理および認証処理の少なくとも一方を含み得るもので、その両者もしくは何れか一方のみの処理としてよい。一方、ＡＨフォーマットの場合には、ＩＰＳｅｃ処理要求には、セキュリティ処理として、少なくとも認証処理を含み、必要に応じて秘匿処理を行なうようにしてもよく、秘匿処理はオプションである。
【０１１１】
＜データ処理装置の構成例＞
図１１は、図１に示したコンピュータ装置１に備えられているデータ処理装置３の詳細な構成例を示したブロック図である。
【０１１２】
図示するように、データ処理装置３は、データ処理部２４０に、共通鍵暗号処理や公開鍵暗号処理を利用した暗号化処理や復号化処理を行なう秘匿処理部（Crypto Block）２４２、一方向性ハッシュ関数を利用した認証処理（完全性保証処理）を行なう認証処理部（Digest Block）２４４、ヘッダに対するチェックサム処理を行なうチェックサム処理部（CheckSum Block）２４６、並びに、セレクタ２５０，２５２を備えている。
【０１１３】
秘匿処理部２４２と認証処理部２４４とによりセキュリティ処理部２４８が構成される。また、認証処理部２４４とチェックサム処理部２４６とにより同一性確認処理部２４９が構成される。
【０１１４】
認証処理部２４４は、ハッシュ関数（Hash Function ；かき混ぜ関数）を用いて、送信者がある任意の長さの通常のメッセージ（文字列が並んだ平文）を送信する際に、このメッセージを一定の固定長の文字列（ビット列）に圧縮した固定長のビット列からなるダイジェスト（要約；ハッシュ符号ともいう）を作成する。
【０１１５】
たとえば、ＩＰＳｅｃのＥＳＰフォーマットもしくはＡＨフォーマットにおいては、ＩＣＶ（Integrity Check Value ）を計算しておく。ＩＣＶは秘密対称鍵の一例であるＨＭＡＣ−ＭＤ５−９６やＨＭＡＣ−ＳＨＡ−１−９６などの鍵付きハッシュ関数を使用して計算した、メッセージの完全性検査用認証値であり、得られた鍵付きハッシュ値から元のメッセージを知ることはできず、また秘密対称鍵を知らなければメッセージから鍵付きハッシュ値を計算することもできないようになっている。
【０１１６】
ここで、ＥＳＰフォーマットでは、認証（完全性保証）対象範囲は、ＥＳＰヘッダからＥＳＰトレーラまでの暗号ペイロードを含む部分になる。これに対して、ＡＨフォーマットは、パケットのほぼ全体を認証（完全性保証）対象範囲とするＩＣＶ（完全性保証用認証値）を付加することで、転送用外側ＩＰヘッダまで含めたパケットほぼ全体の完全性を保証するようになっている。
【０１１７】
また、ＳＳＬ／ＴＬＳにおいては、認証データとして、メッセージ認証コードＭＡＣ（Message Authentication Code ）を利用する。このＭＡＣ値は、ＩＰＳｅｃフォーマットの認証コードＩＣＶと、仕様や具体的な計算方法などは異なるが、基本的には同じ機能のもので、両方とも認証データになり、その差は、実施形態の適用に際して、影響を及ぼさない。
【０１１８】
チェックサム処理部２４６は、ヘッダ情報の完全同一性を検証する。たとえば、ＴＣＰ／ＩＰでの通信時には、ヘッダ部とデータ部を処理対象範囲としてチェックサムを計算することで、データの信頼性を保証する。また、ＩＰｖ４での通信時には、ＩＰヘッダフォーマットに含まれるヘッダチェックサムを計算する。
【０１１９】
制御部２６０は、バスＩＦ部２６２、メモリ制御部の一例であるＤＭＡコントローラ部２６４、およびエンジン部２００全体の動作を制御する指示制御部２６６を備えている。
【０１２０】
本実施形態では、メモリ部１２０は、内部バス１８０に接続されており、同じく内部バス１８０に接続された中央演算制御処理部１１０からの指示に基づいて、ハッシュ処理、共通鍵暗号処理や公開鍵暗号処理を利用した秘匿処理、あるいはチェックサム処理をエンジン部２００にて実行するべく、処理対象データに対する処理内容の指示と、処理対象データを指示する情報と、処理対象データを、メモリ部１２０のＲＡＭ１２４における所定の領域に格納する。
【０１２１】
指示制御部２６６は、処理対象データに対する処理内容の指示と、処理対象データを指示する情報と、処理対象データを解析し、中央演算制御処理部１１０からの要求を実行するために、ＤＭＡコントローラ部２６４に対してデータの読出指示ＣＮ１を与えるとともに、秘匿処理部２４２、認証処理部２４４、およびチェックサム処理部２４６の何れかについての選択指示ＣＮ２，ＣＮ３を対応するセレクタ２５０，２５２に対して与える。
【０１２２】
バスＩＦ部２６２を介して内部バス１８０に接続されたＤＭＡコントローラ部２６４は、メモリ部１２０のＲＡＭ１２４に格納された処理対象データに対する処理内容の指示（コマンド）と、処理対象データの格納先を示す情報と、処理対象データの転送とを、指示制御部２６６に対して行なう。
【０１２３】
セレクタ２５０は、指示制御部２６６からの選択指示ＣＮ２に基づいて、秘匿処理部（CryptD Block）２４２とハッシュ処理部（Digest Block）２４４とチェックサム処理部（Checksum Block）２４６の何れかを選択して指示制御部２６６の出力を入力する。
【０１２４】
セレクタ２５２には秘匿処理部２４２と認証処理部２４４とチェックサム処理部２４６の各出力が入力されている。セレクタ２５２は、指示制御部２６６からの選択指示ＣＮ３に基づいて、それぞれの機能部（モジュール）２４２，２４４，２４６での演算結果の何れかを選択して、その選択出力を指示制御部２６６に入力する。
【０１２５】
＜処理の概要＞
図１２および図１３は、上記構成のデータ処理装置３における処理の概要を説明する図である。ここで、図１２は、複数の処理階層において共通の処理対象範囲を含む場合に対処した処理方法の概要を説明する図である。図１３は、複数の処理階層において共通の処理対象範囲を含む場合に対処した処理手順の一例を示すフローチャートである。
【０１２６】
なおここでは、図６に示したコマンドディスクリプタＢ１０を、図９に示したように、コマンドディスクリプタキューＢ２０として、図４に示したように、メインメモリとしてのＲＡＭ１２４のコマンドディスクリプタ領域１２７に格納するものとして説明する。
【０１２７】
従来技術においては、複数の処理階層において共通の処理対象範囲（通信ではパケット単位が一般的）を含む場合であっても、各処理階層において処理要求がある都度、処理対象データに対する処理内容の指示と、処理対象データを指示する情報を生成し、アクセラレータシステムを起動していた。
【０１２８】
これに対して、本実施形態では、先ず中央演算制御処理部１１０の処理対象範囲判定部１１６は、複数の処理階層において共通の処理対象範囲を含むか否かを判定する（Ｓ１００）。
【０１２９】
この判定は、装置を複数のプロトコルに対応するように構成する場合に必要となるものであり、たとえば、送信側と受信側との間におけるネゴシエーションの過程で、どのような通信プロトコルを使用するかで判定可能である。よって、本願発明が適用可能な単一の通信プロトコルのみに対応するシステムとする場合には、この判定処理や処理対象範囲判定部１１６は不要である。
【０１３０】
中央演算制御処理部１１０は、ステップＳ１００の判定結果が“含む”場合、上流側における共通部分の処理を即時には行なわず、共通の処理対象範囲に対して行なう処理を保留する。そして、ハッシュ関数を利用した認証処理、共通鍵暗号処理や公開鍵暗号処理を利用した秘匿処理、あるいはヘッダに対するチェックサム処理が可能なネットワーク用のデータ処理装置３と、メモリ部１２０の主記憶部（メインメモリ）として機能するＲＡＭ１２４との間で、複数の処理階層のそれぞれの、共通処理部分を含む処理対象データに対する一連の処理内容の指示（コマンドデータ）と、処理対象データを指示する情報（アドレスデータ）と、処理対象データとが、下流側の処理階層においてエンジン部２００に一括転送されるようにする。そして、下流側の処理階層にてエンジン部２００を起動してから、未処理としておいた部分を含む上流側の処理階層の部分と、下流側の処理階層の部分とを、順次実行する。
【０１３１】
具体的には、先ず、処理対象範囲判定部１１６は、対象となる複数の処理要求の上流側の処理要求ではその共通領域に対する処理を未処理として、対象となる複数の処理要求の下流側の処理要求についての処理時に、その対象となる上流側および下流側の各処理要求にて発生する処理要求（コマンド）と、処理対象データの格納先を示す情報とを下流側の処理階層にて一括してエンジン部２００に通知するべきものと判断する（Ｓ１００−ＹＥＳ，Ｓ１０１）。
【０１３２】
この場合、処理手順制御部１１８は、その上流側の処理時には、処理対象のパケットの共通領域に対する処理を即時には行なわず（未処理として）、またこの上流側の処理階層においては、データ処理装置３に対して発生する処理要求と処理対象データの転送を行なわない（Ｓ１０２）。その代りに、この処理階層にてエンジン部２００に対して発生する処理要求と処理対象データの格納先を示す情報とを対応付けたコマンドディスクリプタを生成して（Ｓ１０６）、メインメモリとしてのＲＡＭ１２４のコマンドディスクリプタ領域１２７に格納する（Ｓ１０８）。
【０１３３】
たとえば、トランスポート層とインターネット層においてエンジン部２００を使用する場合において、処理対象データ中に共通する処理対象領域を含む場合、送信処理時には、図１２中にＡ５に示すように、一連の処理における上流側となるトランスポート層では、エンジン部２００に対しては、処理要求と処理対象データの転送を行なわない。
【０１３４】
この後、中央演算制御処理部１１０の処理手順制御部１１８は、下流側の処理階層の処理へ移行する（Ｓ１１０）。下流側の処理階層において、処理手順制御部１１８は、先ず、この処理階層にてエンジン部２００に対して発生する処理要求と処理対象データの格納先を示す情報とを対応付けたコマンドディスクリプタを生成して（Ｓ１１６）、メインメモリとしてのＲＡＭ１２４のコマンドディスクリプタ領域１２７に格納する（Ｓ１１８）。この後、処理手順制御部１１８は、エンジン部２００の処理を起動する（Ｓ１２０）。
【０１３５】
この際には、ステップＳ１０８にてコマンドディスクリプタ領域１２７に格納されている部分に引き続いて、当該下流側の処理階層分を格納することで、図９に示したように、コマンドディスクリプタのキュー構造（コマンドディスクリプタキューＢ２０）を作る。
【０１３６】
処理手順制御部１１８から起動指示を受けたエンジン部２００において、ＤＭＡコントローラ部２６４は、メインメモリとしてのＲＡＭ１２４のコマンドディスクリプタ領域１２７にコマンドディスクリプタキューＢ２０として格納されているコマンドディスクリプタＢ１０を読み出して解析し（Ｓ１３０）、解析結果に基づく手順に従って処理対象データをＲＡＭ１２４の処理データ格納領域１２５から読み出す（Ｓ１３２）。たとえば、図１２中にＡ６に示すように、一連の処理における下流側となるインターネット層において、上流側のトランスポート層における処理要求も含めてエンジン部２００に対して、処理要求と処理対象データの転送を行なう。
【０１３７】
また、指示制御部２６６は、解析結果に基づいて、セレクタ２５０，２５２に対して選択指示を与える（Ｓ１３４）。セレクタ２５０はその選択指示に従って、秘匿処理部２４２と認証処理部２４４とチェックサム処理部２４６の中から該当する機能部を選択して、指示制御部２６６のデータレジスタ２６８ｃに保持されている処理対象データを入力し、処理を行なわせる（Ｓ１３６）。
【０１３８】
秘匿処理部２４２と認証処理部２４４とチェックサム処理部２４６とは、入力されたデータに対して、所定の順に所定の処理を行ない（Ｓ１４０）、演算結果をセレクタ２５２に渡す（Ｓ１４８）。
【０１３９】
セレクタ２５２は、エンジン部２００のデータ処理部２４０における各機能部２４２，２４４，２４６から演算結果を受け取ると、指示制御部２６６からの選択指示に基づいて、秘匿処理部２４２と認証処理部２４４とチェックサム処理部２４６の中から該当する機能部を選択して、その選択出力を指示制御部２６６に入力する（Ｓ１５０）。
【０１４０】
指示制御部２６６は、引き続き、その処理要求を実行するコマンドディスクリプタＢ１０内にコマンドが存在する場合には、ステップＳ１３０に戻って、次のコマンドに応じた処理を行なうよう、セレクタ２５０，２５２に対して選択指示を与える（Ｓ１５２−ＹＥＳ）。また、１つのコマンドディスクリプタＢ１０内の全コマンドに対する処理が終わったら、コマンドディスクリプタキューＢ２０内に次のコマンドディスクリプタＢ１０がないかを確認する（Ｓ１５４）。存在する場合には、ステップＳ１３０に戻って、次のコマンドディスクリプタＢ１０内の各コマンドに応じた処理を行なうよう、セレクタ２５０，２５２に対して選択指示を与える（Ｓ１５４−ＹＥＳ）。
【０１４１】
処理要求を実行する後続のコマンドやコマンドディスクリプタＢ１０が存在しない場合には（Ｓ１５２−ＮＯ，Ｓ１５４−ＮＯ）、指示制御部２６６は、ＤＭＡコントローラ部２６４に対して、処理済みデータをメモリ部１２０におけるＲＡＭ１２４の処理データ格納領域１２５に格納するよう指示を出すとともに（Ｓ１５６）、処理完了を中央演算制御処理部１１０に通知し処理を終了させる（Ｓ１５８）。ＤＭＡコントローラ部２６４は、処理済みデータをＲＡＭ１２４の処理データ格納領域１２５に格納する。
【０１４２】
一方、複数の処理階層において共通の処理対象範囲を含まない場合には、処理手順制御部１１８は、通常通り、それぞれの処理階層において、データ処理装置３に対して発生する処理要求と処理対象データの格納先を示す情報とを対応付けたコマンドディスクリプタを生成して（Ｓ２１６）、メインメモリとしてのＲＡＭ１２４のコマンドディスクリプタ領域１２７に格納する（Ｓ１１８）。この後、処理手順制御部１１８は、エンジン部２００の処理を起動する（Ｓ１２０）。以下、上述と同様に処理を実行する。
【０１４３】
ここで、コマンドディスクリプタキューＢ２０にはコマンドディスクリプタＢ１０がキュー構造で格納されており、指示制御部２６６は、読み出したコマンド順に、秘匿処理部２４２、認証処理部２４４、あるいはチェックサム処理部２４６が、コマンドで指示されている処理を実行するよう、セレクタ２５０，２５２に対して選択指示を出す。
【０１４４】
したがって、エンジン部２００のデータ処理部２４０における各機能部２４２，２４４，２４６は、下流側の処理階層にて起動指示を受けたときに、ステップＳ１０２にて未処理としておいた上流側の処理階層の部分と、下流側の処理階層の部分とを、順次実行することになる。
【０１４５】
以上説明したように、本実施形態に依れば、ハッシュ関数を利用した認証処理、共通鍵暗号処理や公開鍵暗号処理を利用した秘匿処理、あるいはヘッダに対するチェックサム処理が可能なネットワーク用のデータ処理装置３に対して、複数の処理階層において共通の処理対象範囲を含む場合には、パケットの一部を未処理として、次の処理階層へ処理を移行してから対象となる複数の処理階層について、処理対象データに対する処理内容の指示（コマンドデータ）と、処理対象データを指示する情報（アドレスデータ）と、処理対象データとを、一括転送するようにした。
【０１４６】
このため、ハードウェア（エンジン部２００）とソフトウェア（中央演算制御処理部１１０）の協調動作を行なう場合において、ハードウェアとソフトウェアとの間を行き来する処理を減らし、結果としてシステム全体の処理能力を向上させることができ、たとえばインターネットに代表される通信システムへの適用に効果を発する。
【０１４７】
たとえば、ハッシュ関数を利用した認証処理、共通鍵暗号処理や公開鍵暗号処理を利用した秘匿処理などのセキュリティ処理と、ヘッダに対するチェックサム処理に関する処理の階層ごとに発生した要求を、エンジン部２００に対して随時発行しあるいは処理対象データを随時転送する必要がなくなる。よって、その都度のソフトウェア処理の介入がなくなる。また、内部バス１８０を有効利用できるし、パケット単位での処理速度を最適化することができる。
【０１４８】
また、メモリの利用法として、特定の処理階層にて発生する処理対象データに対する処理内容の指示（コマンドデータ）と、処理対象データを指示する情報（アドレスデータ）と、処理対象データとを、コマンドディスクリプタキューＢ２０として先入れ先出し方式（ＦＩＦＯ）といった簡単な構成で一連の処理を実行するキュー方式でのメモリ格納手法を採用しつつ、ＤＭＡコントローラ部２６４がＤＭＡ方式でデータ転送を行なう方式を採用した。
【０１４９】
このため、処理対象データに対しての一連の処理内容の指示と、処理対象データを指示する情報が纏めてコマンドディスクリプタキューＢ２０に組み込まれているため、ＤＭＡコントローラ部２６４のＤＭＡ方式によるデータ転送が開始されると同時に、一切の中央演算制御処理部１１０（たとえばＣＰＵなど）による介在が不要となり、ＣＰＵ負荷の低減と、簡単な構成にて、一連の処理を実行することができる。
【０１５０】
＜適用プロトコル＞
以上のように、パケット単位での処理速度の最適化とバス帯域の高効率化を図ることのできる、データ処理装置３への重複した転送データの削減方式について、基本的な処理手法を説明したが、上記で示した処理は、様々なセキュリティプロトコルに適用することができる。
【０１５１】
たとえば、リアルタイムデータの送信を行うプロトコルＲＴＰ（Real time protocol）にセキュリティ機能を付加するSRTP(Secure RTP)や、クライアントとサーバとの間で相互認証をできるようにし、認証され暗号化された接続を確立するようにすることでトランスポートレイヤのセキュリティを実現するＳＳＬ（Secure Sockets Layer）、このＳＳＬプロトコルをベースに改良されＩＥＴＦ（Internet Engineering Task Force ）によって標準化されたＴＬＳ（Transport Layer Security）に適用することができる。
【０１５２】
あるいは、暗号化アルゴリズムにＤＥＳ／３ＤＥＳ／ＡＥＳなどのブロック暗号アルゴリズムを使ったＩＰＳｅｃ（Internet Protocol Security）における暗号ペイロードＥＳＰ（Encapsulating Security Payload）や、パケットのほぼ全体を対象としてＩＣＶ（完全性保証用認証値）を付加することで、転送用外側ＩＰヘッダまで含めたパケットほぼ全体の完全性を保証するＡＨフォーマットにも適用することができる。
【０１５３】
また、有線通信におけるプロトコルに限らず、無線通信におけるプロトコルにも適用可能であり、たとえば、ＩＥＥＥ（Institute of Electrical and Electronics Engineers, Inc. ；米国電気電子学会）によって標準化された、ワイヤレス機器や無線ＬＡＮなどによる情報伝達のセキュリティを守るためのプロトコルであるＷＥＰ（Wired Equivalent Privacy）や、Ｗｉ−Ｆｉ  Ａｌｌｉａｎｃｅが規格を策定したＷＥＰに代わる暗号化規格であるＷＰＡ（Wi-Fi Protected Access）などにも適用可能である。
【０１５４】
なお、現段階では、ＩＥＥＥでの規格化作業が終了していないが、ＩＥＥＥ８０２．１１ｉで制定されるセキュリティプロトコルにも、上記実施形態で説明した処理を適用することが可能である。
【０１５５】
複数の処理階層において共通の処理対象範囲を含むか否かは、通信プロトコルと、それに適用されるセキュリティプロトコルとの関係で決まるもので、たとえば、アプリケーションにより生成されたデータ部分を含む場合や通信プロトコル階層におけるヘッダ情報部分を含む場合がある。また、この共通の処理対象範囲は、異なるセキュリティプロトコルの処理間において形成される場合もあれば、暗号化処理、復号化処理、および認証処理といったセキュリティ処理の何れかの処理と、チェックサム処理との間において形成される場合もある。
【０１５６】
何れにおいても、上記で説明したように、複数の処理階層において共通の処理対象範囲を含む場合には、上流側の処理階層では共通の処理対象範囲についての処理を未処理として、下流の処理階層へ処理を移行してから、上流側と下流側の双方について処理を行なうための処理内容の指示（コマンドデータ）や処理対象データの格納場所を示すアドレスデータなどをエンジン部２００に一括転送するようにすることで、ハードウェア（エンジン部２００）とソフトウェア（中央演算制御処理部１１０）の間を行き来する処理を減らし、システム全体の処理能力を向上させる。
【０１５７】
ここで、処理対象データに対する各々の処理を階層化した階層モデルで表し、プロトコル階層ごとに独立して所定の処理を順次行なうことで通信のための一連の処理を実行するようにする場合、データの流れは、送信側では上位のプロトコル階層から下位のプロトコル階層に、また受信側では下位のプロトコル階層から上位のプロトコル階層に流れる。また、送信側の各プロトコル階層では、通信の制御に必要なデータをヘッダとして付加し、受信側では、そのヘッダを順に解釈していくことで通信を行なう。
【０１５８】
よって、複数の処理階層において共通の処理対象範囲を含む場合に、それぞれの処理が異なるプロトコル階層に含まれる場合には、送信処理時には、上流側の処理とは上位のプロトコル階層の処理であり、下流側の処理とは下位のプロトコル階層の処理である一方、受信処理時には、上流側の処理とは下位のプロトコル階層の処理であり、下流側の処理とは上位のプロトコル階層の処理である。
【０１５９】
なお、図１０に示したように、同一のプロトコル階層内に複数の処理階層を含む場合があり、この場合には、通常通り、上流側の処理とは上流側の処理階層の処理であり、下流側の処理とは下位側の処理階層である。
【０１６０】
以下に、具体的な通信プロトコルやセキュリティプロトコルの事例を用いて説明する。
【０１６１】
＜具体的な事例；その１＞
図１４〜図１７は、上記実施形態で説明したデータ処理を適用するプロトコルの具体例（第１例）を説明する図である。この第１例は、ＩＰＳｅｃ（ＥＳＰ）トランスポートモードにおける秘匿処理と認証処理の場合を示している。
【０１６２】
図１４（Ａ）は、トランスポートモードでＩＰＳｅｃ（ＥＳＰ）化されたＩＰｖ４パケットの構成における処理範囲を示し、図１４（Ｂ）は、トランスポートモードでＩＰＳｅｃ（ＥＳＰ）化されたＩＰｖ６パケットの構成における処理範囲を示している。図１５は、処理階層ごとに発生する要求を、図６に示したと同様に、コマンドディスクリプタに対して格納する方法と、図９に示したと同様に、コマンドディスクリプタをキュー構造をとるようにメモリへ格納（転送）する手法を説明する図である。また、図１６および図１７は、ＩＰＳｅｃ（ＥＳＰ）トランスポートモードにおけるセキュリティ処理の処理手順の一例を示したフローチャートである。
【０１６３】
ここで、ＩＰＳｅｃ（ＥＳＰ）トランスポートモードにおいては、図１４に示すように、領域Ｃ５ａ，Ｃ５ｂが認証（完全性保証）の対象範囲（認証対象領域）であり、インターネット層としてのＩＰ層で、ＥＳＰヘッダ、終点ヘッダ（ＩＰｖ６の場合のオプション）、およびＥＳＰトレーラに対しては、ハッシュ処理を利用した認証処理を行なう。
【０１６４】
また、ハッチングで示した領域Ｃ６ａ，Ｃ６ｂが秘匿処理（暗号化）の対象となる領域（秘匿対象領域）であり、ＴＣＰヘッダ、データ、およびＥＳＰトレーラに対して、共通鍵暗号処理や公開鍵暗号処理を利用した秘匿処理を行なう。また、トランスポート層としてのＴＣＰ層やＵＤＰ層では、ＴＣＰヘッダやＵＤＰヘッダ（以下代表してＴＣＰヘッダで記述する）とアプリケーションで生成されたデータに対してチェックサム処理を行なう。このため、メインシステム１００とエンジン部２００との間では、ＴＣＰヘッダ部分とデータ部分の重複したデータ転送が生じる（図３０参照）。
【０１６５】
よって、処理対象範囲判定部１１６は、複数の処理階層において共通の処理対象範囲を含むか否かを判定し（Ｓ２００，Ｓ３００）、トランスポート層とＩＰ層でのＴＣＰヘッダ部分とデータ部分とが共通の処理対象範囲であり、これらの階層の処理においては、処理対象データに対する処理内容の指示（コマンドデータ）と、処理対象データを指示する情報（アドレスデータ）と、処理対象データとが、データ処理装置３のエンジン部２００に一括転送されるようにする。
【０１６６】
具体的には、パケット送信時には、図１６に示すフローチャートに従って処理を行なう。中央演算制御処理部１１０において、先ず、処理対象範囲判定部１１６は、エンジン部２００へ処理階層ごとに発生する、トランスポート層のチェックサム処理要求Ｂ０３およびＩＰ層のＩＰＳｅｃ（ＥＳＰ）処理要求Ｂ０４と、それぞれの処理対象データとを、ＩＰ層にて一括転送すると判定する（Ｓ２０１）。
【０１６７】
これを受けて、処理手順制御部１１８は、ネットワークプロトコルスタックでのトランスポート層のＴＣＰ層においてチェックサム処理要求Ｂ０３に対するエンジン部２００での処理を未処理とし（Ｓ２０２）、ＴＣＰヘッダ（図１４に示したＣ２，Ｃ４）を生成する（Ｓ２０４）。そして、図１５に示したチェックサムコマンドディスクリプタＢ１３を生成して（Ｓ２０６）、メインメモリとしてのＲＡＭ１２４のたとえばコマンドディスクリプタキューＢ２１ａに“チェックサムコマンドディスクリプタＢ１３”として格納する（Ｓ２０８）。
【０１６８】
この後、処理手順制御部１１８は、インターネット層であるＩＰ層への処理へ移行し（Ｓ２１０）、セキュリティ処理要求としてのＩＰＳｅｃ（ＥＳＰ）処理要求Ｂ０４時には、秘匿処理用および認証処理用のセキュリティコマンドディスクリプタＢ１４を生成し（Ｓ２１６）、メインメモリとしてのＲＡＭ１２４のコマンドディスクリプタ領域１２７に格納する（Ｓ２１８）。そして、この段階で、中央演算制御処理部１１０は、エンジン部２００の動作を起動する（Ｓ２２０）。
【０１６９】
この際には、ステップＳ２０８にてコマンドディスクリプタ領域１２７に格納されている部分Ｂ１３に引き続いて、当該下流側のＩＰ層分Ｂ１４を格納することで、図１５に示したように、コマンドディスクリプタのキュー構造（コマンドディスクリプタキューＢ２１ａ）を作る。
【０１７０】
中央演算制御処理部１１０の処理手順制御部１１８から起動指示を受けたエンジン部２００において、ＤＭＡコントローラ部２６４は、メインメモリとしてのＲＡＭ１２４にコマンドディスクリプタキューＢ２１ａとして格納されているチェックサムコマンドディスクリプタＢ１３，Ｂ１４を解析し（Ｓ２３０）、処理対象データをＲＡＭ１２４から読み出すとともに（Ｓ２３２）、セレクタ２５０，２５２に対して選択指示を与える（Ｓ２３４）。以下、ステップＳ１３６〜Ｓ１５８と同様である（Ｓ２３６〜Ｓ２５８）。
【０１７１】
ここで、キュー構造メモリ（コマンドディスクリプタキューＢ２１ａ）には、チェックサムコマンドディスクリプタＢ１３と、セキュリティコマンドディスクリプタＢ１４とが、順にキューイングされている。よって、指示制御部２６６は、読み出したコマンド順に、秘匿処理部２４２、認証処理部２４４、およびチェックサム処理部２４６が、コマンドで指示されている処理を実行するよう、セレクタ２５０，２５２に対し選択指示を出す。
【０１７２】
したがって、エンジン部２００のデータ処理部２４０における各機能部２４２，２４４，２４６は、ステップＳ２０２にて未処理としておいたＴＣＰヘッダとデータとを処理対象とするチェックサム処理をチェックサム処理部２４６にて（Ｓ２４２）、またＩＰ層のＩＰＳｅｃ（ＥＳＰ）によるセキュリティ処理（暗号化処理および認証処理）をセキュリティ処理部２４８にて、順次実行し、演算結果をセレクタ２５２に渡すことになる（Ｓ２４０，Ｓ２４８）。
【０１７３】
すなわち、ＩＰＳｅｃ（ＥＳＰ）適用のデータ送信時には、ＴＣＰ／ＵＤＰ層でのチェックサム処理は即時には行なわず、ＩＰＳｅｃ（ＥＳＰ）処理時にエンジン部２００へのデータ転送を行なった時点で、ＴＣＰ／ＵＤＰ層のチェックサム処理を行ない、続いてＩＰＳｅｃ（ＥＳＰ）フォーマットに従った暗号化処理と認証処理とを行なう。
【０１７４】
また、本構成において、パケット受信時には、図１７に示すフローチャートに従って処理を行なう。中央演算制御処理部１１０において、先ず、処理対象範囲判定部１１６は、エンジン部２００へ処理階層ごとに発生する、ＩＰ層のＩＰＳｅｃ（ＥＳＰ）処理要求Ｂ０４およびトランスポート層のチェックサム処理要求Ｂ０３と、それぞれの処理対象データとを、ＴＣＰ層にて一括転送すると判定する（Ｓ３０１）。
【０１７５】
これを受けて、処理手順制御部１１８は、ネットワークプロトコルスタックでのインターネット層の処理時には、エンジン部２００によるＩＰＳｅｃ（ＥＳＰ）処理を未処理とさせる（Ｓ３０２）。このため、ＩＰＳｅｃ（ＥＳＰ）処理のための秘匿処理用および認証処理用のセキュリティコマンドディスクリプタＢ１４を生成して（Ｓ３０６）、メインメモリとしてのＲＡＭ１２４のコマンドディスクリプタキューＢ２１ｂに、“コマンドディスクリプタＢ１４”として格納する（Ｓ３０８）。
【０１７６】
この後、処理手順制御部１１８は、トランスポート層への処理へ移行し（Ｓ３１０）、チェックサム処理要求Ｂ０３時には、チェックサムコマンドディスクリプタＢ１３を生成し（Ｓ３１６）、ＲＡＭ１２４のコマンドディスクリプタ領域１２７に格納する（Ｓ３１８）。そして、この段階で、中央演算制御処理部１１０は、エンジン部２００の動作を起動する（Ｓ３２０）。
【０１７７】
この際には、ステップＳ３０８にてコマンドディスクリプタ領域１２７に格納されている部分Ｂ１４に引き続いて、当該下流側のトランスポート層分Ｂ１３を格納することで、図１５に示したように、コマンドディスクリプタのキュー構造（コマンドディスクリプタキューＢ２１ｂ）を作る。
【０１７８】
以下、送信時と同様にして、中央演算制御処理部１１０から起動指示を受けたエンジン部２００において、ＤＭＡコントローラ部２６４は、メインメモリとしてのＲＡＭ１２４に格納されているコマンドディスクリプタを解析し（Ｓ３３０）、処理対象データをＲＡＭ１２４から読み出す（Ｓ３３２）。以下、ステップＳ１３６〜Ｓ１５８と同様である（Ｓ３３６〜Ｓ３５８）。
【０１７９】
ここで、キュー構造メモリ（コマンドディスクリプタキューＢ２１ｂ）には、セキュリティコマンドディスクリプタＢ１４と、チェックサムコマンドディスクリプタＢ１３とが、順にキューイングされているので、エンジン部２００のデータ処理部２４０における各機能部２４２，２４４，２４６は、ステップＳ２３０〜Ｓ２５４と同様にして、指示制御部２６６およびセレクタ２５０，２５２による制御の元で、ＩＰＳｅｃ（ＥＳＰ）によるセキュリティ処理（復号化処理および認証処理）を実行した後（Ｓ３４２）、ＴＣＰヘッダとデータとを処理対象とするチェックサム処理を実行し（Ｓ３４４）、演算結果をセレクタ２５２に渡すことになる（Ｓ３４８）。
【０１８０】
すなわち、ＩＰＳｅｃ（ＥＳＰ）適用のデータ受信時には、ＩＰＳｅｃ（ＥＳＰ）フォーマットに従った復号化処理と認証処理とが完了し、セキュリティポリシーの検証が終了した段階で、次ヘッダ番号を参照しＴＣＰヘッダ（通常は、次ヘッダはＴＣＰ／ＵＤＰ）を検索する。そして、この検索が終了した時点で、チェックサムを計算、検証し、処理終了となる。
【０１８１】
このように、第１例では、ＴＣＰ／ＩＰかつＩＰＳｅｃ（ＥＳＰ）トランスポートモードの通信において、共通の処理対象範囲となるトランスポート層とＩＰ層でのＴＣＰヘッダ部分とデータ部分とについては、送信処理時の下流側であるＩＰ層、また受信処理時の下流側であるＴＣＰ層の処理時に、上流側と下流側の双方の処理用データを一括してエンジン部２００にデータ転送して、ＴＣＰ層に対するチェックサム処理とＩＰＳｅｃ（ＥＳＰ）に基づくセキュリティ処理を行なうようにした。このため、ＴＣＰヘッダ部分とデータ部分の重複したデータ転送を防止でき、セキュリティ処理とヘッダに対するチェックサム処理に関わるデータ処理のアクセラレート効果を最大限に引き出すことが可能となる。
【０１８２】
＜具体的な事例；その２＞
図１８〜図２１は、上記実施形態で説明したデータ処理を適用するプロトコルの他の具体例（第２例）を説明する図である。この第２例は、ＳＳＬ／ＴＬＳプロトコルにおける秘匿処理と認証処理の場合を示している。
【０１８３】
ここで、図１８（Ａ）はＳＳＬ／ＴＬＳ化されたＩＰｖ４パケットの構成における処理範囲を示し、図１８（Ｂ）はＳＳＬ／ＴＬＳ化された化されたＩＰｖ６パケットの構成における処理範囲を示している。また図１８（Ｂ）は、ＳＳＬ／ＴＬＳ化された化されたＩＰｖ６パケットの構成を示す。なおここでは、ブロック暗号を使用するものとする。
【０１８４】
図１９は、処理階層ごとに発生する要求を、図６に示したと同様に、コマンドディスクリプタに対して格納する方法と、図９に示したと同様に、コマンドディスクリプタをキュー構造をとるようにメモリへ格納（転送）する手法を説明する図である。
【０１８５】
また、図２０および図２１は、ＳＳＬ／ＴＬＳにおけるセキュリティ処理の処理手順の一例を示したフローチャートである。ＳＳＬとＴＬＳでの処理時において、本実施形態では大きな違いは存在しないので、同一の処理をすればよい。
【０１８６】
図１８において、ハッチングで示した領域Ｄ４ａ，Ｄ４ｂが秘匿処理（暗号化）の対象となる領域（秘匿対象領域）である。また、領域Ｄ６ａ，Ｄ６ｂが認証（完全性保証）の対象範囲（認証対象領域）である。なお、ＩＰｖ４，ＩＰｖ６の何れにおいても、ＴＣＰヘッダＤ２と、暗号化によって隠蔽される情報部分であるＣｉｐｈｅｒＴｅｘｔ領域Ｄ３との間には、一部に非対称領域Ｄ５を含む。
【０１８７】
ここで、ＳＳＬ／ＴＬＳプロトコルにおいては、生成されたデータに対してＳＳＬ化してＳＳＬ  Ｃｉｐｈｅｒｔｅｘｔデータヘ変換してトランスポート層へデータを引き渡し、トランスポート層としてのＴＣＰ層でチェックサム処理を行なう。このため、メインシステム１００とエンジン部２００との間では、データ部分の重複したデータ転送が生じる（図３１参照）。
【０１８８】
よって、処理対象範囲判定部１１６は、複数の処理階層において共通の処理対象範囲を含むか否かを判定し（Ｓ４００，Ｓ５００）、アプリケーション層とトランスポート層でデータ部分が共通の処理対象範囲であり、これらの階層の処理においては、処理対象データに対する処理内容の指示（コマンドデータ）と、処理対象データを指示する情報（アドレスデータ）と、処理対象データとが、データ処理装置３のエンジン部２００に一括転送されるようにする。
【０１８９】
具体的には、パケット送信時には、図２０に示すフローチャートに従って処理を行なう。先ず、処理対象範囲判定部１１６は、エンジン部２００へ処理階層ごとに発生する、アプリケーション層のＳＳＬ化処理要求Ｂ０２およびトランスポート層のチェックサム処理要求Ｂ０３と、それぞれの処理対象データとを、トランスポート層にて一括転送すると判定する（Ｓ４０１）。
【０１９０】
これを受けて、処理手順制御部１１８は、ネットワークプロトコルスタックでのアプリケーション層のＳＳＬ／ＴＬＳ層において、秘匿処理（ここでは暗号化処理）および認証処理を未処理とし（Ｓ４０２）、ＳＳＬ／ＴＬＳ  ＣｉｐｈｅｒＴｅｘｔの雛形（たとえば図１８に示したＥ１）を生成しておく（Ｓ４０４）。よってここでは、図１８において、認証結果Ｅ２と、ハッチング部の暗号結果は未処理である。
【０１９１】
次に中央演算制御処理部１１０は、図１９に示したセキュリティコマンドディスクリプタＢ１２を生成して（Ｓ４０６）、メインメモリとしてのＲＡＭ１２４のコマンドディスクリプタキューＢ２２ａに、“コマンドディスクリプタＢ１２”として格納する（Ｓ４０８）。
【０１９２】
この後、中央演算制御処理部１１０は、トランスポート層のＴＣＰ層への処理へ移行し（Ｓ４１０）、チェックサム処理時に、図１９に示したチェックサムコマンドディスクリプタＢ１３を生成し（Ｓ４１６）、ＲＡＭ１２４のコマンドディスクリプタ領域１２７に格納する（Ｓ４１８）。そして、この段階で、中央演算制御処理部１１０は、エンジン部２００の動作を起動する（Ｓ４２０）。
【０１９３】
この際には、ステップＳ４０８にてコマンドディスクリプタ領域１２７に格納されている部分Ｂ１２に引き続いて、当該下流側のトランスポート層分Ｂ１３を格納することで、図１９に示したように、コマンドディスクリプタのキュー構造（コマンドディスクリプタキューＢ２２ａ）を作る。
【０１９４】
中央演算制御処理部１１０から起動指示を受けたエンジン部２００において、ＤＭＡコントローラ部２６４は、メインメモリとしてのＲＡＭ１２４にコマンドディスクリプタキューＢ２２ａとして格納されているコマンドディスクリプタＢ１２，Ｂ１３を解析し（Ｓ４３０）、処理対象データをＲＡＭ１２４から読み出すとともに（Ｓ４３２）、セレクタ２５０，２５２に対して選択指示を与える（Ｓ４３４）。以下、ステップＳ２３６〜Ｓ２５８と同様である（Ｓ４３６〜Ｓ４５８）。
【０１９５】
ここで、キュー構造メモリ（コマンドディスクリプタキューＢ２２ａ）には、ＳＳＬ処理用のセキュリティコマンドディスクリプタＢ１２とチェックサムコマンドディスクリプタＢ１３が順にキューイングされている。よって、セレクタ２５０はその手順に従って、秘匿処理部２４２と認証処理部２４４とチェックサム処理部２４６の何れかを選択して指示制御部２６６の出力を入力する（Ｓ４３６）。
【０１９６】
したがって、エンジン部２００のデータ処理部２４０における各機能部２４２，２４４，２４６は、指示制御部２６６およびセレクタ２５０，２５２による制御の元で、ＳＳＬ／ＴＬＳによるセキュリティ処理（暗号化処理および認証処理）をセキュリティ処理部２４８にて実行した後（Ｓ４４２）、ＴＣＰヘッダとデータとを処理対象とするチェックサム処理をチェックサム処理部２４６にて実行し（Ｓ４４４）、演算結果をセレクタ２５２に渡すことになる（Ｓ４４８）。
【０１９７】
また、本構成において、パケット受信時には、図２１に示すフローチャートに従って処理を行なう。中央演算制御処理部１１０において、先ず、処理対象範囲判定部１１６は、エンジン部２００へ処理階層ごとに発生する、トランスポート層のチェックサム処理要求Ｂ０３およびアプリケーション層のＳＳＬ処理要求Ｂ０２と、それぞれの処理対象データとを、アプリケーション層にて一括転送すると判定する（Ｓ５０１）。
【０１９８】
これを受けて、処理手順制御部１１８は、トランスポート層のＴＣＰ層でのチェックサム処理時に、図２６に示したチェックサム処理用のセキュリティコマンドディスクリプタＢ１３を生成し（Ｓ５０６）、メインメモリとしてのＲＡＭ１２４のコマンドディスクリプタキューＢ２２ｂに“コマンドディスクリプタＢ１３”として格納する（Ｓ５０８）。
【０１９９】
この後、中央演算制御処理部１１０は、アプリケーション層のＳＳＬ／ＴＬＳ層への処理へ移行し（Ｓ５１０）、ＳＳＬ／ＴＬＳセッションまたはコネクション上のパケットと認識した場合は（Ｓ５１２−ＹＥＳ）、セキュリティコマンドディスクリプタＢ１２を生成し（Ｓ５１６）、ＲＡＭ１２４のコマンドディスクリプタ領域１２７に格納する（Ｓ５１８）。そして、この段階で、エンジン部２００の動作を起動する（Ｓ５２０）。
【０２００】
この際には、ステップＳ５０８にてコマンドディスクリプタ領域１２７に格納されている部分Ｂ１３に引き続いて、当該下流側のアプリケーション層分Ｂ１２を格納することで、図１９に示したように、コマンドディスクリプタのキュー構造（コマンドディスクリプタキューＢ２２ｂ）を作る。
【０２０１】
中央演算制御処理部１１０から起動指示を受けたエンジン部２００において、ＤＭＡコントローラ部２６４は、メインメモリとしてのＲＡＭ１２４に格納されているコマンドディスクリプタを解析し（Ｓ５３０）、処理対象データをＲＡＭ１２４から読み出すとともに（Ｓ５３２）、セレクタ２５０，２５２に対して選択指示を与える（Ｓ５３４）。以下、ステップＳ３３６〜Ｓ３５８と同様である（Ｓ５３６〜Ｓ５５８）。
【０２０２】
たとえば、セレクタ２５２は、データ処理装置３のデータ処理部２４０における各機能部２４２，２４４，２４６から処理結果を受け取ると、指示制御部２６６からの選択指示に基づいて、それぞれの機能部２４２，２４４，２４６での演算結果の何れかを選択して、その選択出力を指示制御部２６６に入力する（Ｓ５５０）。
【０２０３】
指示制御部２６６は、チェックサム処理が完了し、チェックサム検証が完了した段階で、コマンドディスクリプタキューＢ２２ｂがキューイングされている場合には、すなわち引き続き処理要求が存在する場合には（Ｓ５５２−ＹＥＳ，Ｓ５５４−ＹＥＳ）、ステップＳ５３０に戻って、次の処理を行なうよう、セレクタ２５０，Ｓ３５２に対して選択指示を与える（Ｓ５５４）。一方、処理要求が存在しない場合には（Ｓ５５２−ＮＯ，Ｓ５５４−ＮＯ）、指示制御部２６６は、処理を終了させる（Ｓ５５６）。
【０２０４】
ここで、キュー構造メモリ（コマンドディスクリプタキューＢ２２ｂ）には、チェックサムコマンドディスクリプタＢ１３とＳＳＬ処理用のセキュリティコマンドディスクリプタＢ１２とが順にキューイングされている。よって、セレクタ２５０はその手順に従って、秘匿処理部２４２と認証処理部２４４とチェックサム処理部２４６の何れかを選択して指示制御部２６６の出力を入力する（Ｓ５３６）。
【０２０５】
したがって、エンジン部２００のデータ処理部２４０における各機能部２４２，２４４，２４６は、指示制御部２６６およびセレクタ２５０，２５２による制御の元で、ＴＣＰヘッダとデータとを処理対象とするチェックサム処理をチェックサム処理部２４６にて実行した後（Ｓ５４２）、ＳＳＬ／ＴＬＳによるセキュリティ処理（復号化処理および認証処理）をセキュリティ処理部２４８にて実行し（Ｓ５４４）、演算結果をセレクタ２５２に渡すことになる（Ｓ５４８）。
【０２０６】
このように、第２例では、ＳＳＬ／ＴＬＳかつＴＣＰ／ＩＰの通信において、共通の処理対象範囲となるアプリケーション層とトランスポート層でのデータ部分については、送信処理時の下流側であるＴＣＰ層、また受信処理時の下流側であるアプリケーション層の処理時に、上流側と下流側の双方の処理用データを一括してエンジン部２００にデータ転送して、ＳＳＬ／ＴＬＳに基づくセキュリティ処理とＴＣＰ層に対するチェックサム処理とを行なうようにした。このため、データ部分の重複したデータ転送を防止でき、セキュリティ処理とヘッダに対するチェックサム処理に関わるデータ処理のアクセラレート効果を最大限に引き出すことが可能となる。
【０２０７】
＜具体的な事例；その３＞
図２２〜図２５は、上記実施形態で説明したデータ処理を適用するプロトコルの他の具体例（第３例）を説明する図である。この第３例は、ＩＰＳｅｃ（ＡＨ）における認証処理の場合を示している。
【０２０８】
ここで、図２２（Ａ）は、トランスポートモードでＩＰＳｅｃ（ＡＨ）化されたＩＰｖ４パケットの構成における処理範囲を示し、図２２（Ｂ）は、トンネルモードでＩＰＳｅｃ（ＡＨ）化されたＩＰｖ４パケットの構成における処理範囲を示している。図２３は、処理階層ごとに発生する要求を、図６に示したと同様に、コマンドディスクリプタに対して格納する方法と、図９に示したと同様に、コマンドディスクリプタをキュー構造をとるようにメモリへ格納（転送）する手法を説明する図である。また、図２４および図２５は、ＩＰＳｅｃ（ＡＨ）におけるセキュリティ処理の処理手順の一例を示したフローチャートである。
【０２０９】
ここで、ＩＰＳｅｃ（ＡＨ）モードにおいては、図２２（Ａ），（Ｂ）に示すように、ＩＰヘッダやＴＣＰヘッダを含み、ＴＴＬなど予測不可能なフィールドを除く、ほぼ全範囲を認証対象範囲とする。このため、ＩＰｖ４での通信を行なうと、メインシステム１００とエンジン部２００との間では、ＩＰｖ４におけるＩＰヘッダについてのチェックサム処理と、ＡＨにおける認証処理といった異なる処理階層において、ＩＰヘッダ部分の重複したデータ転送が生じ、加えて、ＴＣＰヘッダ部分とデータ部分の重複したデータ転送が生じる（図３３参照）。
【０２１０】
よって、処理対象範囲判定部１１６は、複数の処理階層において共通の処理対象範囲を含むか否かを判定し（Ｓ６００，Ｓ７００）、アプリケーション層とトランスポート層でデータ部分が共通の処理対象範囲であり、これらの階層の処理においては、処理対象データに対する処理内容の指示（コマンドデータ）と、処理対象データを指示する情報（アドレスデータ）と、処理対象データとが、データ処理装置３のエンジン部２００に一括転送されるようにする。
【０２１１】
具体的には、パケット送信時には、図２４に示すフローチャートに従って処理を行なう。中央演算制御処理部１１０において、先ず、処理対象範囲判定部１１６は、エンジン部２００へ処理階層ごとに発生する、トランスポート層のチェックサム処理要求Ｂ０３、ＩＰ層のＩＰｖ４ヘッダに対するチェックサム処理要求Ｂ０５、およびＩＰ層のＩＰＳｅｃ（ＡＨ）処理要求Ｂ０６と、それぞれの処理対象データとを、ＩＰ層にて一括転送すると判定する（Ｓ６０１）。
【０２１２】
これを受けて、処理手順制御部１１８は、ネットワークプロトコルスタックでのトランスポート層のＴＣＰ層においてチェックサム処理要求Ｂ０３に対するエンジン部２００での処理を未処理とし（Ｓ６０２）、ＴＣＰヘッダ（図２２に示したＥ３）を生成する（Ｓ６０４）。そして、図２３に示したチェックサムコマンドディスクリプタＢ１３を生成して（Ｓ６０６）、ＲＡＭ１２４のコマンドディスクリプタ領域１２７に格納する（Ｓ６０８）。
【０２１３】
この後、処理手順制御部１１８は、インターネット層であるＩＰ層への処理へ移行し（Ｓ６１０）、ＩＰｖ４ヘッダのチェックサム処理要求Ｂ０５用のチェックサムコマンドディスクリプタＢ１５とＩＰＳｅｃ（ＡＨ）処理要求Ｂ０６用のセキュリティコマンドディスクリプタＢ１６とを生成し（Ｓ６１６）、ＲＡＭ１２４のコマンドディスクリプタ領域１２７に順次格納する（Ｓ６１８）。そして、この段階で、中央演算制御処理部１１０は、エンジン部２００の動作を起動する（Ｓ６２０）。
【０２１４】
この際には、ステップＳ６０８にてコマンドディスクリプタ領域１２７に格納されている部分Ｂ１３に引き続いて、当該下流側のＩＰ層分Ｂ１５，Ｂ１６を順次格納することで、図２３に示したように、コマンドディスクリプタのキュー構造（コマンドディスクリプタキューＢ２３ａ）を作る。
【０２１５】
中央演算制御処理部１１０の処理手順制御部１１８から起動指示を受けたエンジン部２００において、ＤＭＡコントローラ部２６４は、メインメモリとしてのＲＡＭ１２４にコマンドディスクリプタキューＢ２３ａとして格納されているコマンドディスクリプタＢ１３，Ｂ１５，Ｂ１６を解析し（Ｓ６３０）、処理対象データをＲＡＭ１２４から読み出す（Ｓ６３２）。また、セレクタ２５０，２５２に対して選択指示を与える（Ｓ６３４）。以下、ステップＳ２３６〜Ｓ２５８と同様である（Ｓ６３６〜Ｓ６５８）。
【０２１６】
ここで、キュー構造メモリ（コマンドディスクリプタキューＢ２３ａ）には、ＴＣＰヘッダ用のチェックサムコマンドディスクリプタＢ１３と、ＩＰｖ４ヘッダ用のチェックサムコマンドディスクリプタＢ１５と、ＩＰＳｅｃ（ＡＨ）用のセキュリティコマンドディスクリプタＢ１６とが、順にキューイングされている。よって、指示制御部２６６は、読み出したコマンド順に、秘匿処理部２４２、認証処理部２４４、およびチェックサム処理部２４６が、コマンドで指示されている処理を実行するようセレクタ２５０，２５２に対し選択指示を出す（Ｓ６４０）。
【０２１７】
なお、ここでは、ＩＰ層内における処理要求について纏めてコマンドディスクリプタを生成しているが、その順を前述のようにすることで、実質的には、上流側であるＩＰｖ４ヘッダ部分に対するチェックサム処理の処理階層における処理を保留し、下流側であるＩＰＳｅｃ（ＡＨ）の処理階層における処理に移行した段階で、保留しておいたチェックサム処理を行ない、続いてＩＰＳｅｃ（ＡＨ）プロトコルに従ったセキュリティ処理を行なうようになる。
【０２１８】
したがって、エンジン部２００のデータ処理部２４０における各機能部２４２，２４４，２４６は、ステップＳ６０２にて未処理としておいたＴＣＰ層のチェックサム処理の部分をチェックサム処理部２４６にて（Ｓ６４２）、またＩＰ層のＩＰｖ４ヘッダに対するチェックサム処理をチェックサム処理部２４６にて（Ｓ６４４）、またＩＰ層のＩＰＳｅｃ（ＡＨ）に基づく認証処理を認証処理部２４４にて（Ｓ６４６）、順次実行し、演算結果をセレクタ２５２に渡すことになる（Ｓ６４８）。
【０２１９】
すなわち、ＩＰＳｅｃ（ＡＨ）適用のデータ送信時には、ＴＣＰ／ＵＤＰ層でのチェックサム処理は即時には行なわず、ＩＰ層でのＩＰｖ４ヘッダに対するチェックサム処理やＩＰＳｅｃ（ＡＨ）処理時にエンジン部２００へのデータ転送を行なった時点で、ＴＣＰ／ＵＤＰ層のチェックサム処理を行ない、続いてＩＰｖ４ヘッダに対するチェックサム処理とＩＰＳｅｃ（ＡＨ）フォーマットに従った認証処理を順に行なう。
【０２２０】
また、本構成において、パケット受信時には、図２５に示すフローチャートに従って処理を行なう。中央演算制御処理部１１０において、先ず、処理対象範囲判定部１１６は、エンジン部２００へ処理階層ごとに発生する、ＩＰ層のＩＰＳｅｃ（ＡＨ）処理要求Ｂ０６およびＩＰヘッダのチェックサム処理要求Ｂ０５並びにトランスポート層のチェックサム処理要求Ｂ０３と、それぞれの処理対象データとを、ＴＣＰ層にて一括転送すると判定する（Ｓ７０１）。
【０２２１】
これを受けて、処理手順制御部１１８は、ネットワークプロトコルスタックでのインターネット層の処理時には、エンジン部２００によるＩＰＳｅｃ（ＡＨ）処理とＩＰｖ４ヘッダのチェックサム処理とを未処理とさせる（Ｓ７０２）。このため、ＩＰＳｅｃ（ＡＨ）処理のための認証処理用のセキュリティコマンドディスクリプタＢ１６とＩＰｖ４ヘッダのチェックサム処理のためのチェックサムコマンドディスクリプタＢ１５とを生成して（Ｓ７０６）、これらコマンドディスクリプタＢ１６，Ｂ１５を、メインメモリとしてのＲＡＭ１２４のコマンドディスクリプタキューＢ２３ｂに、“コマンドディスクリプタＢ１６”および“コマンドディスクリプタＢ１５”として順次格納する（Ｓ７０８）。
【０２２２】
この後、処理手順制御部１１８は、トランスポート層への処理へ移行し（Ｓ７１０）、ＴＣＰ層に対するチェックサム処理要求Ｂ０３時には、チェックサムコマンドディスクリプタＢ１３を生成し（Ｓ７１６）、ＲＡＭ１２４のコマンドディスクリプタ領域１２７に格納する（Ｓ３１８）。そして、この段階で、中央演算制御処理部１１０は、エンジン部２００の動作を起動する（Ｓ３２０）。
【０２２３】
この際には、ステップＳ３０８にてコマンドディスクリプタ領域１２７に格納されている部分Ｂ１６，Ｂ１５に引き続いて、当該下流側のトランスポート層分Ｂ１３を格納することで、図２３に示したように、コマンドディスクリプタのキュー構造（コマンドディスクリプタキューＢ２３ｂ）を作る。
【０２２４】
以下、送信時と同様にして、中央演算制御処理部１１０から起動指示を受けたエンジン部２００において、ＤＭＡコントローラ部２６４は、メインメモリとしてのＲＡＭ１２４に格納されているコマンドディスクリプタＢ１６，Ｂ１５，Ｂ１３を解析し（Ｓ７３０）、処理対象データをＲＡＭ１２４から読み出す（Ｓ７３２）。以下、ステップＳ３３６〜Ｓ３５８と同様である（Ｓ７３６〜Ｓ７５８）。
【０２２５】
ここで、キュー構造メモリ（コマンドディスクリプタキューＢ２３ｂ）には、ＩＰＳｅｃ（ＡＨ）用のセキュリティコマンドディスクリプタＢ１６と、ＩＰｖ４ヘッダ用のチェックサムコマンドディスクリプタＢ１５と、ＴＣＰヘッダ用のチェックサムコマンドディスクリプタＢ１３とが、順にキューイングされている。よって、指示制御部２６６は、読み出したコマンド順に、秘匿処理部２４２、認証処理部２４４、およびチェックサム処理部２４６が、コマンドで指示されている処理を実行するようセレクタ２５０，２５２に対し選択指示を出す（Ｓ７４０）。
【０２２６】
なお、ここでは、ＩＰ層内における処理要求について纏めてコマンドディスクリプタを生成しているが、その順を前述のようにすることで、実質的には、上流側であるＩＰＳｅｃ（ＡＨ）の処理階層におけるセキュリティ処理を保留し、下流側の階層の処理であるＩＰｖ４ヘッダ部分に対するチェックサム処理に移行した段階で、保留しておいたセキュリティ処理を行ない、続いてＩＰｖ４ヘッダ部分に対するチェックサム処理を行なうこととなる。
【０２２７】
したがって、エンジン部２００のデータ処理部２４０における各機能部２４２，２４４，２４６は、ステップＳ７０２にて未処理としておいたＩＰＳｅｃ（ＡＨ）に基づく認証処理を認証処理部２４４にて（Ｓ７４２）、またＩＰｖ４ヘッダに対するチェックサム処理をチェックサム処理部２４６にて（Ｓ７４４）、またＴＣＰ層のチェックサム処理の部分をチェックサム処理部２４６にて（Ｓ７４６）、順次実行し、演算結果をセレクタ２５２に渡すことになる（Ｓ７４８）。
【０２２８】
すなわち、ＩＰＳｅｃ（ＡＨ）適用のデータ受信時には、ＩＰＳｅｃ（ＡＨ）フォーマットに従った認証処理とＩＰｖ４ヘッダに対するチェックサム処理が完了し、セキュリティポリシーの検証が終了した段階で、次ヘッダ番号を参照しＴＣＰヘッダ（通常は、次ヘッダはＴＣＰ／ＵＤＰ）を検索する。そして、この検索が終了した時点で、ＴＣＰ層でのチェックサムを計算、検証し、処理終了となる。
【０２２９】
このように、第３例では、ＴＣＰ／ＩＰかつＩＰＳｅｃ（ＡＨ）モードのＩＰｖ４通信において、共通の処理対象範囲となるトランスポート層とＩＰ層でのＴＣＰヘッダ部分とデータ部分並びにＩＰ層でのＩＰｖ４ヘッダ部分については、送信処理時の下流側であるＩＰ層、また受信処理時の下流側であるＴＣＰ層の処理時に、上流側と下流側の双方の処理用データを一括してエンジン部２００にデータ転送して、ＴＣＰ層に対するチェックサム処理とＩＰ層に対するチェックサム処理と、ＩＰＳｅｃ（ＡＨ）に基づくセキュリティ処理とを行なうようにした。このため、データ部分やＴＣＰヘッダ部分に加えてＩＰｖ４ヘッダ部分についても重複したデータ転送を防止でき、セキュリティ処理とヘッダに対するチェックサム処理に関わるデータ処理のアクセラレート効果を最大限に引き出すことが可能となる。
【０２３０】
なお、上記第３例では、送信処理時には、ＩＰｖ４チェックサム処理用コマンドディスクリプタ→ＡＨ認証処理用コマンドディスクリプタの順に、また送信処理時には、ＡＨ認証処理用コマンドディスクリプタ→ＩＰｖ４チェックサム処理用コマンドディスクリプタの順にしていたが、ＩＰｖ４ヘッダのチェックサムフィールドはＡＨ処理対象外であるので、この順を逆にしてもよい。実装面から考慮すると、双方の処理対象領域を含む、ＡＨ処理用コマンドディスクリプタとするのがよい。ＩＰｖ４チェックサム処理用コマンドディスクリプタよりも先にセットされていた方がよい。
【０２３１】
＜具体的な事例；その４＞
図２６〜図２８は、上記実施形態で説明したデータ処理を適用するプロトコルの他の具体例（第４例）を説明する図である。この第４例は、ネットワークプロトコルスタックでの上位階層でセキュリティ処理を行なうとともに、データリンク層もしくは物理層といった下位階層にて無線通信用のセキュリティ処理を行なう場合を示している。上位階層でのセキュリティ処理としては、たとえば、ＩＰＳｅｃ（ＥＳＰ）やＩＰＳｅｃ（ＡＨ）を適用することとする。
【０２３２】
ここで、図２６は、処理階層ごとに発生する要求を、図６に示したと同様に、コマンドディスクリプタに対して格納する方法と、図９に示したと同様に、コマンドディスクリプタをキュー構造をとるようにメモリへ格納（転送）する手法を説明する図である。また、図２７および図２８は、セキュリティ処理の処理手順の一例を示したフローチャートである。
【０２３３】
ここで、無線通信用のセキュリティ処理においては、ＩＰパケット全体に対してＷＥＰやＷＰＡの仕様に基づくセキュリティ処理を行なうので、上位階層のＩＰ層で行なっているセキュリティ処理との関係では、ＩＰｖ４であるかＩＰｖ６であるかに拘らず、少なくともデータ部分で重複したデータ転送が生じるとともに、ＩＰｖ４ヘッダ部分で重複したデータ転送が生じることがある（図３２参照）。
【０２３４】
よって、処理対象範囲判定部１１６は、複数の処理階層において共通の処理対象範囲を含むか否かを判定し（Ｓ８００，Ｓ９００）、インターネット層（ネットワーク層）とネットワークアクセス層（データリンク層や物理層）で、少なくともデータおよびＴＣＰヘッダが共通の処理対象範囲であり、ＩＰｖ４の際にはＩＰヘッダ部分も共通の処理対象範囲であり、これらの階層の処理においては、処理対象データに対する処理内容の指示（コマンドデータ）と、処理対象データを指示する情報（アドレスデータ）と、処理対象データとが、データ処理装置３のエンジン部２００に一括転送されるようにする。
【０２３５】
具体的には、パケット送信時には、図２７に示すフローチャートに従って処理を行なう。中央演算制御処理部１１０において、先ず、処理対象範囲判定部１１６は、エンジン部２００へ処理階層ごとに発生する、ＴＣＰ層でのチェックサム処理要求Ｂ０３、ＩＰ層のＩＰＳｅｃ（ＥＳＰ）処理要求Ｂ０４もしくはＩＰＳｅｃ（ＡＨ）処理要求Ｂ０６（以下、ＩＰＳｅｃ（ＥＳＰ）で代表記述する）と、ＩＰｖ４ではＩＰヘッダのチェックサム処理要求Ｂ０５と、さらにネットワークアクセス層の無線通信用のセキュリティ処理要求Ｂ０７と、それぞれの処理対象データとを、ネットワークアクセス層にて一括転送すると判定する（Ｓ８０１）。
【０２３６】
これを受けて、処理手順制御部１１８は、ネットワークプロトコルスタックでのＴＣＰ層においてチェックサム処理要求Ｂ０３を未処理とするとともにＩＰ層においてＩＰＳｅｃ（ＥＳＰ）処理要求Ｂ０４に対するエンジン部２００での処理を未処理とし（Ｓ８０２）、また、ＩＰｖ４ではＩＰヘッダのチェックサム処理要求Ｂ０５での処理を未処理とし（Ｓ８０２）、ＴＣＰヘッダやＩＰｖ４ヘッダのヘッダチェックサムを除くＩＰヘッダを生成する（Ｓ８０４）。
【０２３７】
そして、図２６に示したＴＣＰヘッダ用のチェックサムコマンドディスクリプタＢ１３やＩＰＳｅｃ（ＥＳＰ）用のセキュリティコマンドディスクリプタＢ１４を生成するとともに、ＩＰｖ４ではＩＰｖ４ヘッダのチェックサム処理要求Ｂ０５用のチェックサムコマンドディスクリプタＢ１５を生成して（Ｓ８０６）、ＲＡＭ１２４のコマンドディスクリプタ領域１２７に格納する（Ｓ８０８）。
【０２３８】
この後、処理手順制御部１１８は、ネットワークアクセス層への処理へ移行し（Ｓ８１０）、無線通信用のセキュリティ処理要求Ｂ０７用のセキュリティコマンドディスクリプタＢ１７を生成し（Ｓ８１６）、ＲＡＭ１２４のコマンドディスクリプタ領域１２７に格納する（Ｓ８１８）。そして、この段階で、中央演算制御処理部１１０は、エンジン部２００の動作を起動する（Ｓ８２０）。
【０２３９】
この際には、ステップＳ８０８にてコマンドディスクリプタ領域１２７に格納されている部分Ｂ１３，Ｂ１４，Ｂ１６（ＩＰｖ４時）に引き続いて、当該下流側のネットワークアクセス層分Ｂ１７を格納することで、図２６に示したように、コマンドディスクリプタのキュー構造（コマンドディスクリプタキューＢ２４ａ）を作る。
【０２４０】
中央演算制御処理部１１０の処理手順制御部１１８から起動指示を受けたエンジン部２００において、ＤＭＡコントローラ部２６４は、メインメモリとしてのＲＡＭ１２４にコマンドディスクリプタキューＢ２４ａとして格納されているコマンドディスクリプタＢ１３，Ｂ１４，（Ｂ１６；ＩＰｖ４時），Ｂ１７を解析し（Ｓ８３０）、処理対象データをＲＡＭ１２４から読み出す（Ｓ８３２）。また、セレクタ２５０，２５２に対して選択指示を与える（Ｓ８３４）。以下、ステップＳ２３６〜Ｓ２５８と同様である（Ｓ８３６〜Ｓ８５８）。
【０２４１】
ここで、キュー構造メモリ（コマンドディスクリプタキューＢ２４ａ）には、ＴＣＰヘッダのチェックサムコマンドディスクリプタＢ１３と、ＩＰＳｅｃ（ＥＳＰ）用のセキュリティコマンドディスクリプタＢ１４と、ＩＰｖ４時にはＩＰｖ４ヘッダ用のチェックサムコマンドディスクリプタＢ１５と、また無線通信用のコマンドディスクリプタＢ１７とが、順にキューイングされている。よって、指示制御部２６６は、読み出したコマンド順に、秘匿処理部２４２、認証処理部２４４、およびチェックサム処理部２４６が、コマンドで指示されている処理を実行するようセレクタ２５０，２５２に対し選択指示を出す（Ｓ８４０）。
【０２４２】
したがって、エンジン部２００のデータ処理部２４０における各機能部２４２，２４４，２４６は、ステップＳ８０２にて未処理としておいたＴＣＰ層のチェックサム処理をチェックサム処理部２４６にて（Ｓ８４２）、ＩＰ層のＩＰＳｅｃ（ＥＳＰ）に基づくセキュリティ処理をセキュリティ処理部２４８にて（Ｓ８４４）、またＩＰｖ４時にはＩＰ層におけるＩＰｖ４ヘッダに対するチェックサム処理をチェックサム処理部２４６にて（Ｓ８４６）、さらにネットワークアクセス層における無線通信用のセキュリティ処理をセキュリティ処理部２４８にて（Ｓ８４７）、順次実行し、演算結果をセレクタ２５２に渡すことになる（Ｓ８４８）。
【０２４３】
すなわち、ＩＰＳｅｃ（ＥＳＰ）と無線通信用のセキュリティプロトコルを適用したデータ送信時には、ＴＣＰ層でのチェックサム処理並びにＩＰ層でのセキュリティ処理やヘッダチェックサム処理は即時には行なわず、ネットワークアクセス層のセキュリティ処理時にエンジン部２００へのデータ転送を行なった時点で、ＴＣＰ層用のチェックサム処理やＩＰ層用のセキュリティ処理やヘッダチェックサム処理を行ない、続いて無線通信用のセキュリティプロトコルフォーマットに従ったセキュリティ処理を行なう。
【０２４４】
また、本構成において、パケット受信時には、図２８に示すフローチャートに従って処理を行なう。中央演算制御処理部１１０において、先ず、処理対象範囲判定部１１６は、エンジン部２００へ処理階層ごとに発生する、ネットワークアクセス層の無線通信用のセキュリティ処理要求Ｂ０７と、ＩＰｖ４ではＩＰヘッダのチェックサム処理要求Ｂ０５と、ＩＰｖ４／ＩＰｖ６に拘わらずＩＰ層のＩＰＳｅｃ（ＥＳＰ）処理要求Ｂ０４と、ＴＣＰ層のチェックサム処理と、それぞれの処理対象データとを、トランスポート層にて一括転送すると判定する（Ｓ９０１）。
【０２４５】
これを受けて、処理手順制御部１１８は、ネットワークプロトコルスタックでのネットワークアクセス層において無線通信用のセキュリティ処理要求Ｂ０７や、ＩＰ層におけるＩＰｖ４ヘッダのチェックサム処理要求Ｂ０５やＩＰＳｅｃ（ＥＳＰ）処理要求Ｂ０４に対するエンジン部２００での処理を未処理とする（Ｓ９０２）。
【０２４６】
そして、図２６に示した無線通信用のセキュリティコマンドディスクリプタＢ１７、並びにＩＰｖ４ヘッダのチェックサム処理要求Ｂ０５用のチェックサムコマンドディスクリプタＢ１５を生成し、またＩＰｖ４／ＩＰｖ６に拘わらずＩＰＳｅｃ（ＥＳＰ）用のセキュリティコマンドディスクリプタＢ１４を生成して（Ｓ９０６）、ＲＡＭ１２４のコマンドディスクリプタ領域１２７に格納する（Ｓ９０８）。
【０２４７】
この後、処理手順制御部１１８は、トランスポート層への処理へ移行し（Ｓ９１０）、チェックサム処理要求Ｂ０３時には、チェックサムコマンドディスクリプタＢ１３を生成し（Ｓ９１６）、ＲＡＭ１２４のコマンドディスクリプタ領域１２７にて格納する（Ｓ９１８）。そして、この段階で、中央演算制御処理部１１０は、エンジン部２００の動作を起動する（Ｓ９２０）。
【０２４８】
この際には、ステップＳ９０８にてコマンドディスクリプタ領域１２７に格納されている部分Ｂ１７，（Ｂ１６；ＩＰｖ４時），Ｂ１４に引き続いて、当該下流側のトランスポート層分Ｂ１３を格納することで、図２６に示したように、コマンドディスクリプタのキュー構造（コマンドディスクリプタキューＢ２４ｂ）を作る。
【０２４９】
以下、送信時と同様にして、中央演算制御処理部１１０から起動指示を受けたエンジン部２００において、ＤＭＡコントローラ部２６４は、メインメモリとしてのＲＡＭ１２４に格納されているコマンドディスクリプタを解析し（Ｓ９３０）、処理対象データをＲＡＭ１２４から読み出す（Ｓ９３２）。以下、ステップＳ３３６〜Ｓ３５８と同様である（Ｓ３３６〜Ｓ３５８）。
【０２５０】
ここで、キュー構造メモリ（コマンドディスクリプタキューＢ２４ｂ）には、無線通信用のコマンドディスクリプタＢ１７と、ＩＰｖ４時にはＩＰｖ４ヘッダ用のチェックサムコマンドディスクリプタＢ１５と、またＩＰｖ４／ＩＰｖ６に拘わらずＩＰＳｅｃ（ＥＳＰ）用のセキュリティコマンドディスクリプタＢ１４と、ＴＣＰ用のチェックサムコマンドディスクリプタＢ１３が、順にキューイングされている。よって、指示制御部２６６は、読み出したコマンド順に、秘匿処理部２４２、認証処理部２４４、およびチェックサム処理部２４６が、コマンドで指示されている処理を実行するようセレクタ２５０，２５２に対し選択指示を出す（Ｓ９４０）。
【０２５１】
したがって、エンジン部２００のデータ処理部２４０における各機能部２４２，２４４，２４６は、ステップＳ９０２にて未処理としておいたネットワークアクセス層における無線通信用のセキュリティ処理をセキュリティ処理部２４８にて（Ｓ９４２）、またＩＰｖ４時にはＩＰ層におけるＩＰｖ４ヘッダに対するチェックサム処理をチェックサム処理部２４６にて（Ｓ９４４）、またＩＰ層におけるＩＰＳｅｃ（ＥＳＰ）に基づくセキュリティ処理をセキュリティ処理部２４８にて（Ｓ９４６）、さらにＴＣＰヘッダとデータとを処理対象とするチェックサム処理をチェックサム処理部２４６にて（Ｓ９４７）、順次実行し、演算結果をセレクタ２５２に渡すことになる（Ｓ９４８）。
【０２５２】
すなわち、ＩＰＳｅｃ（ＥＳＰ）と無線通信用のセキュリティプロトコルを適用したデータ受信時には、ネットワークアクセス層のセキュリティ処理やＩＰ層でのチェックサム処理やセキュリティ処理は即時には行なわず、トランスポート層でのチェックサム処理時にエンジン部２００へのデータ転送を行なった時点で、無線通信用のセキュリティプロトコルフォーマットに従ったセキュリティ処理を行ない、続いてＩＰ層でのヘッダチェックサム処理やセキュリティ処理を行ない、最後にトランスポート層のチェックサム処理を行なう。
【０２５３】
このように、第４例では、ＴＣＰ／ＩＰかつＩＰＳｅｃ（ＥＳＰ）に加えてネットワークアクセス層での無線通信のセキュリティ処理を伴う通信において、共通の処理対象範囲となるトランスポート層とＩＰ層とネットワークアクセス層でのＴＣＰヘッダ部分とデータ部分並びにＩＰ層内およびＩＰ層とネットワークアクセス層でのＩＰｖ４ヘッダ部分については、送信処理時の下流側であるネットワークアクセス層、また受信処理時の下流側であるＴＣＰ層の処理時に、上流側と下流側の３つの層の処理用データを一括してエンジン部２００にデータ転送して、ＴＣＰ層に対するチェックサム処理とＩＰ層に対するチェックサム処理と、ＩＰＳｅｃ（ＥＳＰ）に基づくセキュリティ処理と、無線通信用のセキュリティ処理とを行なうようにした。
【０２５４】
このため、３つの層に亘って、データ部分やＴＣＰヘッダ部分に加えてＩＰｖ４ヘッダ部分についても重複したデータ転送を防止でき、セキュリティ処理とヘッダに対するチェックサム処理に関わるデータ処理のアクセラレート効果を最大限に引き出すことが可能となる。
【０２５５】
以上、本発明を実施形態を用いて説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。発明の要旨を逸脱しない範囲で上記実施形態に多様な変更または改良を加えることができ、そのような変更または改良を加えた形態も本発明の技術的範囲に含まれる。
【０２５６】
また、上記の実施形態は、クレーム（請求項）にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組合せの全てが発明の解決手段に必須であるとは限らない。前述した実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜の組合せにより種々の発明を抽出できる。実施形態に示される全構成要件から幾つかの構成要件が削除されても、効果が得られる限りにおいて、この幾つかの構成要件が削除された構成が発明として抽出され得る。
【０２５７】
たとえば、上記実施形態では、有線方式あるいは無線方式でのネットワークプロトコルにおけるデータ処理について説明したが、メインシステムとエンジン部との間で協調処理を行なう場合に、処理が階層的に定義されていて、その内の一部の処理をハードウェアで構成されたエンジン部で行なうシステム構成であればよく、エンジン部が行なう処理内容は、通信プロトコルに関わる処理に限定されるものではない。
【０２５８】
たとえば、処理対象データを暗号化してデータ配布し、配布されたデータを復号化することで、配布されたデータ内容を得る仕組みのもの全てに、上記実施形態で説明した技術を適用することができる。たとえば、処理対象データを暗号化処理と認証処理を施してデータをＣＤ−ＲＯＭなどの記録媒体に記録して配布し、この後、記録媒体から読み出したデータを復号化処理と認証処理とを施すことで、記録媒体を介して配布されたデータ内容を得る仕組みにも適用することができる。
【０２５９】
また、上記実施形態では、メインシステムの中央演算制御処理部１１０側の処理対象範囲判定部１１６や処理手順制御部１１８をソフトウェア処理で構成し、ソフトウェア（中央演算制御処理部１１０）とハードウェア（エンジン部２００）との協調動作を行なう場合における処理について説明したが、中央演算制御処理部１１０側の処理対象範囲判定部１１６や処理手順制御部１１８をハードウェア処理回路で構成したものであってもよい。
【０２６０】
また、上記実施形態では、パーソナルコンピュータなどの情報処理装置に本発明に係るデータ処理装置を適用した事例で説明したが、これに限らず、様々な形態の装置に上記実施形態で説明した技術を適用することができる。たとえば、無線ＬＡＮ（Local Area Network）にて使用される基地局としてのアクセスポイントや、端末側の装置に組み込まれるＬＡＮカードなどにも適用することができる。これらの場合の装置構成としては、図１に示したデータ処理装置３の部分を少なくとも含んでいればよいのはいうまでもない。また、エンジン部２００の部分をメインシステム１００に装着される着脱可能なデータ処理装置のモジュール（たとえば基板モジュール）として提供する形態であってもよい。
【０２６１】
さらに、上記説明から明らかなように、以下の構成を発明として提案することができる。以下列記する。
【０２６２】
＜付記１＞前記処理内容の指示と前記アドレス情報の前記記憶部への格納と読出しは、先入れ先出し法で行なう
ことを特徴とする請求項３に記載のデータ処理方法。
【０２６３】
＜付記２＞前記処理内容の指示と前記アドレス情報の前記記憶部からの読出しは、ＤＭＡ転送によって行なう
ことを特徴とする請求項３に記載のデータ処理方法。
【０２６４】
＜付記３＞前記共通の処理対象範囲は、通信プロトコル階層におけるヘッダ情報部分を含む
ことを特徴とする請求項２に記載のデータ処理方法。
【０２６５】
＜付記４＞前記共通の処理対象範囲は、異なるセキュリティプロトコルの処理間において形成される
ことを特徴とする請求項２に記載のデータ処理方法。
【０２６６】
＜付記５＞ＩＰＳｅｃのＡＨプロトコルを用いたＩＰｖ４の送信処理時には、
前記共通の処理対象範囲を、ＩＰｖ４ヘッダ部分を含むものとし、
前記第１の処理階層であるＩＰｖ４ヘッダ部分に対するチェックサム処理の処理階層における処理を保留し、
前記第２の処理階層であるＩＰＳｅｃのＡＨの処理階層における処理に移行した段階で、保留しておいた前記チェックサム処理を行ない、
続いて前記ＩＰＳｅｃのＡＨプロトコルに従ったセキュリティ処理を行なう
ことを特徴とする請求項２に記載のデータ処理方法。
【０２６７】
＜付記６＞ＩＰＳｅｃのＡＨプロトコルを用いたＩＰｖ４の受信処理時には、
前記共通の処理対象範囲を、ＩＰｖ４ヘッダ部分を含むものとし、
前記第１の処理階層であるＩＰＳｅｃのＡＨの処理階層におけるセキュリティ処理を保留し、
前記第２の処理階層の処理であるＩＰｖ４ヘッダ部分に対するチェックサム処理に移行した段階で、保留しておいた前記セキュリティ処理を行ない、
続いて前記ＩＰｖ４ヘッダ部分に対するチェックサム処理を行なう
ことを特徴とする請求項２に記載のデータ処理方法。
【０２６８】
＜付記７＞ＩＰＳｅｃのＥＳＰプロトコルもしくはＡＨプロトコルと無線通信用のセキュリティプロトコルを用いた送信処理時には、
前記共通の処理対象範囲を、ＩＰヘッダ部分を含むものとし、
前記第１の処理階層であるＩＰヘッダ部分に対するチェックサム処理の処理階層における処理を保留し、
前記第２の処理階層の前記無線通信用のセキュリティ処理に移行した段階で、保留しておいた前記チェックサム処理を行ない、
続いて前記無線通信用のセキュリティ処理を行なう
ことを特徴とする請求項２に記載のデータ処理方法。
【０２６９】
＜付記８＞ＩＰＳｅｃのＥＳＰプロトコルもしくはＡＨプロトコルと無線通信用のセキュリティプロトコルを用いた受信処理時には、
前記共通の処理対象範囲を、ＩＰヘッダ部分を含むものとし、
前記第１の処理階層の前記無線通信用のセキュリティ処理を保留し、
前記第２の処理階層の処理であるＩＰヘッダ部分に対するチェックサム処理に移行した段階で、保留しておいた前記セキュリティ処理を行ない、
続いて前記ＩＰヘッダ部分に対するチェックサム処理を行なう
ことを特徴とする請求項２に記載のデータ処理方法。
【０２７０】
＜付記９＞前記処理手順制御部は、ソフトウェアにて動作するように構成されている
ことを特徴とする請求項１０に記載のデータ処理装置。
【０２７１】
＜付記１０＞前記処理手順制御部は、
ＩＰＳｅｃのＡＨプロトコルを用いたＩＰｖ４の送信処理時には、前記共通の処理対象範囲を、ＩＰｖ４ヘッダ部分を含むものとし、
前記エンジン部との間で定められている前記記憶部への情報の格納と読出しの規則に従って、前記第１の処理階層であるＩＰｖ４ヘッダ部分に対するチェックサム処理の処理階層における処理を保留し、前記第２の処理階層であるＩＰＳｅｃのＡＨの処理階層における処理に移行した段階で、保留しておいた前記チェックサム処理を行ない、続いて前記ＩＰＳｅｃのＡＨプロトコルに従ったセキュリティ処理を行なうように、前記エンジン部に対して通知する前記処理内容の指示と前記アドレス情報とを対応付けて順に前記記憶部に格納する
ことを特徴とする請求項１２に記載のデータ処理装置。
【０２７２】
＜付記１１＞前記処理手順制御部は、
ＩＰＳｅｃのＡＨプロトコルを用いたＩＰｖ４の受信処理時には、前記共通の処理対象範囲を、ＩＰｖ４ヘッダ部分を含むものとし、
前記エンジン部との間で定められている前記記憶部への情報の格納と読出しの規則に従って、前記第１の処理階層であるＩＰＳｅｃのＡＨの処理階層におけるセキュリティ処理を保留し、前記第２の処理階層の処理であるＩＰｖ４ヘッダ部分に対するチェックサム処理に移行した段階で、保留しておいた前記セキュリティ処理を行ない、続いて前記ＩＰｖ４ヘッダ部分に対するチェックサム処理を行なうように、前記エンジン部に対して通知する前記処理内容の指示と前記アドレス情報とを対応付けて順に前記記憶部に格納する
ことを特徴とする請求項１２に記載のデータ処理装置。
【０２７３】
＜付記１２＞前記処理手順制御部は、
ＩＰＳｅｃのＥＳＰプロトコルもしくはＡＨプロトコルと無線通信用のセキュリティプロトコルを用いた送信処理時には、前記共通の処理対象範囲を、ＩＰヘッダ部分を含むものとし、
前記エンジン部との間で定められている前記記憶部への情報の格納と読出しの規則に従って、前記第１の処理階層であるＩＰヘッダ部分に対するチェックサム処理の処理階層における処理を保留し、前記第２の処理階層の前記無線通信用のセキュリティ処理に移行した段階で、保留しておいた前記チェックサム処理を行ない、続いて前記無線通信用のセキュリティ処理を行なうように、前記エンジン部に対して通知する前記処理内容の指示と前記アドレス情報とを対応付けて順に前記記憶部に格納する
ことを特徴とする請求項１２に記載のデータ処理装置。
【０２７４】
＜付記１３＞前記処理手順制御部は、
ＩＰＳｅｃのＥＳＰプロトコルもしくはＡＨプロトコルと無線通信用のセキュリティプロトコルを用いた受信処理時には、前記共通の処理対象範囲を、ＩＰヘッダ部分を含むものとし、
前記エンジン部との間で定められている前記記憶部への情報の格納と読出しの規則に従って、前記第１の処理階層の処理である前記無線通信用のセキュリティ処理を保留し、前記第２の処理階層の処理であるＩＰヘッダ部分に対するチェックサム処理に移行した段階で、保留しておいた前記セキュリティ処理を行ない、続いて前記ＩＰヘッダ部分に対するチェックサム処理を行なうように、前記エンジン部に対して通知する前記処理内容の指示と前記アドレス情報とを対応付けて順に前記記憶部に格納する
ことを特徴とする請求項１２に記載のデータ処理装置。
【０２７５】
＜付記１４＞前記処理内容の指示と前記アドレス情報の前記記憶部への格納と読出しを、先入れ先出し法で行なうメモリ制御部
をさらに備えていることを特徴とする請求項１２に記載のデータ処理装置。
【０２７６】
＜付記１５＞前記処理内容の指示と前記アドレス情報の前記記憶部からの読出しを、ＤＭＡ転送によって行なうメモリ制御部
をさらに備えていることを特徴とする請求項１２に記載のデータ処理装置。
【０２７７】
＜付記１６＞前記制御部は、前記処理内容の指示と前記アドレス情報の前記記憶部への格納と読出しを、先入れ先出し法で行なうメモリ制御部
をさらに備えていることを特徴とする請求項１９に記載のデータ処理装置。
【０２７８】
＜付記１７＞前記制御部は、前記処理内容の指示と前記アドレス情報の前記記憶部からの読出しを、ＤＭＡ転送によって行なうメモリ制御部
をさらに備えていることを特徴とする請求項１９に記載のデータ処理装置。
【図面の簡単な説明】
【０２７９】
【図１】本発明に係るデータ処理装置の一実施形態を備えたコンピュータ装置の構成を示したブロック図である。
【図２】エンジン部に対する処理手順制御機能を実現するためのシステムアーキテクチャの構成例を説明する図である（第１の構成例）。
【図３】エンジン部に対する処理手順制御機能を実現するためのシステムアーキテクチャの構成例を説明する図である（第２の構成例）。
【図４】エンジン部に対する処理手順制御機能を実現するためのシステムアーキテクチャの構成例を説明する図である（第３の構成例）。
【図５】エンジン部に対する処理手順制御機能を実現するためのシステムアーキテクチャの構成例を説明する図である（第４の構成例）。
【図６】コマンドディスクリプタと、処理手順情報およびデータ格納場所情報の一例を示した図である。
【図７】コマンドディスクリプタのキュー構造を説明する図である。
【図８】コマンドディスクリプタのスタック構造を説明する図である。
【図９】ＯＳＩやＴＣＰ／ＩＰの処理階層モデルにおける、コマンドディスクリプタキューの一例を示した図である。
【図１０】通信プロトコルにおける階層モデルと、処理階層との関係を説明する図である。
【図１１】図１に示したコンピュータ装置に備えられているデータ処理装置の詳細な構成例を示したブロック図である。
【図１２】複数の処理階層において共通の処理対象範囲を含む場合に対処した処理方法の概要を説明する図である。
【図１３】複数の処理階層において共通の処理対象範囲を含む場合に対処した処理手順の一例を示すフローチャートである。
【図１４】具体的処理の第１例であって、ＩＰＳｅｃ（ＥＳＰ）化されたＩＰパケットの構成における処理範囲を示す図である。
【図１５】第１例におけるコマンドディスクリプタキュー構造を示す図である。
【図１６】第１例における送信時のセキュリティ処理の処理手順の一例を示したフローチャートである。
【図１７】第１例における受信時のセキュリティ処理の処理手順の一例を示したフローチャートである。
【図１８】具体的処理の第２例であって、ＳＳＬ／ＴＬＳ化されたＩＰパケットの構成と処理範囲を示す図である。
【図１９】第２例におけるコマンドディスクリプタキュー構造を示す図である。
【図２０】第２例における送信時のセキュリティ処理の処理手順の一例を示したフローチャートである。
【図２１】第２例における受信時のセキュリティ処理の処理手順の一例を示したフローチャートである。
【図２２】具体的処理の第３例であって、ＩＰＳｅｃ（ＡＨ）化されたＩＰパケットの構成における処理範囲を示す図である。
【図２３】第３例におけるコマンドディスクリプタキュー構造を示す図である。
【図２４】第３例における送信時のセキュリティ処理の処理手順の一例を示したフローチャートである。
【図２５】第３例における受信時のセキュリティ処理の処理手順の一例を示したフローチャートである。
【図２６】具体的処理の第４例におけるコマンドディスクリプタキュー構造を示す図である。
【図２７】第４例における送信時のセキュリティ処理の処理手順の一例を示したフローチャートである。
【図２８】第４例における受信時のセキュリティ処理の処理手順の一例を示したフローチャートである。
【図２９】ＯＳＩの基本参照モデルと対応付けて、ＴＣＰ／ＩＰの処理階層モデルとアクセラレータシステムとの関係を示した図である。
【図３０】アクセラレータシステムが行なう処理の具体例における問題点を説明する図である（第１例）。
【図３１】アクセラレータシステムが行なう処理の具体例における問題点を説明する図である（第２例）。
【図３２】アクセラレータシステムが行なう処理の具体例における問題点を説明する図である（第３例）。
【図３３】アクセラレータシステムが行なう処理の具体例における問題点を説明する図である（第４例）。
【符号の説明】
【０２８０】
１…コンピュータ装置、３…データ処理装置、１００…メインシステム、１１０…中央演算制御処理部、１１６…処理対象範囲判定部、１１８…処理手順制御部、１２０…メモリ部、１２２…ＲＯＭ、１２４…ＲＡＭ（主記憶部）、１２５…処理データ格納領域、１２６…コマンド格納領域、１２７…ディスクリプタ領域、１５０…インタフェース部、１８０…内部バス、２００…エンジン部、２４０…処理部、２４２…秘匿処理部、２４４…認証処理部、２４６…チェックサム処理部、２４８…セキュリティ処理部、２４９…同一性確認処理部、２５０，２５２…セレクタ、２６０…制御部、２６２…バスＩＦ部、２６４…ＤＭＡコントローラ部、２６６…指示制御部
【図１】
2005167544.tif 000003
【図２】
2005167544.tif 000004
【図３】
2005167544.tif 000005
【図４】
2005167544.tif 000006
【図５】
2005167544.tif 000007
【図６】
2005167544.tif 000008
【図７】
2005167544.tif 000009
【図８】
2005167544.tif 000010
【図９】
2005167544.tif 000011
【図１０】
2005167544.tif 000012
【図１１】
2005167544.tif 000013
【図１２】
2005167544.tif 000014
【図１３】
2005167544.tif 000015
【図１４】
2005167544.tif 000016
【図１５】
2005167544.tif 000017
【図１６】
2005167544.tif 000018
【図１７】
2005167544.tif 000019
【図１８】
2005167544.tif 000020
【図１９】
2005167544.tif 000021
【図２０】
2005167544.tif 000022
【図２１】
2005167544.tif 000023
【図２２】
2005167544.tif 000024
【図２３】
2005167544.tif 000025
【図２４】
2005167544.tif 000026
【図２５】
2005167544.tif 000027
【図２６】
2005167544.tif 000028
【図２７】
2005167544.tif 000029
【図２８】
2005167544.tif 000030
【図２９】
2005167544.tif 000031
【図３０】
2005167544.tif 000032
【図３１】
2005167544.tif 000033
【図３２】
2005167544.tif 000034
【図３３】
2005167544.tif 000035