JPS63298524A - デ−タ検索システム - Google Patents

デ−タ検索システム

Info

Publication number
JPS63298524A
JPS63298524A JP62133908A JP13390887A JPS63298524A JP S63298524 A JPS63298524 A JP S63298524A JP 62133908 A JP62133908 A JP 62133908A JP 13390887 A JP13390887 A JP 13390887A JP S63298524 A JPS63298524 A JP S63298524A
Authority
JP
Japan
Prior art keywords
data
address
memory
key
written
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
Application number
JP62133908A
Other languages
English (en)
Inventor
Masuyoshi Soeda
添田 益吉
Hiroshi Kuwaki
桑木 宏
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 BIJINESU AUTOM KK
Original Assignee
NIPPON BIJINESU AUTOM KK
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 BIJINESU AUTOM KK filed Critical NIPPON BIJINESU AUTOM KK
Priority to JP62133908A priority Critical patent/JPS63298524A/ja
Publication of JPS63298524A publication Critical patent/JPS63298524A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 [発明の目的] (産業上の利用分野) 本発明は、必要とするデータまたはファイルを、数字、
文字、記号等のキーポインタを使って検索する仕事を高
速に行なうデータ検索システムに関する。
(従来の技術) 一般に、システム内に大量のデータ群をもつ電子計算機
において特定のデータの検索を行う場合には、まず外部
記憶装置から主メモリにデータ    群のキ一部分を
読込み、次に目的のキーワードと主メモリに読み込まれ
たキーとを1〜n桁(nは正の整数〉ごとに比較する。
したがって参照すべきキーが長い場合にはこの比較を何
回も行う必要がある。さらにこのような比較は対象とな
るデータの個数分だけ繰返えさなければならない。
また、一致するキーを有したデータが検索の途中で発見
されても、一致するキーを有する他のデータが存在する
可能性があれば、あくまでも全データについて前記比較
を行わなければならない。
これはデータベースの構造が複雑で、キーばかりではな
く、データの格納場所を示すポインタ等を使った場合で
も同様である。
(発明が解決しようとする問題点) ところで主メモリ内に被検索キーが全部入っているとし
てCPU内の働きを考えてみると、非常に多くの手続を
経て1回の比較が行われることが分る。
たとえば比較命令の実行、マツチングがとれたデータの
転送等の他に、繰返し回数の制御、アドレスの制御等、
一般に10以上のアセンブラレベルの命令群が必要であ
る。
ここで1命令の実行に平均1μsかかり、1回の比較に
10回の命令実行が必要であると仮定すると、例えば1
0万個のデータの各1桁を調べるには、10X10’X
’1Q5=i秒 が必要である。したがってm桁を調べ
るにはm秒かかることになる。
例えば「ある地域に居住し、ある職業に就いている」と
いう条件を備えた個人を探し出す場合のように、いくつ
もの分類から、ある目的のデータに到達する時は、両方
のポインタの組数分だけ検索を行わなければならないの
で、相当の時間がかかる。
本発明はこのような事情によりなされたもので、CPU
のプログラムを複雑にすることなく、検索時間を大幅に
短縮し、検索性能を大幅に向上させたデータ検索システ
ムの提供を目的としている。
[発明の構成] (問題点を解決するための手段) 本発明はこの目的を達成するために、制御装置(CPU
)から検索キー、被検索データ、この被検索データの数
を示すデータ、1つの被検索データに対して何桁の照合
を行うかを示すデータを受取り、排他的論理和回路(以
下XOR回路と称する)および論理和回路(以下OR回
路と称する)を通して前記検索キーと前記被検索キーと
を照合し、所定のメモリに裏込まれていたデータとの論
理和をとって前記メモリに記憶させ、前記検索キーが長
いときは前記検索キーおよびこの検索キーと同じ長さに
分割された被検索データを受取って前記メモリに書き込
み、2回目のデータを前記メモリに入れる時は前記XO
R回路を通した後で前回前記メモリに入れた結果ととも
に前記OR回路を通して前記メモリに書き込み、照合結
果を前記制御l装置に送り返す際に、一致がとれたデー
タが入っていた番地の最初のものに終りを示すマークを
入れ、2番目のものに1番目の番地を入れ、n(nは3
以上の整数)番目のものにn−1番目の番地を入れ、最
終番地には必ず一致がとれるデータを入れておくように
したたものである。
本発明によれば前記制御装置が、返送されたデータの最
終のものを調べることにより、一致した番地を鎖状に引
出すことができる。
一般に、文字、数字、記号が同一であるかどうかを見る
には、比べる情報と比べられる情報とを2進数値とみな
し、減算回路に入れて答がOになったかどうかで判定す
るが、2つの情報をXOR回路に入れてその出力がどの
ビットについてもOであることを検出することによって
も知ることができる。
XOR回路は構成が単純でおり、桁上りの時間がないた
めに、この回路を通過するのに必要な時間は極めて短い
また長いキーを調べるためには、単位長さに分けて何度
も比較し、頭から終りまで一致していることを確認しな
ければならない。
現在この方法には、■1つのデータについて頭から終り
までを調べて結果を出し、次のデータに移る方法と、■
すべてのデータについて頭の部分を照合してその中間結
果を残しておき、次にすべてのデータについて頭から2
つ目の部分を照合し先に得た照合結果と合せ、前回も今
回も一致したものの情報を残す方法とがある。
本発明システムは、−見学間のかかりそうな■の方法を
採っているが、単純な回路により単純な動作を繰返し、
照合できているかどうかを途中で判定しなくても、最後
に結果をチェックすればわかるように構成しである。
(作 用) 本発明システムでは、まず全データの頭の1単位長をキ
ーと共にXOR回路の入力として照合し、その結果を順
に本装置内のメモリに保存する。
一致していればメモリには単位長内の全ビットがOとし
て書込まれる(一致していないものは全ビットかOにな
らない)。
次に頭から2つ目の単位長を2つ目のキーと共にXOR
回路に入れ、その出力をOR回路の一方の入力とする。
OR回路の他方の入力は、前回の結果をメモリから読出
してきたものとすると、OR回路の出力が全ビットOに
なるものは前回も今回も比較すべきデータと全く一致し
たものに限られる。
このOR回路の出力は第1回目と第2回目の結果の累積
としてメモリに記憶され、第3回目のOR回路の入力は
この累積結果を用いる。これを繰返せば長い桁をもつ比
較すべきデータと比較されるべぎデータ群との照合が終
り、結果として完全に一致したものだけが、単位長の全
ビットがOになった状態でメモリに残る。
ここでXOR回路とOR回路を重ねても通過する論理素
子の段数が少ないので、メモリのリード、ライト時間に
影響を及ぼすことはない。
次にCPUで累積データを早く簡単に検知できるような
形にして転送する。最初にキーを入れていたレジスタに
全ビット1のデータを入れてから、メモリの番地を指定
するいわゆるメモリアドレスカウンタと、令命ビットに
1が入れられたレジスタとをOチェッカによって制御さ
れるゲートを介して接続する。
メモリからの累積データはOチェッカに入ると共に主メ
モリのパスラインに結ばれてから転送が開始される。
一致していないデータがあった番地の出力は、単位長の
データがすべてOになるとは限らないので、そのままパ
スラインを経由して主メモリへ行くが、一致したデータ
の入っていた番地の出力は全ビットOであるのでOチェ
ッカが検知し、メモリ出力がパスラインへ行くのを止め
、レジスタの出力をバスに繋ぐ。
、こうすると最初にレジスタに全ビット1を立てていた
ので、パスラインには全ビット1のデータが入る。
そしてその直ぐ後でかつメモリアドレスカウンタが1つ
進む前に、メモリアドレスカウンタの値をレジスタに入
れる。
こうすると2つ目に全ビットOのデータが入った番地に
きたときは、メモリバスには1つ目の全ビットOのデー
タが入っていない番地が入れられる。
すなわち第1番目にOチェッカにかかった時は全ビット
10番地が、第2番目に0チエツカにかかった時は1番
目が発見された番地が送られることになる。
ここで約束として、検索データを本装置に送るときに最
終番地に入れられるデータは比較すべきデータ、すなわ
ち検索キーそのものを送るようにしておく。
このため最終番地の出力は常にOになるので、ここに最
終番地の1つ前に一致したデータの入っていた番地が書
かれることになる。
データを受取ったCPU側は、メモリの最終番地をみれ
ば一致した番地がわかり、このデータ番地の内容にはそ
の前に一致した番地が書かれていることがわかるが、内
容として全ビット1のものが出てくると、それ以上は一
致したものがないということがわかる。
すなわちCPUは、何番目にどんなデータを送り込んで
いたかを知っていさえすれば、一致したものは何である
かが簡単にわかる。
更に2つ以上の異なる系統の分類からデータに近づき、
その両条件を充たすデータを拾い上げるというような検
索の場合には、ポインタの長さが単位長より短いと考え
て、本装置内に2系統のポインタを記憶させてから、処
理をはじめた方が制wJ装置(CPU)からデータを送
る回数が少ない。
サブメモリとサブメモリ用アドレスカウンタとはこのた
めに備えられている。
制御装置(CPU)からR1に入れられたデータをサブ
メモリから供給し、XOR回路を通した後、Oチェッカ
によりフラグレジスタをセットし、メインメモリ全部を
調べる。
そしてフラグレジスタがセットされていれば、R1と一
致したデータがメインメモリのどこかにあったわけであ
るから、サブメモリの現在番地にOを書き、セットして
なければR1の出力を古く(すなわち、ちと書いてあっ
たデータを書く)。
この間にメインメモリの内容は書き換えられないので、
R1のデータをサブメモリの出力によって、順次換えて
上記の照合を行う。終ればサブメモリに結果が書込まれ
ている。
したがって、サブメモリのデータをCPU側に返してや
れば目的を達することができる。
サブメモリのデータを返すときは前述した単純検索時の
ように、最初にOデータが出た時に全ビット1のデータ
を送り、次には最初に○データの必った番地をというよ
うにずらせる。
MBのラストデータはMAのトップデータと同じものを
入れる。こうするとラスト番地は必ずOになるので、単
純検索時と同じように、最終データから調べれば一致し
たデータの入った番地がわかる。
(実施例) 以下、本発明の実施例の詳細を図面に基づいて説明する
第1図は本発明の一実施例の構成を示すブロック図であ
る。
まず前提として、膨大な量のデータは通常外部メモリ(
本例では磁気ディスク装置)に収められている。各デー
タにはキーが付いているか、またはキーとして使える文
字列があり、このキー又は文字列と、検索したいキーま
たは文字列を照合して合致したものを探し出す。ここで
合致するものは1個だけとは限らないので、ある範囲の
領域を全部検索する必要がある。
また、データベースの作り方によっては例えば住所だけ
でも個人名が出せるが、例えば職業と住所とにより、あ
る地域在住の特定の職業の個人名を引出せるようにする
こともできる。
第2図の点線内は本発明によるデータ検索システムを通
常の電子側篩機に接続したときの図でおる。
磁気ディスクから本発明の装置に直接検索データを入れ
て照合し、結果のみをCPUに送ることも可能であるが
、制御が複雑になるため、ここでは本装置がCPU側か
らメモリバスを通してデータを受取って装置内で処理し
、結果をメモリバスを通してCPU側へ返送する方式に
ついて説明する。
本実施例装置は主記憶回路であるMAと、それより小さ
いサブメモリMBと、それぞれのメモリアドレスカウン
タMACA、MACB、XOR回路、OR回路、レジス
タR+、R2、lPi%返しカウンタC1、C2、Oチ
ェッカ、フラグFT 、F2、クロック発生回路CK、
CPUとの同期回路SN、および各ラインのゲート回路
とから構成されている。
一連の動作のはじめには、メモリの内容、各カウンタ、
レジスタはクリヤするものとする。またパリティビット
等、データ保証のためのビット1は除いて考える。
CPU側のメモリバスは32ビツトでおるとし、本装置
内のメモリは32ビツトごとにアドレスが付けられてい
るとする。以後、32ビツトを1ワードと呼ぶ。はじめ
に単純な検索の場合の動作を説明する。
第3図に示すようにCPUから検索桁数の1/4(1ワ
一ド4桁数)と、被検索データ数と、検索データの書か
れた上位4桁すなわち1ワードをそれぞれカウンタC1
、C2とレジスタR1に入れて、フラグF1に単純検索
であることを示す信号を送る。
続いて、被検索データも上位4桁に区切ったものの集ま
りをMAに送る。このとき最終データは被検索データと
同じものとする。
被検索データは直接メモリに行くのではなく、XOR,
ORt経TMAk:入ルカ、XORを通ルレジスタR1
の出力もXORの他の端子に入れられているので、仝ピ
ッl−の照合が行われ、Rのデータすなわら検索キーと
今入ってきた被検索キーと全く同じであれば全ビットO
としてORへ行く。
一方、本装置内のメモリは単純検索の場合、まずリード
を行なう。続いてライトを行ってから次の番地に変るよ
うになっており、同期信号によって、CPU側のメモリ
がデータをバスに送る時にリードをはじめるようにしで
ある。従ってメモリバスを通って来たデータがORに来
た時には、MAの当該番地のデータはR2が読出してい
る。
ORの入力はR2の出力とXORの出力であるので、両
者共Oでおる場合に限り、MAの入力はOとなり、条件
に合致しないものは何等かのビットが付いていることに
なる。このOR出力がライトサイクルでMAに書かれる
初期状態ではMAはすべてのビットがOになっているの
で、MAは検索キーと全ビットで一致したデータがきた
番地に限り全ビットOが書かれる。
また最終番地はキーと同じデータを入れる約束なので必
ずOが書かれる。
MACAがカウントアツプするごとにC2はカウントダ
ウンするので、MAを終りまで使っていなくても、C2
がOになった所で1回目の検索が終り、C1をカウント
ダウンしてCPU側に次の桁の要求をし、R1、C2の
値を貰い、MAへ行くべきデータが来る。
2回目のデータが来ると、先と同じことが行われるが、
MAは1回目の照合の結果が残っており、これとORを
とったものがMAへの入力となる。
従って、1回目も一致かつ2回目も一致したデータの番
地だけがOとなり、他は何等かのビットが残る。このこ
とを繰返すと、検索キーと同じデータが入っていた所だ
けがOとなる。これをC1がOになるまで繰返す。
この結果をCPUで処理しやすい形にして送る方法を第
4図に示す。
CI =Oになった時、R1は全ビット1にし、MAの
出力の一方をOチェッカに繋ぎ、CIにはMACAの値
を移して、転送すべきデータの数を記憶させる。
Oチェッカは入力のすべてがOビットであった場合以外
はR2の出力をメモリバスに出す。
入力のすべてがOであった時はR2の出力がメモリに出
る道を閉じ、代りにR1のデータをメモリバスに繋ぐの
で、はじめて仝Oビットのデータが来たときはメモリバ
スには全1ビツトのデータが出る。
それに続いてMACAの内容をR1に移す。すなわちO
が出た番地がR1に覚えられたわけである。このことを
繰返すとCPU側のメモリ内容は次のようになる。
最初にOが読出されたアドレスには全ピッ]へ1が書込
まれ、次にOが出た番地には最初に全ビット1が川かれ
た番地の値が書かれる。以下同様にしてC1はMACA
が1増加するごとに1減少し、CI =Oになった時が
転送データの終りである。
最終番地には実質的検索でOがあった番地の値が書かれ
る(最終番地は常にキーを入れて来たので必ずOが出る
)。
CPUでは最終番地を調べると照合で一致した番地のう
ち最大番地がわかり、その番地を読出せば大きな番地が
わかる。もうこれ以上ないという意味の全ビット1のデ
ータが出るまでつづけることになる。
多くの場合、照合して一致するデータは相当少ないので
、CPUでは結果を知る時間が大いに節約される。
ここで検索データが4桁で割り切れないときはC1には
4で割って切上げした値を入れ、検索キーおよびデータ
のいずれも先の割算で出た商余にあたる桁数だけブラン
クデータを入れ、見掛は上すべてのワードとして処理す
る。
2種項以上の分類からデータに達するやり方でどららの
分類からも複数のポインタが得られる。
そして、その−数点のデータを取るような場合には、前
の方法におけるR1の入替をCPLIから毎回受取るの
ではない。MBにR1に入れるべきデータ群を入れてお
き、R1をMAによって変えながら結果を得ようとする
ものであるが、少し方法が異なる。
第5図において、CPUから複雑検索の記号とMAに入
れるデータ数とMBに入れるデータ数とを本装置の01
、C2に送る。
その後、MA、MBヘデータを送る。この時はMA、M
Bにそのままデータを書込む。
ただしMBの最終番地にはMAのトップ番地のデータと
同じものを入れておく。
次に第6図に示すようにMBから1ワードをR1に移し
てMAのデータとR1の出力とをXORを通してOチェ
ッカに繋ぐ。
ここで合致した場合には、フラグF2をセットする。M
Aから1ワード読出すごとに02は1減する。
これを繰返すがMAの終りはC2がOになった事でわか
る。この時F2がセットしていればMAとどこがで合致
していた事になるので、MBの当該番地に全ビットOを
書込む。セットしてなければR2のデータすなわちMB
の当該番地にあったデータを書込む。その後C1を1減
じ、F2をセットし、MACAの値を02に移し、MA
CAをリセットする。
以上の事を繰返しC+ =Oになった時に検索は終るが
、結果を送出するためにC1にMACBの値を入れる。
MBの送出に際しては単純検索時と同様にR1に全ビッ
トを入れ、最初に全ビットOのデータが出た所に全1ビ
ツトを書込み、次は最初に全ビットOが出た番地の値を
書き、同様のことを続け、最終番地には必ず1つ前にO
が出た番地を書きながら送出する。
これによってCPUは容易に照合結果がわかる。
なお本実施例では、使用するメモリの速度と主メモリの
速度には触れていないが、回路が簡単である上、メモリ
はCPUの主メモリより小ざくて良いことから、高速の
メモリを使用すればCPtJの主メモリの2倍の速度で
動作させることも可能である。
すなわち主メモリから1つのデータが来る時間内にリー
ドとライトの両方を行なうことができる。
主メモリからデータが送られてくると、本装置内のメモ
リはリードを実行して別のレジスタR2に入れ、前述の
XORの一方の入力として照合に使う。
そしてライトサイクルに変ると、今リードされた番地に
加工済のデータが入れられるので、メモリが最高速でデ
ータ送っても、送り終ったときには最終パターンが出来
上っている。したがって直ぐに主メモリに結果を返送す
ることができ、主メモリや、メモリバスを最も有効に利
用することができる。
なお本実施例において、本装置内のメイン、サブ両メモ
リのカウンタに桁数制限回路を入れたのは、ポインタ同
志の検索時には、数が相当少くなっていると思われるの
で、メインおよびサブメモリの有効部分のみを検索に使
って時P4節約をするためである。
また本装置内にメインメモリとサブメモリとを置いて説
明したが、ポインタ同志の照合の場合はデータが少なく
なっているので、メインメモリを2つに分けて別のアド
レスカウンタで制御できるような切換回路を入れておけ
ばメモリは1つで済む。
[発明の効果] 以上説明したように本発明によれば、メモリとわずかな
回路で高速にかつCPUのプログラム負担を減らしシス
テムの利用度を大いに向上させることができる。
そして数千、致方のポインタの間で照合するような場合
、CPUのプログラムの負担軽減効果は莫大である。
【図面の簡単な説明】
第1図は本発明の一実施例システムの構成を示すブロッ
ク図、第2図は同システムを計算機と繋いだ状態を示す
ブロック図、第3図は通常検索時における動作を表わす
流れ図、第4図は通常検索して得た結果をCPUに返送
する動作を示す流れ図、第5図は複数系統の検索で得ら
れたポインタ一群同志の照合をするために、メインメモ
リとサブメモリにデータを入れる時の動作を示す流れ図
、第6図は第5図の動作で準備されたポインタ同志の照
合時における動作を示す流れ図、第7図は第6図の照合
で得た結果をCPUに返送するときの動作を示す流れ図
である。 MA・・・・・・メインメモリ MB・・・・・・サブメモリ MACA、MACB・・・メモリアドレスカウンタR1
、R2・・・・・・レジスタ C+ 、C2・・・・・・繰返しカウンタF+ 、F2
・・・・・・フラグ CK・・・・・・クロック発生回路 SN・・・・・・同期回路

