JPH10162013A - デジタル探索装置 - Google Patents

デジタル探索装置

Info

Publication number
JPH10162013A
JPH10162013A JP31791896A JP31791896A JPH10162013A JP H10162013 A JPH10162013 A JP H10162013A JP 31791896 A JP31791896 A JP 31791896A JP 31791896 A JP31791896 A JP 31791896A JP H10162013 A JPH10162013 A JP H10162013A
Authority
JP
Japan
Prior art keywords
search
node
data
leaf
digital
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP31791896A
Other languages
English (en)
Other versions
JP3284064B2 (ja
Inventor
Naohisa Takahashi
直久 高橋
Mitsuru Maruyama
充 丸山
Takeshi Sanei
武 三栄
Takeshi Ogura
毅 小倉
Tetsuo Kawano
哲生 川野
Satoru Yagi
哲 八木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP31791896A priority Critical patent/JP3284064B2/ja
Publication of JPH10162013A publication Critical patent/JPH10162013A/ja
Application granted granted Critical
Publication of JP3284064B2 publication Critical patent/JP3284064B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

(57)【要約】 【課題】 デジタル探索木の見出し数の増加、探索処
理、削除処理、追加処理の要求頻度の増加に対しても、
また、探索処理の要求が連続的に出された場合でも、更
に、長い見出しと長い探索キーを扱う場合でも、デジタ
ル探索木に対する探索処理を高速に行なうデジタル探索
装置を提供する。 【解決手段】 デジタル探索装置においては、デジタル
探索木を共有メモリ3に保持し、デジタル探索木の初期
化処理、葉と節点の追加処理、葉と節点の削除処理を保
守プロセッサ2が行ない、デジタル探索木の探索処理を
探索プロセッサ1が行なう。保守プロセッサ2と探索プ
ロセッサ1は、それぞれ独立に動作し、共有メモリ3を
アクセスしてデジタル探索木を並列に操作する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、探索したいデータ
の見出し(探索キーという)を候補データの見出しと直
接比較するのではなく、探索キーを構成している桁を手
がかりにして目的のデータの格納場所に近付いていく、
デジタル探索あるいは桁探索と呼ばれるデジタル探索装
置に関する。
【0002】
【従来の技術】一般に、デジタル探索装置においては、
大別して、 (1)デジタル探索木の初期化処理 (2)デジタル探索木の探索処理 (3)デジタル探索木の葉と節の削除処理 (4)デジタル探索木への葉と節の追加処理 が行なわれる。
【0003】従来のデジタル探索装置における上記
(1)〜(4)の処理について、代表的なデジタル探索
木であるパトリシア木を例に用いて説明する。ここで
は、デジタル探索木で保持対象となる見出しとして、A
〜Z、nullの27種類を考える。それぞれの符号の
2進数表示を00001〜11010、00000とす
る。符号の2進数表示において、1番左のビットをビッ
ト0と呼び、以下左から順に、ビット1、2、3、4と
呼ぶ。図8は、null、A、C、E、G、H、I、
N、P、R、Sの11個の見出しが存在するパトリシア
木である。図で、大きな○は節点、小さな○は葉、節点
間、あるいは節点と葉を結ぶ線は枝を表す。節点または
葉の上に記した数値は節点または葉を識別するための番
号を表し、節点の中に書かれた数値は、その節点で調べ
るべき探索キーの桁(検査ビット位置という)を表す。
葉の下に記した記号は、その葉の見出しを表す。節点0
はデジタル探索木の根といい、根を指している矩形をh
eadという。パトリシア木では、探索キーが与えられ
ると、探索木の根から順に枝に沿って節点を辿り、探索
キーに対して検査ビット位置のビットが0の時は左側の
節点に下がり、1の時には右側の節点に下がる。この操
作を繰り返すと、その探索キーに等しい見出しの葉が探
索木に存在する場合には、その葉に到達できる。たとえ
ば、Hを探索するには、Hの符号01000を探索キー
として用いて、木の根の節点から順に、節点が指示する
検査ビット位置の探索キーのビットの値を調べて、節点
を辿っていけばよい。この場合、最初の節点で探索キー
のビット0を調べると0であるので、左下の節点に行
く。次の節点でビット1を調べると1なので右下の節点
に行く。このように、節点0、1、4、9の順に辿っ
て、それぞれ探索キーのビット0、1、2、4を調べて
いくと、見出しHの葉に至ることが分かる。
【0004】従来のデジタル探索装置において、初期化
処理(1)は以下のように行なわれる。
【0005】(a)デジタル探索木のheadを作成す
る。
【0006】(b)デジタル探索木が空であることをh
eadに表示する。
【0007】また、従来のデジタル探索装置において、
探索処理(2)は以下のように行なわれる。
【0008】図8のデジタル探索木で、探索キーがI
(符号01001)の葉を探索する場合、次のようにな
る。
【0009】(c)探索キーのビット0、1、2がそれ
ぞれ0、1、0なので、節点0、1、4の順に辿り、節
点9に到達する。節点9で探索キーのビット4を調べる
と1なので、葉18に到達する。
【0010】(d)葉18の見出しはIで、探索キーと
等しいので、求めるべき葉に到達したことが判明する。
このとき、到達した葉(この場合は葉18)の見出しが
探索キーと等しくない場合には、探索したい葉がこのデ
ジタル探索木に存在しないことが判明する。
【0011】また、従来のデジタル探索装置において、
削除処理(3)は以下のように行なわれる。
【0012】図8のデジタル探索木で、見出しI(符号
01001)の葉を削除する場合、次のようになる。
【0013】(e)Iの符号を探索キーとして上記
(c)と同様に図8の探索木を辿ると、葉18に到達す
る。
【0014】(f)葉18の見出しはIで、探索キーと
等しいので、削除すべき葉に到達したことが判明する。
このとき、到達した葉(この場合は葉18)の見出しが
探索キーと等しくない場合には、削除したい葉がこのデ
ジタル探索木に存在しないことが判明する。
【0015】(g)葉18および葉18に接続された枝
を削除する。これにより、節点9の枝が1つになるの
で、節点9およびその左下の枝を削除して、代わりに葉
17(見出しH)を節点4の右下の枝につなげる。
【0016】また、従来のデジタル探索装置において、
追加処理(4)は以下のように行なわれる。
【0017】図8のデジタル探索木に、見出しK(符号
01011)の葉を追加する場合、次のようになる。
【0018】(h)Kの符号を探索キーとして上記
(c)と同様に図8の探索木を辿ると、葉18に到達す
る。
【0019】(i)葉18の見出しはI(01001)
なので、KとIの符号をビット0から順に比べる。この
結果、ビット3で、両符号のビットがはじめて異なる値
になることが判明する。
【0020】(j)検査ビット位置が3である節点23
を新たに作成し、節点4と節点9の間に挿入する。
【0021】(k)節点23の右下側の枝に新たに葉2
3を作成し、その見出しをKにする。
【0022】
【発明が解決しようとする課題】上記従来技術において
は、デジタル探索木に対する初期化処理、探索処理、削
除処理、追加処理を単一のプロセッサで行なっていたた
め、下記のような問題があった。
【0023】(1)探索処理、削除処理、追加処理の要
求が連続して多数来たとき、削除処理、追加処理にCP
U時間をとられ、探索処理が遅延することがある。
【0024】(2)探索処理、削除処理、追加処理の要
求が同時に来ることがあるような応用において、要求を
逐次的に処理しなければならないので、探索処理が後回
しにされて遅延することがある。
【0025】(3)探索処理の高速化のために、プロセ
ッサを処理に合わせて専用化したい場合でも、削除処
理、追加処理が複雑であるため、プロセッサの構造が複
雑になり実現困難である。
【0026】(4)探索処理では、デジタル探索木にお
いて、1つの節点で探索キーのビットを1つ調べて、節
点を順に辿らなければならない。このため、見出し数が
多いデジタル探索木の場合、あるいは、見出しの長さが
長い場合に、辿るべき節点の数が多いので、探索処理時
間が長くなることがある。
【0027】(5)デジタル探索木の節点のデータとし
て検査ビット位置を用いているので、見出しが長い場合
に検査ビット位置のデータも長くなるので、探索処理で
1つの節点を辿るためにメモリから読み込まなければな
らないデータ量が多くなり、探索処理が遅くなる。
【0028】(6)探索処理では、検査ビット位置を読
み出して、探索キーを調べた後で、始めて次節点アドレ
スの格納場所を特定することができる。このため、節点
を1つ辿る際に、検査ビット位置の読み出しと、次節点
アドレスの読み出しの2回のメモリアクセスを逐次的に
行なわなければならないので、処理時間が長くなる。検
査ビット位置を読み出す時点では、次節点アドレスの候
補は複数存在するので、1度のメモリアクセスで済ます
ためには、それら複数の次節点アドレスを同時に読み出
さなければならない。見出し数が多い場合には、次節点
アドレスも長くなるので、このことは、プロセッサとメ
モリの間のデータ転送用のバス幅を実現困難なほど広く
しなければならないことを意味する。
【0029】また、デジタル探索木の各節点ごと、ある
いはいくつかまとめた節点ごとに、探索処理、削除処
理、追加処理を行なうプロセッサを割り付けて、複数の
プロセッサでこれらの処理を行なう提案例もあるが、こ
れにも下記のような問題があった。
【0030】(7)デジタル探索木の構成に応じて、プ
ロセッサの数などのシステムの構成を変えなければなら
ない。特に、見出し数の多いデジタル探索木の場合に
は、システムの規模が拡大し、かつ複雑になってしま
う。
【0031】(8)節点を移動するごとにプロセッサ間
通信が発生するので、通信のオーバヘッドが大となる。
【0032】また、上記いずれの提案例、実現例におい
ても、以下のような問題がある。
【0033】(9)デジタル探索木に探索キーと一致す
る見出しを持つ葉がない場合に、必ず探索失敗(該当す
る見出しなし)となってしまい、特定の一部のビットだ
けが一致するような見出しを探索結果として求められる
ようにできない。
【0034】本発明の目的は、デジタル探索木の見出し
数の増加、探索処理、削除処理、追加処理の要求頻度の
増加に対しても、また、探索処理の要求が連続的に出さ
れた場合でも、更に、長い見出しと長い探索キーを扱う
場合でも、デジタル探索木に対する探索処理を高速に行
なうデジタル探索装置を提供することである。
【0035】
【課題を解決するための手段】本発明の上記目的は、デ
ジタル探索木の初期化、デジタル探索木の節点と葉の追
加と削除、デジタル探索木の再構成を行なう保守プロセ
ッサと、デジタル探索木を探索する探索プロセッサと、
デジタル探索木を保持する共有メモリとを有し、保守プ
ロセッサと探索プロセッサがそれぞれ独立に動作し、共
有メモリをアクセスしてデジタル探索木を並列に操作す
るデジタル探索装置により達成される。本発明のデジタ
ル探索装置においては、デジタル探索木を共有メモリに
保持し、デジタル探索木の初期化処理、葉と節点の追加
処理、葉と節点の削除処理を保守プロセッサが行ない、
デジタル探索木の探索処理を探索プロセッサが行なう。
保守プロセッサと探索プロセッサは、それぞれ独立に動
作し、共有メモリをアクセスしてデジタル探索木を並列
に操作する。
【0036】したがって、下記の問題が解消される。
【0037】(1)探索処理、削除処理、追加処理の要
求が連続して多数来たとき、削除処理、追加処理にCP
U時間をとられ、探索処理が遅延することがある。
【0038】(2)探索処理、削除処理、追加処理の要
求が同時に来ることがあるような応用において、要求を
逐次的に処理しなければならないので、探索処理が後回
しにされて遅延することがある。
【0039】(3)探索処理の高速化のために、プロセ
ッサを処理に合わせて専用化したい場合でも、削除処
理、追加処理が複雑であるため、プロセッサの構造が複
雑になり実現困難である。
【0040】請求項2の実施態様によれば、共有メモリ
が、デジタル探索木の節点データとして、検査ビット位
置と、探索キーの検査ビット位置のビットの値が0のと
きに分岐すべき節点アドレスおよび1のときに分岐すべ
き節点アドレスを保持し、探索プロセッサが、共有メモ
リから読み出した節点データに従って、探索キーの検査
ビット位置のビットの値を調べ、その結果により、次に
共有メモリから読み出す節点データのアドレスを決定す
る手段を有し、保守プロセッサが、葉の追加の際に、節
点データとして共有メモリが保持すべき内容が上記の通
りになるように、節点データの変更、あるいは、新しい
節点を追加してデジタル探索木を更新する手段を有す
る。
【0041】請求項3の実施態様によれば、共有メモリ
が、デジタル探索木の節点データとして、予め定められ
た数の複数の検査ビット位置と、それらの位置に対する
探索キーのビットの値の組合せごとに定まる一連の分岐
先節点アドレスを保持し、前記探索プロセッサが、前記
共有メモリから読み出した節点データに従って、探索キ
ーの前記複数の検査ビット位置のビットの値を調べ、そ
れらの結果により、次に前記共有メモリから読み出すべ
き節点データのアドレスを決定する手段を有し、前記保
守プロセッサが、葉の追加の際に、検査ビット位置の数
が予め定められた値以下になるように、当該節点の節点
データの変更、あるいは、新しい節点を追加してデジタ
ル探索木を更新する手段を有する。
【0042】請求項3においては、探索プロセッサで、
探索キーに対して1つの節点で複数のビットを調べるこ
とが可能になるようにしたため、前述の以下の問題を解
消できる。
【0043】探索処理では、デジタル探索木において、
1つの節点で探索キーのビットを1つ調べて、節点を順
に辿らなければならないため、見出し数が多いデジタル
探索木の場合、あるいは、見出しの長さが長い場合に、
辿るべき節点の数が多いので、探索処理時間が長くなる
ことがある。
【0044】請求項4の実施態様によれば、共有メモリ
が、デジタル探索木の節点データおよび葉のデータとし
て、探索キーと見出しの比較の際に無視してよいビット
を指定するマスクデータをさらに保持し、探索プロセッ
サが、節点データとしてマスクデータを保持する節点を
読み出す際に、その節点データをスタックに積み込む手
段と、探索木を辿って到達した葉の見出しが探索キーと
異なる場合に、前記スタックをポップアップして節点デ
ータを取り出す手段と、取り出した節点データのマスク
データを用いて探索キーの一部を無視しながら当該節点
からデジタル探索を再度やり直す手段とをさらに有す
る。
【0045】請求項4においては、節点データと葉のデ
ータとしてマスクデータを用いて探索キーの一部を無視
できるようにしており、探索プロセッサがスタックを用
いてマスクデータを保持している節点データへの到着履
歴を管理して、探索キーと異なる葉に到達した場合にバ
ックトラックできるようにしているので以下の問題が解
消する。
【0046】デジタル探索木に探索キーと一致する見出
しを持つ葉がない場合に、必ず探索失敗(該当する見出
しなし)となってしまい、特定の一部のビットだけが一
致するような見出しを探索結果として求められるように
できない。
【0047】請求項5の実施態様によれば、共有メモリ
が前記検査ビット位置(CP)の代わりにCPの移動幅
(CP−SKIP)を保持し、前記探索プロセッサが、
検査ビット位置を示す検査ビット位置レジスタを備え
て、前記共有メモリから読み出して得られるCP−SK
IPを検査ビット位置レジスタの値に足し込むことによ
り検査ビット位置を決定する手段を有し、前記保守プロ
セッサが、葉の追加の際に、デジタル探索木の既存節点
のCP−SKIPの値、および、予め定められたCP−
SKIPの最大値とから、CP−SKIPの値が該最大
値以下になるように、ひとつあるいは複数の節点を追加
してデジタル探索木を更新する手段を有する。
【0048】請求項5においては、節点のデータとし
て、検査ビット位置の代わりに見出しの長さに依存しな
い短い長さに抑えることが可能な検査ビット移動幅を用
いているので、以下の問題が解消できる。
【0049】デジタル探索木の節点のデータとして検査
ビット位置を用いているので、見出しが長い場合に検査
ビット位置のデータも長くなるので、探索処理で1つの
節点を辿るためにメモリから読み込まなければならない
データ量が多くなり、探索処理が遅くなる。
【0050】請求項6の実施態様によれば、共有メモリ
が各節点の節点データとして、分岐先節点である子節点
の節点データアドレスと、子節点での分岐先決定のため
の条件である分岐条件の対からなる枝データを分岐先の
数だけ保持し、探索プロセッサが共有メモリから枝デー
タを読み出す手段と、読み出した枝データの分岐条件と
探索キーとから子節点での分岐先節点である孫節点を決
定し、子節点の節点データにおける当該孫節点に対する
枝データの格納アドレスを計算して、共有メモリから次
に読み出すべき枝データのアドレスとして設定する手段
を有する。
【0051】請求項6においては、探索プロセッサが節
点を1つ辿るためにメモリから読み込まなければならな
いデータは1個の節点アドレスと分岐条件だけであり、
さらに、これらは同時に読み込むことができるので、次
の問題を解消できる。
【0052】(1)探索処理では、検査ビット位置を読
み出して、探索キーを調べた後で、始めて次節点アドレ
スの格納場所を特定することができる。このため、節点
を1つ辿る際に、検査ビット位置の読み出しと、次節点
アドレスの読み出しの2回のメモリアクセスを逐次的に
行なわなければならないので、処理時間が長くなる。検
査ビット位置を読み出す時点では、次節点アドレスの候
補は複数存在するので、1度のメモリアクセスで済ます
ためには、それら複数の次節点アドレスを同時に読み出
さなければならない。見出し数が多い場合には、次節点
アドレスも長くなるので、このことは、プロセッサとメ
モリの間のデータ転送用のバス幅を実現困難なほど広く
しなければならないことを意味する。
【0053】さらに、探索プロセッサと、保守プロセッ
サと、共有メモリで装置を構成し、各プロセッサは、そ
れぞれ独立にデジタル探索木を辿ればよいので、以下の
問題は発生しない。
【0054】(2)デジタル探索木の構成に応じて、プ
ロセッサの数などのシステムの構成を変えなければなら
ない。特に、見出し数の多いデジタル探索木の場合に
は、システムの規模が拡大し、かつ複雑になってしま
う。
【0055】(3)節点を移動するごとにプロセッサ間
通信が発生するので、通信のオーバヘッドが大となる。
【0056】請求項7の実施態様によれば、共有メモリ
がデジタル探索木の葉に対してオン、オフ2値の状態表
示データ、および、葉の行列であるLRU行列を表す順
序関係を保持し、前記保守プロセッサがデジタル探索木
に葉を追加する際に、当該葉をLRU行列の最後に加え
て、その葉の状態表示データをオフにする手段と、一定
時間ごと、あるいは指定された契機に、LRU行列中の
葉の状態表示データを調べ、オンであれば該葉数がLR
U行列の後にくるようにLRU行列の順序を変更する手
段と、指定された契機にLRU行列の先頭の葉をデジタ
ル探索木から削除する手段を有し、前記探索プロセッサ
が探索キーに対応する葉を探索したときに、その葉の状
態表示データをオンにする手段を有する。
【0057】このように、LRU行列で葉の生成順序を
保持し、オン/オフの状態表示データで探索プロセッサ
での探索状況を保持することにより、作られた順が古
く、かつ最近探索されていない葉から順番に削除対象と
して選ばれる。また、作られた順が古くても、ある一定
時間前からの間に一度でも探索された葉は状態がオンに
なるので、他に状態がオフの葉がある限り削除対象の候
補から除外される、あるいは、候補になりにくくなる。
【0058】
【発明の実施の形態】次に、本発明の実施形態について
図面を参照して説明する。
【0059】図1は本発明の一実施形態のデジタル探索
装置の構成図である。
【0060】本実施形態のデジタル探索装置は、デジタ
ル探索木の初期化、デジタル探索木の節点と葉の追加と
削除、デジタル探索木の再構成とを行なう保守プロセッ
サ2と、デジタル探索木を探索する探索プロセッサ1
と、デジタル探索木を保持する共有メモリ3とから構成
され、保守プロセッサ2と探索プロセッサ1がそれぞれ
独立に動作し、共有メモリ3をアクセスしてデジタル探
索木を並列に操作する。デジタル探索木の初期化処理、
追加処理、削除処理の要求は保守プロセッサ2に送られ
る。また、探索処理の要求は、探索プロセッサ1に送ら
れる。追加処理の要求では、追加すべき葉の見出しと、
その見出しに結びつけられたデータ(見出し対応データ
と呼ぶ)の格納アドレスが与えられる。削除処理の要求
では、削除すべき葉の見出しが与えられる。探索処理で
は、探索すべき葉の見出しが与えられる。
【0061】請求項2に対応する第1の実施形態では、
共有メモリ3に、デジタル探索木の節点データとして、
図8に例示したと同様に、検査ビット位置と、探索キー
の検査ビット位置のビットの値が0のときに分岐すべき
節点アドレスおよび1のときに分岐すべき節点アドレス
を保持し、探索プロセッサ1は、共有メモリ3から読み
出した節点データに従って、探索キーの検査ビット位置
のビットの値を調べ、その結果により、次に共有メモリ
3から読み出す節点データのアドレスを決定する手段
(不図示)を有し、保守プロセッサ2は、葉の追加の際
に、節点データとして共有メモリ3が保持すべき内容が
上記の通りになるように、節点データの変更、あるい
は、新しい節点を追加してデジタル探索木を更新する手
段(不図示)を有する。
【0062】請求項3に対応する第2の実施形態では、
共有メモリ3が、デジタル探索木の節点データとして、
複数の検査ビット位置と、それらの位置に対する探索キ
ーのビットの値の組合せごとに定まる一連の分岐先節点
アドレスを保持し、探索プロセッサ1が、共有メモリ3
から読み出した節点データに従って、探索キーの複数の
検査ビット位置のビットの値を調べ、それらの結果によ
り、次に共有メモリ3から読み出すべき節点データのア
ドレスを決定する手段(不図示)を有し、保守プロセッ
サ2が、葉の追加の際に、検査ビット位置の数が予め定
められた値以下になるように、当該節点の節点データの
変更、あるいは、新しい節点を追加してデジタル探索木
を更新する手段(不図示)を有する。
【0063】デジタル探索木において、根の節点は第0
段にあるといい、根から出た枝に接続された節点は第1
段にあるといい、同様に、第i段の節点から出た枝に接
続された節点は第(i+1)段にあるというように、節
点に対して、根から辿るときに通る枝の数で表される段
に、その節点はあるという。図2は、図8において、連
続した2つの段にある節点を、4本の枝を持つ1つの節
点にまとめることによりできるデジタル探索木である。
この図の記法は図8と同様である。ただし、節点の中に
記した3つの数値の並びは、3つの検査ビット位置を表
す。ここで、節点1、2、3、5のように、3つの数値
の並びのなかに同じ数値がある場合には、その節点での
検査ビット位置の数が2以下であることを表す。
【0064】また、各節点は4本の枝を持ち、左から順
に、第0、第1、第2、第3の枝と呼ぶ。
【0065】探索プロセッサ1と保守プロセッサ2は、
探索処理、追加処理、削除処理において、これらの検査
ビットと4本の枝を使って、以下のように節点を辿る
と、図8のデジタル探索木を、第1の実施形態の処理で
辿った場合と同じ見出しを持つ葉に到達できる。今、検
査ビット位置がCP1、CP2、CP3とする。このと
き、探索キーのビットCP1、CP2、CP3がそれぞ
れs1、s2、s3である場合には、以下の式で計算さ
れるbの値を用いて、第bの枝を辿る。
【0066】 b0=s1 ....(1) b1=(s1・s2)v(not(s1)・s2)....(2) b=b1&b0 ....(3) ここで、「・」、「v」は、それぞれ2つのビットの論
理積、論理和を、「not(s1)」はs1の否定を表
し、「&」はビットの連接を表し、b=b1&b0の式
は、下位ビットb0、上位ビットb1の2ビットでbが
構成されていることを表す。
【0067】探索プロセッサ1において、探索処理は以
下のように行なわれる。
【0068】図2のデジタル探索木で、探索キーがI
(符号01001)の葉を探索する場合、次のようにな
る。
【0069】(3c)探索キーのビット0、1、2がそ
れぞれ0、1、0なので、節点0で第1の枝が選ばれ
て、節点2に到達する。節点2で探索キーのビット2、
4を調べると0、1なので、第1の枝が選ばれて、葉1
0に到達する。
【0070】(3d)葉10の見出しはIで、探索キー
と等しいので、求めるべき葉に到達したことが判明す
る。このとき、到達した葉(この場合は葉10)の見出
しが探索キーと等しくない場合には、探索したい葉がこ
のデジタル探索木に存在しないことが判明する。
【0071】また、保守プロセッサ2において、削除処
理は以下のように行なわれる。
【0072】図2のデジタル探索木で、見出しI(符号
01001)の葉を削除する場合、次のようになる。
【0073】(3e)Iの符号を探索キーとして上記
(3c)と同様に図2の探索木を辿ると、葉10に到達
する。
【0074】(3f)葉10の見出しはIで、探索キー
と等しいので、削除すべき葉に到達したことが判明す
る。このとき、到達した葉(この場合は葉10)の見出
しが探索キーと等しくない場合には、削除したい葉がこ
のデジタル探索木に存在しないことが判明する。
【0075】(3g)葉10および葉10に接続された
枝を削除する。さらに、節点2の検査ビット位置の並び
を、2、2、2に変更する。
【0076】また、保守プロセッサ2において、追加処
理は以下のように行なわれる。
【0077】図2のデジタル探索木に、見出しk(符号
01011)の葉を追加する場合、次のようになる。
【0078】(3h)kの符号を探索キーとして上記
(3c)と同様に図2の探索木を辿ると、葉10に到達
する。
【0079】(3i)葉10の見出しはI(0100
1)なので、KとIの符号をビット0から順に比べる。
この結果、ビット3で、両符号のビットがはじめて異な
る値になることが判明する。
【0080】(3j)節点2の検査ビット位置の並びが
2、4、2であるので、まず、これを2、3、2に変更
し、この第1の枝に見出しKを持つ葉を接続する。
【0081】(3k)検査ビット位置の並びが4、4、
4である節点を作成し、その第0の枝に見出しHの葉
を、第3の枝に見出しIの枝を接続し、この節点を節点
2の第0の枝に接続する。
【0082】上記と同様にして、図8において連続した
3つの段にある節点を、8本の枝を持つ1つの節点にま
とめることによりできるデジタル探索木に対しても処理
手順を定めることができる。さらに、図8において、ま
とめる段の数を増やしていっても同様である。
【0083】請求項4に対応する第3の実施形態では、
共有メモリ3が、デジタル探索木の節点データおよび葉
のデータとして、探索キーと見出しの比較の際に無視し
てよいビットを指定するマスクデータをさらに保持し、
探索プロセッサ1が、節点データとしてマスクデータを
保持する節点を読み出す際に、その節点データをスタッ
クに積み込む手段(不図示)と、探索木を辿って到達し
た葉の見出しが探索キーと異なる場合に、前記スタック
をポップアップして節点データを取り出す手段(不図
示)と、取り出した節点データのマスクデータを用いて
探索キーの一部を無視しながら当該節点からデジタル探
索を再度やり直す手段(不図示)とをさらに有する。
【0084】図3は、図8のデジタル探索木の各節点と
葉において、上記マスクデータ(以下単にmaskとい
う)を保持したデジタル探索木の例である。デジタル探
索装置においては、探索処理は以下のように行なわれ
る。図3のデジタル探索木で、探索キーが符号1011
1の場合には、次のように探索する。
【0085】(4c)headから節点0に到達する。
節点0はmaskがあるので節点0の節点データをスタ
ックに積む。次に、探索キーのビット0が1なので、節
点0から2に行く。節点2はマスクデータを保持してい
るので節点2の節点データをスタックに積む。次に、探
索キーのビット2が1なので、節点2から葉6に到達す
る。
【0086】(4d−1)葉6の見出しはT(1010
0)で、探索キーと等しくないことが判明する。スタッ
クの一番上にある節点2のデータをポップアップする。
mask=11000なので、探索キー(10111)
を10000に変更する。すなわち、探索キーとmas
kの各ビットごとに論理積をとってできるビットパター
ンを新たな探索キーにする。
【0087】(4d−2)新しい探索キーのビット2が
0なので、節点5に行き、更にビット3も0なので、葉
11に到達する。葉11はmask=11000を保持
しているので、葉11の見出し(10000)と該ma
skのビットごとの論理積をとってできるビットパター
ン10000を探索キーと比較する。
【0088】(4d−3)両者が一致するので、葉11
を探索結果と判定する。
【0089】また、図3のデジタル探索木で、探索キー
が符号11101の場合には、次のように探索する。
【0090】(5c)(4c)と同じ。
【0091】(5d−1)(4d−1)と同じ。
【0092】(5d−2)(4d−2)と同じ。
【0093】(5d−3)両者が一致しないので、スタ
ックの一番上にある節点0のデータをポップアップす
る。mask=00000なので、探索キー(1011
1)を00000に変更する。
【0094】(5d−4)新しい探索キーのビット0、
1、2、3が0なので、節点0、1、3、7の順に辿り
節点13に到達する。節点13で探索キーのビットを調
べると0なので葉21に到達する。葉21はmask=
00000を保持しているので、葉21の見出し(00
000)と該maskとビットごとの論理積をとってで
きるビットパターン00000を探索キーと比較する。
【0095】(5d−5)両者が一致するので、葉21
を探索結果と判定する。
【0096】請求項5に対応する第4の実施形態では、
共有メモリ3が前記検査ビット位置(CP)の代わりに
CPの移動幅(CP−SKIP)を保持し、探索プロセ
ッサ1が、検査ビット位置を示す検査ビット位置レジス
タ(不図示)を備えて、共有メモリ3から読み出して得
られるCP−SKIPを検査ビット位置レジスタの値に
足し込むことにより検査ビット位置を決定する手段(不
図示)を有し、保守プロセッサ2が、葉の追加の際に、
デジタル探索木の既存節点のCP−SKIPの値、およ
び、予め定められたCP−SKIPの最大値(Mとす
る)とから、CP−SKIPの値がM以下になるよう
に、ひとつあるいは複数の節点を追加してデジタル探索
木を更新する手段(不図示)を有する。
【0097】図4は、図8のデジタル探索木の各節点に
おいて、上記に従って、検査ビット位置の代わりに、検
査ビット位置の移動幅を持たせてできるデジタル探索木
である。
【0098】探索プロセッサ1は、検査ビット位置を示
す検査ビット位置レジスタを備えて、共有メモリ3から
読み出して得られるCP−SKIPを検査ビット位置レ
ジスタに足し込むことにより検査ビット位置を決定す
る。保守プロセッサ2は、節点の追加の際に、その節点
での検査ビット位置CPから、探索木の根から当該節点
に至る経路上の節点のCP−SKIPの値を減じていく
ことにより、当該節点のCP−SKIPの値を計算する
(計算結果をSとする)。Sと予め定められたCP−S
KIPの最大値Mと比べて、CP−SKIPの値がM以
下になるように、Sの値に応じてひとつあるいは複数の
節点を作り出して追加する。たとえば、Sが20、Mが
8のとき、CP−SKIPの値が、8、8、4の3つの
節点a、b、cを作り、aからb、bからcへ枝を張っ
て、これら3つの節点をデジタル探索木に挿入する。
【0099】次に、探索キーがI(符号01001)の
葉を探索する例を用いて、図4のデジタル探索木での探
索処理を説明する。まず、検査ビット位置レジスタ(C
PR)を0に初期化する。次に、節点0で、CP−SK
IPの値が0なので、CPRにCP−SKIPを加えて
もCPR=0のままである。このため、探索キーのビッ
ト0を調べる。このビットの値が0であるので、次に、
左側の節点1に行く。節点1のCP−SKIPの値1を
CPRに加えるとCPRは1になるので、探索キーのビ
ット1を調べる。このビットの値が1なので、右側節点
4に行く。節点4では、CP−SKIPの値1をCPR
に加えて、CPRを2にして、探索キーのビット2を調
べる。次に、探索キーのビット2が0なので、節点9に
行き、CPRにCP−SKIPの値2を加えて4にし
て、探索キーのビット4を調べる。このビットの値が1
なので、葉18に到達する。ここで、葉18の見出し
(I)が探索キーと等しいので、葉18が求める葉であ
ることが分かる。
【0100】請求項6に対応する第5の実施形態では、
共有メモリ3が各節点の節点データとして、分岐先節点
である子節点の節点データアドレスと、子節点での分岐
先決定のための条件である分岐条件の対からなる枝デー
タを分岐先の数だけ保持し、探索プロセッサ1が共有メ
モリ3から枝データを読み出す手段(不図示)と、読み
出した枝データの分岐条件と探索キーとから子節点での
分岐先節点である孫節点を決定し、子節点の節点データ
における当該孫節点に対する枝データの格納アドレスを
計算して、共有メモリ3から次に読み出すべき枝データ
のアドレスとして設定する手段(不図示)を有する。
【0101】共有メモリ3は、図6に例示したデジタル
探索木を保持する。通常の木構造のデータを保持する場
合と同様に、図における枝は、枝の下にある節点または
葉のデータを保持しているメモリのアドレスとして表さ
れる。このとき、節点として、0〜3の4つの枝に対す
る枝データを、順に格納した4語のデータを保持する。
headを保持するメモリアドレスだけが固定(たとえ
ばアドレス0)であり、節点は、上記4語が連続してい
れば、メモリの空いている任意の場所に保持してよい。
また、葉として、見出しと、見出し対応データの格納ア
ドレスの対からなる葉データを保持する。ひとつの葉デ
ータはメモリに連続した領域に保持する。葉データの見
出しの長さは任意でも実現できる。
【0102】図5は図1のデジタル探索木に対して、上
記のように節点データとheadの枝データを保持して
できるデジタル探索木である。また、図6は、図2のデ
ジタル探索木に対して、上記のように、節点データとh
eadの枝データを保持してできるデジタル探索木であ
る。これらの図で、[a,b,c]は枝データを表し、
[−]は子節点での分岐条件がない、すなわち、分岐先
節点が葉であることを表す。また、単に−と記している
のは、枝データが空、すなわち、枝の先に節点または葉
が接続されていないことを表す。
【0103】探索プロセッサ1は、共有メモリ3から枝
データを読み出し、読み出した枝データの分岐条件と探
索キーとから子節点での分岐先節点(孫節点)を決定
し、子節点の節点データにおける当該孫節点に対する枝
データの格納アドレスを計算して、共有メモリ3から次
に読み出すべき枝データのアドレスとして設定する。
【0104】図6のデジタル探索木で、探索キーがI
(符号01001)の葉を探索する場合、次のようにな
る。
【0105】(6c)headの枝データの分岐条件
[0,1,2]を読み出す。探索キーのビット0,1,
2がそれぞれ0.1,0なので、節点0の第1の枝デー
タを選んで、読み出す。この枝データは分岐条件が
[2,4,2]、子節点の節点データアドレスが節点2
のアドレスを保持している。このため、探索キーのビッ
ト2,4を調べると0,1なので、節点2の第1の枝デ
ータが選ばれて、分岐条件が[−]なので葉10に到達
する。
【0106】上記操作では、節点を1つ辿るために枝デ
ータを1つ読み出せばよい。また、枝データにおける、
分岐条件と節点アドレスは同時に読み出すことが可能で
ある。すなわち、1回のメモリアクセスで節点を1つ辿
ることができる。
【0107】(6d)葉10の見出しはIで、探索キー
と等しいので、求めるべき葉に到達したことが判明す
る。このとき、到達した葉(この場合は葉10)の見出
しが探索キーと等しくない場合には、探索したい葉がこ
のデジタル探索木に存在しないことが判明する。
【0108】また、保守プロセッサ2において、削除処
理は以下のように行なわれる。
【0109】図6のデジタル探索木で、見出しI(符号
01001)の葉を削除する場合、次のようになる。
【0110】(6e)Iの符号を探索キーとして上記
(4c)と同様に図5の探索木を辿ると、葉10に到達
する。
【0111】(6f)葉10の見出しはIで、探索キー
と等しいので、削除すべき葉に到達したことが判明す
る。このとき、到達した葉(この場合は葉10)の見出
しが探索キーと等しくない場合には、削除したい葉がこ
のデジタル探索木に存在しないことが判明する。
【0112】(6g)葉10および葉10に接続された
枝を削除する。さらに、節点2の第1の枝データを−に
変更する。
【0113】また、保守プロセッサ2において、追加処
理は以下のように行なわれる。
【0114】図6のデジタル探索木に、見出しK(符号
01011)の葉を追加する場合、次のようになる。
【0115】(6h)Kの符号を探索キーとして上記
(6c)と同様に図6の探索木を辿ると、葉10に到達
する。
【0116】(6i)葉10の見出しはI(0100
1)なので、KとIの符号をビット0から順に比べる。
この結果、ビット3で、両符号のビットがはじめて異な
る値になることが判明する。
【0117】(6j)節点0の第1の枝データの分岐条
件[2,4,2]であるので、まず、これを[2,3,
2]に変更する。さらに、節点0の第1の枝に接続され
ている節点2の第1の枝に見出しKを持つ葉を接続す
る。
【0118】(6k)節点2の第0の枝データの分岐条
件を[4,4,4]に変更する。分岐条件が、[−],
−,−,[−]の節点を作成し、その第0の枝に見出し
Hの葉を、第3の枝に見出しIの葉を接続し、この節点
を節点2の第0の枝に接続する。
【0119】以下では簡単のため枝データの長さ(1
語)の倍数の固定長に設定し、見出し対応データ格納ア
ドレスは1語に設定した場合について説明する。
【0120】探索プロセッサ1は、探索要求を受け取
り、探索キーが与えられると、まず、上記(6c)に例
示した手順に従い、葉に到達するまで次の操作を繰り返
す。
【0121】・共有メモリ3から枝データを読み出す。
【0122】・枝データから分岐条件と分岐先節点アド
レスを取り出す。
【0123】・前記(式1)〜(式3)を分岐条件と探
索キーに適用して、枝番号を求める。
【0124】・分岐先節点アドレスに枝番号を加算する
ことにより、次に読み出す枝データのアドレスを求め
る。
【0125】次に、上記(6d)に例示した手順に従
い、次の操作を行ない、探索結果を作成する。
【0126】・共有メモリ3から葉データの先頭語を読
み出す。
【0127】・先頭語を探索キーの先頭語と比較して、
異なっている場合には該当する葉は存在しないと出力し
て終了する。
【0128】・一致した場合には、共有メモリ3から葉
データの第2語を読み出す。
【0129】・読み出した語を探索キーの第2語と比較
して、異なっている場合には該当する葉は存在しないと
出力して終了する。
【0130】・上記操作を見出しと探索キーのすべての
語について行ない、見出しと探索キーが等しいか調べ
る。
【0131】・見出しと探索キーが等しい場合には、共
有メモリ3から次の語を読み出すことにより、見出し対
応データ格納アドレスを得て、探索結果として返す。
【0132】保守プロセッサ2は、削除処理の要求を受
け取り、削除すべき葉の見出しを与えられると、前記
(6e)〜(6g)の手順で、共有メモリ3に保持され
ているデジタル探索木を変更して、葉データを削除す
る。
【0133】また、保守プロセッサ2は、追加処理の要
求を受け取り、追加すべき葉の見出しと見出し対応デー
タ格納アドレスを与えられると、前記(6h)〜(6
k)の手順で、共有メモリ3に保持されているデジタル
探索木を変更して、葉データを追加する。
【0134】請求項7に対応する第6の実施形態では、
共有メモリ3がデジタル探索木の葉に対して、オン、オ
フ2値の状態表示データ、および、葉の行列であるLR
U行列を表す順序関係を保持し、保守プロセッサ2がデ
ジタル探索木に葉を追加する際に、当該葉をLRU行列
の最後に加えて、その葉の状態表示データをオフにする
手段(不図示)と、一定時間ごと、あるいは指定された
契機に、LRU行列中の葉の状態表示データを調べ、そ
の値に従ってLRU行列の順序を変更する手段(不図
示)と、指定された契機にLRU行列の先頭の葉をデジ
タル探索木から削除する手段(不図示)を有し、探索プ
ロセッサ1が探索キーに対応する葉を探索したときに、
その葉の状態表示データをオンにする手段(不図示)を
有する。
【0135】保守プロセッサ2は、デジタル探索木に葉
を追加する際に、当該葉をLRU行列の最後に加えて、
その葉の状態表示データをオフにする。さらに、一定時
間ごと、あるいは、指定された契機に、LRU行列中の
葉の状態表示データを調べ、その値に従ってLRU行列
の順序を変更する。また、指定された契機にLRU行列
の先頭の葉をデジタル探索木から削除する。探索プロセ
ッサ1は、探索キーに対応する葉を探索したときに、そ
の葉の状態表示データをオンにする。
【0136】次に、図7に示すデジタル探索木構成例を
用いて、請求項8に対応する第6の実施形態における保
守プロセッサ2の動作を説明する。図で、点線の矢印は
LRU行列における順序関係を表すものである。これ
は、たとえば、矢印の元側で、矢印の先にある葉のアド
レスを保持することにより実現できる。また、葉の下に
記入したオン、オフは状態表示データの値を示す。
【0137】保守プロセッサ2は、新たに葉を追加しよ
うとしたとき、葉の追加に必要なメモリがない場合に
は、デジタル探索木に既に存在している葉を削除して必
要なメモリを作り出さなければならない。この場合に、
LRU行列の先頭から順に葉を辿り、状態がオンなら
ば、LRU行列の最後に移し、オフならば、デジタル探
索木から削除する。図7では、LRUfirstから辿
り、最初の2つの葉、葉4(T),葉14(S)は状態
がオンなので、葉15の後ろに移し、3番目の葉、葉1
3(R)は状態がオフなので、削除する。さらに、葉1
2(P)、葉11(N)、葉7(E)、葉16(A)の
状態がオンなので、これらの葉を順にLRU行列の後ろ
に移す。このとき、これら後ろに移した葉の状態をオフ
に変更する。この結果、LRU行列は、葉10(I)を
先頭に、9、8、6、15、4、14、12、11、
7、16の順になる。
【0138】このように、LRU行列で葉の生成順序を
保持し、オン/オフの状態表示データで探索プロセッサ
1での探索状況を保持することにより、作られた順が古
く、かつ最近探索されていない葉から順番に削除対象と
して選ばれる。また、作られた順が古くても、ある一定
時間前からの間に一度でも探索された葉は状態がオンに
なるので、他に状態がオフの葉がある限り削除対象の候
補から除外される、あるいは、候補になりにくくなる。
【0139】
【発明の効果】以上説明したように、本発明は下記のよ
うな効果がある。 (1)請求項1の発明は、プロセッサをデジタル探索木
の探索処理を専門に行なう探索プロセッサとその他の処
理を行なう保守プロセッサに分離して、探索処理に対す
る要求を、その他の処理とは独立に並行して受け取って
処理することにより、 探索処理、削除処理、追加処理の要求が連続して多数
来たときに、削除処理、追加処理にCPU時間をとら
れ、探索処理が遅延することがない。
【0140】探索処理、削除処理、追加処理の要求が
同時に来ることがあるような応用において、探索処理が
後回しにされて遅延することがない。
【0141】探索処理の高速化のために、プロセッサ
を処理に合わせて専用化したい場合でも、プロセッサの
構造が簡単で、実現可能である。 (2)請求項2の発明は、探索処理を簡単にして、か
つ、削除処理、追加処理と独立させているので、高速な
探索処理プロセッサを容易に実現できる。このため、特
に、削除処理、追加処理に比べて、探索処理の頻度が高
い応用に対して、価格性能比の高いデジタル探索装置を
作ることができる。 (3)請求項3の発明は、探索プロセッサで、探索キー
に対して1つの節点で複数のビットを調べることが可能
になるようにしたため、 見出し数が多いデジタル探索木の場合、あるいは、見
出しの長さが長い場合に、探索処理時間が長くなること
がない。 (4)請求項4の発明は、節点データと葉のデータとし
てマスクデータを用いて探索キーの一部を無視できるよ
うにしており、探索プロセッサがスタックを用いてマス
クデータを保持している節点データへの到着履歴を管理
して、探索キーと異なる葉に到達した場合にバックトラ
ックできるようにしているので、デジタル探索木に探索
キーと一致する見出しを持つ葉がない場合に、特定の一
部のビットだけ一致するような見出しを探索結果として
求めることができる。 (5)請求項5の発明は、節点のデータとして、検査ビ
ット位置の代わりに見出しの長さに依存しない短い長さ
に抑えることが可能な検査ビット移動幅を用いているの
で、見出しが長い場合にも、探索処理で1つの節点を辿
るためにメモリから読み込まなければならないデータ量
を少なく抑えることができる。また、プロセッサとメモ
リの間のデータ転送用のバス幅を小さく抑えることがで
きる。 (6)請求項6の発明は、探索プロセッサが節点を1つ
辿るためにメモリから読み込まなければならないデータ
は、1個の節点アドレスと分岐条件だけであり、さら
に、これらは同時に読み込むことができるので、 見出し数が多い場合にも、プロセッサとメモリの間の
データ転送用のバス幅を実現困難なほど広くする必要が
ない。
【0142】デジタル探索木の構成に応じて、プロセ
ッサの数などのシステムの構成を変えなくてもよい。特
に、見出し数の多いデジタル探索木の場合にも、システ
ムの規模が拡大し、かつ複雑になることがない。
【0143】節点を移動してもプロセッサ間通信が発
生しないので、通信のオーバヘッドが大となることがな
い。 (7)請求項7の発明は、LRU行列を用いて、作られ
た順が古く、かつ最近探索されていない葉から順番に削
除対象として選べるようにしているので、デジタル探索
木で保持できる葉の数に制限がある場合にも、繰り返し
探索される見出しの葉を削除しないで優先的に保持し続
けて、削除と追加の処理が頻繁に発生することがないよ
うにできる。
【図面の簡単な説明】
【図1】本発明の一実施形態のデジタル探索装置の構成
図である。
【図2】請求項3に対応する第2の実施形態を説明する
ためのデジタル探索木の例を示す図である。
【図3】請求項4に対応する第3の実施形態を説明する
ためのデジタル探索木の例を示す図である。
【図4】請求項5に対応する第4の実施形態を説明する
ためのデジタル探索木の例を示す図である。
【図5】請求項6に対応する第5の実施形態を説明する
ためのデジタル探索木の例を示す図である。
【図6】請求項6に対応する第5の実施形態を説明する
ためのデジタル探索木の例を示す図である。
【図7】請求項7に対応する第6の実施形態を説明する
ためのデジタル探索木の例を示す図である。
【図8】従来技術で用いられているデジタル探索木の例
を示す図である。
【符号の説明】
1 探索プロセッサ 2 保守プロセッサ 3 共有メモリ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 小倉 毅 東京都新宿区西新宿三丁目19番2号 日本 電信電話株式会社内 (72)発明者 川野 哲生 東京都新宿区西新宿三丁目19番2号 日本 電信電話株式会社内 (72)発明者 八木 哲 東京都新宿区西新宿三丁目19番2号 日本 電信電話株式会社内

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 探索したいデータの見出しである探索キ
    ーを候補データの見出しと直接比較するのではなく、探
    索キーを構成している桁を手がかりにして目的のデータ
    の格納場所に近付いていく、デジタル探索あるいは桁探
    索と呼ばれるデータ探索装置であって、 デジタル探索木の初期化、前記デジタル探索木の節点と
    葉の追加と削除、デジタル探索木の再構成とを行なう保
    守プロセッサと、前記デジタル探索木を探索する探索プ
    ロセッサと、前記デジタル探索木を保持する共有メモリ
    とを有し、前記保守プロセッサと前記探索プロセッサが
    それぞれ独立に動作し、前記共有メモリをアクセスして
    デジタル探索木を並列に操作するデジタル探索装置。
  2. 【請求項2】 前記共有メモリが、前記デジタル探索木
    の節点データとして、検査ビット位置と、探索キーの検
    査ビット位置のビットの値が0のときに分岐すべき節点
    アドレスおよび1のときに分岐すべき節点アドレスを保
    持し、前記探索プロセッサが、前記共有メモリから読み
    出した節点データに従って、探索キーの前記検査ビット
    位置のビットの値を調べ、その結果により、次に前記共
    有メモリから読み出す節点データのアドレスを決定する
    手段を有し、前記保守プロセッサが、葉の追加の際に、
    節点データとして前記共有メモリが保持すべき内容が上
    記の通りになるように、節点データの変更、あるいは、
    新しい節点を追加して前記デジタル探索木を更新する手
    段を有する請求項1記載のデジタル探索装置。
  3. 【請求項3】 前記共有メモリが、前記デジタル探索木
    の節点データとして予め定められた数の複数の検査ビッ
    ト位置と、それらの位置に対する探索キーのビットの値
    の組合せごとに定まる一連の分岐先節点アドレスを保持
    し、前記探索プロセッサが、前記共有メモリから読み出
    した節点データに従って、探索キーの前記複数の検査ビ
    ット位置のビットの値を調べ、それらの結果により、次
    に前記共有メモリから読み出すべき節点データのアドレ
    スを決定する手段を有し、前記保守プロセッサが、葉の
    追加の際に、検査ビット位置の数が予め定められた値以
    下になるように、当該節点の節点データの変更、あるい
    は、新しい節点を追加して前記デジタル探索木を更新す
    る手段を有する請求項1記載のデジタル探索装置。
  4. 【請求項4】 前記共有メモリが、前記デジタル探索木
    の節点データおよび葉のデータとして、探索キーと見出
    しの比較の際に無視してよいビットを指定するマスクデ
    ータをさらに保持し、前記探索プロセッサが、節点デー
    タとして前記マスクデータを保持する節点を読み出す際
    に、その節点データをスタックに積み込む手段と、前記
    探索木を辿って到達した葉の見出しが探索キーと異なる
    場合に、前記スタックをポップアップして節点データを
    取り出す手段と、取り出した節点データのマスクデータ
    を用いて探索キーの一部を無視しながら当該節点からデ
    ジタル探索を再度やり直す手段とをさらに有する請求項
    2または3記載のデジタル探索装置。
  5. 【請求項5】 前記共有メモリが前記検査ビット位置
    (CP)の代わりにCPの移送幅(CP−SKIP)を
    保持し、前記探索プロセッサが、前記検査ビット位置を
    示す検査ビット位置レジスタを備えて、前記共有メモリ
    から読み出して得られるCP−SKIPを前記検査ビッ
    ト位置レジスタの値に足し込むことにより検査ビット位
    置を決定する手段を有し、前記保守プロセッサが、葉の
    追加の際に、前記デジタル探索木の既存節点のCP−S
    KIPの値と予め定められたCP−SKIPの最大値と
    から、CP−SKIPの値が該最大値以下になるよう
    に、ひとつあるいは複数の節点を追加して前記デジタル
    探索木を更新する手段を有する請求項2から4のいずれ
    か1項に記載のデジタル探索装置。
  6. 【請求項6】 前記共有メモリが各節点の節点データと
    して、分岐先節点である子節点の節点データアドレス
    と、子節点での分岐先決定のための条件である分岐条件
    の対からなる枝データを分岐先の数だけ保持し、前記探
    索プロセッサが前記共有メモリから枝データを読み出す
    手段と、読み出した枝データの分岐条件と探索キーとか
    ら子節点での分岐先節点である孫節点を決定し、子節点
    の節点データにおける当該孫節点に対する枝データの格
    納アドレスを計算して、前記共有メモリから次に読み出
    すべき枝データのアドレスとして設定する手段を有する
    請求項1から5のいずれか1項に記載のデジタル探索装
    置。
  7. 【請求項7】 前記共有メモリが前記デジタル探索木の
    葉に対してオン、オフ2値の状態表示データ、および、
    葉の行列であるLRU行列を表す順序関係を保持し、前
    記保守プロセッサが前記デジタル探索木に葉を追加する
    際に、当該葉を前記LRU行列の最後に加えて、その葉
    の状態表示データをオフにする手段と、一定時間ごと、
    あるいは指定された契機に、前記LRU行列中の葉の状
    態表示データを調べ、オンであれば該葉が前記LRU行
    列の後にくるように前記LRU行列の順序を変更する手
    段と、指定された契機に前記LRU行列の先頭の葉を前
    記デジタル探索木から削除する手段を有し、前記探索プ
    ロセッサが探索キーに対応する葉を探索したときに、そ
    の葉の状態表示データをオンにする手段を有する請求項
    1から6のいずれか1項に記載のデジタル探索装置。
JP31791896A 1996-11-28 1996-11-28 デジタル探索装置 Expired - Fee Related JP3284064B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP31791896A JP3284064B2 (ja) 1996-11-28 1996-11-28 デジタル探索装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP31791896A JP3284064B2 (ja) 1996-11-28 1996-11-28 デジタル探索装置

Publications (2)

Publication Number Publication Date
JPH10162013A true JPH10162013A (ja) 1998-06-19
JP3284064B2 JP3284064B2 (ja) 2002-05-20

Family

ID=18093507

Family Applications (1)

Application Number Title Priority Date Filing Date
JP31791896A Expired - Fee Related JP3284064B2 (ja) 1996-11-28 1996-11-28 デジタル探索装置

Country Status (1)

Country Link
JP (1) JP3284064B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000332786A (ja) * 1999-05-21 2000-11-30 Nippon Telegr & Teleph Corp <Ntt> ルーティングテーブル検索方法
GB2371381A (en) * 2000-04-06 2002-07-24 Ibm Tree based search method
US6675163B1 (en) 2000-04-06 2004-01-06 International Business Machines Corporation Full match (FM) search algorithm implementation for a network processor
KR100429142B1 (ko) * 2000-04-06 2004-04-29 인터내셔널 비지네스 머신즈 코포레이션 네트워크 프로세서용 소프트웨어 관리 트리 구현
US9009403B2 (en) 2012-07-27 2015-04-14 International Business Machines Corporation Multi-updatable least recently used mechanism
WO2016125501A1 (ja) * 2015-02-06 2016-08-11 日本電気株式会社 データ処理装置、情報エントリ管理方法及び情報エントリ管理プログラムが記録された記録媒体

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000332786A (ja) * 1999-05-21 2000-11-30 Nippon Telegr & Teleph Corp <Ntt> ルーティングテーブル検索方法
GB2371381A (en) * 2000-04-06 2002-07-24 Ibm Tree based search method
US6675163B1 (en) 2000-04-06 2004-01-06 International Business Machines Corporation Full match (FM) search algorithm implementation for a network processor
KR100429142B1 (ko) * 2000-04-06 2004-04-29 인터내셔널 비지네스 머신즈 코포레이션 네트워크 프로세서용 소프트웨어 관리 트리 구현
GB2371381B (en) * 2000-04-06 2004-09-01 Ibm Search algorithm implementation for a network processor
US7107265B1 (en) 2000-04-06 2006-09-12 International Business Machines Corporation Software management tree implementation for a network processor
US7120630B2 (en) 2000-04-06 2006-10-10 International Business Machines Corporation Full match (FM) search algorithm implementation for a network processor
US7139753B2 (en) 2000-04-06 2006-11-21 International Business Machines Corporation Full match (FM) search algorithm implementation for a network processor
US9009403B2 (en) 2012-07-27 2015-04-14 International Business Machines Corporation Multi-updatable least recently used mechanism
US9009401B2 (en) 2012-07-27 2015-04-14 International Business Machines Corporation Multi-updatable least recently used mechanism
WO2016125501A1 (ja) * 2015-02-06 2016-08-11 日本電気株式会社 データ処理装置、情報エントリ管理方法及び情報エントリ管理プログラムが記録された記録媒体

Also Published As

Publication number Publication date
JP3284064B2 (ja) 2002-05-20

Similar Documents

Publication Publication Date Title
US6564211B1 (en) Fast flexible search engine for longest prefix match
US10055439B2 (en) Fast, scalable dictionary construction and maintenance
Aoe et al. An efficient implementation of trie structures
EP1623347B1 (en) Comparison tree data structures and lookup operations
Faloutsos Multiattribute hashing using gray codes
CN100476800C (zh) 一种切分索引分词的方法及***
US7415472B2 (en) Comparison tree data structures of particular use in performing lookup operations
AU7738596A (en) Storage and retrieval of ordered sets of keys in a compact 0-complete tree
CN113139100A (zh) 一种网络流量实时索引方法及***
JPH08194718A (ja) 文書検索方法および装置
JP3284064B2 (ja) デジタル探索装置
JP3518933B2 (ja) 構造化文書検索方法
JP2001527240A (ja) データ構造内の管理
Amir et al. Searching for a modified pattern in a changing text
JP3062119B2 (ja) 文字列探索用テーブル、その作成方法及び文字列探索方法
JPH08190571A (ja) 文書検索方法
JP2003234762A (ja) テーブル検索装置および方法およびプログラムおよび記録媒体
KR20200094977A (ko) 오토마타 기반 증분적 중위 확률 계산 장치 및 방법
JPH10240741A (ja) 木構造型データの管理方法
JPH03131969A (ja) 記号列検索方法および検索装置
JP2001117929A (ja) データ検索方法、データ整列方法およびデータ検索装置
JP2835065B2 (ja) 文字列検索方法
CN113076733A (zh) 一种文本匹配方法、终端设备及存储介质
Yata et al. Double-array compression by pruning twin leaves and unifying common suffixes
JP2002530785A (ja) ディジタル・メモリ構造と装置及びそれの管理方法

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090301

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20090301

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20100301

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20110301

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20110301

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20120301

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20130301

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees