JP6766567B2 - Information processing equipment, methods and programs - Google Patents
Information processing equipment, methods and programs Download PDFInfo
- Publication number
- JP6766567B2 JP6766567B2 JP2016195773A JP2016195773A JP6766567B2 JP 6766567 B2 JP6766567 B2 JP 6766567B2 JP 2016195773 A JP2016195773 A JP 2016195773A JP 2016195773 A JP2016195773 A JP 2016195773A JP 6766567 B2 JP6766567 B2 JP 6766567B2
- Authority
- JP
- Japan
- Prior art keywords
- identifier
- storage unit
- processing
- information
- unit
- 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.)
- Active
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
本発明は、通信ネットワークを介して送受信される情報を処理する、情報処理装置、方法およびプログラムに関する。 The present invention relates to information processing devices, methods and programs that process information transmitted and received over a communication network.
CPU(Central Processing Unit)とメインメモリとを備える情報処理装置が通信ネットワークのパケットをソフトウェアで処理する場合、ソフトウェアは図21の構成例のように構成されることが多い。この構成では、パケットを処理するソフトウェア(パケット処理ソフトウェア)はマルチスレッドに対応し、各スレッドは異なるCPUコアで実行される。 When an information processing device including a CPU (Central Processing Unit) and a main memory processes packets of a communication network by software, the software is often configured as shown in the configuration example of FIG. In this configuration, the software that processes packets (packet processing software) supports multithreading, and each thread is executed by a different CPU core.
ソフトウェアは、NIC(Network Interface Card)経由でパケットを受信し、まず受信処理スレッドで受信処理を行う。受信処理スレッドは、受信したパケットの一次解析を行い、当該パケットを処理するパケット処理スレッドを決定し、当該スレッドにパケットを引き渡す。このとき、受信処理スレッドは、パケットと当該パケットを処理すべきパケット処理スレッドとを対応付けた処理振分表を参照して、パケットの引き渡し先のパケット処理スレッドを決定する。 The software receives a packet via a NIC (Network Interface Card), and first performs reception processing in a reception processing thread. The reception processing thread performs the primary analysis of the received packet, determines the packet processing thread that processes the packet, and delivers the packet to the thread. At this time, the reception processing thread determines the packet processing thread to which the packet is delivered by referring to the processing distribution table in which the packet and the packet processing thread to process the packet are associated with each other.
パケットを受け取ったパケット処理スレッドは、パケットの処理を行い、送信処理スレッドを選択した上で当該パケットを送信処理スレッドへ引き渡す。送信処理スレッドは当該パケットをNIC経由で送信する。なお、図21のNICやスレッドの数、接続関係は一例である。 The packet processing thread that receives the packet processes the packet, selects the transmission processing thread, and then delivers the packet to the transmission processing thread. The transmission processing thread transmits the packet via the NIC. The number of NICs and threads in FIG. 21 and the connection relationship are examples.
ここで、情報処理装置によるパケット処理の性能を向上する方法として、たとえば、受信処理スレッドの処理をハードウェアで実行させる方法が考えられる。図22に、そのためのソフトウェアおよびハードウェアの構成の一例を示す。 Here, as a method of improving the performance of packet processing by the information processing device, for example, a method of executing the processing of the reception processing thread by hardware can be considered. FIG. 22 shows an example of software and hardware configurations for that purpose.
受信処理HW(Hardware)の受信処理回路は、図21の受信処理スレッドでソフトウェアとして行われていた処理を実装する回路である。受信処理HWはNICと接続されており、受信処理回路はNICからパケットを受信し処理する。処理振分表はメインメモリ上にあり、パケット処理ソフトウェアによって管理される。受信処理回路は、処理振分表を参照して、受信したパケットを処理すべきパケット処理スレッドを決定し、パケット処理スレッドに当該パケットを入力する。 The reception processing circuit of the reception processing HW (Hardware) is a circuit that implements the processing performed as software in the reception processing thread of FIG. The reception processing HW is connected to the NIC, and the reception processing circuit receives and processes packets from the NIC. The processing distribution table is in the main memory and is managed by the packet processing software. The reception processing circuit refers to the processing distribution table, determines the packet processing thread to process the received packet, and inputs the packet to the packet processing thread.
しかし、この構成では、受信処理回路が処理振分表を高頻度に参照することにより、バスの帯域、特に、受信処理HWとメインメモリ間の通信帯域が多く消費されてしまう。たとえば、NICの通信速度が100Gbps、パケットサイズが64バイトであった場合、パケット受信数は約毎秒150Mパケットに及ぶ。(一つのパケットを送信するとき、パケットデータ本体の64バイトに加えて、制御信号等により20バイト程度の通信帯域が消費される。そのため、この場合の1秒あたりのパケット受信数は、100G[bps]/(8[b/B]×84[B/パケット])で計算できる。)そして、一パケットの振り分けに64バイトのデータを参照した場合、その消費帯域は約150Mパケット/s×64B/パケット=約10GB/sにもなる。このように、パケットを受信する毎に処理振分表を参照すると、多くの通信帯域が消費されるため、情報処理装置によるパケット処理の性能劣化や処理速度の低下の要因となりうる。 However, in this configuration, since the reception processing circuit frequently refers to the processing distribution table, a large amount of bus bandwidth, particularly the communication bandwidth between the reception processing HW and the main memory, is consumed. For example, when the communication speed of the NIC is 100 Gbps and the packet size is 64 bytes, the number of packets received reaches about 150 M packets per second. (When transmitting one packet, in addition to 64 bytes of the packet data body, a communication band of about 20 bytes is consumed by a control signal or the like. Therefore, the number of packets received per second in this case is 100 G [ It can be calculated with bps] / (8 [b / B] x 84 [B / packet]).) And when 64 bytes of data are referred to for the distribution of one packet, the consumption band is about 150M packets / s x 64B. / Packet = about 10 GB / s. As described above, when the processing distribution table is referred to every time a packet is received, a large amount of communication band is consumed, which may cause deterioration in the performance of packet processing by the information processing device and a decrease in processing speed.
上記の課題を解決する方法として、受信処理HW内にキャッシュメモリを設け、処理振分表の参照結果をキャッシュし再利用する方法がある。処理振分表の参照結果をキャッシュメモリに格納して再利用すると、パケットを受信する毎に処理振分表を参照する場合に比べて、消費通信帯域を減少させることが可能になる。 As a method of solving the above problem, there is a method of providing a cache memory in the reception processing HW and caching and reusing the reference result of the processing distribution table. By storing the reference result of the processing distribution table in the cache memory and reusing it, it is possible to reduce the communication bandwidth consumed as compared with the case where the processing distribution table is referred to every time a packet is received.
たとえば、特許文献1に記載の方法は、パケットの情報の部分集合をキャッシュメモリに記憶させる。そして、受信したパケットの情報の部分集合とキャッシュメモリに格納された部分集合とを比較し、キャッシュヒットした場合に受信したパケットを第2のパスへ分岐させている。
For example, the method described in
しかし、一般に、キャッシュメモリとして利用できるハードウェアリソースの量には限界がある。そのため、受信処理回路が参照する処理振分表の大きさ(ワーキングセットサイズ)がリソース量より大きい(キャッシュメモリ容量より大きい)場合、受信処理HWが頻繁にメインメモリを参照することになる。そして、キャッシュメモリを使用することによる消費通信帯域の削減効果が低下してしまう。 However, in general, there is a limit to the amount of hardware resources that can be used as cache memory. Therefore, when the size (working set size) of the processing distribution table referenced by the reception processing circuit is larger than the resource amount (larger than the cache memory capacity), the reception processing HW frequently refers to the main memory. Then, the effect of reducing the consumption communication band by using the cache memory is reduced.
本発明の目的は、限られたキャッシュメモリ容量でより高い消費通信帯域削減効果を得ることを可能にする、情報処理装置、方法およびプログラムを提供することにある。 An object of the present invention is to provide an information processing device, a method, and a program that enable a higher communication bandwidth reduction effect to be obtained with a limited cache memory capacity.
上述の問題を解決するために、本発明の情報処理装置は、入力データに含まれる第一の識別子に基づいて前記第一の識別子よりビット数が小さい第二の識別子を算出する算出部と、前記第二の識別子に対応する処理情報が第二の記憶部に記憶されていないとき、前記第一の識別子に対応する前記処理情報を第一の記憶部から取得し、前記第二の識別子と前記処理情報とを対応付けて前記第二の記憶部に記憶させる第一の取得部と、前記第二の識別子に対応する前記処理情報が前記第二の記憶部に記憶されているとき、前記第二の識別子に対応する前記処理情報を前記第二の記憶部から取得する第二の取得部と、前記第一の記憶部あるいは前記第二の記憶部から取得した前記処理情報に対応する処理を前記入力データに対して行う処理部とを備えることを特徴とする。 In order to solve the above-mentioned problems, the information processing apparatus of the present invention includes a calculation unit that calculates a second identifier having a smaller number of bits than the first identifier based on the first identifier included in the input data. When the processing information corresponding to the second identifier is not stored in the second storage unit, the processing information corresponding to the first identifier is acquired from the first storage unit, and the second identifier is used. When the first acquisition unit that associates the processing information and stores it in the second storage unit and the processing information corresponding to the second identifier are stored in the second storage unit, the said A second acquisition unit that acquires the processing information corresponding to the second identifier from the second storage unit, and a process corresponding to the processing information acquired from the first storage unit or the second storage unit. Is provided with a processing unit for performing the above input data.
また、本発明の情報処理方法は、入力データに含まれる第一の識別子に基づいて前記第一の識別子よりビット数が小さい第二の識別子を算出し、前記第二の識別子に対応する処理情報が第二の記憶部に記憶されていないとき、前記第一の識別子に対応する前記処理情報を第一の記憶部から取得し、前記第二の識別子と前記処理情報とを対応付けて前記第二の記憶部に記憶させ、前記第二の識別子に対応する前記処理情報が前記第二の記憶部に記憶されているとき、前記第二の識別子に対応する前記処理情報を前記第二の記憶部から取得し、前記第一の記憶部あるいは前記第二の記憶部から取得した前記処理情報に対応する処理を前記入力データに対して行うことを特徴とする。 Further, the information processing method of the present invention calculates a second identifier having a smaller number of bits than the first identifier based on the first identifier included in the input data, and processing information corresponding to the second identifier. Is not stored in the second storage unit, the processing information corresponding to the first identifier is acquired from the first storage unit, and the second identifier and the processing information are associated with the first storage unit. When the processing information corresponding to the second identifier is stored in the second storage unit and stored in the second storage unit, the processing information corresponding to the second identifier is stored in the second storage unit. It is characterized in that processing corresponding to the processing information acquired from the first storage unit or the second storage unit is performed on the input data.
また、本発明の情報処理プログラムは、コンピュータに、入力データに含まれる第一の識別子に基づいて前記第一の識別子よりビット数が小さい第二の識別子を算出する算出機能と、前記第二の識別子に対応する処理情報が第二の記憶部に記憶されていないとき、前記第一の識別子に対応する前記処理情報を第一の記憶部から取得し、前記第二の識別子と前記処理情報とを対応付けて前記第二の記憶部に記憶させる第一の取得機能と、前記第二の識別子に対応する前記処理情報が前記第二の記憶部に記憶されているとき、前記第二の識別子に対応する前記処理情報を前記第二の記憶部から取得する第二の取得機能と、前記第一の記憶部あるいは前記第二の記憶部から取得した前記処理情報に対応する処理を前記入力データに対して行う処理機能とを実現させることを特徴とする。 Further, the information processing program of the present invention has a calculation function of calculating a second identifier having a smaller number of bits than the first identifier based on the first identifier included in the input data, and the second identifier. When the processing information corresponding to the identifier is not stored in the second storage unit, the processing information corresponding to the first identifier is acquired from the first storage unit, and the second identifier and the processing information are combined. When the processing information corresponding to the second identifier and the processing information corresponding to the second identifier are stored in the second storage unit, the second identifier is stored in the second storage unit. The second acquisition function of acquiring the processing information corresponding to the second storage unit and the processing corresponding to the processing information acquired from the first storage unit or the second storage unit are input data. It is characterized by realizing a processing function to be performed on the device.
本発明の情報処理装置、方法およびプログラムにより、限られたキャッシュメモリ容量でより高い消費通信帯域削減効果を得ることが可能になる。 The information processing apparatus, method and program of the present invention make it possible to obtain a higher effect of reducing the communication bandwidth consumption with a limited cache memory capacity.
[第一の実施形態]
本発明の第一の実施の形態について説明する。
[First Embodiment]
The first embodiment of the present invention will be described.
図1に本実施形態の情報処理装置10の構成例を示す。本実施形態の情報処理装置10は、第一の記憶部11、第二の記憶部12、算出部13、第一の取得部14、第二の取得部15および処理部16により構成される。
FIG. 1 shows a configuration example of the
算出部13は、入力データに含まれる第一の識別子に基づいて第一の識別子よりビット数が小さい第二の識別子を算出する部分である。
The
第一の取得部14は、第二の識別子に対応する処理情報が第二の記憶部12に記憶されていないとき、第一の識別子に対応する処理情報を第一の記憶部11から取得し、第二の識別子と処理情報とを対応付けて第二の記憶部12に記憶させる部分である。
When the processing information corresponding to the second identifier is not stored in the
第二の取得部15は、第二の識別子に対応する処理情報が第二の記憶部12に記憶されているとき、第二の識別子に対応する処理情報を第二の記憶部12から取得する部分である。
When the processing information corresponding to the second identifier is stored in the
処理部16は、第一の記憶部11あるいは第二の記憶部12から取得した処理情報に対応する処理を入力データに対して行う部分である。
The
このように情報処理装置10を構成することによって、情報処理装置10は、入力データに含まれる第一の識別子に基づいて第一の識別子よりビット数が小さい第二の識別子を算出する。そして、情報処理装置10は、第二の識別子に対応する処理情報が第二の記憶部12に記憶されていないとき、第一の識別子に対応する処理情報を第一の記憶部11から取得し、第二の識別子と処理情報とを対応付けて第二の記憶部12に記憶させる。これにより、情報処理装置10は、第一の識別子よりビット数が小さい第二の識別子と処理情報とを対応付けて第二の記憶部12に記憶させるため、より多くの処理情報を第二の記憶部12に記憶させることが可能になる。そして、情報処理装置10は、より多くの処理情報を第二の記憶部12に記憶させることができるため、第一の記憶部11から処理情報を取得する頻度を減少させることが可能になる。そのため、限られたキャッシュメモリ容量でより高い消費通信帯域削減効果を得ることが可能になる。
By configuring the
次に、図2に本実施形態の情報処理装置10の動作の例を示す。
Next, FIG. 2 shows an example of the operation of the
まず、算出部13は、入力データに含まれる第一の識別子に基づいて第一の識別子よりビット数が小さい第二の識別子を算出する(ステップS101)。
First, the
次に、第一の取得部14は、第二の識別子に対応する処理情報が第二の記憶部12に記憶されていないとき(ステップS102でNO)、第一の識別子に対応する処理情報を第一の記憶部11から取得する(ステップS103)。また、第一の取得部14は、第二の識別子と処理情報とを対応付けて第二の記憶部12に記憶させる(ステップS104)。
Next, when the processing information corresponding to the second identifier is not stored in the second storage unit 12 (NO in step S102), the
また、第二の取得部15は、第二の識別子に対応する処理情報が第二の記憶部12に記憶されているとき(ステップS102でYES)、第二の識別子に対応する処理情報を第二の記憶部12から取得する(ステップS105)。
Further, when the processing information corresponding to the second identifier is stored in the second storage unit 12 (YES in step S102), the
そして、処理部16は、第一の記憶部11あるいは第二の記憶部12から取得した処理情報に対応する処理を入力データに対して行う(ステップS106)。
Then, the
このように動作することによって、情報処理装置10は、入力データに含まれる第一の識別子に基づいて第一の識別子よりビット数が小さい第二の識別子を算出する。そして、情報処理装置10は、第二の識別子に対応する処理情報が第二の記憶部12に記憶されていないとき、第一の識別子に対応する処理情報を第一の記憶部11から取得し、第二の識別子と処理情報とを対応付けて第二の記憶部12に記憶させる。これにより、情報処理装置10は、第一の識別子よりビット数が小さい第二の識別子と処理情報とを対応付けて第二の記憶部12に記憶させるため、より多くの処理情報を第二の記憶部12に記憶させることが可能になる。そして、情報処理装置10は、より多くの処理情報を第二の記憶部12に記憶させることができるため、第一の記憶部11から処理情報を取得する頻度を減少させることが可能になる。そのため、限られたキャッシュメモリ容量でより高い消費通信帯域削減効果を得ることが可能になる。
By operating in this way, the
以上で説明したように、本発明の第一の実施形態では、情報処理装置10は、入力データに含まれる第一の識別子に基づいて第一の識別子よりビット数が小さい第二の識別子を算出する。そして、情報処理装置10は、第二の識別子に対応する処理情報が第二の記憶部12に記憶されていないとき、第一の識別子に対応する処理情報を第一の記憶部11から取得し、第二の識別子と処理情報とを対応付けて第二の記憶部12に記憶させる。そのため、限られたキャッシュメモリ容量でより高い消費通信帯域削減効果を得ることが可能になる。
As described above, in the first embodiment of the present invention, the
[第二の実施形態]
次に、本発明の第二の実施の形態について説明する。本実施形態では、第一の実施形態の情報処理装置について、より具体的に説明する。
[Second Embodiment]
Next, a second embodiment of the present invention will be described. In the present embodiment, the information processing apparatus of the first embodiment will be described more specifically.
まず、図3に本実施形態の情報処理装置100の構成例を示す。本実施形態の情報処理装置100は、通信IF(Interface)部101、パケット受信処理部102、パケット処理部103、パケット送信処理部104および第一の記憶部11により構成される。パケット受信処理部102は、図1の第二の記憶部12、算出部13、第一の取得部14、第二の取得部15および処理部16に相当する。また、図3の第一の記憶部11は図1の第一の記憶部11に相当する。なお、図3に示す構成要素の数や接続関係は一例である。また、本実施形態の説明において、情報処理装置100は複数のパケット処理部103を備えるものとする。
First, FIG. 3 shows a configuration example of the
情報処理装置100は、通信IF部101を介して通信ネットワークと接続し、他の情報処理装置や情報処理システムと通信を行う装置である。
The
通信IF部101は、通信ネットワークと接続し通信を行うための通信インタフェースである。
The communication IF
パケット処理部103は、パケット受信処理部102からパケットを受け取り、受け取ったパケットに対する処理を行う部分である。また、パケット処理部103は、処理済みのパケットを送信するようパケット送信処理部104に要求する。パケット処理部103がパケットに対して行う処理は、たとえば、ルーティング、フィルタリング、DPI(Deep Packet Inspection)、暗号化・復号、カプセル化・デカプセル化、のいずれか一つ以上の処理である。ただし、本実施形態では、パケット処理部103がパケットに対して行う処理は、これらの処理に限定されない。
The
パケット送信処理部104は、パケット処理部103から受け取ったパケットを通信IF部101経由で通信ネットワークへ送信する部分である。パケット送信処理部104は、パケットの送信に際し、たとえば、QoS(Quality of Service)制御を行ってもよい。
The packet
パケット受信処理部102は、通信IF部101からパケットを受信し、第一の記憶部11の処理振分表を参照して当該パケットを処理すべきパケット処理部103を特定し、当該パケットを特定したパケット処理部103に渡す部分である。
The packet
第一の記憶部11は、パケット受信処理部102が受信したパケットと当該パケットを処理すべきパケット処理部103とを対応付けた処理振分表を記憶する部分である。第一の記憶部11は、たとえば、プロトコル毎に処理振分表を記憶する。
The
図4に処理振分表の例を示す。図4の(a)は、IEEE(Institute of Electrical and Electronic Engineers)802.1ad(QinQ)プロトコル用の処理振分表の例である。また、図4の(b)は、IPv(Internet Protocol version)6 GRE(Generic Routing Encapsulation)プロトコル用の処理振分表の例である。 FIG. 4 shows an example of a processing distribution table. FIG. 4A is an example of a processing distribution table for the IEEE (Institute of Electrical and Electronics Engineers) 802.1ad (QinQ) protocol. Further, FIG. 4B is an example of a processing distribution table for the IPv (Internet Protocol version) 6 GRE (Generic Routing Encapsulation) protocol.
IEEE802.1adプロトコルの場合、パケット受信処理部102は処理振分表を参照して、パケットヘッダ中のOuter VLAN(Virtual LAN) ID(Identification)およびInner VLAN IDに対応するパケット処理部103の情報を取得する。この参照の基となる情報(IEEE802.1adプロトコルの場合、Outer VLAN IDおよびInner VLAN ID)をキーと呼ぶこととする。このキーが、第一の実施形態の第一の識別子に相当する。また、このキーに対応するパケット処理部103の情報が、第一の実施形態の処理情報に相当する。
In the case of the IEEE802.ad protocol, the packet
たとえば、図4の(a)は、Outer VLAN IDが11であり、Inner VLAN IDが201であるパケットをパケット受信処理部102が受信した場合、当該パケットはパケット処理部103−2に振り分けられるべきであることを示している。また、IPv6 GREプロトコルの場合、送信元IPv6アドレス、送信先IPv6アドレス、およびGREキーがキーとして用いられる。
For example, in FIG. 4A, when the packet
このように、第一の記憶部11は、キー(第一の識別子)毎に、当該キーに対応するパケットの振分先のパケット処理部103の識別子(処理情報)を記憶する。
In this way, the
ハッシュ値は、キーに対してハッシュ関数を適用して得られる値である。また、タグ値は、パケット受信処理部102で用いられるタグの値で、ハッシュ値あるいはハッシュ値に所定の演算を施した値である。本実施形態では、タグ値としてハッシュ値の下位16ビットを用いるものとする。このタグ値が第一の実施形態の第二の識別子に相当する。なお、ハッシュ値およびタグ値はキーから計算できるものであるため、第一の記憶部11に記憶させておいても良いし、必要となった場合にパケット受信処理部102等で計算しても良い。
The hash value is a value obtained by applying a hash function to the key. The tag value is a tag value used by the packet
次に、図5に情報処理装置100のハードウェア構成の例を示す。この例では、情報処理装置100は、CPU1001、メモリ1002、受信処理HW1003、および、通信インタフェース1004を含む。メモリ1002は、RAM(Random Access Memory)、ROM(Read Only Memory)、補助記憶装置等によって構成される。受信処理HW1003は、たとえば、FPGA(Field Programmable Gate Array)やASIC(Application Specific Integrated Circuit)である。通信インタフェース1004は、通信ネットワークに接続するためのインタフェースである。
Next, FIG. 5 shows an example of the hardware configuration of the
この例の場合、パケット処理部103およびパケット送信処理部104は、メモリ1002に格納されるコンピュータ・プログラムを読み込んで実行するCPU1001によって構成される。処理振分表はメモリ1002に格納されている。パケット受信処理部102は、受信処理HW1003によって構成される。また、通信IF部101は、通信インタフェース1004によって構成される。なお、情報処理装置100を構成する各部は図5と異なるハードウェア要素によって構成されてもよい。
In the case of this example, the
次に、図6に本実施形態のパケット受信処理部102の構成例を示す。パケット受信処理部102は、キー抽出部105、ハッシュ値計算部106、パケット振分部107、キャッシュメモリ制御部108、処理振分表検索部109およびメモリアクセス部110によって構成される。キー抽出部105およびハッシュ値計算部106が図1の算出部13に、キャッシュメモリ制御部108が図1の第二の取得部15に、処理振分表検索部109が図1の第一の取得部14に相当する。
Next, FIG. 6 shows a configuration example of the packet
キー抽出部105は、受信したパケットのパケットヘッダを参照し、当該パケットのプロトコルを判定し、当該プロトコル用のキー(第一の識別子)をパケットヘッダから抽出する部分である。
The
ハッシュ値計算部106は、キー抽出部105で抽出したキーに基づいてハッシュ値を計算する部分である。本実施形態では、ハッシュ値計算部106は、たとえば、キー抽出部105で判定されたプロトコルの識別子と、抽出されたキーとをハッシュ関数に入力することでハッシュ値を計算する。また、ハッシュ値計算部106がハッシュ値に基づいてタグ値を計算し、このタグ値をパケット受信処理部102内の各部が使用しても良い。ハッシュ値計算部106がタグ値を算出しない場合は、キャッシュメモリ制御部108が図1の算出部13の第二の識別子(タグ値)を算出する機能を実施する。
The hash
パケット振分部107は、受信したパケットをキーに対応するパケット処理部103へ振り分ける部分である。本実施形態では、パケット振分部107は、受信したパケットのプロトコル識別子、キーおよびハッシュ値(およびタグ値)の情報を基に、キャッシュメモリ制御部108に当該パケットを処理すべきパケット処理部103を問い合わせる。そして、パケット振分部107は、得られたパケット処理部103へ当該パケットを入力する。このとき、パケット振分部107は、たとえば、メモリアクセス部110に、メモリ1002上に用意された、振分先のパケット処理部103用のパケット受信用メモリ領域に当該パケットをコピーさせる。
The
キャッシュメモリ制御部108は、パケット振分部107からの問い合わせを受けて、当該パケットを処理すべきパケット処理部103の情報をパケット振分部107へ返す部分である。本実施形態では、キャッシュメモリ制御部108は、パケット振分部107から受け取ったプロトコル識別子、キーおよびハッシュ値(およびタグ値)の情報に基づいて、キャッシュメモリ(第二の記憶部12)を参照して当該パケットを処理すべきパケット処理部103を決定する。そして、決定したパケット処理部103の情報(処理情報)をパケット振分部107へ返す。キャッシュメモリ制御部108は、キャッシュメモリの情報からその決定が行えない場合、処理振分表検索部109に第一の記憶部11の処理振分表の検索を依頼する。キャッシュメモリ制御部108は、その検索結果を自身が持つキャッシュメモリ(第二の記憶部12)に記憶させる。
The cache
処理振分表検索部109は、キャッシュメモリ制御部108から受信したプロトコル識別子およびキーの情報を基に、第一の記憶部11の処理振分表を検索し、得られた結果をキャッシュメモリ制御部108に返す部分である。処理振分表検索部109が返す検索結果には、振分先の情報(パケット処理部103の識別子)(処理情報)が含まれる。
The processing distribution
メモリアクセス部110は、第一の記憶部11に対するリードおよびライト要求を受け付け、要求に基づいてメモリアクセスを行い、結果を要求元へ渡す部分である。
The
次に、図7に、本実施形態のキャッシュメモリ制御部108の構成例を示す。キャッシュメモリ制御部108は、キャッシュヒット判定部111およびキャッシュ更新部112により構成される。
Next, FIG. 7 shows a configuration example of the cache
第二の記憶部12(キャッシュメモリ)は、タグ値(第二の識別子)に対応する振分先の情報(パケット処理部103の識別子)(処理情報)を記憶する部分である。 The second storage unit 12 (cache memory) is a portion that stores information (identifier of the packet processing unit 103) (processing information) of the distribution destination corresponding to the tag value (second identifier).
図8に、第二の記憶部12が用いるデータ構造の一例を示す。なお、本実施形態では、第二の記憶部12は、データ格納に4−wayセットアソシエイティブ方式、ライン入れ替えにLRU(Least Recently Used)方式を用い、ライン数はNであるとする。この場合、ライン数がN、way数が4であることから、第二の記憶部12は最大で4Nのエントリを記憶することができる。
FIG. 8 shows an example of the data structure used by the
第二の記憶部12の各エントリは、たとえば、フラグ、タグ、およびデータから構成される。フラグは、当該エントリが使用中か否かや、LRU処理に関する情報を含む。タグは、一般的なキャッシュメモリでは、メインメモリのアドレスとキャッシュメモリのエントリとの対応付けを行うための情報である。一般的なキャッシュメモリでは、タグは、データのメインメモリ上のアドレスの上位ビット列(例:フレームアドレス)を記憶する。これに対し、本実施形態の第二の記憶部12のタグは、タグ値を記憶する。本実施形態では、タグ値は、当該エントリに対応するハッシュ値あるいはハッシュ値に所定の演算を施した値、たとえば、ハッシュ値の下位16ビットである。このタグ値が第一の実施形態の第二の識別子に相当する。
Each entry in the
また、一般的なキャッシュメモリでは、データは、当該エントリが対応するメインメモリのアドレスに記憶されているデータを記憶する。これに対し、本実施形態の第二の記憶部12のデータは、当該エントリが対応する第一の記憶部11のエントリの振分先の情報(パケット処理部103の識別子)(処理情報)を記憶する。さらに、データは、当該エントリが対応する第一の記憶部11のエントリのハッシュ値を記憶しても良い。
Further, in a general cache memory, the data stores the data stored in the address of the main memory corresponding to the entry. On the other hand, the data of the
このように、本実施形態の第二の記憶部12は、タグ値(第二の識別子)と振分先の情報(処理情報)とを対応付けて記憶する。タグ値のビット数は、キー(第一の識別子)のビット数より小さい。本実施形態の場合、タグ値にハッシュ値の下位16ビットを使用するため、タグ値のビット数はキーのビット数より小さくなる。ハッシュ値のビット数がキーのビット数より小さければ、タグ値にハッシュ値を使用しても良い。このように、本実施形態では、一つのエントリに対する第二の記憶部12の所要容量が小さくなるため、第二の記憶部12は、より多くのエントリを記憶できるようになる。
In this way, the
キャッシュヒット判定部111は、プロトコル識別子、キーおよびハッシュ値(およびタグ値)の情報をパケット振分部107から受け取り、タグ値に対応する振分先情報が第二の記憶部12内にあるか否か(キャッシュヒットするか否か)を判定する部分である。プロトコル識別子、キーおよびハッシュ値の情報は、処理対象のパケットに関してキャッシュメモリ制御部108が処理している間、キャッシュメモリ制御部108内に一時記憶され、キャッシュメモリ制御部108を構成する各部から参照できるものとする。
The cache hit
キャッシュヒット判定部111は、ハッシュ値をライン数Nで割った余りを計算し、それをラインインデックスとして用いる。また、キャッシュヒット判定部111は、ハッシュ値からタグ値を計算する。(あるいは、ハッシュ値計算部106が算出したタグ値を使用する。)そして、キャッシュヒット判定部111は、ラインインデックスが示す第二の記憶部12内のラインに当該タグ値を持つエントリがあるかどうか確認し、あればキャッシュヒットしたものとし、なければキャッシュヒットしなかったものとする。
The cache hit
キャッシュヒット判定部111は、キャッシュヒットした場合、当該タグ値に対応する振分先の情報(処理情報)を第二の記憶部12から取得してパケット振分部107へ返す。また、キャッシュヒットした場合、キャッシュヒット判定部111は、第二の記憶部12の当該ラインのLRU情報を更新してもよい。
When a cache hit occurs, the cache hit
キャッシュヒット判定部111は、キャッシュヒットしなかった場合、プロトコル識別子およびキーの情報を入力として、処理振分表検索部109に処理振分表の検索を依頼する。そして、検索を依頼された処理振分表検索部109は、プロトコル識別子およびキーに対応する振分先の情報を第一の記憶部11から取得し、パケット振分部107へ渡す。
If no cache hit occurs, the cache hit
キャッシュ更新部112は、第二の記憶部12に対しエントリの追加や削除を行う部分である。本実施形態では、キャッシュ更新部112は、処理振分表検索部109から受け取った振分先の情報を第二の記憶部12に記憶させる。
The
第二の記憶部12に振分先の情報を追加する際、まず、キャッシュ更新部112は、ハッシュ値と振分先の情報を受け取る。次に、キャッシュ更新部112は、ハッシュ値をライン数Nで割った余りを計算することで、ラインインデックスを計算する。また、キャッシュ更新部112は、タグ値を計算する。タグ値は、たとえば、ハッシュ値の下位16ビットである。そして、ラインインデックスが示す第二の記憶部12のラインに空きエントリがある場合、キャッシュ更新部112は当該空きエントリにタグ値および振分先の情報を記憶させる。当該ラインに空きエントリがない場合、キャッシュ更新部112は、たとえばLRU方式で新たなデータで置き換えるエントリを一つ選択し、当該エントリにタグ値および振分先の情報を記憶させる。
When adding the distribution destination information to the
このように情報処理装置100を構成することによって、情報処理装置100は、入力データに含まれるキーに基づいてキーよりビット数が小さいタグ値を算出する。そして、情報処理装置100は、タグ値に対応する振分先の情報が第二の記憶部12に記憶されていないとき、キーに対応する振分先の情報を第一の記憶部11から取得し、タグ値と振分先の情報とを対応付けて第二の記憶部12に記憶させる。これにより、情報処理装置100は、キーよりビット数が小さいタグ値と振分先の情報とを対応付けて第二の記憶部12に記憶させるため、より多くの振分先の情報を第二の記憶部12に記憶させることが可能になる。そして、情報処理装置100は、より多くの振分先の情報を第二の記憶部12に記憶させることができるため、第一の記憶部11から振分先の情報を取得する頻度を減少させることが可能になる。そのため、限られたキャッシュメモリ容量でより高い消費通信帯域削減効果を得ることが可能になる。
By configuring the
次に、図2を用いて本実施形態の情報処理装置100のパケット受信処理部102およびパケット処理部103の動作例について説明する。なお、本動作例は、タグ値をキャッシュメモリ制御部108が計算する場合の例である。キャッシュメモリ制御部108の代わりにハッシュ値計算部106がタグ値を計算しても良い。その場合は、キャッシュメモリ制御部108は、ハッシュ値計算部106が計算したタグ値を使用する。
Next, an operation example of the packet
まず、パケット受信処理部102のキー抽出部105は、通信IF部101からパケットを受信すると、受信したパケットのパケットヘッダを参照して当該パケットのプロトコルを判定し、当該プロトコル用のキー(第一の識別子)をパケットヘッダから抽出する。
First, when the
次に、パケット受信処理部102のハッシュ値計算部106は、パケット受信処理部102が判定したプロトコルの識別子と抽出したキーとをハッシュ関数に入力して得られるハッシュ値を計算する。
Next, the hash
次に、パケット受信処理部102のキャッシュメモリ制御部108のキャッシュヒット判定部111は、ハッシュ値に基づいてタグ値(第二の識別子)を算出する(ステップS101)。そして、キャッシュヒット判定部111は、算出したタグ値に対応するデータが第二の記憶部12にあるか否か(キャッシュヒットするか否か)の判定を実施する。そして、キャッシュヒットすると判定した場合(ステップS102でYES)、キャッシュヒット判定部111はタグ値に対応する振分先の情報(処理情報)を第二の記憶部12から取得する(ステップS105)。
Next, the cache hit
キャッシュヒット判定部111がキャッシュヒットしないと判定した場合(ステップS102でNO)、パケット受信処理部102の処理振分表検索部109は、プロトコル識別子およびキーの情報を基に、第一の記憶部11を検索して対応するエントリを参照する。そして、処理振分表検索部109は、第一の記憶部11から振分先の情報を取得する(ステップS103)。なお、処理振分表検索部109は、第一の記憶部11が記憶している処理振分表を参照する際、メモリアクセス部110を使用する。
When the cache hit
また、キャッシュメモリ制御部108のキャッシュ更新部112は、ハッシュ値から算出したタグ値および振分先の情報に対するキャッシュのエントリを第二の記憶部12に記憶させる(ステップS104)。
Further, the
そして、パケット受信処理部102のパケット振分部107は、ステップS103あるいはステップS105で得られた振分先の情報が示すパケット処理部103へ受信したパケットを入力する。そして、パケット処理部103は入力されたパケットに対する処理を行う(ステップS106)。
Then, the
このように動作することによって、情報処理装置100は、入力データに含まれるキーに基づいてキーよりビット数が小さいタグ値を算出する。そして、情報処理装置100は、タグ値に対応する振分先の情報が第二の記憶部12に記憶されていないとき、キーに対応する振分先の情報を第一の記憶部11から取得し、タグ値と振分先の情報とを対応付けて第二の記憶部12に記憶させる。これにより、情報処理装置100は、キーよりビット数が小さいタグ値と振分先の情報とを対応付けて第二の記憶部12に記憶させるため、より多くの振分先の情報を第二の記憶部12に記憶させることが可能になる。そして、情報処理装置100は、より多くの振分先の情報を第二の記憶部12に記憶させることができるため、第一の記憶部11から振分先の情報を取得する頻度を減少させることが可能になる。そのため、限られたキャッシュメモリ容量でより高い消費通信帯域削減効果を得ることが可能になる。
By operating in this way, the
以上で説明したように、本発明の第二の実施形態では、第一の実施形態と同様に、情報処理装置100は、入力データに含まれる第一の識別子に基づいて第一の識別子よりビット数が小さい第二の識別子を算出する。そして、情報処理装置100は、第二の識別子に対応する処理情報が第二の記憶部12に記憶されていないとき、第一の識別子に対応する処理情報を第一の記憶部11から取得し、第二の識別子と処理情報とを対応付けて第二の記憶部12に記憶させる。そのため、限られたキャッシュメモリ容量でより高い消費通信帯域削減効果を得ることが可能になる。
As described above, in the second embodiment of the present invention, as in the first embodiment, the
[第三の実施形態]
次に、本発明の第三の実施の形態について説明する。本実施形態は、第一および第二の実施形態の処理振分表に、キャッシュ可否情報を追加した形態である。
[Third Embodiment]
Next, a third embodiment of the present invention will be described. This embodiment is a form in which cache availability information is added to the processing distribution table of the first and second embodiments.
第一および第二の実施形態の情報処理装置は、第一の識別子(キー)よりビット数が小さい第二の識別子(タグ値)を算出し、第二の識別子に対する処理情報(振分先の情報)を第二の記憶部12に記憶させる。これにより、より多くの処理情報を第二の記憶部12に記憶させることが可能になるため、第一の記憶部11から処理情報を取得する頻度を減少させることが可能になる。
The information processing apparatus of the first and second embodiments calculates a second identifier (tag value) having a smaller number of bits than the first identifier (key), and processes information for the second identifier (distribution destination). Information) is stored in the
しかし、第一の識別子(キー)から第二の識別子(タグ値)を算出してビット数を減らすと、異なる第一の識別子から同一の第二の識別子が算出される可能性がある。異なる第一の識別子から同一の第二の識別子が算出されると、情報処理装置は誤った処理を行う可能性がある。 However, if the second identifier (tag value) is calculated from the first identifier (key) and the number of bits is reduced, the same second identifier may be calculated from different first identifiers. If the same second identifier is calculated from different first identifiers, the information processing apparatus may perform erroneous processing.
たとえば、第一の識別子Aに基づいて算出された第二の識別子Bに対応する処理情報がすでに第二の記憶部12に記憶されているとする。この状態で、情報処理装置が第一の識別子Cに基づいて第二の識別子Bを算出すると、情報処理装置は第一の識別子Cに対する処理情報ではなく、第一の識別子Aに対する処理情報を第二の記憶部12から取得することになる。
For example, it is assumed that the processing information corresponding to the second identifier B calculated based on the first identifier A is already stored in the
本実施形態では、このような状態を避けるため、同じ第二の識別子に第一の記憶部11内の複数のエントリが対応するとき、第一の記憶部11は、それらのエントリについてキャッシュ禁止を示すキャッシュ可否情報を記憶する。そして、第一の記憶部11から取得したエントリのキャッシュ可否情報がキャッシュ禁止を示しているときには、第二の記憶部12にキャッシュしないことで、同じ第二の識別子に対応する他のエントリが第二の記憶部12に記憶されないようにする。
In the present embodiment, in order to avoid such a state, when a plurality of entries in the
まず、図9に本実施形態の情報処理装置20の構成例を示す。情報処理装置20は、第一の記憶部21、第二の記憶部12、算出部13、第一の取得部24、第二の取得部15および処理部16により構成される。第二の記憶部12、算出部13、第二の取得部15および処理部16については第一の実施形態と同様のため説明を省略する。
First, FIG. 9 shows a configuration example of the
第一の記憶部21は、第一の識別子に対応する処理情報およびキャッシュ可否情報を記憶する部分である。同じ第二の識別子を算出する第一の識別子が第一の記憶部21内に複数記憶されているとき、それらの第一の識別子に対応するキャッシュ可否情報はキャッシュ禁止を示す。
The
第一の取得部24は、第二の識別子に対応する処理情報が第二の記憶部12に記憶されていないとき、第一の識別子に対応する処理情報およびキャッシュ可否情報を第一の記憶部21から取得する部分である。また、第一の取得部24は、キャッシュ可否情報がキャッシュ禁止を示していないとき、第二の識別子と処理情報とを対応付けて第二の記憶部12に記憶させる。
When the processing information corresponding to the second identifier is not stored in the
次に、本実施形態の情報処理装置20のより具体的な例について説明する。
Next, a more specific example of the
図10から図12に本実施形態の情報処理装置200の構成例を示す。本実施形態の情報処理装置200は、通信IF部101、パケット受信処理部202、パケット処理部103、パケット送信処理部104および第一の記憶部21により構成される。通信IF部101、パケット処理部103およびパケット送信処理部104については第二の実施形態と同様のため説明を省略する。
10 to 12 show a configuration example of the
パケット受信処理部202は、キー抽出部105、ハッシュ値計算部106、パケット振分部107、キャッシュメモリ制御部208、処理振分表検索部109、メモリアクセス部110および第二の記憶部12により構成される。キー抽出部105、ハッシュ値計算部106、パケット振分部107、処理振分表検索部109、メモリアクセス部110および第二の記憶部12については第二の実施形態と同様のため説明を省略する。
The packet
キャッシュメモリ制御部208は、キャッシュヒット判定部111、キャッシュ更新部112およびキャッシュ可否判定部213により構成される。キャッシュヒット判定部111およびキャッシュ更新部112については第二の実施形態と同様のため説明を省略する。
The cache
第一の記憶部21は、キー(第一の識別子)毎に、当該キーに対応するパケットの振分先の情報(処理情報)およびキャッシュ可否情報を記憶する部分である。キャッシュ可否情報は、当該キーに関する情報をパケット受信処理部202がキャッシュしてよいか否かを示す情報である。
The
本実施形態では、キャッシュ可否情報は、図13のように、第一の記憶部21の処理振分表にあらかじめ記憶されているものとする。また、第一の識別子(キー)に対応するキャッシュ可否情報は、当該第一の識別子に基づいて算出される第二の識別子(タグ値)と第一の記憶部11に記憶されている他の第一の識別子に基づいて算出される第二の識別子が同一のとき、キャッシュ禁止を示す。
In the present embodiment, it is assumed that the cache availability information is stored in advance in the processing distribution table of the
キャッシュ可否判定部213は、処理振分表検索部109から得られる検索結果(処理対象パケットの振分先の情報およびキャッシュ可否情報)を基に当該結果のキャッシュ可否を判定する部分である。具体的には、キャッシュ可否判定部213は、キャッシュ可否情報が「禁止」でなければ、当該結果をキャッシュすることとし、キャッシュ更新部112にキャッシュの更新を依頼する。また、キャッシュ可否判定部213は、振分先の情報を、パケット振分部107に渡す。
The cache
このように情報処理装置20(200)を構成することによって、情報処理装置20(200)は、入力データに含まれる第一の識別子(キー)に基づいて第一の識別子よりビット数が小さい第二の識別子(タグ値)を算出する。そして、情報処理装置20(200)は、第二の識別子に対応する処理情報が第二の記憶部12に記憶されていないとき、第一の識別子に対応する処理情報を第一の記憶部21から取得し、第二の識別子と処理情報とを対応付けて第二の記憶部12に記憶させる。これにより、情報処理装置20(200)は、第一の識別子よりビット数が小さい第二の識別子と処理情報とを対応付けて第二の記憶部12に記憶させるため、より多くの処理情報を第二の記憶部12に記憶させることが可能になる。そして、情報処理装置20(200)は、より多くの処理情報を第二の記憶部12に記憶させることができるため、第一の記憶部21から処理情報を取得する頻度を減少させることが可能になる。そのため、限られたキャッシュメモリ容量でより高い消費通信帯域削減効果を得ることが可能になる。
By configuring the information processing device 20 (200) in this way, the information processing device 20 (200) has a number of bits smaller than that of the first identifier based on the first identifier (key) included in the input data. Calculate the second identifier (tag value). Then, when the processing information corresponding to the second identifier is not stored in the
また、本実施形態の情報処理装置20(200)では、第一の記憶部21は、キャッシュ可否情報を記憶する。第一の識別子(キー)に対応するキャッシュ可否情報は、当該第一の識別子に基づいて算出される第二の識別子(タグ値)と第一の記憶部21に記憶されている他の第一の識別子に基づいて算出される第二の識別子が同一のとき、キャッシュ禁止を示す。そして、情報処理装置20(200)が第一の記憶部21から処理情報およびキャッシュ可否情報を取得し、キャッシュ可否情報がキャッシュ禁止を示す場合、処理情報を第二の記憶部12へ記憶させない。これにより、情報処理装置20(200)が第二の記憶部12を検索するときに、適切でないエントリがキャッシュヒットする可能性を排除することが可能になる。
Further, in the information processing apparatus 20 (200) of the present embodiment, the
次に、図14に本実施形態の情報処理装置20(200)の動作例を示す。ステップS201、ステップS202、ステップS206、ステップS207については、図2のステップS101、ステップS102、ステップS105、ステップS106と同様である。第一および第二の実施形態と同様の部分については、説明を省略する。 Next, FIG. 14 shows an operation example of the information processing apparatus 20 (200) of the present embodiment. Step S201, step S202, step S206, and step S207 are the same as those of step S101, step S102, step S105, and step S106 of FIG. The description of the same parts as those in the first and second embodiments will be omitted.
本実施形態では、情報処理装置20(情報処理装置200)は、ステップS203において、ステップS201で算出した第二の識別子に対応する処理情報およびキャッシュ可否情報を第一の記憶部21から取得する(ステップS203)。そして、取得したキャッシュ可否情報がキャッシュ禁止を示していなければ(ステップS204でNO)、第二の識別子と処理情報を対応付けて第二の記憶部12へ記憶させる(ステップS205)。キャッシュ可否情報がキャッシュ禁止を示していれば(ステップS204でYES)、第一の記憶部21から取得した処理情報を第二の記憶部12へ記憶させない。
In the present embodiment, the information processing device 20 (information processing device 200) acquires the processing information and cache availability information corresponding to the second identifier calculated in step S201 from the
このように動作することによって、情報処理装置20(200)は、入力データに含まれる第一の識別子(キー)に基づいて第一の識別子よりビット数が小さい第二の識別子(タグ値)を算出する。そして、情報処理装置20(200)は、第二の識別子に対応する処理情報が第二の記憶部12に記憶されていないとき、第一の識別子に対応する処理情報を第一の記憶部21から取得し、第二の識別子と処理情報とを対応付けて第二の記憶部12に記憶させる。これにより、情報処理装置20(200)は、第一の識別子よりビット数が小さい第二の識別子と処理情報とを対応付けて第二の記憶部12に記憶させるため、より多くの処理情報を第二の記憶部12に記憶させることが可能になる。そして、情報処理装置20(200)は、より多くの処理情報を第二の記憶部12に記憶させることができるため、第一の記憶部21から処理情報を取得する頻度を減少させることが可能になる。そのため、限られたキャッシュメモリ容量でより高い消費通信帯域削減効果を得ることが可能になる。
By operating in this way, the information processing apparatus 20 (200) obtains a second identifier (tag value) having a smaller number of bits than the first identifier based on the first identifier (key) included in the input data. calculate. Then, when the processing information corresponding to the second identifier is not stored in the
以上で説明したように、本発明の第三の実施形態では、第一および第二の実施形態と同様に、情報処理装置20(200)は、入力データに含まれる第一の識別子に基づいて第一の識別子よりビット数が小さい第二の識別子を算出する。そして、情報処理装置20(200)は、第二の識別子に対応する処理情報が第二の記憶部12に記憶されていないとき、第一の識別子に対応する処理情報を第一の記憶部21から取得し、第二の識別子と処理情報とを対応付けて第二の記憶部12に記憶させる。そのため、限られたキャッシュメモリ容量でより高い消費通信帯域削減効果を得ることが可能になる。
As described above, in the third embodiment of the present invention, as in the first and second embodiments, the information processing apparatus 20 (200) is based on the first identifier included in the input data. The second identifier, which has a smaller number of bits than the first identifier, is calculated. Then, when the processing information corresponding to the second identifier is not stored in the
また、本実施形態の情報処理装置20(200)では、第一の記憶部21は、キャッシュ可否情報を記憶する。第一の識別子(キー)に対応するキャッシュ可否情報は、当該第一の識別子に基づいて算出される第二の識別子(タグ値)と第一の記憶部21に記憶されている他の第一の識別子に基づいて算出される第二の識別子が同一のとき、キャッシュ禁止を示す。そして、情報処理装置20(200)が第一の記憶部21から処理情報およびキャッシュ可否情報を取得し、キャッシュ可否情報がキャッシュ禁止を示す場合、処理情報を第二の記憶部12へ記憶させない。これにより、情報処理装置20(200)が第二の記憶部12を検索するときに、適切でないエントリがキャッシュヒットする可能性を排除することが可能になる。
Further, in the information processing apparatus 20 (200) of the present embodiment, the
[第四の実施形態]
次に、本発明の第四の実施の形態について説明する。本実施形態は、第三の実施形態の情報処理装置20(200)に対して、第一の記憶部21の処理振分表に処理情報を追加する機能を追加した形態である。
[Fourth Embodiment]
Next, a fourth embodiment of the present invention will be described. The present embodiment is a form in which a function of adding processing information to the processing distribution table of the
まず、図15に本実施形態の情報処理装置30の構成例を示す。情報処理装置30は、第一の記憶部21、第二の記憶部12、算出部13、第一の取得部34、第二の取得部15、処理部16および管理部37により構成される。図15では、第三の実施形態の情報処理装置20(図9)に対して、管理部37を追加している。
First, FIG. 15 shows a configuration example of the
第一の記憶部21、第二の記憶部12、算出部13、第二の取得部15および処理部16については、第三の実施形態と同様のため、説明を省略する。
The
管理部37は、第一の記憶部21が記憶する第一の識別子と処理情報との対応関係を管理する部分である。本実施形態では、管理部37は、第一の記憶部21に第一の識別子と処理情報との対応関係を追加するとき、当該第一の識別子に基づいて第二の識別子を算出する。そして、算出した第二の識別子と第一の記憶部21に記憶されている他の第一の識別子に基づいて算出される第二の識別子が同一のとき、当該第一の識別子および他の第一の識別子に対応するキャッシュ可否情報を、キャッシュ禁止を示す情報に設定する。つまり、追加するエントリに対応する第二の識別子と同一の第二の識別子に対応する他のエントリが第一の記憶部21にすでに存在するとき、追加するエントリのキャッシュ可否情報をキャッシュ禁止を示す情報に設定する。また、追加するエントリに対応する第二の識別子と同一の第二の識別子に対応する他のエントリのキャッシュ可否情報についても、キャッシュ禁止を示す情報に設定する。
The
第一の取得部34は、第三の実施形態の動作に加えて、管理部37が算出した第二の識別子と第一の記憶部21に記憶されている他の第一の識別子に基づいて算出される第二の識別子が同一のとき、当該第二の識別子に対応する処理情報を第二の記憶部12から削除する。つまり、管理部37がキャッシュ可否情報をキャッシュ禁止を示す情報に設定したとき、当該第二の識別子に対応する処理情報を第二の記憶部12から削除する。
In addition to the operation of the third embodiment, the
次に、本実施形態の情報処理装置について、より具体的に説明する。図16に本実施形態の情報処理装置300の構成例を示す。情報処理装置300は、通信IF部101、パケット受信処理部302、パケット処理部103、パケット送信処理部104、第一の記憶部21および管理部314により構成される。図16では、第三の実施形態の情報処理装置200(図10)に対して管理部314を追加している。通信IF部101、パケット処理部103、パケット送信処理部104および第一の記憶部21については第三の実施形態と同様のため、説明を省略する。
Next, the information processing apparatus of this embodiment will be described more specifically. FIG. 16 shows a configuration example of the
また、図17に、パケット受信処理部302の構成例を示す。パケット受信処理部302は、キー抽出部105、ハッシュ値計算部106、パケット振分部107、キャッシュメモリ制御部308、処理振分表検索部109、メモリアクセス部110および第二の記憶部12により構成される。キー抽出部105、ハッシュ値計算部106、パケット振分部107、処理振分表検索部109、メモリアクセス部110および第二の記憶部12については、第三の実施形態と同様のため、説明を省略する。
Further, FIG. 17 shows a configuration example of the packet
また、図18にキャッシュメモリ制御部308の構成例を示す。キャッシュメモリ制御部308は、キャッシュヒット判定部111、キャッシュ可否判定部213およびキャッシュ更新部312により構成される。キャッシュヒット判定部111およびキャッシュ可否判定部213については第三の実施形態と同様のため説明を省略する。
Further, FIG. 18 shows a configuration example of the cache
管理部314は、図15の管理部37に相当し、第一の記憶部21のキーと振分先情報との対応関係を管理する部分である。本実施形態では、管理部314は、第一の記憶部21の処理振分表にエントリを追加する際、当該新規エントリが第二の記憶部12にキャッシュされる際に用いられるタグ値を算出し、当該タグ値と同じタグ値を持つ他のエントリがないか確認する。そして、このエントリの追加によって同じタグ値を持つエントリが複数存在することになる場合、管理部314は、それらのエントリすべてについてキャッシュ可否情報を「禁止」に設定する。また、管理部314は、それらのエントリすべてについて、第二の記憶部12のエントリを削除するようキャッシュメモリ制御部308のキャッシュ更新部312に依頼する。
The
キャッシュ更新部312は、第三の実施形態のキャッシュ更新部112と同様の部分である。本実施形態のキャッシュ更新部312は、さらに、第二の記憶部12のエントリの削除を行う場合、削除するエントリのハッシュ値を受け取る。そして、キャッシュ更新部312は、当該ハッシュ値からラインインデックスとタグ値を計算し、それらに対応する第二の記憶部12内のエントリを削除する(たとえば、使用中フラグをオフにする)。
The
また、第一の記憶部21から処理情報を削除する場合には、処理情報の削除によって当該第二の識別子に対応する処理情報が第一の記憶部21内に一つしか存在しなくなるとき、管理部314が当該第二の識別子に対応するキャッシュ可否情報を「可」にすると良い。
Further, when the processing information is deleted from the
このように情報処理装置30(300)を構成することによって、情報処理装置30(300)は、入力データに含まれる第一の識別子(キー)に基づいて第一の識別子よりビット数が小さい第二の識別子(タグ値)を算出する。そして、情報処理装置30(300)は、第二の識別子に対応する処理情報が第二の記憶部12に記憶されていないとき、第一の識別子に対応する処理情報を第一の記憶部21から取得し、第二の識別子と処理情報とを対応付けて第二の記憶部12に記憶させる。これにより、情報処理装置30(300)は、第一の識別子よりビット数が小さい第二の識別子と処理情報とを対応付けて第二の記憶部12に記憶させるため、より多くの処理情報を第二の記憶部12に記憶させることが可能になる。そして、情報処理装置30(300)は、より多くの処理情報を第二の記憶部12に記憶させることができるため、第一の記憶部21から処理情報を取得する頻度を減少させることが可能になる。そのため、限られたキャッシュメモリ容量でより高い消費通信帯域削減効果を得ることが可能になる。
By configuring the information processing device 30 (300) in this way, the information processing device 30 (300) has a number of bits smaller than that of the first identifier based on the first identifier (key) included in the input data. Calculate the second identifier (tag value). Then, when the processing information corresponding to the second identifier is not stored in the
また、本実施形態の情報処理装置30(300)は、第一の記憶部21に処理情報を追加する際、第二の識別子の重複を確認し、重複する場合、第一の記憶部21にキャッシュ禁止を示す情報を記憶させる。また、当該第二の識別子に対応する処理情報を第二の記憶部12から削除する。これにより、情報処理装置30(300)は、第二の識別子の重複による誤処理を避けつつ、第一の記憶部21に処理情報を追加することが可能になる。
Further, the information processing apparatus 30 (300) of the present embodiment confirms duplication of the second identifier when adding processing information to the
次に、図19に本実施形態の情報処理装置30(300)の、第一の記憶部21に処理情報を追加するときの動作例を示す。なお、入力パケットに対する動作例については第三の実施形態(図14)と同様のため、説明を省略する。
Next, FIG. 19 shows an operation example when processing information is added to the
図19の処理は、たとえば、利用者の指示や、情報処理装置30(300)や他の装置の制御部からの指示により開始される。当該指示には、追加する処理情報のプロトコル識別子、第一の識別子(キー)、処理情報(振分先の情報)が含まれるものとする。 The process of FIG. 19 is started by, for example, an instruction from a user or an instruction from a control unit of the information processing apparatus 30 (300) or another apparatus. The instruction shall include the protocol identifier of the processing information to be added, the first identifier (key), and the processing information (information on the distribution destination).
まず、管理部314(図15の管理部37に相当)は、第一の記憶部21の指定されたプロトコル用の処理振分表に、指定された第一の識別子(キー)および処理情報(振分先の情報)を含むエントリを追加する(ステップS301)。
First, the management unit 314 (corresponding to the
次に、管理部314は、指定されたプロトコル識別子および第一の識別子(キー)に基づいてハッシュ値および第二の識別子(タグ値)を計算する(ステップS302)。管理部314は、計算したハッシュ値およびタグ値を第一の記憶部21に記憶させてもよい。
Next, the
次に、管理部314は、ステップS302で計算した第二の識別子と同じ値を第二の識別子とする他のエントリが第一の記憶部21に存在するか確認する(ステップS303)。なお、管理部314は、本処理を高速化するための追加のデータ構造(たとえばハッシュテーブル)を用いてもよい。
Next, the
他のエントリが第一の記憶部21に見つかった場合(ステップS303でYES)、管理部314は、当該第二の識別子に対応する第一の記憶部21のすべてのエントリについて、キャッシュ可否情報をキャッシュ禁止を示す情報に設定する(ステップS304)。
If another entry is found in the first storage unit 21 (YES in step S303), the
また、管理部314は、当該第二の識別子に対応するすべてのエントリを削除するよう、キャッシュ更新部312に指示する。そして、キャッシュ更新部312はそれらを第二の記憶部12から削除する(ステップS305)。
In addition, the
このように動作させることによって、情報処理装置30(300)は、入力データに含まれる第一の識別子(キー)に基づいて第一の識別子よりビット数が小さい第二の識別子(タグ値)を算出する。そして、情報処理装置30(300)は、第二の識別子に対応する処理情報が第二の記憶部12に記憶されていないとき、第一の識別子に対応する処理情報を第一の記憶部21から取得し、第二の識別子と処理情報とを対応付けて第二の記憶部12に記憶させる。これにより、情報処理装置30(300)は、第一の識別子よりビット数が小さい第二の識別子と処理情報とを対応付けて第二の記憶部12に記憶させるため、より多くの処理情報を第二の記憶部12に記憶させることが可能になる。そして、情報処理装置30(300)は、より多くの処理情報を第二の記憶部12に記憶させることができるため、第一の記憶部21から処理情報を取得する頻度を減少させることが可能になる。そのため、限られたキャッシュメモリ容量でより高い消費通信帯域削減効果を得ることが可能になる。
By operating in this way, the information processing apparatus 30 (300) obtains a second identifier (tag value) having a smaller number of bits than the first identifier based on the first identifier (key) included in the input data. calculate. Then, when the processing information corresponding to the second identifier is not stored in the
以上で説明したように、本発明の第四の実施形態では、第一から第三の実施形態と同様に、情報処理装置30(300)は、入力データに含まれる第一の識別子(キー)に基づいて第一の識別子よりビット数が小さい第二の識別子(タグ値)を算出する。そして、情報処理装置30(300)は、第二の識別子に対応する処理情報が第二の記憶部12に記憶されていないとき、第一の識別子に対応する処理情報を第一の記憶部21から取得し、第二の識別子と処理情報とを対応付けて第二の記憶部12に記憶させる。そのため、限られたキャッシュメモリ容量でより高い消費通信帯域削減効果を得ることが可能になる。
As described above, in the fourth embodiment of the present invention, as in the first to third embodiments, the information processing device 30 (300) is the first identifier (key) included in the input data. The second identifier (tag value) having a smaller number of bits than the first identifier is calculated based on. Then, when the processing information corresponding to the second identifier is not stored in the
また、本実施形態の情報処理装置30(300)は、第一の記憶部21に処理情報を追加する際、第二の識別子の重複を確認し、重複する場合、第一の記憶部21にキャッシュ禁止を示す情報を記憶させる。また、当該第二の識別子に対応する処理情報を第二の記憶部12から削除する。これにより、情報処理装置30(300)は、第二の識別子の重複による誤処理を避けつつ、第一の記憶部21に処理情報を追加することが可能になる。
Further, the information processing apparatus 30 (300) of the present embodiment confirms duplication of the second identifier when adding processing information to the
[ハードウェア構成例]
上述した本発明の各実施形態における情報処理装置(10、20、30、100、200、300)を、一つの情報処理装置(コンピュータ)を用いて実現するハードウェア資源の構成例について説明する。なお、情報処理装置は、物理的または機能的に少なくとも二つの情報処理装置を用いて実現してもよい。また、情報処理装置は、専用の装置として実現してもよい。また、情報処理装置の一部の機能のみを情報処理装置を用いて実現しても良い。
[Hardware configuration example]
An example of a configuration of hardware resources for realizing the information processing devices (10, 20, 30, 100, 200, 300) according to each embodiment of the present invention described above by using one information processing device (computer) will be described. The information processing device may be realized by using at least two information processing devices physically or functionally. Further, the information processing device may be realized as a dedicated device. Further, only a part of the functions of the information processing device may be realized by using the information processing device.
図20は、本発明の各実施形態の情報処理装置を実現可能な情報処理装置のハードウェア構成例を概略的に示す図である。情報処理装置90は、通信インタフェース91、入出力インタフェース92、演算装置93、記憶装置94および不揮発性記憶装置95およびドライブ装置96を備える。
FIG. 20 is a diagram schematically showing a hardware configuration example of an information processing device capable of realizing the information processing device according to each embodiment of the present invention. The
通信インタフェース91は、各実施形態の情報処理装置が、有線あるいは/および無線で外部装置と通信するための通信手段である。なお、情報処理装置を、少なくとも二つの情報処理装置を用いて実現する場合、それらの装置の間を通信インタフェース91経由で相互に通信可能なように接続しても良い。
The
入出力インタフェース92は、入力デバイスの一例であるキーボードや、出力デバイスとしてのディスプレイ等のマンマシンインタフェースである。
The input /
演算装置93は、汎用のCPU(Central Processing Unit)やマイクロプロセッサ等の演算処理装置である。演算装置93は、たとえば、不揮発性記憶装置95に記憶された各種プログラムを記憶装置94に読み出し、読み出したプログラムに従って処理を実行することが可能である。
The
記憶装置94は、演算装置93から参照可能な、RAM(Random Access Memory)等のメモリ装置であり、プログラムや各種データ等を記憶する。記憶装置94は、揮発性のメモリ装置であっても良い。
The
不揮発性記憶装置95は、たとえば、ROM(Read Only Memory)、フラッシュメモリ、等の、不揮発性の記憶装置であり、各種プログラムやデータ等を記憶することが可能である。
The
ドライブ装置96は、たとえば、後述する記録媒体97に対するデータの読み込みや書き込みを処理する装置である。
The drive device 96 is, for example, a device that processes data reading and writing to a
記録媒体97は、たとえば、光ディスク、光磁気ディスク、半導体フラッシュメモリ等、データを記録可能な任意の記録媒体である。
The
本発明の各実施形態は、たとえば、図20に例示した情報処理装置90により情報処理装置を構成し、この情報処理装置に対して、上記各実施形態において説明した機能を実現可能なプログラムを供給することにより実現してもよい。
In each embodiment of the present invention, for example, the
この場合、情報処理装置に対して供給したプログラムを、演算装置93が実行することによって、実施形態を実現することが可能である。また、情報処理装置のすべてではなく、一部の機能を情報処理装置90で構成することも可能である。
In this case, the embodiment can be realized by the
さらに、上記プログラムを記録媒体97に記録しておき、情報処理装置の出荷段階、あるいは運用段階等において、適宜上記プログラムが不揮発性記憶装置95に格納されるよう構成してもよい。なお、この場合、上記プログラムの供給方法は、出荷前の製造段階、あるいは運用段階等において、適当な治具を利用して情報処理装置内にインストールする方法を採用してもよい。また、上記プログラムの供給方法は、インターネット等の通信回線を介して外部からダウンロードする方法等の一般的な手順を採用してもよい。
Further, the program may be recorded on the
なお、上述する各実施の形態は、本発明の好適な実施の形態であり、本発明の要旨を逸脱しない範囲内において種々変更実施が可能である。 It should be noted that each of the above-described embodiments is a preferred embodiment of the present invention, and various modifications can be made without departing from the gist of the present invention.
上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。 Some or all of the above embodiments may also be described, but not limited to:
(付記1)
入力データに含まれる第一の識別子に基づいて前記第一の識別子よりビット数が小さい第二の識別子を算出する算出部と、
前記第二の識別子に対応する処理情報が第二の記憶部に記憶されていないとき、前記第一の識別子に対応する前記処理情報を第一の記憶部から取得し、前記第二の識別子と前記処理情報とを対応付けて前記第二の記憶部に記憶させる第一の取得部と、
前記第二の識別子に対応する前記処理情報が前記第二の記憶部に記憶されているとき、前記第二の識別子に対応する前記処理情報を前記第二の記憶部から取得する第二の取得部と、
前記第一の記憶部あるいは前記第二の記憶部から取得した前記処理情報に対応する処理を前記入力データに対して行う処理部と
を備えることを特徴とする情報処理装置。
(Appendix 1)
A calculation unit that calculates a second identifier with a smaller number of bits than the first identifier based on the first identifier included in the input data.
When the processing information corresponding to the second identifier is not stored in the second storage unit, the processing information corresponding to the first identifier is acquired from the first storage unit, and the second identifier is used. A first acquisition unit that associates the processing information and stores it in the second storage unit,
When the processing information corresponding to the second identifier is stored in the second storage unit, a second acquisition of acquiring the processing information corresponding to the second identifier from the second storage unit. Department and
An information processing apparatus including a processing unit that performs processing corresponding to the processing information acquired from the first storage unit or the second storage unit on the input data.
(付記2)
前記第一の取得部は、前記処理情報を前記第一の記憶部から取得する際、さらに、前記第一の識別子に対応するキャッシュ可否情報を前記第一の記憶部から取得し、前記キャッシュ可否情報がキャッシュ禁止を示すとき、前記第二の記憶部への前記記憶を行わず、
前記第一の識別子に対応する前記キャッシュ可否情報は、当該第一の識別子に基づいて算出される前記第二の識別子と前記第一の記憶部に記憶されている他の前記第一の識別子に基づいて算出される前記第二の識別子が同一のとき、キャッシュ禁止を示す
ことを特徴とする付記1に記載の情報処理装置。
(Appendix 2)
When the first acquisition unit acquires the processing information from the first storage unit, the first acquisition unit further acquires cache availability information corresponding to the first identifier from the first storage unit, and obtains the cache availability information. When the information indicates cache prohibition, the storage in the second storage unit is not performed.
The cache availability information corresponding to the first identifier is the second identifier calculated based on the first identifier and the other first identifier stored in the first storage unit. The information processing apparatus according to
(付記3)
前記第一の記憶部に前記第一の識別子と前記処理情報との対応関係を追加するとき、当該第一の識別子に基づいて算出される前記第二の識別子と前記第一の記憶部に記憶されている他の前記第一の識別子に基づいて算出される前記第二の識別子が同一のとき、当該第一の識別子および他の前記第一の識別子に対応する前記キャッシュ可否情報をキャッシュ禁止を示す情報に設定する管理部
をさらに備えることを特徴とする付記2に記載の情報処理装置。
(Appendix 3)
When the correspondence between the first identifier and the processing information is added to the first storage unit, the second identifier calculated based on the first identifier and the first storage unit store the correspondence. When the second identifier calculated based on the other first identifier is the same, the cache prohibition is prohibited for the cache enable / disable information corresponding to the first identifier and the other first identifier. The information processing apparatus according to
(付記4)
前記管理部は、前記第一の記憶部に前記第一の識別子と前記処理情報との前記対応関係を追加するとき、当該第一の識別子に基づいて算出される前記第二の識別子と前記第一の記憶部に記憶されている他の前記第一の識別子に基づいて算出される前記第二の識別子が同一のとき、前記第二の識別子に対応する前記処理情報を前記第二の記憶部から削除する
ことを特徴とする付記3に記載の情報処理装置。
(Appendix 4)
When the management unit adds the correspondence between the first identifier and the processing information to the first storage unit, the second identifier and the second identifier calculated based on the first identifier. When the second identifier calculated based on the other first identifier stored in one storage unit is the same, the processing information corresponding to the second identifier is stored in the second storage unit. The information processing apparatus according to
(付記5)
前記第二の識別子は、前記第一の識別子にハッシュ関数を適用して得られるハッシュ値、あるいは、前記ハッシュ値にさらに演算を施して得られる値である
ことを特徴とする付記1から付記4のいずれかに記載の情報処理装置。
(Appendix 5)
The second identifier is a hash value obtained by applying a hash function to the first identifier, or a value obtained by further performing an operation on the hash value. The information processing device according to any one of.
(付記6)
入力データに含まれる第一の識別子に基づいて前記第一の識別子よりビット数が小さい第二の識別子を算出し、
前記第二の識別子に対応する処理情報が第二の記憶部に記憶されていないとき、前記第一の識別子に対応する前記処理情報を第一の記憶部から取得し、前記第二の識別子と前記処理情報とを対応付けて前記第二の記憶部に記憶させ、
前記第二の識別子に対応する前記処理情報が前記第二の記憶部に記憶されているとき、前記第二の識別子に対応する前記処理情報を前記第二の記憶部から取得し、
前記第一の記憶部あるいは前記第二の記憶部から取得した前記処理情報に対応する処理を前記入力データに対して行う
ことを特徴とする情報処理方法。
(Appendix 6)
A second identifier having a smaller number of bits than the first identifier is calculated based on the first identifier included in the input data.
When the processing information corresponding to the second identifier is not stored in the second storage unit, the processing information corresponding to the first identifier is acquired from the first storage unit, and the second identifier is used. The processing information is associated with the processing information and stored in the second storage unit.
When the processing information corresponding to the second identifier is stored in the second storage unit, the processing information corresponding to the second identifier is acquired from the second storage unit.
An information processing method characterized in that processing corresponding to the processing information acquired from the first storage unit or the second storage unit is performed on the input data.
(付記7)
前記処理情報を前記第一の記憶部から取得する際、さらに、前記第一の識別子に対応するキャッシュ可否情報を前記第一の記憶部から取得し、前記キャッシュ可否情報がキャッシュ禁止を示すとき、前記第二の記憶部への前記記憶を行わず、
前記第一の識別子に対応する前記キャッシュ可否情報は、当該第一の識別子に基づいて算出される前記第二の識別子と前記第一の記憶部に記憶されている他の前記第一の識別子に基づいて算出される前記第二の識別子が同一のとき、キャッシュ禁止を示す
ことを特徴とする付記6に記載の情報処理方法。
(Appendix 7)
When the processing information is acquired from the first storage unit, and the cache availability information corresponding to the first identifier is acquired from the first storage unit, and the cache availability information indicates cache prohibition. Without performing the storage in the second storage unit,
The cache availability information corresponding to the first identifier is the second identifier calculated based on the first identifier and the other first identifier stored in the first storage unit. The information processing method according to Appendix 6, wherein when the second identifier calculated based on the same is the same, it indicates cache prohibition.
(付記8)
前記第一の記憶部に前記第一の識別子と前記処理情報との対応関係を追加するとき、当該第一の識別子に基づいて算出される前記第二の識別子と前記第一の記憶部に記憶されている他の前記第一の識別子に基づいて算出される前記第二の識別子が同一のとき、当該第一の識別子および他の前記第一の識別子に対応する前記キャッシュ可否情報をキャッシュ禁止を示す情報に設定する
ことを特徴とする付記7に記載の情報処理方法。
(Appendix 8)
When the correspondence between the first identifier and the processing information is added to the first storage unit, the second identifier calculated based on the first identifier and the first storage unit store the correspondence. When the second identifier calculated based on the other first identifier is the same, the cache prohibition is prohibited for the cache enable / disable information corresponding to the first identifier and the other first identifier. The information processing method according to Appendix 7, wherein the information is set as shown.
(付記9)
前記第一の記憶部に前記第一の識別子と前記処理情報との前記対応関係を追加するとき、当該第一の識別子に基づいて算出される前記第二の識別子と前記第一の記憶部に記憶されている他の前記第一の識別子に基づいて算出される前記第二の識別子が同一のとき、前記第二の識別子に対応する前記処理情報を前記第二の記憶部から削除する
ことを特徴とする付記8に記載の情報処理方法。
(Appendix 9)
When the correspondence between the first identifier and the processing information is added to the first storage unit, the second identifier calculated based on the first identifier and the first storage unit When the second identifier calculated based on the other stored first identifier is the same, the processing information corresponding to the second identifier is deleted from the second storage unit. The information processing method according to Appendix 8, which is a feature.
(付記10)
前記第二の識別子は、前記第一の識別子にハッシュ関数を適用して得られるハッシュ値、あるいは、前記ハッシュ値にさらに演算を施して得られる値である
ことを特徴とする付記6から付記9のいずれかに記載の情報処理方法。
(Appendix 10)
The second identifier is a hash value obtained by applying a hash function to the first identifier, or a value obtained by further performing an operation on the hash value. The information processing method described in any of.
(付記11)
コンピュータに、
入力データに含まれる第一の識別子に基づいて前記第一の識別子よりビット数が小さい第二の識別子を算出する算出機能と、
前記第二の識別子に対応する処理情報が第二の記憶部に記憶されていないとき、前記第一の識別子に対応する前記処理情報を第一の記憶部から取得し、前記第二の識別子と前記処理情報とを対応付けて前記第二の記憶部に記憶させる第一の取得機能と、
前記第二の識別子に対応する前記処理情報が前記第二の記憶部に記憶されているとき、前記第二の識別子に対応する前記処理情報を前記第二の記憶部から取得する第二の取得機能と、
前記第一の記憶部あるいは前記第二の記憶部から取得した前記処理情報に対応する処理を前記入力データに対して行う処理機能と
を実現させることを特徴とする情報処理プログラム。
(Appendix 11)
On the computer
A calculation function that calculates a second identifier with a smaller number of bits than the first identifier based on the first identifier included in the input data, and
When the processing information corresponding to the second identifier is not stored in the second storage unit, the processing information corresponding to the first identifier is acquired from the first storage unit, and the second identifier is used. A first acquisition function that associates the processing information and stores it in the second storage unit,
When the processing information corresponding to the second identifier is stored in the second storage unit, a second acquisition of acquiring the processing information corresponding to the second identifier from the second storage unit. Function and
An information processing program characterized by realizing a processing function of performing processing corresponding to the processing information acquired from the first storage unit or the second storage unit on the input data.
(付記12)
前記第一の取得機能は、前記処理情報を前記第一の記憶部から取得する際、さらに、前記第一の識別子に対応するキャッシュ可否情報を前記第一の記憶部から取得し、前記キャッシュ可否情報がキャッシュ禁止を示すとき、前記第二の記憶部への前記記憶を行わず、
前記第一の識別子に対応する前記キャッシュ可否情報は、当該第一の識別子に基づいて算出される前記第二の識別子と前記第一の記憶部に記憶されている他の前記第一の識別子に基づいて算出される前記第二の識別子が同一のとき、キャッシュ禁止を示す
ことを特徴とする付記11に記載の情報処理プログラム。
(Appendix 12)
When the processing information is acquired from the first storage unit, the first acquisition function further acquires cache availability information corresponding to the first identifier from the first storage unit, and obtains cache availability information. When the information indicates cache prohibition, the storage in the second storage unit is not performed.
The cache availability information corresponding to the first identifier is the second identifier calculated based on the first identifier and the other first identifier stored in the first storage unit. The information processing program according to
(付記13)
前記第一の記憶部に前記第一の識別子と前記処理情報との対応関係を追加するとき、当該第一の識別子に基づいて算出される前記第二の識別子と前記第一の記憶部に記憶されている他の前記第一の識別子に基づいて算出される前記第二の識別子が同一のとき、当該第一の識別子および他の前記第一の識別子に対応する前記キャッシュ可否情報をキャッシュ禁止を示す情報に設定する管理機能
をさらにコンピュータに実現させることを特徴とする付記12に記載の情報処理プログラム。
(Appendix 13)
When the correspondence between the first identifier and the processing information is added to the first storage unit, the second identifier calculated based on the first identifier and the first storage unit store the correspondence. When the second identifier calculated based on the other first identifier is the same, the cache prohibition is prohibited for the cache enable / disable information corresponding to the first identifier and the other first identifier. The information processing program according to
(付記14)
前記管理機能は、前記第一の記憶部に前記第一の識別子と前記処理情報との前記対応関係を追加するとき、当該第一の識別子に基づいて算出される前記第二の識別子と前記第一の記憶部に記憶されている他の前記第一の識別子に基づいて算出される前記第二の識別子が同一のとき、前記第二の識別子に対応する前記処理情報を前記第二の記憶部から削除する
ことを特徴とする付記13に記載の情報処理プログラム。
(Appendix 14)
When the management function adds the correspondence between the first identifier and the processing information to the first storage unit, the second identifier and the second identifier calculated based on the first identifier. When the second identifier calculated based on the other first identifier stored in one storage unit is the same, the processing information corresponding to the second identifier is stored in the second storage unit. The information processing program according to
(付記15)
前記第二の識別子は、前記第一の識別子にハッシュ関数を適用して得られるハッシュ値、あるいは、前記ハッシュ値にさらに演算を施して得られる値である
ことを特徴とする付記11から付記14のいずれかに記載の情報処理プログラム。
(Appendix 15)
The second identifier is a hash value obtained by applying a hash function to the first identifier, or a value obtained by further performing an operation on the hash value. Information processing program described in any of.
(付記16)
付記10から付記15のいずれかに記載の情報処理プログラムを記録した、コンピュータ読み取り可能な記録媒体。
(Appendix 16)
A computer-readable recording medium on which the information processing program according to any one of
10、20、30、100、200、300 情報処理装置
11、21 第一の記憶部
12 第二の記憶部
13 算出部
14、24、34 第一の取得部
15 第二の取得部
16 処理部
37 管理部
101 通信IF部
102、202、302 パケット受信処理部
103 パケット処理部
104 パケット送信処理部
105 キー抽出部
106 ハッシュ値計算部
107 パケット振分部
108、208、308 キャッシュメモリ制御部
109 処理振分表検索部
110 メモリアクセス部
111 キャッシュヒット判定部
112、312 キャッシュ更新部
213 キャッシュ可否判定部
314 管理部
90 情報処理装置
91 通信インタフェース
92 入出力インタフェース
93 演算装置
94 記憶装置
95 不揮発性記憶装置
96 ドライブ装置
97 記録媒体
10, 20, 30, 100, 200, 300
Claims (10)
前記第二の識別子に対応する処理情報が第二の記憶部に記憶されていないとき、前記第一の識別子に対応する前記処理情報を第一の記憶部から取得し、前記第二の識別子と前記処理情報とを対応付けて前記第二の記憶部に記憶させる第一の取得部と、
前記第二の識別子に対応する前記処理情報が前記第二の記憶部に記憶されているとき、前記第二の識別子に対応する前記処理情報を前記第二の記憶部から取得する第二の取得部と、
前記第一の記憶部あるいは前記第二の記憶部から取得した前記処理情報に対応する処理を前記入力データに対して行う処理部と
を備えることを特徴とする情報処理装置。 A calculation unit that calculates a second identifier with a smaller number of bits than the first identifier based on the first identifier included in the input data.
When the processing information corresponding to the second identifier is not stored in the second storage unit, the processing information corresponding to the first identifier is acquired from the first storage unit, and the second identifier is used. A first acquisition unit that associates the processing information and stores it in the second storage unit,
When the processing information corresponding to the second identifier is stored in the second storage unit, a second acquisition of acquiring the processing information corresponding to the second identifier from the second storage unit. Department and
An information processing apparatus including a processing unit that performs processing corresponding to the processing information acquired from the first storage unit or the second storage unit on the input data.
前記第一の識別子に対応する前記キャッシュ可否情報は、当該第一の識別子に基づいて算出される前記第二の識別子と前記第一の記憶部に記憶されている他の前記第一の識別子に基づいて算出される前記第二の識別子が同一のとき、キャッシュ禁止を示す
ことを特徴とする請求項1に記載の情報処理装置。 When the first acquisition unit acquires the processing information from the first storage unit, the first acquisition unit further acquires cache availability information corresponding to the first identifier from the first storage unit, and obtains the cache availability information. When the information indicates cache prohibition, the storage in the second storage unit is not performed.
The cache availability information corresponding to the first identifier is the second identifier calculated based on the first identifier and the other first identifier stored in the first storage unit. The information processing apparatus according to claim 1, wherein when the second identifier calculated based on the same is the same, it indicates cache prohibition.
をさらに備えることを特徴とする請求項2に記載の情報処理装置。 When the correspondence between the first identifier and the processing information is added to the first storage unit, the second identifier calculated based on the first identifier and the first storage unit store the correspondence. When the second identifier calculated based on the other first identifier is the same, the cache prohibition is prohibited for the cache enable / disable information corresponding to the first identifier and the other first identifier. The information processing apparatus according to claim 2, further comprising a management unit for setting the information to be shown.
ことを特徴とする請求項3に記載の情報処理装置。 When the management unit adds the correspondence between the first identifier and the processing information to the first storage unit, the second identifier and the second identifier calculated based on the first identifier. When the second identifier calculated based on the other first identifier stored in one storage unit is the same, the processing information corresponding to the second identifier is stored in the second storage unit. The information processing apparatus according to claim 3, wherein the information processing apparatus is deleted from.
ことを特徴とする請求項1から請求項4のいずれかに記載の情報処理装置。 The second identifier is claimed from claim 1, wherein it is a hash value obtained by applying a hash function to the first identifier, or a value obtained by further performing an operation on the hash value. Item 4. The information processing apparatus according to any one of Items 4.
前記第二の識別子に対応する処理情報が第二の記憶部に記憶されていないとき、前記第一の識別子に対応する前記処理情報を第一の記憶部から取得し、前記第二の識別子と前記処理情報とを対応付けて前記第二の記憶部に記憶させ、
前記第二の識別子に対応する前記処理情報が前記第二の記憶部に記憶されているとき、前記第二の識別子に対応する前記処理情報を前記第二の記憶部から取得し、
前記第一の記憶部あるいは前記第二の記憶部から取得した前記処理情報に対応する処理を前記入力データに対して行う
ことを特徴とする情報処理方法。 A second identifier having a smaller number of bits than the first identifier is calculated based on the first identifier included in the input data.
When the processing information corresponding to the second identifier is not stored in the second storage unit, the processing information corresponding to the first identifier is acquired from the first storage unit, and the second identifier is used. The processing information is associated with the processing information and stored in the second storage unit.
When the processing information corresponding to the second identifier is stored in the second storage unit, the processing information corresponding to the second identifier is acquired from the second storage unit.
An information processing method characterized in that processing corresponding to the processing information acquired from the first storage unit or the second storage unit is performed on the input data.
前記第一の識別子に対応する前記キャッシュ可否情報は、当該第一の識別子に基づいて算出される前記第二の識別子と前記第一の記憶部に記憶されている他の前記第一の識別子に基づいて算出される前記第二の識別子が同一のとき、キャッシュ禁止を示す
ことを特徴とする請求項6に記載の情報処理方法。 When the processing information is acquired from the first storage unit, and the cache availability information corresponding to the first identifier is acquired from the first storage unit, and the cache availability information indicates cache prohibition. Without performing the storage in the second storage unit,
The cache availability information corresponding to the first identifier is the second identifier calculated based on the first identifier and the other first identifier stored in the first storage unit. The information processing method according to claim 6, wherein when the second identifier calculated based on the same is the same, a cache prohibition is indicated.
ことを特徴とする請求項7に記載の情報処理方法。 When the correspondence between the first identifier and the processing information is added to the first storage unit, the second identifier calculated based on the first identifier and the first storage unit store the correspondence. When the second identifier calculated based on the other first identifier is the same, the cache prohibition is prohibited for the cache enable / disable information corresponding to the first identifier and the other first identifier. The information processing method according to claim 7, wherein the information is set as shown.
ことを特徴とする請求項8に記載の情報処理方法。 When the correspondence between the first identifier and the processing information is added to the first storage unit, the second identifier calculated based on the first identifier and the first storage unit When the second identifier calculated based on the other stored first identifier is the same, the processing information corresponding to the second identifier is deleted from the second storage unit. The information processing method according to claim 8, which is characterized.
入力データに含まれる第一の識別子に基づいて前記第一の識別子よりビット数が小さい第二の識別子を算出する算出機能と、
前記第二の識別子に対応する処理情報が第二の記憶部に記憶されていないとき、前記第一の識別子に対応する前記処理情報を第一の記憶部から取得し、前記第二の識別子と前記処理情報とを対応付けて前記第二の記憶部に記憶させる第一の取得機能と、
前記第二の識別子に対応する前記処理情報が前記第二の記憶部に記憶されているとき、前記第二の識別子に対応する前記処理情報を前記第二の記憶部から取得する第二の取得機能と、
前記第一の記憶部あるいは前記第二の記憶部から取得した前記処理情報に対応する処理を前記入力データに対して行う処理機能と
を実現させることを特徴とする情報処理プログラム。 On the computer
A calculation function that calculates a second identifier with a smaller number of bits than the first identifier based on the first identifier included in the input data, and
When the processing information corresponding to the second identifier is not stored in the second storage unit, the processing information corresponding to the first identifier is acquired from the first storage unit, and the second identifier is used. A first acquisition function that associates the processing information and stores it in the second storage unit,
When the processing information corresponding to the second identifier is stored in the second storage unit, a second acquisition of acquiring the processing information corresponding to the second identifier from the second storage unit. Function and
An information processing program characterized by realizing a processing function of performing processing corresponding to the processing information acquired from the first storage unit or the second storage unit on the input data.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016195773A JP6766567B2 (en) | 2016-10-03 | 2016-10-03 | Information processing equipment, methods and programs |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016195773A JP6766567B2 (en) | 2016-10-03 | 2016-10-03 | Information processing equipment, methods and programs |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018061088A JP2018061088A (en) | 2018-04-12 |
JP6766567B2 true JP6766567B2 (en) | 2020-10-14 |
Family
ID=61908669
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016195773A Active JP6766567B2 (en) | 2016-10-03 | 2016-10-03 | Information processing equipment, methods and programs |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6766567B2 (en) |
-
2016
- 2016-10-03 JP JP2016195773A patent/JP6766567B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2018061088A (en) | 2018-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101826725B1 (en) | Technologies for network device flow lookup management | |
EP3334123B1 (en) | Content distribution method and system | |
JP6581277B2 (en) | Data packet transfer | |
US9571300B2 (en) | Reducing encapsulation overhead in overlay-based networks | |
CN107113240B (en) | Method for transmitting message of extensible virtual local area network, computer equipment and readable medium | |
JP6193335B2 (en) | Techniques for network packet cache management | |
US9847940B2 (en) | Control method, packet processing device, and storage medium | |
US20170308828A1 (en) | Map tables for hardware tables | |
EP3099026B1 (en) | In-network message processing method, in-network message forwarding equipment and in-network message processing system | |
US9979643B2 (en) | Communication apparatus, communication method, and computer-readable recording medium | |
WO2017092568A1 (en) | Configuration method and device for virtual network function | |
EP3384642B1 (en) | Forwarding table compression | |
CN104836738A (en) | Router hardware item resource management method and device, and network equipment | |
JP2024506089A (en) | Packet forwarding methods, devices, and systems | |
US20140156954A1 (en) | System and method for achieving enhanced performance with multiple networking central processing unit (cpu) cores | |
JP6222505B2 (en) | Method and apparatus for generating input parameters | |
JP6766567B2 (en) | Information processing equipment, methods and programs | |
KR20170072645A (en) | Processor and method for processing data thereof | |
JP2008148133A (en) | Communication equipment, control method thereof and program | |
TW201611548A (en) | A method of using a unique packet identifier to identify structure of a packet and an apparatus thereof | |
US11411868B2 (en) | Batch oriented service chaining method and corresponding devices and computer program | |
JP2017059897A (en) | Sorter, communication device, and communication method | |
CN107894914A (en) | Buffer consistency treating method and apparatus | |
JP2017523721A (en) | Service node capability processing method, apparatus, service classifier, and service controller | |
CN105099732B (en) | A kind of methods, devices and systems identifying abnormal IP traffic |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190913 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200713 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20200818 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200831 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6766567 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |