JPH10222535A - Data retrieving circuit - Google Patents

Data retrieving circuit

Info

Publication number
JPH10222535A
JPH10222535A JP9041441A JP4144197A JPH10222535A JP H10222535 A JPH10222535 A JP H10222535A JP 9041441 A JP9041441 A JP 9041441A JP 4144197 A JP4144197 A JP 4144197A JP H10222535 A JPH10222535 A JP H10222535A
Authority
JP
Japan
Prior art keywords
data
register
address
pointer
search
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.)
Granted
Application number
JP9041441A
Other languages
Japanese (ja)
Other versions
JP3558151B2 (en
Inventor
Toshiaki Miyazaki
敏明 宮崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP04144197A priority Critical patent/JP3558151B2/en
Publication of JPH10222535A publication Critical patent/JPH10222535A/en
Application granted granted Critical
Publication of JP3558151B2 publication Critical patent/JP3558151B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To accelerate retrieval processing. SOLUTION: In a data retrieving circuit which retrieves a coinciding IP (internet protocol) from a routing table that is preliminarily stored in memory circuits 1 to 4 with 'the opposite IP address' which is externally inputted as a key and reads information that corresponds to the retrieved IP address, when the coinciding IP address does not exist in a previous retrieval data group that is acquired by a previous retrieval, a pointer that designates a different data group to be retrieved next is arranged in the previous data group.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、外部から入力され
た項目をキーとして、データ記憶手段に予め格納した複
数のデータ群からなるデータテーブルの内から一致する
項目を含むデータ群を検索し、該検索したデータ群の中
の特定のデータを読み出すデータ検索回路に係り、特に
インターネットプロトコル(IP)のためのルーティン
グ処理などで用いられるベストマッチ処理を高速に行う
ような回路に好適なデータ検索回路に関するものであ
る。
[0001] The present invention relates to a method of searching for a data group including a matching item from a data table including a plurality of data groups stored in advance in data storage means, using an item input from the outside as a key. The present invention relates to a data search circuit for reading specific data from a searched data group, and more particularly to a data search circuit suitable for a circuit that performs high-speed best match processing used in routing processing for the Internet Protocol (IP). It is about.

【0002】[0002]

【従来の技術】複数の入出力ポートをもつIPルーティ
ング処理装置(ルータ)を用いてIPルーティング処理
を行うには、入力ポートに到着したパケットのヘッダ情
報から32ビットの「相手IPアドレス」を検出し、そ
の「相手IPアドレス」に対応した出力ポートにそのパ
ケットを送出する必要がある。
2. Description of the Related Art To perform an IP routing process using an IP routing processing device (router) having a plurality of input / output ports, a 32-bit "counterpart IP address" is detected from header information of a packet arriving at an input port. Then, it is necessary to send the packet to an output port corresponding to the “other party IP address”.

【0003】このとき、どの出力ポートにパケットを送
出するかを決定する必要があるが、これは、ルータ内に
あるルーティングテーブルを「相手IPアドレス」をキ
ーとして検索し、一致したデータ群に設定されている出
力ポートを選択することによって行う。
At this time, it is necessary to determine to which output port the packet is to be transmitted. This is done by searching a routing table in the router using the "partner IP address" as a key, and setting a matching data group. This is done by selecting the output port that is being used.

【0004】この検索処理には、ベストマッチ方式が採
用されている。このベストマッチ処理は、まず、ルーテ
ィングテーブル内のIPアドレスと、そのIPアドレス
ごとに一対一対応で別途用意されているネットマスク情
報により「相手IPアドレス」の一部(例えば下位)の
ビットをマッチングの対象から除外した内容(マスキン
グ処理した内容)とを比較処理する。この際、複数候補
がマッチしたときは、マスクの長さ(ビット幅)が最も
短いものを最優先候補として採用する。
[0004] The search process employs a best match method. In this best match process, first, a part (for example, lower) bit of the “partner IP address” is matched with the IP address in the routing table and the netmask information separately prepared for each IP address on a one-to-one basis. Is compared with the contents excluded from the target (the contents subjected to the masking processing). At this time, when a plurality of candidates match, the one with the shortest mask length (bit width) is adopted as the highest priority candidate.

【0005】[0005]

【発明が解決しようとする課題】ところが、このベスト
マッチ処理は、ルーティング処理の主要部分であるにも
かかわらず、従来ではCPUを使用してソフトウエアで
処理していたため、ルータ自体のスループットを向上さ
せる上で問題であった。すなわち、従来では、前回の検
索で得た先のデータ群に一致するIPアドレスがなかっ
たとき、次に検索すべき別のデータ群を指定するポイン
タ(次アドレス)を、ソフトウエア計算により得る必要
があり、時間がかかっていた。
However, although this best match process is a main part of the routing process, it has conventionally been processed by software using a CPU, so that the throughput of the router itself is improved. It was a problem in letting me do that. That is, conventionally, when there is no IP address that matches the previous data group obtained in the previous search, it is necessary to obtain a pointer (next address) specifying another data group to be searched next by software calculation. There was a long time.

【0006】本発明の目的は、上記したベストマッチ処
理をはじめ、検索キーの一部を1回の検索ごとに別個の
情報でマスクする必要のあるようなデータ検索処理を高
速に行うことができるようにしたデータ検索回路を提供
することである。
An object of the present invention is to perform high-speed data search processing such as the above-described best match processing, in which a part of a search key needs to be masked with separate information for each search. An object of the present invention is to provide a data search circuit as described above.

【0007】[0007]

【課題を解決するための手段】第1の発明のデータ検索
回路は、外部から入力された項目をキーとして、データ
記憶手段に予め格納した複数のデータ群からなるデータ
テーブルの内から一致する項目を含むデータ群を検索
し、該検索したデータ群の中の特定のデータを読み出す
データ検索回路において、先の検索で得た先のデータ群
に一致する項目がなかったとき、次に検索すべき別のデ
ータ群を指定するポインタを、前記先のデータ群の内に
持たせて構成した。
According to a first aspect of the present invention, there is provided a data retrieving circuit which uses an item input from the outside as a key to select a matching item from a data table composed of a plurality of data groups stored in advance in data storage means. In a data search circuit that searches for a data group that includes, and reads out specific data from the searched data group, if there is no item that matches the previous data group obtained in the previous search, the next search should be performed. A pointer designating another data group is provided in the preceding data group.

【0008】第2の発明のデータ検索回路は、第1の発
明において、前記データテーブル内の個々のデータ群の
前記ポインタを、前記個々のデータ群が2分木、線形、
その他の関係で関連付けられるように設定した。
The data search circuit according to a second aspect of the present invention is the data search circuit according to the first aspect, wherein the pointer of each data group in the data table is a binary tree, a linear data,
It was set to be related in other relations.

【0009】第3の発明のデータ検索回路は、マスクデ
ータ、IPデータ、第1ポインタ、第2ポインタ、およ
び情報データの組を1つのデータ群とし、複数の該デー
タ群からなるデータテーブルが格納されたデータ記憶手
段(1〜4)と、入力した「相手IPアドレス」を一時
的に保持する第1レジスタ(6)と、前記データ記憶手
段(1〜4)において現在アクセスしているデータ群を
指示するアドレスを保持する第2のレジスタ(5)と、
前記データ記憶手段(1〜4)における現在アクセスさ
れているデータ群の前記IPデータ、前記第1ポイン
タ、前記第2ポインタ、および情報データをそれぞれ一
時的に保持する第3〜第6のレジスタ(8〜11)と、
前記第1のレジスタ(6)から前記「相手IPアドレ
ス」を受けて前記アクセスされているデータ群のマスク
データに応じてマスク処理を行うマスク処理器(7)
と、該マスク処理器(7)から出力されるマスク処理さ
れた前記「相手IPアドレス」と前記第3のレジスタ
(8)の内容との大小および一致関係を判定する比較器
(12)と、該比較器(12)の比較により一方が他方
より大きいと判定した場合に前記第4のレジスタ(9)
の内容を、小さいと判定した場合に前記第5のレジスタ
(10)の内容を、前記第2のレジスタ(5)に出力し
て、前記データ記憶手段(1〜4)をアクセスするアド
レスを更新するセレクタ(13)と、を有し、前記比較
器(12)の比較結果が一致と判定された場合に前記第
6のレジスタ(11)の内容を検索データとして出力す
るように構成した。
A data search circuit according to a third aspect of the present invention uses a set of mask data, IP data, a first pointer, a second pointer, and information data as one data group, and stores a data table including a plurality of the data groups. Data storage means (1 to 4), a first register (6) for temporarily holding the input "partner IP address", and a data group currently accessed in the data storage means (1 to 4). A second register (5) holding an address indicating
Third to sixth registers (for temporarily storing the IP data, the first pointer, the second pointer, and the information data of the currently accessed data group in the data storage means (1 to 4), respectively) 8-11),
A mask processor (7) for receiving the "partner IP address" from the first register (6) and performing a mask process in accordance with the mask data of the accessed data group
A comparator (12) for judging a magnitude and a matching relationship between the masked “partner IP address” output from the mask processor (7) and the content of the third register (8); The fourth register (9) when it is determined by comparison of the comparator (12) that one is greater than the other;
When it is determined that the contents of the data register are small, the contents of the fifth register (10) are output to the second register (5), and the address for accessing the data storage means (1 to 4) is updated. And a selector (13) that outputs the content of the sixth register (11) as search data when the comparison result of the comparator (12) is determined to be coincident.

