JPH1049545A - Associative storage device - Google Patents

Associative storage device

Info

Publication number
JPH1049545A
JPH1049545A JP8206971A JP20697196A JPH1049545A JP H1049545 A JPH1049545 A JP H1049545A JP 8206971 A JP8206971 A JP 8206971A JP 20697196 A JP20697196 A JP 20697196A JP H1049545 A JPH1049545 A JP H1049545A
Authority
JP
Japan
Prior art keywords
key
address
virtual key
virtual
entry
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.)
Withdrawn
Application number
JP8206971A
Other languages
Japanese (ja)
Inventor
Toshiaki Minami
俊朗 南
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP8206971A priority Critical patent/JPH1049545A/en
Publication of JPH1049545A publication Critical patent/JPH1049545A/en
Withdrawn legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

PROBLEM TO BE SOLVED: To reduce partiality of data and a decrease conflicts by generating an address of a table on the basis of a virtual key and making access to an entry possible with the generated address. SOLUTION: This device is equipped with a virtual key generation part 8, an address generation part 3, a table 7, and a control part 5, and in the table 7, an entry consisting of one key and a record corresponding to it is made to correspond to each address. This device registers and retrieve data (composed of a key and a record) to each entry of the table 7 under the control of the control pat 5, but the virtual key generation part 8 generates a virtual key in this case from a given key by a hash function and the address generation part 3 generates an address on the basis of the virtual key. Then, each entry of the table 7 is accessed with the generated address to register and retrieve data.

Description

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

【0001】[0001]

【発明の属する技術分野】本発明は、各種計算機に利用
可能な連想記憶装置に関し、特にハッシング技法を利用
した連想記憶装置に関する。連想記憶装置は、与えられ
たキーに対して、それに関連づけられたレコードを検索
する装置であり、計算機言語処理系の記号テーブルの管
理や、データベース等でのデータ連想検索が必要な装置
一般に用いられている。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an associative memory device that can be used for various computers, and more particularly to an associative memory device using a hashing technique. An associative storage device is a device that searches for a record associated with a given key, and is generally used for devices that require management of a symbol table of a computer language processing system and data associative search in a database or the like. ing.

【0002】[0002]

【従来の技術】以下、図面に基づき、従来例を説明す
る。 (1) :連想記憶装置と、ハッシング装置の説明 図15は従来例の説明図1であり、A図は連想記憶装
置、B図はハッシュ装置を示す。また、図16は従来例
の説明図2であり、A図は開番地法ハッシュ装置、B図
は連鎖法ハッシュ装置(2分岐木の場合)を示す。
2. Description of the Related Art A conventional example will be described below with reference to the drawings. (1): Description of an associative storage device and a hashing device FIG. 15 is an explanatory diagram 1 of a conventional example. FIG. 15A shows an associative storage device, and FIG. FIG. 16 is an explanatory diagram 2 of the conventional example. FIG. 16A shows an open address hash device, and FIG. 16B shows a chain hash device (in the case of a two-branch tree).

【0003】例えば、西原清一氏の解説「ハッシングの
技法と応用」(情報処理学会誌、Vol,21、No.
9,Sep.1980)にも見られるように、計算機言
語の処理系で用いられているシンボルテーブルなどの連
想記憶装置実現のための基本技術としてハッシング法を
用いた装置(以下「ハッシング装置」、或いは「ハッシ
ュ装置」と記す)は広く用いられている。
[0003] For example, commentary by Seiichi Nishihara, "Hashing Techniques and Applications" (Information Processing Society of Japan, Vol. 21, No.
9, Sep. 1980), a device using a hashing method as a basic technique for realizing an associative storage device such as a symbol table used in a processing system of a computer language (hereinafter, referred to as a “hashing device” or a “hash device”). Is widely used.

【0004】連想記憶装置とは、図15のA図に示した
ように、データに与えられた(通常は文字列である)キ
ーkを用いて、そのキーkに関連づけられたデータ(以
下「レコード」と記す)を検索する装置である。前記検
索処理では、必要に応じて関連した情報が付加される。
連想検索装置の概念は、キーkとレコードを持ったテー
ブル(表)7として、表すことができる。
As shown in FIG. 15A, an associative storage device uses a key k (usually a character string) given to data, and associates the data (hereinafter referred to as "character k") with the key k. Record). In the search processing, related information is added as needed.
The concept of the associative search device can be represented as a table 7 having a key k and a record.

【0005】例えば、計算機言語の処理系において、言
語の解析を行うためには、プログラム中に現れた予約
語、変数名などの識別子に対して、それが予約語である
か否かとか、変数名に対してその型は何かなどの様々な
情報を格納し、利用する必要がある。このような状況に
おいて、識別子から、その関連情報を得るために連想記
憶装置が用いられる。
For example, in a computer language processing system, in order to analyze a language, an identifier such as a reserved word or a variable name appearing in a program is checked whether it is a reserved word or not. It is necessary to store and use various information such as what type is for the name. In such a situation, an associative memory is used to obtain the relevant information from the identifier.

【0006】ところで、ハッシング装置は、連想検索装
置の一種である。図15のB図に示したように、ハッシ
ング装置においては、連想記憶装置(テーブル7に対
応)の各エントリ(1つのキーと、それに対応したレコ
ードの組)に番地(アドレス)1、2、3、4、5・・
・が振られている。例えば、m個のエントリを持つテー
ブルの場合、0からm−1の番地(アドレス)が振られ
ていると考えることができる。
[0006] A hashing device is a type of associative search device. As shown in FIG. 15B, in the hashing device, each entry (a set of one key and a record corresponding thereto) of the content addressable storage device (corresponding to the table 7) has addresses (addresses) 1, 2,. 3, 4, 5, ...
・ Has been shaken. For example, in the case of a table having m entries, it can be considered that addresses (addresses) from 0 to m-1 are assigned.

【0007】ハッシング装置における検索は、先ず、与
えられたキーkから、番地発生部3により、そのレコー
ドを格納する番地が計算される。番地として得られる値
は0以上m未満でなければならない。キーkから番地を
計算する関数は、「ハッシュ関数」と呼ばれる。キーk
としてとり得る値を「キー集合」と呼び、Kで表す。番
地としてとり得る集合を「番地集合」と呼び、Aで表
す。従って、ハッシュ関数(番地発生部3の内部機能に
対応する)hは、h:K→Aという関数であることにな
る。
In the search in the hashing device, first, the address for storing the record is calculated by the address generating unit 3 from the given key k. The value obtained as an address must be greater than or equal to 0 and less than m. A function for calculating an address from a key k is called a “hash function”. Key k
The value that can be taken as is called a “key set” and is represented by K. A set that can be taken as an address is called an “address set” and is represented by A. Accordingly, the hash function h (corresponding to the internal function of the address generation unit 3) is a function of h: K → A.

【0008】ハッシュ関数を用いて計算された番地のエ
ントリが空いているならば、そこにキーkと、それに関
連づけられたレコードが格納される。検索の際も、与え
られたキーkより同様の方法で番地計算し、そのキーk
を持つエントリを探す。一般に、テーブルのエントリ数
は、認識され得るキーの個数(集合Kの要素数で、理論
的には無限の場合を含む)よりはるかに少ないため、異
なったキーから同じ番地が計算される現象が起こる。こ
れは、「衝突」と呼ばれる。
If the entry of the address calculated by using the hash function is free, the key k and the record associated therewith are stored therein. When searching, the address is calculated in the same way from the given key k, and the key k is calculated.
Look for an entry with. In general, the number of entries in the table is much smaller than the number of keys that can be recognized (the number of elements of the set K, including the case where the number is theoretically infinite), so that the same address is calculated from different keys. Occur. This is called a "collision."

【0009】前記衝突が起こった場合の対処として幾つ
かの方法が提案されている。その方法としては、開番地
法、或いは連鎖法と呼ばれる方法などである。前記開番
地法を利用した開番地法ハッシュ装置は、図16のA図
に示してあり、前記連鎖法を利用した連鎖法ハッシュ装
置は図16のB図に示してある。
Several methods have been proposed to deal with the collision. As the method, there is a method called an open address method or a chain method. An open-address hash device using the open address method is shown in FIG. 16A, and a chain hash device using the chain method is shown in FIG. 16B.

【0010】前記開番地法ハッシュ装置では、番地発生
部3が与えられたキーkからテーブル7の番地を計算
し、衝突が起こると、制御部5の指示により番地再計算
部4が、前記計算された番地を元に、新たな番地を計算
する方法である。この新たな番地の計算では、通常は、
元の番地に何らかの方法で増分値を計算し、それを加え
て新たな番地を計算する場合が多い。
In the open address hashing apparatus, the address generating unit 3 calculates the address of the table 7 from the given key k, and when a collision occurs, the address recalculating unit 4 instructs the address recalculating unit 4 according to an instruction from the control unit 5. This is a method of calculating a new address based on the assigned address. In calculating this new address,
In many cases, a new address is calculated by adding an increment value to the original address by some method and adding it.

【0011】また、前記連鎖法ハッシュ装置では、テー
ブル7の各エントリにリンク情報を加え、テーブル7の
内、若しくは外に設けたエントリに繋ぐものである。す
なわち、番地発生部3が与えられたキーkから番地を計
算し、衝突が起こると更に、制御部5の指示により前記
キーkを用いて前記リンクを繋ぐ。また、従来、前記開
番地法と連鎖法を組み合わせるやり方も提案されてい
た。
Further, in the above-mentioned chaining hash apparatus, link information is added to each entry of the table 7 and connected to an entry provided inside or outside the table 7. That is, the address generation unit 3 calculates an address from the given key k, and when a collision occurs, further connects the link using the key k in accordance with an instruction from the control unit 5. Conventionally, a method of combining the open address method and the chain method has also been proposed.

【0012】§2:開番地法ハッシュ装置の処理説明・
・・図17参照 図17は従来の開番地法ハッシュ装置の処理フローチャ
ートである。以下、図17に基づいて開番地法ハッシュ
装置の処理を説明する。なお、S1〜S6は各処理ステ
ップを示す。
§2: Processing explanation of open address hashing device
... See FIG. 17 FIG. 17 is a processing flowchart of the conventional open address hashing apparatus. Hereinafter, the processing of the open address hash device will be described with reference to FIG. In addition, S1 to S6 indicate each processing step.

【0013】この処理では、外部からキーkが与えられ
ると(S1)、番地発生部3は、与えられたキーkを使
用し、ハッシュ関数h(k)により変数aを計算する。
そして、番地発生部3は、前記変数aが指し示す番地
(以下、これを単に「番地a」と記す)を発生させる
(S2)。
In this processing, when a key k is given from outside (S1), the address generating unit 3 calculates a variable a by a hash function h (k) using the given key k.
Then, the address generating unit 3 generates an address indicated by the variable a (hereinafter, simply referred to as “address a”) (S2).

【0014】次に制御部5は、番地aのエントリが空い
ている{table(a)は空?}か否かを判断し(S
3)、空いているならば、キーkとそれに対応したレコ
ードを番地aのエントリに登録し(S6)、登録作業を
終了する。しかし、番地aのエントリが空いていない場
合、制御部5は、番地aに登録されたキーが与えられた
キーkと一致するか{key(a)=k?}を比較して
判断する(S4)。
Next, the control unit 5 determines that the entry at address a is empty. Is $ table (a) empty? } Is determined (S
3) If it is free, the key k and the record corresponding to it are registered in the entry of the address a (S6), and the registration work is completed. However, if the entry at the address a is not empty, the control unit 5 determines whether the key registered at the address a matches the given key k or {key (a) = k? The judgment is made by comparing S (S4).

【0015】その結果、もし、一致するならば、キーは
登録済みなので、処理は終了する。しかし、キーが一致
しないならば、番地再計算部4は、登録のための新番地
の計算を行う。そして、前記計算で得られた新番地によ
って、登録作業が行われる。この作業は、空いたエント
リが見つかるまで行われる(S5)。
As a result, if they match, the key is already registered, and the process ends. However, if the keys do not match, the address recalculation unit 4 calculates a new address for registration. Then, a registration operation is performed using the new address obtained by the above calculation. This operation is performed until an empty entry is found (S5).

【0016】なお、実際には、テーブル7に空きがない
場合の処理が必要であるが、この例では、前記処理部分
は簡単のため省略し、テーブル7に空きがあるものとし
て説明している。前記開番地法において、計算された新
番地で再び衝突が起こる場合がある。そのような場合
は、空きエントリが見つかるまで、新番地の計算を継続
することになる。以降、最初の番地計算で起こる衝突
と、このような再計算で起こる衝突を区別するために、
前者を「1次衝突」、後者を「2次衝突」と呼ぶことに
する。
In practice, it is necessary to perform processing when there is no free space in the table 7. However, in this example, the processing is omitted for simplicity, and it is assumed that there is free space in the table 7. . In the open address method, a collision may occur again at the calculated new address. In such a case, calculation of the new address is continued until a free entry is found. Hereafter, in order to distinguish between collisions that occur in the first address calculation and those that occur in such a recalculation,
The former is called "primary collision" and the latter is called "secondary collision".

【0017】§3:連鎖法ハッシュ装置の処理説明・・
・図18参照 図18は従来の連鎖法ハッシュ装置の処理フローチャー
トである。以下、図18に基づいて連鎖法ハッシュ装置
の処理を説明する。なお、S11〜S21は各処理ステ
ップを示す。
§3: Description of the processing of the chain hash device
FIG. 18 is a processing flowchart of a conventional chain hashing apparatus. Hereinafter, the processing of the chain hash device will be described with reference to FIG. In addition, S11 to S21 indicate each processing step.

【0018】以下、簡単のために、2分岐の木構造の場
合について説明する。この処理では、外部からキーkが
与えられると(S11)、番地発生部3は、与えられた
キーkを元に、ハッシュ関数hにより番地aを計算する
(S12)。次に制御部5は、番地aのエントリが空い
ている{table(a)は空?}か否かを判断し(S
13)、空いているならば、キーkとそれに対応したレ
コードを番地aのエントリに登録し(S16)、登録作
業は終了する。
Hereinafter, for the sake of simplicity, a case of a two-branch tree structure will be described. In this process, when a key k is given from outside (S11), the address generation unit 3 calculates an address a by a hash function h based on the given key k (S12). Next, the control unit 5 determines that the entry at the address a is empty. Is $ table (a) empty? } Is determined (S
13) If it is vacant, the key k and the record corresponding to it are registered in the entry of the address a (S16), and the registration work ends.

【0019】しかし、番地aのエントリが空いていない
場合、制御部5は、番地aに登録されたキーが与えられ
たキーkと一致するか{key(a)=k?}を比較し
て判断する(S14)。その結果、もし、一致するなら
ば、キーは登録済みなので、処理は終了する。しかし、
キーが一致しない場合、すなわち、登録したい番地aの
エントリに、既に他のキーを持つレコードが登録されて
いるならば、登録したいキーと、既に登録されているキ
ー{k:key(a)}を何らかの比較機構を用いて比
較する(S15)。
However, if the entry at the address a is not empty, the control unit 5 determines whether the key registered at the address a matches the given key k or {key (a) = k? The judgment is made by comparing S (S14). As a result, if they match, the key is already registered, and the process ends. But,
If the keys do not match, that is, if a record having another key is already registered in the entry of the address a to be registered, the key to be registered and the already registered key {k: key (a)} Are compared using some kind of comparison mechanism (S15).

【0020】その結果、キーkの方が大きい時{k>k
ey(a)}は、大きいキーのためのリンクを辿る。ま
た、キーkの方が小さい時{k<key(a)}は、小
さいキーのためのリンクを辿る。この時、大きいキーの
ためのリンクを辿る場合は、大きい方に繋ぐリンクが空
いているか{greater−link(a)は空?}
否かを判断(S18)し、小さいキーのためのリンクを
辿る場合は、小さい方に繋ぐリンクが空いているか{l
ess−link(a)は空?}否かを判断(S17)
する。
As a result, when the key k is larger, Δk> k
ey (a)} follows the link for the large key. When the key k is smaller, {k <key (a)} follows the link for the smaller key. At this time, when tracing the link for the large key, is there a link that connects to the larger one? Is greater-link (a) empty? }
It is determined whether or not the link for the small key is free (S18).
Is ess-link (a) empty? It is determined whether or not (S17)
I do.

【0021】その結果、前記S17、S18でリンクが
空きであると判断した時は、それは、そのキーでの登録
がなされていないことを意味するので、現在登録しよう
としているキーkのレコードを登録する。すなわち、新
エントリを作成し、登録する(S20)。
As a result, when it is determined in S17 and S18 that the link is empty, it means that the registration with the key has not been performed, and the record of the key k to be registered is registered. I do. That is, a new entry is created and registered (S20).

【0022】また、前記辿るためのリンクに既に登録さ
れているエントリが存在するならば(S17、S1
8)、更に小さい方のリンク、或いは大きい方のリンク
を辿る(S19、S21)。そして再び、そのキーとk
を比較する。これを繰り返すことで、登録されるべきキ
ーkと、それに対応したレコードは、木構造中の適切な
場所に登録されることになる。
If there is an entry already registered in the link for tracing (S17, S1)
8) Follow the smaller link or the larger link (S19, S21). And again, that key and k
Compare. By repeating this, the key k to be registered and the record corresponding thereto are registered at an appropriate place in the tree structure.

【0023】§4:実験例1の説明・・・図19参照 図19は従来の実験例1の説明図である。実験例1は、
図16に示した開番地法ハッシュ装置を使用して実験を
行った例である。この実験では、図示のデータを使用し
て実験を行い、実験結果を得た。
§4: Description of Experimental Example 1—See FIG. 19 FIG. 19 is an explanatory diagram of Conventional Experimental Example 1. Experimental example 1
17 is an example in which an experiment was performed using the open address method hash device illustrated in FIG. 16. In this experiment, an experiment was performed using the data shown in the figure, and an experimental result was obtained.

【0024】前記実験データとしては、キーkが、a,
aa,ab,abc,b,bc,cd,cc,bb,
d,e,・・・・bcbからなる19個のキー(文字
列)であり、テーブルの大きさ(番地数)は25とし
た。この場合、1次衝突の回数は9回であった。そし
て、衝突の時の番地の再計算は1を加え(元の番地a+
1)、テーブルサイズ(テーブルの大きさ)で割った余
りをとることで新番地を発生させた。前記実験結果は図
示の通りであり、2次衝突は78回であった。
As the experimental data, the key k is a,
aa, ab, abc, b, bc, cd, cc, bb,
19 keys (character strings) consisting of d, e,... bcb, and the size of the table (number of addresses) was 25. In this case, the number of primary collisions was nine. Then, the address at the time of collision is recalculated by adding 1 (the original address a +
1) A new address is generated by taking the remainder after dividing by the table size (table size). The experimental results were as shown in the figure, and the number of secondary collisions was 78.

【0025】§5:実験例2の説明・・・図20参照 図20は従来の実験例2の説明図である。実験例2は、
図16のB図に示した連鎖法ハッシュ装置を使用して実
験を行った例である。この実験では、前記実験例1と同
じデータを使用し、実験結果を得た。
§5: Description of Experimental Example 2—See FIG. 20 FIG. 20 is an explanatory diagram of Conventional Experimental Example 2. Experimental example 2
17 shows an example in which an experiment was performed using the chain hash device shown in FIG. 16B. In this experiment, the same data as in Experimental Example 1 was used, and an experimental result was obtained.

【0026】すなわち、実験データとしては、前記実験
例1と同じように、キーkが、a,aa,ab,ab
c,b,bc,cd,cc,bb,d,e,・・・・b
cbからなる19個のキー(文字列)であり、テーブル
の大きさ(番地数)は25とした。この場合、1次衝突
の回数は9回であった。2分岐リンクの深さは図示のよ
うに深かった(2分岐の回数が多い)。
That is, as in the experimental data, the key k is a, aa, ab, ab
c, b, bc, cd, cc, bb, d, e,.
19 keys (character strings) consisting of cb, and the size (number of addresses) of the table was 25. In this case, the number of primary collisions was nine. The depth of the two-branch link was deep as shown (the number of bifurcations is large).

【0027】[0027]

【発明が解決しようとする課題】前記のような従来のも
のにおいては、次のような課題があった。 (1) :もし、衝突が起こらないならば、ハッシュ装置は
どのようなキーに対しても、ハッシュ関数の1回の計算
でそのエントリが見つかることになり、極めて効率の良
い方法である。しかし、キー集合Kの大きさに比べて、
番地集合Aは極めて小さいため、衝突による効率の悪化
は避けられない。従って、如何にして衝突(1次、及び
2次等の衝突)を防ぐかが、効率の良いハッシング装置
の設計に当たって重要であるが、前記従来の装置で衝突
回数を減らすのは難しい。
The above-mentioned prior art has the following problems. (1): If no collision occurs, the hash device can find the entry for any key by a single calculation of the hash function, which is an extremely efficient method. However, compared to the size of the key set K,
Since the address set A is extremely small, it is inevitable that the efficiency is deteriorated due to the collision. Therefore, how to prevent collisions (primary and secondary collisions) is important in designing an efficient hashing device, but it is difficult to reduce the number of collisions with the conventional device.

【0028】(2) :テーブルのエントリ数(番地集合A
の要素数)がmであり、n個のエントリが空いていると
き、理想的には、n/mの確率で最初のハッシュ関数の
計算で、空きエントリが見つかることになる。しかし、
実際に生起するデータ分布の片寄りのために、それより
も悪くなるのが普通である。また、ハッシング法におい
て、番地の再計算の回数も同様にデータの片寄りのため
に起こる2次衝突のために理想値と比べて大きくなるこ
とになる。
(2): Number of table entries (address set A
When the number of elements is m and n entries are empty, an empty entry is found in the calculation of the first hash function with the probability of n / m. But,
It is usually worse because of the offset in the data distribution that actually occurs. In the hashing method, the number of recalculations of addresses is also larger than an ideal value due to a secondary collision that occurs due to data deviation.

【0029】本発明は、このような従来の課題を解決
し、仮想番地を有効に用いることで、データの片寄りを
少なくし、衝突(特に、2次衝突)を減少させること
で、理想の状態に近い高速なハッシュ装置を実現させる
ことを目的とする。また、本発明は、キーが或る構造を
持つ時、それを反映した仮想キーの計算装置を用いるこ
とで、連想検索装置のアクセスの高速化のみならず、ア
クセスの柔軟性をも実現させることを目的とする。
The present invention solves such a conventional problem, and effectively uses virtual addresses to reduce data deviation and reduce collisions (particularly, secondary collisions) to achieve an ideal data. It is an object to realize a high-speed hash device close to a state. Further, the present invention, when a key has a certain structure, realizes not only the speed of access of the associative search device but also the flexibility of access by using a virtual key calculation device reflecting the structure. With the goal.

【0030】[0030]

【課題を解決するための手段】図1は本発明の原理説明
図である。本発明は前記の目的を達成するため、次のよ
うに構成した。 (1) :連想記憶装置において、1つのキーとそれに対応
したレコードの組からなるエントリを複数持ち、各エン
トリに番地が振られたテーブル7と、与えられたキーを
元にハッシュ関数を使用して仮想キーを発生させる仮想
キー発生部8と、前記仮想キー発生部8で発生させた仮
想キーを元に、前記テーブルの番地を発生させる番地発
生部3を備え、ハッシング法を用いて発生させた番地に
より前記各エントリへのアクセスを可能にした。
FIG. 1 is a diagram illustrating the principle of the present invention. The present invention is configured as follows to achieve the above object. (1): The associative storage device has a plurality of entries each consisting of one key and a record set corresponding to the key, and uses a hash function based on a table 7 in which addresses are assigned to the respective entries and a given key. A virtual key generator 8 for generating a virtual key by using the virtual key generator 8 and an address generator 3 for generating an address of the table based on the virtual key generated by the virtual key generator 8. The access to each entry is enabled by the address.

【0031】(2) :前記(1) の連想記憶装置において、
前記番地発生部3で番地を発生させて衝突が起こった場
合、前記仮想キー発生部8で発生させた仮想キーを元
に、番地の再計算を行う番地再計算部4を備えている。
(2): In the associative memory device of (1),
An address recalculation unit 4 is provided for recalculating an address based on the virtual key generated by the virtual key generation unit 8 when a collision occurs due to the generation of an address by the address generation unit 3.

【0032】(3) :前記(1) の連想記憶装置において、
前記テーブル7の各エントリに複数分岐のリンクを設け
ると共に、前記番地発生部3で番地を発生させて衝突が
起こった場合、前記仮想キーの大小比較により、前記リ
ンクを利用して木構造を生成する木構造生成制御手段を
備えている。
(3): In the associative memory device of (1),
A plurality of branch links are provided in each entry of the table 7, and when a collision occurs due to the generation of an address by the address generation unit 3, a tree structure is generated using the link by comparing the sizes of the virtual keys. It has a tree structure generation control means for performing the following.

【0033】(4) :1つのキーとそれに対応した標準キ
ーとレコードの組からなるエントリを複数持ち、各エン
トリに番地が振られたテーブルと、与えられたキーを元
にハッシュ関数を使用して標準キーを発生させる標準キ
ー発生部と、前記標準キー発生部で発生させた標準キー
を元にハッシュ関数を使用して仮想キーを発生させる仮
想キー発生部と、前記仮想キー発生部で発生させた仮想
キーを元に、前記テーブルの番地を発生させる番地発生
部を備え、ハッシング法を用いて発生させた番地により
前記各エントリへのアクセスを可能にした。
(4): A table having a plurality of entries each consisting of a set of a key and a standard key and a record corresponding to the key, and using a hash function based on a table in which addresses are assigned to each entry and a given key. A standard key generator for generating a standard key, a virtual key generator for generating a virtual key using a hash function based on the standard key generated by the standard key generator, An address generating unit for generating an address of the table based on the virtual key is provided, and each of the entries can be accessed by an address generated by using a hashing method.

【0034】(作用)前記構成に基づく本発明の作用
を、図1に基づいて説明する。 (1) :前記(1) の作用 キーとレコードからなるエントリは、次のように2段階
の操作を経てアクセスが行われる。先ず、第1段階で、
仮想キー発生部8は、キーkが与えられると、そのキー
kを元にハッシュ関数により仮想キーを生成する。次に
第2段階で、番地発生部3は、前記得られた仮想キーよ
り、実際のテーブルの大きさを反映させた番地を発生す
る。このようにして番地が求まると、その番地により前
記エントリへのアクセス(データの登録/検索)を行
う。
(Operation) The operation of the present invention based on the above configuration will be described with reference to FIG. (1): Action of the above (1) An entry consisting of a key and a record is accessed through a two-step operation as follows. First, in the first stage,
When given a key k, the virtual key generator 8 generates a virtual key by a hash function based on the key k. Next, in a second stage, the address generating unit 3 generates an address reflecting the size of the actual table from the obtained virtual key. When the address is obtained in this way, access to the entry (data registration / search) is performed using the address.

【0035】このように、従来、1つの連想記憶装置
で、一度で行っていた番地計算処理を2段階に分けるこ
とで、仮想キー発生部8と、番地発生部3は、その目的
に合った変換法を用いることができる。仮想キー発生部
8は、偏りを持って出現するキーに対してその偏りの少
ない仮想キーを生成することで衝突を減少させることが
可能になる。
As described above, by dividing the address calculation processing that has been performed at once by one associative storage device into two stages, the virtual key generation unit 8 and the address generation unit 3 meet the purpose. Transformation methods can be used. The virtual key generation unit 8 can reduce collision by generating a virtual key with a small bias for keys that appear with a bias.

【0036】(2) :前記(2) の作用 前記連想記憶装置において、番地再計算部4は、前記番
地発生部3で番地を発生させて衝突が起こった場合、前
記仮想キー発生部8で発生させた仮想キーを元に、番地
の再計算を行う。
(2): Operation of the above (2) In the associative memory device, the address recalculation unit 4 generates an address in the address generation unit 3 and, when a collision occurs, the virtual key generation unit 8 The address is recalculated based on the generated virtual key.

【0037】前記番地の再計算において、仮想キーは一
様に出現するため、これを用いることで、再計算の際に
も、偏りの少ない新番地が容易に計算されることにな
り、その結果2次衝突が少なくなることが期待できる。
In the recalculation of the address, since the virtual key appears uniformly, the use of the virtual key makes it possible to easily calculate a new address with less bias even in the case of recalculation. It can be expected that secondary collisions will be reduced.

【0038】(3) :前記(3) の作用 前記連想記憶装置において、木構造生成制御手段は、前
記番地発生部3で番地を発生させて衝突が起こった場
合、前記仮想キーの大小比較により、前記リンクを利用
して木構造を生成する。
(3): Operation of the above (3) In the associative memory device, when the address is generated by the address generating unit 3 and a collision occurs, the tree structure generation control means compares the virtual keys with each other. , A tree structure is generated using the link.

【0039】この場合、仮想キーが一致した場合のみキ
ーの大小比較によって全体の比較が行われる。仮想キー
の出現の偏りを無くしたものなので、例えば、リンクが
2分岐木であれば、2つのキーを比較する場合と比べ、
仮想キーの比較においては、大小の出現率がほぼ1/2
になる。
In this case, only when the virtual keys match, the whole comparison is performed by comparing the magnitudes of the keys. Since the bias of the appearance of the virtual key is eliminated, for example, if the link is a two-branch tree, compared to the case of comparing two keys,
In comparison of virtual keys, the appearance ratio of large and small is almost 1/2.
become.

【0040】その結果、作成される木構造は理想状態で
あるバランスのとれた木に近く、エントリ数に対する木
の深さがほぼ最小値になることが期待される。その結
果、前記エントリに対する登録、検索のための木構造の
探索回数が減少し、処理の効率向上に貢献する。
As a result, it is expected that the created tree structure is close to a well-balanced tree which is an ideal state, and that the depth of the tree with respect to the number of entries becomes almost the minimum value. As a result, the number of searches for the tree structure for registration and search for the entry is reduced, which contributes to an improvement in processing efficiency.

【0041】(4) :前記(4) の作用 標準キー発生部は、キーが与えられると、与えられたキ
ーを元にハッシュ関数を使用して標準キーを発生させ、
仮想キー発生部は、前記標準キー発生部で発生させた標
準キーを元にハッシュ関数を使用して仮想キーを発生さ
せる。その後、番地発生部は、前記仮想キー発生部で発
生させた仮想キーを元に、前記テーブルの番地を発生さ
せる。
(4): Operation of the above (4) When a key is given, the standard key generation unit generates a standard key using a hash function based on the given key.
The virtual key generation unit generates a virtual key using a hash function based on the standard key generated by the standard key generation unit. Thereafter, the address generating unit generates an address of the table based on the virtual key generated by the virtual key generating unit.

【0042】前記のように、元のキーを直接使用しない
で、キーを標準形に変換し、それを登録/検索のキーと
して利用するものである。このようにすれば、標準キー
の利用により、元のキーによる検索のみならず、標準キ
ーによる検索も可能となり、一種の意味検索が可能にな
る。また、衝突を減らして処理の高速化を可能とし、か
つ処理の柔軟性が向上する。
As described above, instead of directly using the original key, the key is converted to a standard form and is used as a key for registration / search. In this way, by using the standard key, not only the search by the original key but also the search by the standard key is possible, and a kind of semantic search becomes possible. In addition, the processing speed can be increased by reducing collisions, and the flexibility of the processing is improved.

【0043】(5) :その他 以上のように、仮想キーを有効に用いることで、データ
の片寄りを少なくし、衝突(特に、2次衝突)を減少さ
せることで、理想の状態に近い高速な連想記憶装置(ハ
ッシュ装置)を実現させることができる。また、キーが
或る構造を持つ時、それを反映した仮想キー発生部を用
いることで、連想記憶装置のアクセスの高速化のみなら
ず、アクセスの柔軟性をも実現させることができる。
(5): Others As described above, by effectively using the virtual key, the deviation of the data is reduced, and the collision (particularly, the secondary collision) is reduced, so that the high speed close to the ideal state is achieved. A simple associative storage device (hash device) can be realized. Further, when a key has a certain structure, by using a virtual key generation unit reflecting the structure, not only the access speed of the associative memory device can be increased but also the access flexibility can be realized.

【0044】[0044]

【発明の実施の形態】以下、発明の実施の形態を図面に
基づいて詳細に説明する。なお、以下の説明では、ハッ
シング技法を利用した装置を「ハッシュ装置」と記す。
また、前記装置例の全てに、ハッシング技法に基づく制
御を行うための制御部が設けてあるが、一部の装置例を
除いて図示省略してある。更に、与えられたキーkから
ハッシュ関数hにより仮想キーk1 を求め、この仮想キ
ーk1を元に或る関数(ハッシュ関数hと同種類の関
数)ad(k1 )により求めた変数aが指し示す番地
を、単に「番地a」と記す。
Embodiments of the present invention will be described below in detail with reference to the drawings. In the following description, a device using the hashing technique is referred to as a “hash device”.
Further, in all of the above-described apparatus examples, a control unit for performing control based on the hashing technique is provided, but is not shown except for some of the apparatus examples. Further, a virtual key k 1 is obtained from a given key k by a hash function h, and a variable a obtained by a certain function (a function of the same kind as the hash function h) ad (k 1 ) based on the virtual key k 1 Is simply referred to as “address a”.

【0045】§1:各種装置例の説明・・・図2〜図6
参照 図2は装置例1、2の説明図(A図は装置例1、B図は
装置例2)、図3は装置例3の説明図、図4は装置例4
の説明図、図5は装置例5の説明図、図6は装置例6の
説明図である。以下、図2〜図6に基づき各種装置例に
ついて説明する。
§1: Description of Examples of Various Apparatus ... FIGS. 2 to 6
Reference is made to FIG. 2 for explanatory views of the apparatus examples 1 and 2 (FIG. A: apparatus example 1, FIG. B: apparatus example 2), FIG. 3 is an explanatory view of apparatus example 3, and FIG.
FIG. 5 is an explanatory view of an apparatus example 5, and FIG. 6 is an explanatory view of an apparatus example 6. Hereinafter, various examples of the apparatus will be described with reference to FIGS.

【0046】(1) :装置例1の説明・・・図2のA図参
照 図2のA図に示した装置例1は、仮想キーを利用したハ
ッシュ装置の例である。この装置は、仮想キー発生部8
と、番地発生部3と、テーブル7と、制御部5を備えて
おり、前記テーブル7には、番地(アドレス)毎に、1
つのキーとそれに対応したレコードからなるエントリが
対応させてある。
(1): Description of Apparatus Example 1 Refer to FIG. 2A. Apparatus Example 1 shown in FIG. 2A is an example of a hash apparatus using a virtual key. This device includes a virtual key generation unit 8
, An address generating unit 3, a table 7, and a control unit 5. The table 7 includes one for each address (address).
An entry consisting of one key and the corresponding record is associated with it.

【0047】この装置では制御部5の制御によりテーブ
ル7の各エントリへのデータ(キー+レコードのデー
タ)の登録処理、及び検索処理を行うが、この場合、仮
想キー発生部8が、与えられたキーからハッシュ関数に
より仮想キーを発生させ(生成し)、その仮想キーを元
に、番地発生部3が番地(アドレス)を発生させる。そ
して、前記発生させた番地でテーブル7の各エントリを
アクセスし、データの登録/検索処理を行う。
In this apparatus, registration processing of data (key + record data) to each entry of the table 7 and search processing are performed under the control of the control unit 5. In this case, the virtual key generation unit 8 is provided. A virtual key is generated (generated) by a hash function from the generated key, and the address generation unit 3 generates an address (address) based on the virtual key. Then, each entry of the table 7 is accessed at the generated address, and data registration / search processing is performed.

【0048】(2) :装置例2の説明・・・図2のB図参
照 図2のB図に示した装置例2は開番地法ハッシュ装置の
例である。この開番地法ハッシュ装置は、仮想キー発生
部8と、番地発生部3と、番地再計算部4と、制御部5
と、テーブル7とを備えており、前記テーブル7には、
番地(アドレス)毎に、1つのキーとそれに対応したレ
コードからなるエントリが対応させてある。
(2): Description of Apparatus Example 2—See FIG. 2B The apparatus example 2 shown in FIG. 2B is an example of an open address hashing apparatus. This open address hashing apparatus includes a virtual key generation unit 8, an address generation unit 3, an address recalculation unit 4, a control unit 5
And a table 7. The table 7 includes:
One key and an entry composed of a record corresponding to the key are associated with each address (address).

【0049】この装置では制御部5の制御によりテーブ
ル7の各エントリへのデータ(キー+レコードのデー
タ)の登録、及び検索処理を行うが、この場合、仮想キ
ー発生部8が、与えられたキーから仮想キーを発生させ
(生成し)、その仮想キーを元に、番地発生部3が番地
(アドレス)を発生させる。そして、前記発生させた番
地によりテーブル7をアクセスし、テーブルデータの登
録/検索処理を行う。
In this apparatus, data (key + record data) is registered and searched for in each entry of the table 7 under the control of the control unit 5. In this case, the virtual key generating unit 8 is provided. A virtual key is generated (generated) from the key, and the address generating unit 3 generates an address (address) based on the virtual key. Then, the table 7 is accessed by the generated address, and the table data is registered / retrieved.

【0050】前記処理において、番地発生部3が番地を
計算し、1次衝突が起こった場合、制御部5の制御によ
り、番地再計算部4は、前記仮想キー発生部8で発生さ
せた仮想キーを元に、再度番地の計算を行う。そして、
前記番地再計算部4が番地を再計算して再び2次衝突が
起こったら、更に番地再計算部4が番地の計算をし直
す。このようにして衝突がなくなるまで仮想キーから新
番地の計算を行い、その新番地によりテーブル7をアク
セスしてデータの登録/検索を行う。
In the above processing, when the address is calculated by the address generator 3 and a primary collision occurs, the address recalculator 4 is controlled by the controller 5 so that the virtual key generator 8 generates the address. The address is calculated again based on the key. And
If the address recalculation unit 4 recalculates the address and a secondary collision occurs again, the address recalculation unit 4 calculates the address again. In this way, a new address is calculated from the virtual key until the collision is eliminated, and the new address is used to access the table 7 to register / search for data.

【0051】(3) :装置例3の説明・・・図3参照 図3に示した装置例3は、連鎖法による衝突処理機構を
持つ仮想キーハッシュ装置(以下、この装置を「連鎖法
ハッシュ装置」と記す)の例である。この場合、説明を
簡単にするため、2分岐木の場合の装置例として示して
ある。
(3): Description of Apparatus Example 3—See FIG. 3 The apparatus example 3 shown in FIG. 3 is a virtual key hash apparatus having a collision processing mechanism by a chain method (hereinafter, this apparatus is referred to as a “chain method hash”). Device "). In this case, in order to simplify the description, the apparatus is shown as an example of a two-branch tree.

【0052】この連鎖法ハッシュ装置(2分岐木の場
合)は、仮想キー発生部8と、番地発生部3と、制御部
(図示省略)と、テーブル7とを備えており、前記テー
ブル7には、番地(アドレス)毎に、1つのキーと、そ
れに対応した仮想キーと、レコードと、2分岐リンクか
らなるエントリが対応させてある。
This chain hash device (in the case of a two-branch tree) includes a virtual key generation unit 8, an address generation unit 3, a control unit (not shown), and a table 7. Is associated with one key, a virtual key corresponding to the key, a record, and an entry composed of a two-branch link for each address (address).

【0053】この装置では制御部の制御によりテーブル
7へのデータ(キー+仮想キー+レコード+2分岐リン
クのデータ)の登録、及び検索処理を行うが、この場
合、仮想キー発生部8がハッシュ関数により、与えられ
たキーから仮想キーを発生させ(生成し)、その仮想キ
ーを基に、番地発生部3が番地(アドレス)を発生させ
る。そして、前記発生させた番地でテーブル7をアクセ
スし、データの登録/検索処理を行う。
In this apparatus, registration of data (key + virtual key + record + data of two branch links) in the table 7 and search processing are performed under the control of the control unit. In this case, the virtual key generation unit 8 uses the hash function. Then, a virtual key is generated (generated) from the given key, and the address generating unit 3 generates an address (address) based on the virtual key. Then, the table 7 is accessed at the generated address, and data registration / search processing is performed.

【0054】前記処理において1次衝突が起こった場
合、新番地を計算しないで、木構造を生成する。そのた
めテーブル7の各エントリには2分岐リンクが設けてあ
る。1つは、そのエントリのキーより大きなキーを持つ
レコードを登録するエントリのリンクであり、他方は、
小さなキーのエントリへのリンクである。この装置の特
徴は、キーの比較として、従来行われている元のキーの
比較によるのではなく、キーより生成された仮想キーに
よって大小を比較しようというものである。
When a primary collision occurs in the above processing, a tree structure is generated without calculating a new address. Therefore, each entry of the table 7 is provided with a two-branch link. One is an entry link that registers a record with a key greater than the entry's key, and the other is
A link to a small key entry. The feature of this device is that the comparison of the keys is not based on the conventional comparison of the original keys, but rather by using a virtual key generated from the keys.

【0055】(4) :装置例4の説明・・・図4参照 図4に示した装置例4は、装置例2(開番地法ハッシュ
装置)と装置例3(連鎖法ハッシュ装置)を組み合わせ
た装置例である。この装置は、仮想キー発生部8と、番
地発生部3と、番地再計算部4と、制御部(図示省略)
と、テーブル7とを備えており、前記テーブル7には、
番地(アドレス)毎に、1つのキーと、それに対応した
仮想キーと、レコードと、2分岐リンクからなるエント
リが対応させてある。
(4): Description of the device example 4—see FIG. 4 The device example 4 shown in FIG. 4 combines the device example 2 (open address method hash device) and the device example 3 (chain method hash device). FIG. This apparatus includes a virtual key generation unit 8, an address generation unit 3, an address recalculation unit 4, and a control unit (not shown).
And a table 7. The table 7 includes:
One key, a corresponding virtual key, a record, and an entry composed of a two-branch link are associated with each address (address).

【0056】この装置では、1次衝突が起こった場合、
或る回数までは前記装置例2(開番地法ハッシュ装置)
の特徴である再計算機構(番地再計算部4)を用いて、
新番地を計算することで、空きエントリを探す。それを
越えた場合には、装置例3(連鎖法ハッシュ装置)の装
置の特徴であるリンク機構を用いてエントリを確保し、
そこにアクセス(登録/検索)するものである。再計算
からリンクに移るための回数は、或る一定数を予め定め
ておく場合、キーや仮想キー、番地を用いた計算によっ
て定める場合、特定の条件を満足した時に移る場合と様
々な方法が可能である。
In this device, when a primary collision occurs,
Up to a certain number of times, the above-mentioned device example 2 (open address method hash device)
Using the recalculation mechanism (address recalculation unit 4), which is a feature of
Find a free entry by calculating the new address. If the number exceeds that, an entry is secured by using a link mechanism which is a feature of the device of the device example 3 (chain hash device),
It accesses (registers / searches) there. The number of times to move to the link from recalculation is various methods such as a case where a certain number is predetermined, a case where it is determined by calculation using keys, virtual keys, and addresses, and a case where a specific condition is satisfied. It is possible.

【0057】(5) :装置例5の説明・・・図5参照 装置例5は、元のキーを直接使用しないで、与えられた
キーを標準形に変換し、それを登録/検索のキーとして
利用する連想記憶装置(標準キー変換付き連想記憶装
置)である。この装置は、標準キー発生部12と、仮想
キー発生部8と、番地発生部3と、制御部(図示省略)
と、テーブル7を備えている。そして、前記テーブル7
には、キーと、標準キーと、レコードを登録できるよう
にしてある。
(5): Explanation of Example 5 of Apparatus—See FIG. 5 In Example 5 of apparatus, a given key is converted to a standard form without directly using an original key, and the converted key is used as a key for registration / retrieval. As an associative storage device (associative storage device with standard key conversion). This device includes a standard key generator 12, a virtual key generator 8, an address generator 3, and a controller (not shown).
And a table 7. And the table 7
Has a key, a standard key, and a record.

【0058】装置例5では、標準キー発生部12が、与
えられたキーから標準キーを発生させ、仮想キー発生部
8が前記標準キーから仮想キーを発生させ、番地発生部
3が前記仮想キーから番地を発生させる。そして、前記
番地を使用してテーブルをアクセスし、データの登録/
検索処理を行う。
In the device example 5, the standard key generator 12 generates a standard key from a given key, the virtual key generator 8 generates a virtual key from the standard key, and the address generator 3 generates the virtual key from the virtual key. Generates an address from. Then, the table is accessed using the address, and data registration /
Perform search processing.

【0059】(6) :装置例6の説明・・・図6参照 装置例6は、装置例5の標準キー発生部12と、装置例
4を組み合わせた装置例である。この装置は、標準キー
発生部12と、仮想キー発生部8と、番地発生部3と、
制御部(図示省略)と、テーブル7を備えている。そし
て、前記テーブル7には、キーと、それに対応した標準
キー、仮想キー、レコード、2分岐リンクが設けてあ
り、これらにデータを登録できるようにしてある。
(6): Description of Apparatus Example 6—See FIG. 6 Apparatus Example 6 is an apparatus example in which the standard key generator 12 of Apparatus Example 5 and Apparatus Example 4 are combined. This device includes a standard key generation unit 12, a virtual key generation unit 8, an address generation unit 3,
A control unit (not shown) and a table 7 are provided. The table 7 is provided with keys and corresponding standard keys, virtual keys, records, and two-branch links, so that data can be registered in these.

【0060】装置例6では、標準キー発生部12が、与
えられたキーから標準キーを発生させ、仮想キー発生部
8が前記標準キーから仮想キーを発生させ、番地発生部
3が前記仮想キーから番地を発生させる。そして、前記
番地を使用してテーブルをアクセスし、データの登録/
検索処理を行う。
In the device example 6, the standard key generator 12 generates a standard key from a given key, the virtual key generator 8 generates a virtual key from the standard key, and the address generator 3 generates the virtual key from the standard key. Generates an address from. Then, the table is accessed using the address, and data registration /
Perform search processing.

【0061】また、前記処理で衝突が発生した場合に
は、番地再計算部4が、前記仮想キーから番地の再計算
を行い、新番地を生成してテーブル7へのアクセスを行
うように構成されている。
When a collision occurs in the above processing, the address recalculation unit 4 recalculates the address from the virtual key, generates a new address, and accesses the table 7. Have been.

【0062】§2:装置例1の処理説明・・・図7参照 図7は装置例1の処理フローチャートである。以下、図
7に基づいて装置例1の登録処理の例について説明す
る。なお、S51〜S54は各処理ステップを示す。ま
た、与えられたキーをk、仮想キーをk1 、番地をaと
する。
§2: Description of Processing of Apparatus Example 1 See FIG. 7 FIG. 7 is a processing flowchart of Apparatus Example 1. Hereinafter, an example of the registration process of the device example 1 will be described with reference to FIG. In addition, S51 to S54 indicate each processing step. The given key is k, the virtual key is k 1 , and the address is a.

【0063】装置例1においては、与えられた1つのキ
ーとレコードからなるエントリーは、次のように2段階
の操作を経てアクセスが行われる。先ず、第1段階で、
仮想キー発生部8は、キーkが与えられると(S5
1)、前記与えられたキーkを元に、ハッシュ関数h
(k)により仮想キーk1 を発生させる(S52)。次
に第2段階で、番地発生部3は、前記得られた仮想キー
1 より、実際のテーブルの大きさを反映させた番地a
を生成{a←ad(k1 )}する(S53)。この場
合、前記関数ad(k1 )は、前記ハッシュ関数hと同
じ種類の関数であり、仮想キーk1 を元に関数ad(k
1 )により求めた変数aが指し示す番地(これを「番地
a」と記す。)を発生させる。
In the apparatus example 1, an entry made up of a given key and a given record is accessed through a two-step operation as follows. First, in the first stage,
The virtual key generator 8 receives the key k (S5).
1), based on the given key k, a hash function h
To generate a virtual key k 1 by the (k) (S52). Next, in the second stage, the address generating unit 3 uses the obtained virtual key k 1 to generate an address a reflecting the size of the actual table.
Is generated {a ← ad (k 1 )} (S53). In this case, the function ad (k 1 ) is the same kind of function as the hash function h, and based on the virtual key k 1 , the function ad (k 1 )
An address indicated by the variable a obtained by 1 ) (this is described as "address a") is generated.

【0064】このようにして番地aが発生すると、その
番地aによりテーブル処理(該当するエントリへのデー
タの登録/検索処理)を行う(S54)。このように、
従来、1つのハッシュ装置で、一度で行っていた番地計
算処理を2段階に分けることで、それぞれの装置(仮想
キー発生部8、番地発生部3)は、その目的に合った変
換法を用いることができる。仮想キー発生部8は、偏り
を持って出現するキーkに対してその偏りのない(少な
い)仮想キーk1 を生成することで衝突を減少させてい
る。なお、仮想キー空間の大きさは、原理的に無限、若
しくは十分大きな有限数にとると良い。
When the address a is generated in this way, table processing (data registration / retrieval processing to the corresponding entry) is performed using the address a (S54). in this way,
Conventionally, a single hash device divides an address calculation process performed at one time into two stages, and each device (the virtual key generation unit 8 and the address generation unit 3) uses a conversion method suitable for the purpose. be able to. Virtual key generating unit 8, thereby reducing the collision by generating the unpolarized (small) virtual key k 1 for the key k appearing with bias. Note that the size of the virtual key space may be infinite in principle or a sufficiently large finite number.

【0065】§3:装置例2の処理説明・・・図8参照 図8は装置例2の処理フローチャートである。以下、図
8に基づいて装置例2の登録処理の例について説明す
る。なお、S61〜S67は各処理ステップを示す。ま
た、与えられたキーをk、仮想キーをk1 、番地をaと
する。
§3: Description of processing of apparatus example 2—see FIG. 8 FIG. 8 is a processing flowchart of apparatus example 2. Hereinafter, an example of the registration process of the device example 2 will be described with reference to FIG. In addition, S61 to S67 indicate each processing step. The given key is k, the virtual key is k 1 , and the address is a.

【0066】装置例2においても前記装置例1と同様
に、与えられた1つのキーとレコードからなるエントリ
へのアクセスは、次のように2段階の操作を経て行われ
る。先ず、第1段階で、仮想キー発生部8は、キーkが
与えられると(S61)、前記与えられたキーkを元
に、ハッシュ関数hにより仮想キーk1 を生成する(S
62)。次に第2段階で、番地発生部3は、前記得られ
た仮想キーk1 より、実際のテーブルの大きさを反映さ
せた番地aを生成{a←ad(k1 )}する(S6
3)。
In the device example 2, similarly to the device example 1, access to an entry consisting of a given key and a record is performed through a two-step operation as follows. First, in a first step, the virtual key generating unit 8, the key k is given (S61), based on the given key k, and generates a virtual key k 1 by the hash function h (S
62). Next, in the second stage, the address generating unit 3 generates {a ← ad (k 1 )} based on the obtained virtual key k 1 , reflecting the size of the actual table (S 6).
3).

【0067】その後、制御部は、前記番地aのテーブル
に空きがあるか否かを判断し(S64)、空きがあれ
ば、そのエントリにデータ(キーk+レコードのデー
タ)を登録して(S66)、処理を終了する。しかし、
前記S64の処理でテーブルに空きがない場合、制御部
は、前記与えられたキーkが登録済みのキーと同じか否
か{key(a)=k?}を判断する(S65)。
Thereafter, the control unit determines whether or not there is a free space in the table of the address a (S64). If there is a free space, the data (key k + record data) is registered in the entry (S66). ), And terminate the process. But,
If there is no space in the table in the process of S64, the control unit determines whether the given key k is the same as a registered key {key (a) = k? } Is determined (S65).

【0068】その結果、同じであれば、処理を終了する
が、同じでなければ(1次衝突が発生)、番地再計算部
4により、前記計算した仮想キーk1 に基づいて番地a
の再計算{k1 ←next k1 ,a←ad(k1 )}
を行う(S67)。そして、S64の処理から繰り返し
て行う。なお、前記S67の処理において、仮想キーk
1 を求める場合、再度与えられたキーkから仮想キーk
1 を計算し{k1 ←next(k1 ,k)}、その後、
前記計算した仮想キーk1 に基づいて番地aの再計算を
行うことも可能である。
As a result, if they are the same, the process is terminated, but if they are not the same (primary collision occurs), the address recalculating unit 4 uses the address a based on the calculated virtual key k 1.
{K 1 ← next k 1 , a ← ad (k 1 )}
Is performed (S67). Then, the process is repeated from the process of S64. In the process of S67, the virtual key k
When seeking 1 , the virtual key k is calculated from the given key k again.
1 is calculated {k 1 ← next (k 1 , k)}, and then
It is also possible to recalculate the addresses a, based on the virtual key k 1 mentioned above calculation.

【0069】以上説明したように、装置例2では、前記
の処理で番地aを計算し、そこで1次衝突が起こった場
合、番地再計算部4は新たな番地を計算し、新しい番地
を発生させる。新番地においても、2次衝突が起こった
場合、空きエントリが見つかるまで番地再計算部4は新
しい番地を生成する。
As described above, in the device example 2, the address a is calculated in the above-described processing, and if a primary collision occurs there, the address recalculating unit 4 calculates a new address and generates a new address. Let it. When a secondary collision occurs even at a new address, the address recalculation unit 4 generates a new address until a free entry is found.

【0070】この装置の特徴は、番地の再計算(S67
の処理)において、仮想キーk1 を用いる点にある。こ
の番地の再計算処理では、仮想キーk1 と共に、計算さ
れた番地aを用いることも可能である{k1 ←next
(k1 ,k)}。仮想キーk 1 は一様に出現するため、
これを用いることで、再計算の際にも、偏りの少ない新
番地が容易に計算されることになり、その結果2次衝突
が少なくなることが期待される。
The feature of this apparatus is that the address is recalculated (S67).
), The virtual key k1The point is to use. This
In the recalculation processing of the address of the virtual key k1Calculated with
It is also possible to use the address a1← next
(K1, K)}. Virtual key k 1Appear uniformly, so
By using this, even when recalculating, a new
The address is easily calculated, resulting in a secondary collision
Is expected to decrease.

【0071】なお、従来のハッシング装置においては、
キーから直接計算された番地を元に新番地を計算してい
る為、再計算を行っても再び2次衝突が起こる可能性が
高い。本発明の装置と類似のキーと番地を考慮した再計
算を行ったとしても、キーの出現偏りによる2次衝突の
発生の増加がある。本発明の装置は、一様に出現する仮
想キーをキーの代わりとして用いることで、2次衝突の
発生を減少させるものである。
In the conventional hashing device,
Since the new address is calculated based on the address directly calculated from the key, there is a high possibility that a secondary collision will occur again even if recalculation is performed. Even if recalculation is performed in consideration of keys and addresses similar to those of the apparatus of the present invention, there is an increase in the occurrence of secondary collision due to uneven appearance of keys. The device of the present invention reduces the occurrence of secondary collision by using uniformly appearing virtual keys instead of keys.

【0072】§4:装置例3の処理説明・・・図9参照 図9は装置例3の処理フローチャートである。以下、図
9に基づいて装置例3の処理を説明する。なお、S71
〜S82は各処理ステップを示す。
§4: Description of processing of apparatus example 3—see FIG. 9 FIG. 9 is a processing flowchart of apparatus example 3. Hereinafter, the processing of the device example 3 will be described with reference to FIG. Note that S71
S82 indicate each processing step.

【0073】装置例3における連鎖法には様々考えられ
るが、比較的簡単で、効率の良い、2分岐の木構造によ
る連鎖の例により、装置の処理を説明する。本装置にお
いて、番地の計算は、前記装置例1の処理と同様に行わ
れる。そして、1次衝突が起こった場合、装置例2の処
理と異なり、新番地を計算する代わりに木構造を生成す
る。
Although there are various possible chaining methods in the apparatus example 3, the processing of the apparatus will be described using an example of a relatively simple and efficient chaining with a two-branch tree structure. In this apparatus, the calculation of the address is performed in the same manner as in the processing of the apparatus example 1. Then, when a primary collision occurs, unlike the processing of the device example 2, a tree structure is generated instead of calculating a new address.

【0074】そのため、ハッシング装置のエントリには
2分岐のリンクが設けてある。1つは、そのエントリの
キーより大きなキーを持つレコードを登録するエントリ
のリンクであり、他方は、小さなキーのエントリへのリ
ンクである。この装置の特徴は、キーの比較として、従
来行われている元のキーの比較によるのではなく、キー
より生成された仮想キーによって大小を比較しようとい
うものである。
Therefore, the entry of the hashing device is provided with a two-branch link. One is a link of an entry for registering a record having a key larger than that of the entry, and the other is a link to an entry of a smaller key. The feature of this device is that the comparison of the keys is not based on the conventional comparison of the original keys, but rather by using a virtual key generated from the keys.

【0075】この場合、仮想キーが一致した場合のみキ
ーの大小比較によって全体の比較が行われる。仮想キー
の出現の偏りを無くしたものなので、2つのキーを比較
する場合と比べ、仮想キーの比較においては、大小の出
現率がほぼ1/2になる。その結果、作成される木構造
は理想状態であるバランスのとれた木に近く、エントリ
数に対する木の深さがほぼ最小値になることが期待され
る。その結果、連鎖法においても、登録、検索のための
木構造の探索回数が減少し、処理の効率向上に貢献す
る。
In this case, only when the virtual keys match, the whole comparison is performed by comparing the magnitudes of the keys. Since the bias of the appearance of the virtual key is eliminated, the appearance ratio of large and small is almost 1 / in comparison of the virtual keys as compared with the case of comparing two keys. As a result, it is expected that the created tree structure is close to an ideal state of a well-balanced tree, and that the depth of the tree with respect to the number of entries becomes almost the minimum value. As a result, even in the chaining method, the number of tree structure searches for registration and search is reduced, which contributes to an improvement in processing efficiency.

【0076】装置例3の処理では、与えられた1つのキ
ーとレコードからなるエントリへのアクセスは、次のよ
うに2段階の操作を経て行われる。先ず、第1段階で、
仮想キー発生部8は、キーkが与えられると(S7
1)、前記与えられたキーkを元に、ハッシュ関数hに
より仮想キーk1 を生成{k1 ←h(k)}する(S7
2)。次に第2段階で、番地発生部3は、前記得られた
仮想キーk1 より、実際のテーブルの大きさを反映させ
た番地aを生成{a←ad(k1 )}する(S73)。
In the process of the device example 3, access to an entry consisting of a given one key and a record is performed through a two-stage operation as follows. First, in the first stage,
The virtual key generator 8 receives the key k (S7).
1), based on the given key k, it generates a virtual key k 1 by the hash function h {k 1 ← h (k )} to (S7
2). Next, in the second stage, the address generation unit 3 generates {a ← ad (k 1 )} based on the obtained virtual key k 1 and reflects the size of the actual table (S 73). .

【0077】次に制御部5は、番地aのエントリが空い
ている{table(a)は空?}か否かを判断し(S
74)、空いているならば、キーkとそれに対応したレ
コードを番地aのエントリに登録し(S76)、登録作
業は終了する。しかし、番地aのエントリが空いていな
い場合、制御部5は、番地aに登録されたキー{key
(a)}が、与えられたキーkと一致するか{key
(a)=k?}を比較して判断する(S75)。
Next, the control unit 5 determines that the entry of the address a is empty. Is $ table (a) empty? } Is determined (S
74) If it is vacant, the key k and the record corresponding to it are registered in the entry of the address a (S76), and the registration work ends. However, when the entry of the address a is not empty, the control unit 5 sets the key {key} registered in the address a.
(A) Check if {} matches the given key k, or {key
(A) = k? The determination is made by comparing} (S75).

【0078】その結果、もし、一致するならば、キーは
登録済みなので処理は終了する。しかし、キーが一致し
ない場合、すなわち、登録したい番地aのエントリに、
既に他のキーを持つレコードが登録されているならば、
制御部は、前記仮想キーk1と、既にテーブル7に登録
されているキー{k1 :key(a)}を何らかの比較
機構を用いて比較する(S77)。
As a result, if they match, the key is already registered and the process ends. However, when the keys do not match, that is, in the entry of the address a to be registered,
If a record with another key is already registered,
The control unit compares the virtual key k 1 with the key {k 1 : key (a)} already registered in the table 7 using some kind of comparison mechanism (S77).

【0079】その結果、仮想キーk1 の方が大きい時
{k1 >key(a)}は、大きいキーのためのリンク
を辿る。また、仮想キーk1 の方が小さい時{k1 <k
ey(a)}は、小さいキーのためのリンクを辿る。
As a result, when the virtual key k 1 is larger, {k 1 > key (a)} follows the link for the larger key. When the virtual key k 1 is smaller, {k 1 <k
ey (a)} follows the link for the small key.

【0080】この時、大きいキーのためのリンクを辿る
場合は、テーブル7の大きい方に繋ぐリンクが空いてい
るか{greater−link(a)は空?}否かを
判断(S81)し、小さいキーのためのリンクを辿る場
合は、小さい方に繋ぐリンクが空いているか{less
−link(a)は空?}否かを判断(S78)する。
At this time, when tracing a link for a large key, is there a link available to the larger one of table 7 or is greater-link (a) empty? It is determined whether or not the link for the smaller key is to be traced (S81).
-Is link (a) empty? It is determined whether or not} (S78).

【0081】その結果、前記S81、S78の処理でリ
ンクが空きであると判断した時は、それは、そのキーで
の登録がなされていないことを意味するので、現在登録
しようとしているキーkのレコードを登録する。すなわ
ち、新エントリを作成し、登録する(S80)。
As a result, when it is determined that the link is empty in the processing of S81 and S78, it means that the registration with the key has not been performed, so that the record of the key k to be registered at present is Register That is, a new entry is created and registered (S80).

【0082】また、前記辿るためのリンクに既に登録さ
れているエントリが存在するならば(S81、S7
8)、更に小さい方のリンク、或いは大きい方のリンク
を辿る(S82、S79)。そして再び、前記S75の
処理から繰り返すことで、登録されるべきキーkと、そ
れに対応したレコードは、木構造中の適切な場所に登録
されることになる。
If there is an entry already registered in the link for tracing (S81, S7
8) Follow the smaller link or the larger link (S82, S79). By repeating the process from S75 again, the key k to be registered and the record corresponding thereto are registered at an appropriate place in the tree structure.

【0083】§5:装置例4の処理説明・・・図10参
照 図10は装置例4の処理フローチャートである。以下、
図10に基づいて装置例4の処理を説明する。なお、S
91〜S104は各処理ステップを示す。装置例4は、
装置例2に示した開番地ハッシュ装置の特徴と、装置例
3に示した連鎖法ハッシュ装置の特徴とを組み合わせた
装置である。
§5: Description of processing of apparatus example 4—see FIG. 10 FIG. 10 is a processing flowchart of apparatus example 4. Less than,
The processing of the device example 4 will be described based on FIG. Note that S
Reference numerals 91 to S104 denote processing steps. Apparatus example 4
This is a device that combines the features of the open address hash device shown in device example 2 and the features of the chain hash device shown in device example 3.

【0084】この装置例4の処理では、1次衝突が起こ
った場合、或る回数までは装置例2の特徴である再計算
機構(番地再計算部4)を用いて、新番地を計算するこ
とで、空きエントリを探す。それを越えた場合には、装
置例3の特徴であるリンク機構を用いてエントリを確保
し、そこに登録するものである。
In the processing of the device example 4, when a primary collision occurs, a new address is calculated up to a certain number of times by using the recalculation mechanism (address recalculation unit 4) which is a feature of the device example 2. By searching for empty entries. If it exceeds this, an entry is secured using the link mechanism which is a feature of the device example 3 and registered there.

【0085】この場合、再計算からリンクに移るための
回数は、:或る一定数を予め定めておく場合、:キ
ーや仮想キー、番地を用いた計算によって定める場合、
:特定の条件を満足した時に移る場合と様々な方法が
可能である。具体的には次の通りである。
In this case, the number of times to shift to the link from the recalculation is as follows: When a certain fixed number is determined in advance: When determined by calculation using keys, virtual keys, and addresses,
: Various methods are possible, including shifting to when a specific condition is satisfied. Specifically, it is as follows.

【0086】装置例4でも、与えられた1つのキーとレ
コードからなるエントリへのアクセスは、次のように2
段階の操作を経て行われる。先ず、第1段階で、仮想キ
ー発生部8は、キーkが与えられると(S91)、前記
与えられたキーkを元に、ハッシュ関数hにより仮想キ
ーk1 を生成する(S92)。次に第2段階で、番地発
生部3は、前記得られた仮想キーk1 より、実際のテー
ブルの大きさを反映させた番地aを生成{a←ad(k
1 )}する(S93)。
In the device example 4 as well, access to an entry consisting of a given key and a given record is as follows.
It is performed through the operation of steps. First, in a first step, the virtual key generating unit 8, the key k is given (S91), based on the given key k, and generates a virtual key k 1 by the hash function h (S92). Next, in a second stage, the address generation unit 3 generates an address a reflecting the actual size of the table from the obtained virtual key k 1 {a ← ad (k
1 ) Perform the operation (S93).

【0087】その後、制御部は前記番地aのテーブルに
空きがあるか否かを判断し(S94)、空きがあれば、
そのエントリにデータ(キーk+レコード)を登録して
(S96)、処理を終了する。しかし、前記S94の処
理でテーブルに空きがない場合、制御部は、前記与えら
れたキーkが登録済みのキーと同じか否か{key
(a)=k?}を判断する(S95)。
Thereafter, the control section determines whether or not there is a free space in the table of the address a (S94).
The data (key k + record) is registered in the entry (S96), and the process ends. However, if there is no free space in the table in the process of S94, the control unit determines whether the given key k is the same as the registered key or not.
(A) = k? } Is determined (S95).

【0088】その結果、同じであれば、処理を終了する
が、同じでなければ、制御部はリンクすべきか否かを判
断する(S97)。その結果、リンクすべきでないと判
断した場合は、番地再計算部4により、前記計算した仮
想キーk1 に基づいて番地aの再計算{k1 ←next
1 ,a←ad(k1 )}を行う(S98)。そし
て、S94の処理から繰り返して行う。
As a result, if they are the same, the process is terminated, but if they are not the same, the control unit determines whether or not to link (S97). As a result, when it is determined that the link should not be made, the address recalculation unit 4 recalculates the address a based on the calculated virtual key k 1 {k 1 ← next
k 1, a ← ad (k 1) carry out} (S98). Then, the process is repeated from the process of S94.

【0089】なお、S97の処理において、仮想キーk
1 を求める場合、再度与えられたキーkから仮想キーk
1 を計算し{k1 ←next(k1 ,k)}、その後、
前記計算した仮想キーk1 に基づいて番地aの再計算を
行うことも可能である。
In the process of S97, the virtual key k
When seeking 1 , the virtual key k is calculated from the given key k again.
1 is calculated {k 1 ← next (k 1 , k)}, and then
It is also possible to recalculate the addresses a, based on the virtual key k 1 mentioned above calculation.

【0090】一方、前記S97の処理において、リンク
すべきであると判断した場合、制御部5は、前記仮想キ
ーk1 と、既にテーブル7に登録されているキー
{k1 :key(a)}を何らかの比較機構を用いて比
較する(S99)。その結果、仮想キーk1 の方が大き
い時{k1 >key(a)}は、大きいキーのためのリ
ンクを辿る。また、仮想キーk1 の方が小さい時{k1
<key(a)}は、小さいキーのためのリンクを辿
る。
On the other hand, if it is determined in the processing of S97 that a link should be made, the control unit 5 determines the virtual key k 1 and the key #k 1 : key (a) already registered in the table 7. } Are compared using some kind of comparison mechanism (S99). As a result, when virtual key k 1 is larger, {k 1 > key (a)} follows the link for the larger key. When the virtual key k 1 is smaller, {k 1
<Key (a)} follows the link for the small key.

【0091】この時、大きいキーのためのリンクを辿る
場合は、テーブル7の大きい方に繋ぐリンクが空いてい
るか{greater−link(a)は空?}否かを
判断(S103)し、小さいキーのためのリンクを辿る
場合は、小さい方に繋ぐリンクが空いているか{les
s−link(a)は空?}否かを判断(S100)す
る。
At this time, when tracing the link for the large key, is there a link available to the larger one of the table 7? Is greater-link (a) empty? It is determined (S103) whether or not the link for the small key is to be traced.
Is s-link (a) empty? It is determined whether or not} (S100).

【0092】その結果、前記S103、S100の処理
でリンクが空きであると判断した時は、それは、そのキ
ーでの登録がなされていないことを意味するので、現在
登録しようとしているキーkのレコードを登録する。す
なわち、新エントリを作成し、登録する(S102)。
As a result, when it is determined that the link is empty in the processing of S103 and S100, it means that the registration with the key has not been performed, so that the record of the key k to be registered at present is recorded. Register That is, a new entry is created and registered (S102).

【0093】また、前記辿るためのリンクに既に登録さ
れているエントリが存在するならば(S103、S10
0)、更に小さい方のリンク、或いは大きい方のリンク
を辿る(S101、S104)。そして再び、前記S9
9の処理を繰り返すことで、登録されるべきキーkと、
それに対応したレコードは、木構造中の適切な場所に登
録されることになる。
If there is an entry already registered in the link for tracing (S103, S10
0), follow the smaller link or the larger link (S101, S104). And again, the S9
By repeating the process of No. 9, the key k to be registered and
The corresponding record is registered at an appropriate place in the tree structure.

【0094】§6:装置例5の処理説明・・・図11参
照 図11は装置例5の処理フローチャートである。以下、
図11に基づいて、装置例5の処理を説明する。なお、
S111〜S115は各処理ステップを示す。この装置
例5の処理では、或る構造を持つキーを用いた連想記憶
装置の利用の仕方をProlog言語(Program Logic
言語)、定理の検索を例として説明する。Prolog
言語におけるデータの基本構造は項である。前記項は、
例えば、‘f(a)’,‘g(a,b)’,‘h(a,
g(b,a))’などの木構造表現である。前記表現内
に変数を用いることができる。
§6: Description of processing of apparatus example 5—see FIG. 11 FIG. 11 is a processing flowchart of apparatus example 5. Less than,
The processing of the device example 5 will be described based on FIG. In addition,
S111 to S115 indicate each processing step. In the processing of the device example 5, a method of using an associative storage device using a key having a certain structure is described in a Prolog language (Program Logic).
Language) and theorem search will be described as examples. Prolog
The basic structure of data in a language is a term. The term is
For example, 'f (a)', 'g (a, b)', 'h (a,
g (b, a)) ′. Variables can be used in the expression.

【0095】例えば、‘f(X)’,‘h(X,g
(b,X))’の中の大文字名‘X’部分は変数であ
る。変数には任意の項を代入できる。例えば、‘f
(X)’の変数‘X’に‘g(a,Y)’を代入する
と、‘f(g,(a,Y))’という項が得られる。代
入が行われる時は、同じ変数には同じ表現が代入され
る。
For example, 'f (X)', 'h (X, g
(B, X)) 'is a variable. Arbitrary terms can be assigned to variables. For example, 'f
Substituting 'g (a, Y)' for the variable 'X' of (X) 'yields the term' f (g, (a, Y)) '. When an assignment is made, the same expression is assigned to the same variable.

【0096】例えば、‘h(X,g(b,X))’の変
数‘X’に‘a’を代入すると、‘h(a,g(b,
a))’が得られる。このように、変数は、代入のため
の場所を示す働きをしており、変数名としてどのような
名前を用いるかは重要ではない。例えば、‘f(X)’
と‘f(Y)’、そして、‘h(X,g(b,X))’
と‘h(Z,g(b,Z))’は表現としての見かけは
異なるが、同じ働きをする表現である。なお、前記a、
b、cのような小文字は定数であり、X、Yのような大
文字は変数である。
For example, when 'a' is substituted for a variable 'X' of 'h (X, g (b, X))', 'h (a, g (b,
a)) ′ is obtained. Thus, the variable serves as a place for the assignment, and it does not matter what name is used as the variable name. For example, 'f (X)'
And 'f (Y)' and 'h (X, g (b, X))'
And 'h (Z, g (b, Z))' have different appearances but have the same function. In addition, a,
Lowercase letters such as b and c are constants, and uppercase letters such as X and Y are variables.

【0097】ところで、正しいことが、証明された論理
式は定理と呼ばれる。一旦証明された定理は、データベ
ースに格納し、他の定理の証明に用いることが期待され
ている。このような状況において、定理であることが予
想される或る論理式が定理データベースに格納されてい
るかの検索の際、前記Prologの例と同様の変数の
利用に関する場合と同様に見かけは異なるが、実質的に
は同じ内容である場合、それを異なるものとして扱うの
ではなく、同じものとして扱いたい。
By the way, a logical formula proved to be correct is called a theorem. Once proved, theorem is expected to be stored in a database and used to prove other theorems. In such a situation, when a search is performed to determine whether a certain logical expression expected to be a theorem is stored in the theorem database, the appearance differs as in the case of using the same variables as in the above-described Prolog example. However, if the contents are substantially the same, we would like to treat them as the same rather than treating them differently.

【0098】見かけの異なる表現が実質同じであること
を判断する1つの手段として標準形へ変換して比べる方
法がある。例えば、‘(a∧b)∨c’を、‘(a∨
c)∧(b∨c)’と変換することで、‘・・・∧・・
・∧・・・’という標準形の式が得られる(∧:AN
D、∨:OR)。
As one means for determining that expressions having different appearances are substantially the same, there is a method of converting the expressions into a standard form and comparing them. For example, '(a∧b) ∨c'becomes' (a∨
c) By converting to ∧ (b∨c) ',
・ A standard expression of ∧ ... 'is obtained (∧: AN
D, Δ: OR).

【0099】この処理は、元のキーを直接使用しない
で、キーを標準形に変換し、それを登録/検索のキーと
して利用するものである。先ず、キーkが与えられると
(S111)、標準キー発生部12は、そのキーkを元
に、ハッシュ関数hにより標準キーsを生成する(S1
12)。
In this processing, the key is converted to a standard form without directly using the original key, and the converted key is used as a key for registration / retrieval. First, when a key k is given (S111), the standard key generation unit 12 generates a standard key s by a hash function h based on the key k (S1).
12).

【0100】次に、仮想キー発生部8は前記標準キーs
を元に、ハッシュ関数hにより仮想キーk1 を生成する
(S113)。その後、番地発生部3は、前記仮想キー
1を元に、関数adにより番地aを生成する(S11
4)。そして、制御部は、前記生成した番地aによりテ
ーブル7の処理(エントリへの登録/検索処理)を行う
(S115)。
Next, the virtual key generator 8 sets the standard key s
Based on, to generate a virtual key k 1 by the hash function h (S113). Thereafter, the address generation unit 3, based on the virtual key k 1, to generate an address a by the function ad (S11
4). Then, the control unit performs the processing of the table 7 (registration / search processing for the entry) based on the generated address a (S115).

【0101】前記のように、元のキーを直接使用しない
で、キーを標準形に変換し、それを登録/検索のキーと
して利用する。このようにすれば、標準キーの利用によ
り、元のキーによる検索のみならず、標準キーによる検
索も可能となり、一種の意味検索が可能になる。また、
衝突を減らして処理の高速化を可能にできる。更に、キ
ーが或る構造を持つ時、それを反映した仮想キーを用い
ることで、連想記憶装置のアクセスの高速化のみなら
ず、アクセスの柔軟性をも向上させることができる。
As described above, instead of directly using the original key, the key is converted to a standard form and is used as a key for registration / search. In this way, by using the standard key, not only the search by the original key but also the search by the standard key is possible, and a kind of semantic search becomes possible. Also,
Collisions can be reduced and processing can be speeded up. Further, when the key has a certain structure, by using a virtual key reflecting the structure, not only the access speed of the associative memory device can be increased but also the access flexibility can be improved.

【0102】§7:装置例6の処理説明・・・図12参
照 図12は装置例6の処理フローチャートである。以下、
図12に基づいて、装置例6の処理を説明する。なお、
S121〜S135は各処理ステップを示す。この処理
では、先ず、キーkが与えられると(S121)、標準
キー発生部12は、そのキーkを元に、ハッシュ関数s
kにより標準キーsを生成する(S122)。
§7: Description of processing of apparatus example 6—see FIG. 12 FIG. 12 is a processing flowchart of apparatus example 6. Less than,
The process of the device example 6 will be described based on FIG. In addition,
S121 to S135 indicate each processing step. In this process, first, when a key k is given (S121), the standard key generation unit 12 uses the hash function s based on the key k.
A standard key s is generated using k (S122).

【0103】次に、仮想キー発生部8は前記標準キーs
を元に、ハッシュ関数hにより仮想キーk1 を生成する
(S123)。その後、番地発生部3は、前記仮想キー
1を元に、ハッシュ関数adにより番地aを生成する
(S124)。その後、制御部は前記番地aのテーブル
に空きがあるか否かを判断し(S125)、空きがあれ
ば、そのエントリにデータ(キーk+レコードのデー
タ)を登録して(S127)、処理を終了する。なお、
用途に応じて標準キーsも登録される場合も考えられ
る。
Next, the virtual key generator 8 sets the standard key s
Based on, it generates a virtual key k 1 by the hash function h (S123). Thereafter, the address generation unit 3, based on the virtual key k 1, to generate an address a by the hash function ad (S124). Thereafter, the control unit determines whether or not there is a free space in the table at the address a (S125). If there is a free space, the data (key k + record data) is registered in the entry (S127), and the process is performed. finish. In addition,
The standard key s may also be registered depending on the use.

【0104】しかし、前記S125の処理でテーブルに
空きがない場合、制御部は、前記与えられたキーkが登
録済みのキーと同じか否か{key(a)=k?}を判
断する(S126)。その結果、同じであれば、処理を
終了するが、同じでなければ、制御部はリンクすべきか
否かを判断する(S128)。
However, if there is no space in the table in the process of S125, the control unit determines whether or not the given key k is the same as the registered key {key (a) = k? } Is determined (S126). As a result, if they are the same, the process ends, but if they are not the same, the control unit determines whether or not to link (S128).

【0105】その結果、リンクすべきでないと判断した
場合は、番地再計算部4により、前記計算した仮想キー
1 に基づいて番地aの再計算{k1 ←next
1 ,a←ad(k1 )}を行う(S129)。そし
て、S125の処理から繰り返して行う。なお、前記S
129の処理において、仮想キーk1 を求める場合、再
度与えられたキーkから仮想キーk1 を計算し{k1
next(k1 ,k)}、その後、前記計算した仮想キ
ーk1 に基づいて番地aの再計算を行うことも可能であ
る。
As a result, if it is determined that the link should not be made, the address recalculating section 4 recalculates the address a based on the calculated virtual key k 1 {k 1 ← next
k 1 , a ← ad (k 1 )} is performed (S129). Then, the process is repeated from the process of S125. Note that the S
In process 129, when obtaining the virtual key k 1, to calculate the virtual key k 1 from the key k given again {k 1
Next (k 1 , k)}, and then the address a can be recalculated based on the calculated virtual key k 1 .

【0106】一方、前記S128の処理において、リン
クすべきであると判断した場合、制御部5は、前記仮想
キーk1 と、既にテーブル7に登録されているキー{k
1 :key(a)}を何らかの比較機構を用いて比較す
る(S130)。その結果、仮想キーk1 の方が大きい
時{k1 >key(a)}は、大きいキーのためのリン
クを辿る。また、仮想キーk1 の方が小さい時{k1
key(a)}は、小さいキーのためのリンクを辿る。
On the other hand, if it is determined in step S128 that a link should be made, the control unit 5 determines that the virtual key k 1 and the key #k already registered in the table 7
1 : key (a)} is compared using some kind of comparison mechanism (S130). As a result, when virtual key k 1 is larger, {k 1 > key (a)} follows the link for the larger key. Also, when the virtual key k 1 is smaller, {k 1 <
key (a)} follows the link for the small key.

【0107】この時、大きいキーのためのリンクを辿る
場合は、テーブル7の大きい方に繋ぐリンクが空いてい
るか{greater−link(a)は空?}否かを
判断(S134)し、小さいキーのためのリンクを辿る
場合は、小さい方に繋ぐリンクが空いているか{les
s−link(a)は空?}否かを判断(S131)す
る。
At this time, when tracing the link for the large key, is the link connecting to the larger one of the table 7 empty? Is greater-link (a) empty? It is determined whether or not there is a link (S134), and if the link for the small key is to be followed, it is determined whether or not the link connecting to the smaller key is free.
Is s-link (a) empty? It is determined whether or not} (S131).

【0108】その結果、前記S131、S134の処理
でリンクが空きであると判断した時は、それは、そのキ
ーでの登録がなされていないことを意味するので、現在
登録しようとしているキーkのレコードを登録する。す
なわち、新エントリを作成し、登録する(S133)。
As a result, when it is determined that the link is empty in the processing of S131 and S134, it means that the registration with the key is not performed, and the record of the key k which is to be registered at present is recorded. Register That is, a new entry is created and registered (S133).

【0109】また、前記辿るためのリンクに既に登録さ
れているエントリが存在するならば(S131、S13
4)、更に小さい方のリンク、或いは大きい方のリンク
を辿る(S132、S135)。そして再び、前記S1
30の処理を繰り返すことで、登録されるべきキーk
と、それに対応したレコードは、木構造中の適切な場所
に登録されることになる。
If there is an entry already registered in the link for tracing (S131, S13
4) Follow the smaller link or the larger link (S132, S135). And again, the S1
By repeating the process of step 30, the key k to be registered
And the corresponding record is registered at an appropriate place in the tree structure.

【0110】§8:実験例1の説明・・・図13参照 図13は実験例1の説明図である。実験例1は、図2に
示した装置例2の開番地法ハッシュ装置を使用して実験
を行った例である。この実験では、図示のデータを使用
して実験し、実験結果を得た。
§8: Description of Experimental Example 1—See FIG. 13 FIG. 13 is an explanatory diagram of Experimental Example 1. Experimental Example 1 is an example in which an experiment was performed using the open address hash device of Device Example 2 shown in FIG. In this experiment, an experiment was performed using the data shown in the figure, and an experiment result was obtained.

【0111】前記実験データとしては、キーkが、a,
aa,ab,abc,b,bc,cd,cc,bb,
d,e,・・・・bcbからなる19個のキー(文字
列)であり、テーブルの大きさ(番地数)は25とし
た。この場合、1次衝突の回数は9回であった。そし
て、しかし、2次衝突回数は18回となり、従来例に比
べて大幅に減少した(従来例の2次衝突は78回であっ
た)。これにより衝突回数が減少し、処理の高速化が可
能になることが実証できた。
As the experimental data, the key k is a,
aa, ab, abc, b, bc, cd, cc, bb,
19 keys (character strings) consisting of d, e,... bcb, and the size of the table (number of addresses) was 25. In this case, the number of primary collisions was nine. However, the number of secondary collisions was 18, which was significantly reduced as compared with the conventional example (the number of secondary collisions in the conventional example was 78). As a result, it was proved that the number of collisions was reduced and that the processing could be speeded up.

【0112】§5:実験例2の説明・・・図14参照 図14は実験例2の説明図である。実験例2は、図3に
示した装置例3の連鎖法ハッシュ装置を使用して実験を
行った例である。この実験では、前記実験例1と同じデ
ータを使用し、実験結果を得た。
§5: Description of Experimental Example 2—See FIG. 14 FIG. 14 is an explanatory diagram of Experimental Example 2. Experimental Example 2 is an example in which an experiment was performed using the chain method hash device of Device Example 3 shown in FIG. In this experiment, the same data as in Experimental Example 1 was used, and an experimental result was obtained.

【0113】すなわち、実験データとしては、前記実験
例1と同じように、キーkが、a,aa,ab,ab
c,b,bc,cd,cc,bb,d,e,・・・・b
cbからなる19個のキー(文字列)であり、テーブル
の大きさ(番地数)は25とした。この場合、1次衝突
の回数は9回であったが、2分岐リンクの深さは、従来
例に比べて図示のように浅かった(2分岐の回数が少な
い)。これにより衝突回数が減少し、処理の高速化が可
能になることが実証できた。
That is, as the experimental data, the key k is a, aa, ab, ab
c, b, bc, cd, cc, bb, d, e,.
19 keys (character strings) consisting of cb, and the size (number of addresses) of the table was 25. In this case, the number of primary collisions was nine, but the depth of the two-branch link was shallower than that of the conventional example as shown in the figure (the number of two-branch was smaller). As a result, it was proved that the number of collisions was reduced and that the processing could be speeded up.

【0114】[0114]

【発明の効果】以上説明したように、本発明によれば次
のような効果がある。 (1) :仮想キーを有効に用いることで、データの片寄り
を少なくし、衝突(特に、2次衝突)を減少させること
で、理想の状態に近い高速な連想記憶装置(ハッシュ装
置)を実現させることができる。また、キーが或る構造
を持つ時、それを反映した仮想キーを用いることで、連
想記憶装置のアクセスの高速化のみならず、アクセスの
柔軟性をも向上させることができる。
As described above, the present invention has the following effects. (1): A high-speed associative memory device (hash device) close to an ideal state can be achieved by effectively using a virtual key to reduce data deviation and reduce collisions (especially secondary collisions). Can be realized. Further, when the key has a certain structure, by using a virtual key reflecting the structure, not only the access speed of the associative storage device can be increased but also the access flexibility can be improved.

【0115】(2) :仮想キーを利用することで、連想記
憶装置の一種であるハッシュ装置(ハッシング技法を使
用した装置)における衝突回数を減少させることができ
る。そのため、各エントリに対するデータの登録、及び
検索処理の高速化が達成可能である。
(2): By using a virtual key, the number of collisions in a hash device (a device using a hashing technique), which is a type of associative storage device, can be reduced. Therefore, it is possible to achieve high-speed data registration and search processing for each entry.

【0116】(3) :標準キーの利用により、元のキーに
よる検索のみならず、標準キーによる検索も可能にな
り、一種の意味検索が可能になる。前記効果の外、各請
求項に対応して次のような効果がある。
(3) By using the standard key, not only the search by the original key but also the search by the standard key is possible, and a kind of semantic search becomes possible. In addition to the above effects, the following effects are provided corresponding to each claim.

【0117】(4) :請求項1では、第1段階で仮想キー
発生部が与えられたキーを元に、ハッシュ関数により仮
想キーを発生させ、第2段階で番地発生部が、仮想キー
から、実際のテーブルの大きさを反映させた番地を発生
させる。このように、従来、1つの連想記憶装置で、一
度で行っていた番地計算処理を2段階に分けることで、
仮想キー発生部と、番地発生部は、その目的に合った変
換法を用いることができる。仮想キー発生部は、偏りを
持って出現するキーに対してその偏りの少ない仮想キー
を生成することで衝突を減少させることが可能になる。
(4): In the first aspect, the virtual key generation unit generates a virtual key by a hash function based on the given key in the first stage, and the address generation unit generates the virtual key from the virtual key in the second stage. Then, an address reflecting the size of the actual table is generated. As described above, conventionally, the address calculation processing performed once by one associative storage device is divided into two stages,
The virtual key generator and the address generator can use a conversion method suitable for the purpose. The virtual key generation unit can reduce collision by generating a virtual key with a small bias for keys that appear with a bias.