Claims (1)

    【特許請求の範囲】
  1. (1)制御装置から検索キー、被検索データ、この被検
    索データの数を示すデータ、1個の被検索データに対し
    て何桁の照合を行うかを示すデータを受取り、排他的論
    理和回路(以下XOR回路と称する)および論理和回路
    (以下OR回路と称する)を通して前記検索キーと前記
    被検索キーとを照合し、所定のメモリに書込まれていた
    データとの論理和をとつて前記メモリに記憶させ、前記
    検索キーが長いときは前記検索キーおよびこの検索キー
    と同じ長さに分割された被検索データを受取って前記メ
    モリに書き込み、2回目のデータを前記メモリに入れる
    時は前記XOR回路を通した後で前回前記メモリに入れ
    た結果とともに前記OR回路を通して前記メモリに書き
    込み、照合結果を前記制御装置に送り返す際に、一致が
    とれたデータが入っていた番地の最初のものに終りを示
    すマークを入れ、2番目のものに1番目の番地を入れ、
    n(nは3以上の整数)番目のものにn−1番目の番地
    を入れ、最終番地には必ず一致がとれるデータを入れて
    おくようにしたことを特徴とするデータ検索システム。
JP62133908A 1987-05-29 1987-05-29 デ−タ検索システム Pending JPS63298524A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62133908A JPS63298524A (ja) 1987-05-29 1987-05-29 デ−タ検索システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62133908A JPS63298524A (ja) 1987-05-29 1987-05-29 デ−タ検索システム

Publications (1)

Publication Number Publication Date
JPS63298524A true JPS63298524A (ja) 1988-12-06

Family

ID=15115909

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62133908A Pending JPS63298524A (ja) 1987-05-29 1987-05-29 デ−タ検索システム

Country Status (1)

Country Link
JP (1) JPS63298524A (ja)

Similar Documents

Publication Publication Date Title
Kohonen et al. Logic Principles of Content-Addressable Memories
US4314356A (en) High-speed term searcher
US4064489A (en) Apparatus for searching compressed data file
US4897814A (en) Pipelined "best match" content addressable memory
US3806883A (en) Least recently used location indicator
US2853698A (en) Compression system
US3389377A (en) Content addressable memories
US5953714A (en) Data base searching system
US4044336A (en) File searching system with variable record boundaries
US3508220A (en) Fast access content-organized destructive readout memory
US3609703A (en) Comparison matrix
EP0232376B1 (en) Circulating context addressable memory
JPH024026B2 (ja)
US3064239A (en) Information compression and expansion system
JPS6142031A (ja) ソ−ト処理装置
JPS63298524A (ja) デ−タ検索システム
EP0227348A2 (en) Content addressable memory circuit and method
US3513448A (en) Buffer system
JPH0315221B2 (ja)
US2891238A (en) Memory systems
US2925588A (en) Memory reading system
Gray Jr et al. Outline for a multi-list organized system
US2877446A (en) Information handling device
SU342185A1 (ru) УСТРОЙСТВО дл ПОИСКА ИНФОРМАЦИИ
JPS6143338A (ja) 連想技術を使用して稀薄なデータベースをサーチする方法