JPH064585A - 構造化データベースにおけるポインター圧縮の改良された方法及び装置 - Google Patents
構造化データベースにおけるポインター圧縮の改良された方法及び装置Info
- Publication number
- JPH064585A JPH064585A JP3117689A JP11768991A JPH064585A JP H064585 A JPH064585 A JP H064585A JP 3117689 A JP3117689 A JP 3117689A JP 11768991 A JP11768991 A JP 11768991A JP H064585 A JPH064585 A JP H064585A
- Authority
- JP
- Japan
- Prior art keywords
- node
- pointer
- character
- compressed
- bit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】 (修正有)
【目的】ポインター圧縮を通して不経済な空ポインター
を除去し、かつ高速論理物理インデックス変換を可能に
する方法及び装置を提供する。 【構成】データベース構造内の圧縮されたノードに対す
る方法及び装置が開示される。各圧縮されたノードは特
定の写像機能と関連し、ノード内の各要素が特定の識別
コードが割り当てられ、検査されるべき文字は第1の部
分及び第2の部分を有する物理的アドレスへ変換され、
この第1の部分は圧縮ノード内の特定の要素にインデッ
クスを付加するのに使用され、第2の部分は、選択され
た要素が検索文字に対応することを確認するのに使用さ
れる。
を除去し、かつ高速論理物理インデックス変換を可能に
する方法及び装置を提供する。 【構成】データベース構造内の圧縮されたノードに対す
る方法及び装置が開示される。各圧縮されたノードは特
定の写像機能と関連し、ノード内の各要素が特定の識別
コードが割り当てられ、検査されるべき文字は第1の部
分及び第2の部分を有する物理的アドレスへ変換され、
この第1の部分は圧縮ノード内の特定の要素にインデッ
クスを付加するのに使用され、第2の部分は、選択され
た要素が検索文字に対応することを確認するのに使用さ
れる。
Description
【0001】
【産業上の利用分野】本発明は、構造化されたポインタ
ー圧縮を達成する改良された方法及び装置に関する。
ー圧縮を達成する改良された方法及び装置に関する。
【0002】
【従来の技術】I.データベース構造 計算機化データベースは、検索が容易な様に編成された
情報の収集である。この様なデータベースは一般に構造
化パターンで編成されている。この様な構造の一つがT
RIE構造として知られている。
情報の収集である。この様なデータベースは一般に構造
化パターンで編成されている。この様な構造の一つがT
RIE構造として知られている。
【0003】伝統的なTRくた構造化されたデータベー
スにおいて、情報の位置はTRIEノードを採用する検
索をとおして突き止められる。この様なTRIEノード
はメモリーによって支援され、各ノードは16個の要素
のリストを含む。各要素は16の可能な文字の一つに対
応する。この様なTRIE構造は使用すると、任意の長
さの文字列ワードを検索することができる。第1に、検
索される文字列ワードは数個の文字に分割される。各々
は上記の例(即ち16要素ノード)に対しては4ビット
長である。次に検索される第1の文字が第1のTRIE
ノードのインデックスとして使用される。
スにおいて、情報の位置はTRIEノードを採用する検
索をとおして突き止められる。この様なTRIEノード
はメモリーによって支援され、各ノードは16個の要素
のリストを含む。各要素は16の可能な文字の一つに対
応する。この様なTRIE構造は使用すると、任意の長
さの文字列ワードを検索することができる。第1に、検
索される文字列ワードは数個の文字に分割される。各々
は上記の例(即ち16要素ノード)に対しては4ビット
長である。次に検索される第1の文字が第1のTRIE
ノードのインデックスとして使用される。
【0004】検索される文字に対応する要素は3つの形
態の一つとすることができる。 (1) 要素は別のTRIEノードを指し示すノード(NO
DE)ポインターとすることができる。ノードポインタ
ーは、検索される文字に関して、データベース内のエン
トリが検索されているストリングワードと一致すること
を示す。ノードポインターが第1の文字を第1のノード
内へのインデックスとして使用されていると、次に文字
列内の第2の文字がノードポインターによって参照され
るノード内へのインデックスとして使用される。別のノ
ードポインターが見出される場合、この繰り返され、今
度は文字列ワードの第3の文字をインデックスとして使
用する。
態の一つとすることができる。 (1) 要素は別のTRIEノードを指し示すノード(NO
DE)ポインターとすることができる。ノードポインタ
ーは、検索される文字に関して、データベース内のエン
トリが検索されているストリングワードと一致すること
を示す。ノードポインターが第1の文字を第1のノード
内へのインデックスとして使用されていると、次に文字
列内の第2の文字がノードポインターによって参照され
るノード内へのインデックスとして使用される。別のノ
ードポインターが見出される場合、この繰り返され、今
度は文字列ワードの第3の文字をインデックスとして使
用する。
【0005】(2) ノード内で参照することのできる要素
の第2の形態は空(NIL)ポインターである。空ポイ
ンターは、データベースが、この点を越えて検索されて
いるストリングと一致するエントリを保有しないことを
示す。空ポインターが見出された時、検索が停止する。 (3) ノード内の第3の可能な要素はリーフ(LEAF)
ポインターである。リープポインターはデータベース内
の要素で一致が見出されたことを示す。リーフポインイ
ターは連続する検索の端部を書き印し、或る別のプロセ
スの開始を指示することができる。
の第2の形態は空(NIL)ポインターである。空ポイ
ンターは、データベースが、この点を越えて検索されて
いるストリングと一致するエントリを保有しないことを
示す。空ポインターが見出された時、検索が停止する。 (3) ノード内の第3の可能な要素はリーフ(LEAF)
ポインターである。リープポインターはデータベース内
の要素で一致が見出されたことを示す。リーフポインイ
ターは連続する検索の端部を書き印し、或る別のプロセ
スの開始を指示することができる。
【0006】伝統的なTREI構造化されたデータベー
スを使用する検索の例が図1に与えれている。図1は伝
統的なTREI構造データベース(10)を図示してい
る。TREI構造はA(11)、B(13)、C(1
5)及びD(17)を含む。文字列(00)が検索され
るべき例示的なワードとして図示されている。理解でき
る様に、文字列ワード(00)は、それぞれ4ビット長
の4つの文字(01、02、03、04)に分割され
る。
スを使用する検索の例が図1に与えれている。図1は伝
統的なTREI構造データベース(10)を図示してい
る。TREI構造はA(11)、B(13)、C(1
5)及びD(17)を含む。文字列(00)が検索され
るべき例示的なワードとして図示されている。理解でき
る様に、文字列ワード(00)は、それぞれ4ビット長
の4つの文字(01、02、03、04)に分割され
る。
【0007】第1の文字(01)は第1のノード、ノー
ドA(11)へのインデックスとして使用される。第1
の文字は1110、又は16進(以下Eh)のEである
ので、15番目の要素(12)が検査される。この例で
は、Eh(12)に対応する要素がノードB(13)を
指し示すノードポインターを含む。従って、検索はノー
ドBで続く。
ドA(11)へのインデックスとして使用される。第1
の文字は1110、又は16進(以下Eh)のEである
ので、15番目の要素(12)が検査される。この例で
は、Eh(12)に対応する要素がノードB(13)を
指し示すノードポインターを含む。従って、検索はノー
ドBで続く。
【0008】文字ワード(02)の第2の文字、Ah
は、別のノードポインターが見出される場所であるノー
ドB(13)へのインデックスとして使用される。この
ポインターはノードCを指し示し、従って検索は検索語
の第3の文字(03)、8hを使用するノードCで続行
する。ノードCにおいて、8hに対応する要素はノード
Dへのポインターである。
は、別のノードポインターが見出される場所であるノー
ドB(13)へのインデックスとして使用される。この
ポインターはノードCを指し示し、従って検索は検索語
の第3の文字(03)、8hを使用するノードCで続行
する。ノードCにおいて、8hに対応する要素はノード
Dへのポインターである。
【0009】このプロセスは、ノードD(17)でリー
フポインターが第4の文字(04)、3hに対応する要
素で見出される。この点で、検索が完了し、ポインター
によって参照されるプロセスが開始される。文字列ワー
ドの第4の特徴が0hであると、0h(18)に対応す
る要素が選択される。空ポインターがこの要素に位置す
るので、文字列ワード等と一致する要素がデータベース
内にないから検索が終了する。 II. ポインター圧縮 例示のTRIE構造が図示する様に、各ノードはその1
6の要素をサポートするためにある程度のメモリーを必
要とする。これらの要素の多くは使用価値のない情報
(即ち、空ポインター)を本質的に含むので、メモリー
空間の大部分が浪費される。機能及び経済性の理由のた
め、TRIEノードを支持するために必要とされるメモ
リーの量を最小化することが望まれる。
フポインターが第4の文字(04)、3hに対応する要
素で見出される。この点で、検索が完了し、ポインター
によって参照されるプロセスが開始される。文字列ワー
ドの第4の特徴が0hであると、0h(18)に対応す
る要素が選択される。空ポインターがこの要素に位置す
るので、文字列ワード等と一致する要素がデータベース
内にないから検索が終了する。 II. ポインター圧縮 例示のTRIE構造が図示する様に、各ノードはその1
6の要素をサポートするためにある程度のメモリーを必
要とする。これらの要素の多くは使用価値のない情報
(即ち、空ポインター)を本質的に含むので、メモリー
空間の大部分が浪費される。機能及び経済性の理由のた
め、TRIEノードを支持するために必要とされるメモ
リーの量を最小化することが望まれる。
【0010】浪費されるメモリーの或る部分を除去する
ためには、従来の技術のデータベースは「ポインター圧
縮」として知られる方法を使用している。伝統的なポイ
ンター圧縮において、特定のノードの空ポインターは、
このノードの非空ポインターを連続するリスト、即ち圧
縮されたノードへ圧縮することにより除去される。この
様なポインター圧縮の例が図2に与えられている。そこ
では、4つの非空要素を有するノード(20)が4つの
みの、連続する、非空要素を有するノード(22)へ圧
縮される。この方法を使用することにより、16の要素
ノードが1及び15の非空要素からなるノードへ圧縮す
ることができる。理解できる様に、完全ノードからのポ
インターは完全ノード内で見出される様に圧縮ノード内
にコピーされる。
ためには、従来の技術のデータベースは「ポインター圧
縮」として知られる方法を使用している。伝統的なポイ
ンター圧縮において、特定のノードの空ポインターは、
このノードの非空ポインターを連続するリスト、即ち圧
縮されたノードへ圧縮することにより除去される。この
様なポインター圧縮の例が図2に与えられている。そこ
では、4つの非空要素を有するノード(20)が4つの
みの、連続する、非空要素を有するノード(22)へ圧
縮される。この方法を使用することにより、16の要素
ノードが1及び15の非空要素からなるノードへ圧縮す
ることができる。理解できる様に、完全ノードからのポ
インターは完全ノード内で見出される様に圧縮ノード内
にコピーされる。
【0011】ノードが一旦圧縮されると、ノード内の要
素は検索文字によって直接イッデックを付けることが最
早出来なくなる。検索文字は今「論理」アドレス(即
ち、圧縮がない場合に、要素があるべき位置)を表す。
実際の要素は「物理」アドレス(要素がメモリ内に位置
される場所)に存在する。ポインター圧縮をサポートす
るために、論理物理インデックス変換を与える或る手段
が必要とされる。過去において、16ビット「ビットマ
スク」がこの様な遷移を達成するために使用された。
素は検索文字によって直接イッデックを付けることが最
早出来なくなる。検索文字は今「論理」アドレス(即
ち、圧縮がない場合に、要素があるべき位置)を表す。
実際の要素は「物理」アドレス(要素がメモリ内に位置
される場所)に存在する。ポインター圧縮をサポートす
るために、論理物理インデックス変換を与える或る手段
が必要とされる。過去において、16ビット「ビットマ
スク」がこの様な遷移を達成するために使用された。
【0012】ビットマスク16ビットコードであり、圧
縮の前にノードの特徴を記述する情報を提供する。完全
なノードが一度形成されると、ノード内の各要素が検査
される。ノード内の全ての非空ポインターがビットマス
ク内の対応するビットを1に設定させる。図2の例示ノ
ード(20)に対しては、要素1h、3h、7h及びB
hは全て1に設定されるであろう。これは非空ポインタ
ーがこれらインデンクスに対応するからである。この様
なビットマスクがヒットマスク(25)として図説され
ている。
縮の前にノードの特徴を記述する情報を提供する。完全
なノードが一度形成されると、ノード内の各要素が検査
される。ノード内の全ての非空ポインターがビットマス
ク内の対応するビットを1に設定させる。図2の例示ノ
ード(20)に対しては、要素1h、3h、7h及びB
hは全て1に設定されるであろう。これは非空ポインタ
ーがこれらインデンクスに対応するからである。この様
なビットマスクがヒットマスク(25)として図説され
ている。
【0013】検索がこの様な圧縮データベース上でなさ
れる時、文字例の検索文字はノードへでは無く、ビット
マスクへのインデンクスとして機能する。ビットマスク
内の対応する要素が次に検査される。このノードが0で
ある場合、対応するポインターは空である(即ち、存在
しない)。ビットが1の場合、そのノードにある非空ポ
インターは存在する文字に対応する。
れる時、文字例の検索文字はノードへでは無く、ビット
マスクへのインデンクスとして機能する。ビットマスク
内の対応する要素が次に検査される。このノードが0で
ある場合、対応するポインターは空である(即ち、存在
しない)。ビットが1の場合、そのノードにある非空ポ
インターは存在する文字に対応する。
【0014】正しいポインターに近づくために、2つの
方法の一方が使用できる。第1の方法においては、関心
のあるビットよりも低位のインデックスで設定された1
の全ての計数がなされる。この計数値は、関心のあるポ
インターよりも前にリストされたノードに物理的に存在
するポインターの数を与える。この方法において、この
計数値は圧縮ノードへのインデックスを提供する。
方法の一方が使用できる。第1の方法においては、関心
のあるビットよりも低位のインデックスで設定された1
の全ての計数がなされる。この計数値は、関心のあるポ
インターよりも前にリストされたノードに物理的に存在
するポインターの数を与える。この方法において、この
計数値は圧縮ノードへのインデックスを提供する。
【0015】第2の方法において、16ビットマスクが
4ビット検索文字と結合される。そしてこの20ビット
コードはルックアップテーブル内の要素のアドレスを指
定するために使用される。この形態のポインター圧縮は
図2を参照してより良く説明される。例えば、圧縮ノー
ド(22)で検索されるべき文字がBhである場合、B
hに対応するビットはビットマスク(25)内で検査さ
れる。ビットが1であるのて、非空ポインターが第1の
方法に従って存在し、計数値がBh未満のインデックス
を有する全てのビットから構成される。(別法として、
ルックアップテーブルを使用することができる。)この
計数値、3は、14ポインター(要素3)が位置するノ
ード内へのインデックスとして使用される。この方法に
おいて、論理アドレスを物理アドレスへ変換することが
できる。
4ビット検索文字と結合される。そしてこの20ビット
コードはルックアップテーブル内の要素のアドレスを指
定するために使用される。この形態のポインター圧縮は
図2を参照してより良く説明される。例えば、圧縮ノー
ド(22)で検索されるべき文字がBhである場合、B
hに対応するビットはビットマスク(25)内で検査さ
れる。ビットが1であるのて、非空ポインターが第1の
方法に従って存在し、計数値がBh未満のインデックス
を有する全てのビットから構成される。(別法として、
ルックアップテーブルを使用することができる。)この
計数値、3は、14ポインター(要素3)が位置するノ
ード内へのインデックスとして使用される。この方法に
おいて、論理アドレスを物理アドレスへ変換することが
できる。
【0016】ポインター圧縮のこの方法は、種々の欠点
を有している。第1に、この計数を実行するために必要
とされるハードウエアー又はソフトウエアーはしばしば
高速用途に対して遅すぎる。逆に、より高速のルックア
ップテーブルは大量のメモリー(2**20又は1メ
ガ)を必要とする。(ビットマスクを支援するための)
この追加のメモリーはポインター圧縮を使用することに
より実現するメモリー増加と匹敵する。
を有している。第1に、この計数を実行するために必要
とされるハードウエアー又はソフトウエアーはしばしば
高速用途に対して遅すぎる。逆に、より高速のルックア
ップテーブルは大量のメモリー(2**20又は1メ
ガ)を必要とする。(ビットマスクを支援するための)
この追加のメモリーはポインター圧縮を使用することに
より実現するメモリー増加と匹敵する。
【0017】本発明は、ポインター圧縮を通して不経済
な空ポインターを除去し、且つ高速論理物理インデック
ス変換を提供する方法及び装置を提供することにある。
本発明はより高速でこの様な変換を達成し、従来のシス
テムよりメモリーを要しない。16ビットビットマスク
と対比して、本発明は4ビットノード形態及び2つのビ
ットポインターIDを利用して論理−物理変換を達成す
る。
な空ポインターを除去し、且つ高速論理物理インデック
ス変換を提供する方法及び装置を提供することにある。
本発明はより高速でこの様な変換を達成し、従来のシス
テムよりメモリーを要しない。16ビットビットマスク
と対比して、本発明は4ビットノード形態及び2つのビ
ットポインターIDを利用して論理−物理変換を達成す
る。
【0018】全ての空ポインターが本発明で除かれるの
ではなく、それらの大部分が除去される。完全なポイン
ター圧縮が部分圧縮と比較して何らかの利点を必ず与え
るものではないことが判った。特に、ノードを2の冪乗
以外のあるサイズに圧縮する点出ないことが論証され
た。(これらの議論を支持する詳細な計算は付録Iに見
出される。)全圧縮が必要とされないので、本発明は2
つのみの形態のノード、即ち、16要素有するノード
(完全ノード)及び4つの要素を有するノード(圧縮ノ
ード)を使用する。従って、5以上の非空ポインターを
もともと有する如何なるノードも、完全なノードとして
残される。4以下の非空ポインターを有するノードは4
要素圧縮ノードへ変換される。
ではなく、それらの大部分が除去される。完全なポイン
ター圧縮が部分圧縮と比較して何らかの利点を必ず与え
るものではないことが判った。特に、ノードを2の冪乗
以外のあるサイズに圧縮する点出ないことが論証され
た。(これらの議論を支持する詳細な計算は付録Iに見
出される。)全圧縮が必要とされないので、本発明は2
つのみの形態のノード、即ち、16要素有するノード
(完全ノード)及び4つの要素を有するノード(圧縮ノ
ード)を使用する。従って、5以上の非空ポインターを
もともと有する如何なるノードも、完全なノードとして
残される。4以下の非空ポインターを有するノードは4
要素圧縮ノードへ変換される。
【0019】完全ノードの要素は、ポインター圧縮がな
いようにインデックス付けされる。各圧縮ノードは15
のノード形態の一つと関連する。各ノード形態は4ビッ
トから構成され、特定のハードウエアー(又はソフトウ
エアー)構成と関連される。特定のノードが(前のノー
ドに於けるノードポインターによって)選択される時、
対応するノード形態も選択される。
いようにインデックス付けされる。各圧縮ノードは15
のノード形態の一つと関連する。各ノード形態は4ビッ
トから構成され、特定のハードウエアー(又はソフトウ
エアー)構成と関連される。特定のノードが(前のノー
ドに於けるノードポインターによって)選択される時、
対応するノード形態も選択される。
【0020】このノード形態は特定のハードウエアーを
選択及び/又は制御するのに使用される。そのノードで
検索されるべき文字からなるビットは、選択されたハー
ドウエアーへの入力として使用される。(ソフトウエア
ーで実行することのできる)ハードウエアーは4ビット
信号を生成する。この信号の一部は圧縮ノード内のポイ
ンターのインデックスとして使用される。
選択及び/又は制御するのに使用される。そのノードで
検索されるべき文字からなるビットは、選択されたハー
ドウエアーへの入力として使用される。(ソフトウエア
ーで実行することのできる)ハードウエアーは4ビット
信号を生成する。この信号の一部は圧縮ノード内のポイ
ンターのインデックスとして使用される。
【0021】ハードウエアー(又はソフトウエアー)で
生成された信号は入力検索文字に対応する物理的インデ
ックスを表している。この物理的インデックスは、変換
マトリックスとして表現できるマッピング関数の使用を
とおして入力検索からえることができる。ポインターノ
ード内の各ポインターはポインターIDと関連してい
る。ポインターIDはポインターが関連する文字値を特
定する2ビットコードである。
生成された信号は入力検索文字に対応する物理的インデ
ックスを表している。この物理的インデックスは、変換
マトリックスとして表現できるマッピング関数の使用を
とおして入力検索からえることができる。ポインターノ
ード内の各ポインターはポインターIDと関連してい
る。ポインターIDはポインターが関連する文字値を特
定する2ビットコードである。
【0022】圧縮ノードで検索を達成するために、4ビ
ットノード形態は特定のハードウエアを選択又は制御す
るのに使用される。この構成は、検索文字のビットを入
力として使用して、4ビット出力信号を発生する。2つ
の出力ビットはノードに含まれるポインターへのインデ
ックスとして使用される。或るポインターが一度選択さ
れると、そのポインターに関連するポインターIDは出
力信号の他の2ビットと比較され、検索されている文字
がそのポインターによって表される文字と一致するか否
かを決定する。一致が見出されると、検索が続行する。
一致が見出されないと、検索されているワードがデータ
ベース内になく、検索が終了する。
ットノード形態は特定のハードウエアを選択又は制御す
るのに使用される。この構成は、検索文字のビットを入
力として使用して、4ビット出力信号を発生する。2つ
の出力ビットはノードに含まれるポインターへのインデ
ックスとして使用される。或るポインターが一度選択さ
れると、そのポインターに関連するポインターIDは出
力信号の他の2ビットと比較され、検索されている文字
がそのポインターによって表される文字と一致するか否
かを決定する。一致が見出されると、検索が続行する。
一致が見出されないと、検索されているワードがデータ
ベース内になく、検索が終了する。
【0023】別の実施例においては、論理物理変換は、
ハードウエアでなく、ソフトウエアーを介して達成され
る。更に別の実施例においては、4ビットノード形態は
4ビット文字コードと結合されてルックアップテーブル
のアドレスを指定する。本発明の論理物理変換を実行す
るのに必要とされるハードウエアは、十分に簡単であ
り、従来の技術と比較して速度の点で大きな利益を与え
る。
ハードウエアでなく、ソフトウエアーを介して達成され
る。更に別の実施例においては、4ビットノード形態は
4ビット文字コードと結合されてルックアップテーブル
のアドレスを指定する。本発明の論理物理変換を実行す
るのに必要とされるハードウエアは、十分に簡単であ
り、従来の技術と比較して速度の点で大きな利益を与え
る。
【0024】更に、本発明で採用される簡単な記述子
(ノード形態及びポインターID)は従来の技術と比較
してメモリーを節約する。例えば、ルックアップテーブ
ルが使用される場合、従来の装置は2**20(即ち
1,048,576)のエントリー(ビットマスクに対
して16ビット且つ文字に対して4ビット)を有するル
ックアップテーブルを必要とする。本発明は2**8又
は256エントリー(ノード形態に対して4ビット、文
字に対して4ビット)を有するテーブルを必要とする。
(ノード形態及びポインターID)は従来の技術と比較
してメモリーを節約する。例えば、ルックアップテーブ
ルが使用される場合、従来の装置は2**20(即ち
1,048,576)のエントリー(ビットマスクに対
して16ビット且つ文字に対して4ビット)を有するル
ックアップテーブルを必要とする。本発明は2**8又
は256エントリー(ノード形態に対して4ビット、文
字に対して4ビット)を有するテーブルを必要とする。
【0025】作用的観点から本発明の実施例を要約する
と、アドレス指定されるノードが先ず検査され、このノ
ードが圧縮されたノード又は16要素ノードであるかを
調べる。ノードが完全なノードである場合、検索文字は
ノード内への直接インデクスとして使用される。検索さ
れるべきノードが圧縮ノードである場合、検索文字が、
変換マトリックスによって表すことができるマッピング
関数を達成することにより物理アドレスへ変換される。
この変換されたアドレスからなるビットは、検索文字が
見出される変換マトリックスの行及び列の値を表してい
る。
と、アドレス指定されるノードが先ず検査され、このノ
ードが圧縮されたノード又は16要素ノードであるかを
調べる。ノードが完全なノードである場合、検索文字は
ノード内への直接インデクスとして使用される。検索さ
れるべきノードが圧縮ノードである場合、検索文字が、
変換マトリックスによって表すことができるマッピング
関数を達成することにより物理アドレスへ変換される。
この変換されたアドレスからなるビットは、検索文字が
見出される変換マトリックスの行及び列の値を表してい
る。
【0026】出力物理アドレスからの行の値は、圧縮ノ
ード内のポインターのアドレス値として使用される。各
この様なポインターは、ポインターが関連される変換マ
トリックスの列を示すポインターIDを含む。適当なポ
インターが(出力行ビットの使用を通して)一度設置さ
れると、出力列ビットが比較されて、位置されるポイン
ターが検索されている特定の文字に対応するか否かを決
定する。
ード内のポインターのアドレス値として使用される。各
この様なポインターは、ポインターが関連される変換マ
トリックスの列を示すポインターIDを含む。適当なポ
インターが(出力行ビットの使用を通して)一度設置さ
れると、出力列ビットが比較されて、位置されるポイン
ターが検索されている特定の文字に対応するか否かを決
定する。
【0027】列ビットが一致する場合、検索は設置され
たポインター内で結合されたアドレスを使用し続ける。
列ビットが一致しないと、空ポインターは、関連する1
6要素ノード内の検索文字位置内にあることを示し、検
索は終了しなければならないことを示す。
たポインター内で結合されたアドレスを使用し続ける。
列ビットが一致しないと、空ポインターは、関連する1
6要素ノード内の検索文字位置内にあることを示し、検
索は終了しなければならないことを示す。
【0028】
【実施例】上述された様に、本発明においては、完全な
ノード(16要素を有するノード)がポインター圧縮が
無い如くインデックス付けされる。この様にして、TR
IEノードの全ての参照が圧縮ノード(4つの要素を有
するノード)に向けられるが、これ以外の場合は特別な
ものとされる。ポインター圧縮に加えて、「パス圧縮」
がを同様に採用される。パス圧縮は、一つのみの非空要
素を有する全ノードを除去する。パス圧縮を達成するた
めの方法又は装置がCOMPRESSED PREFIXMATCHING DATABA
SE と題される1989年12月7日に出願された米国
特許出願第378,718に記述される。 I.ノード形態及び関連するハードウエアー 各圧縮されたノードは4つの要素を有しており、各要素
は16の可能な文字の一つに対応し、或る与えられた圧
縮ノードに対応し得る4つの文字の1820〔即ち、1
6個から4個を取り出す組み合わせの数16!/〔12
!*4!〕〕の可能な組み合わせが存在する。本発明は
14の4ビットノード形態及び4つの2ビットポインタ
ーIDを利用して、全ての可能な要素の組み合わせを、
従って、全ての可能な圧縮ノードを記述する。
ノード(16要素を有するノード)がポインター圧縮が
無い如くインデックス付けされる。この様にして、TR
IEノードの全ての参照が圧縮ノード(4つの要素を有
するノード)に向けられるが、これ以外の場合は特別な
ものとされる。ポインター圧縮に加えて、「パス圧縮」
がを同様に採用される。パス圧縮は、一つのみの非空要
素を有する全ノードを除去する。パス圧縮を達成するた
めの方法又は装置がCOMPRESSED PREFIXMATCHING DATABA
SE と題される1989年12月7日に出願された米国
特許出願第378,718に記述される。 I.ノード形態及び関連するハードウエアー 各圧縮されたノードは4つの要素を有しており、各要素
は16の可能な文字の一つに対応し、或る与えられた圧
縮ノードに対応し得る4つの文字の1820〔即ち、1
6個から4個を取り出す組み合わせの数16!/〔12
!*4!〕〕の可能な組み合わせが存在する。本発明は
14の4ビットノード形態及び4つの2ビットポインタ
ーIDを利用して、全ての可能な要素の組み合わせを、
従って、全ての可能な圧縮ノードを記述する。
【0029】上述した様に、本発明においては、各圧縮
ノードは4ビットノード形態と関連しており、各ノード
形態は、特定の論理物理インデックス変換を達成する能
力がある特定のハードウエアーと関連している。これら
のノード形態は、各ノード形態と関連するハードウエア
ーによって変換できる論理インデックスの可能な組み合
わせを表している。15の可能なノード形態があり、4
つのビットか選択された適当なノード形態を示すのに要
求される。
ノードは4ビットノード形態と関連しており、各ノード
形態は、特定の論理物理インデックス変換を達成する能
力がある特定のハードウエアーと関連している。これら
のノード形態は、各ノード形態と関連するハードウエア
ーによって変換できる論理インデックスの可能な組み合
わせを表している。15の可能なノード形態があり、4
つのビットか選択された適当なノード形態を示すのに要
求される。
【0030】各ノード形態と関連するハードウエアーは
そのノードで検索される文字に応答して動作する。上述
された様に、検索文字は検索される文字列の部分であ
り、通常4ビット長である。4ビット長であると、各検
索文字は16進と均等なものにより呼び出すことができ
る。例えば、検索文字1111はFhと等しく、100
1は9hと等しい。他の場合で特定されない場合は、検
索文字は16進の形態で参照される。
そのノードで検索される文字に応答して動作する。上述
された様に、検索文字は検索される文字列の部分であ
り、通常4ビット長である。4ビット長であると、各検
索文字は16進と均等なものにより呼び出すことができ
る。例えば、検索文字1111はFhと等しく、100
1は9hと等しい。他の場合で特定されない場合は、検
索文字は16進の形態で参照される。
【0031】各ノード形態及び対応する変換マトリック
スが図3〜5に図示される。変換マトリックスは15の
ハードウエアー構成の各々によって変換するこのできる
文字(論理インデックス)の可能な組み合わせを表示す
る。図示される15の変換マトリックスは15の内の一
つのみの可能な組みである。図示されたものと機能的に
等しい15の変換マトリックスの多くの他の組みが存在
する。各均等なマトリックスは説明されたマトリックス
から容易に引き出すことができる。
スが図3〜5に図示される。変換マトリックスは15の
ハードウエアー構成の各々によって変換するこのできる
文字(論理インデックス)の可能な組み合わせを表示す
る。図示される15の変換マトリックスは15の内の一
つのみの可能な組みである。図示されたものと機能的に
等しい15の変換マトリックスの多くの他の組みが存在
する。各均等なマトリックスは説明されたマトリックス
から容易に引き出すことができる。
【0032】ハードウエアー(又はソフトウエアー)を
実行すると、文字の組み合わせを論理インデックスから
物理インデックスへ変換することができる。各ハードウ
エアー(又はソフトウエアー)構成によって達成される
変換は関連するマトリックスによって表示される。完全
ノードが圧縮ノードに圧縮されるか(又は圧縮ノードが
構成される)時、どの4つの文字が圧縮ノードと関連す
るかが一般的に判る。先に議論された圧縮されたノード
に対して、文字1h、3h、7h及びBhに対応するこ
とが判る。或る圧縮ノード及び対応する文字が与えられ
ると、変換マトリックスを適切なノード形態を選択する
ために使用できる。
実行すると、文字の組み合わせを論理インデックスから
物理インデックスへ変換することができる。各ハードウ
エアー(又はソフトウエアー)構成によって達成される
変換は関連するマトリックスによって表示される。完全
ノードが圧縮ノードに圧縮されるか(又は圧縮ノードが
構成される)時、どの4つの文字が圧縮ノードと関連す
るかが一般的に判る。先に議論された圧縮されたノード
に対して、文字1h、3h、7h及びBhに対応するこ
とが判る。或る圧縮ノード及び対応する文字が与えられ
ると、変換マトリックスを適切なノード形態を選択する
ために使用できる。
【0033】これらの変換マトリックスは以下の様にし
て解釈することができる。各ノード形態と関連するハー
ドウエアー又はソフトウエアーを論理インデックスから
物理インデックスへ変換するのに使用することができ
る。1要素を有する如何なるノードに対する文字コード
が行0からの要素に対応し、他の1の要素は行1からの
要素に対応する。他の2つの要素は行2及び3の各々か
らの文字に対応する。各組み合わせからなる文字は、各
行から選択される一つのみの要素が存在する限り、如何
なる列からも選択することができる。
て解釈することができる。各ノード形態と関連するハー
ドウエアー又はソフトウエアーを論理インデックスから
物理インデックスへ変換するのに使用することができ
る。1要素を有する如何なるノードに対する文字コード
が行0からの要素に対応し、他の1の要素は行1からの
要素に対応する。他の2つの要素は行2及び3の各々か
らの文字に対応する。各組み合わせからなる文字は、各
行から選択される一つのみの要素が存在する限り、如何
なる列からも選択することができる。
【0034】例えば、ノード形態0001と関連するハ
ードウエアーは文字3h、6h、8h、Ehに対応する
圧縮ノードの変換を達成することができる。これは、各
文字が変換マトリックスの別の行に設定されるからであ
る。同じハードウエアーは文字0h、5h、Fh及びD
h又は文字3h、1h、8h、Ahに対応する要素を有
するノードに対する変換を達成することができる。これ
は、これらの文字の各々が変換マトリックスの別の行内
に或るからである。
ードウエアーは文字3h、6h、8h、Ehに対応する
圧縮ノードの変換を達成することができる。これは、各
文字が変換マトリックスの別の行に設定されるからであ
る。同じハードウエアーは文字0h、5h、Fh及びD
h又は文字3h、1h、8h、Ahに対応する要素を有
するノードに対する変換を達成することができる。これ
は、これらの文字の各々が変換マトリックスの別の行内
に或るからである。
【0035】しかしながら、同じハードウエアー(ノー
ド形態0001)を使用すると、文字Bh及びChの文
字が変換行の同じ行(行2)内に設置されるので、文字
6h、Bh、Ch及びDhの組み合わせを変換すること
が出来ない。この様な組み合わせに対して、ノード形態
1001によって表される組み合わせの様な他のハード
ウエアーの組み合わせが必要となる。ノード形態100
1は行2内に6hを有しており、行3にBhを有してお
り、行0にChを有しており、且つ行2にDhを有して
いる。
ド形態0001)を使用すると、文字Bh及びChの文
字が変換行の同じ行(行2)内に設置されるので、文字
6h、Bh、Ch及びDhの組み合わせを変換すること
が出来ない。この様な組み合わせに対して、ノード形態
1001によって表される組み合わせの様な他のハード
ウエアーの組み合わせが必要となる。ノード形態100
1は行2内に6hを有しており、行3にBhを有してお
り、行0にChを有しており、且つ行2にDhを有して
いる。
【0036】この実施例が説明する様に、文字は完全ノ
ード内にあるので、文字が変換マトリックス内と同じ順
序で見出される必要はない。4文字の所与の組み合わせ
から、所定のノード形態を選択するためのみに必要なこ
とは、各文字が変換マトリックスの異なる行で見出され
ることにある。この方法だと、所与のノードに対する4
つの文字が一度知られると、適当なノード形態及びその
関連する変換ハードウエアー又はソフトウエアーを選択
することが可能となる。例えば、図2の対応するノード
が本発明で変換されると1111のノード形態が選択さ
れるであろう。このノードは、このノードに対応する4
つの文字の各々がノード形態1111に関連する変換マ
トリックスの異なる行で見出されるので、選択される。
ード内にあるので、文字が変換マトリックス内と同じ順
序で見出される必要はない。4文字の所与の組み合わせ
から、所定のノード形態を選択するためのみに必要なこ
とは、各文字が変換マトリックスの異なる行で見出され
ることにある。この方法だと、所与のノードに対する4
つの文字が一度知られると、適当なノード形態及びその
関連する変換ハードウエアー又はソフトウエアーを選択
することが可能となる。例えば、図2の対応するノード
が本発明で変換されると1111のノード形態が選択さ
れるであろう。このノードは、このノードに対応する4
つの文字の各々がノード形態1111に関連する変換マ
トリックスの異なる行で見出されるので、選択される。
【0037】固有のノード形態が一度選択されと、ノー
ド形態1111と関連するハードウエアー又はソフトウ
エアーが適当な論理物理変換を1h、3h、7h及びB
hに対応する文字を有するノードに対して達成すること
ができる。特定のノードに対するノード形態が、そのノ
ードと関連する特定のメモリー空間に記憶することがで
きる。或る実施例において、各ノードに対するノード形
態が、ノードを指し示すポインターと共に記憶される。
この実施例においては、各ノードポインターは次のノー
ドの位置を示すポインターアドレスだけでなく、次のノ
ードで実行される変換マトリックスを示すノード形態を
含む。
ド形態1111と関連するハードウエアー又はソフトウ
エアーが適当な論理物理変換を1h、3h、7h及びB
hに対応する文字を有するノードに対して達成すること
ができる。特定のノードに対するノード形態が、そのノ
ードと関連する特定のメモリー空間に記憶することがで
きる。或る実施例において、各ノードに対するノード形
態が、ノードを指し示すポインターと共に記憶される。
この実施例においては、各ノードポインターは次のノー
ドの位置を示すポインターアドレスだけでなく、次のノ
ードで実行される変換マトリックスを示すノード形態を
含む。
【0038】15のみのノード形態が存在するので、1
つの4ビットの組み合わせ(0000)は使用されな
い。従って、0000のノード形態は次のノードか完全
(16要素)ノードであることを示すのに使用できる。 II. ポインターID ノード形態に加えて、本発明はポインターIDとして知
られる2つのコードを利用して、圧縮ノードに対する論
理物理インデックス変換を実行する。各ポインターID
は、圧縮ノード内に各ポインターが位置する文字を表す
2ビットコードである。各ノードは15のノード形態の
一つと関連しており、ノード内の各要素が4つのポイン
ターIDの一つと関連している。ポインターIDは、所
定のノードに対するノード形態が知られる後だけでポイ
ンターIDを選択することができる。
つの4ビットの組み合わせ(0000)は使用されな
い。従って、0000のノード形態は次のノードか完全
(16要素)ノードであることを示すのに使用できる。 II. ポインターID ノード形態に加えて、本発明はポインターIDとして知
られる2つのコードを利用して、圧縮ノードに対する論
理物理インデックス変換を実行する。各ポインターID
は、圧縮ノード内に各ポインターが位置する文字を表す
2ビットコードである。各ノードは15のノード形態の
一つと関連しており、ノード内の各要素が4つのポイン
ターIDの一つと関連している。ポインターIDは、所
定のノードに対するノード形態が知られる後だけでポイ
ンターIDを選択することができる。
【0039】ポインターIDはノード内の特定の要素に
どの文字が対応するかを示す。上述した様に、各変換マ
トリックスは、各ノード形態と関連するハードウエアー
又はソフトウエアーによって達成される特定の変換をす
る4×4の表記である。ノード形態のみが、特定のノー
ドが256の可能な組み合わせの何れか一つ(例えば、
行0からの4要素から一つ、行1からの4要素から一
つ)を表現することができることを示す。ポインターI
Dは、所与の圧縮ノードにどの特定の文字が対応すかを
示すのに使用することができる。ポインターIDは、圧
縮ノード内の特定の要素が対応する変換マトリックス内
の特定の列の2進表現として解釈できる。
どの文字が対応するかを示す。上述した様に、各変換マ
トリックスは、各ノード形態と関連するハードウエアー
又はソフトウエアーによって達成される特定の変換をす
る4×4の表記である。ノード形態のみが、特定のノー
ドが256の可能な組み合わせの何れか一つ(例えば、
行0からの4要素から一つ、行1からの4要素から一
つ)を表現することができることを示す。ポインターI
Dは、所与の圧縮ノードにどの特定の文字が対応すかを
示すのに使用することができる。ポインターIDは、圧
縮ノード内の特定の要素が対応する変換マトリックス内
の特定の列の2進表現として解釈できる。
【0040】例えば、所与のノードが文字3h、2h、
Ch及びDhに対応することが分かると、(各文字が異
なる行内に存在するので)ノード形態0001を選択す
ることができる。ノード形態は0001は、しかしなが
ら、所与のノードを一義的には記述しない。例えば、ノ
ード形態0001はまた7h、5h、Fh及びDhに対
応するノードを同様に表現している。
Ch及びDhに対応することが分かると、(各文字が異
なる行内に存在するので)ノード形態0001を選択す
ることができる。ノード形態は0001は、しかしなが
ら、所与のノードを一義的には記述しない。例えば、ノ
ード形態0001はまた7h、5h、Fh及びDhに対
応するノードを同様に表現している。
【0041】ノードを完全に記述するために、ポインタ
ーが必要とされる。上述されたように、ポインターID
は圧縮された各要素に関連する。上述した例(ノードが
3h、2h、Ch及びDhに対応している)において、
第1の要素のポインターIDは01であろう。これは文
字3が変換マトリックスの列1内にあるからである。第
2の要素は文字2hに対応するので、変換マトリックス
の列0内の2hとしてポインターID00と関連され
る。同様にして、第3及び第4の要素に対するポインタ
ーIDが決定される。第3の要素のポインターIDは1
0であり(Chは第2列になあるので(2進10=
2))、第4の要素のポインターIDは11(列3に対
する)である。
ーが必要とされる。上述されたように、ポインターID
は圧縮された各要素に関連する。上述した例(ノードが
3h、2h、Ch及びDhに対応している)において、
第1の要素のポインターIDは01であろう。これは文
字3が変換マトリックスの列1内にあるからである。第
2の要素は文字2hに対応するので、変換マトリックス
の列0内の2hとしてポインターID00と関連され
る。同様にして、第3及び第4の要素に対するポインタ
ーIDが決定される。第3の要素のポインターIDは1
0であり(Chは第2列になあるので(2進10=
2))、第4の要素のポインターIDは11(列3に対
する)である。
【0042】図6は、ノード形態及びポインターIDの
両方を使用するノード圧縮の例を示している。この例に
おいては、完全なノード、ノード(60)が先ず4つの
要素(62)を有する圧縮ノード、ノードC’に圧縮さ
れる。完全ノードが3h、6h、8h及びEhに対応す
る非空ポインターを有していたので、上記の文字の各々
か別の行に存在する変換マトリックスが選択される必要
がある。ノード形態0001に対応する変換マトリック
スがこの行に対する要求を満足すのので、これが選択さ
れる。
両方を使用するノード圧縮の例を示している。この例に
おいては、完全なノード、ノード(60)が先ず4つの
要素(62)を有する圧縮ノード、ノードC’に圧縮さ
れる。完全ノードが3h、6h、8h及びEhに対応す
る非空ポインターを有していたので、上記の文字の各々
か別の行に存在する変換マトリックスが選択される必要
がある。ノード形態0001に対応する変換マトリック
スがこの行に対する要求を満足すのので、これが選択さ
れる。
【0043】検索中、ノードC’に対するノード形態
が、ノードC’に対するポインターが参照されると同時
に指定される。完全ノードからのポインターは次に圧縮
ノード内の位置に移動することができる。この順序はノ
ード0001に対する変換マトリックス内の順序に従う
必要がある(即ち、ポインターは文字3hに最初に、6
hに次に対応する。)。
が、ノードC’に対するポインターが参照されると同時
に指定される。完全ノードからのポインターは次に圧縮
ノード内の位置に移動することができる。この順序はノ
ード0001に対する変換マトリックス内の順序に従う
必要がある(即ち、ポインターは文字3hに最初に、6
hに次に対応する。)。
【0044】ポインター値に加えて、ポインターIDは
圧縮ノード内の各要素とともに記憶される。ポインター
IDは、このポインターに対応する文字が選択された変
換マトリックス内に存在する場所である列に対応する。
この例において、文字3hがノード形態0001に対応
する変換マトリックスの第1の列内に存在するので、第
1の要素に対するポインターIDが01となる。
圧縮ノード内の各要素とともに記憶される。ポインター
IDは、このポインターに対応する文字が選択された変
換マトリックス内に存在する場所である列に対応する。
この例において、文字3hがノード形態0001に対応
する変換マトリックスの第1の列内に存在するので、第
1の要素に対するポインターIDが01となる。
【0045】同様にして、文字6hが第2の列にあるの
で、第2の要素に対するポインターIDは10である。
第3及び第4の要素に対するポインターIDはそれぞれ
00及び10である。上記の手続きに従って、圧縮され
たTRIE構造を形成できる。各圧縮されたノードに対
して、好適なノード形態が選択される。選択されたノー
ド形態及びその関連変換マトリックスが与えられると、
好適なポインターIDが選択できノード内に入ることが
できる。 III.圧縮TRIEデータベースの構築 スクラッチから開始すると、圧縮されたTRIEデータ
ベースを構築するための少なくとも2つの方法が存在す
る。第1の方法は帰納的方法として知られ第2の方法は
並列的方法として知られる。
で、第2の要素に対するポインターIDは10である。
第3及び第4の要素に対するポインターIDはそれぞれ
00及び10である。上記の手続きに従って、圧縮され
たTRIE構造を形成できる。各圧縮されたノードに対
して、好適なノード形態が選択される。選択されたノー
ド形態及びその関連変換マトリックスが与えられると、
好適なポインターIDが選択できノード内に入ることが
できる。 III.圧縮TRIEデータベースの構築 スクラッチから開始すると、圧縮されたTRIEデータ
ベースを構築するための少なくとも2つの方法が存在す
る。第1の方法は帰納的方法として知られ第2の方法は
並列的方法として知られる。
【0046】A.帰納的構築 機能的方法において、TRIE構造へ導入されるべきエ
ントリーが順次導入される。第1のエントリーが導入さ
れる時、根ノードが作り出される。そこから、次のノー
ドが発生されて、導入されるべき文字列の各文字に対応
される。(ノード発生原因の文字以外の)新たに発生さ
れたノードの各ポインターが空ポインターに設定され
る。次のエントリーは先ず存在するTRIEに対して対
抗される。新たなエントリーは複製ではない場合、新た
な分岐が構成されて、新たなエントリーが保持される。
ントリーが順次導入される。第1のエントリーが導入さ
れる時、根ノードが作り出される。そこから、次のノー
ドが発生されて、導入されるべき文字列の各文字に対応
される。(ノード発生原因の文字以外の)新たに発生さ
れたノードの各ポインターが空ポインターに設定され
る。次のエントリーは先ず存在するTRIEに対して対
抗される。新たなエントリーは複製ではない場合、新た
な分岐が構成されて、新たなエントリーが保持される。
【0047】図7はこの様な帰納的構築の様な例を与え
ている。先ず、文字列0001 1101 1011
0110がTRIEに導入される。これは第1のエント
リであるが、4つのノードが生成される。第2のエント
リ0001 1101 1111 0001は第1の2
つのノードを介して第1のTRIEと対抗する。111
1に対応する要素がないので、新たな分岐が生成される
ことが必要とされる。この様な分岐は第3のノードで形
成されるべきことが要求されるので、或る付加ノードが
加えられる。分岐は空ポインターを非空ポインターに変
更することにより形成され、別のノードを指し示した
り、一致するエントリーが見出されたこと(即ち、リー
フノード)を示す。
ている。先ず、文字列0001 1101 1011
0110がTRIEに導入される。これは第1のエント
リであるが、4つのノードが生成される。第2のエント
リ0001 1101 1111 0001は第1の2
つのノードを介して第1のTRIEと対抗する。111
1に対応する要素がないので、新たな分岐が生成される
ことが必要とされる。この様な分岐は第3のノードで形
成されるべきことが要求されるので、或る付加ノードが
加えられる。分岐は空ポインターを非空ポインターに変
更することにより形成され、別のノードを指し示した
り、一致するエントリーが見出されたこと(即ち、リー
フノード)を示す。
【0048】新たなノードを形成する時にとれだけ多く
のポインターがノードに設置されるかを決めることが出
来ないので、新たなノードの全てを完全なノード(16
ポインター)として生成することが好ましい。一度TR
IEが形成されると、4つ又はそれ以下の非空ポインタ
ーを有する完全なノードが圧縮されたノードに変換され
る。
のポインターがノードに設置されるかを決めることが出
来ないので、新たなノードの全てを完全なノード(16
ポインター)として生成することが好ましい。一度TR
IEが形成されると、4つ又はそれ以下の非空ポインタ
ーを有する完全なノードが圧縮されたノードに変換され
る。
【0049】B.並列構築 並列構築を達成するためには、データベース内で置かさ
れるべき全てのエントリーが同時検査に対して利用でき
る必要がある。各エントリーの第1の文字のコピーをと
り、これを「バケット」に投げ込むことにより構築が開
始する。全ての複製文字は廃棄され、残る物は、第1の
ノード内の対応するポインターを有することを必要とす
る文字である。新たなエントリがこのノードに設置され
ることを必要とするのて、圧縮されたノードは、必要な
場合生成することができる。
れるべき全てのエントリーが同時検査に対して利用でき
る必要がある。各エントリーの第1の文字のコピーをと
り、これを「バケット」に投げ込むことにより構築が開
始する。全ての複製文字は廃棄され、残る物は、第1の
ノード内の対応するポインターを有することを必要とす
る文字である。新たなエントリがこのノードに設置され
ることを必要とするのて、圧縮されたノードは、必要な
場合生成することができる。
【0050】第1のノードが一度形成されると、第1の
根ノード文字に対応する出口ポインターが選択される。
この第1の根ノード文字に対応する文字と一致する第1
の文字を有する各エントリーの第2の文字が、新たなバ
ケットに投入される。複製を廃棄し、新たなノードを形
成するこのプロセスは繰り返えされる。この形態の構築
は、2つのやり方の一方で続行することができる。幅最
初方法だと、各ノードが如何なる以下のノードの構成に
も先立って充填される。深さ最初構成においては、デー
タベースエントリーの各選択された部分集合は、前のノ
ードの次のポインターに移動する以前に充填される。
根ノード文字に対応する出口ポインターが選択される。
この第1の根ノード文字に対応する文字と一致する第1
の文字を有する各エントリーの第2の文字が、新たなバ
ケットに投入される。複製を廃棄し、新たなノードを形
成するこのプロセスは繰り返えされる。この形態の構築
は、2つのやり方の一方で続行することができる。幅最
初方法だと、各ノードが如何なる以下のノードの構成に
も先立って充填される。深さ最初構成においては、デー
タベースエントリーの各選択された部分集合は、前のノ
ードの次のポインターに移動する以前に充填される。
【0051】C.ノード形態の選択 TRIE構造が一度構成されると、5個の非空ポインタ
ーよりも少ないノードも圧縮ノード内に圧縮することが
できる。圧縮されたノードが(並列又は帰納的構築によ
り)構成される時、ノード形態は先ず各圧縮されたノー
ドと関係づけられる。
ーよりも少ないノードも圧縮ノード内に圧縮することが
できる。圧縮されたノードが(並列又は帰納的構築によ
り)構成される時、ノード形態は先ず各圧縮されたノー
ドと関係づけられる。
【0052】適当なノード形態を選択するための或る可
能な方法は、4つのノード要素に対応する文字を図3か
ら5の種々のマトリックスと組織的に比較する。4文字
が異なる行に存在するマトリックスで見出される時、一
致が生じる。変換マトリックスに対応するノード形態は
次に圧縮ノードと関係される。要素は次に、一致するマ
トリックスによって指示される順番で圧縮ノード内に設
置される。
能な方法は、4つのノード要素に対応する文字を図3か
ら5の種々のマトリックスと組織的に比較する。4文字
が異なる行に存在するマトリックスで見出される時、一
致が生じる。変換マトリックスに対応するノード形態は
次に圧縮ノードと関係される。要素は次に、一致するマ
トリックスによって指示される順番で圧縮ノード内に設
置される。
【0053】4未満の文字がノードに対応する場合、或
るダミー文字(例えば0)は、ノード形態を選択する
時、使用することができる。これらの文字を保持するノ
ードが構築される時、ダミー文字に対応するノードに空
ポインターが与えられる。速度の観点で、別の方法が使
用され、如何なる所与の圧縮ノードに対しても適当なノ
ード形態を選択することができる。この方法において、
ルックアップテーブルが採用される。このルックアップ
テーブルを使用するために、非空要素と関連する4つの
所与の文字が16ビットコードに結合される。このコー
ドは、適当なノード形態を報告する64Kのエントリー
ルックアップテーブルのアドレス決めを行うために使用
される。ルックアップテーブルはまた4文字がノードに
割り当てられるべき順番に関する幾つかの指示を同様に
報告することができる。
るダミー文字(例えば0)は、ノード形態を選択する
時、使用することができる。これらの文字を保持するノ
ードが構築される時、ダミー文字に対応するノードに空
ポインターが与えられる。速度の観点で、別の方法が使
用され、如何なる所与の圧縮ノードに対しても適当なノ
ード形態を選択することができる。この方法において、
ルックアップテーブルが採用される。このルックアップ
テーブルを使用するために、非空要素と関連する4つの
所与の文字が16ビットコードに結合される。このコー
ドは、適当なノード形態を報告する64Kのエントリー
ルックアップテーブルのアドレス決めを行うために使用
される。ルックアップテーブルはまた4文字がノードに
割り当てられるべき順番に関する幾つかの指示を同様に
報告することができる。
【0054】ルックアップテーブルの構成は64Kの各
エントリーを使用して、どの4文字がそのエントリーの
アドレスを指定するかを決めることにより達成すること
ができる。変換マトリックスは次に、適当なマトリック
スが見出されるまで線形的に検索することができる。こ
のマトリックスに対応するノード形態は次にルックアッ
プテーブル内に記憶することができる。
エントリーを使用して、どの4文字がそのエントリーの
アドレスを指定するかを決めることにより達成すること
ができる。変換マトリックスは次に、適当なマトリック
スが見出されるまで線形的に検索することができる。こ
のマトリックスに対応するノード形態は次にルックアッ
プテーブル内に記憶することができる。
【0055】所与のノードに対するノード形態が一度選
択されると、完全ノードからのポインターは圧縮ノード
の対応する要素内に輻射することができる。ポインター
が圧縮ノードに移動する時、関連する文字のポインター
IDは各ポインターに割り当てられ、圧縮ノード内のポ
インターと共に記憶される。或る実施例において、指し
示されているノードに対するノード形態はポインター及
びポインターIDに記憶することができる。
択されると、完全ノードからのポインターは圧縮ノード
の対応する要素内に輻射することができる。ポインター
が圧縮ノードに移動する時、関連する文字のポインター
IDは各ポインターに割り当てられ、圧縮ノード内のポ
インターと共に記憶される。或る実施例において、指し
示されているノードに対するノード形態はポインター及
びポインターIDに記憶することができる。
【0056】図8は完全ノードから圧縮ノードへ圧縮す
る2つの例を提供しており、ここで、ポインターID及
びノード形態がポインター要素と共に記憶される。 D.データベース補修 偶然的に新たなエントリーが加えられ又は古いエントリ
ーが除去される時、データベースを修正することが必要
となる場合がある。これは、TRIE構造を再構築する
のではなくTRIE構造を調整することによって達成す
ることができる。
る2つの例を提供しており、ここで、ポインターID及
びノード形態がポインター要素と共に記憶される。 D.データベース補修 偶然的に新たなエントリーが加えられ又は古いエントリ
ーが除去される時、データベースを修正することが必要
となる場合がある。これは、TRIE構造を再構築する
のではなくTRIE構造を調整することによって達成す
ることができる。
【0057】新たなエントリー量を、TRIE構造を工
業的に構築する時に、同じ物に加える。ここで、存在す
るノードを、圧縮ノードから完全ノードに成長し、4未
満の非空ポインターを有する圧縮ノードから空ポインタ
ーを有さない圧縮ノードに成長することができる。圧縮
ノードが空ポインターを有するノードから空ポインター
を有さない(又はより少ないポインターを有する)ノー
ドへ成長する場合、この新たなノード形態が選択される
ことが必要とされる。これは、ダミー文字を使用して選
択されたノード形態が、新たに加えられた文字を含む組
み合わせを変換することが出来ない場合に発生する場合
がある。この様な状況では、新たなノード形態を新たな
ポインターIDと共に選択される必要がある。
業的に構築する時に、同じ物に加える。ここで、存在す
るノードを、圧縮ノードから完全ノードに成長し、4未
満の非空ポインターを有する圧縮ノードから空ポインタ
ーを有さない圧縮ノードに成長することができる。圧縮
ノードが空ポインターを有するノードから空ポインター
を有さない(又はより少ないポインターを有する)ノー
ドへ成長する場合、この新たなノード形態が選択される
ことが必要とされる。これは、ダミー文字を使用して選
択されたノード形態が、新たに加えられた文字を含む組
み合わせを変換することが出来ない場合に発生する場合
がある。この様な状況では、新たなノード形態を新たな
ポインターIDと共に選択される必要がある。
【0058】或る状況では、この再選択プロセスがノー
ドを完全に再構成することを含む。この様にして、バッ
クポインターのテーブルを含み、親ノードが設置され、
適当に変更する様にすることが一般的に望ましい。デー
タベースエントリの削除は削除されるべきエントリーの
位置を探り、リーフポインターを空ポインターに設定す
ることにより簡単に達成される。若し、リーフポインタ
ーが空ポインターへ変更する結果として、リーフポイン
ターを一度含むノードが全ての空ポインターを有するノ
ードへ還元されると、このノードは除去することがで
き、(このノードを指し示す)その親ノードは空に設定
される。このノードにおいて非空ポインター又はその親
ノードの数を5未満に減少することが可能であり、この
場合、適当なノードを圧縮することができる。
ドを完全に再構成することを含む。この様にして、バッ
クポインターのテーブルを含み、親ノードが設置され、
適当に変更する様にすることが一般的に望ましい。デー
タベースエントリの削除は削除されるべきエントリーの
位置を探り、リーフポインターを空ポインターに設定す
ることにより簡単に達成される。若し、リーフポインタ
ーが空ポインターへ変更する結果として、リーフポイン
ターを一度含むノードが全ての空ポインターを有するノ
ードへ還元されると、このノードは除去することがで
き、(このノードを指し示す)その親ノードは空に設定
される。このノードにおいて非空ポインター又はその親
ノードの数を5未満に減少することが可能であり、この
場合、適当なノードを圧縮することができる。
【0059】データベース補修が古いノードを利用可能
なフリーメモリーのリストへ戻し、新たなノードを利用
可能なノードメモリのリストから取り出すことは明らか
である。2つ異なるサイズのノードが存在するので、利
用可能な及び使用されたメモリーのトラックの追跡は困
難になる。利用可能なノードメモリーを維持するための
或る可能な方法は、完全ノードに対するものと、圧縮ノ
ードに対するものとの2つの別のメモリースタックを保
持することにある。
なフリーメモリーのリストへ戻し、新たなノードを利用
可能なノードメモリのリストから取り出すことは明らか
である。2つ異なるサイズのノードが存在するので、利
用可能な及び使用されたメモリーのトラックの追跡は困
難になる。利用可能なノードメモリーを維持するための
或る可能な方法は、完全ノードに対するものと、圧縮ノ
ードに対するものとの2つの別のメモリースタックを保
持することにある。
【0060】ノードメモリーを補修する別の方法は、フ
リーメモリーの単一のリストを使用することである。こ
の様な構成が図9に図示されている。このリスト(7
0)は2つの端部(72,74)及び各端部を示す分離
ポインターP16(76)及びP4(78)を有してい
る。TRIE構造が空の時、フリーリストは一杯であ
り、ポインターP16(76)はN個のフリー完全ノー
ドを指し示す。同時にポインターP4(78)は4*N
個のフリー圧縮ノードを指し示す。
リーメモリーの単一のリストを使用することである。こ
の様な構成が図9に図示されている。このリスト(7
0)は2つの端部(72,74)及び各端部を示す分離
ポインターP16(76)及びP4(78)を有してい
る。TRIE構造が空の時、フリーリストは一杯であ
り、ポインターP16(76)はN個のフリー完全ノー
ドを指し示す。同時にポインターP4(78)は4*N
個のフリー圧縮ノードを指し示す。
【0061】TRIE構造が構築される時、圧縮された
ノードがリストの一端から取得され、完全ノードが他の
端部から取得される。一つのノードキュー及び2つのポ
インターを利用するための方法は2つの別のメモリース
タックの使用と比較してメモリーを節約する。メモリー
が短縮された連続の形態で使用されることを補償するた
めに、除去された古いノードはリストに戻される。これ
らのノードは、リストの適当な終わりで使用されたノー
ドと取り替えられる。このポインターは次に一つ位置を
ずらす。これは、ポインターの衝突及びノードメモリス
タックの使用下となることを防ぐために必要とされる。
この様な方法で、古いノードで使用されるメモリーがフ
リーリスト内に設置され、利用可能なメモリーの短縮使
用を推進する。
ノードがリストの一端から取得され、完全ノードが他の
端部から取得される。一つのノードキュー及び2つのポ
インターを利用するための方法は2つの別のメモリース
タックの使用と比較してメモリーを節約する。メモリー
が短縮された連続の形態で使用されることを補償するた
めに、除去された古いノードはリストに戻される。これ
らのノードは、リストの適当な終わりで使用されたノー
ドと取り替えられる。このポインターは次に一つ位置を
ずらす。これは、ポインターの衝突及びノードメモリス
タックの使用下となることを防ぐために必要とされる。
この様な方法で、古いノードで使用されるメモリーがフ
リーリスト内に設置され、利用可能なメモリーの短縮使
用を推進する。
【0062】この様なノード取り替えの例が図10及び
図11に図示されている。図11において、P16ポイ
ンターは、最終使用ノードであるノードXを指し示す。
この例では、ノードYは除去される。ノード取り替えが
採用されないと、ノードYはその対応するメモリー位置
に戻され、メモリーの分断化を結果する可能性がある。
この様な結果は図10に図示される。
図11に図示されている。図11において、P16ポイ
ンターは、最終使用ノードであるノードXを指し示す。
この例では、ノードYは除去される。ノード取り替えが
採用されないと、ノードYはその対応するメモリー位置
に戻され、メモリーの分断化を結果する可能性がある。
この様な結果は図10に図示される。
【0063】図11はノード取り替えを通して得ること
のできる利益を図示している。この例においては、ノー
ドYはメモリースタックには戻されず、ノードXによっ
て取り替えられる。このノードXはP16によって最終
ノードが指し示めした。図11は、どの様にして取り替
えが、使用された及びフリーメモリーの両方が連続する
ことを可能として、利用可能なメモリーの効率的な使用
を促進しているのかを図示している。 IV. 圧縮TRIEデータベースの検索 圧縮されたTRIEデータベースが一度構成されると、
検索は以下の方法で達成することができる。
のできる利益を図示している。この例においては、ノー
ドYはメモリースタックには戻されず、ノードXによっ
て取り替えられる。このノードXはP16によって最終
ノードが指し示めした。図11は、どの様にして取り替
えが、使用された及びフリーメモリーの両方が連続する
ことを可能として、利用可能なメモリーの効率的な使用
を促進しているのかを図示している。 IV. 圧縮TRIEデータベースの検索 圧縮されたTRIEデータベースが一度構成されると、
検索は以下の方法で達成することができる。
【0064】検索は先ず、検査されるべき第1のノード
(根ノード)に対するポインターを保持するレジスタの
位置を探ることにより開始される。この「ポインター」
はノード内の要素の形式と等しい。この様にして、根ノ
ードに対するポインターは、根ノードが圧縮ノードであ
ること、及びその場合のノード形態を示すことができ
る。根ルートに対するポインターはレジスタである必要
はなく、或る特定の位置が根ノードに対するポインター
を含むことのみが必要である。
(根ノード)に対するポインターを保持するレジスタの
位置を探ることにより開始される。この「ポインター」
はノード内の要素の形式と等しい。この様にして、根ノ
ードに対するポインターは、根ノードが圧縮ノードであ
ること、及びその場合のノード形態を示すことができ
る。根ルートに対するポインターはレジスタである必要
はなく、或る特定の位置が根ノードに対するポインター
を含むことのみが必要である。
【0065】第1に、検索されるべきノードが完全ノー
ドである場合、検索は、ポインター圧縮がない如くに実
行される(即ち、検索されるべき文字がそのノードに対
する直接インデックスとして使用される)。検索される
べきノードが圧縮ノードである場合、文字値(論理値)
が物理アドレスへ交換されて、修正ポインターの位置を
探る必要がある。
ドである場合、検索は、ポインター圧縮がない如くに実
行される(即ち、検索されるべき文字がそのノードに対
する直接インデックスとして使用される)。検索される
べきノードが圧縮ノードである場合、文字値(論理値)
が物理アドレスへ交換されて、修正ポインターの位置を
探る必要がある。
【0066】上述した様に、この変換は15のノード形
態の各々と関連する特定のハードウエアー又はソフトウ
エアーを介して達成される。このハードウエアーは対応
する変換マトリックスで説明された変換手法を実行する
のに使用される。特定の圧縮ノードが選択されると、対
応するノード形態も選択される。図12は本発明の1実
施例を示している。この実施例においては、ブロック8
0はノード形態に対応する種々の変換機能を達成する能
力のあるハードウエアーを表している。検索されている
文字の4ビット表示はハードウエアーブロック(80)
への入力として使用されている。また、4ビットノード
形態も入力として使用される。
態の各々と関連する特定のハードウエアー又はソフトウ
エアーを介して達成される。このハードウエアーは対応
する変換マトリックスで説明された変換手法を実行する
のに使用される。特定の圧縮ノードが選択されると、対
応するノード形態も選択される。図12は本発明の1実
施例を示している。この実施例においては、ブロック8
0はノード形態に対応する種々の変換機能を達成する能
力のあるハードウエアーを表している。検索されている
文字の4ビット表示はハードウエアーブロック(80)
への入力として使用されている。また、4ビットノード
形態も入力として使用される。
【0067】これらの2つの信号に応答し、変換ハード
ウエアー(80)が4ビット出力を発生する。この出力
は、検索されるべき文字によって参照される論理アドレ
スと関連する物理アドレスに対応する。この物理アドレ
スの最初の2ビットは、圧縮されたノード内の4つのポ
インターの一つを選択するのに使用される。第2の2ビ
ットは次にこのポインターと関連するポインターIDと
比較される。ポインターIDが物理アドレスの第2の2
ビットと一致する場合、この一致が見つけられ、この検
索がポインターアドレスによって参照されるノードで続
行する。ポインターIDが物理アドレスビットと一致し
ない場合、一致がなく、検索は終了する(即ち、空ポイ
ンターに到達する。)変換ハードウエア又はソフトウエ
アーによって達成される変換は以下の通りである。ノー
ド形態が一度選択されると、特定のハードウエアー及び
ソフトウエアー及び特定の変換マトリックスも選択され
る。このハードウエアーが関連する変換マトリックスに
よって図示される機能を達成する様に構成されている。
例えば、0001のノード入力及び0100又は4hの
文字入力を使用して、変換ハードウエアー又はソフトウ
エアーが0010の出力信号を発生する。出力の最初の
2ビットは変換マトリックスの対応する行(即ち、この
例においては、第1の行(行0)を表している。出力の
第2のビットが対応する変換マトリックスの列を表して
いる。この例において、入力文字(4h)が第2の列に
あるので、列の値は10(2進2)である。
ウエアー(80)が4ビット出力を発生する。この出力
は、検索されるべき文字によって参照される論理アドレ
スと関連する物理アドレスに対応する。この物理アドレ
スの最初の2ビットは、圧縮されたノード内の4つのポ
インターの一つを選択するのに使用される。第2の2ビ
ットは次にこのポインターと関連するポインターIDと
比較される。ポインターIDが物理アドレスの第2の2
ビットと一致する場合、この一致が見つけられ、この検
索がポインターアドレスによって参照されるノードで続
行する。ポインターIDが物理アドレスビットと一致し
ない場合、一致がなく、検索は終了する(即ち、空ポイ
ンターに到達する。)変換ハードウエア又はソフトウエ
アーによって達成される変換は以下の通りである。ノー
ド形態が一度選択されると、特定のハードウエアー及び
ソフトウエアー及び特定の変換マトリックスも選択され
る。このハードウエアーが関連する変換マトリックスに
よって図示される機能を達成する様に構成されている。
例えば、0001のノード入力及び0100又は4hの
文字入力を使用して、変換ハードウエアー又はソフトウ
エアーが0010の出力信号を発生する。出力の最初の
2ビットは変換マトリックスの対応する行(即ち、この
例においては、第1の行(行0)を表している。出力の
第2のビットが対応する変換マトリックスの列を表して
いる。この例において、入力文字(4h)が第2の列に
あるので、列の値は10(2進2)である。
【0068】変換マトリックスに対するのに加え、変換
ハードウエアーからの出力は又圧縮ノード内の物理ポイ
ンターのアドレス指定及び検査に使用される。以上の例
において、行の値が00であるので、第1の要素(行
0)内のポインターが選択される。特定のポインターに
関連するポインターIDは次に10、出力信号の最終の
2ビットと比較される。一致は、第1のポインターが文
字4hに対応することを示し、検索が続行する。ビット
及びポインターIDが一致しない場合、選択されたノー
ドの文字4hと関連するポインターが存在しないので、
検索は終了する。
ハードウエアーからの出力は又圧縮ノード内の物理ポイ
ンターのアドレス指定及び検査に使用される。以上の例
において、行の値が00であるので、第1の要素(行
0)内のポインターが選択される。特定のポインターに
関連するポインターIDは次に10、出力信号の最終の
2ビットと比較される。一致は、第1のポインターが文
字4hに対応することを示し、検索が続行する。ビット
及びポインターIDが一致しない場合、選択されたノー
ドの文字4hと関連するポインターが存在しないので、
検索は終了する。
【0069】この方法により、上述の方法で構成された
ノードは4ビットノード形態及び2ビットポインターI
Dのみを使用して検索することができる。これらの2つ
のコードの使用は各ポインター要素に対して6(4+
2)だけの付加ビットを必要とする。これでインデック
ス変換に対する16ビットビットマスクを使用する装置
と比較してかなりメモリーを節約することになる。
ノードは4ビットノード形態及び2ビットポインターI
Dのみを使用して検索することができる。これらの2つ
のコードの使用は各ポインター要素に対して6(4+
2)だけの付加ビットを必要とする。これでインデック
ス変換に対する16ビットビットマスクを使用する装置
と比較してかなりメモリーを節約することになる。
【0070】V.変換ハードウエアーの実現 A.ハードウエアー 変換機能を有する実際のハードウエアーの構成を助ける
ために、図13、14、15は各ノード形態、その関連
する変換マトリックス及び第3のマトリックスを図示す
る。この第3のマトリックスは「ハッシング」マトリッ
クスとして知られている。
ために、図13、14、15は各ノード形態、その関連
する変換マトリックス及び第3のマトリックスを図示す
る。この第3のマトリックスは「ハッシング」マトリッ
クスとして知られている。
【0071】各ノード形態に対するハードウエアーの構
成は以下の通りである。第1に、関連するノード形態が
図13、14、15に配置される。次に、対応するハッ
シングマトリックスが得られる。各ハッシングマトック
スは、論理インデックス(即ち、検索文字)を、ハッシ
ングマトリックスと関連するノード形態を有する圧縮さ
れたノード内の対応する要素のアドレス指定を行うのに
使用される物理アドレスへ写像するハードウエアー又は
ソフトウエアーを介して実行される線形関数を表してい
る。
成は以下の通りである。第1に、関連するノード形態が
図13、14、15に配置される。次に、対応するハッ
シングマトリックスが得られる。各ハッシングマトック
スは、論理インデックス(即ち、検索文字)を、ハッシ
ングマトリックスと関連するノード形態を有する圧縮さ
れたノード内の対応する要素のアドレス指定を行うのに
使用される物理アドレスへ写像するハードウエアー又は
ソフトウエアーを介して実行される線形関数を表してい
る。
【0072】上述した様に、各ハッシュは特定の線形写
像関数の表示である。この議論の目的から、線形関数は
本質的に以下の通りである。Aが(a1及びa2を含
む)文字集合であり、#が(a1#a2)の結果が同様
にA内の文字である様に選ばれた非トリビアル2進オペ
レータである場合において、集合Aから異なる集合Bの
要素に写像する関数H()が定義される。集合Bがま
た、(b1@b2)がBの要素である様な非トリビアル
オペレータ@を含む場合、オペレータ#及び@が、全て
の可能な要素a1及びa2に対して、H(a1)@H
(a2)=H(a1#a2)であることが見出される場
合及びその場合のみにおいて、関数H()は線形であ
る。
像関数の表示である。この議論の目的から、線形関数は
本質的に以下の通りである。Aが(a1及びa2を含
む)文字集合であり、#が(a1#a2)の結果が同様
にA内の文字である様に選ばれた非トリビアル2進オペ
レータである場合において、集合Aから異なる集合Bの
要素に写像する関数H()が定義される。集合Bがま
た、(b1@b2)がBの要素である様な非トリビアル
オペレータ@を含む場合、オペレータ#及び@が、全て
の可能な要素a1及びa2に対して、H(a1)@H
(a2)=H(a1#a2)であることが見出される場
合及びその場合のみにおいて、関数H()は線形であ
る。
【0073】ハッシングマトリックスによって表される
線形関数に対して、集合Aは全ての可能な検索文字(文
字インデックス)の集合に対応し、集合Aは固有のノー
ド要素をアドレス指定するのに使用される物理インデッ
クスに対応する。従って、各パッシングマトリックスは
写像関数H()に対応し、論理インデックスから物理イ
ンデックスへ写像する。
線形関数に対して、集合Aは全ての可能な検索文字(文
字インデックス)の集合に対応し、集合Aは固有のノー
ド要素をアドレス指定するのに使用される物理インデッ
クスに対応する。従って、各パッシングマトリックスは
写像関数H()に対応し、論理インデックスから物理イ
ンデックスへ写像する。
【0074】変換マトリックスによって表される写像関
数及び関連するハッシングマトリックスは線形であるの
で、単純なハードウエア構成が各関数(又は各ノード形
態が15の可能な写像関数の一つと関連するのでノード
形態)に対して導かれる。2進オペレータ#及び@に対
して数種の可能なハードウエア構成が存在するが、排他
的論理和(XOR)オペレータを利用するハードウエア
のみが記述される。
数及び関連するハッシングマトリックスは線形であるの
で、単純なハードウエア構成が各関数(又は各ノード形
態が15の可能な写像関数の一つと関連するのでノード
形態)に対して導かれる。2進オペレータ#及び@に対
して数種の可能なハードウエア構成が存在するが、排他
的論理和(XOR)オペレータを利用するハードウエア
のみが記述される。
【0075】排他的論理和ハードウエアーは、その2つ
入力の何れかが1である場合は常に論理1信号を発生す
る。両入力が1又は両入力が0の場合、出力は零とな
る。図16は排他的ハードウエアーに対する通常のシン
ボルを図示している。3入力以上の排他的論理和は入力
信号を2つづつのグループに分けることにより説明でき
る。4入力の排他的論理和の例が図17に与えられてい
る。
入力の何れかが1である場合は常に論理1信号を発生す
る。両入力が1又は両入力が0の場合、出力は零とな
る。図16は排他的ハードウエアーに対する通常のシン
ボルを図示している。3入力以上の排他的論理和は入力
信号を2つづつのグループに分けることにより説明でき
る。4入力の排他的論理和の例が図17に与えられてい
る。
【0076】図18はハッシング関数の一つの可能なハ
ードウエアーの実行を図示している。ノード形態(9
0)が一度(例えば、親ノード内のポインターから)得
られると、これは16(2**4)エントリーを有する
ルックアップテーブル(92)内に入力される。ルック
アップテーブル内の各エントリーはハッシングマトリッ
クスの16のマトリックス係数を表す16のビットから
なる。従って、ルックアップテーブルは、入力ノード形
態と関連するハッシングマトリックスの係数を表す16
ビット出力(H0−HF)を発生する。ルックアップテ
ーブル及びハッシュテーブルマトリックス間の相関がマ
トリックス(96)内に図示されている。
ードウエアーの実行を図示している。ノード形態(9
0)が一度(例えば、親ノード内のポインターから)得
られると、これは16(2**4)エントリーを有する
ルックアップテーブル(92)内に入力される。ルック
アップテーブル内の各エントリーはハッシングマトリッ
クスの16のマトリックス係数を表す16のビットから
なる。従って、ルックアップテーブルは、入力ノード形
態と関連するハッシングマトリックスの係数を表す16
ビット出力(H0−HF)を発生する。ルックアップテ
ーブル及びハッシュテーブルマトリックス間の相関がマ
トリックス(96)内に図示されている。
【0077】マトリックス係数がルックアップテーブル
(92)から一度出力されると、これらは図18に図示
されるハッシングハードウエアーへ入力される。各マト
リックス係数は16ANDゲート(98A−98P)の
一つへの1入力として機能する。最上位ビットであるC
0を有する検索文字(C0−C3)に対する文字ビット
はまたハッシングハードウエアーへの入力である。各文
字入力ビットは16ANDゲートの4入力とされる。
(92)から一度出力されると、これらは図18に図示
されるハッシングハードウエアーへ入力される。各マト
リックス係数は16ANDゲート(98A−98P)の
一つへの1入力として機能する。最上位ビットであるC
0を有する検索文字(C0−C3)に対する文字ビット
はまたハッシングハードウエアーへの入力である。各文
字入力ビットは16ANDゲートの4入力とされる。
【0078】16ANDゲートからの出力は4つのグル
ープに分けられ、入力は4つの4入力XORゲート(9
9A)にグループ分けされる。これらのゲートの動作は
図17に図示されるものと同じである。最上位ビット0
0を有する4つのXORゲート(00−03)は入力検
索文字に対応するハッシュされた(又は物理)インデッ
クスを表示する。
ープに分けられ、入力は4つの4入力XORゲート(9
9A)にグループ分けされる。これらのゲートの動作は
図17に図示されるものと同じである。最上位ビット0
0を有する4つのXORゲート(00−03)は入力検
索文字に対応するハッシュされた(又は物理)インデッ
クスを表示する。
【0079】図示されたハードウエアーはハッシングマ
トリックスを直接実行するものと考えることができる。
各々4つのANDゲートの集合である(各XOR)ゲー
トはハッシングマトリックスの別の行と考えることがで
きる。従って、各XORゲートの出力は、関連するハッ
シングビットによって表される行と、列化された形態で
検索文字ビットによって表される列との2進値マトリッ
クスの積に等しい。
トリックスを直接実行するものと考えることができる。
各々4つのANDゲートの集合である(各XOR)ゲー
トはハッシングマトリックスの別の行と考えることがで
きる。従って、各XORゲートの出力は、関連するハッ
シングビットによって表される行と、列化された形態で
検索文字ビットによって表される列との2進値マトリッ
クスの積に等しい。
【0080】例えば、検索文字7h(0111)及びノ
ード形態0010が与えられると、ハードウエアーは以
下の様に作動する。先ず、ノード形態0010はルック
アップテーブル(92)へ入力される。ルックアップテ
ーブルは(例えば、1010000101000010
の)関連するマトリックス係数を発生する。これらのマ
トリックスは入力文字ビットとの論理和が取られ、XO
Rゲートに対する入力を発生する。この例では、XOR
(99A)に対する入力は0010であり、XOR(9
9B)に対する入力は0001であり、XOR(99
C)に対する入力は0100であり、XOR(99D)
に対する入力は0010である。
ード形態0010が与えられると、ハードウエアーは以
下の様に作動する。先ず、ノード形態0010はルック
アップテーブル(92)へ入力される。ルックアップテ
ーブルは(例えば、1010000101000010
の)関連するマトリックス係数を発生する。これらのマ
トリックスは入力文字ビットとの論理和が取られ、XO
Rゲートに対する入力を発生する。この例では、XOR
(99A)に対する入力は0010であり、XOR(9
9B)に対する入力は0001であり、XOR(99
C)に対する入力は0100であり、XOR(99D)
に対する入力は0010である。
【0081】従って、ハードウエアーからの出力は11
11又は行3、列3である。図13を参照し直すと、ノ
ード形態0010に関連する変換マトリックスに対する
行3、列3に対応する文字は7h(これは入力文字であ
った)であることに気付く。従って、各ノード形態に対
するハッシングマトリックスが与えられると、ハードウ
エアーの実現が極めて容易になる。
11又は行3、列3である。図13を参照し直すと、ノ
ード形態0010に関連する変換マトリックスに対する
行3、列3に対応する文字は7h(これは入力文字であ
った)であることに気付く。従って、各ノード形態に対
するハッシングマトリックスが与えられると、ハードウ
エアーの実現が極めて容易になる。
【0082】B.ソフトウエアーの実現 論理物理アドレス変換がハードウエアーでなく、ソフト
ウエアーの使用を通して生じる別の実施例が考えられ
る。これを実行することできる少なくとも2つの方法が
存在する。 1.マトリックス乗算 論理物理変換は、ノード形態と関連するハッシングマト
リックスを列形態の入力検索文字の4つのビットと乗算
することにより達成することができる。この様な乗算は
公知のブログラム技法をとして達成することができ、変
換された(物理)アドレスを発生することができる。
ウエアーの使用を通して生じる別の実施例が考えられ
る。これを実行することできる少なくとも2つの方法が
存在する。 1.マトリックス乗算 論理物理変換は、ノード形態と関連するハッシングマト
リックスを列形態の入力検索文字の4つのビットと乗算
することにより達成することができる。この様な乗算は
公知のブログラム技法をとして達成することができ、変
換された(物理)アドレスを発生することができる。
【0083】例えば、検索文字7h(0111)及びノ
ード形態0010が与えられると、変換アドレスは以下
の様にして決定することができる。ソフトウエアーを
(伝統的な方法を使用して)発展させ、図19に示され
るマトリックス乗算を達成することができる。この様な
乗算は、上述のハードウエアーを使用して得られるもの
と等しい4ビット出力を発生する。
ード形態0010が与えられると、変換アドレスは以下
の様にして決定することができる。ソフトウエアーを
(伝統的な方法を使用して)発展させ、図19に示され
るマトリックス乗算を達成することができる。この様な
乗算は、上述のハードウエアーを使用して得られるもの
と等しい4ビット出力を発生する。
【0084】同様の方法で、マトリックス乗算を達成す
るためのプログラムが15のノード形態の各々に対して
発展することができる。 2.ルックアップテーブル 乗算プログラムを使用する代わりに、高速ルックアップ
テーブルを採用することができる。変化されたアドレス
を得るために、4ビット検索文字を4ビットノード形態
と結合して、8ビットアドレスを発生することができ
る。この様なアドレスは256(2**8)エントリー
を有する変換テーブルのアドレス決めに使用することが
できる。この様な変換テーブルは、ノード形態を文字コ
ードと組織的に結合し、これがどのアドレスにアクセス
するかを決め、そしてそのアドレスに特定のノード形態
及び文字の結合に対応する変換アドレスを記憶すること
により達成できる。 VI.実施例 図20−21は8エントリーを有するTRIE構造化さ
れたデータベースの構築を図示している。図21におい
て、このエントリーは圧縮されたノードを使用するTR
IE構造へ設置される。図22は、上述の方法を使用し
て圧縮されるTRIE構造を図示している。この例で
は、現在のノードに対する次のノード及びポインターI
Dに対するノード形態が各ノードの各要素に記憶され
る。また、この例では、リーフノードが0、1又は2に
等しい如何なるエントリーに対しても与えられる。完全
ノードに対して、ポインターIDビットが不適切であ
る。
るためのプログラムが15のノード形態の各々に対して
発展することができる。 2.ルックアップテーブル 乗算プログラムを使用する代わりに、高速ルックアップ
テーブルを採用することができる。変化されたアドレス
を得るために、4ビット検索文字を4ビットノード形態
と結合して、8ビットアドレスを発生することができ
る。この様なアドレスは256(2**8)エントリー
を有する変換テーブルのアドレス決めに使用することが
できる。この様な変換テーブルは、ノード形態を文字コ
ードと組織的に結合し、これがどのアドレスにアクセス
するかを決め、そしてそのアドレスに特定のノード形態
及び文字の結合に対応する変換アドレスを記憶すること
により達成できる。 VI.実施例 図20−21は8エントリーを有するTRIE構造化さ
れたデータベースの構築を図示している。図21におい
て、このエントリーは圧縮されたノードを使用するTR
IE構造へ設置される。図22は、上述の方法を使用し
て圧縮されるTRIE構造を図示している。この例で
は、現在のノードに対する次のノード及びポインターI
Dに対するノード形態が各ノードの各要素に記憶され
る。また、この例では、リーフノードが0、1又は2に
等しい如何なるエントリーに対しても与えられる。完全
ノードに対して、ポインターIDビットが不適切であ
る。
【0085】図23は検索ワード6D5に対する例示的
なデータベースで行うことのできる検索を図示してい
る。一致がこの検索ワードに対して見出されると、検索
はリーフノードで終了する。図24Bにおいて、同じデ
ータベースが、異なる検索項EA9を使用して検索され
る。ここで、対応するエントリーが見出されず、検索は
ノードDで終了する。ここで、ポインターIDが発生さ
れた変換アドレスと一致しないことか分かる。 VII. 特別な実行 以下に記述のおいて、上で参照された出願による通路圧
縮が採用されると考える。
なデータベースで行うことのできる検索を図示してい
る。一致がこの検索ワードに対して見出されると、検索
はリーフノードで終了する。図24Bにおいて、同じデ
ータベースが、異なる検索項EA9を使用して検索され
る。ここで、対応するエントリーが見出されず、検索は
ノードDで終了する。ここで、ポインターIDが発生さ
れた変換アドレスと一致しないことか分かる。 VII. 特別な実行 以下に記述のおいて、上で参照された出願による通路圧
縮が採用されると考える。
【0086】図25−33は本発明の特定の実施例を図
示している。図示された実施例は少なくとも30Kのエ
ントリーを保有する能力がある。32Kの末端ノード及
び30Kの末端ノードが存在する。2Kの変換ノードが
写像されて、特別な実行(例えば、ISO 8348/
SD2 フォーマットネットワートアドレッシング)に
対する固有の解析を指示するための付加的なメモリーが
提供される。写像されたノードのアドレス指定の試み
は、空ノードとして解釈される。この実施例において、
通路圧縮がポインター圧縮と共に実行される。
示している。図示された実施例は少なくとも30Kのエ
ントリーを保有する能力がある。32Kの末端ノード及
び30Kの末端ノードが存在する。2Kの変換ノードが
写像されて、特別な実行(例えば、ISO 8348/
SD2 フォーマットネットワートアドレッシング)に
対する固有の解析を指示するための付加的なメモリーが
提供される。写像されたノードのアドレス指定の試み
は、空ノードとして解釈される。この実施例において、
通路圧縮がポインター圧縮と共に実行される。
【0087】図25は本発明において利用されるメモリ
ー構成を図示する。7個の1メガSRAMが以下の様に
構成される。6個の245*4のチップが256K*2
4メモリーバンクとして構成されている。7番目のSR
AMが128K*8メモリーバンクとして採用される。
256K*24メモリーバンクが文字列/ポインターメ
モリーとして知られる。この128K*8メモリーバン
クは制御/拡張ワードメモリーとして知られる。
ー構成を図示する。7個の1メガSRAMが以下の様に
構成される。6個の245*4のチップが256K*2
4メモリーバンクとして構成されている。7番目のSR
AMが128K*8メモリーバンクとして採用される。
256K*24メモリーバンクが文字列/ポインターメ
モリーとして知られる。この128K*8メモリーバン
クは制御/拡張ワードメモリーとして知られる。
【0088】文字列/ポインターメモリーは128K*
24の2つのバンクに分割される。上方のバンクは「ポ
インターバンク」と呼ばれ、32Kの圧縮ノードの一連
の領域と考えることが出来る。この領域は15ノードア
ドレスビットのアドレスによってアドレス可能である。
16のアドレスビットは、ノードが遷移ノード(別のノ
ードを指し示すノード)であるか、末端ノード(検索の
端部を指し示すノード)であるかを示すのに使用され
る。この16ビットはアドレス可能な圧縮された64K
のノード全てに作用する。
24の2つのバンクに分割される。上方のバンクは「ポ
インターバンク」と呼ばれ、32Kの圧縮ノードの一連
の領域と考えることが出来る。この領域は15ノードア
ドレスビットのアドレスによってアドレス可能である。
16のアドレスビットは、ノードが遷移ノード(別のノ
ードを指し示すノード)であるか、末端ノード(検索の
端部を指し示すノード)であるかを示すのに使用され
る。この16ビットはアドレス可能な圧縮された64K
のノード全てに作用する。
【0089】文字例/ホインターバンク内の下方のバン
クは「文字列バンク」として知られる。このバンクは6
4Kの二重ワードに分割される。各二重ワードは64K
のアドレス可能なノードの一つと関連する。各2重ワー
ドが第1の文字例及び第2の文字ワードからなる。文字
ワードの使用はCOMPRESSED PREFIX MATCHIN DATABASESE
ARCHINGと題される出願に議論されており、ここでは議
論されない。
クは「文字列バンク」として知られる。このバンクは6
4Kの二重ワードに分割される。各二重ワードは64K
のアドレス可能なノードの一つと関連する。各2重ワー
ドが第1の文字例及び第2の文字ワードからなる。文字
ワードの使用はCOMPRESSED PREFIX MATCHIN DATABASESE
ARCHINGと題される出願に議論されており、ここでは議
論されない。
【0090】128K*8メモリーバンクが制御/拡張
ワードメモリーとして知られる。このメモリーバンクは
64Kの二重ワードに分解される。各二重ワードはアド
レス可能な圧縮ノードの一つと関連する。制御/拡張ワ
ードは通路圧縮で使用され、上記特許出願で議論され
る。図26は文字列/ポインターメモリーに記憶される
24ビットポインターの分割を図示している。各4ノー
ドはこの様な4ポインターを含んでいる。第1の2ビッ
トP及びSはパリティービット及び文字列ビットであ
る。このパリティービットはポインターが正しく記憶さ
れていることを補償するのに使用され、文字列ビット
が、通路圧縮文字列が次のノードに記憶されることを示
す。この説明の目的として、文字列ビットが設定され
ず、即ち、通路圧縮文字列が次のノードに記憶されない
と仮定する。文字列ビットが設定される時の固有の操作
が上記出願に含まれる。
ワードメモリーとして知られる。このメモリーバンクは
64Kの二重ワードに分解される。各二重ワードはアド
レス可能な圧縮ノードの一つと関連する。制御/拡張ワ
ードは通路圧縮で使用され、上記特許出願で議論され
る。図26は文字列/ポインターメモリーに記憶される
24ビットポインターの分割を図示している。各4ノー
ドはこの様な4ポインターを含んでいる。第1の2ビッ
トP及びSはパリティービット及び文字列ビットであ
る。このパリティービットはポインターが正しく記憶さ
れていることを補償するのに使用され、文字列ビット
が、通路圧縮文字列が次のノードに記憶されることを示
す。この説明の目的として、文字列ビットが設定され
ず、即ち、通路圧縮文字列が次のノードに記憶されない
と仮定する。文字列ビットが設定される時の固有の操作
が上記出願に含まれる。
【0091】P及びSビットの後に、2ビットポインタ
ーIDが配置される。ポインターIDに次のノードに対
するポインターが続く。このポインターは16ビットか
らなる。第1の(最上位)ビットがTNとして知られ
る。このビットが設定される場合、これは、次のノード
が末端ノードであることを示す。TNビットに続く15
ビットは次のノードの最下位ビットからなる。上述した
様に、2Kの遷移ノードが分析のために写像することが
できる。これが行われる場合、0000hから07FF
h迄のアドレスは空ノードと解釈され、この範囲内の値
を有するポインターは空ポインターである。16要素ノ
ード(完全ノード)がアドレスされるべき場合、ポイン
ターの最後の2つの最下位ビットが零に設定されるべき
である。
ーIDが配置される。ポインターIDに次のノードに対
するポインターが続く。このポインターは16ビットか
らなる。第1の(最上位)ビットがTNとして知られ
る。このビットが設定される場合、これは、次のノード
が末端ノードであることを示す。TNビットに続く15
ビットは次のノードの最下位ビットからなる。上述した
様に、2Kの遷移ノードが分析のために写像することが
できる。これが行われる場合、0000hから07FF
h迄のアドレスは空ノードと解釈され、この範囲内の値
を有するポインターは空ポインターである。16要素ノ
ード(完全ノード)がアドレスされるべき場合、ポイン
ターの最後の2つの最下位ビットが零に設定されるべき
である。
【0092】ポインターに続いて、次のノードに対する
4ビットノード形態が続く。0000のノード形態が、
次のノードが完全ノードであることを示す。ポインター
が、次のノードが端子ノード又は空であることを示す場
合、そのノードビットは不適切である。図27−29は
制御/拡張ワード及び文字列ワードに対するビット表現
を記述する。
4ビットノード形態が続く。0000のノード形態が、
次のノードが完全ノードであることを示す。ポインター
が、次のノードが端子ノード又は空であることを示す場
合、そのノードビットは不適切である。図27−29は
制御/拡張ワード及び文字列ワードに対するビット表現
を記述する。
【0093】図30は本発明の実施例を表示する図。計
数器/拡張ワードメモリー(100)、レジスタ(10
1)、文字列圧縮論理(102)、及びANDゲート
(103)は全て通路圧縮で利用される。上述の様に、
この説明の為に、各ノードは2以上の非空ノード要素を
有する完全ノード又は圧縮ノードであると考える。この
様にして、ANDゲート(103)は常に0を発生し
て、(文字ワードと対比される)ポインターがフェッチ
されるべきことを示す。
数器/拡張ワードメモリー(100)、レジスタ(10
1)、文字列圧縮論理(102)、及びANDゲート
(103)は全て通路圧縮で利用される。上述の様に、
この説明の為に、各ノードは2以上の非空ノード要素を
有する完全ノード又は圧縮ノードであると考える。この
様にして、ANDゲート(103)は常に0を発生し
て、(文字ワードと対比される)ポインターがフェッチ
されるべきことを示す。
【0094】レジスタ(104)及び(105)は次の
ポインター及び検索されるべき次の文字の開始を記録す
るのに使用される。検索文字(106)は検索されてい
るデータ文字列の4ビット部分からなる。上述の様に、
各ポインターは文字列/ポインターメモリー(108)
に記憶される24ビットエントリーである。レジスタ
(105)は、検索文字の開始しと同時に各ポインター
の開始を記録するのに使用される。
ポインター及び検索されるべき次の文字の開始を記録す
るのに使用される。検索文字(106)は検索されてい
るデータ文字列の4ビット部分からなる。上述の様に、
各ポインターは文字列/ポインターメモリー(108)
に記憶される24ビットエントリーである。レジスタ
(105)は、検索文字の開始しと同時に各ポインター
の開始を記録するのに使用される。
【0095】24ビットポインター信号は文字列圧縮論
理(102)及びホールディングレジスタ(109)に
与えられる。ホールディングレジスタは、フェッチされ
たエントリーがポインターか文字列であるかを示す信号
(110)によってイネーブルになる。このために、ホ
ールディングレジスタは常にイネーブル状態となる。ノ
ード形態を表すポインター信号の4ビットは、零検出器
(112)及びノード形態ルックアップ(113)の両
方に与えられる。零検出器(112)は、ノード形態入
力が0000に等しい時常に1を発生する。従って、完
全ノードがアドレス指定された時(即ち、ノード形態=
0000)、零検出器(112)からの信号は1であろ
う。0信号は、アドレスされるべき次のノードが圧縮さ
れたノードであることを示す。零検出器(112)から
の出力はレジスタ(130)への入力として加えられ、
次のクロックサイクル(ブロックB)に対する入力とし
て機能する。
理(102)及びホールディングレジスタ(109)に
与えられる。ホールディングレジスタは、フェッチされ
たエントリーがポインターか文字列であるかを示す信号
(110)によってイネーブルになる。このために、ホ
ールディングレジスタは常にイネーブル状態となる。ノ
ード形態を表すポインター信号の4ビットは、零検出器
(112)及びノード形態ルックアップ(113)の両
方に与えられる。零検出器(112)は、ノード形態入
力が0000に等しい時常に1を発生する。従って、完
全ノードがアドレス指定された時(即ち、ノード形態=
0000)、零検出器(112)からの信号は1であろ
う。0信号は、アドレスされるべき次のノードが圧縮さ
れたノードであることを示す。零検出器(112)から
の出力はレジスタ(130)への入力として加えられ、
次のクロックサイクル(ブロックB)に対する入力とし
て機能する。
【0096】ノード形態ルックアップ(113)通常論
理を採用して、4ビット形態を、ノード形態と関連する
変換マトリックスを示す16ビット信号へ変換する。ハ
ッシュ論理(114)は4ビット検索文字入力にハッシ
ング動作を達成する。ハッシュ論理(114)からの出
力は2つの列ビット(115a)及び2つの行ビット
(115b)を含む。理解される様に、ハッシュ列ビッ
トがレジスタ(130)に与えられ、次のクロックサイ
クルに対する入力として機能する。(ブロックAを見
よ)2つの行ビット(115b)は、ポインターアドレ
スの2最下位ビットと結合されて、乗算器116へ4ビ
ット入力を発生する。乗算器(116)への第2の入力
が入力検索文字のハッシュされないビットからなる。
理を採用して、4ビット形態を、ノード形態と関連する
変換マトリックスを示す16ビット信号へ変換する。ハ
ッシュ論理(114)は4ビット検索文字入力にハッシ
ング動作を達成する。ハッシュ論理(114)からの出
力は2つの列ビット(115a)及び2つの行ビット
(115b)を含む。理解される様に、ハッシュ列ビッ
トがレジスタ(130)に与えられ、次のクロックサイ
クルに対する入力として機能する。(ブロックAを見
よ)2つの行ビット(115b)は、ポインターアドレ
スの2最下位ビットと結合されて、乗算器116へ4ビ
ット入力を発生する。乗算器(116)への第2の入力
が入力検索文字のハッシュされないビットからなる。
【0097】乗算器(116)は零検出器(112)に
よって発生される信号に応答する。零検出器(112)
からの1は、ハッシュされない文字ビットを乗算器(1
16)に通させる。これは、完全ノードがアドレス指定
される場合である。ゼロ検出器(112)からの0は、
ポインターアドレスの2最下位ビットと共に2行ビット
を選択する。これは、次のノードが圧縮ノードである場
合である。
よって発生される信号に応答する。零検出器(112)
からの1は、ハッシュされない文字ビットを乗算器(1
16)に通させる。これは、完全ノードがアドレス指定
される場合である。ゼロ検出器(112)からの0は、
ポインターアドレスの2最下位ビットと共に2行ビット
を選択する。これは、次のノードが圧縮ノードである場
合である。
【0098】乗算器(116)からの出力は第2の乗算
器(117)へ送られる。この乗算器は、ポインター、
圧縮文字のいずれが次に選択されるべきかを選択するの
に使用される。ANDゲート(103)からの出力は乗
算器(117)に対する選択された信号として使用され
る。上述の様に、この例ではポインターのみがアドレス
指定されると仮定される。この様にして、乗算器(11
7)に対する選択入力は0であり、乗算器(116)か
らの出力が選択される。
器(117)へ送られる。この乗算器は、ポインター、
圧縮文字のいずれが次に選択されるべきかを選択するの
に使用される。ANDゲート(103)からの出力は乗
算器(117)に対する選択された信号として使用され
る。上述の様に、この例ではポインターのみがアドレス
指定されると仮定される。この様にして、乗算器(11
7)に対する選択入力は0であり、乗算器(116)か
らの出力が選択される。
【0099】接続(118)において、最後の2最下位
ポインターアドレスビットが(TNビット及びフェッチ
ストリングワードビットと共に)、ポインターアドレス
のTNビットに続く最初の13アドレスビットと再結合
される。また、この点において、TNビットが(通路圧
縮と関連する他のビットと共に)、17ビット信号(1
19)と再結合さる。この信号の部分は端末/NL検出
論理(120)に加えられる。
ポインターアドレスビットが(TNビット及びフェッチ
ストリングワードビットと共に)、ポインターアドレス
のTNビットに続く最初の13アドレスビットと再結合
される。また、この点において、TNビットが(通路圧
縮と関連する他のビットと共に)、17ビット信号(1
19)と再結合さる。この信号の部分は端末/NL検出
論理(120)に加えられる。
【0100】末端/空検出器論理は、次のノードが末端
ノード(即ち、TN=1)であることを決める。次のノ
ードが末端ノードである場合、1は、検索が完了される
ことを示す出力(120a)で発生される。末端ノード
はリーフポインターによって指示されるノードである。
ポインターアドレスが写像された範囲(即ち、0000
−07FF)内にある場合、末端論理(120)は出力
(120b)に出力を発生し、データベースに一致がな
く、検索が完了すべきことを示す。
ノード(即ち、TN=1)であることを決める。次のノ
ードが末端ノードである場合、1は、検索が完了される
ことを示す出力(120a)で発生される。末端ノード
はリーフポインターによって指示されるノードである。
ポインターアドレスが写像された範囲(即ち、0000
−07FF)内にある場合、末端論理(120)は出力
(120b)に出力を発生し、データベースに一致がな
く、検索が完了すべきことを示す。
【0101】17ビット信号が同様に、本例で利用され
ない制御/拡張メモリー(100)に加えられる。(ブ
ロックDを見よ)乗算器(117)からの出力はポイン
ターアドレスのTNビットに続く第1の13アドレス
(即ち、「中間」の13ビット)と結合される。上述の
様に、乗算器(117)の出力は (a)4つ文字ビット〔次の完全ノード〕又は (b)2行ビット及び最後の2最下位アドレスビット
〔次の圧縮されたノード〕からなる。
ない制御/拡張メモリー(100)に加えられる。(ブ
ロックDを見よ)乗算器(117)からの出力はポイン
ターアドレスのTNビットに続く第1の13アドレス
(即ち、「中間」の13ビット)と結合される。上述の
様に、乗算器(117)の出力は (a)4つ文字ビット〔次の完全ノード〕又は (b)2行ビット及び最後の2最下位アドレスビット
〔次の圧縮されたノード〕からなる。
【0102】この17ビット信号はANDゲート(10
3)からの出力と結合され、18ビット信号(122)
を発生する。ゲート(103)からの出力は、次のアド
レスがポインターアドレス又は文字列アドレスであるか
を示す。議論した様に、この例では、ゲート(103)
は常に0を出力する。この18ビット信号(122)は
文字列/ポインターメモリー(108)に加えられる。
この信号は文字列/ポインターメモリー(108)内の
次のポインター素子をアドレスするのに使用される。
(ブロックCを見よ)ハッシュ論理(115)からのこ
の2つの列ビット(115a)は零検出器(112)か
らの信号と結合される。そして、ゲート(103)は4
ビット信号(123)を発生する(ブロックD、A、
B)。この4ビット信号は (1)次のポインターに対する
ハッシュされた列の値、(2) 次のアドレスがポインター
又はストリング(本場合は常にポインター)に対するか
否か、及び(3) 次のノードが16要素又は4要素を含む
か否かを示す。この信号(123)はレジスタ(12
5)に与えられる。
3)からの出力と結合され、18ビット信号(122)
を発生する。ゲート(103)からの出力は、次のアド
レスがポインターアドレス又は文字列アドレスであるか
を示す。議論した様に、この例では、ゲート(103)
は常に0を出力する。この18ビット信号(122)は
文字列/ポインターメモリー(108)に加えられる。
この信号は文字列/ポインターメモリー(108)内の
次のポインター素子をアドレスするのに使用される。
(ブロックCを見よ)ハッシュ論理(115)からのこ
の2つの列ビット(115a)は零検出器(112)か
らの信号と結合される。そして、ゲート(103)は4
ビット信号(123)を発生する(ブロックD、A、
B)。この4ビット信号は (1)次のポインターに対する
ハッシュされた列の値、(2) 次のアドレスがポインター
又はストリング(本場合は常にポインター)に対するか
否か、及び(3) 次のノードが16要素又は4要素を含む
か否かを示す。この信号(123)はレジスタ(12
5)に与えられる。
【0103】制御レジスタ(125)にクロック信号が
与えられる時、4ビット信号(123)はレジスタ(1
25)を通過すことが許される。ハッシュされる列ビッ
トは、要素(125)でレジスタ(105)を介してク
ロック入力されるポインターのポインターIDビットと
比較される。ビットが一致しない場合、空ポインターが
示され、他の制御ゲートビットが、圧縮されたノードが
アドレス指定されていることを示すと場合に(即ち、信
号が4ノード及びポインターを示す場合)、STOP信
号がANDゲート(127)で発生される。
与えられる時、4ビット信号(123)はレジスタ(1
25)を通過すことが許される。ハッシュされる列ビッ
トは、要素(125)でレジスタ(105)を介してク
ロック入力されるポインターのポインターIDビットと
比較される。ビットが一致しない場合、空ポインターが
示され、他の制御ゲートビットが、圧縮されたノードが
アドレス指定されていることを示すと場合に(即ち、信
号が4ノード及びポインターを示す場合)、STOP信
号がANDゲート(127)で発生される。
【0104】図31−32が上述の回路の動作を説明し
ている。説明を容易にするため、検索が既に進行してお
り、図31の時間に文字X(文字X)がレジスタ(10
4)の電流出力であると仮定される。レジスタ(10
5)の出力、ポインターX−1は、文字Xがインデック
ス付けされるノードに対するポインターである。このポ
インターは、前の文字及び親ノードによって事前に選択
されており、X−1とラベルされる。この実施例に対し
ては、ポインターX−1は完全ノード内に存在する。レ
ジスタ(130)の出力は、ポインターX−1が完全ノ
ード内に存在することを示す完全/圧縮されたビット
(F/CB.X−1)及び文字X−1に対するハッシュ
列ビットを示すハッシュ列ビット(HCB.X−1)を
含む4ビット及びフェッチされたエントリーが文字列又
は列であるか否かを示す文字列/ポインタービットを含
む。
ている。説明を容易にするため、検索が既に進行してお
り、図31の時間に文字X(文字X)がレジスタ(10
4)の電流出力であると仮定される。レジスタ(10
5)の出力、ポインターX−1は、文字Xがインデック
ス付けされるノードに対するポインターである。このポ
インターは、前の文字及び親ノードによって事前に選択
されており、X−1とラベルされる。この実施例に対し
ては、ポインターX−1は完全ノード内に存在する。レ
ジスタ(130)の出力は、ポインターX−1が完全ノ
ード内に存在することを示す完全/圧縮されたビット
(F/CB.X−1)及び文字X−1に対するハッシュ
列ビットを示すハッシュ列ビット(HCB.X−1)を
含む4ビット及びフェッチされたエントリーが文字列又
は列であるか否かを示す文字列/ポインタービットを含
む。
【0105】レジスタ(104)への入力、文字X+1
への入力は、文字Xによってインデックス付けされた要
素によって指示されるノードへのインデックスとして使
用される検索文字を表している。レジスタ(105)へ
の入力は、文字X(電流検索文字)及びポインターX−
1(文字Xによってインデックス付けされるべきノード
を指し示すポインター)に応答して上述の論理によって
発生される。この様にして、レジスタ(105)への入
力は文字X+1によってインデックス付けされるべきノ
ードのアドレスを表している。
への入力は、文字Xによってインデックス付けされた要
素によって指示されるノードへのインデックスとして使
用される検索文字を表している。レジスタ(105)へ
の入力は、文字X(電流検索文字)及びポインターX−
1(文字Xによってインデックス付けされるべきノード
を指し示すポインター)に応答して上述の論理によって
発生される。この様にして、レジスタ(105)への入
力は文字X+1によってインデックス付けされるべきノ
ードのアドレスを表している。
【0106】レジスタ(130)への入力は、次のポイ
ンター(ポインターX)が完全又は圧縮されたノードを
示すか否かを示す完全/圧縮されたビット、F/CB.
Xを含む4ビットからなる。レジスタへの別の入力は文
字X、HCB.Xのハッシュされた列ビットの2ビット
表現である。説明のために、ポインターX−1はアドレ
ス付けされる次のノードは圧縮されたノードであること
を示していると仮定する。この様にして、F/CB.X
は、0であり、次のノードが圧縮されたノードであるこ
とを示す。上述された様に、ポインターX−1は文字X
によって検査されるべきノードのノード形態を示す4ビ
ットを含む。この信号に応答して、ノード形態ルックア
ッフ(113)及びハッシュ論理(114)は、次のサ
イクル内での圧縮に対するレジスタ(130)に入力さ
れる文字Xのハッシュされた列ビットを発生する。
ンター(ポインターX)が完全又は圧縮されたノードを
示すか否かを示す完全/圧縮されたビット、F/CB.
Xを含む4ビットからなる。レジスタへの別の入力は文
字X、HCB.Xのハッシュされた列ビットの2ビット
表現である。説明のために、ポインターX−1はアドレ
ス付けされる次のノードは圧縮されたノードであること
を示していると仮定する。この様にして、F/CB.X
は、0であり、次のノードが圧縮されたノードであるこ
とを示す。上述された様に、ポインターX−1は文字X
によって検査されるべきノードのノード形態を示す4ビ
ットを含む。この信号に応答して、ノード形態ルックア
ッフ(113)及びハッシュ論理(114)は、次のサ
イクル内での圧縮に対するレジスタ(130)に入力さ
れる文字Xのハッシュされた列ビットを発生する。
【0107】3つのレジスタがクロック駆動される時、
信号は図15Fに図示される様になる。レジスタ(10
4)はシステム内へ文字X+1をクロック信号と同期し
て入力する。文字X+2は次の位置まで移動する。レジ
スタ(105)は文字Xによってアドレス付けされるポ
インター要素をクック信号と同期して入力する。このポ
インターはラベル付けされたポインターXである。レジ
スタ(130)は文字Xのハッシュされた列ビット及び
ポインターXが圧縮されたノード(F/CB.X)内に
位置することの指示をクロック信号と同期して入力す
る。
信号は図15Fに図示される様になる。レジスタ(10
4)はシステム内へ文字X+1をクロック信号と同期し
て入力する。文字X+2は次の位置まで移動する。レジ
スタ(105)は文字Xによってアドレス付けされるポ
インター要素をクック信号と同期して入力する。このポ
インターはラベル付けされたポインターXである。レジ
スタ(130)は文字Xのハッシュされた列ビット及び
ポインターXが圧縮されたノード(F/CB.X)内に
位置することの指示をクロック信号と同期して入力す
る。
【0108】レジスタ(105)にクロック入力された
ポインターXは特定の要素に対するポインターIDを含
む。同じクロックサイクルにおいて、文字Xのハッシュ
された列がレジスタ(130)を通してクロック入力さ
れる。この様なビットは比較器(160)で比較でき
る。ビットが一致しない場合、検索が終了すべき信号が
発生される。
ポインターXは特定の要素に対するポインターIDを含
む。同じクロックサイクルにおいて、文字Xのハッシュ
された列がレジスタ(130)を通してクロック入力さ
れる。この様なビットは比較器(160)で比較でき
る。ビットが一致しない場合、検索が終了すべき信号が
発生される。
【0109】理解できる様に、ポインターXは文字X+
1よってインデックス付けされるべきノードに対するア
ドレスを、そのノードに対するノード形態とともに、含
む。従って、ハッシング論理を、次のサイクルで圧縮す
るための適当な列ビットを発生するために採用すること
ができる。図30−33の回路に周期的にクロック入力
することにより、データベースの検索を実行することが
できる。この検索は、末端/空検出器が末端点を検出す
るまで続行し、ポインターID/列比較器が一致せず、
パリティーエラーが発生し、検索対象の文字が使い切ら
れるか、文字列不一致が発生する。
1よってインデックス付けされるべきノードに対するア
ドレスを、そのノードに対するノード形態とともに、含
む。従って、ハッシング論理を、次のサイクルで圧縮す
るための適当な列ビットを発生するために採用すること
ができる。図30−33の回路に周期的にクロック入力
することにより、データベースの検索を実行することが
できる。この検索は、末端/空検出器が末端点を検出す
るまで続行し、ポインターID/列比較器が一致せず、
パリティーエラーが発生し、検索対象の文字が使い切ら
れるか、文字列不一致が発生する。
【0110】図33は結合された出力入力ブロックを伴
う本発明の上述の実施例を図示している。本発明は4ビ
ット文字及び4要素のみからなる圧縮ノードに分けられ
た検索ワードと関係する間、説明された方法及び装置は
異なる長さの文字列及び異なるサイズの圧縮ノードに作
用する様に適用することができる。
う本発明の上述の実施例を図示している。本発明は4ビ
ット文字及び4要素のみからなる圧縮ノードに分けられ
た検索ワードと関係する間、説明された方法及び装置は
異なる長さの文字列及び異なるサイズの圧縮ノードに作
用する様に適用することができる。
【0111】この変換を促進するために、圧縮されたノ
ードサイズは2の冪乗である必要がある。例えば、8つ
の要素の圧縮ノードが必要な場合は、変換マトリックス
は、8行2列である。従って、ポインターIDは(列0
又は例1を示す)1ビットに減少されるべきである。2
要素の圧縮されたノードに対する、変換マトリックスは
2行8列である。この様にして、3ビットポインターI
Dが必要とされる。
ードサイズは2の冪乗である必要がある。例えば、8つ
の要素の圧縮ノードが必要な場合は、変換マトリックス
は、8行2列である。従って、ポインターIDは(列0
又は例1を示す)1ビットに減少されるべきである。2
要素の圧縮されたノードに対する、変換マトリックスは
2行8列である。この様にして、3ビットポインターI
Dが必要とされる。
【0112】変換マトリックスが発展されて、ノード形
態が指定されて、2又は8文字の全ての可能な構成が記
述されることが可能とされるべきである。例えば、2要
素ノードをサポートするためには、4のみの新たな変換
マトリックスが必要とされる。これは、2ビットのみノ
ード形態を有する。各変換マトリックスは、2ノードで
文字の8*8=64の可能な対をカバーする。120の
みの可能な2文字の組み合わせ(16から2の選択、1
6!/(14!*2!))があるが、4つの変換マトリ
ックスが、必然的な高い重なりを補償するために必要と
される。
態が指定されて、2又は8文字の全ての可能な構成が記
述されることが可能とされるべきである。例えば、2要
素ノードをサポートするためには、4のみの新たな変換
マトリックスが必要とされる。これは、2ビットのみノ
ード形態を有する。各変換マトリックスは、2ノードで
文字の8*8=64の可能な対をカバーする。120の
みの可能な2文字の組み合わせ(16から2の選択、1
6!/(14!*2!))があるが、4つの変換マトリ
ックスが、必然的な高い重なりを補償するために必要と
される。
【0113】8要素をサポートするために、ノードはよ
り多くの変換マトリックスを必要とする。8要素に対し
て、12、870の可能な文字の組み合わせ(16から
8の選択、16!/(8!*8!))がある。8×2の
変換マトリックスの各々が2**8=256の可能な組
み合わせをカバーする。従って、8つの要素変換表に対
する下限は12780/256又は51である。しかし
ながら、真に直交するマトリックスを発生するが不可能
であるので、7ビットのノード形態に対して必要となる
実際の数は60−80の範囲になる。
り多くの変換マトリックスを必要とする。8要素に対し
て、12、870の可能な文字の組み合わせ(16から
8の選択、16!/(8!*8!))がある。8×2の
変換マトリックスの各々が2**8=256の可能な組
み合わせをカバーする。従って、8つの要素変換表に対
する下限は12780/256又は51である。しかし
ながら、真に直交するマトリックスを発生するが不可能
であるので、7ビットのノード形態に対して必要となる
実際の数は60−80の範囲になる。
【0114】ハードウエアー又はソフトウエアーの構成
は次に上述の方法を使用して各変換マトリックスに対し
て展開することができる。2つの要素ノード及び8つの
要素ノードは、4ノード及び16ノードを有する構造へ
の拡張としてのみとして実現できる(即ち、2及び8要
素ノードは16及び4要素ノードと関連してのみ使用さ
れるべきである)。2及び8要素ノードは一緒に使用さ
れるべきである。8つの要素ノードを2つの要素ノード
なしに使用すること(又これの逆)が、最悪の場合には
何の利益も与えない。
は次に上述の方法を使用して各変換マトリックスに対し
て展開することができる。2つの要素ノード及び8つの
要素ノードは、4ノード及び16ノードを有する構造へ
の拡張としてのみとして実現できる(即ち、2及び8要
素ノードは16及び4要素ノードと関連してのみ使用さ
れるべきである)。2及び8要素ノードは一緒に使用さ
れるべきである。8つの要素ノードを2つの要素ノード
なしに使用すること(又これの逆)が、最悪の場合には
何の利益も与えない。
【図1】伝統的なTRIE構造化データベースを使用す
るデータベース検索の説明図
るデータベース検索の説明図
【図2】ポインター圧縮を達成するための16ビットビ
ットマスクを採用するデータベース検索の説明図
ットマスクを採用するデータベース検索の説明図
【図3】本発明で利用されるノード形態及び関連する変
換マトリックスのリスト
換マトリックスのリスト
【図4】本発明で利用されるノード形態及び関連する変
換マトリックスのリスト
換マトリックスのリスト
【図5】本発明で利用されるノード形態及び関連する変
換マトリックスのリスト
換マトリックスのリスト
【図6】ポインター圧縮のための改良された方法の説明
図
図
【図7】TRIE構造化されたデータベースを構築する
帰納的方法の説明図
帰納的方法の説明図
【図8】ノード形態及びポインターIDを使用するポイ
ンター圧縮の2つの例を示す図
ンター圧縮の2つの例を示す図
【図9】ノードメモリを補修する一方法の説明図
【図10】フリーメモリーの単一リストを使用するノー
ド置き換えの説明図
ド置き換えの説明図
【図11】フリーメモリーの単一リストを使用するノー
ド置き換えの説明図
ド置き換えの説明図
【図12】本発明の一実施例のブロック図
【図13】ノード形態、その関連する変換マトリックス
及び各ノード形態に対するハッシングマトリックス
及び各ノード形態に対するハッシングマトリックス
【図14】ノード形態、その関連する変換マトリックス
及び各ノード形態に対するハッシングマトリックス
及び各ノード形態に対するハッシングマトリックス
【図15】ノード形態、その関連する変換マトリックス
及び各ノード形態に対するハッシングマトリックス
及び各ノード形態に対するハッシングマトリックス
【図16】排他的論理和操作及び記号の説明図
【図17】排他的論理和操作及び記号の説明図
【図18】ハッシングマトリックスの一つの可能な実施
形態の説明図
形態の説明図
【図19】ハッシングマトリックスの一つの可能な実施
形態の説明図
形態の説明図
【図20】例示的データベースの構築の説明図
【図21】充填された、未圧縮データベースの説明図
【図22】ノード形態及びポインターIDを使用する圧
縮データベースの説明図
縮データベースの説明図
【図23】例示データベースで達成される例示的検索の
説明図
説明図
【図24】例示データベースで達成される例示的検索の
説明図
説明図
【図25】本発明の一つの可能な実施例のメモリー構成
の説明図
の説明図
【図26】実施例で利用されるノードポインターのビッ
ト破壊の説明図
ト破壊の説明図
【図27】実施例で利用されるノードポインターのビッ
ト破壊の説明図
ト破壊の説明図
【図28】実施例で利用されるノードポインターのビッ
ト破壊の説明図
ト破壊の説明図
【図29】実施例で利用されるノードポインターのビッ
ト破壊の説明図
ト破壊の説明図
【図30】本発明の或る実施例のブロック図
【図31】実施例を通しての信号の流れの説明図
【図32】実施例を通しての信号の流れの説明図
【図33】実施例を通しての信号の流れの説明図
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成5年6月10日
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】図1
【補正方法】変更
【補正内容】
【図1】
【手続補正2】
【補正対象書類名】図面
【補正対象項目名】図2
【補正方法】変更
【補正内容】
【図2】
【手続補正3】
【補正対象書類名】図面
【補正対象項目名】図3
【補正方法】変更
【補正内容】
【図3】
【手続補正4】
【補正対象書類名】図面
【補正対象項目名】図4
【補正方法】変更
【補正内容】
【図4】
【手続補正5】
【補正対象書類名】図面
【補正対象項目名】図5
【補正方法】変更
【補正内容】
【図5】
【手続補正6】
【補正対象書類名】図面
【補正対象項目名】図6
【補正方法】変更
【補正内容】
【図6】
【手続補正7】
【補正対象書類名】図面
【補正対象項目名】図7
【補正方法】変更
【補正内容】
【図7】
【手続補正8】
【補正対象書類名】図面
【補正対象項目名】図8
【補正方法】変更
【補正内容】
【図8】
【手続補正9】
【補正対象書類名】図面
【補正対象項目名】図9
【補正方法】変更
【補正内容】
【図9】
【手続補正10】
【補正対象書類名】図面
【補正対象項目名】図10
【補正方法】変更
【補正内容】
【図10】
【手続補正11】
【補正対象書類名】図面
【補正対象項目名】図11
【補正方法】変更
【補正内容】
【図11】
【手続補正12】
【補正対象書類名】図面
【補正対象項目名】図12
【補正方法】変更
【補正内容】
【図12】
【手続補正13】
【補正対象書類名】図面
【補正対象項目名】図13
【補正方法】変更
【補正内容】
【図13】
【手続補正14】
【補正対象書類名】図面
【補正対象項目名】図14
【補正方法】変更
【補正内容】
【図14】
【手続補正15】
【補正対象書類名】図面
【補正対象項目名】図15
【補正方法】変更
【補正内容】
【図15】
【手続補正16】
【補正対象書類名】図面
【補正対象項目名】図16
【補正方法】変更
【補正内容】
【図16】
【手続補正17】
【補正対象書類名】図面
【補正対象項目名】図18
【補正方法】変更
【補正内容】
【図18】
【手続補正18】
【補正対象書類名】図面
【補正対象項目名】図19
【補正方法】変更
【補正内容】
【図19】
【手続補正19】
【補正対象書類名】図面
【補正対象項目名】図20
【補正方法】変更
【補正内容】
【図20】
【手続補正20】
【補正対象書類名】図面
【補正対象項目名】図21
【補正方法】変更
【補正内容】
【図21】
【手続補正21】
【補正対象書類名】図面
【補正対象項目名】図22
【補正方法】変更
【補正内容】
【図22】
【手続補正22】
【補正対象書類名】図面
【補正対象項目名】図23
【補正方法】変更
【補正内容】
【図23】
【手続補正23】
【補正対象書類名】図面
【補正対象項目名】図24
【補正方法】変更
【補正内容】
【図24】
【手続補正24】
【補正対象書類名】図面
【補正対象項目名】図25
【補正方法】変更
【補正内容】
【図25】
【手続補正25】
【補正対象書類名】図面
【補正対象項目名】図30
【補正方法】変更
【補正内容】
【図30】
【手続補正26】
【補正対象書類名】図面
【補正対象項目名】図31
【補正方法】変更
【補正内容】
【図31】
【手続補正27】
【補正対象書類名】図面
【補正対象項目名】図32
【補正方法】変更
【補正内容】
【図32】
【手続補正28】
【補正対象書類名】図面
【補正対象項目名】図33
【補正方法】変更
【補正内容】
【図33】
Claims (20)
- 【請求項1】アドレス指定インデックスが検索文字であ
り、データベース構造に2以上の要素を有する圧縮ノー
ドをアドレス指定する方法が、 第1の識別コードを圧縮ノードに割り当て、 第2の識別コードをノード内の各要素への割り当て、 第3の識別コードを検索文字へ割り当て、 第4の第1、第2及び第3の識別コードを比較して、ア
ドレスの一致が見出されたことを知る工程からなる方
法。 - 【請求項2】5未満の要素が非空ポインター要素である
16のポインター要素を有するTRIEノードから得ら
れるデータを記憶する方法が、(a) 各ポインター要
素を一義的な文字と関係付け、(b) 第1の2ビット
及び第2の2ビットから構成され、各この様なコード内
の最小の4ビットがビットの一義的な組み合わせである
別の一義的4ビットコードを各非空ポインター要素と関
連する文字に割り当て、(c) 非空ポインター要素及
び4ビットコードの関連する第2のビットをプログラム
記憶式プロセッサに記憶することからなる方法。 - 【請求項3】各非空ポインターと関連する文字が異なる
行に存在する様に構成された16文字である要素を有す
る4×4の変換マトリックスを発生する工程を更に含
み、各4ビットコード内の第1の2ビットが4ビットコ
ードと関連する文字が表れるマトリックス内の行と対応
し、最後の2ビットが同じ文字がマトリックス内に表れ
る列に対応することを特徴とする請求項2記載の方法。 - 【請求項4】5未満の要素が非空ポインター要素である
16のポインター要素を有するTRIEノードからな
り、(a)各非空ポインター要素を16の16進文字と
関連し、(b)一義的な4ビットコードを各関連する文
字に割り当て、2つの4ビットコードが同じ第1の2ビ
ット組み合わせを共有するようにし、(c)非空ポイン
ター要素を、各4ビットコードの第1の2ビットの2進
値に従って順序づけ、(d)各非空ポインター要素を、
関連する16進文字に割り当てられた4ビットコードの
第2の2ビットと結合して、圧縮されたポインター要素
を発生し、(e)工程(c)で達成された順序で圧縮さ
れたノードに圧縮されたポインター要素を記憶する工程
からなる方法。 - 【請求項5】工程(b)が、(b1)各変換マトリック
スが16の16進文字の全てを含む要素を含む4×4マ
トリックスである様に、一つ以上の変換マトリックスを
発生し、(b2)非空ポインター要素に割り当てられた
各16進文字が異なる行に或る様に発生された変換マト
リックスの一つを選択し、(b3)4ビットコードを、
第1の2ビットが行の2進値を表し、第2の2ビットが
列の2進値を表す様な、16進文字が見出される選択さ
れた変換マトリックス内の位置の非空ポインターに割り
当てられた各16進文字に4ビットを割り当てる工程か
らなることを特徴とする請求項4記載の方法。 - 【請求項6】一義的な識別子が発生された変換マトリッ
クスの各々に割り当てられ、工程(e)が、(e1)9
を選択された変換マトリックスに割り当てられる識別子
と関連付ける工程を含むことを特徴とする請求項5記載
の方法。 - 【請求項7】工程(b1)が図3A−3Cに図示される
形態の変換マトリックスを発生することを含む請求項6
記載の発明。 - 【請求項8】15の変換マトリックスが発生されること
を特徴とする請求項5記載の発明。 - 【請求項9】発生された変換マトリックスが線形である
ことを特徴とする請求項5記載の発明。 - 【請求項10】(a) 各々が、16の一義的な文字に
一義的に対応する4つのポインター要素、(b) 4つ
のポインター要素の一つに各々割り当てられる4つのポ
インターIDを含む圧縮されたTRIEノードからなる
メモリーシステム。 - 【請求項11】圧縮されたノードが、16の一義的な文
字からなる要素を有する4×4の変換マトリックスと関
連し、(a) 圧縮ノード内の各ポインター要素の位置
が、対応する文字が見出される変換マトリックス内の行
と関係し、そして、(b) 各ポインターIDが、割り
当てられた要素に対応する文字が見出される列と関係す
ることを特徴とする請求項10記載のメモリーシステ
ム。 - 【請求項12】検索文字を使用する請求項10のメモリ
ーシステム内の圧縮ノードを検索するための方法であ
り、この方法が、(a) 第1の部分及び第2の部分を
有する変換アドレスを各検索文字に関連し、(b) 変
換アドレスの第1の部分を使用して、圧縮ノード内のポ
インター要素の一つのアドレスを指定し、(c) 変換
アドレスの第2の位置をアドレスされた要素に割り当て
られるポインターIDと比較し、(d) 変換アドレス
の第2の部分及びアドレス指定された変換ポインター要
素に割り当てられたポインターIDが一致しない場合検
索を停止することを含む請求項10記載の方法。 - 【請求項13】検索文字を使用する請求項10のメモリ
ーシステム内の圧縮ノードを検索する方法であり、検索
文字が請求項10記載の16の一義的な文字の一つであ
り、この方法が、(a) 検索文字が見出される関連す
る変換マトリックスの行の2進値を決め、(b) 検索
文字が見出される関連する変換マトリックスの列の2進
値を決め、(c) 行の2進値及び列の2進値を結合し
て、変換アドレスを生成し、変換アドレスの第1部分
が、行値からなり、第2の部分が列値からなり、(d)
変換アドレスを検索文字と関連し、(e) 変換アド
レスの第1の部分を使用して圧縮ノード内のポインター
要素の一つのアドレス指定を行い、(f) 変換アドレ
スの第2の部分を、アドレス指定されたポインター要素
に割り当てられたポインターIDと比較し、(g) 変
換アドレスの第2の部分及びアドレス指定されたポイン
ター要素に割り当てられたポインターIDが一致しない
場合検索を停止することからなる方法。 - 【請求項14】(a) 検索されるべき次のノードのア
ドレスを示す第1の部分、次に検索されるべきノードの
形態を示す第2の部分、及びポインター識別子からなる
第3の部分からなるポインタービットフィールドを、ア
ドレスビットフィールドに応答して発生するためのメモ
リー手段、(b) ポインターフィールドの第2の部分
及び検索文字ビットフィールドに応答して、第1及び第
2の部分を有する変換アドレスを発生するためのメモリ
ー手段に結合される論理手段、(c) メモリー手段及
び論理手段と論理的に結合され、ポインタービットフィ
ールドの第3の部分及び変換アドレスの第2の部分を比
較する比較手段からなる計算機化されたデータベース操
作を達成するための装置。 - 【請求項15】入力検索文字及び検索文字を使用して検
索されるべきノードを表す値を有するビットフィールド
が与えられたTRIE構造化されたデータベース内の圧
縮されるノードあり、ポインター及びポインター識別子
を有するノード要素を含む圧縮されるノードを検索する
ための装置であり、この装置が、(a) 検索すべきノ
ードを表示するビットフィールドに応答して、このノー
ドに対する変換ビットフィールドを表す第1の論理手
段、(b) 論理的に第1の論理手段に結合され、変換
ビットフィールド及び入力検索文字に応答して、検索さ
れるべきノードの要素のアドレスを示す第1の部分及び
検索文字に対応する第2の部分からなる変換されたアド
レスを発生する第2の論理手段、(c) 第2の論理手
段に論理的に接続され、変換されたアドレスを受信し、
変換されたアドレスの第1の部分によって示されるノー
ド要素をアドレス指定を行うアドレス手段、(d) 第
2の論理手段及びアドレス手段に論理的に接続され、変
換されたアドレスを、アドレス指定する手段によってア
ドレスされるノード要素のポインター識別手段と比較す
る比較手段からなる装置。 - 【請求項16】検索文字及びノードアドレスが与えられ
た一つ以上の、要素識別子を各々含む要素を有する圧縮
されたTRIEノードを有する計算機化されたデータベ
ースを検索する方法であり、各TRIEノードは種々の
ノード形態の一つである方法が、(a) 検索されるべ
きノード及び検索されるべきノードのノード形態を示す
ノードアドレスを受信し、(b) このノードアドレス
で参照されるノードで検索されるべき検索文字を受信
し、(c) 検索文字及び検索されるべきノードのノー
ド形態に応答して、第1の部分及び第2の部分からなる
ハッシュされた値を発生し、(d) 検索されるべきノ
ードのアドレス及びハッシュされた値の第1の部分も基
づいて要素アドレスを生成し、(e) 要素アドレスに
応答してポインター要素を選択し、(f) 選択された
要素の要素識別子をハッシュされた値の第2の部分と比
較することからなる方法。 - 【請求項17】部分が一致しない場合検索を停止する工
程(g)を更に含む請求項16記載の方法。 - 【請求項18】特定の検索文字と各々関連する1つ以上
の要素を有するTRIE構造化データベース内の圧縮さ
れたノードであり、このノードが、(a) 圧縮された
ノードに位置され、その位置が要素と関連する検索文字
を部分的に決める様にする第1の要素、(b) 要素位
置と組み合わせ、2進コードが第1の要素に関連する検
索文字を完全に決める様に第1の要素と関連する2進コ
ードからなる圧縮されたノード。 - 【請求項19】第1の要素が、他のノードに対するポイ
ンターから成り、2進コードが第1の要素と同じメモリ
ー位置に記憶される2ビットポインターIDからなる請
求項18記載の圧縮されたノード。 - 【請求項20】5未満の要素が非空ポインター要素であ
る16のポインイター要素を有するTRIEノードを圧
縮する方法であり、この方法が、(a) 各非空ポイン
ター要素を16の16進文字の一つと関連し、(b)
各変換マトリックスが、要素が16の16進文字の全て
を含む4行4列のマトリックスである様に、15の線形
変換マトリックスを発生し、(c) 非空ポインターに
割り付けられる各16進文字が異なる行にある様に発生
された変換マトリックスの一つを選択し、(d) 第1
の2つのビットが行の2進値を表し、第2の2ビットが
列の2進値を表す様に、16進文字が見出される場所の
選択された変換マトリックス内の位置の非空ポインター
要素に割り当てる各16進文字に4ビットコードを割り
当て、(e) 各4ビットコードの第1の2ビットの2
進値に従って非空ポインター要素の順番を決め、(f)
関連される16進文字に割り当てられる4ビットコー
ドの第2の2ビットを有する各非空ポインターを関連す
る16進文字と結合し、圧縮されたポインター要素を結
合し、(g) 工程(e)で達成される順番で圧縮され
たノード内の圧縮されたポインター要素を記憶し、
(h) 一義的な識別子を発生された変換マトリックス
の各々に割り当て、選択された変換マトリックスに割り
当てられる識別子と圧縮されたノードを関連することか
らなる方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/527,493 US5276868A (en) | 1990-05-23 | 1990-05-23 | Method and apparatus for pointer compression in structured databases |
US527493 | 1990-05-23 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH064585A true JPH064585A (ja) | 1994-01-14 |
Family
ID=24101683
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3117689A Pending JPH064585A (ja) | 1990-05-23 | 1991-05-22 | 構造化データベースにおけるポインター圧縮の改良された方法及び装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US5276868A (ja) |
EP (1) | EP0458698B1 (ja) |
JP (1) | JPH064585A (ja) |
CA (1) | CA2043028A1 (ja) |
DE (1) | DE69132356T2 (ja) |
Families Citing this family (77)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0552384B1 (fr) * | 1991-12-23 | 2001-11-21 | Alcatel | Procédé pour réduire le nombre de bits d'un mot binaire représentant une suite d'adresses |
US5561706A (en) * | 1992-09-29 | 1996-10-01 | Fenner; Peter R. | System for managing access by mobile users to an interconnected communications network where a billing authority is identified by a billing code from the user |
CA2125337A1 (en) * | 1993-06-30 | 1994-12-31 | Marlin Jay Eller | Method and system for searching compressed data |
MY112118A (en) * | 1993-12-23 | 2001-04-30 | Hitachi Global Storage Tech Netherlands B V | System and method for skip-sector mapping in a data recording disk drive. |
US5812882A (en) * | 1994-10-18 | 1998-09-22 | Lanier Worldwide, Inc. | Digital dictation system having a central station that includes component cards for interfacing to dictation stations and transcription stations and for processing and storing digitized dictation segments |
US5651099A (en) * | 1995-01-26 | 1997-07-22 | Hewlett-Packard Company | Use of a genetic algorithm to optimize memory space |
US5664179A (en) * | 1995-06-27 | 1997-09-02 | Mci Corporation | Modified skip list database structure and method for access |
DE69615565T2 (de) * | 1995-07-20 | 2002-07-11 | Novell, Inc. | Transaktionssynchronisierung in einem netz abtrennbarer rechner |
WO1997004391A1 (en) | 1995-07-20 | 1997-02-06 | Novell, Inc. | Transaction log management in a disconnectable computer and network |
US5878434A (en) * | 1996-07-18 | 1999-03-02 | Novell, Inc | Transaction clash management in a disconnectable computer and network |
FI102424B (fi) * | 1997-03-14 | 1998-11-30 | Nokia Telecommunications Oy | Menetelmä muistin toteuttamiseksi |
FI102425B (fi) * | 1997-03-14 | 1998-11-30 | Nokia Telecommunications Oy | Menetelmä muistin toteuttamiseksi |
US6115716A (en) * | 1997-03-14 | 2000-09-05 | Nokia Telecommunications Oy | Method for implementing an associative memory based on a digital trie structure |
FI102426B (fi) * | 1997-03-14 | 1998-11-30 | Nokia Telecommunications Oy | Menetelmä muistin toteuttamiseksi |
US6035326A (en) * | 1997-05-07 | 2000-03-07 | International Business Machines Corporation | Mapping table lookup optimization system |
JPH11203332A (ja) * | 1998-01-19 | 1999-07-30 | Nec Corp | 経路圧縮方式 |
US6513041B2 (en) | 1998-07-08 | 2003-01-28 | Required Technologies, Inc. | Value-instance-connectivity computer-implemented database |
US7076507B1 (en) | 1998-07-08 | 2006-07-11 | Required Technologies, Inc. | Value-instance-connectivity computer-implemented database |
US6009432A (en) * | 1998-07-08 | 1999-12-28 | Required Technologies, Inc. | Value-instance-connectivity computer-implemented database |
FI982095L (fi) * | 1998-09-29 | 2000-03-30 | Nokia Networks Oy | Menetelmä muistin toteuttamiseksi ja muistijärjestely |
FI991262L (fi) * | 1999-06-02 | 2000-12-03 | Nokia Networks Oy | Digitaaliseen trie-rakenteeseen perustuva muisti |
FI991261L (fi) | 1999-06-02 | 2000-12-03 | Nokia Networks Oy | Trie-rakenteeseen perustuva funktionaalinen muisti |
US20030093613A1 (en) * | 2000-01-14 | 2003-05-15 | David Sherman | Compressed ternary mask system and method |
TW494322B (en) * | 2000-05-29 | 2002-07-11 | Ibm | Prefix search method and data structure using compressed search tables |
US6804664B1 (en) * | 2000-10-10 | 2004-10-12 | Netzero, Inc. | Encoded-data database for fast queries |
GB2367917A (en) * | 2000-10-12 | 2002-04-17 | Qas Systems Ltd | Retrieving data representing a postal address from a database of postal addresses using a trie structure |
US6708168B2 (en) * | 2000-12-29 | 2004-03-16 | Nortel Networks Limited | Method and apparatus for searching a data stream for character patterns |
US6654760B2 (en) * | 2001-06-04 | 2003-11-25 | Hewlett-Packard Development Company, L.P. | System and method of providing a cache-efficient, hybrid, compressed digital tree with wide dynamic ranges and simple interface requiring no configuration or tuning |
EP1678632A1 (fr) | 2003-10-28 | 2006-07-12 | France Telecom | Dispositif de memoire de type trie avec mecanisme de compression |
US8175889B1 (en) | 2005-04-06 | 2012-05-08 | Experian Information Solutions, Inc. | Systems and methods for tracking changes of address based on service disconnect/connect data |
US7908242B1 (en) | 2005-04-11 | 2011-03-15 | Experian Information Solutions, Inc. | Systems and methods for optimizing database queries |
US7430560B1 (en) * | 2005-07-22 | 2008-09-30 | X-Engines, Inc. | Multi-level compressed lock-up tables formed by logical operations to compress selected index bits |
US7921088B1 (en) * | 2005-07-22 | 2011-04-05 | X-Engines, Inc. | Logical operations encoded by a function table for compressing index bits in multi-level compressed look-up tables |
US8077059B2 (en) * | 2006-07-21 | 2011-12-13 | Eric John Davies | Database adapter for relational datasets |
CA2660493A1 (en) | 2006-08-17 | 2008-02-21 | Experian Information Solutions, Inc. | System and method for providing a score for a used vehicle |
US7912865B2 (en) | 2006-09-26 | 2011-03-22 | Experian Marketing Solutions, Inc. | System and method for linking multiple entities in a business database |
US8036979B1 (en) | 2006-10-05 | 2011-10-11 | Experian Information Solutions, Inc. | System and method for generating a finance attribute from tradeline data |
US7827218B1 (en) | 2006-11-18 | 2010-11-02 | X-Engines, Inc. | Deterministic lookup using hashed key in a multi-stride compressed trie structure |
US8606666B1 (en) | 2007-01-31 | 2013-12-10 | Experian Information Solutions, Inc. | System and method for providing an aggregation tool |
US8285656B1 (en) | 2007-03-30 | 2012-10-09 | Consumerinfo.Com, Inc. | Systems and methods for data verification |
US7742982B2 (en) | 2007-04-12 | 2010-06-22 | Experian Marketing Solutions, Inc. | Systems and methods for determining thin-file records and determining thin-file risk levels |
WO2008147918A2 (en) | 2007-05-25 | 2008-12-04 | Experian Information Solutions, Inc. | System and method for automated detection of never-pay data sets |
US8301574B2 (en) | 2007-09-17 | 2012-10-30 | Experian Marketing Solutions, Inc. | Multimedia engagement study |
US9690820B1 (en) | 2007-09-27 | 2017-06-27 | Experian Information Solutions, Inc. | Database system for triggering event notifications based on updates to database records |
US8312033B1 (en) | 2008-06-26 | 2012-11-13 | Experian Marketing Solutions, Inc. | Systems and methods for providing an integrated identifier |
US7991689B1 (en) | 2008-07-23 | 2011-08-02 | Experian Information Solutions, Inc. | Systems and methods for detecting bust out fraud using credit data |
US20100332292A1 (en) | 2009-06-30 | 2010-12-30 | Experian Information Solutions, Inc. | System and method for evaluating vehicle purchase loyalty |
US8364518B1 (en) | 2009-07-08 | 2013-01-29 | Experian Ltd. | Systems and methods for forecasting household economics |
US8725613B1 (en) | 2010-04-27 | 2014-05-13 | Experian Information Solutions, Inc. | Systems and methods for early account score and notification |
US9152727B1 (en) | 2010-08-23 | 2015-10-06 | Experian Marketing Solutions, Inc. | Systems and methods for processing consumer information for targeted marketing applications |
US8639616B1 (en) | 2010-10-01 | 2014-01-28 | Experian Information Solutions, Inc. | Business to contact linkage system |
US9147042B1 (en) | 2010-11-22 | 2015-09-29 | Experian Information Solutions, Inc. | Systems and methods for data verification |
US9002859B1 (en) | 2010-12-17 | 2015-04-07 | Moonshadow Mobile, Inc. | Systems and methods for high-speed searching and filtering of large datasets |
CA2823839A1 (en) * | 2011-01-10 | 2012-07-19 | Roy W. Ward | Systems and methods for high-speed searching and filtering of large datasets |
US9483606B1 (en) | 2011-07-08 | 2016-11-01 | Consumerinfo.Com, Inc. | Lifescore |
AU2012281182B2 (en) | 2011-07-12 | 2015-07-09 | Experian Information Solutions, Inc. | Systems and methods for a large-scale credit data processing architecture |
JP5766588B2 (ja) * | 2011-11-16 | 2015-08-19 | クラリオン株式会社 | 検索端末装置、検索サーバ装置、及びセンタ連携型検索システム |
US9171054B1 (en) | 2012-01-04 | 2015-10-27 | Moonshadow Mobile, Inc. | Systems and methods for high-speed searching and filtering of large datasets |
US8990204B1 (en) | 2012-01-17 | 2015-03-24 | Roy W. Ward | Processing and storage of spatial data |
US9853959B1 (en) | 2012-05-07 | 2017-12-26 | Consumerinfo.Com, Inc. | Storage and maintenance of personal data |
US9081840B2 (en) * | 2012-09-21 | 2015-07-14 | Citigroup Technology, Inc. | Methods and systems for modeling a replication topology |
US9697263B1 (en) | 2013-03-04 | 2017-07-04 | Experian Information Solutions, Inc. | Consumer data request fulfillment system |
US10102536B1 (en) | 2013-11-15 | 2018-10-16 | Experian Information Solutions, Inc. | Micro-geographic aggregation system |
US9529851B1 (en) | 2013-12-02 | 2016-12-27 | Experian Information Solutions, Inc. | Server architecture for electronic data quality processing |
US10262362B1 (en) | 2014-02-14 | 2019-04-16 | Experian Information Solutions, Inc. | Automatic generation of code for attributes |
US9576030B1 (en) | 2014-05-07 | 2017-02-21 | Consumerinfo.Com, Inc. | Keeping up with the joneses |
US10242019B1 (en) | 2014-12-19 | 2019-03-26 | Experian Information Solutions, Inc. | User behavior segmentation using latent topic detection |
US10521411B2 (en) | 2016-08-10 | 2019-12-31 | Moonshadow Mobile, Inc. | Systems, methods, and data structures for high-speed searching or filtering of large datasets |
US10678894B2 (en) | 2016-08-24 | 2020-06-09 | Experian Information Solutions, Inc. | Disambiguation and authentication of device users |
US11386065B2 (en) | 2017-01-31 | 2022-07-12 | Salesforce.Com, Inc. | Database concurrency control through hash-bucket latching |
US10691696B2 (en) | 2017-01-31 | 2020-06-23 | Salesforce.Com, Inc. | Key-value storage using a skip list |
CN116205724A (zh) | 2017-01-31 | 2023-06-02 | 益百利信息解决方案公司 | 大规模异构数据摄取和用户解析 |
EP3625714B1 (en) | 2017-05-16 | 2021-03-17 | Life Technologies Corporation | Methods for compression of molecular tagged nucleic acid sequence data |
CN108197313B (zh) * | 2018-02-01 | 2021-06-25 | 中国计量大学 | 通过16位Trie树实现空间优化的词典索引方法 |
US10963434B1 (en) | 2018-09-07 | 2021-03-30 | Experian Information Solutions, Inc. | Data architecture for supporting multiple search models |
US11941065B1 (en) | 2019-09-13 | 2024-03-26 | Experian Information Solutions, Inc. | Single identifier platform for storing entity data |
US11880377B1 (en) | 2021-03-26 | 2024-01-23 | Experian Information Solutions, Inc. | Systems and methods for entity resolution |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3593309A (en) * | 1969-01-03 | 1971-07-13 | Ibm | Method and means for generating compressed keys |
US4507752A (en) * | 1983-02-22 | 1985-03-26 | International Business Machines Corporation | In-place index compression |
US4817036A (en) * | 1985-03-15 | 1989-03-28 | Brigham Young University | Computer system and method for data base indexing and information retrieval |
US5105353A (en) * | 1987-10-30 | 1992-04-14 | International Business Machines Corporation | Compressed LR parsing table and method of compressing LR parsing tables |
-
1990
- 1990-05-23 US US07/527,493 patent/US5276868A/en not_active Expired - Lifetime
-
1991
- 1991-05-22 CA CA002043028A patent/CA2043028A1/en not_active Abandoned
- 1991-05-22 EP EP91401315A patent/EP0458698B1/en not_active Expired - Lifetime
- 1991-05-22 DE DE69132356T patent/DE69132356T2/de not_active Expired - Fee Related
- 1991-05-22 JP JP3117689A patent/JPH064585A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
EP0458698B1 (en) | 2000-08-09 |
EP0458698A3 (en) | 1993-09-22 |
DE69132356T2 (de) | 2001-03-29 |
DE69132356D1 (de) | 2000-09-14 |
US5276868A (en) | 1994-01-04 |
CA2043028A1 (en) | 1991-11-24 |
EP0458698A2 (en) | 1991-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH064585A (ja) | 構造化データベースにおけるポインター圧縮の改良された方法及び装置 | |
Faloutsos | Multiattribute hashing using gray codes | |
US4922417A (en) | Method and apparatus for data hashing using selection from a table of random numbers in combination with folding and bit manipulation of the selected random numbers | |
US6678687B2 (en) | Method for creating an index and method for searching an index | |
US7774346B2 (en) | Indexes that are based on bitmap values and that use summary bitmap values | |
US7080091B2 (en) | Inverted index system and method for numeric attributes | |
US5371499A (en) | Data compression using hashing | |
CA1092248A (en) | Associative information retrieval | |
CN107862026B (zh) | 数据存储方法及装置、数据查询方法及装置、电子设备 | |
US20050192996A1 (en) | Value-instance-connectivity computer-implemented database | |
RU2005105582A (ru) | База данных и система управления знаниями | |
EP1250775A2 (en) | Method and apparatus for longest match address lookup | |
US11669521B2 (en) | Accelerated filtering, grouping and aggregation in a database system | |
US20080133494A1 (en) | Method and apparatus for searching forwarding table | |
JP2888188B2 (ja) | 情報検索装置 | |
US10078521B2 (en) | Hybrid bit-sliced dictionary encoding for fast index-based operations | |
US6233574B1 (en) | Method and apparatus for performing radix lookups using transition tables with pointers | |
US6223174B1 (en) | Method and apparatus for performing radix lookups using valid bit tables with pointers | |
JP3859044B2 (ja) | インデクス作成方法および検索方法 | |
US6185570B1 (en) | Method and apparatus for performing radix lookups using transition bits and fields in transition tables | |
RU2008120913A (ru) | Многомерная база данных и способ управления многомерной базой данных | |
CN114528329A (zh) | 一种基于分布式的IP v6解析及存储控制方法 | |
JP3224917B2 (ja) | 名標辞書作成装置 | |
CN118939194A (zh) | 一种镜像符号信息处理方法、系统、装置及存储介质 | |
JPH03108063A (ja) | 後方一致検索方法および装置 |