【0010】[0010]

【発明の実施の形態】図1は本発明の1つの実施の形態
のデータ検索回路の構成を示す図であり、IPのルーテ
ィング処理におけるベストマッチ処理を行うための回路
である。1〜4はSRAMで構成され、検索対象がテー
ブル(ルーティングテーブル)として格納されたメモリ
回路(データ記憶手段)であり、これらは全てアドレス
用のレジスタ5によってアドレッシングされる。
FIG. 1 is a diagram showing a configuration of a data search circuit according to one embodiment of the present invention, which is a circuit for performing a best match process in an IP routing process. Reference numerals 1 to 4 denote SRAM circuits, each of which is a memory circuit (data storage means) in which a search target is stored as a table (routing table), all of which are addressed by an address register 5.

【0011】まず、メモリ回路1には入力する「相手I
Pアドレス」用のマスクデータが、メモリ回路2には入
力する「相手IPアドレス」(ただし、マスク処理済
み)と比較されるIPアドレスが、メモリ回路3にはそ
の比較の結果が不一致だったときに次に検索すべきデー
タ群のアドレスを示すポインタが、メモリ回路4には比
較の結果が一致したとき読み出す情報(例えば、当該パ
ケットを次に送るべきルータのIPアドレス等)が、そ
れぞれ格納されている。
First, the "partner I"
When the mask data for the "P address" is compared with the "other party IP address" (but masked) input to the memory circuit 2, and the result of the comparison does not match in the memory circuit 3. A pointer indicating the address of a data group to be searched next is stored in the memory circuit 4, and information to be read when the comparison result matches (for example, the IP address of the router to which the packet is to be sent next) is stored. ing.

