JP5324380B2 - Packet transfer device - Google Patents
Packet transfer device Download PDFInfo
- Publication number
- JP5324380B2 JP5324380B2 JP2009228975A JP2009228975A JP5324380B2 JP 5324380 B2 JP5324380 B2 JP 5324380B2 JP 2009228975 A JP2009228975 A JP 2009228975A JP 2009228975 A JP2009228975 A JP 2009228975A JP 5324380 B2 JP5324380 B2 JP 5324380B2
- Authority
- JP
- Japan
- Prior art keywords
- information
- cache
- unit
- packet
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000012546 transfer Methods 0.000 title claims abstract description 107
- 238000012545 processing Methods 0.000 claims abstract description 230
- 238000012423 maintenance Methods 0.000 claims abstract description 85
- 238000012795 verification Methods 0.000 claims abstract description 49
- 238000000034 method Methods 0.000 claims description 80
- 230000005540 biological transmission Effects 0.000 claims description 25
- 238000000605 extraction Methods 0.000 claims description 9
- 238000007781 pre-processing Methods 0.000 claims description 8
- 238000012790 confirmation Methods 0.000 claims description 4
- 239000000470 constituent Substances 0.000 claims 1
- 230000032683 aging Effects 0.000 description 30
- 238000007726 management method Methods 0.000 description 25
- 238000010586 diagram Methods 0.000 description 23
- 230000006870 function Effects 0.000 description 20
- 239000004065 semiconductor Substances 0.000 description 14
- 238000010200 validation analysis Methods 0.000 description 14
- 238000004364 calculation method Methods 0.000 description 10
- COCAUCFPFHUGAA-MGNBDDOMSA-N n-[3-[(1s,7s)-5-amino-4-thia-6-azabicyclo[5.1.0]oct-5-en-7-yl]-4-fluorophenyl]-5-chloropyridine-2-carboxamide Chemical compound C=1C=C(F)C([C@@]23N=C(SCC[C@@H]2C3)N)=CC=1NC(=O)C1=CC=C(Cl)C=N1 COCAUCFPFHUGAA-MGNBDDOMSA-N 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000013479 data entry Methods 0.000 description 3
- 230000000737 periodic effect Effects 0.000 description 3
- 238000003672 processing method Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000002131 composite material Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000428 dust Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
本発明は、パケットの転送を行うパケット転送装置に関する。 The present invention relates to a packet forwarding equipment for transferring packets.
ブリッジ、ルータといった通信装置は、パケットと呼ばれるひとかたまりになったデータの入出力インターフェース(ポート)を複数有する。これらの装置は、パケットごとに、そのパケットが受信されたポートに付随する情報やそのパケットに付与されている制御情報を元に、装置内の多数のデータベースを検索、参照して、そのパケットの処理方法を決定する。処理の中には、パケットの制御情報を変更、加工したり、パケットの流入、流出量を基準に廃棄したり、あるいは、データベースの検索結果に基づいて特定のポートに送信するといった操作が含まれる。これらの処理は、多数のデータベースを検索する必要があり、通信インターフェースが高速になると、データベースを記憶する装置内の記憶装置(メモリ)がボトルネックとなり、処理速度が制限されてしまい、通信インターフェースの伝送速度を完全に使い切れない状態になってしまう。
そのため従来の装置では、データベース検索結果をキャッシュと呼称する一時情報記憶領域に格納し頻繁に到達するパケットについては高速にフォワーディング処理を実現している(例えば特許文献1参照)。
Communication devices such as bridges and routers have a plurality of data input / output interfaces (ports) called a packet. For each packet, these devices search and refer to a large number of databases in the device based on the information attached to the port from which the packet was received and the control information attached to the packet. Determine the processing method. The processing includes operations such as changing or processing packet control information, discarding packets based on the inflow or outflow amount of packets, or sending to specific ports based on database search results. . In these processes, it is necessary to search a large number of databases. When the communication interface becomes high speed, the storage device (memory) in the apparatus storing the database becomes a bottleneck, and the processing speed is limited. The transmission speed is not completely used up.
For this reason, in the conventional apparatus, the database search result is stored in a temporary information storage area called a cache, and forwarding processing is realized at high speed for packets that arrive frequently (see, for example, Patent Document 1).
しかし、回線速度の高速化に伴いデータベース検索及びキャッシュ処理を実施するCPU(中央処理装置、Central Processing Unit)の回線インタフェース速度が帯域不足となり、結果としてキャッシュ処理にて実現可能なフォワーディング速度を、該回線インタフェース帯域にて制限する結果となっている。
また、高速処理を実現するために実装したキャッシュ参照によるフォワーディングと、キャッシュヒットしなかった場合に多手順にて処理を実施するデータベース検索処理が同一のCPUに実装されることにより、高速処理可能なキャッシュ参照フォワーディングがデータベース検索処理の輻輳により処理帯域不足になるという問題がある。
However, as the line speed increases, the line interface speed of the CPU (Central Processing Unit) that performs database search and cache processing becomes insufficient, and as a result, the forwarding speed that can be realized by the cache process is reduced. The result is limited by the line interface bandwidth.
Also, high-speed processing is possible by implementing the forwarding by cache reference implemented to realize high-speed processing and database search processing that performs multi-step processing when there is no cache hit on the same CPU. Cache reference forwarding has a problem that the processing bandwidth becomes insufficient due to congestion of database search processing.
本発明は、上記の課題を解決するためになされたものであり、頻繁に到達し処理内容が決定しているパケットのフォワーディング処理と、例外的に到達もしくは、頻繁に到達するが最初の1パケットなど多手順で処理内容を決定する必要があるパケットの処理ブロックを分離実装しそれぞれ独立して処理を実行することで、フォワーディング処理速度を早くすることが可能なパケット転送装置を提供する。 The present invention has been made in order to solve the above-described problem, and is a forwarding process for packets that have arrived frequently and whose processing contents have been determined, and the first one packet that has arrived exceptionally or has arrived frequently. Provided is a packet transfer device capable of increasing the forwarding processing speed by separately implementing processing blocks of packets that require processing contents to be determined in multiple procedures and executing the processing independently of each other.
上記の課題を解決するために、本発明の一態様によるパケット転送装置は、高速パケット処理ブロックと低速パケット処理ブロックとを備え、それぞれの処理ブロックを分離実装したパケット転送装置であって、前記高速パケット処理ブロックは、入力ポートからパケットを受信する高速パケット情報受信部と、前記パケットよりフォワーディングに関連するフィールドを抽出するフィールド抽出部と、前記フォワーディングに関連するフィールドに対応する参照情報を含む処理情報をまとめて記憶するキャッシュブロックを複数備えたキャッシュ部と、前記フィールド抽出部が抽出した前記フォワーディングに関連するフィールドに基づいて前記キャッシュブロックを特定するキャッシュブロック特定部と、前記キャッシュブロック特定部で特定された前記キャッシュブロックに、前記参照情報が存在するか否か判断する検証部と、前記検証部で前記参照情報が存在すると判断された場合、特定された前記キャッシュブロックよりパケットの転送処理に関する前記処理情報を読み出し、読み出した当該処理情報に基づいて前記高速パケット情報受信部より受信したパケットのフォワーディング処理を行うキャッシュ参照フォワーディング部と、前記検証部で前記参照情報が存在しないと判断された場合に、前記高速パケット情報受信部より受信したパケットを前記低速パケット処理ブロックに転送する低速処理前パケット情報送信部と、を有し、前記低速パケット処理ブロックは、前記参照情報を記憶する情報エントリを複数個備えたデータベース部と、前記フォワーディングに関連するフィールドに基づいて前記低速処理前パケット情報送信部により送信されたパケットに対応する前記参照情報を前記データベース部の前記情報エントリより読み出し、読み出した当該参照情報に基づいて前記送信されたパケットに転送情報を付与し、低速処理済パケット情報送信部により前記高速パケット処理ブロックに前記パケットを転送するデータベース参照フォワーディング部と、前記参照情報を前記処理情報としてまとめて前記キャッシュブロック特定部で特定した前記キャッシュブロックに記憶させるため前記キャッシュブロックの確認ならびに更新をキャッシュブロックのメンテナンス操作として実行するためのキャッシュメンテナンス情報を作成し、前記高速パケット処理ブロックに送信する主キャッシュメンテナンス部と、を有し、更に前記高速パケット処理ブロックは、前記データベース参照フォワーディング部により転送されたパケットを受信する低速処理済パケット情報受信部と、前記主キャッシュメンテナンス部により送信されたキャッシュメンテナンス情報を受信し、当該受信したキャッシュメンテナンス情報を元に前記キャッシュブロックに対する確認ならびに更新をメンテナンス操作として実行する従キャッシュメンテナンス部と、前記キャッシュ参照フォワーディング部及び前記データベース参照フォワーディング部より出力されたパケットを出力ポートに送信する高速パケット情報送信部と、を有することを特徴とする。これにより、高速パケット処理ブロックはフォワーディングに関連するフィールドに基づいてキャッシュブロックを特定し、処理情報が存在するか否かを検証部にて判断することで、同じ処理情報を使用してパケット転送処理を行う際にはキャッシュブロックに記憶された参照情報を読み取ってパケット転送処理を行う。 In order to solve the above-described problem, a packet transfer apparatus according to an aspect of the present invention is a packet transfer apparatus that includes a high-speed packet processing block and a low-speed packet processing block, and each processing block is separately mounted. The packet processing block includes a high-speed packet information receiving unit that receives a packet from an input port, a field extraction unit that extracts a field related to forwarding from the packet, and processing information including reference information corresponding to the field related to the forwarding A cache unit including a plurality of cache blocks that collectively store, a cache block specifying unit that specifies the cache block based on a field related to the forwarding extracted by the field extracting unit, and the cache block specifying unit A verification unit that determines whether or not the reference information exists in the identified cache block, and a packet transfer process from the identified cache block when the verification unit determines that the reference information exists. When it is determined that the reference information does not exist in the cache reference forwarding unit that reads the processing information and performs forwarding processing of the packet received from the high-speed packet information receiving unit based on the read processing information, and the verification unit And a low-speed pre-processing packet information transmission unit for transferring a packet received from the high-speed packet information receiving unit to the low-speed packet processing block, and the low-speed packet processing block includes an information entry for storing the reference information A plurality of database sections and the forwarding The reference information corresponding to the packet transmitted by the pre-low-speed packet information transmission unit based on the continuous field is read from the information entry of the database unit, and the transmitted packet is based on the read reference information. The database reference forwarding unit that assigns transfer information and transfers the packet to the high-speed packet processing block by the low-speed processed packet information transmission unit, and the cache block specifying unit collectively identifies the reference information as the processing information. Main cache maintenance for generating cache maintenance information for executing confirmation and update of the cache block as a cache block maintenance operation to be stored in the cache block, and transmitting the cache maintenance information to the high-speed packet processing block The high-speed packet processing block further includes a low-speed processed packet information receiving unit that receives a packet transferred by the database reference forwarding unit, and cache maintenance information transmitted by the main cache maintenance unit. Receives and outputs a packet output from the cache reference forwarding unit and the database reference forwarding unit as a maintenance operation that performs confirmation and update on the cache block as a maintenance operation based on the received cache maintenance information And a high-speed packet information transmission unit for transmitting to the network . As a result, the high-speed packet processing block identifies the cache block based on the field related to forwarding, and determines whether the processing information exists in the verification unit, thereby using the same processing information to perform packet transfer processing. When performing the packet transfer, the reference information stored in the cache block is read to perform packet transfer processing.
また、本発明の一態様によるパケット転送装置は、前記データベース部は、前記データベース参照フォワーディング部がそれぞれの前記情報エントリへアクセスした回数を表す第一の統計情報を記憶し、前記キャッシュ部は、前記キャッシュ参照フォワーディング部がそれぞれの前記キャッシュブロックへアクセスした回数を表す第二の統計情報を記憶し、前記従キャッシュメンテナンス部は、前記キャッシュ部より前記キャッシュブロックの前記第二の統計情報を読み取り当該読み取ったキャッシュブロックの参照情報とともに前記主キャッシュメンテナンス部に送信し、前記主キャッシュメンテナンス部は、前記従キャッシュメンテナンス部から送信された参照情報に相当する情報エントリの前記第一の統計情報を前記データベース部より読み取り、当該第一の統計情報に前記従キャッシュメンテナンス部から送信された前記第二の統計情報を加算するとともに、前記従キャッシュメンテナンス部に前記第二の統計情報を削除する指示を送信することを特徴とする。これにより、キャッシュブロックは第二のカウンタ情報を記憶し、カウンタ情報更新部はキャッシュブロックが記憶した第二のカウンタ情報を読み取り、情報エントリ部が記憶する第一のカウンタ情報に基づいて第二のカウンタ情報を更新する。 In the packet transfer apparatus according to the aspect of the present invention, the database unit stores first statistical information indicating the number of times the database reference forwarding unit has accessed each of the information entries, and the cache unit includes the Second statistical information indicating the number of times the cache reference forwarding unit has accessed each of the cache blocks is stored, and the secondary cache maintenance unit reads the second statistical information of the cache block from the cache unit and reads the second statistical information. The cache information is transmitted to the main cache maintenance unit together with the reference information of the cache block, and the main cache maintenance unit transmits the first statistical information of the information entry corresponding to the reference information transmitted from the sub cache maintenance unit to the database unit. Yo Reading, as well as adding the second statistical information transmitted to the first statistical information from the slave cache maintenance unit, to send an instruction to delete the second statistical information to the slave cache maintenance unit Features. Thus, the cache block stores the second counter information, the counter information update unit reads the second counter information stored by the cache block, and the second counter information is stored based on the first counter information stored by the information entry unit. Update counter information.
なお、パケット転送装置は、エージング情報を更新するエージング情報更新部を備え前記情報エントリはさらに第一のエージング情報を記憶し、前記キャッシュブロックはさらに第二のエージング情報を記憶し、前記キャッシュ参照フォワーディング部はさらに、前記キャッシュブロックより前記処理情報を読み出す際に、前記第二のエージング情報を更新し、前記エージング情報更新部は前記第二のエージング情報に基づいて前記第一のエージング情報を更新し、さらに前記第二のエージング情報を更新するようにしてもよい。これにより、キャッシュブロックは第二のエージング情報を記憶し、エージング情報更新部はキャッシュブロックが記憶した第二のエージング情報を読み取り、情報エントリ部が記憶する第一のエージング情報に基づいて第二のエージング情報を更新する。 The packet transfer apparatus includes an aging information update unit for updating aging information, the information entry further stores first aging information, the cache block further stores second aging information, and the cache reference forwarding The unit further updates the second aging information when reading the processing information from the cache block, and the aging information update unit updates the first aging information based on the second aging information. it may further update the second aging information. Thus, the cache block stores the second aging information, the aging information update unit reads the second aging information stored in the cache block, and the second aging information stored in the information entry unit is stored in the second aging information. Update aging information.
高速CPUや特殊なメモリを使用することなく高速なパケット転送処理を実現する。 High-speed packet transfer processing is realized without using a high-speed CPU or special memory.
以下、図面を参照し、本発明の実施形態を説明する。図1は本発明の一実施形態によるスイッチ装置1(パケット転送装置)の構成を示すブロック図である。スイッチ装置1は制御カード装置2と、入出力ラインカード装置3−1〜3−3と、フォワーディング処理装置4−1〜4−3と、スイッチ部6とを備える。制御カード装置2はスイッチ装置1の全体の制御を行う。また、フォワーディング処理装置4−1はパケット処理部5−1を備え、フォワーディング処理装置4−2はパケット処理部5−2を備え、フォワーディング処理装置4−3はパケット処理部5−3を備える。パケット処理部5−1〜5−3はスイッチ部6と接続されており、スイッチ部6を介しパケット処理部5−1〜5−3間でパケットの送受信を行うことが可能である。パケット処理部5−1は入出力ラインカード装置3−1と接続され、パケット処理部5−2は入出力ラインカード装置3−2と接続され、パケット処理部5−3は入出力ラインカード装置3−3と接続されている。パケット処理部5−1〜5−3は入出力ラインカード装置3より受信したパケットの転送処理を行う。入出力ラインカード装置3−1〜3−3はそれぞれポートを3つ備えており、ポートを介して外部装置(図示せず)とパケットの送受信を行う。
Hereinafter, embodiments of the present invention will be described with reference to the drawings. FIG. 1 is a block diagram showing a configuration of a switch device 1 (packet transfer device) according to an embodiment of the present invention. The
図2は本実施形態のパケット転送装置の構成を示す機能ブロック図である。パケット転送装置1は、入出力ポート3と、高速パケット処理ブロック310と、低速パケット処理ブロック320にて構成され。高速パケット処理ブロック310は、高速パケット情報受信部190−1と、高速パケット情報送信部190−2と、フィールド抽出部11と、インデックス計算部12と、検証情報格納部13と、検証部14と、キャッシュ参照フォワーディング部16と、キャッシュ部200と、従キャッシュメンテナンス部18−2と、低速処理前パケット送信部191−2と、低速処理済パケット受信部191−1と、を備える。低速パケット処理ブロック320は、低速処理前パケット情報受信部192−1と、低速処理済パケット情報送信部192−2と、データベース1(521−1)〜データベースn(521−n)と、データベース参照フォワーディング部と、主キャッシュメンテナンス部18−1と、を備える。
FIG. 2 is a functional block diagram showing the configuration of the packet transfer apparatus of this embodiment. The
図示する例では、データベースはデータベース1(521−1)〜データベースn(521−n)のn個がある。また、データベース1(521−1)〜データベースn(521−n)は、CPUが直接読み書き可能な主記憶装置である半導体メモリ(RAM)に記憶される。データベース1(521−1)〜データベースn(521−n)はパケットの転送処理に必要な情報である参照情報を保管している。データベース1(521−1)〜データベースn(521−n)の種類としては、ポートに関する情報を記憶するポートデータベース、イーサネット(登録商標)アドレスを記憶するフォワーディング・データベース(Forwarding DataBase,FDB)、バーチャル・ローカル・エリア・ネットワーク(Virtual Local Area Network,VLAN)の情報を記憶するバーチャル・ローカル・エリア・ネットワーク・テーブル、ポートとバーチャル・ローカル・エリア・ネットワークをキーとして検索される情報を記憶するポート・バーチャル・ローカル・エリア・ネットワーク・テーブル、パケット転送のサービスレベルの情報を記憶するクオリティ・オブ・サービス(Quality of Service,QoS)パラメータなどがある。また、データベース1(521−1)〜データベースn(521−n)は複数のエントリを有する。 In the illustrated example, there are n databases, database 1 (521-1) to database n (521-n). Database 1 (521-1) to database n (521-n) are stored in a semiconductor memory (RAM) that is a main storage device that can be directly read and written by the CPU. Database 1 (521-1) to database n (521-n) store reference information that is information necessary for packet transfer processing. The types of the database 1 (521-1) to the database n (521-n) include a port database for storing information about ports, a forwarding database (Forwarding DataBase, FDB) for storing Ethernet (registered trademark) addresses, a virtual database A virtual local area network table that stores information of a local local area network (VLAN), and a port virtual that stores information searched using ports and virtual local area networks as keys. • Quality of service (Quality of Se) that stores information on the service level of the local area network table and packet transfer vice, QoS) parameters, and the like. Database 1 (521-1) to database n (521-n) have a plurality of entries.
フィールド抽出部11は、高速パケット情報受信部190−1を介して受信した転送対象のパケットに含まれるフォワーディングに関連するフィールドを抽出する。フォワーディングに関連するフィールドはパケットの一部分(ヘッダ)の中に含まれ、ソースアドレス、デスティネーションアドレス、クオリティ・オブ・サービス(Quality of Service,QoS)等を含んだ制御情報の一部である。インデックス計算部12はフィールド抽出部11で抽出したフォワーディングに関連するフィールドのハッシュ値を計算し、計算したハッシュ値に基づいてインデックスを計算し、インデックスに基づいてキャッシュ部200が含むキャッシュブロック1(210−1)〜キャッシュブロックt(210−t)の内一つを特定する。検証情報格納部13は、フィールド抽出部11で抽出したフォワーディングに関連するフィールドを検証情報とし、当該検証情報を、インデックス計算部12が当該フィールドに基づいて特定されるキャッシュブロック1(210−1)〜キャッシュブロックt(210−t)に格納する。検証部14(判断部)は、転送対象のパケットのフォワーディングに関連するフィールドに基づいて特定されるキャッシュブロック1(210−1)〜キャッシュブロックt(210−t)に、当該パケットのフォワーディングに関連するフィールド(検証情報)と同一の検証情報が記憶されているか否か判断する。パケットの転送はフォワーディングに関連するフィールドに基づいて行われるため、検証情報が同一の場合は、パケットの転送処理も同一である。
The
なお、一般に、ルータやブリッジの処理では、パケットの一部分に含まれる制御情報のみが転送処理に影響を与えるという特徴があるため、パケットの転送に影響する部分のみをそのパケットの特徴として記録すれば、同種のパケットを選別できる。同種のパケットとは転送処理が同一のパケットを指す。同種のパケットを二度目以降に処理する場合には、最初の処理と同一の処理を行えばよい。そのため、同種の特徴を有するということを確認する手段とそのパケットを加工したり出力したりするときに、データベースから読み込んだパケットの転送に必要な情報すべてを一箇所のキャッシュに格納し、これをハッシュ関数で高速に検索できれば転送処理は格段に速くなる。 In general, router and bridge processing has a feature that only control information included in a part of a packet affects transfer processing. Therefore, if only a portion that affects packet transfer is recorded as a feature of the packet, , Can sort out the same kind of packets. The same type of packet refers to a packet having the same transfer process. When processing the same type of packet for the second time or later, the same processing as the first processing may be performed. Therefore, when processing and outputting the packet and the means for confirming that it has the same kind of characteristics, all the information necessary for the transfer of the packet read from the database is stored in one cache. If the hash function can be used to search at high speed, the transfer process will be much faster.
フォワーディング部17は、パケットの加工およびパケットの転送を行う。フォワーディング部17は低速パケット処理ブロック320に含まれるデータベース参照フォワーディング部15と、高速パケット処理ブロック310に含まれるキャッシュ参照フォワーディング部16とを備えており、パケットの加工およびパケットの転送は同様の処理を行うが、加工および転送に必要な情報の読み取り先が異なる。データベース参照フォワーディング部15はデータベース1(521−1)〜データベースn(521−n)から加工及び転送に必要な情報を読み取る。また、データベース参照フォワーディング部15は、読み取った情報を当該パケットのフィールドに基づいて特定されるキャッシュブロック1(210−1)〜キャッシュブロックt(210−t)に、主キャッシュメンテナンス部18−1及び、従キャッシュメンテナンス部18−2を経由して書き込む。一方、キャッシュ参照フォワーディング部16は、データベース参照フォワーディング部15が、データベース1(521−1)〜データベースn(521−n)から読みだし、主キャッシュメンテナンス部18−1及び従キャッシュメンテナンス部18−2を用いてキャッシュブロック1(210−1)〜キャッシュブロックt(210−t)に書き込んだ情報を、キャッシュブロック1(210−1)〜キャッシュブロックt(210−t)から読み取ってパケットの加工およびパケットの転送を行う。すなわち、一度フォワーディング部17がデータベース1(521−1)〜データベースn(521−n)より読み取ったデータはキャッシュブロック1(210−1)〜キャッシュブロックt(210−t)に書き込まれているので、以前転送処理を行ったパケットと同種の特徴を有するパケットに対し、同一の転送処理を行う場合はキャッシュブロック1(210−1)〜キャッシュブロックt(210−t)からデータを読み取り転送処理を行う。フォワーディング部17は、検証部14が転送対象のパケットのフォワーディングに関連するフィールドに基づいて特定されるキャッシュブロック1(210−1)〜キャッシュブロックt(210−t)に、当該パケットのフォワーディングに関連するフィールド(検証情報)と同一の検証情報が記憶されていると判断した場合はキャッシュ参照フォワーディング部16を用い、記憶されていないと判断した場合はデータベース参照フォワーディング部15を用いる。
The forwarding unit 17 processes the packet and transfers the packet. The forwarding unit 17 includes a database
キャッシュ部200はキャッシュブロック1(210−1)〜キャッシュブロックt(210−t)を含んでおり、半導体メモリ(RAM)上に記憶される。この半導体メモリはCAMなど特殊なメモリではなく、データベース1(521−1)〜データベースn(521−n)が記憶される半導体メモリと同様の半導体メモリであっても良い。キャッシュブロック1(210−1)〜キャッシュブロックt(210−t)はデータを記憶することができ、それぞれキャッシュ参照フォワーディング部16が連続して読み取ることが出来る領域である。主キャッシュメンテナンスブロック18−1、従キャッシュメンテナンスブロック18−2はキャッシュブロック200のメンテナンス操作として、指定アドレスデータのロード及びライト処理を提供する。メンテナンス操作は主キャッシュメンテナンスブロック18−1が主導して実施するものとする。
The
高速パケット情報受信部190−1及び高速パケット情報送信部190−2は入出力ポート3にて規定される回線帯域と同一もしくは上回る回線帯域を有するパケット送受信処理部で、パケットのフォワーディングに関する処理情報がキャッシュブロック200に存在し、キャッシュ参照フォワーディングブロックのみでパケットフォワーディング処理が完結する際には、当該高速パケット情報送受信部のみを経由し、入出力ポートへの送受信パケット処理を完了する。低速処理済パケット情報受信部191−1及び低速処理前パケット情報送信部191−2は、パケットのフォワーディングに関する処理情報がキャッシュブロック200に存在しない場合に、パケットをデータベース参照フォワーディング部15に伝達し、データベース参照フォワーディング部15にてフォワーディング処理が完了したパケットを受信するためのインタフェースである。
The high-speed packet information receiving unit 190-1 and the high-speed packet information transmitting unit 190-2 are packet transmission / reception processing units having a line bandwidth that is the same as or exceeding the line bandwidth defined by the input /
図3は本実施形態におけるデータベース参照フォワーディング部の動作を説明したブロック図である。図示するように、パケット転送装置1は入出力ポート3と、低速パケット処理ブロック320と、高速パケット処理ブロック310で構成し、低速パケット処理ブロック320は、データベース参照処理部20と、データベース1(521−1)〜データベースn(521−n)を含んで構成され。高速パケット処理ブロック310は、キャッシュ部200と、従キャッシュメンテナンス部18−2と、キャッシュ参照処理部21とを含んで構成される。
FIG. 3 is a block diagram illustrating the operation of the database reference forwarding unit in the present embodiment. As illustrated, the
データベース参照処理部20は、図2に示したデータベース参照フォワーディング部15と、主キャッシュメンテナンス部18−1とを備え、キャッシュ参照処理部21は、図2に示した、フィールド抽出部11と、インデックス計算部12と、検証情報格納部13と、検証部14と、キャッシュ参照フォワーディング部16とを含んで構成される。受信パケット20および送信パケット21は転送対象のパケットであり、パケット転送装置1により加工、転送される。
The database
図示する例では、データベース参照処理部20ではデータベース参照フォワーディング部15を用いて転送処理を行っている。データベース参照フォワーディング部15を用いて転送処理を行う場合は、キャッシュ参照処理部21に含まれる検証部14が転送対象のパケットのフォワーディングに関連するフィールドに基づいて特定されるキャッシュブロック1(210−1)〜キャッシュブロックt(210−t)に、当該パケットのフォワーディングに関連するフィールド(検証情報)と同一の検証情報が記憶されていないと判断した場合である。すなわち、キャッシュブロック1(210−1)〜キャッシュブロックt(210−t)に参照情報が記憶されていないため、データベース1(521−1)〜データベースn(521−n)より参照情報を読み取り、パケットの転送処理を行い、転送対象のパケットのフォワーディングに関連するフィールドに基づいて特定されるキャッシュブロック1(210−1)〜キャッシュブロックt(210−t)に、主キャッシュメンテナンス部18−1、従キャッシュメンテナンス部18−2を介し読み取った参照情報を記憶させる。
In the illustrated example, the database
図4は本実施形態におけるキャッシュ参照フォワーディング部の動作を説明したブロック図である。図示するように、パケット転送装置1は入出力ポート3と、低速パケット処理ブロック320と、高速パケット処理ブロック310で構成し、低速パケット処理ブロック320は、データベース参照処理部20と、データベース1(521−1)〜データベースn(521−n)を含んで構成され。高速パケット処理ブロック310は、キャッシュ部200と、従キャッシュメンテナンス部18−2と、キャッシュ参照処理部21とを含んで構成される。データベース参照処理部20は、図2に示したデータベース参照フォワーディング部15と、主キャッシュメンテナンス部18−1とを備え、キャッシュ参照処理部21は、図2に示した、フィールド抽出部11と、インデックス計算部12と、検証情報格納部13と、検証部14と、キャッシュ参照フォワーディング部16とを含んで構成される。受信パケット20および送信パケット21は転送対象のパケットであり、パケット転送装置1により加工、転送される。
FIG. 4 is a block diagram illustrating the operation of the cache reference forwarding unit in this embodiment. As illustrated, the
図示する例では、キャッシュ参照処理部21ではキャッシュ参照フォワーディング部16を用いて転送処理を行っている。キャッシュ参照フォワーディング部16を用いて転送処理を行う場合は、検証部14が転送対象のパケットのフォワーディングに関連するフィールドに基づいて特定されるキャッシュブロック1(210−1)〜キャッシュブロックt(210−t)に、当該パケットのフォワーディングに関連するフィールド(検証情報)と同一の検証情報が記憶されていると判断した場合である。すなわち、キャッシュブロック1(210−1)〜キャッシュブロックt(210−t)に参照情報が記憶されているため、キャッシュブロック1(210−1)〜キャッシュブロックt(210−t)より参照情報を読み取り、パケットの転送処理を行う。
In the illustrated example, the cache
図5は本発明の一実施形態のデータベース1(521−1)〜データベースn(521−n)が記憶する参照情報と、キャッシュ上のキャッシュブロック1(210−1)〜キャッシュブロックt(210−t)が記憶する処理情報との関連を示したブロック図である。キャッシュブロック1(210−1)からキャッシュブロックt/2まではソースアドレス用キャッシュラインである。キャッシュブロック(t/2)+1からキャッシュブロックt(210−t)はデスティネーションアドレス用キャッシュラインである。なお、tは偶数である。 FIG. 5 illustrates reference information stored in the database 1 (521-1) to the database n (521-n) according to the embodiment of the present invention, and the cache block 1 (210-1) to the cache block t (210-) on the cache. It is the block diagram which showed the relationship with the process information which t) memorize | stores. The cache block 1 (210-1) to the cache block t / 2 are source address cache lines. Cache block (t / 2) +1 to cache block t (210-t) are destination address cache lines. Note that t is an even number.
データベース1(521−1)は参照情報30−1と30−2を記憶する。データベース2(521−2)は参照情報30−3と30−4を記憶する。データベースn(521−n)は参照情報30−5と30−6を記憶する。参照情報30−1と30−4と30−5は、転送処理においてソースアドレスの処理時に参照する参照情報である。参照情報30−2と30−3と30−6は、転送処理においてデスティネーションアドレスの処理時に参照する参照情報である。 Database 1 (521-1) stores reference information 30-1 and 30-2. Database 2 (521-2) stores reference information 30-3 and 30-4. The database n (521-n) stores reference information 30-5 and 30-6. The reference information 30-1, 30-4, and 30-5 are reference information that is referred to when the source address is processed in the transfer process. The reference information 30-2, 30-3, and 30-6 are reference information that is referred to when the destination address is processed in the transfer process.
データベース1(521−1)〜データベースn(521−n)が記憶する参照情報30は、データベース参照フォワーディング部15によって一度読み取られると、一つのパケットの転送に使用した参照情報ごとに一つのキャッシュブロック1(210−1)〜キャッシュブロックt(210−t)に書き込まれる。図示する例では、参照情報30−1と、30−4と、30−5は、一つのパケットの転送処理においてソースアドレスの処理時に参照される参照情報であるため、t個のキャッシュブロック1(210−1)〜キャッシュブロックt(210−t)のうちの一つであるキャッシュブロック4(210−4)に書き込まれる。また、参照情報30−2と、30−3と、30−6は、一つのパケットの転送処理においてデスティネーションアドレスの処理時に参照される参照情報であるため、t個のキャッシュブロック1(210−1)〜キャッシュブロックt(210−t)のうちの一つであるキャッシュブロックt−1(210−t−1)に書き込まれる。
When the reference information 30 stored in the database 1 (521-1) to the database n (521-n) is read once by the database
次に、パケット転送装置の動作手順について図6(a)、(b)および図7を参照して説明する。図6(a)、(b)および図7はパケット転送装置の動作手順について示したフローチャートであり、図6(a)、(b)は、高速パケット処理ブロック、図7は低速パケット処理ブロックについてそれぞれ動作手順を示している。 Next, the operation procedure of the packet transfer apparatus will be described with reference to FIGS. 6 (a), 6 (b) and FIG. 6A, 6B, and 7 are flowcharts showing the operation procedure of the packet transfer apparatus. FIGS. 6A and 6B are high-speed packet processing blocks, and FIG. 7 is a low-speed packet processing block. Each shows an operation procedure.
図6(a)、(b)を用いて高速パケット処理ブロック部310について、その動作を説明する。はじめに、高速パケット情報受信部190−1は入出力ポート3よりパケットの入力を監視し、パケットを受信した場合にS102に進む(ステップS101)フィールド抽出部11は入出力ポート3より入力されたパケットよりフォワーディングに関連するフィールドを抽出する(ステップS102)。インデックス計算部12はステップS102で抽出したフィールドの値から所定のハッシュ関数を用いてハッシュ値(1)を計算する(ステップS103)。インデックス計算部12はステップS103で計算したハッシュ値(1)に基づいてインデックスを計算し、インデックスに基づいてキャッシュブロック1(210−1)〜キャッシュブロックt(210−t)を特定する。検証情報格納部13は、インデックス計算部12が特定したキャッシュブロック1(210−1)〜キャッシュブロックt(210−t)に検証情報が存在するか否か検索する(ステップS104)。検証情報格納部13はステップS104で特定したキャッシュブロック1(210−1)〜キャッシュブロックt(210−t)に検証情報が存在するか否か判断し(ステップS105)、検証情報(2)が存在する場合はステップS106に進み、存在しない場合はステップS109に進む。ステップS106では、検証部14はステップS105で存在した検証情報と、ステップS102で抽出したフィールド(検証情報)とに基づいて、検索した検証情報が含まれるキャッシュブロック1(210−1)〜キャッシュブロックt(210−t)の情報が転送対象のパケットに対して有効か否か確認する(ステップS107)。ステップS107でキャッシュブロック1(210−1)〜キャッシュブロックt(210−t)の情報が有効と判断した場合はステップS108に進み、無効と判断した場合はステップS109に進む(ステップS107)。ステップS107では、キャッシュ参照フォワーディング部16は、ステップS104で特定したキャッシュブロック1(210−1)〜キャッシュブロックt(210−t)に含まれる情報のうち、処理情報(3)に基づいて転送対象のパケットを加工し、処理情報(3)に記録された出力ポートに、処理情報(3)に記録されたパラメータで転送対象のパケットに送出制御情報として付与し(ステップS110)パケットは高速パケット情報送信部190−2を介し、入出力ポート3から送出され、また低速処理済パケット受信部191−1を介し低速パケット処理ブロック320から受信したパケットを高速パケット情報送信部190−2を介し、入出力ポート3から送出し処理は終了する。一方、ステップS109では、到達したパケットに対する処理情報がキャッシュに存在しない場合に実行され、低速処理前パケット情報送信部191−2を介し低速パケット処理ブロック320にパケットを送出する。
The operation of the high-speed packet
また、従キャッシュメンテナンス部18−2は、主キャッシュメンテナンス部18−1からのキャッシュメンテナンス情報(キャッシュ登録情報)(5)の受信を監視し、キャッシュメンテナンス情報(5)を受信した場合S121に進む(ステップS120)、従キャッシュメンテナンス部18−2は、キャッシュメンテナンス情報(5)を元に新たなキャッシュブロック(4)であるキャッシュブロック1(210−1)〜キャッシュブロックt(210−t)を確保する(ステップS121)、次に、キャッシュメンテナンス情報(5)に含まれる(2)の検証情報(3)の処理情報を一つの処理情報としてステップS121で確保したキャッシュブロック(4)に記憶させる(ステップS122)、キャッシュ参照フォワーディング部16は、キャッシュメンテナンス情報(5)に含まれるハッシュ値(1)に基づいて、インデックス計算部にて求められるインデックスで登録し(ステップ123)処理を終了する。
The sub cache maintenance unit 18-2 monitors the reception of the cache maintenance information (cache registration information) (5) from the main cache maintenance unit 18-1, and proceeds to S121 when the cache maintenance information (5) is received. (Step S120), the secondary cache maintenance unit 18-2 selects cache blocks 1 (210-1) to t (210-t), which are new cache blocks (4) based on the cache maintenance information (5). Next, the processing information of the verification information (3) in (2) included in the cache maintenance information (5) is stored in the cache block (4) secured in step S121 as one processing information. (Step S122), cache reference forwarding The
図7を用いて低速パケット処理ブロック部320の動作を説明する。データベース参照フォワーディング部15は、低速処理前パケット情報受信部192−1にてパケットを受信し動作を開始する(ステップS131)。転送対象パケットのヘッダ部を解析し、解析した情報に基づいてデータベース1(521−1)〜データベースn(521−n)より参照情報を読み取り、参照情報に基づいてパケットを加工し、加工したパケットに出力ポート及び送出パラメータ情報を付与し(ステップS132)、低速処理済パケット情報送信部192−2を介し、高速パケット処理部S310にパケットを送出する(ステップS133)。また、データベース参照フォワーディング部15はこの過程で読み取った複数の参照情報を一つにまとめて、一つの処理情報としてキャッシュ登録情報(5)として主キャッシュメンテナンス部18−1を介し高速パケット処理ブロック310内に存在するキャッシュ部200に登録し(ステップS134)、処理を終了する。
The operation of the low-speed packet
上述したとおり、フォワーディング部17は、初めて転送するパケットについては、パケットの転送に必要な複数の参照情報をデータベース1(521−1)〜データベースn(521−n)より読み取り、読み取った情報に基づいて低速パケット処理ブロックにてパケットを転送処理するが、その際に読み取った複数の参照情報を一つにまとめ、一つの処理情報としてキャッシュ参照パケット処理部のキャッシュブロックに記憶させ、再度同じ特徴を持ったパケットの転送処理の際には、キャッシュ参照処理ブロック単独で転送処理を行う。 As described above, the forwarding unit 17 reads a plurality of reference information necessary for packet transfer from the database 1 (521-1) to the database n (521-n) for the packet to be transferred for the first time, and based on the read information. The packet is transferred in the low-speed packet processing block, and a plurality of reference information read at that time is collected into one, and stored as one processing information in the cache block of the cache reference packet processing unit, and the same characteristics are again obtained. At the time of transfer processing of the held packet, transfer processing is performed by the cache reference processing block alone.
パケットの転送に関する処理情報を格納するデータベース及びキャッシュブロックはRAM上に記憶されており、それぞれのRAMは物理的に個別の実装形態とし、それぞれのRAMへのアクセスは独立して同時に実行できる。また、各キャッシュブロックはRAM上にアドレスが連続するように記憶されている。同一の内容を読み取る場合、一つのキャッシュブロックからの連続した読み込みは、複数のデータベースからの読み込みよりも速い。これは以下の要因などによる。 A database and a cache block for storing processing information related to packet transfer are stored on the RAM, and each RAM is physically implemented separately, and access to each RAM can be executed independently and simultaneously. Each cache block is stored on the RAM so that addresses are continuous. When reading the same content, consecutive reads from one cache block are faster than reads from multiple databases. This is due to the following factors.
高速パケット処理ブロックでは、パケット転送処理を行う上で最初に使用するデータをRAM上から読み込むと、そのデータのアドレスに隣接したアドレスで指定されるデータをRAMの転送バーストサイズにてまとめて読み込みを実施する。RAMにはSRAM、DRAM、SDRAMと複数のアーキテクチャが存在するが、現在最も経済的に容量と高速アクセス性を確保できるSDRAMを使用するものとする。SDRAMと呼ばれるRAMは、バースト転送という転送モードを提供し、連続したアドレスに対するリードアクセスを高速化する技術を有している。この技術は、1つのアドレスを指定するだけで、次に続くアドレスのデータを連続して転送することで、例えば本案キャッシュのように基本的に連続した処理情報を取り出す場合は、1回のリードトランザクションにて複数の処理情報を連続してリードすることが可能である。一般的なSDRAMでは1/2/4/8回連続のバースト転送をサポートしている。バースト転送は、最初の1回のみアドレスを指定し、以後連続したアクセスに際してはアドレス指定が不要なアクセス形態であり、アクセスサイクルの削減が可能である。本実施形態で、パケット転送処理に必要なデータをキャッシュブロックから読み込む場合には、目的とするデータがRAM上の所定の範囲内にかたまって存在しているため、次に使用するデータは最初に使用するデータと一緒に高速パケット処理ブロック内に格納される確率が高い。従って、パケット転送処理に必要なデータがRAM上の連続したアドレスで指定される領域に記録されていないとき、すなわちアドレスの分散している複数のデータベースからデータを読み込む場合と比較すると、一つのキャッシュブロックからデータを読み込むほうが読み込み速度は速くなる。 In the high-speed packet processing block, when the first data used for packet transfer processing is read from the RAM, the data specified by the address adjacent to the data address is read in the RAM transfer burst size. carry out. There are a plurality of architectures, such as SRAM, DRAM, and SDRAM, in the RAM, but it is assumed that an SDRAM that can secure the capacity and high-speed accessibility most economically at present is used. A RAM called SDRAM provides a transfer mode called burst transfer, and has a technology for speeding up read access to consecutive addresses. In this technique, only one address is specified, and data at the next address is transferred continuously. For example, when basically continuous processing information is taken out as in the present cache, one read is performed. It is possible to read a plurality of processing information continuously in a transaction. A general SDRAM supports burst transfer that is 1/2/4/8 times continuous. Burst transfer is an access mode in which an address is designated only once for the first time and no address designation is required for subsequent accesses, and the access cycle can be reduced. In this embodiment, when data necessary for packet transfer processing is read from a cache block, the target data is present within a predetermined range on the RAM, so the next data to be used is first There is a high probability of being stored in the high-speed packet processing block together with the data to be used. Therefore, when the data required for packet transfer processing is not recorded in the area designated by the continuous addresses on the RAM, that is, compared with the case where data is read from a plurality of databases with distributed addresses, one cache is used. Reading data from the block is faster.
なお、RAMへのアクセス形態を工夫し、もしくはSRAMなど異なるアーキテクチャにて物理的な転送速度を向上する方式にて、読み込み速度限界を向上する方式については本案では割愛する。連続したアドレスに所望のデータを格納することにより読み込み速度を規定のアクセス形態での最適化を図ることが本案の目的である。 Note that a method for improving the reading speed limit by a method for improving the physical transfer speed with a different architecture such as SRAM or the like is omitted in this proposal. It is an object of the present plan to optimize the reading speed in a prescribed access mode by storing desired data in consecutive addresses.
上述したとおり、本発明を利用したパケット転送処理と、利用していないパケット転送処理とを比較すると、本発明を利用したパケット転送処理では、参照データを高速に読み出すことができる。その結果、従来、パケット転送処理のボトルネックとなっていた参照情報の読み出しが速くなり、パケット転送処理も速くなる。 As described above, when packet transfer processing using the present invention is compared with packet transfer processing not using the packet transfer processing using the present invention, reference data can be read at high speed. As a result, the reading of reference information, which has conventionally been a bottleneck of packet transfer processing, is accelerated, and the packet transfer processing is also accelerated.
次に、上述したパケット転送装置におけるデータベース1(521−1)〜データベースn(521−n)のエントリが持つカウンタの管理手法について図を参照して説明する。図8は本実施形態におけるカウンタの管理手法について説明したブロック図である。上述したパケット転送装置は、データベース1(521−1)〜データベースn(521−n)のエントリが持つカウンタを管理する手段として、以下に述べるカウンタ情報更新部を有している。 Next, a management method of counters included in the entries of the database 1 (521-1) to the database n (521-n) in the packet transfer apparatus described above will be described with reference to the drawings. FIG. 8 is a block diagram illustrating a counter management method in the present embodiment. The packet transfer apparatus described above has a counter information update unit described below as means for managing the counters of the entries in the database 1 (521-1) to the database n (521-n).
パケットのフォワーディング処理では、データベース1(521−1)〜データベースn(521−n)を参照するだけではなく、フォワーディングしたパケットに関する統計情報を記録する必要がある。統計情報(カウンタ)はフォワーディング処理でデータベース1(521−1)〜データベースn(521−n)を参照した際に、参照されたデータベース1(521−1)〜データベースn(521−n)のいずれかのエントリに記録される。エントリはデータベース1(521−1)〜データベースn(521−n)内に複数存在し、図示する例ではデータベース1(521−1)のエントリ数はm1個、データベース2(521−2)のエントリ数はm2個である。また、エントリの各々はカウンタ(第一の統計情報)を持つ。しかし、本実施形態では、参照情報が処理情報に含まれた状態でキャッシュブロック1(210−1)〜キャッシュブロックt(210−t)に記憶されている場合、フォワーディング処理はキャッシュブロック1(210−1)〜キャッシュブロックt(210−t)の情報に基づいて行われるため、データベース1(521−1)〜データベースn(521−n)のエントリにアクセスすることなくフォワーディング処理が実施される。そのため、カウンタ管理方法を考慮しなければデータベース1(521−1)〜データベースn(521−n)のエントリに統計情報を記録することが出来ない。 In the packet forwarding process, it is necessary not only to refer to the database 1 (521-1) to the database n (521-n) but also to record statistical information regarding the forwarded packet. The statistical information (counter) is any of the database 1 (521-1) to the database n (521-n) referred to when the database 1 (521-1) to the database n (521-n) are referred to in the forwarding process. Is recorded in the entry. There are a plurality of entries in the database 1 (521-1) to the database n (521-n). In the example shown in the figure, the number of entries in the database 1 (521-1) is m1, and the entries in the database 2 (521-2) The number is m2. Each entry has a counter (first statistical information). However, in this embodiment, when the reference information is included in the processing information and stored in the cache block 1 (210-1) to the cache block t (210-t), the forwarding process is performed in the cache block 1 (210 -1) to the cache block t (210-t), the forwarding process is performed without accessing the entries of the database 1 (521-1) to the database n (521-n). Therefore, statistical information cannot be recorded in the entries of the database 1 (521-1) to the database n (521-n) unless the counter management method is taken into consideration.
本発明でのカウンタ管理方法は以下の通りである。キャッシュブロック1(210−1)〜キャッシュブロックt(210−t)の各々はカウンタ(第二の統計情報)を持つ。キャッシュ参照フォワーディング部16は、キャッシュブロック1(210−1)〜キャッシュブロックt(210−t)の情報に基づいてパケットのフォワーディング処理を実施した場合、アクセスしたキャッシュブロック1(210−1)〜キャッシュブロックt(210−t)のカウンタをカウントアップする。図示する例では、キャッシュ参照フォワーディング部16がパケットAのフォワーディング処理を行う場合、キャッシュブロック1の処理情報を読み取る。その時にキャッシュ参照フォワーディング部16は参照したキャッシュブロック1(210−1)のカウンタをカウントアップする。パケットBのフォワーディング処理の場合についても同様である。
The counter management method in the present invention is as follows. Each of the cache block 1 (210-1) to the cache block t (210-t) has a counter (second statistical information). When the packet
一方、従キャッシュメンテナンス部18−2に含まれるカウンタ情報更新部は周期処理でキャッシュブロック1(210−1)〜キャッシュブロックt(210−t)の第二の統計情報を読み取り、キャッシュブロック1(210−1)〜キャッシュブロックt(210−t)が記憶する処理情報に含まれた参照情報を低速パケット処理ブロック320内の主キャッシュメンテナンス部18−1に通知する、低速パケット処理ブロック320に含まれる、主キャッシュメンテナンス部18−1は、データベース参照フォワーディング部15と連携し、データベース1(521−1)〜データベースn(521−n)のエントリの第一の統計情報に、従キャッシュブロック18−2から受信した、キャッシュブロック1(210−1)〜キャッシュブロックt(210−t)の第二の統計情報を加え、その後キャッシュブロック1(210−1)〜キャッシュブロックt(210−t)の第二の統計情報のクリアを従キャッシュメンテナンス部18−2に指示する。また、キャッシュブロック1(210−1)〜キャッシュブロックt(210−t)が削除される場合においても同様の処理を行い、キャッシュブロック1(210−1)〜キャッシュブロックt(210−t)が記憶する第二の統計情報をエントリの第一の統計情報に加える。
On the other hand, the counter information update unit included in the sub-cache maintenance unit 18-2 reads the second statistical information of the cache block 1 (210-1) to the cache block t (210-t) by periodic processing, and the cache block 1 ( 210-1) to the low-speed
上述したとおり、本実施形態によれば、データベース1(521−1)〜データベースn(521−n)のエントリにアクセスすることなくフォワーディング処理が実施される場合においても、データベース1(521−1)〜データベースn(521−n)のエントリに統計情報を記録しその内容を同期することができる。 As described above, according to the present embodiment, even when the forwarding process is performed without accessing the entries of the database 1 (521-1) to the database n (521-n), the database 1 (521-1). ~ Statistic information can be recorded in the entry of database n (521-n) and the contents can be synchronized.
次に、上述したパケット転送装置におけるデータベース1(521−1)〜データベースn(521−n)の各エントリが持つエージング情報(第一のエージング情報、第一の有効時刻)の更新方法について図を参照して説明する。図9は本実施形態におけるエージング処理方法について説明したブロック図である。上述したパケット転送装置は、データベース1(521−1)〜データベースn(521−n)のエントリの有効性を管理する手段として、以下に述べるエージング情報更新部を有している。また、キャッシュブロック1(210−1)〜キャッシュブロックt(210−t)の各々は第二のエージング情報を持つ。 Next, a method for updating the aging information (first aging information, first valid time) of each entry of the database 1 (521-1) to the database n (521-n) in the packet transfer apparatus described above will be described. The description will be given with reference. FIG. 9 is a block diagram illustrating an aging processing method according to this embodiment. The packet transfer apparatus described above has an aging information update unit described below as means for managing the validity of entries in the database 1 (521-1) to the database n (521-n). Each of the cache block 1 (210-1) to the cache block t (210-t) has second aging information.
パケット転送装置は、動的に収集されるデータベース1(521−1)〜データベースn(521−n)のエントリに関して、そのエントリの有効性をエージングという処理で管理する場合がある。この処理は、パケットの転送処理時にそのパケットによって特定のデータベース1(521−1)〜データベースn(521−n)のエントリが有効であることが確認された場合、その確認された時刻をデータベース1(521−1)〜データベースn(521−n)のエントリに記録し、一定時間内に有効であることが確認されなかった場合、そのデータベース1(521−1)〜データベースn(521−n)のエントリを自動的に削除する。一定時間参照されなかった処理情報を、無効な情報として取り扱うことで、頻繁に到達するパケットに関する処理情報を優先的にキャッシュブロックに格納することを目的とする手順である。 The packet transfer apparatus may manage the validity of entries of database 1 (521-1) to database n (521-n) that are dynamically collected by a process called aging. In this process, when it is confirmed that the entry of the specific database 1 (521-1) to the database n (521-n) is valid by the packet during the packet transfer process, the confirmed time is set to the database 1 (521-1) to database n (521-n) are recorded in the entries, and when it is not confirmed that they are valid within a predetermined time, the database 1 (521-1) to database n (521-n) Automatically delete the entry. This is a procedure for preferentially storing processing information on frequently arrived packets in a cache block by treating processing information that has not been referenced for a certain period of time as invalid information.
しかし、本実施形態では、参照情報が処理情報に含まれた状態でキャッシュブロック1(210−1)〜キャッシュブロックt(210−t)に記憶されている場合、フォワーディング処理はキャッシュブロック1(210−1)〜キャッシュブロックt(210−t)の情報に基づいて行われるため、データベース1(521−1)〜データベースn(521−n)のエントリにアクセスすることなくフォワーディング処理が実施される。そのため、有効であると確認された場合においても確認された時刻をデータベース1(521−1)〜データベースn(521−n)のエントリに記録することが出来ないため、有効であるデータベース1(521−1)〜データベースn(521−n)のエントリについても自動的に削除されてしまう。 However, in this embodiment, when the reference information is included in the processing information and stored in the cache block 1 (210-1) to the cache block t (210-t), the forwarding process is performed in the cache block 1 (210 -1) to the cache block t (210-t), the forwarding process is performed without accessing the entries of the database 1 (521-1) to the database n (521-n). For this reason, even when it is confirmed to be valid, the confirmed time cannot be recorded in the entries of the database 1 (521-1) to the database n (521-n). -1) to database n (521-n) entries are automatically deleted.
本発明でのエージング処理は以下の通りである。キャッシュブロック1(210−1)〜キャッシュブロックt(210−t)の情報に基づいてキャッシュ参照フォワーディング部16がパケットのフォワーディング処理を実施した場合、キャッシュ参照フォワーディング部16はアクセスしたキャッシュブロック1(210−1)〜キャッシュブロックt(210−t)の第二の有効時刻(第二のエージング情報)に、キャッシュブロックを参照した時刻を記録する。図示する例では、キャッシュ参照フォワーディング部16がパケットAのフォワーディング処理を行う場合、キャッシュ参照フォワーディング部16はキャッシュブロック1(210−1)の第二の処理情報を読み取る。その時にキャッシュ参照フォワーディング部16は、キャッシュブロック1を参照した際に内部時計から取得した現在時刻を、キャッシュブロック1(210−1)の第二の有効時刻に記録する。パケットBのフォワーディング処理についても、キャッシュ参照フォワーディング部16は、パケットAについてと同様の処理を行う。
The aging process in the present invention is as follows. When the cache
一方、従キャッシュメンテナンス部18−2に含まれるエージング情報更新部は周期処理でキャッシュブロック1(210−1)の第二の有効時刻を読み取り、第二の有効時刻とキャッシュブロック1(210−1)に関連するエントリが有する第一の有効時刻とを比較する。第二の有効時刻の方が新しければ、エージング情報更新部は第一の有効時刻を第二の有効時刻の値に書き換える。その後エージング情報更新部はキャッシュブロック1(210−1)の第二の有効時刻をクリアする。キャッシュブロック2(210−2)〜キャッシュブロックt(210−t)についても、エージング情報更新部は、キャッシュブロック1についてと同様の処理を行う。
On the other hand, the aging information update unit included in the sub-cache maintenance unit 18-2 reads the second valid time of the cache block 1 (210-1) by periodic processing, and the second valid time and the cache block 1 (210-1). ) Is compared with the first valid time of the entry associated with. If the second valid time is newer, the aging information update unit rewrites the first valid time with the value of the second valid time. Thereafter, the aging information update unit clears the second valid time of the cache block 1 (210-1). For the cache block 2 (210-2) to the cache block t (210-t), the aging information update unit performs the same processing as that for the
上述したとおり、本実施形態によれば、データベース1(521−1)〜データベースn(521−n)のエントリにアクセスすることなくフォワーディング処理が実施される場合においても、データベース1(521−1)〜データベースn(521−n)のエージング処理を行うことができる。 As described above, according to the present embodiment, even when the forwarding process is performed without accessing the entries of the database 1 (521-1) to the database n (521-n), the database 1 (521-1). ~ Aging processing of database n (521-n) can be performed.
次に、上述したパケット転送装置におけるデータベースのエントリおよびキャッシュ(cache)のエントリの情報を管理し維持する手法について説明する。上述したパケット転送装置は、データベースのエントリおよびキャッシュのエントリを管理する手段として、以下に述べる情報管理装置を有している。 Next, a technique for managing and maintaining information on database entries and cache entries in the packet transfer apparatus described above will be described. The packet transfer apparatus described above has an information management apparatus described below as means for managing database entries and cache entries.
図10は、本実施形態による情報管理装置のハードウェア構成を示す概略ブロック図である。図示するように、この情報管理装置501は、CPU(中央処理装置、Central Processing Unit)502と、半導体RAM(半導体により構成される読み書き可能なランダムアクセスメモリ)503と、主キャッシュメンテナンス部18−1、バス504、及びメンテナンス情報パス506と、従キャッシュメンテナンス部18−2とキャッシュ200とを含んで構成される。CPU・502と半導体RAM・503と主キャッシュメンテナンス部18−1とはそれぞれバス504に接続されており、CPU・502からはバス504を介して半導体RAM・503からデータを読み出したり、半導体RAM・503にデータを書き込んだりすることができ、キャッシュのメンテナンス(管理)を主キャッシュメンテナンス部18−1を経由して実施することができる。バス504には、他の構成要素も接続されているが、ここでは記載を省略する。キャッシュメンテナンス情報パス506は、CPU502からキャッシュのメンテナンスを実施する際の制御ルートであり、その両端に主キャッシュメンテナンス部18−1と従キャッシュメンテナンス部18−2を有し、キャッシュ管理情報の伝達及びキャッシュの管理に使用する。ここでメンテナンスとは、キャッシュの初期化、処理情報のライト、周期処理の実行などが含まれる。なお、メンテナンス情報パスに関する物理形態は本案では規定しないが、PCI(Peripheral Component Interconnect)や汎用外部バスインタフェースを用いるものとする。また、パケット情報を伝達する低速パケット情報送受信部にてメンテナンス情報をやり取りすることも可能である。キャッシュ200はキャッシュ情報を格納するメモリで、半導体RAMにて構成する。
FIG. 10 is a schematic block diagram illustrating a hardware configuration of the information management apparatus according to the present embodiment. As shown in the figure, this
このように、キャッシュブロックに格納された処理情報のみでフォワーディング処理が可能なパケットは、キャッシュ200のみを参照し転送が完了するため、CPU502や、メンテナンス情報パス506、内部バス504を使用する必要が無い。したがってキャッシュのみで転送可能なパケットは他の動作に影響を及ぼすことなく、極めて高速にフォワーディング処理を完了させることが可能である。半導体RAM503の内部には、実行形式のコンピュータプログラムコードが記憶されている領域と処理対象のデータが記憶されている領域が含まれる。CPU502は、内部に有するプログラムカウンタの値に基づいて適宜、半導体RAM503の所定のアドレスからプログラムコードを読み出して実行する。このようなコンピュータプログラムを用いることにより、以下に述べる情報管理の機能が実現される。
As described above, since a packet that can be forwarded only by the processing information stored in the cache block is referred to only the
図11は、情報管理装置501の機能構成を示す概略機能ブロック図である。図示するように、情報管理装置501は、内部に、関連性有効化処理部511と、関連性無効化処理部512と、ガーベジ収集処理部513と、データベース部521と、主/従キャッシュメンテナンス部18と、キャッシュ200とを含んで構成される。データベース部521は、データを記憶する機能を有しており、上記の半導体RAM503によって実現される。キャッシュ200は、主/従キャッシュメンテナンス部18を介し関連性有効化処理部511や関連性無効化処理部512やガーベジ収集処理部513にて管理され、パケットの転送に必要な処理情報を格納する。関連性有効化処理部511や関連性無効化処理部512やガーベジ収集処理部513は、上記のCPU502がコンピュータプログラムを実行することにより実現される。
FIG. 11 is a schematic functional block diagram showing a functional configuration of the
関連性有効化処理部511(関連性有効化処理過程)は、データベースエントリ(情報エントリ)に関連するキャッシュブロック(関連情報エントリ)を有効にする際に、当該データベースエントリ(情報エントリ)と当該キャッシュブロック(関連情報エントリ)との間に関連があることを表わすキャッシュブロックポインタ(関連性情報)を含んだオブジェクト(関連オブジェクト)を生成するとともに、当該キャッシュブロック(関連情報エントリ)の世代番号(522−1、世代情報)と同一の世代情報を当該オブジェクト(関連オブジェクト)の世代番号(527−1、世代情報)として主/従キャッシュメンテナンス部18を介して、キャッシュ200に書き込む処理を行なう機能を有するものである。関連性無効化処理部512(関連性無効化処理過程)は、データベースエントリ(情報エントリ)のいずれかが変更されたときに、変更された当該データベースエントリ(情報エントリ)に関連するキャッシュブロック(関連情報エントリ)を無効にする処理をするとともに、当該キャッシュブロック(関連情報エントリ)の世代番号(522−1、世代情報)を主/従キャッシュメンテナンス部18を介して、キャッシュ200の内容を更新する処理を行なう機能を有するものである。ガーベジ収集処理部513(ガーベジ収集処理過程)は、オブジェクト(関連オブジェクト)が有する世代番号(527−1、世代情報)と、当該オブジェクト(関連オブジェクト)に対応するキャッシュブロック(関連情報エントリ)が有する世代番号(522−1、世代情報)とを比較し、この比較結果に応じて当該オブジェクト(関連オブジェクト)を主/従キャッシュメンテナンス部18を介して、キャッシュ200から回収する(つまり、不要となっているオブジェクトを収集(回収)する機能を有するものである。
The relevance validation processing unit 511 (relevance validation process), when validating a cache block (related information entry) related to a database entry (information entry), the database entry (information entry) and the cache An object (related object) including a cache block pointer (relevance information) indicating that there is a relationship with a block (related information entry) is generated, and the generation number (522) of the cache block (related information entry) −1, generation information), and a function of writing the same generation information as the generation number (527-1, generation information) of the object (related object) to the
次に、情報管理装置501が管理の対象とするデータの構成および構造について説明する。図12は、情報管理装置501が管理するデータ構造の一例を概念的に表わす概略図である。この図は、データ構造を単に概念的に表わしているに過ぎず、実際の、本実施形態の情報管理装置501における物理的なデータ構造については後述する。図12において、符号521−1、521−2、・・・、521−nは、n個のデータベース(第1記憶部)である。また、符号522は、キャッシュブロック群(第2記憶部)である。データベース1(521−1)は、エントリ1からエントリm1までのm1個のデータエントリ(情報エントリ)を有している。データベース2(521−2)は、エントリ1からエントリm2までのm2個のデータエントリを有している。以下、同様に続き、データベースn(521−n)は、エントリ1からエントリmnまでのmn個のデータエントリを有している。一方、キャッシュブロック群522は、キャッシュブロック1からキャッシュブロックtまでのt個のキャッシュブロック(関連情報エントリ)を有している。図中の矢印線は、それぞれ、データベースのエントリからキャッシュブロックへの関連を表わすものである。図示する例では、例えば、データベース1(521−1)のエントリ2は、キャッシュブロック2、キャッシュブロック3、キャッシュブロックtに関連する。また、データベース2(521−2)のエントリ2は、キャッシュブロック2に関連する。また、データベース2(521−2)のエントリm2は、キャッシュブロック1に関連する。また、データベースn(521−n)のエントリ2は、キャッシュブロックtに関連する。また、データベースn(521−n)のエントリmnは、キャッシュブロック3に関連する。
Next, the configuration and structure of data to be managed by the
図12に示した例のように、あるデータベースエントリが複数のキャッシュブロックに関連する場合がある。また、複数のデータベースエントリが、ひとつのキャッシュブロックに関連する場合がある。つまり、データベースエントリとキャッシュブロックとの関連は、多対多(図示する例では、(m1+m2+・・・+mn)対t)の関係にある。 As in the example shown in FIG. 12, a database entry may be associated with a plurality of cache blocks. Also, multiple database entries may be associated with one cache block. That is, the relationship between the database entry and the cache block is a many-to-many relationship (in the example shown, (m1 + m2 +... + Mn) vs. t).
ところで、前述の通り、本実施形態では、データベース(521−1〜521−n)は、パケット転送装置がパケット転送する際に参照する必要のある各種データを保持している。また、あるパケットを転送する際に必要となる情報が各データベースにばらばらに分散して存在しているとそれらのデータを読み出すのに時間がかかるため、各々のキャッシュブロックは、あるパケットを転送する際に必要となる情報をまとめて局所的な場所に保持しておくためのものである。つまり、パケット転送装置を運用するとき、データベースエントリは、オペレータによる設定操作の結果として、あるいはルーティングプロトコルのやりとりの結果として、あるいはブリッジのFDB学習の結果として、変更されることがある。 Incidentally, as described above, in the present embodiment, the database (521-1 to 521-n) holds various data that need to be referred to when the packet transfer apparatus performs packet transfer. In addition, if the information necessary to transfer a packet is scattered and distributed in each database, it takes time to read out the data, so each cache block transfers a packet. This is to keep all the information necessary at the time in a local place. That is, when the packet transfer apparatus is operated, the database entry may be changed as a result of a setting operation by an operator, as a result of exchange of a routing protocol, or as a result of FDB learning of a bridge.
データベースエントリが変更されると、そのデータベースエントリに対応する、変更前の値を保持するキャッシュブロックは、値の不整合が起こってしまうのを避けるために、削除するないしは無効にするなど、参照されないようにする必要がある。上記の通り、あるキャッシュブロックは、複数のデータベースエントリから抽出した情報から構成される。また上記の通り、あるデータベースエントリは、複数のキャッシュブロックに関連している。これは、あるキャッシュブロック、複数のデータベースエントリに依存していると言い換えることもできる。つまり、データベースエントリとキャッシュブロックの間には、多対多の依存関係がある。 When a database entry is changed, the cache block that holds the old value corresponding to the database entry is not referenced, such as deleted or invalidated, in order to avoid inconsistent values. It is necessary to do so. As described above, a certain cache block includes information extracted from a plurality of database entries. As described above, a certain database entry is associated with a plurality of cache blocks. In other words, it depends on a certain cache block and a plurality of database entries. That is, there is a many-to-many dependency between database entries and cache blocks.
次に、情報管理装置501が管理するデータの具体的な構造について、図13、図14、図15を参照しながら説明する。
Next, a specific structure of data managed by the
図13は、データベースとキャッシュブロックとの間の関連付けを表わすデータ構造を示した概略図である。この図において、データベース1(521−1、第1記憶部)はm1個のエントリ(情報エントリ)を有し、キャッシュブロック群522(第2記憶部)はt個のエントリ(関連情報エントリ)を有している。また、符号526はオブジェクトハッシュであり、このオブジェクトハッシュ526はスロット1からスロットxまでのx個のスロットを有している。データベース1(521−1)のエントリは、オブジェクトハッシュ526のスロットに関連付けられる。この関連付けの方法としては、様々な方法が考えられるが、例えば、データベース1(521−1)のエントリに固有な値(当該エントリが存在するアドレスや、当該エントリのデータのキー値など)を基に所定の関数(ハッシュ関数など)の計算を行なうことによりスロット1からスロットxまでのいずれかのスロットに関連付ける方法がある。また、ハッシュ関数を用いた場合、データベース1(521−1)の複数のエントリに対応するハッシュ値が同一になってしまう場合もあるが、これを解決するためには例えば、一つのハッシュ値に対して複数のスロットを割り当てて適宜使用する方法がある。
FIG. 13 is a schematic diagram showing a data structure representing an association between a database and a cache block. In this figure, database 1 (521-1, first storage unit) has m1 entries (information entries), and cache block group 522 (second storage unit) has t entries (related information entries). Have. Reference numeral 526 denotes an object hash, and this object hash 526 has x slots from
符号527はオブジェクト(関連オブジェクト)であり、このオブジェクト527は、一つのスロットから複数のキャッシュブロックへの関連付けを行なうための構造体である。オブジェクト527は、メモリ上のオブジェクト記憶部(関連オブジェクト記憶部)に記憶される。オブジェクトハッシュ526内の各スロットは、一つのオブジェクト527へのポインタを有している。また、一つのオブジェクト527は、一つのキャッシュブロックへのポインタと、次の一つのオブジェクト527へのポインタを有している。つまり、一つのスロットのポインタは、複数のオブジェクト527からなるリストの先頭を指し示す。このリストの終端のオブジェクト527においては、次のオブジェクトへのポインタは「ヌル(null)」にセットされている。また、このリストに属する各オブジェクト527は、それぞれ一つのキャッシュブロックを指し示している。つまり、一つのスロットから複数のキャッシュブロックへの関連付けが行なわれている。
図14は、オブジェクト527の内部データ構造を示す概略図である。図示するように、オブジェクト527は、世代番号527−1(関連性情報に対応する世代を表わす世代情報)と、キャッシュブロックポインタ527−2(関連性情報)と、次のオブジェクトポインタ527−3とを含んで構成される。世代番号527−1は、このオブジェクト527およびこのオブジェクト527から指し示されるキャッシュブロックの更新の世代を管理するためのものであり、関連性有効化処理部511(図11)や関連性無効化処理部512(図11)によって更新される。世代番号527−1の使い方の詳細は、後述する。キャッシュブロックポインタ527−2は、前述の通り一つのキャッシュブロックを指し示すためのポインタである。つまり、キャッシュブロックポインタ527−2は、データベースエントリとキャッシュブロックとの間の関連を表わす。次のオブジェクトポインタ527−3は、前述の通り、リンクリスト上の次のオブジェクト527を指し示すためのポインタである。
FIG. 14 is a schematic diagram showing an internal data structure of the
図15は、一つのキャッシュブロックの内部データ構造を示す概略図である。図示するように、キャッシュブロックは、世代番号522−1(関連情報エントリに対応する世代を表わす世代情報)と、有効/無効522−2と、検証情報522−3と、処理情報522−4とを含んで構成される。世代番号522−1は、キャッシュブロックの更新の世代を管理するためのものであり、前述の世代番号527−1とともに使用される。世代番号522−1の使い方の詳細は、後述する。有効/無効522−2は、現在、当該キャッシュブロックが有効な情報を有するエントリであるか否かを表わすフラグである。そのフラグの値は適宜設計により決めれば良いが、例えば「1」が有効を表わし、「0」が無効を表わすようにする。検証情報522−3は、例えば、当該キャッシュブロックに対応するキー値(複数のデータベースの複合キー値でも良い)を格納する。この検証情報522−3は、当該キャッシュブロックを参照する際のキー値の検証のために用いられる。処理情報522−4は、上記キー値に対応する情報であり、パケット転送装置が当該キー値に対応するパケットを転送する処理を行なう際に参照する情報である。この処理情報522−4は、複数のデータベース(521−1、521−2、・・・、521−n)に分散している情報を高速に参照できるように一箇所にまとめて保持するための領域である。 FIG. 15 is a schematic diagram showing the internal data structure of one cache block. As shown in the figure, the cache block includes a generation number 522-1 (generation information indicating the generation corresponding to the related information entry), valid / invalid 522-2, verification information 522-3, and processing information 522-4. It is comprised including. The generation number 522-1 is for managing the update generation of the cache block, and is used together with the above-mentioned generation number 527-1. Details of how to use the generation number 522-1 will be described later. The valid / invalid 522-2 is a flag indicating whether or not the cache block is an entry that currently has valid information. The value of the flag may be determined as appropriate by design. For example, “1” represents valid and “0” represents invalid. For example, the verification information 522-3 stores a key value (may be a composite key value of a plurality of databases) corresponding to the cache block. The verification information 522-3 is used for verifying the key value when referring to the cache block. The processing information 522-4 is information corresponding to the key value, and is information that is referred to when the packet transfer apparatus performs a process of transferring a packet corresponding to the key value. This processing information 522-4 is for holding information distributed in a plurality of databases (521-1, 521-2,..., 521-n) in one place so that the information can be referred to at high speed. It is an area.
次に、上で述べたデータ構造を用いた処理について、図16、図17、図18を参照しながら説明する。 Next, processing using the data structure described above will be described with reference to FIG. 16, FIG. 17, and FIG.
図16は、情報管理装置501の関連性有効化処理部511(図11)がデータベースのエントリに対応するキャッシュブロックについて、それら両者間を関連付けて登録する処理の手順を示すフローチャートである。つまり、依存関係を登録する処理の手順を示すフローチャートである。なおこの際、データベースのエントリから関連付ける先のキャッシュブロックについて、情報管理装置501は、検証情報522−3に適切なデータを格納し、処理情報522−4に適切なデータを格納し、有効/無効522−2のフラグが「有効」を表わすように設定し、世代番号522−1に適切な世代番号を格納する処理も適宜行なっている。ここで、世代番号は、例えば、一つのキャッシュブロックを有効にする都度、また無効にする都度、インクリメントしていくような数値を用いる。データベースを検索してキャッシュブロックに検証情報と処理情報を記録する処理の例は、図6(a)、(b)、図7のフローチャート(特に、ステップS132)に示した通りである。
FIG. 16 is a flowchart showing a procedure of processing in which the association validation processing unit 511 (FIG. 11) of the
図16のフローチャートに沿って、関連性有効化処理部511は、まず、ステップS701において、登録すべきデータベースのエントリに固有な値として、当該エントリのメモリ上のアドレス値を用いて、この固有値に基づくハッシュ関数の計算を行ない、得られたハッシュ値により、使用する特定のスロットを決定する(つまり、スロットを計算する)。次に、ステップS702において、関連性有効化処理部511は、依存関係を保持するための、つまりデータベースのエントリとキャッシュブロックとの関連付け情報を保持するための構造体であるオブジェクト527を一つ生成する。つまり、一つのオブジェクト527のためのメモリ上の領域を確保する。
According to the flowchart of FIG. 16, the relevance validation processing unit 511 first uses the address value on the memory of the entry as a value unique to the entry of the database to be registered in step S701. A hash function is calculated based on the obtained hash value, and a specific slot to be used is determined (that is, a slot is calculated). Next, in step S <b> 702, the relevance validation processing unit 511 generates one
次に、ステップS703において、関連性有効化処理部511は、関連付ける先のキャッシュブロックの世代番号522−1に格納されている世代番号の値を、上で生成したオブジェクト527の世代番号527−1の領域に格納する。これにより、これらオブジェクト527と対応するキャッシュブロックとは、同一の世代番号を保持することになる。次に、ステップS704において、関連性有効化処理部511は、ステップS702で生成したオブジェクト527を、ステップS701で計算されたスロットに挿入する。つまり、ステップS701で計算されたスロットが指し示す、複数のオブジェクト527からなるリンクリストの先頭又は最後に、ステップS702で生成したオブジェクト527を挿入する。これは、このリンクリスト上のオベジェクト527の次のオブジェクトポインタ527−3を更新することにより行なう。なお、当該スロットが指し示すリンクリストが元々ヌル(オブジェクトが一つもない)であった場合には、ステップS702で生成したオブジェクト527のみからなるリンクリストを当該スロットが指し示すようにすれば良い。そして、関連性有効化処理部は、ステップS702で生成したオブジェクト527のキャッシュブロックポインタ527−2に、該当するキャッシュブロックのアドレスを格納する。以上の一連の処理により、データベースのエントリと、対応するキャッシュブロックとの関連付けが登録される。
Next, in step S703, the relevancy validation processing unit 511 uses the generation number value stored in the generation number 522-1 of the cache block to be associated as the generation number 527-1 of the
情報管理装置501は、キャッシュブロックの検証情報522−3や処理情報522−4を生成するために使ったデータベースのエントリ、つまり当該キャッシュブロックを関連付けているエントリが変更されたり削除されたりした場合には、登録されている依存関係(関連付け情報)に基づいて、変更又は削除されたデータベースのエントリに関連する(対応する)キャッシュブロックを無効にする処理を行なう。
The
図17は、上記の、キャッシュブロックを無効にする処理の手順を示すフローチャートである。このフローチャートに沿って説明すると、関連性無効化処理部512(図11)は、ステップS711において、変更(又は削除)されたデータベースのエントリに固有な値(例えば、当該エントリのメモリ上のアドレス値)を基にハッシュ関数による計算を行ない、得られたハッシュ値に基づいてスロットを特定する(つまり、スロットを計算する)。ここで特定されるスロットは、図16のフローチャート(関連性有効化処理)のステップS701で決定されたスロットと同じになるはずである。 FIG. 17 is a flowchart showing a procedure of the above-described processing for invalidating a cache block. Describing along this flowchart, the relevance invalidation processing unit 512 (FIG. 11) determines a value (for example, an address value on the memory of the entry) unique to the changed (or deleted) database entry in step S711. ) Based on the hash function, and a slot is specified based on the obtained hash value (that is, the slot is calculated). The slot specified here should be the same as the slot determined in step S701 in the flowchart (relevance validation processing) in FIG.
次に、関連性無効化処理部512は、ステップS712において、ステップS711で特定されたスロットが指し示すオブジェクト527のリンクリストをたどり、連結されているすべてのオブジェクト527それぞれについて、キャッシュブロックポインタ527−2が指し示すキャッシュブロックを無効にする(つまり、当該キャッシュブロックの有効/無効522−2のフラグを「無効」を表わす値にセットする)。そして、当該キャッシュブロックの世代番号522−1を更新する(例えばインクリメントする)。そして、上記の特定されたスロットが指し示すオブジェクト527のリンクリストに含まれる全てのオブジェクトを回収する。ここで、オブジェクトを回収するとは、つまりそのオブジェクトの領域を解放し、当該特定されたスロットに付随するリンクリストへのポインタの値を「ヌル」にセットすることである。
Next, in step S712, the relevancy
上記の、関連性無効化処理部512による処理(ステップS711、S712)により、特定のデータベースエントリの変更に対応して、その変更されたエントリに固有の値から計算されたスロットに継っているすべてのオブジェクト527をたどって、対応するキャッシュブロックを無効にすることができた。しかしながら、データベースエントリとキャッシュとは多対多に対応しており、上記処理で無効にしたキャッシュブロックを他のデータベースエントリに対応するオブジェクト527が指したままの状態で残っていることがある。
As a result of the above-described processing by the relevance invalidation processing unit 512 (steps S711 and S712), in response to the change of a specific database entry, it is succeeded by a slot calculated from a value unique to the changed entry. Following all
このような状態が放置されると、回収されないオブジェクト527がメモリの領域を占めることにより、メモリ領域が枯渇してしまうという問題が生じる。また、上記のような状態が放置されると、他のデータベースエントリから、オブジェクト527を経由して、キャッシュブロックの有効/無効522−2の領域や検証情報522−3の領域を参照して初めてそのキャッシュブロックが無効であることがわかるため、ポインタをたどる処理が無駄になるという問題も生じる。
If such a state is left unattended, the
そこで、情報管理装置501のガーベジ収集処理部513(図11)は、所定のタイミングで(例えば周期的に)、オブジェクトハッシュ526のすべてのブロックを検査することにより、既に無効化されてしまったキャッシュブロックを指しているオブジェクト527(ガーベジ、garbage、ゴミデータ)を回収する処理を行なう。あるオブジェクト527がガーベジであるか否か、つまり既に削除されたキャッシュブロックを指すオブジェクト527であるか否かは、キャッシュブロック内の世代番号522−1とオブジェクト527内の世代番号527−1を比較することにより行なえる。両者の世代番号が異なっていれば、キャッシュブロックは既に無効化されているか、あるいは一旦無効化された後に他のデータのために再度有効化されている状態であるので、そのようなオブジェクト527はガーベジであるとして収集する。両者の世代番号が同じであれば、キャッシュブロックは有効な状態であるので、そのようなオブジェクト527を回収対象とはしない。
Therefore, the garbage collection processing unit 513 (FIG. 11) of the
図18は、ガーベジ収集処理部513が、無効となったキャッシュブロックをポイントしているオブジェクト527を回収する処理例を説明するための概略データ構造図である。図示する例では、データベース1(521−1)のエントリ2が変更される。この変更処理に付随して、関連性無効化処理部512(図11)が、エントリ2に固有な情報(当該エントリのメモリ上のアドレス)を基に、ハッシュ関数を用いて、スロットのインデックス値を計算する。そして、このインデックス値が指す場所のスロットを特定する(以上、図17のステップS711)。図示する例では、オブジェクトハッシュ526内のスロット3が特定されたスロットである。そして、関連性無効化処理部512は、スロット3に接続されているオブジェクト527のリストをたどって、オブジェクト(B)を削除(回収)するとともにこれに対応するキャッシュブロック2を無効にし、またオブジェクト(C)を削除(回収)するとともにこれに対応するキャッシュブロック1を無効にする。のとき、無効化されたキャッシュブロック2および1の世代番号は、それぞれ更新(例えば、インクリメント)される(以上、図17のステップS712)。
FIG. 18 is a schematic data structure diagram for explaining a processing example in which the garbage
既に述べているようにデータベースエントリとキャッシュブロックの依存関係(関連付け)は多対多であるため、キャッシュブロック2および1が無効になったときにも、この状態では、キャッシュブロック2を指し示すオブジェクト(A)は回収されないまま残ってしまっている。 As described above, since the dependency (association) between the database entry and the cache block is many-to-many, even when the cache blocks 2 and 1 become invalid, in this state, the object (pointing to the cache block 2 ( A) remains uncollected.
ここで、ガーベジ収集部513は、所定の周期で、オブジェクトハッシュ526に含まれるすべてのスロットから、それらスロットにつながるすべてのオブジェクト527を検査する。その検査の結果、キャッシュブロックの世代番号522−1とオブジェクトの世代番号527−1が一致しないようなオブジェクトをすべて回収する。図示する例では、ガーベジ収集部513がオブジェクト(A)を収集する。なお、オブジェクト(A)が収集される前にはスロット1に付随するポインタにはオブジェクト(A)へのポインタ値が格納されていたが、ガーベジ収集部513は、オブジェクト(A)を収集する際には、スロット1に付随するポインタにオブジェクト(A)の次のオブジェクトへのポインタの値を記録しなおす。上記のように、世代番号を用いた管理を行なうため、ガーベジ収集部513が走る前にキャッシュブロック1やキャッシュブロック2が再び有効な状態になっていても、正しく、不要なオブジェクトのみを回収することができる。
Here, the
なお、ガーベジ収集処理は、例えば、一定周期で実行するなど、適宜所定のタイミングで実行するようにすれば良いが、例えば、空きメモリ容量を監視する監視部を設けて、空きメモリ容量の監視結果に応じて(例えば、空きメモリ容量が所定の閾値を下回った場合などに)ガーベジ収集処理を実行するようにしても良い。また、例えば、監視部がCPU負荷を監視し、CPU負荷の低い時間帯にガーベジ収集処理を実行するようにしても良い。 The garbage collection process may be executed at a predetermined timing as appropriate, for example, at a predetermined cycle. For example, a monitoring unit for monitoring the free memory capacity is provided, and the monitoring result of the free memory capacity is provided. (For example, when the free memory capacity falls below a predetermined threshold), the garbage collection process may be executed. Further, for example, the monitoring unit may monitor the CPU load and execute the garbage collection process in a time zone when the CPU load is low.
また、上では、データベースエントリとキャッシュブロックとの関係が多対多の場合について説明したが、これが、多対1となるようなデータについても、本実施形態を有効に適用することができる。また、上では、データベースの個数がn個の場合について説明したが、nは1以上の整数であれば良い。つまり、データベースの個数が1であっても、本実施形態を有効に適用できる。また、各データベースのエントリ数は任意であり、また各データベースのエントリ数が可変であっても良い。また、キャッシュブロックのエントリ数も任意であり、またこれが可変であっても良い。 In the above, the case where the relationship between the database entry and the cache block is many-to-many has been described, but the present embodiment can also be effectively applied to data in which this is many-to-one. In the above description, the number of databases is n. However, n may be an integer of 1 or more. That is, even if the number of databases is 1, this embodiment can be applied effectively. The number of entries in each database is arbitrary, and the number of entries in each database may be variable. Also, the number of entries in the cache block is arbitrary, and this may be variable.
なお、上述した実施形態におけるパケット転送装置のパケットの転送処理機能全体あるいはその一部、パケット転送装置のカウンタ情報更新処理機能全体あるいはその一部、およびパケット転送装置のエージング処理機能全体あるいはその一部は、これらの機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。 Note that the entire packet transfer processing function or part of the packet transfer device in the above-described embodiment, the entire counter information update processing function or part of the packet transfer device, and the entire aging processing function or part of the packet transfer device. May be realized by recording a program for realizing these functions on a computer-readable recording medium, reading the program recorded on the recording medium into a computer system, and executing the program. Here, the “computer system” includes an OS and hardware such as peripheral devices.
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時刻の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時刻プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い The “computer-readable recording medium” refers to a storage device such as a flexible medium, a magneto-optical disk, a portable medium such as a ROM and a CD-ROM, and a hard disk incorporated in a computer system. Further, the “computer-readable recording medium” dynamically holds a program for a short time, like a communication line when transmitting a program via a network such as the Internet or a communication line such as a telephone line. It is also possible to include those that hold a program for a certain time, such as a volatile memory inside a computer system serving as a server or client in that case. The program may be a program for realizing a part of the functions described above, and may be a program capable of realizing the functions described above in combination with a program already recorded in a computer system.
1 : スイッチ装置(パケット転送装置)
2 : 制御カード装置
3 : 入出力ポート
3−1,3−2,3−3 : 入出力ラインカード装置
4−1,4−2,4−3 : フォワーディング処理装置
5−1,5−2,5−3 : パケット処理部
6 : スイッチ部
11 : フィールド抽出部
12 : インデックス計算部(キャッシュブロック特定部)
13 : 検証情報格納部
14 : 検証部
15 : データベース参照フォワーディング部
16 : キャッシュ参照フォワーディング部
17 : フォワーディング部
18−1 : 主キャッシュメンテナンス部
18−2 : 従キャッシュメンテナンス部
20 : 受信パケット
21 : 送信パケット
30−1,30−2,・・・,30−6 : 参照情報
60 : 処理部
200 : キャッシュ部
190−1 : 高速パケット情報受信部
190−2 : 高速パケット情報送信部
191−1 : 低速処理済パケット情報受信部
191−2 : 低速処理前パケット情報送信部
192−1 : 低速処理前パケット情報受信部
192−2 : 低速処理済パケット情報送信部
210−1,210−2,・・・,210−t : キャッシュブロック
310 : 高速パケット処理ブロック
320 : 低速パケット処理ブロック
521−1,521−2,・・・,521−n : データベース(記憶部)
1: Switch device (packet transfer device)
2: control card device 3: input / output ports 3-1, 3-2, 3-3: input / output line card devices 4-1, 4-2, 4-3: forwarding processing devices 5-1, 5-2 5-3: Packet processing unit 6: Switch unit 11: Field extraction unit 12: Index calculation unit (cache block specifying unit)
13: Verification information storage unit 14: Verification unit 15: Database reference forwarding unit 16: Cache reference forwarding unit 17: Forwarding unit 18-1: Main cache maintenance unit 18-2: Subordinate cache maintenance unit 20: Receive packet 21: Transmission packet 30-1, 30-2,..., 30-6: Reference information 60: Processing unit 200: Cache unit 190-1: High-speed packet information reception unit 190-2: High-speed packet information transmission unit 191-1: Low-speed processing Completed packet information receiving unit 191-2: Low-speed pre-processing packet information transmitting unit 192-1: Low-speed pre-processing packet information receiving unit 192-2: Low-speed processed packet information transmitting units 210-1, 210-2,. 210-t: Cache block 310: High-speed packet processing block 320: Low-speed packet processing blocks 521-1, 521-2,..., 521-n: Database (storage unit)
Claims (3)
前記高速パケット処理ブロックは、
入力ポートからパケットを受信する高速パケット情報受信部と、
前記パケットよりフォワーディングに関連するフィールドを抽出するフィールド抽出部と、
前記フォワーディングに関連するフィールドに対応する参照情報を含む処理情報をまとめて記憶するキャッシュブロックを複数備えたキャッシュ部と、
前記フィールド抽出部が抽出した前記フォワーディングに関連するフィールドに基づいて前記キャッシュブロックを特定するキャッシュブロック特定部と、
前記キャッシュブロック特定部で特定された前記キャッシュブロックに、前記参照情報が存在するか否か判断する検証部と、
前記検証部で前記参照情報が存在すると判断された場合、特定された前記キャッシュブロックよりパケットの転送処理に関する前記処理情報を読み出し、読み出した当該処理情報に基づいて前記高速パケット情報受信部より受信したパケットのフォワーディング処理を行うキャッシュ参照フォワーディング部と、
前記検証部で前記参照情報が存在しないと判断された場合に、前記高速パケット情報受信部より受信したパケットを前記低速パケット処理ブロックに転送する低速処理前パケット情報送信部と、を有し、
前記低速パケット処理ブロックは、
前記参照情報を記憶する情報エントリを複数個備えたデータベース部と、
前記フォワーディングに関連するフィールドに基づいて前記低速処理前パケット情報送信部により送信されたパケットに対応する前記参照情報を前記データベース部の前記情報エントリより読み出し、読み出した当該参照情報に基づいて前記送信されたパケットに転送情報を付与し、低速処理済パケット情報送信部により前記高速パケット処理ブロックに前記パケットを転送するデータベース参照フォワーディング部と、
前記参照情報を前記処理情報としてまとめて前記キャッシュブロック特定部で特定した前記キャッシュブロックに記憶させるため前記キャッシュブロックの確認ならびに更新をキャッシュブロックのメンテナンス操作として実行するためのキャッシュメンテナンス情報を作成し、前記高速パケット処理ブロックに送信する主キャッシュメンテナンス部と、を有し、
更に前記高速パケット処理ブロックは、
前記データベース参照フォワーディング部により転送されたパケットを受信する低速処理済パケット情報受信部と、
前記主キャッシュメンテナンス部により送信されたキャッシュメンテナンス情報を受信し、当該受信したキャッシュメンテナンス情報を元に前記キャッシュブロックに対する確認ならびに更新をメンテナンス操作として実行する従キャッシュメンテナンス部と、
前記キャッシュ参照フォワーディング部及び前記データベース参照フォワーディング部より出力されたパケットを出力ポートに送信する高速パケット情報送信部と、を有することを特徴とするパケット転送装置。 A packet transfer apparatus comprising a high-speed packet processing block and a low-speed packet processing block, each processing block being separately mounted,
The high-speed packet processing block includes:
A high-speed packet data receiver for receiving packets from an input port,
A field extractor for extracting fields associated with the packet by riffs Owadingu,
A cache unit including a plurality of cache blocks that collectively stores processing information including references information that corresponds to the field associated with the forwarding,
A cache block identification unit that identifies the cache block based on a field related to the forwarding extracted by the field extraction unit;
A verification unit that determines whether or not the reference information exists in the cache block identified by the cache block identification unit;
Wherein when said reference information by the verification unit is judged to be present, reading the process information for the transfer processing of the packet from the cache block is a specific, read the process received from the high-speed packet data receiver based on the information A cache reference forwarding unit that performs forwarding processing of the received packet,
Wherein if the previous SL reference information verification unit are judged to be absent, anda slow processing before the packet information transmitting unit that transfers the received packet to the low-speed packet processing block from the high-speed packet data receiver,
The low-speed packet processing block is:
A database unit provided with a plurality of information entries for storing the reference information,
The reference information corresponding to the packet transmitted by the low-speed pre-processing packet information transmission unit based on the field related to the forwarding is read from the information entry of the database unit, and is transmitted based on the read reference information. A database reference forwarding unit that assigns transfer information to the received packet, and transfers the packet to the high-speed packet processing block by a low-speed processed packet information transmission unit ;
Collectively the reference information as the processing information to create a cache maintenance information to perform a maintenance operation confirmation and cash block updates the cache block for storing in the cache block specified by the cache block specified portion, A main cache maintenance unit for transmitting to the high-speed packet processing block ;
Further, the high-speed packet processing block includes:
A low-speed processed packet information receiving unit for receiving a packet transferred by the database reference forwarding unit;
A secondary cache maintenance unit that receives the cache maintenance information transmitted by the primary cache maintenance unit, and executes confirmation and update for the cache block as a maintenance operation based on the received cache maintenance information;
A packet transfer apparatus comprising: a high-speed packet information transmission unit configured to transmit a packet output from the cache reference forwarding unit and the database reference forwarding unit to an output port .
前記キャッシュ部は、前記キャッシュ参照フォワーディング部がそれぞれの前記キャッシュブロックへアクセスした回数を表す第二の統計情報を記憶し、
前記従キャッシュメンテナンス部は、前記キャッシュ部より前記キャッシュブロックの前記第二の統計情報を読み取り当該読み取ったキャッシュブロックの参照情報とともに前記主キャッシュメンテナンス部に送信し、
前記主キャッシュメンテナンス部は、前記従キャッシュメンテナンス部から送信された参照情報に相当する情報エントリの前記第一の統計情報を前記データベース部より読み取り、当該第一の統計情報に前記従キャッシュメンテナンス部から送信された前記第二の統計情報を加算するとともに、前記従キャッシュメンテナンス部に前記第二の統計情報を削除する指示を送信することを特徴とする請求項1に記載のパケット転送装置。 The database unit stores first statistical information indicating the number of times the database reference forwarding unit has accessed each of the information entries;
The cache unit stores second statistical information indicating the number of times the cache reference forwarding unit has accessed each cache block;
The secondary cache maintenance unit reads the second statistical information of the cache block from the cache unit and transmits the second statistical information with the reference information of the read cache block to the main cache maintenance unit,
The primary cache maintenance unit reads the first statistical information of the information entry corresponding to the reference information transmitted from the secondary cache maintenance unit from the database unit, and reads the first statistical information from the secondary cache maintenance unit. 2. The packet transfer apparatus according to claim 1, wherein the second statistical information transmitted is added, and an instruction to delete the second statistical information is transmitted to the secondary cache maintenance unit .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009228975A JP5324380B2 (en) | 2009-09-30 | 2009-09-30 | Packet transfer device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009228975A JP5324380B2 (en) | 2009-09-30 | 2009-09-30 | Packet transfer device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011077955A JP2011077955A (en) | 2011-04-14 |
JP5324380B2 true JP5324380B2 (en) | 2013-10-23 |
Family
ID=44021410
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009228975A Expired - Fee Related JP5324380B2 (en) | 2009-09-30 | 2009-09-30 | Packet transfer device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5324380B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6408427B2 (en) * | 2015-05-21 | 2018-10-17 | Necプラットフォームズ株式会社 | COMMUNICATION DEVICE, PACKET TRANSFER METHOD, AND PACKET TRANSFER PROGRAM |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3957570B2 (en) * | 2002-06-17 | 2007-08-15 | 日本電気株式会社 | Router device |
JP2009017439A (en) * | 2007-07-09 | 2009-01-22 | Sii Network Systems Kk | Packet transfer device and method |
-
2009
- 2009-09-30 JP JP2009228975A patent/JP5324380B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2011077955A (en) | 2011-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3935880B2 (en) | Hybrid search memory for network processors and computer systems | |
US11811660B2 (en) | Flow classification apparatus, methods, and systems | |
US8515965B2 (en) | Concurrent linked-list traversal for real-time hash processing in multi-core, multi-thread network processors | |
JP6217839B2 (en) | Packet processing apparatus, packet processing method and program | |
JP2005513895A5 (en) | ||
US6993031B2 (en) | Cache table management device for router and program recording medium thereof | |
CN109921996A (en) | A kind of virtual flow stream searching method of high performance OpenFlow | |
US7099324B2 (en) | System and method for processing packets | |
CN104811493B (en) | The virtual machine image storage system and read-write requests processing method of a kind of network aware | |
US10616101B1 (en) | Forwarding element with flow learning circuit in its data plane | |
US20080095153A1 (en) | Apparatus and computer product for collecting packet information | |
JP2004172917A (en) | Packet retrieving device, packet process retrieving method, and program | |
US20070168377A1 (en) | Method and apparatus for classifying Internet Protocol data packets | |
US9152564B2 (en) | Early cache eviction in a multi-flow network processor architecture | |
CN105407096B (en) | Message data detection method based on flow management | |
US20050270983A1 (en) | Method and apparatus to manage exceptions in network processors | |
CN102438020A (en) | Method and equipment for distributing contents in content distribution network, and network system | |
CN108134775A (en) | A kind of data processing method and equipment | |
JP2000181843A (en) | Information repeater and storage medium | |
JP2009017439A (en) | Packet transfer device and method | |
CN105516016B (en) | A kind of packet filtering system and packet filtering method based on stream using Tilera multinuclears accelerator card | |
JP5324380B2 (en) | Packet transfer device | |
CN105426126B (en) | The construction method and device of cloud storage client multichannel constant rate of speed IO cachings | |
JP6266445B2 (en) | Packet relay apparatus and packet relay method | |
JP2009017440A (en) | Information management device, information management method, packet transfer device, packet transfer method, and computer program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120711 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130415 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130423 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130620 |
|
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: 20130709 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130718 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5324380 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |