JP2005167870A - Method and apparatus for processing data - Google Patents

Method and apparatus for processing data Download PDF

Info

Publication number
JP2005167870A
JP2005167870A JP2003406900A JP2003406900A JP2005167870A JP 2005167870 A JP2005167870 A JP 2005167870A JP 2003406900 A JP2003406900 A JP 2003406900A JP 2003406900 A JP2003406900 A JP 2003406900A JP 2005167870 A JP2005167870 A JP 2005167870A
Authority
JP
Japan
Prior art keywords
processing
data
unit
engine unit
main system
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.)
Pending
Application number
JP2003406900A
Other languages
Japanese (ja)
Inventor
Yasushi Funatsu
泰史 舟津
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2003406900A priority Critical patent/JP2005167870A/en
Publication of JP2005167870A publication Critical patent/JP2005167870A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To improve a processing efficiency by performing parallel processing of a plurality of processings in an apparatus for processing data in an engine part according to a plurality of processing instructions generated from a main system. <P>SOLUTION: In the apparatus for processing the data, a data processing unit 240 includes function units 242a, 242b, and 244, 246 which operate independently according to the processing instruction. A central operation control processing unit 110 divides data to be processed into a predetermined size by a primary driver 130. A secondary driver 140 decides a transfer sequence of the divided data based on a predetermined reference, and sequentially transfers information of the divided data and processing content corresponding to the divided data according to the decided transfer sequence. An instruction controller 266 controls selectors 250, 252 to input the divided data to the respective function units 242a, 242b, 244, and 246 for processing corresponding to the divided data and to input the processed data from the function units 242a, 242b, 244, and 246 to the instruction controller 266. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

本発明は、ハードウェアで構成されたエンジン部において、メインシステムから転送された処理対象データに対して所定の処理を行ない、処理済みデータをメインシステムに転送するデータ処理方法およびデータ処理装置に関する。たとえば、通信プロトコルにおける、暗号化処理や復号化処理あるいは認証処理といったセキュリティ処理や通信プロトコル階層におけるチェックサム処理を行なう技術に関する。   The present invention relates to a data processing method and a data processing apparatus that perform predetermined processing on processing target data transferred from a main system and transfer processed data to the main system in an engine unit configured by hardware. For example, the present invention relates to a technique for performing security processing such as encryption processing, decryption processing, or authentication processing in a communication protocol and checksum processing in a communication protocol layer.

近年、計算機や通信技術の分野では、データを暗号化してデータ配布し、配布されたデータを復号化することで、配布されたデータ内容を得る情報の秘匿技術(機密保護技術/セキュリティ技術)が知られている。たとえば、ネットワークを用いたデータ通信では、データの機密性や完全性を確保するため、暗号化や復号化(纏めて秘匿化もしくは機密化ともいう)や、データの改竄に対する保護のためのデータ認証技術が用いられており、送信データを暗号化して送信し、受信データを復号化して受信内容を得るようにしている。   In recent years, in the field of computers and communication technology, there is an information concealment technology (security technology / security technology) that obtains distributed data content by encrypting data and distributing the data and decrypting the distributed data. Are known. For example, in data communication using a network, data authentication for protection against data tampering, encryption and decryption (collectively referred to as concealment or confidentiality) and data tampering to ensure data confidentiality and integrity. Technology is used, and transmission data is encrypted and transmitted, and reception data is decrypted to obtain reception contents.

また、この秘匿技術と併用して、暗号ペイロード部分や他の部分のデータの同一性を確認するための認証(完全性保証)を行なう認証技術も知られている。また、通信プロトコルによっては、プロトコルレイヤの階層に付加される、宛先や何のデータであるかなどの情報を書き込んだヘッダ(Header)も含めたデータの同一性を確認するためのチェックサム計算処理を行なうこともある。   In addition, an authentication technique for performing authentication (integrity guarantee) for confirming the identity of the data in the encrypted payload part and other parts is also known in combination with this secret technique. In addition, depending on the communication protocol, checksum calculation processing is performed to confirm the identity of data including headers (Headers) that include information such as destination and what data is added to the protocol layer hierarchy. May be performed.

以下、完全性保証を行なう認証処理とヘッダ及びデータの同一性を確認するチェックサム処理とを纏めて同一性確認処理ともいう。また、秘匿技術(セキュリティ技術)と同一性確認技術とを纏めて、情報セキュリティ技術ともいう。なお、暗号化または復号化あるいは認証といったセキュリティ技術(狭義のセキュリティ技術)と、ヘッダ及びデータの同一性を確認するチェックサム処理を含む情報セキュリティ技術(広義のセキュリティ技術)は、何れもデータの改竄に対する対応処理である点で共通するものである。   Hereinafter, the authentication process for ensuring the integrity and the checksum process for checking the identity of the header and the data are collectively referred to as an identity confirmation process. Further, the secret technology (security technology) and the identity confirmation technology are collectively referred to as information security technology. Note that both security technology (encryption security technology) such as encryption, decryption, or authentication and information security technology (broad security technology) including checksum processing for confirming the identity of the header and data are data tampering. This is common in that it is a corresponding process.

ここで、この種の情報セキュリティ技術では、従来、暗号化処理や復号化処理といった秘匿処理や、認証コードの作成や削除といった認証処理やヘッダおよびデータの同一性を確認するチェックサム処理を、ソフトウェアで行なう仕組みが採られていた。このソフトウェアで行なう仕組みは、並列処理や連続処理に柔軟に対処し得るものの、その処理が複雑になるに連れ、処理時間が長くなるため、処理速度の低下が問題となる。   Here, in this type of information security technology, conventionally, confidential processing such as encryption processing and decryption processing, authentication processing such as creation and deletion of an authentication code, and checksum processing for confirming the identity of the header and data are performed by software. The mechanism to do in was adopted. Although the mechanism performed by this software can flexibly cope with parallel processing and continuous processing, the processing time becomes longer as the processing becomes complicated, so that a reduction in processing speed becomes a problem.

この問題を改善する一手法として、たとえば特許文献1〜3に提案されているように、セキュリティ処理(秘匿処理や認証処理)を、ハードウェア処理回路で行なうことで高速化を図ったアクセラレータシステムの仕組みが考えられている。このアクセラレータシステムは、処理が複雑であっても、処理速度の低下を防ぐことができ、高いスループットを得ることができる。   As a technique for improving this problem, as proposed in, for example, Patent Documents 1 to 3, security processing (confidential processing and authentication processing) is performed by a hardware processing circuit, and the accelerator system is designed to increase speed. A mechanism is considered. Even if the processing is complicated, this accelerator system can prevent a reduction in processing speed and can obtain a high throughput.

特開平10−320191号公報Japanese Patent Laid-Open No. 10-320191 特表2003−512649号公報Japanese translation of PCT publication No. 2003-512649 米国公開特許公報2002/0073324A1US Published Patent Publication 2002 / 0073324A1

ここで、アクセラレータシステムでは、1つのデータに対してブロック暗号・認証の並列処理を行なう場合に、そのデータを暗号処理部、認証処理部それぞれに並列に転送して処理する。また、1つのデータに対してブロック暗号・認証の連続処理を行なう場合、先ずはデータを暗号処理部で処理し、その後、認証処理部に転送する。   Here, in the accelerator system, when parallel processing of block encryption / authentication is performed on one piece of data, the data is transferred in parallel to the encryption processing unit and the authentication processing unit for processing. In addition, when performing block cipher / authentication continuous processing on one piece of data, the data is first processed by the encryption processing unit and then transferred to the authentication processing unit.

ネットワークプロトコルとしては、たとえばIPSec(Internet Protocol Security)、またはSSL(Secure Sockets Layer)やSSLをベースに改良されたTLS(Transport Layer Security)(以下纏めてSSL/TLSとも記す)、またはTCP(Transmission Control Protocol )やUDP(User Datagram Protocol)(以下纏めてTCP/UDPとも記す)、あるいはIPv4(Internet Protocol Version4)やIPv6(Internet Protocol Version6)などがある。   As a network protocol, for example, IPSec (Internet Protocol Security), SSL (Secure Sockets Layer) or TLS (Transport Layer Security) improved based on SSL (hereinafter also referred to as SSL / TLS), or TCP (Transmission Control) Protocol) and UDP (User Datagram Protocol) (hereinafter collectively referred to as TCP / UDP), IPv4 (Internet Protocol Version 4), IPv6 (Internet Protocol Version 6), and the like.

一方、一連の処理を階層構造で考えて取り扱う概念がある。たとえば、ネットワークプロトコルにおいては、OSI(Open Systems Interconnection)の基本参照モデルやこれに対応した通信プロトコルモデルのように、プロトコルの階層構造の概念が導入されている。なお、OSI基本参照モデルや通信プロトコルモデルにおける1つのプロトコル階層内では、さらに複数の処理階層が含まれる場合もある。   On the other hand, there is a concept of handling a series of processes by considering them in a hierarchical structure. For example, in the network protocol, the concept of the hierarchical structure of the protocol is introduced like a basic reference model of OSI (Open Systems Interconnection) and a communication protocol model corresponding thereto. Note that a plurality of processing layers may be included in one protocol layer in the OSI basic reference model or the communication protocol model.

処理対象データに対する各々の処理を階層化した階層モデルで表し、処理階層ごとに独立して所定の処理を順次行なうことで一連の処理を実行する場合、たとえば通信処理時のデータの流れは、送信側では上位のプロトコル階層から下位のプロトコル階層に、また受信側では下位のプロトコル階層から上位のプロトコル階層に流れる。また、送信側の各プロトコル階層では、通信の制御に必要なデータをヘッダとして付加し、受信側では、そのヘッダを順に解釈していくことで通信を行なう。また、アプリケーションによっては、複数の処理対象データに対して並列処理させる場合もある。   In the case of executing a series of processes by sequentially performing a predetermined process independently for each processing hierarchy, for example, the flow of data at the time of communication processing is transmitted. From the upper protocol layer to the lower protocol layer, the receiving side flows from the lower protocol layer to the upper protocol layer. Further, in each protocol layer on the transmission side, data necessary for communication control is added as a header, and on the reception side, communication is performed by sequentially interpreting the header. Depending on the application, a plurality of pieces of processing target data may be processed in parallel.

処理階層モデルで表される一連の処理の一部を、単一デバイスで構成されたアクセラレータを使用して実行する場合、メインメモリ(主記憶部)に保持されている処理対象データをアクセラレータシステムに渡し、装置全体を制御するCPUやデータを記憶するメインメモリを含むメインシステム側からアクセラレータシステムに処理を移行させ、アクセラレータシステムにおいて処理が完了した段階で、処理済みデータをメインシステム側に渡す(戻す)。アプリケーションから複数の処理要求がほぼ同時期に発生した場合は、その複数の処理要求とそれに対応した処理対象データをアクセラレータシステムに渡すことになる。   When executing a part of a series of processes represented by the processing hierarchy model using an accelerator configured with a single device, the processing target data stored in the main memory (main memory) is stored in the accelerator system. The processing is transferred from the main system side including the CPU for controlling the entire apparatus and the main memory for storing data to the accelerator system, and when the processing is completed in the accelerator system, the processed data is transferred (returned) to the main system side. ). When a plurality of processing requests are generated from the application almost at the same time, the plurality of processing requests and the corresponding processing target data are passed to the accelerator system.

ここで、単一のアクセラレータが複数の処理要求をほぼ同時期に受け取った場合、1つのデータを処理している間、他の処理は待たされることになる。処理中のデータサイズが大きければその他の処理の待ち時間も大きくなる。この結果、本来であれば間隔を空けずに送信したいデータが、他の処理のデータサイズが大きければそれだけ処理に時間が掛かり、間隔が空き、データの送受信にゆらぎが発生してしまう問題が生じる。   Here, if a single accelerator receives a plurality of processing requests almost at the same time, the other processing is kept waiting while processing one data. If the data size during processing is large, the waiting time for other processing also increases. As a result, there is a problem in that data that is originally intended to be transmitted without a gap is longer if the data size of other processes is large, the process takes time, and there is a gap in the data transmission / reception. .

図19は、従来技術における、この問題点を説明する図である。図19では、処理要求はほぼ同時に発せられているものの、チェックサム計算→復号化→暗号化→認証処理の順で処理要求がアクセラレータドライバに届いている。このため、アクセラレータドライバが処理要求の到着順に処理する場合、先に到着した処理要求に対するデータ処理が終わるまでは、後で到着した処理要求に対するデータ処理については実行できず、長い時間待たされることになる。   FIG. 19 is a diagram for explaining this problem in the prior art. In FIG. 19, although the processing requests are issued almost simultaneously, the processing requests arrive at the accelerator driver in the order of checksum calculation → decryption → encryption → authentication processing. For this reason, when the accelerator driver processes the processing requests in the order of arrival, the data processing for the processing request that arrives later cannot be executed until the data processing for the processing request that has arrived earlier is completed, and it will wait for a long time. Become.

たとえば、チェックサム計算が完了するまでは、復号化、暗号化、および認証の各処理は待たされてしまう。また、この後に復号化を行なうと、復号化処理が完了するまでは、暗号化および認証の各処理は待たされてしまう。この結果、通信時に伝送のゆらぎが発生することになる。これは、たとえば、リアルタイムにストリームデータを送受信しなければならない通信システムにおいては問題となる。   For example, the decryption, encryption, and authentication processes are kept waiting until the checksum calculation is completed. If decryption is performed thereafter, the encryption and authentication processes are kept waiting until the decryption process is completed. As a result, transmission fluctuations occur during communication. This is a problem in a communication system that must transmit and receive stream data in real time, for example.

本発明は、上記事情に鑑みてなされたものであり、複数の処理要求がほぼ同時に発生した場合においても、効率的な処理をアクセラレータにて行なうことができる技術を提供することを目的とする。   The present invention has been made in view of the above circumstances, and an object of the present invention is to provide a technique capable of performing efficient processing with an accelerator even when a plurality of processing requests are generated almost simultaneously.

本発明に係るデータ処理方法は、メインシステムからハードウェアで構成されたエンジン部に処理対象データを転送して所定の処理を行ない、処理済みデータをメインシステムに転送するデータ処理方法であって、エンジン部が担当するそれぞれ異なる処理内容の複数の処理について、先ず、複数の処理の各々で処理対象とされる処理対象データを所定サイズに分割し、処理内容に関する所定の基準に基づいて、分割された各分割データのエンジン部への転送順序を決定することとした。そして、この決定された転送順序に従って、各分割データをエンジン部へ順次転送し、エンジン部において、メインシステムから転送された分割データの処理内容に応じた処理を順次実行し、処理済みデータをメインシステムに転送することとした。こうすることで、複数の処理からなる一連の処理を完結する。   A data processing method according to the present invention is a data processing method for transferring processing target data to an engine unit configured by hardware from a main system, performing predetermined processing, and transferring processed data to the main system, For a plurality of processes with different processing contents handled by the engine unit, first, the processing target data to be processed in each of the plurality of processes is divided into a predetermined size and divided based on a predetermined criterion regarding the processing contents. In addition, the transfer order of each divided data to the engine unit is determined. Then, according to the determined transfer order, each divided data is sequentially transferred to the engine unit, and the engine unit sequentially executes processing according to the processing content of the divided data transferred from the main system, and the processed data is transferred to the main unit. We decided to transfer it to the system. In this way, a series of processes consisting of a plurality of processes is completed.

また、本発明に係るデータ処理装置は、上記本発明に係るデータ処理方法を実施するのに好適な装置であって、メインシステムに、複数の処理の各々で処理対象とされる処理対象データを所定サイズに分割し、所定の基準に基づいて、分割された各分割データのエンジン部への転送順序を決定する処理手順制御部を設けることとした。   A data processing apparatus according to the present invention is a suitable apparatus for carrying out the data processing method according to the present invention, and processing target data to be processed in each of a plurality of processes is stored in the main system. A processing procedure control unit that divides the data into a predetermined size and determines the transfer order of the divided data to the engine unit based on a predetermined standard is provided.

処理手順制御部により決定された転送順序で実際に分割データをエンジン部に転送する際には、メインシステム側がマスターとなってもよいし、あるいはDMA転送のように、エンジン部がマスターとなってもよい。また、ディスクリプタキューを利用した先入れ先出し法を利用するとよい。   When the divided data is actually transferred to the engine unit in the transfer order determined by the processing procedure control unit, the main system side may become the master, or the engine unit becomes the master as in DMA transfer. Also good. In addition, a first-in first-out method using a descriptor queue may be used.

また従属項に記載された発明は、本発明に係るデータ処理方法およびデータ処理装置のさらなる有利な具体例を規定する。   The invention described in the dependent claims defines further advantageous specific examples of the data processing method and the data processing apparatus according to the present invention.

たとえば、処理内容に関する所定の基準や分割サイズを、メインシステムが適用するアプリケーションに応じて決定するようにするとよい。こうすることで、アプリケーションに適合するように処理特性を制御することができる。   For example, it is preferable to determine a predetermined standard or division size related to the processing contents according to the application applied by the main system. In this way, the processing characteristics can be controlled so as to suit the application.

また、エンジン部は、それぞれ異なる処理内容として、通信プロトコルにおける、暗号化処理、復号化処理、あるいは認証処理などのセキュリティ処理を行なうセキュリティ処理部、あるいはチェックサム処理を行なうチェックサム処理部をそれぞれ独立したハードウェア回路として有しているものであるのがよい。   In addition, the engine unit has, as different processing contents, a security processing unit that performs security processing such as encryption processing, decryption processing, or authentication processing in a communication protocol, or a checksum processing unit that performs checksum processing. It is preferable to have a hardware circuit.

勿論、メインシステムとエンジン部との間で協調処理を行なう場合に、独立した複数の処理の一部の処理をハードウェアで構成されたエンジン部で行なうシステム構成であればよく、エンジン部が行なう処理内容は、通信プロトコルに関わる処理に限定されるものではない。   Of course, in the case of performing cooperative processing between the main system and the engine unit, any system configuration in which a part of a plurality of independent processes is performed by an engine unit configured by hardware may be used. The processing content is not limited to the processing related to the communication protocol.

なお、メインシステム側の処理手順制御部に関しては、電子計算機(コンピュータ)を用いてソフトウェアで実現することもでき、このためのプログラムやこのプログラムを格納した記録媒体を発明として抽出することも可能である。プログラムは、コンピュータ読取り可能な記憶媒体に格納されて提供されてもよいし、有線あるいは無線による通信手段を介して配信されてもよい。   The processing procedure control unit on the main system side can be realized by software using an electronic computer (computer), and a program for this purpose and a recording medium storing this program can be extracted as an invention. is there. The program may be provided by being stored in a computer-readable storage medium, or may be distributed via wired or wireless communication means.

本発明に依れば、複数の処理要求がほぼ同時に発生した場合に、複数の処理の各々で処理対象とされる処理対象データを所定サイズで分割するとともに、所定の基準に従った転送順序で分割データを順次エンジン部に転送して処理を実行するようにした。   According to the present invention, when a plurality of processing requests are generated almost simultaneously, the processing target data to be processed in each of the plurality of processing is divided by a predetermined size, and in a transfer order according to a predetermined standard. The divided data is sequentially transferred to the engine unit to execute processing.

このため、エンジン部においては、順次転送される各処理要求に応じた分割データに対して所要の処理を順次実行することができ、実質的に、複数の処理要求に対して並行処理を行なうことができる。この結果、複数の処理要求に対してほぼ同時期に処理でき、処理要求が待たされることや、通信時の伝送ゆらぎを低減させることや、通信帯域の保証が可能になる。   For this reason, the engine unit can sequentially execute the required processing on the divided data corresponding to each processing request transferred sequentially, and substantially performs parallel processing on a plurality of processing requests. Can do. As a result, it is possible to process a plurality of processing requests almost simultaneously, waiting for the processing requests, reducing transmission fluctuations during communication, and guaranteeing the communication band.

以下、図面を参照して本発明の実施形態について詳細に説明する。   Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.

<装置構成>
図1は、本発明に係るデータ処理装置の一実施形態を備えたコンピュータ装置の構成を示したブロック図である。
<Device configuration>
FIG. 1 is a block diagram showing a configuration of a computer apparatus including an embodiment of a data processing apparatus according to the present invention.

図示するように、コンピュータ装置1は、メインシステム100と、ハードウェアで構成された処理回路部分であるエンジン部200と、周辺デバイス300とを備えて構成されている。   As shown in the figure, the computer apparatus 1 includes a main system 100, an engine unit 200 that is a processing circuit portion configured by hardware, and a peripheral device 300.

メインシステム100は、コンピュータ装置1全体の動作制御やそのほかの演算や制御の各処理機能をなすCPU(Central Processing Unit )やMPU(Micro Processing Unit )などの中央演算制御処理部110と、不揮発性の記憶部の一例であるROM(Read Only Memory)122および書換可能な記憶部の一例でありメインメモリとして機能するRAM(Random Access Memory)124を有するメモリ部120とを備える。   The main system 100 includes a central processing control processing unit 110 such as a CPU (Central Processing Unit) and an MPU (Micro Processing Unit) that perform operation control of the entire computer device 1 and other processing and control processing functions. A ROM (Read Only Memory) 122 that is an example of a storage unit and a memory unit 120 that is an example of a rewritable storage unit and includes a RAM (Random Access Memory) 124 that functions as a main memory.

またメインシステム100は、種々の周辺デバイス300やイントラネットあるいはインターネットなどの通信網との間のインタフェース(Inter Face)機能をなすインタフェース部150と、記録媒体400からデータを読み出したり書き込んだりするドライブ機能とインタフェース機能とを持つメディアIF部170と、各部を互いに接続するアドレスバスおよびデータバスを含む内部バス180とを備えている。処理データや制御データは、内部バス180を通じてコンピュータ装置1の各ハードウェア間をやり取りされる。   The main system 100 also includes an interface unit 150 that performs an interface function with various peripheral devices 300 and a communication network such as an intranet or the Internet, and a drive function that reads and writes data from the recording medium 400. A media IF unit 170 having an interface function and an internal bus 180 including an address bus and a data bus for connecting the units to each other are provided. Processing data and control data are exchanged between the hardware of the computer apparatus 1 through the internal bus 180.

ROM122は、内部に、中央演算制御処理部110のCPUなどが各種処理を行なうための制御プログラムが格納されるプログラム記憶領域や、中央演算制御処理部110が各種処理を行なうために必要とするそのほかのデータ記憶領域を有する。さらに、プログラム記憶領域は、BIOS(Basic Input/Output System )やOS(Operating Systems ;基本ソフト)やGUI(Graphical User Interface)処理などのプログラムをも格納している。中央演算制御処理部110は、BIOSやOSやGUI処理を利用しつつ、ROM122内のプログラムを実行することによって、各種の処理を行なう各部の機能を実現する。   The ROM 122 has a program storage area in which a control program for the CPU of the central processing control processing unit 110 and the like for performing various processings is stored therein, and other items necessary for the central processing control processing unit 110 to perform various processings. Data storage area. Furthermore, the program storage area stores programs such as BIOS (Basic Input / Output System), OS (Operating Systems; basic software), and GUI (Graphical User Interface) processing. The central processing control processing unit 110 implements the functions of various units that perform various processes by executing programs in the ROM 122 while using the BIOS, OS, and GUI processing.

RAM124は、中央演算制御処理部110が各種処理を実行する際のワークメモリとして用いられる作業領域であって、外部から取り込んだデータを格納するデータ記憶領域、あるいはそのほかの処理対象データを格納する領域を含んでいる。   The RAM 124 is a work area used as a work memory when the central processing control processing unit 110 executes various processes, and is a data storage area for storing data taken from outside, or an area for storing other processing target data. Is included.

周辺デバイス300としては、CRT(Cathode Ray Tube;陰極線管)やLCD(Liquid Crystal Display;液晶)などの表示デバイスを有するディスプレイ部302、コンピュータ装置1を操作するためのタッチパネル304aや操作キー(たとえば押圧式のボタン)を持つキーボード304bやマウス304cなどの操作部304、処理結果を紙媒体などに印刷出力するためのプリンタ部306、画像を取り込むためのスキャナ部308、および記憶媒体の一例である外付けのハードディスク装置310を有する。周辺デバイス300は、それぞれに応じたIF(インタフェース)部151,152,154,156,158を介して内部バス180に接続されるようになっている。   The peripheral device 300 includes a display unit 302 having a display device such as a CRT (Cathode Ray Tube) or an LCD (Liquid Crystal Display), a touch panel 304a for operating the computer apparatus 1 and operation keys (for example, pressing keys). An operation unit 304 such as a keyboard 304b or a mouse 304c having a formula button), a printer unit 306 for printing out processing results on a paper medium or the like, a scanner unit 308 for capturing images, and an external storage medium that is an example of a storage medium A hard disk device 310 is provided. The peripheral device 300 is connected to the internal bus 180 via IF (interface) units 151, 152, 154, 156, and 158 according to each.

記録媒体400は、コンピュータ装置1のハードウェア資源に備えられている読取装置に対して、プログラムの記述内容に応じて、磁気、光、電気などのエネルギの変化状態を引き起こして、および対応する信号の形式で、読取装置にプログラムの記述内容を伝達できるものである。   The recording medium 400 causes a change state of energy such as magnetism, light, electricity, and the like to the reading device provided in the hardware resource of the computer device 1 according to the description content of the program, and a corresponding signal In this format, the program description can be transmitted to the reader.

たとえば、コンピュータ装置1に予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM122やハードディスク装置174、あるいは外付けのハードディスク装置310(404)などで構成されてもよい。あるいは、コンピュータ装置1とは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている、ICカードやミニチュアカードなどの種々の方式の半導体メモリカードのようなフラッシュメモリなどの不揮発性の半導体メモリを用いた記録メディア402、磁気ディスク(フレキシブルディスク(FD)406を含む)、光ディスク(CD−ROM(Compact Disc-Read Only Memory )、DVD(Digital Versatile Disc)を含む)408、光磁気ディスク(MD(Mini Disc )を含む)などのパッケージメディア(可搬型の記憶媒体)により構成されてもよい。   For example, the program may be configured by a ROM 122, a hard disk device 174, an external hard disk device 310 (404), or the like that is provided to the user in a state of being pre-installed in the computer device 1 and stores a program. Alternatively, in addition to the computer device 1, a nonvolatile memory such as a flash memory such as a semiconductor memory card of various types such as an IC card or a miniature card that is distributed to provide a program to a user and that stores the program. Recording medium 402 using a flexible semiconductor memory, magnetic disk (including flexible disk (FD) 406), optical disk (including CD-ROM (Compact Disc-Read Only Memory), DVD (Digital Versatile Disc)) 408, optical It may be configured by a package medium (portable storage medium) such as a magnetic disk (including MD (Mini Disc)).

上記構成によって、コンピュータ装置1は、それぞれ専用のハードウェアによりなされる処理機能を、その機能を実現するプログラムコードに基づきソフトウェア的に実現することができるようになっている。   With the above-described configuration, the computer apparatus 1 can realize the processing function performed by dedicated hardware in software based on the program code that realizes the function.

コンピュータ装置1に組み込まれるソフトウェアとしては、たとえば、複写アプリケーション、プリンタアプリケーション、ファクシミリ(FAX)アプリケーションあるいは他のアプリケーション用の処理プログラムなど、従来の各種装置におけるものと同様のものが組み込まれる。また、装置が、スキャナ部308で読み取った画像を処理したり、Webサイトへのアクセス要求に対してネットワークIF部158を介して外部とのデータを送受信したりするためのアクセス制御処理あるいは認証処理のためのプログラムも組み込まれる。   The software incorporated in the computer apparatus 1 includes those similar to those in various conventional apparatuses such as a copy application, a printer application, a facsimile (FAX) application, or a processing program for other applications. In addition, an access control process or an authentication process for the device to process an image read by the scanner unit 308 or to transmit / receive data to / from the outside via the network IF unit 158 in response to a request for accessing a Web site. A program for is also included.

たとえば、本発明に係るデータ処理を実施するためのハードウェア処理回路を制御する機能部分を、電子計算機(コンピュータ)を用いてソフトウェアで実現するために好適なプログラムあるいはこのプログラムを格納したコンピュータ読取可能な記憶媒体を発明として抽出することもできる。ソフトウェアにより実行させる仕組みとすることで、ハードウェアの変更を伴うことなく、処理手順などを容易に変更できる利点を享受できるようになる。   For example, a program suitable for realizing a functional part that controls a hardware processing circuit for performing data processing according to the present invention by software using an electronic computer (computer) or a computer-readable computer storing this program New storage media can also be extracted as an invention. By adopting a mechanism that is executed by software, it is possible to enjoy the advantage that the processing procedure and the like can be easily changed without changing hardware.

一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ(組込マイコンなど)、あるいは、CPUやMPU、論理回路、記憶装置などの機能を1つのチップ上に搭載して所望のシステムを実現するSOC(System On a Chip:システムオンチップ)、または、各種プログラムをインストールすることで各種の機能を実行することが可能な汎用のパーソナルコンピュータなどに、記録媒体400からインストールされる。または、ソフトウェアを構成するプログラムが、ネットワークIF部158および有線あるいは無線などの通信網を介して提供されてもよい。   When a series of processing is executed by software, a program constituting the software is a computer (such as an embedded microcomputer) incorporated in dedicated hardware, or a CPU, MPU, logic circuit, storage device, etc. System on a chip (SOC) that implements a desired system by mounting functions on a single chip, or general-purpose personal that can execute various functions by installing various programs It is installed from the recording medium 400 into a computer or the like. Alternatively, a program constituting the software may be provided via the network IF unit 158 and a communication network such as wired or wireless.

たとえば、Webサーバへのアクセス制御処理や認証処理を行なう機能を実現するソフトウェアのプログラムコードを記録した記憶媒体400を、コンピュータ装置1に供給し、コンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、ハードウェアにて構成する場合と同様の効果は達成される。   For example, a storage medium 400 in which a program code of software that realizes a function of performing an access control process and an authentication process for a Web server is supplied to the computer apparatus 1 and the computer (or CPU or MPU) is stored in the storage medium. Even when the program code is read out and executed, the same effect as that achieved by hardware can be achieved.

なお、記録媒体400から読み出されたプログラムコード自体がアクセス制御処理や認証処理の機能を実現することでもよいし、そのプログラムコードの指示に基づきコンピュータ上で稼働しているOSなどが実際の処理の一部または全部を行なうものであってもよい。また、一括のプログラムファイルとして提供されることに限らず、コンピュータで構成されるシステムのハードウェア構成に応じて、個別のプログラムモジュールとして提供されてもよい。   Note that the program code itself read from the recording medium 400 may realize the functions of the access control process and the authentication process, or the OS running on the computer based on the instruction of the program code may actually perform the process. A part or all of the above may be performed. Further, the program files are not limited to be provided as a batch program file, and may be provided as individual program modules according to the hardware configuration of a system configured by a computer.

ここで、本実施形態のコンピュータ装置1においては、種々の制御処理機能をなす全ての処理をソフトウェアで行なうのではなく、これら機能部分の一部をハードウェアにて行なうための処理回路として、エンジン部200が設けられている。ハードウェアにて処理を行なうことで、ソフトウェア処理よりも処理の高速化を図ることができる。   Here, in the computer apparatus 1 according to the present embodiment, the engine is used as a processing circuit for performing a part of these functional parts by hardware, rather than performing all the processes of various control processing functions by software. Part 200 is provided. By performing the processing with hardware, the processing speed can be increased as compared with the software processing.

具体的には、本実施形態のエンジン部200は、クリプトエンジン(Crypto Engine ;暗号エンジン)として機能するように構成されており、暗号化処理や復号化処理といった秘匿処理や認証処理やチェックサム処理を行なうデータ処理部240と、データ処理部240用の処理対象データをデータ処理部240に渡し処理済みのデータをメインシステム100に返す制御部260とを有している。データ処理部240と制御部260は、それぞれの処理を行なうための図示しない小容量のワークメモリ(レジスタ)を持つ。このクリプトエンジンとして機能するエンジン部200は、単一のハードウェアデバイスによって構成されるのがよい。   Specifically, the engine unit 200 according to the present embodiment is configured to function as a crypto engine (crypto engine), and includes secret processing such as encryption processing and decryption processing, authentication processing, and checksum processing. And a control unit 260 that passes processing target data for the data processing unit 240 to the data processing unit 240 and returns the processed data to the main system 100. The data processing unit 240 and the control unit 260 have a small-capacity work memory (register) (not shown) for performing each processing. The engine unit 200 that functions as the crypto engine may be configured by a single hardware device.

これにより、コンピュータ装置1は、エンジン部200が、CPUなどを有する中央演算制御処理部110と、ROM122およびRAM124を有するメモリ部120とに接続されて構成されることで、本発明に係るデータ処理装置3が構成される。   Thus, the computer apparatus 1 is configured such that the engine unit 200 is connected to the central processing control processing unit 110 having a CPU and the like, and the memory unit 120 having a ROM 122 and a RAM 124, whereby data processing according to the present invention is performed. A device 3 is configured.

データ処理装置3は、内部バス180並びにネットワークIF部158を介して、イントラネットやインターネットなどの通信網に接続され、他装置との間でデータの送受信を行なう。この際、通信データに対しては、所定のプロトコルに従って、たとえば、ハッシュ関数を利用した認証処理、共通鍵方式や公開鍵方式を利用した秘匿処理、あるいはチェックサム処理などがなされる。   The data processing device 3 is connected to a communication network such as an intranet or the Internet via the internal bus 180 and the network IF unit 158, and transmits / receives data to / from other devices. At this time, the communication data is subjected to authentication processing using a hash function, concealment processing using a common key method or public key method, or checksum processing, for example, according to a predetermined protocol.

データ処理装置3において、メインシステム100の中央演算制御処理部110は、本実施形態特有の機能部(ソフトウェアで構成される)として、データ解析部113と処理手順制御部115とを有するアクセラレータドライバ117を備えている。   In the data processing device 3, the central processing control processing unit 110 of the main system 100 is an accelerator driver 117 having a data analysis unit 113 and a processing procedure control unit 115 as functional units (configured by software) unique to the present embodiment. It has.