【0012】これらのマスクデータ、IPアドレス、ポ
インタ、および情報は、その1組で1つのアドレスをも
つデータ群を構成し、該データ群の複数個が個々の異な
ったアドレスで、メモリ回路1〜4にルーティングテー
ブルとして格納されている。なお、メモリ回路3に格納
されたポインタは、「left」と「right 」という2つの
アドレスデータである。
The mask data, the IP address, the pointer, and the information constitute a data group having one address as a set, and a plurality of the data groups are individually different addresses, and the memory circuits 1 to 4 have different addresses. 4 is stored as a routing table. The pointers stored in the memory circuit 3 are two address data "left" and "right".

【0013】6は入力する「相手IPアドレス」を格納
するレジスタ、7はその「相手IPアドレス」の特定の
ビットに対してメモリ回路1から読み出したマスクデー
タでマスク処理を行うマスク処理器、8はメモリ回路2
から読み出した「検索IPアドレス」を格納するレジス
タ、9はメモリ回路3から読み出したポインタ「left」
を格納するレジスタ、10はメモリ回路3から読み出し
たポインタ「right 」を格納するレジスタ、11はメモ
リ回路4から読み出した情報を格納するレジスタであ
る。
Reference numeral 6 denotes a register for storing an input “partner IP address”; 7, a mask processor for performing a mask process on a specific bit of the “partner IP address” with mask data read from the memory circuit 1; Is the memory circuit 2
A register for storing the “search IP address” read from the memory circuit 9 is a pointer “left” read from the memory circuit 3
Is a register for storing the pointer "right" read from the memory circuit 3, and 11 is a register for storing information read from the memory circuit 4.

【0014】12はマスク処理器7でマスク処理した
「相手IPアドレス」とレジスタ8に格納した「検索I
Pアドレス」を比較する比較器であって、一致/不一致
を判断し、さらに不一致の場合には入力された2つのデ
ータを0以上の整数とみなし、「相手IPアドレス」が
「検索IPアドレス」よりも大きいとき「0」を、その
反対のとき「1」を出力する。
Reference numeral 12 denotes the “other party IP address” masked by the mask processor 7 and the “search I” stored in the register 8.
A comparator for comparing "P address" with each other, and determines whether or not the two addresses match. If the two data do not match, the input data is regarded as an integer of 0 or more. If it is larger than "0", it outputs "0";

【0015】13は比較器12の比較結果が不一致と
き、その不一致内容によってレジスタ9のデータ又はレ
ジスタ10のデータを選択して出力するセレクタ、14
は初期に「相手IPアドレス」に応じて入力する「入力
先頭アドレス」を選択し、その後にセレクタ13の出力
データを選択するセレクタ、15はセレクタ13から出
力するポインタが「アドレス0番地」を示すとき「一致
データなし」の信号を出力する終了判断器である。
A selector 13 selects and outputs the data of the register 9 or the data of the register 10 according to the content of the mismatch when the comparison result of the comparator 12 does not match.
Is a selector that initially selects an "input head address" to be input according to the "other party IP address", and then selects the output data of the selector 13. Reference numeral 15 denotes a pointer output from the selector 13 indicating "address 0". At this time, it is an end judging unit that outputs a signal of "no match data".

【0016】次に動作を説明する。まず、レジスタ6に
「相手IPアドレス」を格納し、またその「相手IPア
ドレス」に対応した「入力先頭アドレス」をレジスタ1
4に、セレクタ14を介して格納する。このセレクタ1
4は、レジスタ5への格納が完了した後に、次の処理の
ためにセレクタ13からのデータ(ポインタ)を入力す
るように設定される。
Next, the operation will be described. First, the “destination IP address” is stored in the register 6, and the “input head address” corresponding to the “destination IP address” is stored in the register 1.
4 via the selector 14. This selector 1
4 is set to input data (pointer) from the selector 13 for the next processing after the storage in the register 5 is completed.

【0017】次に、レジスタ5に格納された「入力先頭
アドレス」によって、メモリ回路1〜4のマスクデー
タ、IPアドレス、ポインタ「left,right 」、情報が
読み出され、それぞれマスク処理器7、レジスタ8、
9、10、11に格納される。ここで、レジスタ6の
「相手IPアドレス」は、マスク処理器7においてマス
ク処理され、比較器12の一方の入力となる。
Next, the mask data, the IP address, the pointer "left, right", and the information of the memory circuits 1 to 4 are read out by the "input head address" stored in the register 5, and the mask processing unit 7, Register 8,
9, 10, and 11. Here, the “partner IP address” of the register 6 is subjected to mask processing in the mask processor 7 and becomes one input of the comparator 12.

【0018】この比較器12では、マスク処理器7から
出力する「相手IPアドレス」とジスタ8から出力する
「検索IPアドレス」とを比較し、両者が一致するとき
は、レジスタ11に対して、そこに格納された情報を検
索結果として出力するよう指示する。
The comparator 12 compares the “partner IP address” output from the mask processor 7 with the “search IP address” output from the register 8. It instructs to output the information stored there as a search result.

【0019】しかし、「相手IPアドレス」が「検索I
Pアドレス」よりも大きいときはセレクタ13でレジス
タ9を選択し、そこに格納されているポインタ「left」
をセレクタ14を介してレジスタ5に格納して、そのポ
インタ「left」の内容でメモリ回路1〜4に対して新た
なアドレッシングを行い再検索する。また、逆に、「相
手IPアドレス」が「検索IPアドレス」よりも小さい
ときはセレクタ13でレジスタ10を選択し、そこに格
納されているポインタ「right 」をセレクタ14を介し
てレジスタ5に格納して、そのポインタ「right 」の内
容で新たなアドレッシングを行い再検索する。
However, if the "other party IP address" is "search I
When it is larger than the "P address", the selector 9 selects the register 9 and the pointer "left" stored therein is selected.
Is stored in the register 5 via the selector 14, and new addressing is performed on the memory circuits 1 to 4 with the content of the pointer "left" to perform a search again. Conversely, when the “partner IP address” is smaller than the “search IP address”, the selector 13 selects the register 10 and stores the pointer “right” stored therein in the register 5 via the selector 14. Then, new addressing is performed using the content of the pointer "right" and the search is performed again.

【0020】このようにして、比較器12から一致信号
がでるまで、比較処理と検索が繰り返される。しかし、
セレクタ13から出るポインタ「left」、「right 」が
「アドレス0番地」を示したときには、終了判断器15
により、「一致データなし」の信号を外部に出力し、処
理を中断する。
In this way, the comparison process and the search are repeated until the comparator 12 outputs a coincidence signal. But,
When the pointers “left” and “right” coming out of the selector 13 indicate “address 0”, the end determiner 15
As a result, the signal of "no matching data" is output to the outside, and the processing is interrupted.

【0021】以上から、ポインタが予めメモリ回路3に
登録されているので、従来のようにソフトウエア計算等
によりポインタを生成する手段が必要がなく、検索処理
の速度を高速化できる。また、ハードウエア的にポイン
タ生成回路を設けると、通常では加算器等のように全体
の処理速度を低下させる回路を必要とするが、それも必
要ないため処理速度が更に向上する。
As described above, since the pointer is registered in the memory circuit 3 in advance, there is no need for a means for generating the pointer by software calculation or the like as in the prior art, and the speed of the search process can be increased. Further, when a pointer generation circuit is provided in hardware, a circuit for lowering the entire processing speed such as an adder is normally required, but the processing speed is further improved since such a circuit is not required.

【0022】図2は、図1におけるメモリ回路1〜4へ
のデータの格納の一形式を示した図である。これは、図
2の上側に示したような2分木方式でデータを格納する
際のデータ格納形式を模式的に表したものである。Aか
らIまで9個のデータを図2の下側のようにテーブルに
格納することにより、図1の回路での2分木探索処理が
実現できる。この際、マスクの小さいものからA,B,
C,....,Iの順に格納しておくと、その順に比較
処理が実効されるため、図1の回路を使用してベストマ
ッチ処理が実現できる。
FIG. 2 is a diagram showing one form of storing data in the memory circuits 1 to 4 in FIG. This is a schematic representation of a data storage format when storing data in a binary tree format as shown in the upper part of FIG. By storing nine data from A to I in a table as shown in the lower part of FIG. 2, the binary tree search processing in the circuit of FIG. 1 can be realized. At this time, A, B,
C,. . . . , I are stored in this order, the comparison process is performed in that order, so that the best match process can be realized using the circuit of FIG.