【0118】(5) :請求項2では、番地再計算部は、番
地発生部で番地を発生させて衝突が起こった場合、仮想
キーを元に番地の再計算を行う。この場合、番地の再計
算において仮想キーは一様に出現するため、これを用い
ることで、再計算の際にも、偏りの少ない新番地が容易
に計算されることになり、その結果2次衝突を少なくす
ることができる。
(5): In claim 2, the address recalculating section recalculates the address based on the virtual key when the address is generated by the address generating section and a collision occurs. In this case, since the virtual key appears uniformly in the recalculation of the address, the use of the virtual key makes it possible to easily calculate a new address with less bias even in the recalculation. Collisions can be reduced.

【0119】(6) :請求項3では、木構造生成制御手段
は、番地発生部で番地を発生させて衝突が起こった場
合、仮想キーの大小比較により、リンクを利用して木構
造を生成する。この場合、仮想キーが一致した場合のみ
キーの大小比較によって全体の比較が行われる。仮想キ
ーの出現の偏りを無くしたものなので、例えば、リンク
が2分岐木であれば、2つのキーを比較する場合と比
べ、仮想キーの比較においては、大小の出現率がほぼ1
/2になる。
(6): In the third aspect, the tree structure generation control means generates a tree structure using a link by comparing the magnitude of virtual keys when an address is generated by the address generation unit and a collision occurs. I do. In this case, only when the virtual keys match, the whole comparison is performed by comparing the magnitudes of the keys. Since the bias of the appearance of the virtual keys is eliminated, for example, if the link is a two-branch tree, the appearance ratio of the large and small is almost 1 in the comparison of the virtual keys as compared with the case of comparing the two keys.
/ 2.

【0120】その結果、作成される木構造は理想状態で
あるバランスのとれた木に近く、エントリ数に対する木
の深さがほぼ最小値になることが期待される。その結
果、前記エントリに対する登録、検索のための木構造の
探索回数が減少し、処理の効率向上に貢献する。
As a result, it is expected that the created tree structure is close to a well-balanced tree which is an ideal state, and that the depth of the tree with respect to the number of entries becomes substantially the minimum value. As a result, the number of searches for the tree structure for registration and search for the entry is reduced, which contributes to an improvement in processing efficiency.

【0121】(7) :請求項4では、標準キー発生部は、
キーが与えられると、与えられたキーを元にハッシュ関
数を使用して標準キーを発生させ、仮想キー発生部は、
標準キーを元にハッシュ関数を使用して仮想キーを発生
させる。その後、番地発生部は、仮想キーを元に番地を
発生させる。
(7): According to claim 4, the standard key generation section comprises:
When a key is given, a standard key is generated using a hash function based on the given key.
Generate a virtual key using a hash function based on a standard key. Thereafter, the address generation unit generates an address based on the virtual key.

【0122】前記のように、元のキーを直接使用しない
で、キーを標準形に変換し、それを登録/検索のキーと
して利用する。このようにすれば、標準キーの利用によ
り、元のキーによる検索のみならず、標準キーによる検
索も可能となり、一種の意味検索が可能になる。また、
衝突を減らして処理の高速化を可能にできる。更に、キ
ーが或る構造を持つ時、それを反映した仮想キーを用い
ることで、連想記憶装置のアクセスの高速化のみなら
ず、アクセスの柔軟性をも向上させることができる。
As described above, instead of directly using the original key, the key is converted to a standard form and is used as a key for registration / search. In this way, by using the standard key, not only the search by the original key but also the search by the standard key is possible, and a kind of semantic search becomes possible. Also,
Collisions can be reduced and processing can be speeded up. Further, when the key has a certain structure, by using a virtual key reflecting the structure, not only the access speed of the associative memory device can be increased but also the access flexibility can be improved.

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

【図1】本発明の原理説明図である。FIG. 1 is a diagram illustrating the principle of the present invention.

【図2】実施の形態における装置例1、2の説明図であ
る。
FIG. 2 is an explanatory diagram of device examples 1 and 2 in the embodiment.

【図3】実施の形態における装置例3の説明図である。FIG. 3 is an explanatory diagram of an apparatus example 3 in the embodiment.

【図4】実施の形態における装置例4の説明図である。FIG. 4 is an explanatory diagram of an apparatus example 4 in the embodiment.

【図5】実施の形態における装置例5の説明図である。FIG. 5 is an explanatory diagram of an apparatus example 5 in the embodiment.

【図6】実施の形態における装置例6の説明図である。FIG. 6 is an explanatory diagram of an apparatus example 6 in the embodiment.

【図7】実施の形態における装置例1の処理フローチャ
ートである。
FIG. 7 is a processing flowchart of an apparatus example 1 in the embodiment.

【図8】実施の形態における装置例2の処理フローチャ
ートである。
FIG. 8 is a processing flowchart of an apparatus example 2 in the embodiment.

【図9】実施の形態における装置例3の処理フローチャ
ートである。
FIG. 9 is a processing flowchart of an apparatus example 3 in the embodiment.

【図10】実施の形態における装置例4の処理フローチ
ャートである。
FIG. 10 is a processing flowchart of an apparatus example 4 in the embodiment.

【図11】実施の形態における装置例5の処理フローチ
ャートである。
FIG. 11 is a processing flowchart of an apparatus example 5 in the embodiment.

【図12】実施の形態における装置例6の処理フローチ
ャートである。
FIG. 12 is a processing flowchart of an example 6 of the apparatus according to the embodiment.

【図13】実施の形態における実験例1の説明図であ
る。
FIG. 13 is an explanatory diagram of Experimental Example 1 in the embodiment.

【図14】実施の形態における実験例2の説明図であ
る。
FIG. 14 is an explanatory diagram of Experimental Example 2 in the embodiment.

【図15】従来例の説明図1である。FIG. 15 is an explanatory diagram 1 of a conventional example.

【図16】従来例の説明図2である。FIG. 16 is an explanatory diagram 2 of the conventional example.

【図17】従来の開番地法ハッシュ装置の処理フローチ
ャートである。
FIG. 17 is a processing flowchart of a conventional open address hashing device.

【図18】従来の連鎖法ハッシュ装置の処理フローチャ
ートである。
FIG. 18 is a processing flowchart of a conventional chain hash device.

【図19】従来の実験例1の説明図である。FIG. 19 is an explanatory diagram of Conventional Experimental Example 1.

【図20】従来の実験例2の説明図である。FIG. 20 is an explanatory diagram of Conventional Experimental Example 2.

【符号の説明】[Explanation of symbols]

3 番地発生部 4 番地再計算部 7 テーブル 8 仮想キー発生部 12 標準キー発生部 3 address generator 4 address recalculator 7 table 8 virtual key generator 12 standard key generator

Claims (4)

【特許請求の範囲】[Claims] 【請求項1】1つのキーとそれに対応したレコードの組
からなるエントリを複数持ち、各エントリに番地が振ら
れたテーブルと、与えられたキーを元にハッシュ関数を
使用して仮想キーを発生させる仮想キー発生部と、前記
仮想キー発生部で発生させた仮想キーを元に、前記テー
ブルの番地を発生させる番地発生部を備え、ハッシング
法を用いて発生させた番地により前記各エントリへのア
クセスを可能にしたことを特徴とする連想記憶装置。
1. A virtual key is generated by using a hash function based on a table having a plurality of entries each comprising a set of one key and a record corresponding to the key, and assigning an address to each entry, and a given key. A virtual key generation unit for generating an address of the table based on a virtual key generated by the virtual key generation unit, and an address generated by using a hashing method to each entry. An associative storage device characterized in that access is enabled.
【請求項2】前記番地発生部で番地を発生させて衝突が
起こった場合、前記仮想キー発生部で発生させた仮想キ
ーを元に、番地の再計算を行う番地再計算部を備えてい
ることを特徴とした請求項1記載の連想記憶装置。
2. An address recalculating section for recalculating an address based on a virtual key generated by the virtual key generating section when an address is generated by the address generating section and a collision occurs. 2. The associative memory device according to claim 1, wherein:
【請求項3】前記テーブルの各エントリに複数分岐のリ
ンクを設けると共に、前記番地発生部で番地を発生させ
て衝突が起こった場合、前記仮想キーの大小比較によ
り、前記リンクを利用して木構造を生成する木構造生成
制御手段を備えていることを特徴とした請求項1記載の
連想記憶装置。
3. A multi-branch link is provided in each entry of the table, and when a collision occurs by generating an address in the address generating section, a tree is generated by using the link by comparing the virtual keys in magnitude. 2. The associative storage device according to claim 1, further comprising tree structure generation control means for generating a structure.
【請求項4】1つのキーとそれに対応した標準キーとレ
コードの組からなるエントリを複数持ち、各エントリに
番地が振られたテーブルと、与えられたキーを元にハッ
シュ関数を使用して標準キーを発生させる標準キー発生
部と、前記標準キー発生部で発生させた標準キーを元に
ハッシュ関数を使用して仮想キーを発生させる仮想キー
発生部と、前記仮想キー発生部で発生させた仮想キーを
元に、前記テーブルの番地を発生させる番地発生部を備
え、ハッシング法を用いて発生させた番地により前記各
エントリへのアクセスを可能にしたことを特徴とする連
想記憶装置。
4. A table having a plurality of entries each consisting of one key and a set of a standard key and a record corresponding to the key, a table in which addresses are assigned to each entry, and a standard using a hash function based on a given key. A standard key generator for generating a key, a virtual key generator for generating a virtual key using a hash function based on the standard key generated by the standard key generator, and a virtual key generator for generating the virtual key. An associative storage device, comprising: an address generation unit that generates an address of the table based on a virtual key, wherein each of the entries can be accessed by an address generated by using a hashing method.
JP8206971A 1996-08-06 1996-08-06 Associative storage device Withdrawn JPH1049545A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8206971A JPH1049545A (en) 1996-08-06 1996-08-06 Associative storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8206971A JPH1049545A (en) 1996-08-06 1996-08-06 Associative storage device

Publications (1)

Publication Number Publication Date
JPH1049545A true JPH1049545A (en) 1998-02-20

Family

ID=16532044

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8206971A Withdrawn JPH1049545A (en) 1996-08-06 1996-08-06 Associative storage device

Country Status (1)

Country Link
JP (1) JPH1049545A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008085866A (en) * 2006-09-28 2008-04-10 Oki Electric Ind Co Ltd Data storage method, data search method, and circuits for data search and data deletion
US7587574B2 (en) 2004-07-29 2009-09-08 Fujitsu Limited Address translation information storing apparatus and address translation information storing method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7587574B2 (en) 2004-07-29 2009-09-08 Fujitsu Limited Address translation information storing apparatus and address translation information storing method
JP2008085866A (en) * 2006-09-28 2008-04-10 Oki Electric Ind Co Ltd Data storage method, data search method, and circuits for data search and data deletion

Similar Documents

Publication Publication Date Title
US7565343B2 (en) Search apparatus and search management method for fixed-length data
US4644471A (en) Method for processing a data base
JPH11212980A (en) Production of index and retrieval method
JP2003256265A (en) Search memory, controller for memory search, and memory search method
JP2002313086A (en) Information retrieving device
JPH08129551A (en) Hash system
JPS61210478A (en) Vector processing device
JPH1049545A (en) Associative storage device
JPH06251076A (en) Device and method for retrieving data base
JP2880199B2 (en) Symbol string search method and search device
JPH06139280A (en) File management system
JP5041003B2 (en) Search device and search method
JP2000090115A (en) Index generating method and retrieval method
JP2003296157A (en) Data storage device, data processor, data processing method, and data processing program
US7290085B2 (en) Method and system for flexible and efficient protocol table implementation
CN117743338B (en) Keyword matching method and device based on double hash
US5996053A (en) Method and apparatus for fetching classified and stored information
JPH07210565A (en) Method and device for retrieving information
JPS6046456B2 (en) data access device
JPS63271525A (en) Data processor
JPH01259418A (en) Character string retrieving device
KR0141906B1 (en) Hardware driving device for searching data
JPH06274701A (en) Word collating device
JP2001195413A (en) Device and method for retrieving character string
JP2020004132A (en) Retrieval device, retrieval method, program, and recording medium

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20031007