データ解析部113は、秘匿処理や認証処理やチェックサム処理などのデータ処理部240が処理を担当する複数の処理要求において、各処理要求の処理対象データ中に並行した処理を行なう部分が存在するか否かを判定する。   The data analysis unit 113 includes a portion that performs parallel processing in the processing target data of each processing request in a plurality of processing requests handled by the data processing unit 240 such as concealment processing, authentication processing, and checksum processing. It is determined whether or not.

処理手順制御部115は、データ解析部113が並行した処理を行なう部分が存在すると判定したことを条件として、データ処理部240における複数の処理要求の処理手順を示す処理手順情報と、データ処理部240が取り扱う処理対象データの格納場所を示すデータ格納場所情報とを対応付けて所定のメモリの所定の記憶領域(データプール)に格納する。   The processing procedure control unit 115 includes processing procedure information indicating processing procedures of a plurality of processing requests in the data processing unit 240, and a data processing unit, on condition that the data analysis unit 113 determines that there is a part that performs parallel processing. Data storage location information indicating the storage location of the processing target data handled by 240 is stored in a predetermined storage area (data pool) of a predetermined memory in association with it.

また、処理手順制御部115は、エンジン部200が処理待ちになったときに、データプールに格納しておいた種々の情報を、エンジン部200に順次転送し、エンジン部200を起動する。   In addition, when the engine unit 200 waits for processing, the processing procedure control unit 115 sequentially transfers various information stored in the data pool to the engine unit 200 and activates the engine unit 200.

ハードウェアで構成されるエンジン部200は、処理手順制御部115からの起動指示を受けたことを条件として、所定のデータプールに記憶されている処理手順情報とデータ格納場所情報に従って、要求された処理を順次行ない、処理済みのデータをメインシステム100に返す。   The engine unit 200 configured by hardware is requested in accordance with processing procedure information and data storage location information stored in a predetermined data pool on condition that an activation instruction is received from the processing procedure control unit 115. The processing is sequentially performed, and the processed data is returned to the main system 100.

たとえば、中央制御部110の主要部をなすCPUは、予めROM122やハードディスク装置174内に格納されている制御プログラムに基づいて必要なGUI画面をディスプレイ部302に順次表示させるとともに、制御プログラムおよびタッチパネル304aを介して与えられるユーザ入力に基づいて、図示しないクライアント装置やWebサーバなどにアクセスして、ユーザの希望するコンテンツ(ここでは出力対象画像)をダウンロードし、プリンタ部306にて印刷出力させる。   For example, the CPU that forms the main part of the central control unit 110 sequentially displays necessary GUI screens on the display unit 302 based on a control program stored in the ROM 122 or the hard disk device 174 in advance, as well as the control program and the touch panel 304a. Based on the user input given via, a client device or a Web server (not shown) is accessed to download the content desired by the user (image to be output here), and the printer unit 306 prints it out.

この際、中央演算制御処理部110のCPUは、そのユーザがアカウントを所持している認証サーバに問い合わせることでユーザ認証を行なってから、そのユーザにコンピュータ装置1の使用を許可し、さらにWebサーバへのアクセスも制御する。これにより、ユーザは、そのアカウントを利用して、コンピュータ装置1の使用やWebサーバへのアクセスが可能となる。   At this time, the CPU of the central processing control processing unit 110 authenticates the user by making an inquiry to the authentication server in which the user has an account, and then permits the user to use the computer device 1 and further uses the Web server. Also controls access to. As a result, the user can use the computer device 1 and access the Web server using the account.

次に、本発明に係るデータ処理装置3がなすデータ処理について詳しく説明する。   Next, data processing performed by the data processing device 3 according to the present invention will be described in detail.

<データ処理装置に対する処理手順の制御手法を実現する構成>
図2〜図4は、データ処理装置3を用いてデータ処理を行なうに当たってのデータ処理装置に対する処理手順制御機能を実現するためのシステムアーキテクチャの構成例を説明する図である。
<Configuration that realizes processing procedure control method for data processing apparatus>
2 to 4 are diagrams illustrating an example of a configuration of a system architecture for realizing a processing procedure control function for a data processing device when data processing is performed using the data processing device 3.

メインシステム100は、データ処理装置3が行なう秘匿処理や認証処理を担当する複数の処理要求において各処理要求の処理対象データ中に並行した処理を行なう部分が存在する場合、データ処理装置3における前記複数の処理要求の処理手順を示す処理手順情報と、データ処理部が取り扱う処理対象データのメモリ部120における格納場所を示すデータ格納場所情報とを対応付けた情報を生成する。   When the main system 100 includes a portion that performs parallel processing in the processing target data of each processing request in a plurality of processing requests in charge of the concealment processing and authentication processing performed by the data processing device 3, the data processing device 3 Information is generated by associating processing procedure information indicating processing procedures of a plurality of processing requests with data storage location information indicating storage locations in the memory unit 120 of processing target data handled by the data processing unit.

本実施形態特有の機能として、処理要求を階層モデルで取り扱い、エンジン部200が複数の処理階層を同時並行的に実行可能な場合は、メインシステム100は、エンジン部200が効率的に並行処理を実行できるように、複数の処理要求や対応する処理対象データのエンジン部200への通知手順を決め、この決定に従って、各処理要求された処理対象データをエンジン部200に転送してエンジン部200を起動する。   As a function unique to the present embodiment, when the processing request is handled in a hierarchical model and the engine unit 200 can execute a plurality of processing layers simultaneously in parallel, the main system 100 allows the engine unit 200 to efficiently perform parallel processing. A procedure for notifying the engine unit 200 of a plurality of processing requests and corresponding processing target data so as to be executed is determined, and the processing target data requested for each processing is transferred to the engine unit 200 according to this determination, and the engine unit 200 is to start.

ここで、処理手順情報やデータ格納場所情報あるいは処理対象データをエンジン部200に転送する仕組みとしては、コンピュータアーキテクチャにおけるメモリ管理の手法と同様に、メモリから所要部分のデータを読み出す際の種々の手法を利用することができる。また、データの読出しに際しては、CPUがメモリ制御部として機能しバスマスターとなるプログラム転送の形態と、制御部260にDMA(Direct Memory Access)コントローラをメモリ制御部として設けることで、制御部260がバスマスターとなりDMA転送することで、メインシステム100の中央演算制御処理部110を介することなく、メモリ部120とエンジン部200との間でデータ転送を行なう形態の何れであってもよい。DMA転送にすれば、CPU負荷を軽減でき転送効率が高まる。   Here, as a mechanism for transferring the processing procedure information, the data storage location information, or the processing target data to the engine unit 200, various methods for reading out data of a required portion from the memory, as in the memory management method in the computer architecture. Can be used. In addition, when reading data, the CPU 260 functions as a memory control unit and serves as a bus master, and the control unit 260 is provided with a DMA (Direct Memory Access) controller as a memory control unit. The data transfer between the memory unit 120 and the engine unit 200 may be performed without using the central processing control processing unit 110 of the main system 100 by performing DMA transfer as a bus master. If DMA transfer is used, the CPU load can be reduced and the transfer efficiency can be increased.

また、データ転送における転送モードとしては、1回のアドレス指定で複数のデータを纏めて連続的に転送するバースト転送モードを用いることで、データ転送時に逐一アドレスを指定するサイクルを実行する手間を省き、データ転送速度を向上させるのがよい。この場合、データを、メモリ部120のRAM124における、連続したアドレスに格納するようにする。   In addition, as a transfer mode in data transfer, a burst transfer mode in which a plurality of data is transferred continuously with one address designation can be saved, thereby eliminating the trouble of executing a cycle for designating addresses one by one at the time of data transfer. It is better to improve the data transfer rate. In this case, the data is stored at consecutive addresses in the RAM 124 of the memory unit 120.

何れにしても、中央演算制御処理部110とエンジン部200との間においては、エンジン部200に通知される情報に基づいて、ハッシュ関数を利用した認証処理、共通鍵方式や公開鍵方式を利用した秘匿処理、あるいはチェックサム処理などを、エンジン部200内のデータ処理部240において同時並行的に実行できるように、メモリへのデータの格納手法や読出し手法を取り込めておく。   In any case, between the central processing control processing unit 110 and the engine unit 200, based on information notified to the engine unit 200, an authentication process using a hash function, a common key method or a public key method is used. A method for storing and reading data in the memory is incorporated so that the data processing unit 240 in the engine unit 200 can execute the concealment process or the checksum process performed in parallel.

たとえば、図2に示す第1の構成例は、DMAコントローラ232を制御部260内に設けることで、制御部260がメモリ部120に対してバスマスターとなって、メモリ部120からデータを自律的に読み出す形態の構成例を示している。ここで、第1の構成例では、中央演算制御処理部110は、処理手順情報とデータ格納場所情報を、制御部260内のレジスタ(メモリの一種)234に設定する。いわゆる、レジスタ方式を利用したものである。処理手順情報には、一連の処理における通知順序の情報も記述されるようにする。   For example, in the first configuration example shown in FIG. 2, by providing the DMA controller 232 in the control unit 260, the control unit 260 becomes a bus master for the memory unit 120, and data is autonomously transmitted from the memory unit 120. The example of a structure of the form read in is shown. Here, in the first configuration example, the central processing control processing unit 110 sets processing procedure information and data storage location information in a register (a type of memory) 234 in the control unit 260. A so-called register system is used. In the processing procedure information, notification order information in a series of processing is also described.

レジスタ268には、図2(B)に示すように、データ格納領域であるレジスタ(記憶部)として、中央演算制御処理部110の処理手順制御部115が設定した処理手順情報とデータ格納場所情報とを対応付けて格納する手順レジスタ(Descriptor Registers)268a、処理手順制御部115からの処理指示命令を格納する制御レジスタ(Control Registers )268b、手順レジスタ268aから順に読み出した処理コマンドを格納するコマンドレジスタ(Command Registers )268c、RAM124の処理データ格納領域125から取り込んだ処理対象データ(原データ;Source Data )や処理済みのデータを格納するデータレジスタ(Data Registers)268dが設けられている。情報の格納と読出しの形態としては、後述するキュー(Queue )構造を採る。   As shown in FIG. 2B, the register 268 includes processing procedure information and data storage location information set by the processing procedure control unit 115 of the central processing control processing unit 110 as a register (storage unit) that is a data storage area. Is stored in association with a procedure register (Descriptor Registers) 268a, a control register (Control Registers) 268b that stores a processing instruction command from the processing procedure control unit 115, and a command register that stores processing commands read in sequence from the procedure register 268a (Command Registers) 268c and data registers (Data Registers) 268d for storing processing target data (source data) fetched from the processing data storage area 125 of the RAM 124 and processed data are provided. As a form of storing and reading information, a queue structure described later is adopted.

制御部260は、中央演算制御処理部110の処理手順制御部115から処理の開始指示を受けると、手順レジスタ268aに設定されている処理手順情報とデータ格納場所情報とを参照して、処理手順に従った順序で、メモリ部120内のRAM124における処理データ格納領域125から必要な部分の処理対象データを読み出して順に処理を実行する。   When the control unit 260 receives a processing start instruction from the processing procedure control unit 115 of the central processing control processing unit 110, the control unit 260 refers to the processing procedure information and the data storage location information set in the procedure register 268a. In accordance with the order, the necessary data to be processed is read from the processing data storage area 125 in the RAM 124 in the memory unit 120 and the processing is executed in order.

図3に示す第2の構成例は、DMAコントローラ232を制御部260内に設けることで、制御部260がメモリ部120に対してバスマスターとなってメモリ部120からデータを読み出す形態の他の構成例を示している。   In the second configuration example shown in FIG. 3, the DMA controller 232 is provided in the control unit 260, so that the control unit 260 becomes a bus master for the memory unit 120 and reads data from the memory unit 120. A configuration example is shown.

ここで、第2の構成例は、ハードウェア構成はデータの格納と読出しの形態に特徴があり、処理手順情報とデータ格納場所情報とを対応付けたディスクリプタをキュー(Queue )構造としてメモリ部120内のRAM124におけるディスクリプタ領域127に格納し読み出す形態を採る。処理要求発生ごとの格納順と読出順とを対応付けておくので、処理手順情報には、一連の処理における処理順序の情報の記述は不要である。   Here, the second configuration example is characterized in the form of data storage and reading in the hardware configuration, and the memory unit 120 uses a descriptor in which processing procedure information and data storage location information are associated with each other as a queue structure. A form in which data is stored in and read from the descriptor area 127 in the RAM 124 is adopted. Since the storage order and the reading order for each processing request occurrence are associated with each other, the processing procedure information does not require description of processing order information in a series of processing.

制御部260は、処理手順制御部115から起動指示を受けると、メモリ部120内のディスクリプタ領域127にキュー構造で設定されている処理手順情報とデータ格納場所情報とを参照して、メモリ部120内のRAM124における処理データ格納領域125から必要な部分の処理対象データを読み出して順に処理を実行する。   Upon receiving an activation instruction from the processing procedure control unit 115, the control unit 260 refers to the processing procedure information and data storage location information set in the descriptor area 127 in the memory unit 120 in a queue structure, and the memory unit 120. A necessary portion of processing target data is read from the processing data storage area 125 in the internal RAM 124 and the processing is executed in order.

図4に示す第3例の構成は、中央演算制御処理部110が、メモリ部120に対してバスマスターとなってメモリ部120から処理対象データを読み出して制御部260に渡す形態の一構成例を示している。CPU負荷が大きくなるが、DMAコントローラを要しないのでシステムがコンパクトになる。なお、この場合においても、図4(A)に示すように、各情報を中央演算制御処理部110内のレジスタ(記憶部)119に設定するレジスタ方式や、図4(B)に示すように、それぞれの位置をメモリ部120内のRAM124における処理データ格納領域125と対応するディスクリプタ領域127に設定するディスクリプタ方式を採り得る。また、データの格納と読出しの形態としては、キュー構造を採る。   The configuration of the third example shown in FIG. 4 is an example of a configuration in which the central processing control processing unit 110 serves as a bus master for the memory unit 120 and reads processing target data from the memory unit 120 and passes it to the control unit 260. Is shown. Although the CPU load increases, the system becomes compact because no DMA controller is required. In this case as well, as shown in FIG. 4A, a register method in which each information is set in the register (storage unit) 119 in the central processing control processing unit 110, or as shown in FIG. A descriptor method in which the respective positions are set in the descriptor area 127 corresponding to the processing data storage area 125 in the RAM 124 in the memory unit 120 can be adopted. Further, a queue structure is adopted as a form of data storage and reading.

何れの場合でも、中央演算制御処理部110は、レジスタ119もしくはディスクリプタ領域127に設定されている処理内容の指示(コマンド)と、処理対象データの格納場所を示す情報とを参照して、メモリ部120内のRAM124における処理データ格納領域125から必要な部分のデータを読み出して、処理対象データを処理内容の指示(コマンド)とともに制御部260に転送する。   In any case, the central processing control processing unit 110 refers to the processing content instruction (command) set in the register 119 or the descriptor area 127 and the information indicating the storage location of the processing target data. A necessary portion of data is read from the processing data storage area 125 in the RAM 124 in 120, and the processing target data is transferred to the control unit 260 together with an instruction (command) of processing contents.

制御部260は、中央演算制御処理部110から起動指示を受けると、順に受け取る処理対象データおよび処理内容の指示(コマンド)に基づき、処理対象データに対して、処理内容の指示(コマンド)に従って順に処理を実行する。   When receiving the activation instruction from the central processing control processing unit 110, the control unit 260 sequentially applies the processing target data to the processing target data (command) based on the processing target data and the processing content instruction (command) received in sequence. Execute the process.

<ディスクリプタ>
図5は、手順レジスタ268aもしくはディスクリプタ領域127へのコマンドや処理対象データのアドレス情報の格納形態(コマンドディスクリプタ;Command Descriptor)B10と、格納される個々のコマンドである処理手順情報およびデータ格納場所情報の一例を示した図である。図5(A)に示すように、手順レジスタ268aやディスクリプタ領域127には、処理階層の処理要求ごとに、1ワード目には命令構造(Command Structure )1、…、Nワード目には命令構造Nというように、一連の命令構造が格納される。なお、処理内容によっては1つの命令構造だけで処理が実行される場合もある。
<Descriptor>
FIG. 5 shows a storage form (command descriptor) B10 of address information of commands and processing target data to the procedure register 268a or the descriptor area 127, and processing procedure information and data storage location information as individual commands to be stored. It is the figure which showed an example. As shown in FIG. 5A, in the procedure register 268a and the descriptor area 127, for each processing request of the processing hierarchy, the command structure (Command Structure) 1,... A series of instruction structures, such as N, is stored. Depending on processing contents, processing may be executed with only one instruction structure.

ワード(命令構造)の順に拘らず、1回のアドレス指定で一連の処理を行なうためのコマンドを纏めて連続的に読み出すべく、バースト転送モードを採用できるように、メモリ上の連続したアドレスをデータ格納位置とするのがよい。   Regardless of the order of words (instruction structure), continuous addresses on the memory are used so that the burst transfer mode can be adopted so that commands for performing a series of processing can be read continuously in a single address designation. It should be the storage position.

データ処理のための命令構造を定義するために、1つの命令構造CS内には、暗号化や複合化あるいは認証の方式や、処理内容の他、暗号化や複合化あるいは認証の開始並びに終了位置などの情報が書き込まれる。   In order to define a command structure for data processing, within one command structure CS, encryption, decryption, or authentication method, processing contents, encryption, decryption, or authentication start and end positions Such information is written.

一例として、図5(B)においては、Cプログラミング言語を用いて提示されるものの場合を示しており、DMA転送時の制御状態コマンド(control status command)CS1として、セキュリティ処理などのオペレーションに必要なソースデータの格納アドレスを特定する起点アドレス(Starting source address)CS2、処理済みデータの格納アドレスを特定する起点アドレス(Starting destination address)CS3、転送データ量(Number of bytes to transfer)CS4、および次のコマンドを示す情報(Ptr to next command struct)CS5が、一連の命令として書き込まれる。   As an example, FIG. 5 (B) shows a case presented using the C programming language, which is necessary for operations such as security processing as a control status command CS1 during DMA transfer. Starting address CS2 for specifying the storage address of the source data, Starting destination address CS3 for specifying the storage address of the processed data, Number of bytes to transfer CS4, and the following Information indicating a command (Ptr to next command struct) CS5 is written as a series of instructions.

図6〜図9は、ディスクリプタの構造を説明する図である。ここで、図6は、キュー(Queue )の構造を示している。キューは、待ち行列のことで、キュー構造とは、複数のデータを一時的に格納しておくための、データが一列に並んだイメージのデータ構造である。キューを使うことで、データを一時的に格納するためのメモリ領域を確保することができ、データを取り出すことによってメモリ領域を自動的に開放することができる。データを取り出す際は、インデックスなどのデータを識別するための情報を使わなくても、データの格納した順番を基準にしてデータを取り出すことができる。   6 to 9 are diagrams illustrating the structure of the descriptor. Here, FIG. 6 shows the structure of a queue. The queue is a queue, and the queue structure is an image data structure in which data is arranged in a line for temporarily storing a plurality of data. By using the queue, a memory area for temporarily storing data can be secured, and the memory area can be automatically released by extracting the data. When retrieving data, it is possible to retrieve data based on the order in which the data is stored without using information such as an index to identify the data.

キュー構造の典型例は、図6に示すように、データを格納した順番でデータを取り出すようにしたもので、最初に取り出せるのは、最後に入れたデータである。このようなデータ構造は、一般に、先入れ先出し(FIFO;First In First Out)と呼ばれる。このようなメモリ構造を、以下キュー構造メモリともいう。   A typical example of the queue structure is such that data is extracted in the order in which the data is stored, as shown in FIG. 6, and the data that can be extracted first is the data that was input last. Such a data structure is generally called first-in first-out (FIFO). Such a memory structure is hereinafter also referred to as a queue structure memory.

本実施形態においてキュー構造メモリを採用する場合、処理対象データに対してのデータ処理装置3における一連の処理内容の指示と、処理対象データの格納場所を示す情報とが、纏めてディスクリプタキューに組み込まれる。また、複数の処理階層についてエンジン部200にて同時並行的に処理可能である場合には、複数の処理階層の処理対象データをそれぞれ所定サイズで分割し、分割した個々の処理対象データとこれに対する処理内容の指示とを所定の順序でエンジン部200に通知できるような順番で、ディスクリプタ領域127に格納する。   When the queue structure memory is employed in the present embodiment, a series of processing content instructions for the processing target data in the data processing device 3 and information indicating the storage location of the processing target data are collectively incorporated in the descriptor queue. It is. Further, when the engine unit 200 can process a plurality of processing hierarchies in parallel, the processing target data of the plurality of processing hierarchies is divided by a predetermined size, and the divided individual processing target data and corresponding data Instructions for processing contents are stored in the descriptor area 127 in an order that can be notified to the engine unit 200 in a predetermined order.

処理手順制御部115から起動指示を受けた制御部260は、そのときに指示された、キュー構造で設定された処理手順情報とデータ格納場所情報を順に1つずつ読み出して、エンジン部200にての処理を順に行なうことができる。   Upon receiving the activation instruction from the processing procedure control unit 115, the control unit 260 sequentially reads out the processing procedure information set in the queue structure and the data storage location information, which are instructed at that time, one by one in the engine unit 200. These processes can be performed in order.

なお、キュー構造の実現に当たっては、データを格納したアドレスに拘らず、データを先入れ先出しの順で読み出すことができるようになっていればよく、配列を宣言することで、動作としては、FIFOによる処理を記述することで実現することができる。たとえば、図6(B)に示すように、纏まった処理命令ごとにメモリの記憶領域を区分けして格納し、下流側への処理のリンクを順次設定していくようにしてもよい。   In order to realize the queue structure, it is sufficient that the data can be read out in the first-in first-out order regardless of the address where the data is stored. This can be realized by writing For example, as shown in FIG. 6B, the storage area of the memory may be divided and stored for each collected processing instruction, and the processing link to the downstream side may be sequentially set.

なお、図7に示すように、キュー構造に代えて、スタック(stack )構造を採用することもできる。スタックは、ほし草や藁などの“山”のことで、同じ種類のデータを積み重ねた構造のことを指す用語として使われるものである。データを取り扱う場合、データを格納する領域のことをスタックエリアと呼び、データを格納した順番とは逆の順番で、データを取り出すようにする。つまり、前述のFIFOとは逆に、最初に格納したデータが一番下になり、その上に次々にデータが積み重ねられるイメージである。データを取り出すときは、最後に入れた一番上のデータから順に取り出す。このようなスタックの構造は、一般に、後入れ先出し方式(LIFO;Last In First Out)と呼ばれる。このようなメモリ構造を、以下スタック構造メモリともいう。   As shown in FIG. 7, a stack structure can be adopted instead of the queue structure. Stack is a term for “mountains” such as hay and straw, and is a term used to refer to a structure in which the same kind of data is stacked. When data is handled, an area for storing data is called a stack area, and data is taken out in the reverse order of data storage. That is, contrary to the above-described FIFO, the data stored first is at the bottom, and the data is stacked one after another. When retrieving the data, the data is retrieved in order from the topmost data entered last. Such a stack structure is generally called a last-in first-out (LIFO) method. Hereinafter, such a memory structure is also referred to as a stack structure memory.

スタック構造メモリとする場合、ある処理階層の複数のコマンドに従って処理を行なう場合、個々のコマンドごとにエンジン部200にて処理を行なうのではなく、ある処理階層の全コマンドを一気に読み出してエンジン部200のコマンドレジスタ268cにスタック構造で格納してからエンジン部200の処理を行なうようにするとよい。この場合、コマンドだけでなく、それに対応した処理対象データも一気に読み出してエンジン部200のデータレジスタ268dにスタック構造で格納するのがよい。こうすることで、内部バス180を早く開放できる利点がある。   When the stack structure memory is used, when processing is performed according to a plurality of commands in a certain processing hierarchy, the engine unit 200 does not perform processing for each individual command, but reads all commands in a certain processing hierarchy at once. It is preferable that the processing of the engine unit 200 be performed after the data is stored in the command register 268c in a stack structure. In this case, it is preferable that not only the command but also the processing target data corresponding to the command is read at a time and stored in the data register 268d of the engine unit 200 in a stack structure. By doing so, there is an advantage that the internal bus 180 can be opened quickly.

なお、スタック構造の実現に当たっても、データを格納したアドレスに拘らず、データを後入れ先出しの順で読み出すことができるようになっていればよく、配列を宣言することで、動作としては、LIFOによる処理を記述することで実現することができる。   Even when the stack structure is realized, it is only necessary to be able to read data in the last-in first-out order regardless of the address where the data is stored. By declaring the array, the operation is LIFO. It can be realized by describing the processing by.

ここで、複数の処理階層において同時並行した処理が可能であるか否かに拘らず、複数の処理要求のそれぞれにおいてキュー構造もしくはスタック構造を採用するのがよい。また、本実施形態特有のメモリ構造として、OSIやTCP/IPの処理階層モデルにおいて、同一階層であるか異なる階層であるかを問わず、異なる処理階層の複数の処理要求がほぼ同時にエンジン部200に発せられ、エンジン部200にてこれに対応する場合、その対象となる複数の処理要求について、キュー構造もしくはスタック構造を採るようにする。何れの場合も、特に、キュー構造が好ましい。   Here, it is preferable to adopt a queue structure or a stack structure for each of a plurality of processing requests regardless of whether or not a plurality of processing hierarchies can be processed simultaneously in parallel. Further, as a memory structure unique to the present embodiment, in the OSI or TCP / IP processing hierarchy model, a plurality of processing requests in different processing hierarchies are almost simultaneously processed regardless of whether they are the same hierarchy or different hierarchies. When the engine unit 200 responds to this, a queue structure or a stack structure is adopted for a plurality of processing requests. In any case, a queue structure is particularly preferable.

図8は、各処理階層の個々の処理要求B00についてキュー構造を採用したディスクリプタB10を構成した例を示している。参照モデルの階層に関わらず、各処理階層の処理要求ごとに処理内容と処理対象データとを対応付けたコマンドディスクリプタを生成するようにする。そして、これを処理階層に従って順次格納することで、コマンドディスクリプタキューB20を作る。   FIG. 8 shows an example in which a descriptor B10 adopting a queue structure is configured for each processing request B00 in each processing hierarchy. Regardless of the hierarchy of the reference model, a command descriptor that associates the processing content with the data to be processed is generated for each processing request of each processing hierarchy. Then, the command descriptor queue B20 is created by sequentially storing them according to the processing hierarchy.

また、図9は、複数の処理要求において、同時並行的にエンジン部200にて処理を行なう場合に、それら複数の処理要求もキュー構造を採用した場合のメモリ構造(以下ディスクリプタキューともいう)B20とする場合の一例を示している。この場合には、同時並行させる複数の処理階層の各処理対象データを所定の分割サイズで分割し、同時並行させる分をその分割単位ごとに処理順序に合わせて纏めるようにする。データ量を均等配分することにしているので、1つの分割サイズ内に割り当てられるワード数は、それぞれ異なっていてよい。   FIG. 9 shows a memory structure (hereinafter also referred to as a descriptor queue) B20 when a plurality of processing requests are processed in the engine unit 200 in parallel, and the plurality of processing requests also adopt a queue structure. An example of the case is shown. In this case, the data to be processed in a plurality of processing layers to be simultaneously processed are divided by a predetermined division size, and the portions to be simultaneously processed are arranged in accordance with the processing order for each division unit. Since the amount of data is distributed equally, the number of words allocated within one division size may be different.

たとえば、複数の処理階層のコマンドディスクリプタB11,B12,…Bmに基づいてエンジン部200にて並列処理させる場合、それぞれを分割してコマンドディスクリプタB11−1,B11−2,…,B12−1,B12−2,…,Bm−1,Bm−2,…とし、その分割単位ごとに処理順序に合わせて、B11−1,B12−1,…,Bm−1,B11−2,B12−2,…,Bm−2,…と、順次ディスクリプタ領域127に格納することで、コマンドディスクリプタキューB20を作るとよい。   For example, when the engine unit 200 performs parallel processing based on command descriptors B11, B12,... Bm of a plurality of processing layers, the command descriptors B11-1, B11-2,. ,..., Bm-1, Bm-2,..., B11-1, B12-1,..., Bm-1, B11-2, B12-2,. , Bm-2,..., And sequentially stored in the descriptor area 127, the command descriptor queue B20 may be created.

なお、本明細書における処理階層とは、OSI参照モデルやTCP/IPの通信プロトコルの階層とは異なる概念である。たとえば、図10(A)に示すように、セキュリティプロトコルとしてIPSecを採用しつつ、通信プロトコルとしてTCP/IP,IPv4を採用する場合、OSI参照モデルやTCP/IPのプロトコルにおける同一階層に位置していても、IPSec処理要求S12と、IPヘッダのチェックサム処理要求S14とは、異なる処理階層に位置する。   Note that the processing hierarchy in this specification is a concept different from the OSI reference model and the TCP / IP communication protocol hierarchy. For example, as shown in FIG. 10A, when IPSec is adopted as a security protocol and TCP / IP and IPv4 are adopted as communication protocols, they are located in the same layer in the OSI reference model and the TCP / IP protocol. However, the IPSec processing request S12 and the IP header checksum processing request S14 are located in different processing layers.

順次送受信するパケットに対して各処理階層の処理を順次実行する場合において、処理内容にエンジン部200が担当するものが含まれている場合、図10(B)に示すように、暗号化処理S12a、復号化処理S12b、認証処理S12c、およびチェックサム処理S10,S14の各要求がほぼ同時にエンジン部200に発せられるケースが起きる。   In the case where the processing of each processing layer is sequentially executed for packets that are sequentially transmitted and received, and the processing content includes what the engine unit 200 is in charge of, as shown in FIG. 10B, the encryption processing S12a In some cases, requests for the decryption process S12b, the authentication process S12c, and the checksum processes S10 and S14 are issued to the engine unit 200 almost simultaneously.

なお、ESPフォーマットの場合には、IPSec処理要求には、セキュリティ処理として、秘匿処理および認証処理の少なくとも一方を含み得るもので、その両者もしくは何れか一方のみの処理としてよい。一方、AHフォーマットの場合には、IPSec処理要求には、セキュリティ処理として、少なくとも認証処理を含み、必要に応じて秘匿処理を行なうようにしてもよく、秘匿処理はオプションである。   In the case of the ESP format, the IPSec processing request may include at least one of a concealment process and an authentication process as a security process, and may be a process of both or only one of them. On the other hand, in the case of the AH format, the IPSec processing request includes at least an authentication process as a security process, and the confidential process may be performed as necessary, and the confidential process is an option.

<データ処理装置の構成例>
図11は、図1に示したコンピュータ装置1に備えられているデータ処理装置3の詳細な構成例を示したブロック図である。なお、以下の説明において特段の断りのない限り、メインシステム100からエンジン部200へのデータ転送の形態として、中央演算制御処理部110が、メモリ部120に対してバスマスターとなって、メモリ部120から処理対象データを読み出して制御部260に渡す形態(図4(A)に示した第3の構成例)を用いることとする。
<Configuration example of data processing device>
FIG. 11 is a block diagram showing a detailed configuration example of the data processing device 3 provided in the computer device 1 shown in FIG. Unless otherwise specified in the following description, as a form of data transfer from the main system 100 to the engine unit 200, the central processing control processing unit 110 serves as a bus master for the memory unit 120, and the memory unit It is assumed that the processing target data is read from 120 and transferred to the controller 260 (third configuration example shown in FIG. 4A).

図示するように、先ず、データ処理装置3の中央演算制御処理部110は、CPUからの処理要求を受け付け、必要な場合にデータ分割を行なった上でデータを受け渡す一次ドライバ130と、一次ドライバ130から渡されたデータのうちどのデータをエンジン部200で処理するかを選択しエンジン部200に処理要求を出す二次ドライバ140とを備えている。   As shown in the figure, first, the central processing control processing unit 110 of the data processing device 3 receives a processing request from the CPU, performs data division when necessary, and transfers the data, and a primary driver 130. And a secondary driver 140 that selects which data to be processed by the engine unit 200 from among the data passed from 130 and issues a processing request to the engine unit 200.

また、本実施形態では、メモリ部120は、内部バス180に接続されており、同じく内部バス180に接続された中央演算制御処理部110からの指示に基づいて、ハッシュ処理、共通鍵暗号処理や公開鍵暗号処理を利用した秘匿処理、あるいはチェックサム処理をエンジン部200にて実行するべく、処理対象データに対する処理内容の指示と、処理対象データを指示する情報と、処理対象データを、メモリ部120のRAM124における所定の領域に格納する。   In the present embodiment, the memory unit 120 is connected to the internal bus 180, and based on instructions from the central processing control processing unit 110 that is also connected to the internal bus 180, hash processing, common key encryption processing, In order to execute the concealment process using the public key encryption process or the checksum process in the engine unit 200, an instruction of processing contents for the processing target data, information indicating the processing target data, and the processing target data are stored in the memory unit. The data is stored in a predetermined area in 120 RAM 124.

また、エンジン部200は、データ処理部240に、共通鍵暗号処理や公開鍵暗号処理を利用した暗号化処理や復号化処理を行なう秘匿処理部(Crypto Block)242、一方向性ハッシュ関数を利用した認証処理(完全性保証処理)を行なう認証処理部(Digest Block)244、チェックサム処理を行なうチェックサム処理部(CheckSum Block)246、並びに、セレクタ250,252を備えている。   Further, the engine unit 200 uses a secret processing unit (Crypto Block) 242 that performs encryption processing and decryption processing using common key encryption processing and public key encryption processing, and a one-way hash function for the data processing unit 240. The authentication processing unit (Digest Block) 244 that performs the authentication processing (integrity guarantee processing), the checksum processing unit (CheckSum Block) 246 that performs the checksum processing, and the selectors 250 and 252 are provided.

秘匿処理部242は、暗号化処理部242aと、復号化処理部242bとを有している。暗号化処理部242a、復号化処理部242b、認証処理部244、およびチェックサム処理部246は、独立した個別のハードウェア回路にて構成されている。秘匿処理部242と認証処理部244とによりセキュリティ処理部248が構成される。また、認証処理部244とチェックサム処理部246とにより同一性確認処理部249が構成される。   The concealment processing unit 242 includes an encryption processing unit 242a and a decryption processing unit 242b. The encryption processing unit 242a, the decryption processing unit 242b, the authentication processing unit 244, and the checksum processing unit 246 are configured by independent individual hardware circuits. The confidential processing unit 242 and the authentication processing unit 244 constitute a security processing unit 248. Further, the authentication processing unit 244 and the checksum processing unit 246 constitute an identity confirmation processing unit 249.

認証処理部244は、ハッシュ関数(Hash Function ;かき混ぜ関数)を用いて、送信者がある任意の長さの通常のメッセージ(文字列が並んだ平文)を送信する際に、このメッセージを一定の固定長の文字列(ビット列)に圧縮した固定長のビット列からなるダイジェスト(要約;ハッシュ符号ともいう)を作成する。   The authentication processing unit 244 uses a hash function (Hash Function) to send a message of a certain length (plain text in which character strings are arranged) to a certain length. A digest (summary; also called a hash code) composed of a fixed-length bit string compressed into a fixed-length character string (bit string) is created.

たとえば、IPSecのESPフォーマットもしくはAHフォーマットにおいては、ICV(Integrity Check Value )を計算しておく。ICVは秘密対称鍵の一例であるHMAC−MD5−96やHMAC−SHA−1−96などの鍵付きハッシュ関数を使用して計算した、メッセージの完全性検査用認証値であり、得られた鍵付きハッシュ値から元のメッセージを知ることはできず、また秘密対称鍵を知らなければメッセージから鍵付きハッシュ値を計算することもできないようになっている。   For example, in IPSec ESP format or AH format, ICV (Integrity Check Value) is calculated in advance. ICV is an authentication value for message integrity check calculated using a keyed hash function such as HMAC-MD5-96 or HMAC-SHA-1-96, which is an example of a secret symmetric key. The original message cannot be known from the attached hash value, and the keyed hash value cannot be calculated from the message without knowing the secret symmetric key.

ここで、ESPフォーマットでは、認証(完全性保証)対象範囲は、ESPヘッダからESPトレーラまでの暗号ペイロードを含む部分になる。これに対して、AHフォーマットは、パケットのほぼ全体を認証(完全性保証)対象範囲とするICV(完全性保証用認証値)を付加することで、転送用外側IPヘッダまで含めたパケットほぼ全体の完全性を保証するようになっている。   Here, in the ESP format, the authentication (integrity guarantee) target range is a portion including the encryption payload from the ESP header to the ESP trailer. On the other hand, in the AH format, by adding an ICV (authentication value for integrity guarantee) in which almost the whole packet is subject to authentication (integrity guarantee), almost the entire packet including the outer IP header for transfer Is to guarantee the integrity of.

また、SSL/TLSにおいては、認証データとして、メッセージ認証コードMAC(Message Authentication Code )を利用する。このMAC値は、IPSecフォーマットの認証コードICVと、仕様や具体的な計算方法などは異なるが、基本的には同じ機能のもので、両方とも認証データになり、その差は、実施形態の適用に際して、影響を及ぼさない。   In SSL / TLS, a message authentication code MAC (Message Authentication Code) is used as authentication data. This MAC value differs from the IPSec format authentication code ICV in terms of specifications and specific calculation methods, but basically has the same function, both of which are authentication data, and the difference between them is the application of the embodiment. In doing so, it has no effect.

チェックサム処理部246は、対象の同一性を検証する。たとえば、TCP/IPでの通信時には、ヘッダ部とデータ部を処理対象範囲としてチェックサムを計算することで、データの信頼性を保証する。また、IPv4での通信時には、IPヘッダフォーマットに含まれるヘッダチェックサムを計算する。   The checksum processing unit 246 verifies the identity of the target. For example, at the time of TCP / IP communication, data reliability is ensured by calculating a checksum with the header portion and the data portion as the processing target range. Further, during communication using IPv4, a header checksum included in the IP header format is calculated.

制御部260は、バスIF部262、およびエンジン部200全体の動作を制御する指示制御部266を備えている。なお、エンジン部200の制御部260がバスマスターとなりDMA転送することで、メインシステム100の中央演算制御処理部110を介することなく、メモリ部120とエンジン部200との間でデータ転送を行なう形態(図4に示した第1や第2の構成例)を採用する場合には、図中点線で示すように、DMAコントローラ部264がバスIF部262と指示制御部266との間に設けられる。   The control unit 260 includes a bus IF unit 262 and an instruction control unit 266 that controls the overall operation of the engine unit 200. The controller 260 of the engine unit 200 serves as a bus master and performs DMA transfer, whereby data transfer is performed between the memory unit 120 and the engine unit 200 without going through the central processing control processing unit 110 of the main system 100. When the (first or second configuration example shown in FIG. 4) is employed, a DMA controller unit 264 is provided between the bus IF unit 262 and the instruction control unit 266 as indicated by a dotted line in the figure. .

指示制御部266は、処理対象データに対する処理内容の指示と、処理対象データを指示する情報と、処理対象データを解析し、中央演算制御処理部110からの要求を実行するために、秘匿処理部242、認証処理部244、およびチェックサム処理部246の何れかについての選択指示CN2,CN3を対応するセレクタ250,252に対して与える。   The instruction control unit 266 analyzes the processing content instruction for the processing target data, the information for instructing the processing target data, and the processing target data, and executes the request from the central processing control processing unit 110. 24, selection instructions CN2 and CN3 for any of the authentication processing unit 244 and the checksum processing unit 246 are given to the corresponding selectors 250 and 252.

なお、DMAコントローラ部264を設ける場合には、指示制御部266は、バスIF部262を介して内部バス180に接続されたDMAコントローラ部264に対してデータの読出指示CN1を与える。この場合、DMAコントローラ部264は、メモリ部120のRAM124に格納された処理対象データに対する処理内容の指示(コマンド)と、処理対象データの格納先を示す情報と、処理対象データの転送とを、指示制御部266に対して行なう。   When the DMA controller unit 264 is provided, the instruction control unit 266 gives a data read instruction CN1 to the DMA controller unit 264 connected to the internal bus 180 via the bus IF unit 262. In this case, the DMA controller unit 264 performs processing content instruction (command) for the processing target data stored in the RAM 124 of the memory unit 120, information indicating the storage destination of the processing target data, and transfer of the processing target data. This is performed for the instruction control unit 266.

セレクタ250は、指示制御部266からの選択指示CN2に基づいて、秘匿処理部(CryptoD Block )242とハッシュ処理部(Digest Block)244とチェックサム処理部(Checksum Block)246の何れかを選択して指示制御部266の出力を入力する。   The selector 250 selects one of the concealment processing unit (CryptoD Block) 242, the hash processing unit (Digest Block) 244, and the checksum processing unit (Checksum Block) 246 based on the selection instruction CN2 from the instruction control unit 266. Then, the output of the instruction control unit 266 is input.

セレクタ252には秘匿処理部242と認証処理部244とチェックサム処理部246の各出力が入力されている。セレクタ252は、指示制御部266からの選択指示CN3に基づいて、それぞれの機能部(モジュール)242,244,246での演算結果の何れかを選択して、その選択出力を指示制御部266に入力する。   Each output of the concealment processing unit 242, the authentication processing unit 244, and the checksum processing unit 246 is input to the selector 252. Based on the selection instruction CN3 from the instruction control unit 266, the selector 252 selects any of the calculation results in the respective function units (modules) 242, 244, 246, and sends the selection output to the instruction control unit 266. input.

図12は、アクセラレータドライバ117の一次ドライバ130および二次ドライバ140と、階層モデルで表された処理手順との関係を示した模式図である。中央演算制御処理部110(たとえばCPU)は、一連の処理を階層モデルで表された1つのプロセスで行なう。プロセスの中は、幾つかの階層に分けて処理階層ごとに独立して処理が行なわれる。   FIG. 12 is a schematic diagram illustrating the relationship between the primary driver 130 and the secondary driver 140 of the accelerator driver 117 and the processing procedure represented by the hierarchical model. Central arithmetic control processing unit 110 (for example, CPU) performs a series of processes in one process represented by a hierarchical model. The process is divided into several layers, and processing is performed independently for each processing layer.

たとえば、図示するように、OSIモデルでのP11〜P17からなる一連のプロセスP10、TCP/IPモデルでのP21〜P24からなる一連のプロセスP20を事例にする。   For example, as illustrated, a series of processes P10 composed of P11 to P17 in the OSI model and a series of processes P20 composed of P21 to P24 in the TCP / IP model are taken as examples.

中央演算制御処理部110のCPUは、複数のプロセスを並列に処理する場合があるため、複数のプロセスの複数の階層から処理要求がエンジン部200に送られることが起こる場合がある。   Since the CPU of the central processing control processing unit 110 may process a plurality of processes in parallel, processing requests may be sent to the engine unit 200 from a plurality of layers of the plurality of processes.

一連のプロセス内のある階層からエンジン部200への暗号化や複合化あるいは認証などのセキュリティ処理やチェックサム処理などの種々の処理指示と、各処理に必要な処理対象データのエンジン部200への転送は、アクセラレータドライバ117を介して行なわれる。   Various processing instructions such as security processing and checksum processing such as encryption, decryption or authentication from a certain hierarchy in a series of processes to the engine unit 200, and processing target data necessary for each processing to the engine unit 200 The transfer is performed via the accelerator driver 117.

アクセラレータとして機能するエンジン部200は、処理した計算結果の他に、計算後の内部状態を出力でき、他の処理を行なう際に以前の計算と連続して行なうように指定があった場合は前回処理したデータと連結して処理を行なう。   The engine unit 200 functioning as an accelerator can output the internal state after the calculation in addition to the processed calculation result. When other processing is specified to be performed continuously with the previous calculation, Processing is performed in conjunction with the processed data.

ここで、アクセラレータドライバ117は、図11の説明で述べたように、CPUからの処理要求を受け付け、必要ならばデータ分割を行なった上で二次ドライバ140にデータを受け渡す一次ドライバ130と、一次ドライバ130から渡されたデータのうちどのデータをエンジン部200で処理するか選択しエンジン部200に処理要求を出す二次ドライバ140に分かれて構築されている。ここで、「必要ならば」とは、少なくとも、複数の処理階層の処理をエンジン部200にて同時並行的に行なわせる場合を含むものとする。   Here, as described in the explanation of FIG. 11, the accelerator driver 117 receives a processing request from the CPU, performs data division if necessary, and passes the data to the secondary driver 140. It is constructed by being divided into secondary drivers 140 that select which data to be processed by the engine unit 200 out of the data passed from the primary driver 130 and issue a processing request to the engine unit 200. Here, “if necessary” includes at least the case where the processing of a plurality of processing layers is performed in parallel in the engine unit 200.

<一次ドライバの構成と作用>
図13は、一次ドライバ130の詳細構成例を説明するブロック図である。図示するように、一次ドライバ130は、アプリケーションAP10から渡されたデータを解析するデータ解析部113に対応したデータ解析部132と、データ解析部132の解析結果に基づいてデータ分割が必要か不要かを判断するデータ分割検討部134と、データ分割検討部134に対してデータ分割の際の条件を設定する分割条件設定部136と、データ分割検討部134の判断結果が分割が必要であると示していることを条件として処理データを分割する分割処理部138とを備えている。
<Configuration and operation of primary driver>
FIG. 13 is a block diagram illustrating a detailed configuration example of the primary driver 130. As shown in the figure, the primary driver 130 needs to divide data based on the data analysis unit 132 corresponding to the data analysis unit 113 that analyzes the data passed from the application AP10 and the analysis result of the data analysis unit 132. The data division examination unit 134 for judging the data division, the division condition setting unit 136 for setting the data division condition for the data division examination unit 134, and the judgment result of the data division examination unit 134 indicate that the division is necessary. And a division processing unit 138 that divides the processing data on the condition that

一次ドライバ130のデータ分割検討部134、分割条件設定部136、および分割処理部138と、二次ドライバ140とにより、処理手順制御部115が構成される。   The data division examination unit 134, the division condition setting unit 136, the division processing unit 138, and the secondary driver 140 of the primary driver 130 constitute a processing procedure control unit 115.

分割条件設定部136には、アプリケーションAP10から閾値情報が入力されるようになっている。分割条件設定部136は、アプリケーションAP10から閾値Th1を取得し、それをデータ分割検討部134に設定する。この閾値Th1は、システムのアプリケーション用途によって、中央演算制御処理部110のCPUが決定する。   Threshold information is input from the application AP 10 to the division condition setting unit 136. The division condition setting unit 136 acquires the threshold value Th1 from the application AP10 and sets it in the data division examination unit 134. The threshold Th1 is determined by the CPU of the central processing control processing unit 110 according to the application application of the system.

図14は、一次ドライバ130における処理概要を示したフローチャートである。一次ドライバ130は、先ず、中央演算制御処理部110のCPUからアプリケーションAP10として、処理要求と処理対象データとを受け取る(S100)。これらを受け取った一次ドライバ130は、データ解析部132で処理データのサイズや使用プロトコルなどを調べ、それらの情報とアプリケーションから設定された閾値Th1でデータ分割が必要か不要かを判断する(S102〜S110)。   FIG. 14 is a flowchart showing an outline of processing in the primary driver 130. First, the primary driver 130 receives a processing request and processing target data as an application AP10 from the CPU of the central processing control processing unit 110 (S100). Upon receiving these, the primary driver 130 checks the size of the processing data and the protocol used by the data analysis unit 132, and determines whether or not data division is necessary or not based on the information and the threshold Th1 set by the application (S102 to S102). S110).

たとえば、アプリケーションAP10から処理要求を受け取ったからデータを渡された一次ドライバ130は、データ解析部132で処理データのサイズや使用プロトコルなどを調べ、それらの情報とアプリケーションから設定された閾値Th1でデータ分割が必要か不要かを判断する(S102)。   For example, the primary driver 130 to which data is passed after receiving the processing request from the application AP 10 checks the size of the processing data and the protocol used by the data analysis unit 132 and divides the data by using the information and the threshold value Th1 set by the application. Is determined whether or not is necessary (S102).

処理サイズが閾値Th1より大きい場合は(S102−YES)、データ解析部132は、分割が必要であると判断し、その判断結果をデータ分割検討部134に通知する。この場合、データ分割検討部134は、暗号化や復号化あるいは認証やチェックサムなどの処理に際して使用するアルゴリズムを通信プロトコルやセキュリティプロトコルに基づいて特定する(S104)。そして、使用アルゴリズムでの最小処理単位の倍数でかつ閾値Th1を超えない最大値を計算することで分割サイズを決定し、決定した分割サイズを分割処理部138に通知する(S106)。これを受けて、分割処理部138は、最大値でもってデータを分割し(S108)、データを分割した上で二次ドライバ140にデータ(処理対象データに対する処理内容の指示と、処理対象データを指示する情報と、処理対象データ)を引き渡す。   When the processing size is larger than the threshold Th1 (S102-YES), the data analysis unit 132 determines that the division is necessary and notifies the data division examination unit 134 of the determination result. In this case, the data division examination unit 134 specifies an algorithm used for processing such as encryption, decryption, authentication, checksum, and the like based on the communication protocol and the security protocol (S104). Then, the division size is determined by calculating a maximum value that is a multiple of the minimum processing unit in the used algorithm and does not exceed the threshold value Th1, and the determined division size is notified to the division processing unit 138 (S106). In response to this, the division processing unit 138 divides the data by the maximum value (S108), divides the data, and then sends the data (the processing content instruction for the processing target data and the processing target data to the secondary driver 140). The information to be instructed and the data to be processed).

一方、処理サイズが閾値より小さい場合は、データ解析部132は、分割が不要であると判断し、その判断結果をデータ分割検討部134に通知する。この場合、データ分割検討部134は、アプリケーションAP10から渡されたデータ(処理対象データに対する処理内容の指示と、処理対象データを指示する情報と、処理対象データ)を、そのまま二次ドライバ140に送る。   On the other hand, when the processing size is smaller than the threshold value, the data analysis unit 132 determines that the division is not necessary, and notifies the data division examination unit 134 of the determination result. In this case, the data division examination unit 134 sends the data passed from the application AP 10 (the instruction of the processing content for the processing target data, the information indicating the processing target data, and the processing target data) to the secondary driver 140 as it is. .

こうすることで、エンジン部200に渡すデータサイズを閾値Th1以下で概ね均一化させることができる。   By doing so, the data size passed to the engine unit 200 can be made substantially uniform with the threshold value Th1 or less.

<二次ドライバの構成と作用>
図15は、二次ドライバ140の詳細構成例を説明するブロック図である。図示するように、二次ドライバ140は、一次ドライバ130から渡されたデータを記憶する記憶部としてのデータプール142と、データプール142に蓄積したデータのうち、どのデータをエンジン部200に送るかを判断して選択するデータセレクタ144と、データセレクタ144に対してどのデータをエンジン部200に送るかを判断し選択する際の条件を設定する順序基準設定部146とを備えている。
<Configuration and operation of secondary driver>
FIG. 15 is a block diagram illustrating a detailed configuration example of the secondary driver 140. As shown in the figure, the secondary driver 140 sends which data to the engine unit 200 from among the data pool 142 as a storage unit for storing data passed from the primary driver 130 and the data accumulated in the data pool 142. A data selector 144 that determines and selects the data, and an order reference setting unit 146 that sets conditions for determining and selecting which data to send to the engine unit 200 with respect to the data selector 144.

順序基準設定部146には、アプリケーションAP10から転送順序を決定する際の基準を示す制御情報CN10が入力されるようになっている。順序基準設定部146は、アプリケーションAP10から制御情報CN10を取得し、それをデータセレクタ144に設定する。この制御情報CN10は、システムのアプリケーション用途によって、中央演算制御処理部110のCPUが決定する。これにより、データセレクタ144における選択方法は、アプリケーションAP10によって制御することが可能である。   The order reference setting unit 146 receives control information CN10 indicating a reference for determining a transfer order from the application AP10. The order reference setting unit 146 acquires the control information CN10 from the application AP10 and sets it in the data selector 144. The control information CN10 is determined by the CPU of the central processing control processing unit 110 according to the application application of the system. Thereby, the selection method in the data selector 144 can be controlled by the application AP10.

図16は、二次ドライバ140によるデータ転送と、エンジン部200における処理の概要を示したフローチャートである。二次ドライバ140は、先ず、一次ドライバ130から渡されたデータをデータプール142に蓄積する(S200)。これはアプリケーションAP10および一次ドライバ130とエンジン部200を互いに非干渉にするためである。   FIG. 16 is a flowchart showing an overview of data transfer by the secondary driver 140 and processing in the engine unit 200. First, the secondary driver 140 stores the data passed from the primary driver 130 in the data pool 142 (S200). This is to make the application AP 10 and the primary driver 130 and the engine unit 200 non-interfering with each other.

データセレクタ144は、データプール142に処理待ちデータが存在するか否か、つまり、エンジン部200が処理待ちになったかどうかを監視している(S202−NO)。よって、データセレクタ144は、一次ドライバ130から渡されたデータがデータプール142に蓄積されることで、エンジン部200が処理待ちになったと判定できる。   The data selector 144 monitors whether or not data waiting for processing exists in the data pool 142, that is, whether or not the engine unit 200 is waiting for processing (S202-NO). Therefore, the data selector 144 can determine that the engine unit 200 is waiting for processing by storing the data passed from the primary driver 130 in the data pool 142.

データセレクタ144は、エンジン部200が処理待ちになった段階で(S202−YES)、データプール142に蓄積したデータを、アプリケーションAP10による選択手法を定義する指示制御CN10の元で、エンジン部200に転送する。   The data selector 144 sends the data stored in the data pool 142 to the engine unit 200 under the instruction control CN10 that defines the selection method by the application AP10 when the engine unit 200 waits for processing (S202-YES). Forward.

ここで、データセレクタ144は、一次ドライバ130の分割処理部138によって分割されたデータがデータプール142に蓄積されているときには、その分割されたデータのエンジン部200への転送順序をアプリケーションAP10の制御の元で決定し、この決定に従って順次エンジン部200に分割データを転送することで、処理のスケジューリングを行なう(S204)。   Here, when the data divided by the division processing unit 138 of the primary driver 130 is accumulated in the data pool 142, the data selector 144 controls the transfer order of the divided data to the engine unit 200 by the application AP10. The process is scheduled by sequentially transferring the divided data to the engine unit 200 in accordance with this determination (S204).

二次ドライバ140を介してデータ(処理対象データに対する処理内容の指示と、処理対象データを指示する情報と、処理対象データ)を受け取ったエンジン部200においては、先ず指示制御部266は、処理対象データに対する処理内容の指示と、処理対象データを指示する情報と、処理対象データとを解析し、処理対象データが、データ処理部240の何れの機能部の処理担当のものであるかを特定する(S206)。この後、指示制御部266は、特定結果に基づき、中央演算制御処理部110からの要求を実行するために、秘匿処理部242、認証処理部244、およびチェックサム処理部246の何れかについての選択指示CN2,CN3を対応するセレクタ250,252に対して与える。   In the engine unit 200 that has received the data (the processing content instruction for the processing target data, the information for instructing the processing target data, and the processing target data) via the secondary driver 140, first, the instruction control unit 266 first selects the processing target. The processing content instruction for the data, the information indicating the processing target data, and the processing target data are analyzed, and the functional unit of the data processing unit 240 is in charge of processing. (S206). After this, the instruction control unit 266 performs the request from the central processing control processing unit 110 on the basis of the specific result for any of the concealment processing unit 242, the authentication processing unit 244, and the checksum processing unit 246. Selection instructions CN2 and CN3 are given to the corresponding selectors 250 and 252, respectively.

セレクタ250は、指示制御部266からの選択指示CN2に基づいて、秘匿処理部242とハッシュ処理部244とチェックサム処理部246の何れかを選択して指示制御部266の出力を入力し、またセレクタ252は、指示制御部266からの選択指示CN3に基づいて、それぞれの機能部(モジュール)242,244,246での演算結果の何れかを選択して、その選択出力を指示制御部266に入力することで、処理を実行するハードウェアを設定する(S208)。   Based on the selection instruction CN2 from the instruction control unit 266, the selector 250 selects any one of the concealment processing unit 242, the hash processing unit 244, and the checksum processing unit 246 and inputs the output of the instruction control unit 266. Based on the selection instruction CN3 from the instruction control unit 266, the selector 252 selects any of the calculation results in the respective function units (modules) 242, 244, 246, and sends the selection output to the instruction control unit 266. By inputting, the hardware for executing the process is set (S208).

データを受け取ったデータ処理部240内のハードウェアで構成されている各機能部242,244,246は、それぞれが担当する処理を実行し、セレクタ252を介して処理済みデータを指示制御部266に渡す(S210)。   The function units 242, 244, and 246 that are configured by hardware in the data processing unit 240 that has received the data execute processing that they are in charge of, and send the processed data to the instruction control unit 266 via the selector 252. Pass (S210).

以下、同様にして、データプール142に蓄積されたデータについての処理が全て完了するまで、上記ステップS202〜S210の処理を繰り返す。   In the same manner, the processes in steps S202 to S210 are repeated until all the processes for the data stored in the data pool 142 are completed.

ここで、データセレクタ144がアプリケーションAP10の制御の元で、一次ドライバ130の分割処理部138によって分割されデータプール142に蓄積されているデータをエンジン部200に転送する順序を決定する基準としては、たとえば、優先度順、帯域確保順、あるいは到着順、などを採り得る。   Here, as a reference for determining the order in which the data selector 144 transfers the data divided by the division processing unit 138 of the primary driver 130 and accumulated in the data pool 142 to the engine unit 200 under the control of the application AP10, For example, priority order, bandwidth reservation order, arrival order, or the like may be adopted.

アプリケーションAP10が使用する通信プロトコルやセキュリティプロトコルに適合した基準で選択することで、並列通信処理を行なうべくエンジン部200に複数の処理要求が発生した場合でも、適切な順序で分割データをエンジン部200に転送できるから、1つの処理を行なっている間、その他の処理要求が待たされることがない。たとえ、現在処理しているデータサイズが大きい場合であっても、通信プロトコルやセキュリティプロトコルに適合したサイズでデータ分割することで、その待ち時間をバランスよく短くでき、データ送信にゆらぎが発生することを防止できる。   Even when a plurality of processing requests are generated in the engine unit 200 to perform parallel communication processing by selecting according to a communication protocol or security protocol used by the application AP 10, the divided data is processed in an appropriate order in the engine unit 200. Therefore, other processing requests are not waited while one process is being performed. Even if the data size currently being processed is large, dividing the data with a size that conforms to the communication protocol or security protocol can reduce the waiting time in a well-balanced manner and cause fluctuations in data transmission. Can be prevented.

たとえば、データセレクタ144による優先度順の選択手法は、データプール142に蓄積されたデータに優先度を付け、優先度の高い順に処理を行なう手法である。従来のデータ分割を行なわない方法の場合、優先度は低いが処理サイズの大きいデータを処理しているときに、優先度が高い処理要求をアクセラレータドライバ117が受けても処理を開始することができない。   For example, the selection method in the order of priority by the data selector 144 is a method in which priority is given to data stored in the data pool 142 and processing is performed in the order of higher priority. In the case of the conventional method in which data division is not performed, when data having a low priority but a large processing size is being processed, the processing cannot be started even if the accelerator driver 117 receives a processing request having a high priority. .

これに対し、本実施形態を適用することで、処理サイズの大きいデータは分割処理部138により所定サイズで分割されているので、優先度が高い処理要求の待ち時間は短くなる。   On the other hand, by applying this embodiment, data with a large processing size is divided by the division processing unit 138 into a predetermined size, so that the waiting time for a processing request with a high priority is shortened.

また、データセレクタ144による帯域確保順の選択手法においては、先ず、アクセラレータドライバ117に対する処理要求ごとに減算カウンタを用意する。二次ドライバ140がアクセラレータとしてのエンジン部200にデータを渡したとき、該当する処理要求のカウンタは初期値に戻し、それ以外のカウンタは全て“−1”する。データセレクタ144は、処理待ちになっているデータのうち、カウンタの値が一番小さい処理要求のデータをエンジン部200に送る。   Further, in the method of selecting the band securing order by the data selector 144, first, a subtraction counter is prepared for each processing request to the accelerator driver 117. When the secondary driver 140 passes data to the engine unit 200 as an accelerator, the counter of the corresponding processing request is returned to the initial value, and all other counters are set to “−1”. The data selector 144 sends the processing request data having the smallest counter value to the engine unit 200 among the data waiting for processing.

こうすることで、処理要求ごとのデータ処理間隔の最大値を設定することになり、処理要求別に通信帯域を確保することができる。   By doing this, the maximum value of the data processing interval for each processing request is set, and a communication band can be secured for each processing request.

この帯域確保順の選択手法は、画像や音声データなど、通信間隔が大きく空くと明確に途切れていることが分かってしまうデータを複数送信する場合に適している。   This method of selecting the bandwidth reservation order is suitable for transmitting a plurality of data such as images and audio data that can be clearly seen to be disconnected when the communication interval is large.

また、データセレクタ144による到着順の選択手法は、分割されたデータを到着順に処理する手法である。ただし、複数の処理要求からのデータがある場合は、処理要求順に順次処理を行なう。   The arrival order selection method by the data selector 144 is a method of processing the divided data in the arrival order. However, when there are data from a plurality of processing requests, the processing is sequentially performed in the order of processing requests.

この到着順の選択手法は、前述の優先度順や帯域確保順の選択手法のような高度の処理ではないが、優先度やカウンタの値から処理すべきデータを探す必要がなく、処理を高速に行なえる利点がある。よって、この到着順の選択手法は、優先度や帯域確保がそれほど重要ではない環境で通信を高速にしたい場合に適している。   This arrival order selection method is not an advanced process like the priority order or bandwidth reservation order selection method described above, but it does not require searching for data to be processed based on the priority or counter value, thus speeding up the processing. There is an advantage that can be done. Therefore, this arrival order selection method is suitable when it is desired to speed up communication in an environment where priority and bandwidth reservation are not so important.

図17は、到着順で転送順序を決定する場合の処理概要を示した図であり、従来技術で示した図19に対応するものである。この図17では、二次ドライバ140でのデータ選択方法は、図19と同様到着順に処理を行なっているが、データ分割を行なうことで、それぞれのデータが分割単位でデータ処理部240の各機能部242,244,246にて順次処理されるため、実質的に(マクロで見れば)全ての処理要求を並列に処理することが可能になっている。   FIG. 17 is a diagram showing an outline of processing when the transfer order is determined in arrival order, and corresponds to FIG. 19 shown in the prior art. In FIG. 17, the data selection method in the secondary driver 140 performs processing in the order of arrival as in FIG. 19, but by dividing the data, each data is divided into units, and each function of the data processing unit 240 is processed. Since the units 242, 244, and 246 are sequentially processed, substantially all processing requests can be processed in parallel (as viewed in a macro).

以上説明したように、本実施形態の手法に依れば、アクセラレータとしてのエンジン部200で処理されるデータサイズを、たとえば閾値Th1でもって概ね均一化して分割し、分割データを所定の基準に基づいて順次エンジン部200に転送して処理を実行するようにした。このため、単一のハードウェアデバイスしか持たないアクセラレータとしてのエンジン部200であっても、分割されたデータに対応するデータ処理部240の各機能部242,244,246にて、概ね均一化された処理時間単位で順次実行することができる。結果として、データ処理部240の各機能部242,244,246は実質的に並列処理が可能になる。このように、データ転送の制御方法を工夫することで、たとえばIPプロトコルを使用してリアルタイム通信を行なうケースでも、データ送信にゆらぎが発生することがなく、本実施形態が非常に有効である。   As described above, according to the method of the present embodiment, the data size processed by the engine unit 200 as an accelerator is divided, for example, with the threshold value Th1 being substantially uniform, and the divided data is based on a predetermined standard. The data is sequentially transferred to the engine unit 200 to execute the processing. Therefore, even in the case of the engine unit 200 as an accelerator having only a single hardware device, the function units 242, 244 and 246 of the data processing unit 240 corresponding to the divided data are almost uniformized. Can be executed sequentially in units of processing time. As a result, each functional unit 242, 244, 246 of the data processing unit 240 can substantially perform parallel processing. Thus, by devising the data transfer control method, for example, even in the case where real-time communication is performed using the IP protocol, fluctuations in data transmission do not occur, and this embodiment is very effective.

また、一次ドライバ130のデータ分割検討部134における閾値Th1の設定と二次ドライバ140のデータセレクタ144における転送順序の選択手法をアプリケーションのプロトコル使用環境に合わせて変えることで、デバイスの特性を変化させることができ、最適な処理を行なうことが可能になる。   In addition, the device characteristics are changed by changing the threshold Th1 setting in the data division examination unit 134 of the primary driver 130 and the transfer order selection method in the data selector 144 of the secondary driver 140 according to the application protocol usage environment. It is possible to perform optimum processing.

たとえば、プロセスごとに優先度を決めることで優先度順に処理を行なう方法であれば、必要なプロセスを優先的に処理することが可能になる。また、閾値Th1を大きくして分割回数を減らし、処理データ選択方法を単純な到着順にすることで、アクセラレータドライバ117での処理時間が減るので、通信速度を重視するのであればそのような制御方法を使用するのがよい。   For example, if the priority is determined for each process and processing is performed in order of priority, necessary processes can be preferentially processed. Further, since the processing time in the accelerator driver 117 is reduced by increasing the threshold value Th1 to reduce the number of divisions and making the processing data selection method in a simple arrival order, such a control method is important if communication speed is important. It is good to use.

このように、データ分割検討部134に対する分割サイズに対応した閾値Th1やデータセレクタ144に対する転送順序に対応した制御情報CN1をアプリケーションAP10に応じて変化させることで、エンジン部200の処理特性(デバイス特性)を変化させることができ、これにより、単一のハードウェアデバイスしか持たないアクセラレータでも、システムの用途に応じた処理特性の制御が可能となる。   In this way, by changing the threshold Th1 corresponding to the division size for the data division examination unit 134 and the control information CN1 corresponding to the transfer order for the data selector 144 according to the application AP10, the processing characteristics (device characteristics) of the engine unit 200 are changed. In other words, an accelerator having only a single hardware device can control the processing characteristics according to the use of the system.

<適用プロトコル>
以上のように、複数の処理要求がほぼ同時に発生した場合に、データを所定サイズで分割するとともに、たとえば優先度順、帯域確保順、あるいは到着順などアプリケーションに応じた基準に基づいてエンジン部200に転送する順序を決定することで、効率的な並列処理をエンジン部200にて行なうことができるようにする仕組みについて、基本的な処理手法を説明したが、上記で示した処理は、データの機密性や完全性を保証するセキュリティ通信システムに用いられる様々なプロトコルに適用することができる。
<Applicable protocol>
As described above, when a plurality of processing requests are generated almost simultaneously, the data is divided by a predetermined size, and the engine unit 200 is based on a criterion according to the application such as priority order, bandwidth reservation order, arrival order, for example. The basic processing technique has been described with respect to the mechanism that enables the engine unit 200 to perform efficient parallel processing by determining the order of transfer to the above. The present invention can be applied to various protocols used in a security communication system that guarantees confidentiality and integrity.

たとえば、リアルタイムデータの送信を行うプロトコルRTP(Real time protocol)にセキュリティ機能を付加するSRTP(Secure RTP)や、クライアントとサーバとの間で相互認証をできるようにし、認証され暗号化された接続を確立するようにすることでトランスポートレイヤのセキュリティを実現するSSL(Secure Sockets Layer)、このSSLプロトコルをベースに改良されIETF(Internet Engineering Task Force )によって標準化されたTLS(Transport Layer Security)に適用することができる。   For example, SRTP (Secure RTP), which adds a security function to the real-time data transmission protocol RTP (Real time protocol), and mutual authentication between the client and server, can be used to establish an authenticated and encrypted connection. Secure Sockets Layer (SSL) that realizes transport layer security by establishing it, and applied to TLS (Transport Layer Security) standardized by IETF (Internet Engineering Task Force) based on this SSL protocol be able to.

あるいは、暗号化アルゴリズムにDES/3DES/AESなどのブロック暗号アルゴリズムを使ったIPSec(Internet Protocol Security)における暗号ペイロードESP(Encapsulating Security Payload)や、パケットのほぼ全体を対象としてICV(完全性保証用認証値)を付加することで、転送用外側IPヘッダまで含めたパケットほぼ全体の完全性を保証するAHフォーマットにも適用することができる。   Alternatively, encryption payload ESP (Encapsulating Security Payload) in IPSec (Internet Protocol Security) using block encryption algorithms such as DES / 3DES / AES as the encryption algorithm, and ICV (integrity assurance authentication) for almost the entire packet By adding (value), it can be applied to the AH format that guarantees the integrity of almost the entire packet including the outer IP header for transfer.

また、有線通信におけるプロトコルに限らず、無線通信におけるプロトコルにも適用可能であり、たとえば、IEEE(Institute of Electrical and Electronics Engineers, Inc. ;米国電気電子学会)によって標準化された、ワイヤレス機器や無線LANなどによる情報伝達のセキュリティを守るためのプロトコルであるWEP(Wired Equivalent Privacy)や、Wi−Fi Allianceが規格を策定したWEPに代わる暗号化規格であるWPA(Wi-Fi Protected Access)などにも適用可能である。   Further, the present invention can be applied not only to a protocol for wired communication but also to a protocol for wireless communication. For example, a wireless device or a wireless LAN standardized by IEEE (Institute of Electrical and Electronics Engineers, Inc.) Also applied to WEP (Wired Equivalent Privacy), a protocol for protecting information transmission security, and WPA (Wi-Fi Protected Access), an encryption standard that replaces WEP established by Wi-Fi Alliance. Is possible.

なお、現段階では、IEEEでの規格化作業が終了していないが、IEEE802.11iで制定されるセキュリティプロトコルにも、上記実施形態で説明した処理を適用することが可能である。   At this stage, standardization work in IEEE is not finished, but the processing described in the above embodiment can be applied to a security protocol established in IEEE802.11i.

なお、複数の処理階層において、暗号化や復号化あるいは認証やチェックサムなどの処理要求が概ね同時にあるか否かは、アプリケーションが適用する通信プロトコルと、それに適用されるセキュリティプロトコルとの関係で決まるものである。   Whether or not processing requests such as encryption, decryption, authentication, and checksum are almost simultaneous in a plurality of processing layers is determined by the relationship between the communication protocol applied by the application and the security protocol applied thereto. Is.

何れにおいても、上記で説明したように、複数の処理階層において、暗号化や復号化あるいは認証やチェックサムなどの処理要求が概ね同時にあるか場合には、その要求に応えてエンジン部200が並列処理可能なように、データを所定サイズで分割し、アプリケーションに応じた転送順序で分割データを順次転送することで、効率的な並列処理をエンジン部200にて実行する。   In any case, as described above, when processing requests such as encryption, decryption, authentication, checksum, etc. are almost simultaneously in a plurality of processing layers, the engine unit 200 is paralleled in response to the requests. The engine unit 200 executes efficient parallel processing by dividing the data into a predetermined size so as to be processed and sequentially transferring the divided data in a transfer order according to the application.

<具体的な事例>
図18は、上記実施形態で説明したデータ処理を適用するプロトコルの具体例を説明する図である。この例は、セキュリティ通信として、アプリケーション層P21(セッション層P13)でセキュリティ処理を行なうSSL/TLSプロトコル(P31)とインターネット層P23としてのIP層P33でセキュリティ処理を行なうIPSecとを併用し、トランスポート層P22ではTCP/UDP(P32)を使用する場合を示している。
<Specific examples>
FIG. 18 is a diagram illustrating a specific example of a protocol to which the data processing described in the above embodiment is applied. In this example, the SSL / TLS protocol (P31) that performs security processing in the application layer P21 (session layer P13) and IPSec that performs security processing in the IP layer P33 as the Internet layer P23 are used in combination as security communication. The layer P22 shows a case where TCP / UDP (P32) is used.

ここで、アプリケーション層P21でのSSL/TLSフォーマットに基づくセキュリティ処理時にメインシステム100とエンジン部200との間でデータ転送を要する。また、トランスポート層P22でのTCPやUDPのチェックサム処理時にメインシステム100とエンジン部200との間でデータ転送を要する。さらに、インターネット層P23でのIPSecフォーマットに基づくセキュリティ処理時にメインシステム100とエンジン部200との間でデータ転送を要する。これらの処理は、アプリケーションからほぼ同時に処理要求が発せられることがある。   Here, data transfer is required between the main system 100 and the engine unit 200 during the security processing based on the SSL / TLS format in the application layer P21. Further, data transfer is required between the main system 100 and the engine unit 200 at the time of TCP or UDP checksum processing in the transport layer P22. Furthermore, data transfer is required between the main system 100 and the engine unit 200 during security processing based on the IPSec format in the Internet layer P23. In these processes, processing requests may be issued almost simultaneously from the application.

この場合、上記で説明したように、データを所定サイズで分割し、それぞれのプロトコルに応じた基準に基づいてエンジン部200に転送する順序を決定し、その決定した順序で分割データを順次エンジン部200に転送する。こうすることで、ネットワークプロトコルスタックP30での処理のうち、IP層P33内部でのIPsecの暗号化と復号化と認証コードの作成と認証コードの確認(A3)、TCP/UDP(P32)のチェックサム生成とチェックサム確認(A2)をエンジン部200において並列処理することによって、これら複数の処理内容を高速に処理できる。   In this case, as described above, the data is divided by a predetermined size, the order of transfer to the engine unit 200 is determined based on the standard according to each protocol, and the divided data is sequentially processed in the determined order. 200. By doing this, among the processes in the network protocol stack P30, IPsec encryption and decryption in the IP layer P33, creation of an authentication code, confirmation of the authentication code (A3), check of TCP / UDP (P32) By performing sum generation and checksum confirmation (A2) in parallel in the engine unit 200, it is possible to process the plurality of processing contents at high speed.

また、アプリケーションとしてSSL/TLS(P31)を用いる場合における暗号化と復号化と認証コードの作成と認証コードの確認(A1)をもエンジン部200において並列処理することによって、これら複数の処理内容を高速に処理できる。   In addition, when SSL / TLS (P31) is used as an application, the engine unit 200 also performs parallel processing of encryption, decryption, creation of an authentication code, and confirmation of the authentication code (A1). It can be processed at high speed.

このように、上記実施形態で説明した処理をセキュリティ通信システムに適用することで、複数の対象に対するデータ送受信を機密性と完全性を確保しつつ行なうことが可能になる。   In this manner, by applying the processing described in the above embodiment to the security communication system, data transmission / reception for a plurality of objects can be performed while ensuring confidentiality and integrity.

以上、本発明を実施形態を用いて説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。発明の要旨を逸脱しない範囲で上記実施形態に多様な変更または改良を加えることができ、そのような変更または改良を加えた形態も本発明の技術的範囲に含まれる。   As mentioned above, although this invention was demonstrated using embodiment, the technical scope of this invention is not limited to the range as described in the said embodiment. Various changes or improvements can be added to the above-described embodiment without departing from the gist of the invention, and embodiments to which such changes or improvements are added are also included in the technical scope of the present invention.

また、上記の実施形態は、クレーム(請求項)にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組合せの全てが発明の解決手段に必須であるとは限らない。前述した実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜の組合せにより種々の発明を抽出できる。実施形態に示される全構成要件から幾つかの構成要件が削除されても、効果が得られる限りにおいて、この幾つかの構成要件が削除された構成が発明として抽出され得る。   Further, the above embodiments do not limit the invention according to the claims (claims), and all combinations of features described in the embodiments are not necessarily essential to the solution means of the invention. Absent. The embodiments described above include inventions at various stages, and various inventions can be extracted by appropriately combining a plurality of disclosed constituent elements. Even if some constituent requirements are deleted from all the constituent requirements shown in the embodiment, as long as an effect is obtained, a configuration from which these some constituent requirements are deleted can be extracted as an invention.

たとえば、上記実施形態では、有線方式あるいは無線方式でのネットワークプロトコルにおけるデータ処理について説明したが、メインシステムとエンジン部との間で協調処理を行なう場合に、処理が階層的に定義されていて、その内の一部の処理をハードウェアで構成されたエンジン部で行なうシステム構成であればよく、エンジン部が行なう処理内容は、通信プロトコルに関わる処理に限定されるものではない。   For example, in the above embodiment, the data processing in the network protocol in the wired system or the wireless system has been described. However, when the cooperative processing is performed between the main system and the engine unit, the processing is hierarchically defined, A system configuration in which a part of the processing is performed by an engine unit configured by hardware is sufficient, and the processing content performed by the engine unit is not limited to processing related to a communication protocol.

また、上記実施形態では、メインシステムの中央演算制御処理部110側のデータ解析部113や処理手順制御部115をソフトウェア処理で構成し、ソフトウェア(中央演算制御処理部110)とハードウェア(エンジン部200)との協調動作を行なう場合における処理について説明したが、中央演算制御処理部110側のデータ解析部113や処理手順制御部115をハードウェア処理回路で構成したものであってもよい。   In the above embodiment, the data analysis unit 113 and the processing procedure control unit 115 on the central processing control processing unit 110 side of the main system are configured by software processing, and software (central processing control processing unit 110) and hardware (engine unit) 200), the data analysis unit 113 and the processing procedure control unit 115 on the central processing control processing unit 110 side may be configured by a hardware processing circuit.

また、上記図11に示したデータ処理装置3の具体的な構成例では、中央演算制御処理部110が、メモリ部120に対してバスマスターとなって、メモリ部120から処理対象データを読み出して制御部260に渡す形態を用いていたが、データの転送形態は、必ずしもこのようなものに限定されず、たとえば図2〜図4に示した何れをも採用し得る。   Further, in the specific configuration example of the data processing device 3 shown in FIG. 11 described above, the central processing control processing unit 110 serves as a bus master for the memory unit 120 and reads processing target data from the memory unit 120. Although the form transferred to the control unit 260 is used, the data transfer form is not necessarily limited to this, and any of the forms shown in FIGS. 2 to 4 can be adopted, for example.

たとえば、エンジン部200にDMAコントローラ部264を設けて、エンジン部200側が支配的となってデータ転送を行なうようにしてもよい。この場合、たとえば、図12に示した分割データの転送順に従って、分割データとその分割データに対する処理内容とをディスクリプタキュー構造でディスクリプタ領域127に格納するのがよい。   For example, the engine unit 200 may be provided with the DMA controller unit 264 so that the engine unit 200 side controls the data transfer. In this case, for example, in accordance with the transfer order of the divided data shown in FIG. 12, the divided data and the processing content for the divided data are preferably stored in the descriptor area 127 in the descriptor queue structure.

また、上記実施形態では、パーソナルコンピュータなどの情報処理装置に本発明に係るデータ処理装置を適用した事例で説明したが、これに限らず、様々な形態の装置に上記実施形態で説明した技術を適用することができる。たとえば、無線LAN(Local Area Network)にて使用される基地局としてのアクセスポイントや、端末側の装置に組み込まれるLANカードなどにも適用することができる。これらの場合の装置構成としては、図1に示したデータ処理装置3の部分を少なくとも含んでいればよいのはいうまでもない。また、エンジン部200の部分をメインシステム100に装着される着脱可能なデータ処理装置のモジュール(たとえば基板モジュール)として提供する形態であってもよい。   In the above embodiment, the data processing apparatus according to the present invention is applied to an information processing apparatus such as a personal computer. However, the present invention is not limited to this, and the technology described in the above embodiment is applied to various types of apparatuses. Can be applied. For example, the present invention can also be applied to an access point as a base station used in a wireless local area network (LAN) or a LAN card incorporated in a terminal-side device. It goes without saying that the device configuration in these cases only needs to include at least the portion of the data processing device 3 shown in FIG. Further, the engine unit 200 may be provided as a module (for example, a substrate module) of a detachable data processing device mounted on the main system 100.

本発明に係るデータ処理装置の一実施形態を備えたコンピュータ装置の構成を示したブロック図である。It is the block diagram which showed the structure of the computer apparatus provided with one Embodiment of the data processor which concerns on this invention. エンジン部に対する処理手順制御機能を実現するためのシステムアーキテクチャの第1の構成例を示した図である。It is the figure which showed the 1st structural example of the system architecture for implement | achieving the process procedure control function with respect to an engine part. エンジン部に対する処理手順制御機能を実現するためのシステムアーキテクチャの第2の構成例を示した図である。It is the figure which showed the 2nd structural example of the system architecture for implement | achieving the process procedure control function with respect to an engine part. エンジン部に対する処理手順制御機能を実現するためのシステムアーキテクチャの第3の構成例を示した図である。It is the figure which showed the 3rd structural example of the system architecture for implement | achieving the process procedure control function with respect to an engine part. コマンドディスクリプタと、処理手順情報およびデータ格納場所情報の一例を示した図である。It is a figure showing an example of command descriptor, processing procedure information, and data storage location information. ディスクリプタのキュー構造を説明する図である。It is a figure explaining the queue structure of a descriptor. ディスクリプタのスタック構造を説明する図である。It is a figure explaining the stack structure of a descriptor. 処理階層モデルにおける、ディスクリプタキューの一例を示した図である。It is the figure which showed an example of the descriptor queue in a process hierarchy model. 複数の処理要求に対応して、同時並行的にエンジン部にて処理を行なう場合に対応したコマンドディスクリプタキューの一例を示した図である。It is the figure which showed an example of the command descriptor queue corresponding to the case where an engine part processes simultaneously in response to a some process request. 通信プロトコルにおける階層モデルと、処理階層との関係を説明する図である。It is a figure explaining the relationship between the hierarchy model in a communication protocol, and a process hierarchy. 図1に示したコンピュータ装置に備えられているデータ処理装置の詳細な構成例を示したブロック図である。It is the block diagram which showed the detailed structural example of the data processor with which the computer apparatus shown in FIG. 1 was equipped. 一次ドライバおよび二次ドライバと、階層モデルで表された処理手順との関係を示した模式図である。It is the schematic diagram which showed the relationship between a primary driver and a secondary driver, and the process sequence represented by the hierarchy model. 一次ドライバの詳細構成例を説明するブロック図である。It is a block diagram explaining the detailed structural example of a primary driver. 一次ドライバにおける処理概要を示したフローチャートである。It is the flowchart which showed the process outline | summary in a primary driver. 二次ドライバの詳細構成例を説明するブロック図である。It is a block diagram explaining the detailed structural example of a secondary driver. 二次ドライバによるデータ転送と、エンジン部における処理の概要を示したフローチャートである。It is the flowchart which showed the outline | summary of the data transfer by a secondary driver, and the process in an engine part. 到着順で転送順序を決定する場合の処理概要を示した図である。It is the figure which showed the process outline | summary in the case of determining a transfer order by arrival order. 上記実施形態で説明したデータ処理を適用するプロトコルの具体例を説明する図である。It is a figure explaining the specific example of the protocol which applies the data processing demonstrated by the said embodiment. 複数の処理要求が同時に発せられた場合における従来技術の問題点を説明する図である。It is a figure explaining the problem of the prior art in the case where a plurality of processing requests are issued simultaneously.

符号の説明Explanation of symbols

1…コンピュータ装置、3…データ処理装置、100…メインシステム、110…中央演算制御処理部、113…データ解析部、115…処理手順制御部、117…アクセラレータドライバ、120…メモリ部、122…ROM、124…RAM(主記憶部)、125…処理データ格納領域、126…コマンド格納領域、127…ディスクリプタ領域、130…一次ドライバ、132…データ解析部、134…データ分割検討部、136…分割条件設定部、138…分割処理部、140…二次ドライバ、142…データプール、144…データセレクタ、146…順序基準設定部、150…インタフェース部、180…内部バス、200…エンジン部、240…処理部、242…秘匿処理部、242a…暗号化処理部、242b…復号化処理部、244…認証処理部、246…チェックサム処理部、248…セキュリティ処理部、249…同一性確認処理部、250,252…セレクタ、260…制御部、262…バスIF部、264…DMAコントローラ部、266…指示制御部   DESCRIPTION OF SYMBOLS 1 ... Computer apparatus, 3 ... Data processing apparatus, 100 ... Main system, 110 ... Central processing control processing part, 113 ... Data analysis part, 115 ... Processing procedure control part, 117 ... Accelerator driver, 120 ... Memory part, 122 ... ROM , 124 ... RAM (main storage section), 125 ... processing data storage area, 126 ... command storage area, 127 ... descriptor area, 130 ... primary driver, 132 ... data analysis section, 134 ... data division examination section, 136 ... division conditions Setting unit, 138 ... division processing unit, 140 ... secondary driver, 142 ... data pool, 144 ... data selector, 146 ... order reference setting unit, 150 ... interface unit, 180 ... internal bus, 200 ... engine unit, 240 ... processing , 242 ... Concealment processing unit, 242a ... Encryption processing unit, 242b ... Decryption processing 244: Authentication processing unit, 246 ... Checksum processing unit, 248 ... Security processing unit, 249 ... Identity confirmation processing unit, 250, 252 ... Selector, 260 ... Control unit, 262 ... Bus IF unit, 264 ... DMA controller unit 266 ... Instruction control unit

Claims (18)

メインシステムからハードウェアで構成されたエンジン部に処理対象データを転送して、当該処理対象データに対して所定の処理を行ない、処理済みデータを前記メインシステムに転送するデータ処理方法であって、
前記エンジン部が担当するそれぞれ異なる処理内容の複数の処理について、
前記複数の処理の各々で処理対象とされる前記処理対象データを所定サイズに分割し、
所定の基準に基づいて、分割された各分割データの前記エンジン部への転送順序を決定し、
決定された前記転送順序に従って、前記分割データを前記エンジン部へ順次転送し、
前記エンジン部において、前記メインシステムから転送された前記分割データの前記処理内容に応じた処理を順次実行し、
処理済みデータを前記メインシステムに転送する
ことを特徴とするデータ処理方法。
A data processing method of transferring processing target data from a main system to an engine unit configured by hardware, performing predetermined processing on the processing target data, and transferring processed data to the main system,
For a plurality of processes with different processing contents in charge of the engine unit,
Dividing the processing target data to be processed in each of the plurality of processes into a predetermined size;
Based on a predetermined standard, determine the transfer order of each divided data to the engine unit,
According to the determined transfer order, sequentially transfer the divided data to the engine unit,
In the engine unit, sequentially execute processing according to the processing content of the divided data transferred from the main system,
A data processing method characterized by transferring processed data to the main system.
前記所定の基準は、前記メインシステムが適用するアプリケーションに応じて決定する
ことを特徴とする請求項1に記載のデータ処理方法。
The data processing method according to claim 1, wherein the predetermined criterion is determined according to an application applied by the main system.
前記所定の基準は、処理内容の優先度順、通信における帯域確保順、および処理要求の到着順のうちの何れかである
ことを特徴とする請求項1に記載のデータ処理方法。
The data processing method according to claim 1, wherein the predetermined criterion is any one of a priority order of processing contents, a bandwidth reservation order in communication, and a processing request arrival order.
前記それぞれ異なる処理内容の複数の処理は、通信プロトコルにおける、暗号化処理、復号化処理、認証処理、あるいはチェックサム処理である
ことを特徴とする請求項1に記載のデータ処理方法。
The data processing method according to claim 1, wherein the plurality of processes having different processing contents are an encryption process, a decryption process, an authentication process, or a checksum process in a communication protocol.
前記暗号化処理、復号化処理、および認証処理は、SSLプロトコル、TLSプロトコル、またはIPsecプロトコルに従ったものである
ことを特徴とする請求項4に記載のデータ処理方法。
The data processing method according to claim 4, wherein the encryption process, the decryption process, and the authentication process are in accordance with an SSL protocol, a TLS protocol, or an IPsec protocol.
前記チェックサム処理は、TCPプロトコルまたはUDPプロトコルに従ったものである
ことを特徴とする請求項4に記載のデータ処理方法。
The data processing method according to claim 4, wherein the checksum processing is in accordance with a TCP protocol or a UDP protocol.
前記分割データのそれぞれについて前記エンジン部に対して通知する前記処理内容の情報と当該処理内容に対応した前記処理対象データの前記メインシステムにおける格納位置を示すアドレス情報とを対応付け、順に所定の記憶部に格納し、
所定のタイミングで、前記記憶部から前記処理内容の情報と前記アドレス情報とを順に読み出して、前記分割データに対して前記処理内容に応じた処理を順次実行する
ことを特徴とする請求項1に記載のデータ処理方法。
Information on the processing content notified to the engine unit for each of the divided data and address information indicating the storage position in the main system of the processing target data corresponding to the processing content are associated with each other and sequentially stored in a predetermined manner. Store in the department,
The processing content information and the address information are sequentially read from the storage unit at a predetermined timing, and processing corresponding to the processing content is sequentially executed on the divided data. The data processing method described.
前記処理内容の情報と前記アドレス情報の前記記憶部への格納と読出しは、先入れ先出し法で行なう
ことを特徴とする請求項7に記載のデータ処理方法。
The data processing method according to claim 7, wherein the information on the processing contents and the address information are stored in and read from the storage unit by a first-in first-out method.
ハードウェアで構成されたエンジン部とメインシステムとを備え、前記エンジン部に前記メインシステムから処理対象データを転送して、当該処理対象データに対して所定の処理を行ない、処理済みデータを前記メインシステムに転送するデータ処理装置であって、
前記メインシステムは、
前記エンジン部が担当するそれぞれ異なる処理内容の複数の処理について、前記複数の処理の各々で処理対象とされる前記処理対象データを所定サイズに分割し、所定の基準に基づいて、分割された各分割データの前記エンジン部への転送順序を決定する処理手順制御部
を備えていることを特徴とするデータ処理装置。
An engine unit configured by hardware and a main system are provided, the processing target data is transferred from the main system to the engine unit, and predetermined processing is performed on the processing target data. A data processing device for transfer to a system,
The main system is
For a plurality of processes having different processing contents handled by the engine unit, the processing target data to be processed in each of the plurality of processes is divided into a predetermined size, and each of the divided processes is performed based on a predetermined criterion. A data processing apparatus comprising: a processing procedure control unit that determines a transfer order of divided data to the engine unit.
前記処理手順制御部は、
前記複数の処理の各々で処理対象とされる前記処理対象データを分割する際の前記所定サイズを判断するデータ分割検討部と、
前記データ分割検討部の判断結果に従った前記所定サイズで前記処理対象データを分割する分割処理部と
を有していることを特徴とする請求項9に記載のデータ処理装置。
The processing procedure control unit
A data division examination unit that determines the predetermined size when dividing the processing target data to be processed in each of the plurality of processes;
The data processing apparatus according to claim 9, further comprising: a division processing unit that divides the processing target data at the predetermined size according to a determination result of the data division examination unit.
前記処理手順制御部は、
さらに、前記データ分割検討部に対して、前記所定サイズを判断する際の条件を設定する分割条件設定部を有しており、
前記前記データ分割検討部は、前記分割条件設定部により設定された条件に従って前記処理対象データを分割する前記所定サイズを決定し、決定した所定サイズを前記分割処理部に通知する
ことを特徴とする請求項10に記載のデータ処理装置。
The processing procedure control unit
Furthermore, the data division examination unit has a division condition setting unit that sets conditions for determining the predetermined size,
The data division examination unit determines the predetermined size for dividing the processing target data in accordance with the condition set by the division condition setting unit, and notifies the division processing unit of the determined predetermined size. The data processing apparatus according to claim 10.
前記処理手順制御部は、
前記複数の処理の各々で処理対象とされる前記処理対象データのそれぞれについて、前記処理対象データを分割する必要があるか否かを判定するデータ解析部
をさらに備え、
前記処理手順制御部は、前記データ解析部が前記処理対象データを分割する必要があると判定した場合に、前記所定サイズを決定して前記分割処理部に通知する
ことを特徴とする請求項10に記載のデータ処理装置。
The processing procedure control unit
A data analysis unit for determining whether or not it is necessary to divide the processing target data for each of the processing target data to be processed in each of the plurality of processes;
The processing procedure control unit determines the predetermined size and notifies the division processing unit when determining that the data analysis unit needs to divide the processing target data. The data processing apparatus described in 1.
前記エンジン部は、所定のデータ処理を行なうデータ処理部および前記データ処理部を制御する制御部を有し、
前記データ処理部は、前記それぞれ異なる処理内容の複数の処理として、通信プロトコルにおける、暗号化処理、復号化処理、認証処理、あるいはチェックサム処理を、それぞれ独立して行なう個別のハードウェア回路で構成された機能部を有している
ことを特徴とする請求項9に記載のデータ処理装置。
The engine unit includes a data processing unit that performs predetermined data processing and a control unit that controls the data processing unit,
The data processing unit is composed of individual hardware circuits that independently perform encryption processing, decryption processing, authentication processing, or checksum processing in a communication protocol as the plurality of processes having different processing contents. The data processing device according to claim 9, further comprising: a functional unit configured as described above.
前記分割データのそれぞれについて前記エンジン部に対して通知する前記処理内容の情報と当該処理内容に対応した前記処理対象データの前記メインシステムにおける格納位置を示すアドレス情報とを対応付けて順に格納する記憶部
をさらに備えていることを特徴とする請求項9に記載のデータ処理装置。
A storage for sequentially storing the information on the processing content notified to the engine unit for each of the divided data and the address information indicating the storage position in the main system of the processing target data corresponding to the processing content The data processing apparatus according to claim 9, further comprising: a unit.
前記エンジン部は、前記メインシステムの前記処理手順制御部から処理の起動指示を受け付けると、前記処理内容の情報と当該処理内容に対応した前記処理対象データの前記メインシステムにおける格納位置を示すアドレス情報とを前記記憶部から順に読み出して、前記分割データに対して前記処理内容に応じた処理を順次実行する
ことを特徴とする請求項14に記載のデータ処理装置。
When the engine unit receives an instruction to start processing from the processing procedure control unit of the main system, the information on the processing content and address information indicating the storage location in the main system of the processing target data corresponding to the processing content The data processing apparatus according to claim 14, wherein the processing is sequentially executed from the storage unit, and processing corresponding to the processing content is sequentially executed on the divided data.
前記処理内容の情報と前記アドレス情報の前記記憶部への格納と読出しを、先入れ先出し法で行なうメモリ制御部
をさらに備えていることを特徴とする請求項14に記載のデータ処理装置。
The data processing apparatus according to claim 14, further comprising a memory control unit that performs storage and reading of the processing content information and the address information in the storage unit by a first-in first-out method.
前記メモリ制御部は、前記エンジン部に設けられている
ことを特徴とする請求項16に記載のデータ処理装置。
The data processing apparatus according to claim 16, wherein the memory control unit is provided in the engine unit.
前記エンジン部は、前記処理内容の情報と前記アドレス情報の前記記憶部からの読出しを、DMA転送によって行なうメモリ制御部を有している
ことを特徴とする請求項14に記載のデータ処理装置。
The data processing apparatus according to claim 14, wherein the engine unit includes a memory control unit that performs reading of the processing content information and the address information from the storage unit by DMA transfer.
JP2003406900A 2003-12-05 2003-12-05 Method and apparatus for processing data Pending JP2005167870A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003406900A JP2005167870A (en) 2003-12-05 2003-12-05 Method and apparatus for processing data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003406900A JP2005167870A (en) 2003-12-05 2003-12-05 Method and apparatus for processing data

Publications (1)

Publication Number Publication Date
JP2005167870A true JP2005167870A (en) 2005-06-23

Family

ID=34729110

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003406900A Pending JP2005167870A (en) 2003-12-05 2003-12-05 Method and apparatus for processing data

Country Status (1)

Country Link
JP (1) JP2005167870A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007166279A (en) * 2005-12-14 2007-06-28 Nippon Telegr & Teleph Corp <Ntt> IPsec CIRCUIT AND IPsec PROCESSING METHOD
JP2008067152A (en) * 2006-09-08 2008-03-21 Renesas Technology Corp Data processor
WO2009005089A1 (en) * 2007-07-03 2009-01-08 Nec Corporation Data encryption/decryption method and data processing device
JP2010268293A (en) * 2009-05-15 2010-11-25 Hitachi Ltd Communications apparatus and communication processing method

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS588336A (en) * 1981-07-06 1983-01-18 Hitachi Ltd Data transferring method
JPH0883257A (en) * 1994-09-13 1996-03-26 Hitachi Ltd Method for optimizing process execution of parallel computer system
JPH09224066A (en) * 1996-02-14 1997-08-26 Kokusai Denshin Denwa Co Ltd <Kdd> Communication protocol parallel processor
JPH10240128A (en) * 1996-12-26 1998-09-11 Toshiba Corp Ciphering device, cryptographic key generation method and method of managing cryptographic key, and prime number generation device and method therefor
JP2000013609A (en) * 1998-06-23 2000-01-14 Fujitsu Ltd Encoding device
WO2002048857A2 (en) * 2000-12-13 2002-06-20 Infineon Technologies Ag Cryptographic processor
JP2003503963A (en) * 1999-06-30 2003-01-28 インターナショナル・ビジネス・マシーンズ・コーポレーション Dynamic connection to multiple origin servers with transcoding proxy
JP2005167544A (en) * 2003-12-02 2005-06-23 Sony Corp Method and device for processing data

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS588336A (en) * 1981-07-06 1983-01-18 Hitachi Ltd Data transferring method
JPH0883257A (en) * 1994-09-13 1996-03-26 Hitachi Ltd Method for optimizing process execution of parallel computer system
JPH09224066A (en) * 1996-02-14 1997-08-26 Kokusai Denshin Denwa Co Ltd <Kdd> Communication protocol parallel processor
JPH10240128A (en) * 1996-12-26 1998-09-11 Toshiba Corp Ciphering device, cryptographic key generation method and method of managing cryptographic key, and prime number generation device and method therefor
JP2000013609A (en) * 1998-06-23 2000-01-14 Fujitsu Ltd Encoding device
JP2003503963A (en) * 1999-06-30 2003-01-28 インターナショナル・ビジネス・マシーンズ・コーポレーション Dynamic connection to multiple origin servers with transcoding proxy
WO2002048857A2 (en) * 2000-12-13 2002-06-20 Infineon Technologies Ag Cryptographic processor
JP2005167544A (en) * 2003-12-02 2005-06-23 Sony Corp Method and device for processing data

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007166279A (en) * 2005-12-14 2007-06-28 Nippon Telegr & Teleph Corp <Ntt> IPsec CIRCUIT AND IPsec PROCESSING METHOD
JP4647479B2 (en) * 2005-12-14 2011-03-09 日本電信電話株式会社 IPsec circuit and IPsec processing method
JP2008067152A (en) * 2006-09-08 2008-03-21 Renesas Technology Corp Data processor
US8181024B2 (en) 2006-09-08 2012-05-15 Renesas Electronics Corporation Data processing apparatus
US8918646B2 (en) 2006-09-08 2014-12-23 Renesas Electronics Corporation Data processing apparatus
WO2009005089A1 (en) * 2007-07-03 2009-01-08 Nec Corporation Data encryption/decryption method and data processing device
US8341394B2 (en) 2007-07-03 2012-12-25 Nec Corporation Data encryption/decryption method and data processing device
JP5487966B2 (en) * 2007-07-03 2014-05-14 日本電気株式会社 Data encryption / decryption processing method and data processing apparatus
JP2010268293A (en) * 2009-05-15 2010-11-25 Hitachi Ltd Communications apparatus and communication processing method

Similar Documents

Publication Publication Date Title
JP4018701B2 (en) Internet protocol tunneling using templates
US7774593B2 (en) Encrypted packet, processing device, method, program, and program recording medium
US8468337B2 (en) Secure data transfer over a network
EP1203477B1 (en) Protection of communications
CN101582901B (en) Information processing apparatus and control method thereof
US8261055B2 (en) Information processing apparatus and system and data communication method pertaining to the information processing system
JP5205075B2 (en) Encryption processing method, encryption processing device, decryption processing method, and decryption processing device
US8571206B2 (en) Information transmitting apparatus, information transmitting method, and computer product
US20070245140A1 (en) Communication system and network control apparatus with encryption processing function, and communication control method
WO2017221979A1 (en) Process control device, process control method, and recording medium having process control program recorded therein
JP2008035300A (en) Packet encryption processor and packet encryption processing method
CN115622772A (en) Financial data transmission method and application gateway for financial business service
KR100624691B1 (en) Apparatus and method for decryption processing of block encrypted data
US8316431B2 (en) Concurrent IPsec processing system and method
JP2005167870A (en) Method and apparatus for processing data
JP4264644B2 (en) Data processing method and data processing apparatus
CN113810397B (en) Protocol data processing method and device
US20080181404A1 (en) Encrypted packet communication system
JP2004328359A (en) Packet processor
US20060013397A1 (en) Channel adapter managed trusted queue pairs
CN111031055B (en) IPsec acceleration device and implementation method
JP2006041684A (en) Encryption processing apparatus and encryption processing method
JP2009060245A (en) Communication control method, program and communication device
CN112015564A (en) Encryption and decryption processing method and device
JP2004180234A (en) Encrypted packet processing system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060619

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20091007

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20091015

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091201

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100406