【0023】図3は、図1のメモリ回路1〜4へのデー
タの格納の別の形式を示した図である。図3の右側に示
すように「left」,「right 」に同じ値のポインタを格
納すると、左側に示したようなデータ検索の構造とな
り、これを図1の回路に適用すると、AからIに向かっ
て順次線形探索を行うことができる。
FIG. 3 is a diagram showing another format of storing data in the memory circuits 1 to 4 of FIG. When the pointers of the same value are stored in "left" and "right" as shown on the right side of FIG. 3, the data retrieval structure shown on the left side is obtained. When this is applied to the circuit of FIG. A linear search can be performed sequentially.

【0024】以上のように、本実施の形態では、メモリ
回路3に格納するポインタの値を適宜設定/変更するこ
とにより、2分木方式の探索、あるいは線形方式の探索
が実現でき、その他の方式の探索も可能となり、検索回
路を変更する必要がない。
As described above, in this embodiment, a binary tree search or a linear search can be realized by appropriately setting / changing the value of the pointer stored in the memory circuit 3. It is also possible to search for a method, and there is no need to change the search circuit.

【0025】[0025]

【発明の効果】以上から本発明によれば、先の検索で得
た先のデータ群に一致する項目がなかったとき次に検索
すべき別のデータ群を指定するポインタを、前記先のデ
ータ群の内に持たせたので、次回の検索のためのポイン
タ計算を行うことなくそれを参照することで次の検索用
のポインタを得ることができ、IPルーティング処理の
ベストマッチ処理に適用しても、その処理を高速化で
き、スループットを向上させることができる。
As described above, according to the present invention, when there is no item corresponding to the previous data group obtained in the previous search, the pointer for specifying another data group to be searched next is set to the previous data group. Since it is held in the group, the pointer for the next search can be obtained by referring to it without calculating the pointer for the next search, and it is applied to the best match processing of the IP routing processing. However, the processing speed can be increased, and the throughput can be improved.

【0026】また、データ記憶手段に格納するポインタ
のデータ構造を変更するのみでデータ検索順序を実質的
に変更できるため、回路を一旦構成した後であってもそ
の回路を変更することなく、データの特性に合った方式
の検索を容易に実現できるという利点がある。
Further, since the data search order can be substantially changed only by changing the data structure of the pointer stored in the data storage means, even if the circuit is once constructed, the data can be changed without changing the circuit. There is an advantage that it is possible to easily realize a search of a method that matches the characteristics of the above.

【0027】さらに、レジスタ等の単純な回路構成とデ
ータ記憶手段を用いるのみで、ベストマッチ処理をはじ
め、検索キーの一部を1回の検索ごとに別個の情報でマ
スクする必要のあるデータ検索処理を実行するデータ検
索回路が実現できるという利点もある。
Further, only by using a simple circuit configuration such as a register and data storage means, a data search which requires a part of a search key to be masked with separate information for each search including a best match process. There is also an advantage that a data search circuit that executes processing can be realized.

【図面の簡単な説明】[Brief description of the drawings]

【図1】 本発明の1つの実施の形態のデータ検索回路
の構成を示す機能ブロック図である。
FIG. 1 is a functional block diagram showing a configuration of a data search circuit according to one embodiment of the present invention.

【図2】 2分木方式の検索を実現するときのデータテ
ーブルの構成の説明図である。
FIG. 2 is an explanatory diagram of the configuration of a data table when implementing a binary tree search.

【図3】 線形方式の検索を実現するときのデータテー
ブルの構成の説明図である。
FIG. 3 is an explanatory diagram of a configuration of a data table when realizing a linear search.

Claims (3)

【特許請求の範囲】[Claims] 【請求項1】外部から入力された項目をキーとして、デ
ータ記憶手段に予め格納した複数のデータ群からなるデ
ータテーブルの内から一致する項目を含むデータ群を検
索し、該検索したデータ群の中の特定のデータを読み出
すデータ検索回路において、 先の検索で得た先のデータ群に一致する項目がなかった
とき、次に検索すべき別のデータ群を指定するポインタ
を、前記先のデータ群の内に持たせたことを特徴とする
データ検索回路。
1. A data group including a matching item is searched from a data table composed of a plurality of data groups stored in advance in a data storage means, using an item input from the outside as a key, and the data group of the searched data group is searched. In a data search circuit for reading out specific data in the data, when there is no item that matches the previous data group obtained in the previous search, a pointer designating another data group to be searched next is set to the previous data. A data search circuit characterized by being provided in a group.
【請求項2】請求項1のデータ検索回路において、前記
データテーブル内の個々のデータ群の前記ポインタを、
前記個々のデータ群が2分木、線形、その他の関係で関
連付けられるように設定したことを特徴とするデータ検
索回路。
2. The data search circuit according to claim 1, wherein the pointer of each data group in the data table is
A data search circuit, wherein the individual data groups are set so as to be associated in a binary tree, linear, or other relationship.
【請求項3】マスクデータ、IPデータ、第1ポイン
タ、第2ポインタ、および情報データの組を1つのデー
タ群とし、複数の該データ群からなるデータテーブルが
格納されたデータ記憶手段(1〜4)と、 入力した「相手IPアドレス」を一時的に保持する第1
レジスタ(6)と、 前記データ記憶手段(1〜4)において現在アクセスし
ているデータ群を指示するアドレスを保持する第2のレ
ジスタ(5)と、 前記データ記憶手段(1〜4)における現在アクセスさ
れているデータ群の前記IPデータ、前記第1ポイン
タ、前記第2ポインタ、および情報データをそれぞれ一
時的に保持する第3〜第6のレジスタ(8〜11)と、 前記第1のレジスタ(6)から前記「相手IPアドレ
ス」を受けて前記アクセスされているデータ群のマスク
データに応じてマスク処理を行うマスク処理器(7)
と、 該マスク処理器(7)から出力されるマスク処理された
前記「相手IPアドレス」と前記第3のレジスタ(8)
の内容との大小および一致関係を判定する比較器(1
2)と、 該比較器(12)の比較により一方が他方より大きいと
判定した場合に前記第4のレジスタ(9)の内容を、小
さいと判定した場合に前記第5のレジスタ(10)の内
容を、前記第2のレジスタ(5)に出力して、前記デー
タ記憶手段(1〜4)をアクセスするアドレスを更新す
るセレクタ(13)と、 を有し、前記比較器(12)の比較結果が一致と判定さ
れた場合に前記第6のレジスタ(11)の内容を検索デ
ータとして出力することを特徴とするデータ検索回路。
3. A data storage means (1 to 3) in which a set of mask data, IP data, a first pointer, a second pointer, and information data is regarded as one data group and a plurality of data tables are stored. 4) and the first to temporarily hold the input “other party IP address”
A register (6); a second register (5) for holding an address indicating a data group currently being accessed in the data storage means (1 to 4); and a current register in the data storage means (1 to 4). Third to sixth registers (8 to 11) for temporarily holding the IP data, the first pointer, the second pointer, and the information data of the data group being accessed; and the first register (7) a mask processor (7) for receiving the "partner IP address" from (6) and performing a mask process in accordance with the mask data of the accessed data group
And the masked "partner IP address" output from the mask processor (7) and the third register (8).
The comparator (1
2), the content of the fourth register (9) is determined when one is greater than the other by the comparison of the comparator (12), and the content of the fifth register (10) is determined when the content is determined to be smaller. A selector (13) for outputting contents to the second register (5) and updating an address for accessing the data storage means (1 to 4); A data search circuit for outputting the contents of the sixth register (11) as search data when the result is determined to be coincident.
JP04144197A 1997-02-12 1997-02-12 Data search circuit Expired - Fee Related JP3558151B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP04144197A JP3558151B2 (en) 1997-02-12 1997-02-12 Data search circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP04144197A JP3558151B2 (en) 1997-02-12 1997-02-12 Data search circuit

Publications (2)

Publication Number Publication Date
JPH10222535A true JPH10222535A (en) 1998-08-21
JP3558151B2 JP3558151B2 (en) 2004-08-25

Family

ID=12608467

Family Applications (1)

Application Number Title Priority Date Filing Date
JP04144197A Expired - Fee Related JP3558151B2 (en) 1997-02-12 1997-02-12 Data search circuit

Country Status (1)

Country Link
JP (1) JP3558151B2 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000244577A (en) * 1999-02-12 2000-09-08 Fr Telecom Method for relating transfer reference value with data packet by trie memory and packet processor using the same method
US6768738B1 (en) 1998-10-05 2004-07-27 Hitachi, Ltd. Packet forwarding apparatus with a flow detection table
US6839703B2 (en) 2000-05-15 2005-01-04 Fujitsu Limited Information apparatus, table retrieval apparatus, table retrieval method, and recording medium
EP0993144A3 (en) * 1998-10-05 2005-12-14 Hitachi, Ltd. High-speed multicast system
JP2006333438A (en) * 2005-04-28 2006-12-07 Fujitsu Ten Ltd Gateway apparatus and routing method

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6768738B1 (en) 1998-10-05 2004-07-27 Hitachi, Ltd. Packet forwarding apparatus with a flow detection table
EP0993144A3 (en) * 1998-10-05 2005-12-14 Hitachi, Ltd. High-speed multicast system
US7408935B2 (en) 1998-10-05 2008-08-05 Hitachi, Ltd. Packet forwarding apparatus with a flow detection table
JP2000244577A (en) * 1999-02-12 2000-09-08 Fr Telecom Method for relating transfer reference value with data packet by trie memory and packet processor using the same method
US6839703B2 (en) 2000-05-15 2005-01-04 Fujitsu Limited Information apparatus, table retrieval apparatus, table retrieval method, and recording medium
JP2006333438A (en) * 2005-04-28 2006-12-07 Fujitsu Ten Ltd Gateway apparatus and routing method
US7787479B2 (en) 2005-04-28 2010-08-31 Fujitsu Ten Limited Gateway apparatus and routing method

Also Published As

Publication number Publication date
JP3558151B2 (en) 2004-08-25

Similar Documents

Publication Publication Date Title
US6665297B1 (en) Network routing table
US6553002B1 (en) Apparatus and method for routing data packets through a communications network
US5920886A (en) Accelerated hierarchical address filtering and translation using binary and ternary CAMs
JP4742167B2 (en) Method for performing a table lookup operation using a table index that exceeds the CAM key size
US7167471B2 (en) Network processor with single interface supporting tree search engine and CAM
US7349382B2 (en) Reverse path forwarding protection of packets using automated population of access control lists based on a forwarding information base
US6526055B1 (en) Method and apparatus for longest prefix address lookup
US5909440A (en) High speed variable length best match look-up in a switching device
US6181698B1 (en) Network routing table using content addressable memory
US20040254909A1 (en) Programming routes and access control lists in comparison tree data structures and their use such as in performing lookup operations
JP2001509978A (en) Fast Variable Length Best Match Lookup in Switching Devices
US6490279B1 (en) Fast data base research and learning apparatus
US6804230B1 (en) Communication device with forwarding database having a trie search facility
US6570866B1 (en) High-speed flexible longest match retrieval
US7937495B2 (en) System and method for modifying data transferred from a source to a destination
JP3558151B2 (en) Data search circuit
JP3623082B2 (en) Associative memory module
US11720492B1 (en) Algorithmic TCAM with compressed key encoding
US9544226B1 (en) Efficient address-based rule resolution in a network employing a bit-mapped index
JP3795881B2 (en) Table search method and apparatus
KR20000013760A (en) Multiple access computer address hashing method of lan switch using cyclic redundancy check and system therefor
JPH11284658A (en) Longest coincident retrieval device
JP2003234762A (en) Device, method and program for table retrieving, and recording medium
CN109344222B (en) Searching and storing method and device of high-bandwidth TCAM
JP2002259452A (en) Information retrieval device, multiprocessor for information retrieval and router

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040127

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040322

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: 20040511

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040512

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090528

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090528

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100528

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100528

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110528

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120528

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees