JPH061476B2 - 高速検索処理装置 - Google Patents

高速検索処理装置

Info

Publication number
JPH061476B2
JPH061476B2 JP60267065A JP26706585A JPH061476B2 JP H061476 B2 JPH061476 B2 JP H061476B2 JP 60267065 A JP60267065 A JP 60267065A JP 26706585 A JP26706585 A JP 26706585A JP H061476 B2 JPH061476 B2 JP H061476B2
Authority
JP
Japan
Prior art keywords
match
register
line
cell
pattern
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.)
Expired - Lifetime
Application number
JP60267065A
Other languages
English (en)
Other versions
JPS62127939A (ja
Inventor
イー ユー ワン
ピン スー シ
ザツカリー ハシウク リー
マツエ オーツボ ペギー
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.)
Northrop Grumman Space and Mission Systems Corp
Original Assignee
TRW Inc
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 TRW Inc filed Critical TRW Inc
Priority to JP60267065A priority Critical patent/JPH061476B2/ja
Publication of JPS62127939A publication Critical patent/JPS62127939A/ja
Publication of JPH061476B2 publication Critical patent/JPH061476B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】 本発明は情報処理システムに関し、とくに詳細にはデー
タベースを検索してデータの特定のパターンの検索を行
う専用処理装置に関する。この種の形態の処理は多数の
異なった状況において行われる。データベースの検索に
よって、発生しうる全ての特定の語あるいは句の検索を
最もよく理解することができる。過去においては、コン
ピュータソフトウエアが、このような検索を行うのに使
用された。しかしながら、多くの現実的な限界があるこ
とを見出された。
大規模データベースを始めから終わりまで順次検索する
ための従来のハードウエアは多くの時間を必要とし、全
体として現実的でないのと、考えられる典型的な検索に
対してシステムが比較的良い性能を有するように種々の
ソフトウエア技術がデータを編成するのに使用される。
これら技術はいく種かの索引付け手段を有しており、デ
ータベース内の全てのアイテムの位置を有している大規
模なテーブルが用いられている。これら、索引テーブル
は実際のデータベースとサイズが同じぐらいであり、構
築および有機化するのが厄介である。さらに、索引テー
ブルを必要とするシステムは、内容が経時的に変化する
データベースを検索するのには不都合である。
索引構造を使用しても、ソフトウエア検索は、与えられ
た検索タスクの数多くの複雑な検索条件に極めて大きく
依存しており、用いられる汎用コンピュータには、検索
プロセスを遅滞するオペレーティングシステムオーバー
ヘッドがある。結果として、得ることのできる現実のデ
ータ処理速度は通常、データベースが通常記憶される大
容量記憶装置の最大のデータ速度よりかなり遅い。
ソフトウエア制御検索技術には限界があるために、検索
処理を援助する複数のハードウエア装置が開発された。
これら装置は二つのカテゴリに分類することができる。
即ち、内容アドレス可能メモリと専用処理装置とであ
る。内容アドレス可能メモリはメモリの内容をコモンバ
ス上のパターンと比較することのできるメモリ装置であ
る。このようなメモリ装置は、大規模データベースにと
って禁止的に高く、正確な一致突合せ処理のみを通常達
成することができるので、とにかく効用が限られてい
る。
データ検索用専用処理装置は、低価格メモリを採用して
おり、このメモリからデータが専用のパターン一致突合
せ回路によってアクセスされる。
検索条件は通常検索に先立って処理装置に記憶され、デ
ータが検索中に処理装置に送られる。専用処理装置の特
定の所望の形態においては、全ての論理を一つの集積回
路チップ上に組み入れており、数個のチップを結合する
ことによって、拡張機能がもたらされる。このような処
理装置の一つが、カルフォルニア工業大学のMeadおよび
その協力者によって開発された。このコンピュータは1
28−ビットの比較器を使用してテキスト入力と滞在パ
ターンとを比較する。(Mead,C.A.Pashley,R.D.,Britto
n,L.D.,Daimon,Y.T.,およびSando,S.F.“128−ビッ
トマルチ−コンパレータ,”IEEE Journal Solid State
Circuites,SC-11(5):692-695,October,1976参照)マス
クレジスタは、パターン内に等しい可変長“注意不要(d
on'tcare)”文字の使用を可能とする。換言すると、パ
ターンは可変長セグメントを含んだものを選定すること
ができ、その内容は突き合わせ処理に影響を及ぼさな
い。
FosterおよびKungは2種類のセルからなる脈動的パター
ン一致突き合わせチップを提案した。(Foster,M.J.,お
よびKung,H.T.専用VLSIチップ”IEEE Computer,13(1),1
月,1980年参照)この処理装置は検索されるパターンを
記憶せず平行データパスに沿っての再循環を、検索され
ているデータに要求する。このプロセッサの脈動的性格
は、すぐ隣りのセルとのみ信号を共有する相互接続され
たセルからなるパイプラインを示唆しており、高密度レ
イアウトの集積回路に特に適合し得る。
第2の脈動的構成がセントラルフロリダ大学のMukhopad
hyayによって提案された。この構造は単一形態のセルを
含んでいる。(Mukhopadhyay,A.,"VLSI ハードウエア
アルゴリズム”参照、Rabbat,G.(編集)Hardware and
Software Concepts in VLSI,4章,pp.72-94,Van Nostra
nd Reinhold,1983年,収録)このシステムにおいてパタ
ーンはパイプラインの一端からロードされ、検索される
べきテキストデータは反対の端部からロードされる。こ
のシステムは固定長および可変長“注意不要”文字の両
方を使用可能とする。
これらおよび他の提案されたシステムが、種々の“注意
不要”文字と高速でパターンの一致突き合わせを達成す
るとしても、完全なデータ検索システムを実現しない。
例えば、これらのシステムはプール関数機能、複雑な近
接機能、あるいはハンドル近似突き合わせを実行するこ
とができない。従つて、このような装置の周辺に構築さ
れたシステムは、予測できない応答時間を有することに
なる。これは特別なハードウエアが使用できるか否かに
依存する。これは、多くの場合、伝統的なソフトウエア
の解法が直面しているのと同じ問題である。
上述から、種々の検索機能を実行することができ、完全
に単一の集積回路チップに収容することができる改良さ
れた専用処理装置が依然として必要とされていることが
理解されるだろう。理想的には、改良されたプロセッサ
は、記憶媒体がアクセスされることができる速度のみに
よって制限されたスピードでデータベースを検索するこ
とができ、即ち最大可能なデータのスループットを与え
る。本発明はこれら目的を達成することに向けられてい
る。
発明の要約 本発明は、高性能データ検索用専用処理装置にある。本
発明の処理装置は直列接続された複数の同等のセルを有
しており、各セルはパターンレジスタ、文字レジスタ,
複数の制御フラグとフィールド、および少なくとも一つ
の一致レジスタを有している。検索モードの操作に先立
って、セルは初期化されて、パターンレジスタに記憶さ
れている所望の検索パターンを含み、検索を制御するた
めのフラグおよびフィールドの所望の構成を含む。従っ
て、検索されるべきデータ流は直列接続されたセルの列
に送られ、クロック信号によってセルの列を移動する。
クロック信号毎に、文字の比較が全セルにおいて行われ
る。検索されているデータ流の一部と装置内に記憶され
ているパターンとの間に一致があれば、セルの列内で一
連の一致があり、一致信号がデータ流と共にセル列を通
して伝播して、データ流一致があったことを示す。一致
レジスタの接続された列は一致ラインと呼ばれる。連続
セルの文字レジスタ内に記憶されたパターンとデータ流
内の文字の列との間に一致があると、一致指示が一致ラ
インに沿って伝播される。
本発明のある態様に従うと、複数の一致ラインが採用さ
れていて、データ流を記録されているパターンと突き合
わせる際に於ける付加的な機能を達成する。更に詳細に
は、第2の一致ラインが使用され、一致標識に対して並
列パスを与え、第3の一致ラインが使用され、第1の一
致ラインからの一致標識に対する一時記憶を与える。各
セル内の制御フラグが、種々の一致ラインの間で一致標
識の移動を制御するのに使用される。本発明の第2およ
び別の態様に従うと、一致標識は、2進1桁の一致−不
一致の標識でなく、一致の度合を示す多重レベル許容値
である。
簡潔にかつ一般的用語を用いると、本発明の専用検索処
理装置は、直列接続された複数のセルを有し、各セルが
パターンレジスタ、文字レジスタ、比較器、および一致
レジスタを有しており、セルの文字レジスタは直列に接
続されて文字ラインを形成しており、セルの一致レジス
タは直列に接続されて一致ラインを形成している。ま
た、セルを初期化してデータ流内で検出されるべきパタ
ーンを含ませる手段、データ流を文字ラインに入力する
手段、一致標識あるいは許容値を一致標識に入力する手
段、セルからセルのデータ流をゲートするためのクロッ
ク手段、文字とパターンとの比較の際に一致信号を発生
し、一致しない場合は一致標識をクリヤーするか、一致
ライン内の許容値を減少する各セル内の手段、および一
致ライン内の許容値の伝播を遅延する一致ライン内の付
加的なレジスタ手段を更に含んでいる。処理装置の好ま
しい一つの形態においては、直列に結合して少なくとも
一つの付加的な一致ラインを形成する一致レジスタが少
なくとも一つ各セルに設けられており、また一致ライン
間で一致標識の移動を制御して、種々の検索機能を実行
する手段が各セル内に設けられている。
より詳細には、多重一致ラインの助けによって達成され
る検索機能の一つは論理和機能であり、処理装置を多重
に通過することなくデータ流内の別のパターンが探索さ
れる。他の関連する機能は共通の接頭部を有する多重パ
ターンに対する論理和を実行することにある。例えば、
データ流内のBLACK CATまたはBLACKDO
GまたはBLACK HORSEの発生を見い出すこと
ができる。
多重一致ラインを使用して達成される他の機能は否定機
能である。これは定義されたデータ列を含むが、他の定
義された列は含まないパターンに対する検索を可能とす
る。
本発明の他の特徴に従うと、いかなる文字の固定長ある
いは可変長列(“注意不要”文字)あるいは単一の繰り
返し文字の可変長列を含むパターンに対して検索を同様
にすることができる。本発明が検索処理装置の分野にお
いて重大な進展を示したことが前述から分かるであろ
う。特に、本発明の処理装置は、検索パターンの記憶と
種々の制御フラグとに対して同等のセルを使用する種々
の検索条件に対して提供されたものである。検索が迅速
に行われ、かつ複数のパターンが検索されるべき時にパ
ターン記憶に対して最小のセルが使用される。本発明の
他の特徴および利点は、添付図面を伴った以下の詳細な
説明から明らかとなろう。
好ましい実施例の記述 概観 図面に示されるように、本発明はデータベース等からの
データ流の検索用専用処理装置に関する。第1図に示さ
れる様に、本発明が使用される環境は、参照番号1によ
って示されたホストシステムを有しており、このホスト
システム1はデータソース2、ホスト処理装置3、およ
び結果メモリ4を含んでおり、適当な詳細なアーキテク
チュアを有することができる。通常、データソース2は
高速磁気ディスク記憶システムを有し、ホスト処理装置
3は普通の汎用処理装置、およびメモリ4は普通のラン
ダムアクセスメモリである。参照番号5で示される本発
明の高速検索装置は、ライン8を介してデータソースか
らのデータを受信し、ライン9を介して結果を出力バッ
ファ10に転送し、そしてそこから低速ライン11を介
して結果メモリ4へ更に転送される。検索処理装置5は
初期化モード、検索モードおよび診断モードにおいて、
ライン12を介して受信されたホスト処理装置3からの
信号によって制御される。
初期化モードにおいて、初期値がライン12を介して検
索処理装置5にロードされている。次に、検索モードに
おいて、処理装置はライン8を介して高速で与えられた
データ流を検索し、ライン9を介して同様に高速で一致
結果を出力バッファ10に転送する。検索処理装置5の
設計目標は、データソース2のアクセス速度と同じ程度
のスピードでデータ流の検索が行われることができるこ
とにある。そうすると、複雑かつ高価な索引付け構成を
とることなく、大規模データベースを妥当な時間で連続
して検索することができる。
本発明の検索処理装置に好ましい実施例は複数の同等の
セルからなっている。3個のこのセルが第2図の20−
22に示されている。各セルの構造は第3図を参照して
簡単に説明される。しかしながら、先ず各セルが検索さ
れるべきパターンを含み、各々入力と出力とを有する文
字ライン(CHAR),初期化ライン(INIT),お
よび4つの一致ライン(M1−M4)を有していること
のみを理解することが必要とされる。これらラインはセ
ルからセルへ連続して接続されている。ライン8上のデ
ータ流内の文字は第1のセル20の文字ラインへ入力
し、そして後のクロックサイクルで、残りのセル21と
22を通してシフトされる。
第1の一致ラインM1は、主に一致結果をセルからセル
へ伝達するラインである。第4の一致ラインM4は最終
的な一致結果を運ぶのに使用され、最後のセル22から
のM4出力は第1図の結果ライン9である。一致ライン
M1上の値が零値でないことにより一致していることが
示される。一致ライン上の値が零だと、不一致であるこ
とが示される。単純な2進の一致−不一致値を運ぶので
はなく、一致ラインはより一般的な意味で使用され、一
致度を示す許容値を運ぶ。パターンの第1のセルにおい
て、この値は“3のような正の整数に初期化され、この
数だけ記憶されたパターンの文字がデータ流中の文字列
の対応する文字と異なっている場合は、この許容値は処
理装置に、文字列がパターンと一致しないことを宣言さ
せる。この許容値が変化しないで結果ライン9上に出現
する場合は、完全に一致している。データ流と記憶され
たパターンとの間の一つの文字エラー(即ち、不一致)
は出力ライン9等に値“2”を結果する。出力ライン9
における値“0”は、データ流と記録されたパターンと
の間に3個以上の文字エラーがあった場合の“不一致”
を示す。
セルの動作は比較的簡単な論理シークエンスに従い、こ
のシークエンスは各セルにおいて同じである。各クロッ
クサイクルの各セルにおいて、セル内の現在の文字がそ
のセルに事前に記憶された文字パターンと比較される。
実施例として、文字C−A−Tがそれぞれセル20−2
2に記憶された文字パターンであると仮定する。文字C
ATが入力データ流内に出現する場合は、入力するCは
第1のセル20内のパターンと一致する。文字Cが第2
セル21を通過すると、一致ラインM1上に、第1のセ
ル内での一致を示す許容値が後に続く。より正確には一
致の指示は、一致する文字データの後に続く次の文字デ
ータを伴つて第2のセルへ伝達する。文字Cの一致の後
の2クロックサイクルにおいて、入力する文字Aは第2
のセル21に導入され、このセルにおいて文字パターン
Aの一致が分かる。個々のセルのアーキテクチュアは、
第2のセル21においても同様に一致する場合は、第1
のセル20から一致ラインM1上に現れた許容値が第2
のセル21を通過するようにされている。同様に、入力
する文字Tが第3のセル22に記録されたパターンに一
致することが分かった時は、一致ラインM1上に許容値
が第3のセルから現れる。本実施例において、第3のセ
ルはパターンの最後であり、後で説明される様に、“最
終”フラグを有している。このフラグは許容値を一致ラ
インM1から一致ラインM4へ転送する効果を有してお
り、一致ラインM4から結果ライン9上に現れて、完全
な一致を示す。この比較機能をどのように達成するかは
単一セルの別の構成を説明する記述から明らかになるで
あろう。
単一の一致ラインを有するセル構造 最も簡単なセル構造は第3a図に示されるように単一の
一致ラインのみを有する。この一致ラインは2以上の許
容値を運ぶために採用され、許される不一致の度合を表
す。初期許容値は、不一致が検出された各セル位置にお
いて減少され、検索処理装置から出現して、検索パター
ンと検索されるべきデータ流内の文字列との間の一致の
度合を示す。
本明細書において、添え字“i”はM1のような入力
信号を意味し、添え字“o”はM1のような出力信号
を意味する。各論理要素80’および83’は、括弧内
の数字で示された複数の入力と一つの出力とを有する優
先順位乗算器である。
各論理要素は、その出力が関連する入力状態が真である
入力から選ばれるように作動する。論理状態は論理ボッ
クス内に省略形でセットされる。同時に一以上の論理状
態が真である場合は、最上位の入力即ち最低入力ライン
番号を有する入力が出力として選ばれる。これら論理要
素の動作はすぐ明らかになる。
セルは許容度レジスタ217’、パターンレジスタ21
8’、マスクレジスタ219’、文字レジスタ214’
および比較器220’を含んでいる。単一の一致ライン
は入力論理要素80’、M1一致レジスタ87’第2の
論理要素83’、減算回路92’を含んでいる。
入力論理回路80’は二つのみの入力を有している。即
ち、レジスタが零値を有さない場合に発せられる許容度
レジスタからの入力と、M1入力ラインM1とであ
る。許容度レジスタが零値を含む場合のみに一致レジス
タ87’にM1がロードされる。論理回路要素83’
は、パターンと文字レジスタとの間に一致がない場合に
許容値を減少する。遅延レジスタ91’はタイミングプ
セロセスにおいて必要とされが、このことは以下の簡単
な検索例から明らかになるだろう。別の構造のセル構造
の初期化が以下に記述される方法で達成される。
第3a図において、許容度レジスタ217’と比較器2
20’との出力は、図において点線で示されるように論
理回路80’と83’とに接続されている。これら出力
は図示されていないが論理要素80’、83’内部の論
理回路に接続されており、これら論理回路は要素内の論
理表現を実行する。換言すれば、許容度レジスタの内容
と比較器の出力とが論理要素80’および83’に転送
されて、これら要素の入力を選択するのに使用される。
簡単な検索機能 第3a図の単一一致ラインM1のみを使用することによ
って簡単な検索ができる。検索の機構は第4図に示され
るように、特例によるのが最もよく説明できる。c
およびcによって示される三つの連続したセルが
入力するデータストリームにおいて検索されるべきパタ
ーンで初期化される。実施例においては、検索パターン
は語CATである。セルのパターンレジスタ218は、
それぞれ、文字C,A,およびTを含んでいる。長さレ
ジスタ215、フラグ216およびマスクレジスタ21
9はこの実施例においては使用されない。第1のセル
(c)に対する許容度レジスタに所望の一致許容値が
ロードされる。この実施例においては、許容値は“1”
であると仮定される。“1”は完全な一致が望まれると
いうことを意味する。他のセルの許容度レジスタは零に
セットされる。許容値が零でない場合のみ、論理要素8
0’の入力(1)を通して、許容度レジスタ値がM1一
致ラインに導入される。従って、新たな文字がクロック
に従って第1のセル内の導入される毎に、許容値“1”
が第1のセルのM1レジスタに導入される。
初期化の後、セルは以下の内容を有する。
パターン C A T マスク U U U 許容値 1 0 0 最終フラグ 0 0 1 大文字、小文字に関わらず、一致しているものとするビ
ットセットをマスクフラグは有している。これは文字U
で示されている。
一致処理において重要な役割が、L1論理要素83’
および遅延レジスタ91’において演じられる。文字レ
ジスタ214およびパターンレジスタ218’との間に
一致が無い場合は、入力(1)が論理要素において選択さ
れ、許容値は減少回路92’において零に減少される。
(減少回路92’は許容値が零以下に減少しないように
設計されている。)従って、いかなるセルにおいても一
致が起こらないと、M1一致ライン内の許容値が零にな
る。一致が見出されると、入力(2)がL1論理要素8
3’において選択され、許容値は減少されない。
文字Cが第1のセルCに入力される場合、一致が見出
され、許容値“1”が遅延レジスタ91’へ通過する。
遅延レジスタ91’の目的はM1一位ライン上の許容値
の伝播速度が文字ラインのデータの伝播速度と同期する
ことにある。n個の文字の検索パターンに対して、デー
タ流が検索パターンを完全に通過するのにn個の文字列
に対して2nクロックサイクル必要とされる。従って、
最後のデータ流の文字が現れた時に、M1一致ライン値
が、文字クロック速度の半分でラインに沿って進むこと
を要求する一致結果が処理装置から出力される。各セル
位置における遅延レジスタはこのタイミング差を処理す
る。二つの隣接する文字の一致の間に発生しなければな
らないクロックサイクルの数を考えることによっても、
遅延の必要が理解される。第4図のライン(b)に示さ
れるようにセルC内のCが一致した後は、Aが、ライ
ン(d)に示されるように一致検出セルCに配列する
以前に、二つのクロックサイクルが発生しなければなら
ない。
第4図のライン(a)において、検索パターンに近づく
文字CATXが示されている。各セル内の二つの数は、
それぞれM1レジスタおよび遅延レジスタの許容値を表
している。これら許容値は始めは全て零である。ライン
(b)において、文字Cは第1のセルcに進み、
“1”はM1レジスタに導入される。ライン(c)にお
いて、文字Cは第2のセルcに進み、文字Aは第1の
セルcに置かれる。前のラインにおいて第1のセルc
に一致があったので、許容値“1”はこのセルの遅延
レジスタへ進む。次のクロックサイクルにおいて、ライ
ン(d)上に示される様に、第1のセルの遅延レジスタ
からの“1”は第2のセルcのM1レジスタ内にシフ
トされる。ここで、データ文字Aは検索パターンAと整
列する。次のサイクルにおいて、ライン(e)上で、以
前に第2のセルcにおいて一致があったので“1”は
第2のセルcの遅延レジスタに進む。次のサイクルに
おいて、ライン(f)上で、“1”がM1レジスタに伝
播される。ここで、T文字が一致する。ライン(g)内
で、第3のセルcにおいて前に一致があったので、
“1”が第3のセルcの遅延レジスタへ移動する。ラ
イン(h)に示されのが最終段階である。この段階にお
いて許容値“1”が文字Xを伴つて検索パターンから現
れる。この許容値はデータ流内に位置したパターンに直
ちに続く。一致がパターンの各連続するセル内において
検出された場合のみ許容値がセルの検索パターンを横切
って伝達する。“1”以上の許容値が検索パターンの第
1の文字内に導入された場合は、1以上のエラーがデー
タ流において許容される。従って、許容値“3”が使用
された場合はCATは結果“3”を、COTは結果
“2”を、そしてCOPは結果“1”を発生する。各エ
ラーは許容値を“1”だけ減少する。三文字パターンの
場合は、許容値が零に減少するには全ての三文字が誤っ
ていなければならない。単一の一致ラインを使用する簡
単な検索は上述したようにして行われるが、複数の一致
ラインが使用されるとより強力な検索処理装置が得られ
る。次の章はこの様な処理装置のセル構造を記述する。
多数の一致ライン−概要 以上に述べた簡単な検索動作は、所望の高い速度で行な
われるが、実行できる検索の形式には或る程度の制限が
ある。例えば、CAT又はDOGというような簡単な論
理和検索では、簡単な検索技術を使用する場合、データ
流を2回処理することが必要である。
本発明の重要な特徴によれば、サーチプロセッサに拡張
機能を与えるために多数の一致ラインが使用される。第
2及び第3の検索ラインは、主として、一致結果を一時
的に記憶するためのレジスタとして使用される。多数の
一致ラインをこのように使用する場合、ラインを分割し
たり、ラインの一部分を交換したり、ラインを結合した
り、等々を行なえるようにするために、一致ラインに対
して多数の操作機能が必要とされる。これらの基本的な
機能は、以下で説明するように、各セルのフラグレジス
タに記憶されたフラグによって制御される。
多数の一致ラインを有するセル構造 第3図に示すように、各セルは、以下に述べるよう機能
する7個の論理ブロック80ないし86と、4個の一致
レジスタ87ないし90と、遅延レジスタ91と、2つ
の減少回路92及び93とを備えている。
第3a図の説明の場合と同様に、記号の最後に付けた
“i”は、例えばM1のように、入力信号を表わし、
そして記号の最後に付けた“o”は、例えばM1のよ
うに、出力信号を表わす。又、記号の最後に付けた
“a”及び“b”は、入力と出力との間の中間信号を表
わす。論理素子80〜86の各々は、かっこ内の数字で
示された多数の入力と1つの出力とを有する優先順位乗
算器である。各論理素子は、当該入力論理状態が真であ
るような入力から出力が選択されるものとする。論理状
態は、論理ボックス内に省略形態で示されており、以下
で更に詳しく述べる。2つ以上の入力論理状態が同時に
真である場合には、最も上の入力、即ち、入力ライン番
号の最も小さい入力が出力として選択される。これら論
理素子の動作は、以下で明らかとなろう。
第1の一致入力ラインM1は、論理素子80の入力
(3)に接続される。この論理素子はL1とも示されて
いる。この素子の出力は、M1一致レジスタ87へ送ら
れ、このレジスタから論理素子83への2つの入力が与
えられる。論理素子83の入力(1)は、回路92におい
てM1レジスタの値を減少することによって与えられそ
して入力(2)はM1レジスタ87から直接与えられる。
L1とも示された論理素子83の出力は遅延レジスタ
91を通り、論理素子85(L1)の入力(4)として
接続される。論理素子85の出力は、第1の一致ライン
出力M1である。第1の一致ラインに対する交互の経
路は、論理素子83の出力から論理素子L180の入
力(4)へ至るフィードバック経路と、論理素子83の出
力から遅延回路91へバイパスして論理素子L185
の入力(3)へ至る経路である。
第2の一致ラインM2の入力は、論理素子81の入力
(1)及び(2)と、論理素子80の入力(2)とに接続され
る。L2とも示された論理素子81の出力は、M
致レジスタ88へ接続され、そして論理素子84の入力
(3)へ接続(直結)されると共に、この素子の入力(2)へ
(減少回路93を経て)接続される。L2とも示され
た論理素子84の出力は、第2の一致ライン出力信号M
であり、これは、入力論理素子L281の入力
(4)へフィードバックされる。素子L2の入力(2)は強
制ゼロ値であり、論理素子L284の入力(1)は、M
1一致レジスタ87から得られた値M1aの出力である。
例えば、第3b図は、L2論理素子81を詳細に示し
ている。基本的に、この論理素子は、優先順位エンコー
ダ250及びマルチプレクサ252を備えている。エンコ
ーダ250は、4本の入力ライン254ないし257を
有し、これらのラインは、各ブロック258ないし26
1に示された論理式によりそれらの2進入力を導き出
す。1つのブロック内の式が真である時には、それに対
応する入力ラインに“1”の入力信号が発生される。1
つの入力のみが“1”である時には、その位置がエンコ
ーダ250によりアドレス信号出力に変換され、これが
ライン266を経てマルチプレクサ252へ送られる。
2つ以上の入力が“1”である場合には、優先順位エン
コーダ250が上部のブロックに最も近い入力ライン、
即ち、参照番号の最も小さいラインを選択する。マルチ
プレクサ252は、一般にそうであるように作動し、ラ
イン266を経て送られたアドレスを、4中1(4つの
中から1つを選ぶ)の内部選択信号に変換し、これを用
いて、4本の入力ライン270−273の1つが選択さ
れ、マルチプレクサから出力される。第3図の他の論理
素子は、実質的に同様に作動する。
第3の一致ライン入力M3は、L3とも示された論
理素子82の入力(2)に接続される。その入力(1)は、M
信号である。論理素子L3の出力は、M3一致レ
ジスタ89に接続され、ここから出力ラインM3に接
続される。
第4の一致ライン入力M4は、M4一致レジスタ90
へ唯一の入力として接続され、その出力は、L4とも
示された論理素子86へ入力(2)として接続される。論
理素子L4の入力(1)は、第1の一致ライン出力M1
から送られそしてその出力は第4の一致ラインでM4
となる。
又、セル構造体は、第1及び第2の初期化レジスタ21
0及び211も備えている。入力初期化ラインINIT
は、第1の初期化レジスタ210に接続され、その出力
は第2のレジスタ211へ接続され、そしてこのレジス
タから出力初期化ラインINITが導出される。初期
化状態アキュムレータ212は、レジスタ210と21
1との間のラインに接続されている。
CHARと示された文字入力ラインは、文字レジスタ
214の入力となる。文字ラインには多数の他の蓄積レ
ジスタが接続されて示されている。というのは、これら
レジスタ値が文字ラインによって初期化されるからであ
る。これらのレジスタには、長さレジスタ215、フラ
グレジスタ216、許容度レジスタ217、パターンレ
ジスタ218及びマスクレジスタ219が含まれる。比
較器220は、パターンレジスタ218、文字ライン及
びマスクレジスタ219からデータを受け取る。基本的
に、この比較器220は、文字レジスタ214内のデー
タを、パターンレジスタ218内のデータと比較すると
共に、マスクレジスタ219に記憶されたマスクとも比
較する。まだ説明していないセル内の素子は、カウンタ
論理回路222である。この回路は、長さレジスタ21
5及びフラグレジスタ216内の幾つかのフラグに関連
して作動し、検索機能に使用される内部カウンタを制御
する。
全ての検索機能及び状態は、第3図の基本的なセル構成
図から理解できよう。フラグレジスタ216内の特定の
フラグは、特定の機能について述べる時に説明する。
以上の説明から、第3a図について述べた簡単な検索機
能は、第3図のセル構造体を用いて同様に実行できるこ
とが理解されよう。唯一の相違点は、プロセッサが多数
の一致ラインを使用することにより、M4一致ラインが
結果ラインとして使用されることである。或るセル、通
常は検索パターンの最後セルにおいて、最後のフラグが
セットされた時には、M1ラインの許容値がM4ライン
に転送される。これが第5図に示されている。第5図
は、相互接続されたセルを経て許容値がいかに伝播され
るかを概略的に示した一致線図である。図示されたよう
に、許容値は、セルCに達するまでM1一致ラインに
沿って伝播する。次いで、最後のフラグが生じると、許
容値がM4一致ラインに転送される。第3図において
は、これがM4論理回路86の入力(1)を通る経路で
ある。又、許容値を使用せずに同じセル構造を使用でき
ることも理解されたい。この特定の場合には、許容値が
常に最初1となる。許容値に対する最初の減少動作によ
り、許容値が実際上ゼロにクリヤされ、不一致を示す。
フラグ 各セルのフラグレジスタ216内の1ビットフィールド
を示すフラグのリストは、次の通りである。
P パスフラグ B ブラケットフラグ O オアフラグ C 選択フラグ R 肯定フラグ N 否定フラグ I 無限フラグ L 最後フラグ 簡単な論理和検索に使用する。フラグについて先ず説明
する。他のフラグは、その後で説明する。
ブラケットフラグ ブラケット(かっこ)フラグは、M1一致ラインの分割
即ち分岐を行なう。この機能を実行するには専用のセル
が必要とされる。換言すれば、ブラケットフラグがセッ
トされた状態では、パターン文字をセルに記憶すること
ができない、その作用は、M1レジスタの出力(M1
出力)を同じセルのM2のM2出力ラインに転送する
ことである。M2一致ラインでは、ブラケットフラグが
セットされた時、M2入力ラインからM2レジスタに
ロードされる値が無視される。ブラケットフラグの作用
は、L2論理素子84の入力(1)に送られるものとし
てM1出力を示した第3図から明らかとなろう。
パスフラグ パスフラグは、M1一致ラインの遅延レジスタ91をバ
イパスする必要があるようなセルにおいてセットされ
る。通常は、M1一致ラインの許容値は、文字伝播速度
の半分の速度でセルからセルへ伝播するのが望ましい。
然し乍ら、或るセルにおいて遅延回路をバイパスする必
要が例外的に生じる。
このような例外の1つは、ブラケットフラグがセットさ
れると共にパターン一致機能が実行されないような特殊
目的のセルである。パスフラグの別の使い方は、これを
パターンの最後の文字に使用することである。このセル
においてバイパスフラグがセットされた場合には、パタ
ーンの次に続く文字ではなくて、最後の文字で結果が得
られる。これは、或る場合には非常に便利である。パス
フラグの更に別の使い方は、後述の可変長さの“注意不
要(doun't care)”動作に関連したものである。
許容度レジスタ 許容度レジスタ217はフラグではなく、即ち、フラグ
レジスタとは別のレジスタである。このレジスタは、パ
ターン検索で許容される最大の不一致程度を示す正の整
数で初期化される。この許容値は、典型的に、当該パタ
ーンの最初の文字のみに対してセッとされる。許容度レ
ジスタの値は、これがゼロでない場合、L1論理素子
80の入力(1)で示されたようにM1一致レジスタ87
にロードされる。パターンの大部分のセルについてそう
であるように、許容度レジスタがゼロである場合には、
M1一致レジスタの入力が通常M1入力一致ラインM1
から得られる。
最終フラグ 最終フラグは、検索すべきパターンの最後の文字におい
てセットされる。最終フラグがセットされたセルにおい
ては、M1遅延レジスタ91の値とM4一致レジスタ9
0の値が比較され、その大きい方がM4出力ラインM4
に出力される。これは第3図から明らかであり、最終
フラグがセットされそしてM1>M4である場合に
L4論理素子86の第1入力がM1から得られる。
M4は、M4一致レジスタ90からの出力である。以
下で述べるように、最終フラグの機能は、論理和演算に
も使用される。
基本的な論理和検索 基本的な論理和検索の目的は、検索されているデータ流
において2つ以上の別々のパターンを検索することであ
る。例えば、CATまたはDOGまたはMANというロ
ードの発生を検索しようとする。一本の一致ラインのみ
を用いた簡単な検索では、この論理和機能を実行するの
に全データ流を3回処理することが必要である。本発明
では、一致ラインM4並びに許容度レジスタ217及び
最終フラグを用いて論理和検索が行なわれる。
第6図に示すように、第1のパターンCATは、通常の
やり方でセルに現われる。文字Cは許容度レジスタを所
望値にセットしそして最後の文字Tは最終フラグをセッ
トする。従って、CATの一致結果は、M4一致ライン
に転送される。一致結果は、検索されているデータ流の
最後に一致した文字に続く文字と共にパターンの最後の
セルから導出されることを想起されたい。例えば、CA
Tに続く文字がXであると仮定すれば、この文字XがT
セルから出力される。M4一致ラインは1つのレジスタ
しか有していないので、一致の値は、データ流の文字X
と同期してM4一致ラインに沿って伝播する。
論理和機能が要求されるので、CATパターンからの一
致結果がDOGパターンの検索と関連しないのが重要で
ある。この場合には、最初のパターンに一致があったか
というかに拘りなく、DOGパターンの最初の文字によ
り許容値を或る選択された値にリセットしなければなら
ない。それ故、DOGの文字D及びMANの文字Mがそ
れらの許容度レジスタを所望値に初期化する。又、DO
Gパターンの最後のセルGは、その最終フラグをセット
し、DOG検索の結果をM4一致ラインに転送させる。
ほとんどの論理和検索の場合、これによってM4一致ラ
インの結果に矛盾を生じることはない、というのは、D
OG検索の結果がM4ラインに到達する時までにCAT
検索の結果がプロセッサから送り出されてしまうからで
ある。換言すれば、CAT検索及びDOG検索の結果は
別々の時間にプロセッサから送り出される。
或る検索形態では、M4ラインの検索結果と、M4ライ
ンに転送されようとしている検索結果とが競合するおそ
れを考慮するため、最終フラグ論理によりM4ラインの
出力として大きい方の一致値が選択される。これが、論
理素子86(L4)の入力(1)についての入力論理で
示されている。M4ライン上の結果のこのような競合
は、2つの論理和される検索パターンが同じ長さのもの
であって且つ検索に対して選択された許容度内でほゞ同
じである時しか生じない。例えば、2以上の許容値でD
OGまたはLOGを検索する場合、両論理和経路はデー
タ流にDOGが現われた時に一致を検出する。DOGは
厳密に一致しそしてLOGは低い許容度で一致するが、
M4ラインに対して両方の一致結果が競合し、そこで、
許容度の大きい方が選択される。
第3の論理和パターンMANが追加された場合にも同様
に処理が行なわれる。このパターンの文字Mは、論理和
のための許容値をリセットしそしてこのパターンの文字
Nは、その最終フラグをセットし、一致結果をM4ライ
ンに転送させる。
論理和フラグ 論理和フラグは、3本の一致ラインM1、M2及びM3
に作用する。論理和フラグがセットされたセルにクロッ
クパルスが生じた時に、ラインM2のM2入力値がM
1一致レジスタ87にロードされそしてラインM1
M1入力値がM3一致レジスタ89にロードされる。こ
れらの信号路は第3図において容易に明らかであり、L
論理素子82の(1)入力は論理和フラグがセットさ
れた時にM1から供給される。論理和フラグがセット
され且つその他の幾つかの論理状態が真である時には、
M1一致レジスタの入力としてM2値が選択される。
ブラケットフラグに続いて論理和フラグを使用した時に
は、M2一致ラインにセーブされた前の結果を検出でき
ると同時に、現在のM1一致結果をM3一致ラインにセ
ーブすることができる。論理和フラグの重要性は、選択
フラグの後に述べる例から明らかとなろう。
選択フラグ 選択フラグは、第1一致ラインの出力であるラインM1
に作用する。選択フラグがセットされたセルに各クロ
ックパルスが生じるたびに、M3一致レジスタ88の値
とM1遅延レジスタ91の値が比較され、その大きい方
の値がM1出力ラインに出力される。この選択は、L
論理素子85の入力(2)において行なわれる。パス
フラグがセットされると共に論理和フラグがセットされ
た場合には、M3遅延レジスタ91がバイパスされ、M
1一致レジスタ87からラインM1に送られる出力と
M3とが比較される。
共通接頭部の論理和検索 共通接頭部の論理和検索は、別々の各パターンが共通の
接頭部パターンを有するような論理和検索である。例え
ば、OLD CATまたはOLDDOGまたはOLD
MANの発生を検索しようとしていると仮定する。これ
は、長い検索パターンとしては平凡なものであると考え
られるが、検索パターンでは接頭部を何回も繰り返さな
いようにすることが望ましい。共通接頭部の検索は、第
7図に示すように、ブラケットフラグ、論理和フラグ及
び選択フラグによってこの問題を解消する。
共通接頭部パターンOLDは、検索パターンに最初に現
われ、接頭部検索の結果は、簡単な検索の場合と同様に
M1一致ラインに現われる。接頭部後の次のセルは、ブ
ラケットフラグ及びパスフラグの両方がセットされたブ
ラケットセルである。前記したように、これはM1許容
値を分割し、これをM2ライン及び次のセルのM1ライ
ンに与える。検索パターンの次のセグメントにおいて
は、第1の接尾部パターンCATが検索され、このセグ
メントの最後のセル(T)によりOLDCAT検索を表
わす結果が与えられる。検索パターンの次のセグメント
の第1セルであるDセルは、論理和フラグがセットされ
ており、これにより、OLD CATの結果がM3一致
ラインにセーブされると共に、接頭部検索結果(OL
D)がM2一致ラインから検索される。
検索の第3セグメントは、OLD DOGの検索を行な
うもので、OLDの検索結果をM2一致ラインに伝播す
ると共に、OLD CATの検索結果をM3検索ライン
に伝播する。第3セグメントの最後の文字であるGセル
は、その選択フラグがセットされている。一般の場合に
は、これにより、M3値とM1値の大きい方が選択され
る。然し乍ら、ほとんどの実際的な状態においては、M
3の値とM1の値とが矛盾することはない。
OLD DOGに対して次の一致がみつかる時までにO
LD CATに対して一致がみつかった場合には、OL
D CATの一致の値がプロセッサから送り出される。
選択機能は、OLD CATの一致の値をM3から取り
出すか或いは予めM1にあるOLD DOGの一致の値
を取り上げ、これをM1ラインに出力する。
検索パターンの第4のセグメントは、第3のセグメント
と同様に働く。第1セルであるMセルは、その論理和フ
ラグがセットされており、M1の一致の値を再びM3に
セーブすると共に、接頭部の一致の値をM2から検索す
る。第4のセグメントにおいては、OLD MANパタ
ーンに対して一致をみつける動作が進められ、Nセルに
おいては、再び選択フラグにより、M1ラインに送られ
るOLD MANの一致の値と、ラインM3に送られる
OLD CAT又はOLD DOGの一致の値との間で
選択が行なわれる。この場合も、パターンの長さが同じ
で且つその内容がほゞ同様のものでない限り、別々のパ
ターンが2つ同時に一致することはほとんどない。
この説明においては、検索パターンの接頭部と接尾部と
の間のスペースは無視する。これを行なう1つの簡単な
方法は、スペースを共通接頭部の1部として考えること
である。更に別の方法は、後述の“注意不要”機能を実
行し、検索パターンに埋もれたスペースを無視すること
である。
“注意不要”文字列 検索パターンに埋もれた文字列を無視するために共通検
索が要求される。無視すべき文字は、しばしば、“注意
不要”文字と称する。これには、一定の長さの注意不要
文字列と、可変長さの注意不要文字列との2つの場合が
ある。
一定長さの注意不要文字列の場合は、選択されたセルの
マスクレジスタ219を用いて容易に処理できる。例え
ば、特定の日付を検索する場合で、その月の何日である
かが重要でない場合には、検索パターンは、MARCH
XX1972となる。ここで、XXは、注意不要文字
を表わす。その月の日に対応する検索パターンの2つの
セルにおいてマスクレジスタの全ビットをセットするこ
とにより検索を行なうことができる。マスクレジスタの
セットされた位置に対応する文字レジスタのビット位置
は、比較プロセスにおいて無視される。マスクレジスタ
の全ビットがセットされた場合には、文字レジスタの内
容に拘りなく、そのセルの一致が確保される。
可変長さの注意不要機能は、マスクレジスタビットが全
てセットされた特殊なセルによりこの同じセル内のカウ
ンタ及び長さレジスタ215に関連して動作することに
よって実行される。“注意不要”セルは、検索パターン
において可変長さの注意不要文字列が許容される位置に
入れられる。例えば“1972.”の前の10個の文字
内にある“MARCH”を検索しようとする場合を考え
る。検索パターンは、MARCH*1972となる。ア
スタリスクマーク(*)は、“注意不要”セルを表わ
す。*セルは、その長さカウンタが10個の注意不要カ
ウントに対応する値に初期化されている。
データ流においてMARCHのパターンに一致した後、
M1一致ライン上の非ゼロの許容値により、長さレジス
タに記憶された値−この場合は10−がカウンタにロー
ドされる。これは、第3図に示されたカウンタの第2の
ロード状態とは異なる。その後“注意不要”セルを通る
10個までの文字によりカウンタが減少される。その
間、パターンMARCHの一致により得られたM1一致
結果がそのセル自体において循環される。この循環の機
構をなすのは、論理ユニット83の出力からL1論理
素子の入力(4)へ送られるフィードバック信号M1
ある。それ故、*セルの作用は、この循環された一致の
値をM1ラインに10回まで送信することである。次
に続く文字がパターンの第2部分(1972)の“1”
に一致しない場合には、一致の値が通常の方法で減少さ
れ、パターンの終りから一致結果が生じない。文字列1
972が指定の10個の文字内で文字列MARCHの後
に続く場合には、*セルによって出力された10個の一
致値の1つが検索パターンを通して完全に伝播され、指
定の注意不要範囲内に一致があることを指示する。
可変長さの注意不要検索の変更は、注意不要セルのパス
フラグをセットすることによって行なわれる。これによ
り、2つの検索パターンの間に長さゼロの注意不要領域
を入れることができる。換言すれば、注意不要文字の数
は、1から選択された数までではなく、ゼロから選択さ
れた数までとなる。
これに関連した検索状態は、文字列において特殊な文字
が繰り返し生じるような“可変長さの注意要”状態であ
る。例えば、5個までのスペースで分離されたFATと
CATを見つけようとする場合を考える。この場合、検
索パターンは、FAT CATであり、第4のセルはス
ペース文字を含んでおり、そのバスフラグはセットされ
ていない。このセルの長さレジスタは値5に初期化さ
れ、この値は、第1のパターン部分(FAT)において
一致が見つかった時にカウンタにロードされる。第1の
パターン部分からの一致の値は、ワードFATとCAT
との間にスペースが現われる限り、カウンタの減少中に
5回循環される。この第1のパターン部分の5個のスペ
ース内に第2のパターン部分(CAT)が現われ、この
第2のパターン部分が検出された場合には、これらの循
環された一致値の1つがそのパターンを通して完全に伝
播される。
この形式の検索、即ち、可変長さの注意要の検索は、長
さゼロまで実行することができない。長さゼロは、“注
意不要”状態を意味し、一方、“注意要”検索は、特定
文字の検索を必要とする。従って、この種の検索では、
パスフラグをセットすることができない。
否定フラグ 否定フラグは、(1)M2一致レジスタ内の値をM1出力
ラインM1に繰り返し出力しそして(2)M2入力ライ
ンM2を経て入って来る値がその手前の値M2より
大きい場合に、そのM2の値をM2一致レジスタにロ
ードするという機能を発揮する。入って来るM2の値
がその手前の値より大きくない場合には、M1がゼロ
であるか非ゼロであるかによってM2がそのまゝ保持さ
れるか或いはゼロにされる。これらの別々の動作の実行
は、第8図に示した例から明らかとなろう。
否定フラグは、或る文字列が入って来るデータ流に存在
しない場合に一致であると考えられるパターンを形成す
るのに使用される。例えば、FATとCATとの間にワ
ードBLACKをもたないようなワードFAT CAT
を見つける場合について考える。換言すれば、FAT
BLACKCATでは一致しないが、FAT WHIT
E CATは一致するものとする。サーチパターンは、
FAT〔BLACKnCATとなる。但し、〔は、ブラ
ケットフラグがセットされたセルであり、nは、否定フ
ラグがセットされたセルである。
最初のパターンセグメント(FAT)がデータ流におい
て検索された場合には、一致の値がブラケットフラグの
作用によりM2一致ラインに送られると共に、M1一致
ラインに保持される。然し乍ら、許容値は、第2セグメ
ント(BLACK)の第1セルにおいてリセットされ
る。それ故、第2のパターンセグメント(BLACK)
の終りに、M1一致ラインは、データ流においてパター
ンBLACKが見つかったかどうかの指示を送る。M2
の入力一致ラインは、第1のパターンセグメント(F
AT)の一致が見つかったかどうかを指示する。M2
がその手前の値より大きい時は、一致が指示され、M2
一致レジスタがロードされる。このロード段階は、L2
論理素子81の入力(1)を経て行なわれる。BLAC
Kが見つからない限り、否定セルは、そのM2一致レジ
スタの値を循環し続け、この値をM1一致ラインに転送
する。M1一致ラインへの転送は、L1論理ユニット
85の入力(1)を経て行なわれる。M2値の循環は、L
論理素子81の入力(4)を経て行なわれる。第3セ
グメント(CAT)に対して一致が見つかった場合に
は、非ゼロの一致値が通常のやり方でプロセッサから送
り出される。
BLACKに対して一致が見つかった場合には、非ゼロ
の一致値がM1ラインを経て否定セルへ送られ、これ
により、ゼロ値がM2一致レジスタに入力される。この
動作は、L2論理素子81の入力(2)にゼロが送られ
た結果として行なわれる。ゼロの一致値は否定セルのM
1一致ラインに転送され、最後のセグメントが一致する
かどうかに拘りなく、全パターンに対して一致を見つけ
ることはできない。
要約すれば、否定論理は主として、L2論理素子81
がどのように構成されているかに基づいて機能する。否
定セルにおいてM2レジスタが最初にロードされた時に
は入力(1)が選択され、不所望なパターンセグメントの
一致が見つかった時には入力(2)が選択され、そしてM
2値が循環される時には入力(4)が選択される。検索の
最終結果をM4結果ラインに転送するためには、検索パ
ターンの最後のセルの最終フラグがセットされねばなら
ないことを理解されたい。
肯定フラグ 肯定フラグは、長さカウンタに関連して機能し、否定フ
ラグと幾つかの点で同様の機能を果たす。M2一致ライ
ンを経て入って来る値M2が非ゼロの場合には、これ
がM1一致レジスタにロードされる。これは、L2
理素子80の入力(2)を経て行なわれる。M1一致レジ
スタの値がゼロであるか或いは長さカウンタがゼロに達
した場合には、M2一致レジスタにロードされた値が1
だけ減少され、M1出力ラインを経て出力される。さ
もなくば、即ち、M1がゼロでなくカウンタがゼロでな
ければ、M2一致レジスタにロードされた値がM1
力カウンタに直接出力される。M2からM1出力ライ
ンに出力される値は、L2論理素子81の入力(4)を
経てM2一致レジスタへ再循環される。
M2ラインを経て入って来る値は、その手前のM2値
(M2)より大きい場合だけM2一致レジスタにロー
ドされる。これは、L2論理素子81の入力(1)によ
って行なわれ、否定フラグの場合と動作的に同様であ
る。
肯定フラグは、多数の種々の特定の文字を色々に混合で
きるように、検索パターンに含まれる可変長さの注意要
の文字列の考え方を拡張する方法をもたらす。その例が
第9図に示されている。検索パターンがJEAN−PA
ULという名前を含むものと仮定する。ハイフン(−)
はスペースやタブ文字やそれらの組合せと取り替えても
よい。従って、理想的な検索パターンは、多数の指定の
文字を指定の数だけ組み合わせたもの、例えば、ハイフ
ン、スペース及びタブを含むが他の文字は含まないよう
な5個の文字がデータ流に存在する場合に、一致を見い
出す。肯定フラグは、このような機能を実行できるよう
にする。
記憶される検索パターンは、JEAN〔−t〕PAUL
である。但し、〔はブラケットフラグがセットされたセ
ルであり、tはタブ文字でありそして〕は肯定フラグが
セットされたセルである。このパターンの第1セグメン
ト(JEAN)は、通常のやり方でM1一致ラインに一
致の値を発生する。次いで、ブラケットセルは、この値
をM2一致ラインにコピーする。ブラケットに続く次の
セルについては、許容度レジスタが1にセットされ、従
って、ブラケットに続く文字のサーチでは、ブラケット
と、肯定フラグがセットされたセルとの間で、選択され
た文字の1つが厳密に一致する必要がある。ハイフンを
含むセルは、論理和フラグ及び選択フラグの両方がセッ
トされている。論理和フラグにより、M1の値がM3
に転送されそしてM2の値がM1にコピーされる。次
いで、同じセル内の選択フラグにより、M3の値とM1
の値の大きい方が選択される。タブ文字を含む次のセル
も、論理和フラグ及び選択フラグがセットされており、
その前のセルと同様に作動する。この点までは、検索パ
ターンは、共通接頭部の論理和サーチに使用されたもの
と非常に良く似ている。3つの文字のいずれか1つが検
出された場合には、M1一致ラインに非ゼロの出力が発
生される。
肯定フラグがセットされた次のセルは、“閉じブラケッ
ト”と考えることができる。M2ラインの入力が非ゼ
ロであって、接頭部の一致を指示する場合には、長さレ
ジスタの値がカウンタにロードされる。M1ラインも
一致を指示し、3つの指定の文字の1つが接頭部に続く
ことを意味する場合には、M2の一致値が再循環され、
接頭部パターンセグメントの一致検出に用いるためにM
1一致ラインへ転送される。M1ラインが一致を指示
しない場合、即ち、3つの指定文字の1つではない文字
が接頭部に続く場合には、M2の値が1だけ減少され、
再循環され、M1一致ラインに転送される。
第1のパターンセグメントに続く各文字が指定文字の1
つでありそしてこれらの後続文字の数が指定数を越えな
い場合には、肯定フラグを有するセルが一致の指示を発
生し続ける。データ流に別の文字が介入されるか或いは
カウント値がゼロまで下がった場合には、許容値が減少
され、セルの出力は不一致を指示する。
肯定フラグを伴なう動作は、第3図の論理回路の当該部
分を追跡していくことによって良く理解されよう。カウ
ンタのロード作動は、カウンタ論理回路の第1ロード状
態によって開始される。非ゼロのM2許容度を肯定フラ
グセルのM1一致ラインへ戻す転送動作は、M2が非
ゼロの時に選択される入力であるL1論理素子の入力
(2)によって行なわれる。
カウンタがロードされた後、M1ラインは通常ゼロに
復帰しなければならず、カウンタは各サイクルごとに減
少される。次いで、M1レジスタは、L1論理素子の
入力(3)によって指示されたようにM2ラインではな
くM1ラインからその入力を取り出す。
肯定フラグセルにおいては、ラインM2のM2一致出
力が常にL1論理素子85の入力(1)を経てM1
インへ転送される。転送される出力の値は、M1一致レ
ジスタ87(M1)の状態と、カウンタの状態とによ
って決定される。
M1又はカウンタがゼロである場合には、ブラケット
内で現在一致が生じないか、或いは、M2の一致結果が
その選択された回数以上M1へ出力されているかのいず
れかであることが指示される。いずれにせよ、M1
インに次の出力が送られる前にM2の一致値が減少され
る。M1が非ゼロであって、ブラケット間で一致する
文字が見つかりそしてカウンタがゼロでないことを示す
場合には、M2ラインを変更することなく、M2の一致
値が再循環される。
肯定フラグセルにおけるM2値の再循環は、L2論理
素子81の入力(4)を通して行なわれる。M2値の減少
は、L2論理素子84の入力(2)によって選択された
減少回路93により行なわれる。
初期化 検索セルの初期化は、第10図に示すようにカウンタ3
00及びデコーダ302を含む初期化論理回路によって
制御される。カウンタ300は、同期2進型のものであ
り、ライン304には3ビットの出力が供給され、ライ
ン306には別々のカウント可能化制御信号が送られそ
してライン308にはカウントをゼロから再開される信
号が送られる。2進カウンタの値は、ライン304を経
てデコーダ302へ送られる入力となる。カウンタの値
が0と4との間にある時に選択されるデコーダの最初の
5つの出力は、初期化中にプログラムされるべき5個の
レジスタのクロックラインを形成される。第6番目の出
力は、未使用のまゝであり、従って、初期化処理の1つ
においてセルに影響を及ぼすことなく外部回路を初期化
することができる。第7番目の出力は、セルを検索モー
ドに入れると共にカウンタを作動状態にするように使用
され、この第7番目の出力は、次のリセットサイクルま
で作用可能な状態に保たれる。
初期化カウンタ300は、以上の2つの条件に合致した
時だけ、このカウンタに送られるクロック信号CLKI
の立下り縁でタイミングどりされる。第1の条件は、前
記したようにカウンタがまだ7に達していないことであ
る。そして第2の条件は、信号CLKIの手前の立上り
縁においてINITIラインに信号が与えられることで
ある。これは、単に、セル内のINITI−INITO
接続部にD型フリップ−フロップ210の出力が生じる
ことを意味する。このフリップ−フロップの出力は、ア
ンドゲート310の一方の入力として接続され、その他
方の入力はデコーダ302の第7出力から送られる。ア
ンドゲート310の出力は、カウンタ300の作動可能
化ライン306である。
第10図に示すように、文字レジスタ214の出力は、
初期化中に各レジスタへロードされるデータとなる。文
字レジスタの出力は、信号CLKIの立上り縁の後に有効と
なり、初期化カウンタは、信号CLKIの立下り縁の後
にカウントを行なう(INITIが既に与えられている
場合)。初期化カウンタ300がカウントを行なう時に
は、デコーダによって選択された出力がデセレクトさ
れ、この遷移を用いて、文字レジスタの出力が、初期化
されるべき5個のレジスタの1つに記憶される。従っ
て、文字入力ラインは、初期化中にセルをプログラムす
るデータを供給するのに使用される。
初期化サイクルは、セル又はセルグループのリセット動
作と共に繰り返される。リセット動作は、セルが既知の
初期状態をとるようにリセットラインに瞬間的に信号を
発生させることにより成る。この状態における重要な特
徴は、初期化カウンタがそのカウントをゼロから再開す
ることである。
多数のセルの初期化 或るセルの出力を次のセルの入力に接続することによっ
てセルのグループが形成される。CLKI及びRESETI
信号は1つのグループ内の全てのセルに共通に使用され
る。初期化の考え方は、グループ内のセル数に拘りなく
グループ内のいかなるセルもその第1セルのみの入力を
処理することによってプロラムできるような構成とさ
れ、従って、セルのグループを制御したり使用したりす
るための余計なラインは必要とされない。
初期化機構のこの特徴は、セルのINITI−INIT
Oの接続部に含まれた第2のD型フリップ−フロップ2
11によるものである。この第2のフリップ−フロップ
の存在により、セルのINITIラインに生じたデータ
は、CLKIの第2の立上り縁の後にINITOライン
に現われるようにされる。文字入力(CI)ラインのデ
ータは、CLKIの第1の立上り縁の後に文字出力(C
O)ラインに現われる。従って、或るセルからのINI
TI信号は、第1セルのCIに送られた第2文字と共
に、次のセルのINITIに達する。同様に、INIT
I信号は、第1セルのCIに送られた第3文字と共に第
3セルに達する。
この機構を用いた場合のn個のセルに対する初期化手順
を以下に概説する。
1.RESETI信号を瞬間的に上昇させる。
2.第1セルにINITI信号を与える。
3.第1セルのCIラインを、第1セルにプログラムすべ
き第1レジスタの値にセットする。
4.CLKIラインの信号レベルを上下させる(パルス
化)。(これらの段階を最初に行なう時には、これによ
り、第1セルの第1レジスタが初期化される。) 5.第1セルへのINITI信号を停止する。
6.第1セルのCIラインを、第2セルにプログラムすべ
き第1レジスタのデータにセットする。
(最初、デコーダ出力#Oラインは信号が発生され、第
2セルの第1レジスタが初期化される。) 7.CLKIラインの信号をパルス化する。
8.そのグループ内のn個の各セルに対し段階6及び7を
繰り返す。
9.第1セルの第2レジスタのデータをCIラインに送っ
て段階2、3、4及び5を繰り返す。
10.そのグループ内のn個の各セルに対し段階8を繰り
返す。
11.プログラムすべき各レジスタに対し段階9及び10
を繰り返す。
上記の段階4において、クロック信号をパルス化する
と、デコーダ302はその第1出力から第2出力へと進
み、文字レジスタから第1レジスタ(パターンレジス
タ)へタイミングを合わせてデータが送り込まれる。次
いで、INITI信号が停止されるので(段階5)、そ
の後のクロックパルスは第1セルに何の作用も与えな
い。然し乍ら、INITI信号パルスはセルからセルへ
伝播され、段階6、7及び8で定めたように各セルの第
1レジスタを初期化する。各セルの第2レジスタを初期
化するため、INITI信号が再び発生され(段階
2)、その後のクロックパルスにより第2のレジスタが
初期化される。
この初期化機構は、制御又はデータ用として別のライン
を追加することになく、セル内に存在するいかなる数の
レジスタもプログラムできるという点で、融通性があ
る。複雑さが増す唯一の点は、セルの内部にある初期化
カウンタ300及びデコーダ302によって与えられる
ビットの数が増加することである。
初期化中に最後のレジスタがロードされた後、セルは検
索モードで作動される。INITIラインには最後にも
う一度信号が発生され、セルに記憶されたデータに対し
て検索すべき文字列の第1文字がそのグループの第1セ
ルのCIラインに与えられる。第1セルへの一致入力ラ
インは論理0に保持される。CLKIラインの信号がパ
ルス化され、セルの文字レジスタにタイミングを合わせ
て文字が入力される。一致論理回路は、この文字をパタ
ーンと比較し、その結果を一致出力ラインに与える。次
いで、第2の文字が第1セルのCIラインに送られ、サ
イクルが繰り返されて、第2文字をロードしたCLKI
信号の同じ立上り縁において第1文字及び一致出力が第
2セルにロードされる。このサイクルは、検索さるべき
各文字ごとに繰り返される。文字とパターンが一致した
時には、情報が一致出力ラインに沿って送られ、前記し
たようにそのグループの最後のセルに現われた時に一致
として検出される。
以上の説明から、本発明は、特殊な検索処理装置の分野
に著しい進歩をもたらすことが明らかであろう。特に、
許容値を用いて一致の程度を表わすことにより、簡単な
2進一致結果に勝る有用な改善が与えられる。さらに、
一致結果の記憶及び処理に多数の一致ラインを使用する
ことにより、種々様々なサーチを全て同時に或いは短い
時間内に実行することができる。又、解説の目的で本発
明の特定の実施例を詳述したが、本発明の精神及び範囲
から逸脱せずに、種々の変更がなされ得ることが明らか
であろう。それ故、本発明は、特許請求の範囲のみによ
って規定されるものとする。
【図面の簡単な説明】
第1図はホストシステムに接続した高速検索処理装置の
ブロック図、 第2図は連続的に接続された複数のセルを示すブロック
図、 第3図は単一の検索処理装置のセルを示すブロック図、 第3a図は検索処理装置セルの別の構造のブロック図、 第3b図は第3図の論理要素の一つをより詳細に示す典
型的な論理回路図、 第4図は本発明の構造を使用する簡単な検索シークエン
スを示すテーブル、 第5図は簡単な検索操作を示す一致ラインの図、 第6図は簡単な論理和操作を示す一致ラインの図、 第7図は共通接頭部論理和操作を示す一致ラインの図、 第8図は“否定”機能の使用方法を示す一致ラインの
図、 第9図は“右ブラケット”機能の使用方法を示す一致ラ
インの図、および 第10図は検索処理装置のセルの初期化論理を示すブロ
ック図。 1…ホストシステム、2…データソース、3…ホスト処
理装置、4…結果メモリ、5…高速検索装置、20−2
2…セル。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 リー ザツカリー ハシウク アメリカ合衆国 カリフオルニア州 90277 レドンド ビーチ ノース ルシ ア アベニユー 117 (72)発明者 ペギー マツエ オーツボ アメリカ合衆国 カリフオルニア州 90278 レドンド ビーチ スペイヤー レーン 2017

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】(a)各セルが、 検索されるべきパターンの一部を記憶するパターンレジ
    スタと、 検索されるべきデータ流の文字を記憶し、直列に接続し
    て文字列を形成する文字レジスタと、 パターンレジスタと文字レジスタの内容を比較する比較
    手段と、 検索パターンとデータ流との間の一致の度合いを示す許
    容値を記憶し、直列に接続して第1の一致ラインを形成
    する第1の一致レジスタとを含む、直列に接続した複数
    の前記セル、 (b)前記セルを初期化して検索パターンを含ませる手
    段、 (c)周期的クロック信号に応答して、文字ライン内の
    セルからセルへのデータ流を制御する手段、 (d)許容される不一致の度合を示す初期許容値を一致ラ
    インに入力する手段、および (e)パターンレジスタと文字レジスタとの間に一致が検
    出された際に一致信号を発生する手段と、 一致が検出されない場合に一致ライン上を運ばれる許容
    値を減少して、不一致の度合が十分に大きな場合に初期
    許容値を零に減少する手段とを有する各セル内に設けら
    れた一致論理手段から構成された専用検索処理装置。
  2. 【請求項2】各セルが複数の制御フラグの各々の状態を
    記憶するフラグレジスタを有しており、 各セル内の一致論理手段が、フラグの状態を表し、セル
    を通過する一致情報の流れを制御する手段を有している
    特許請求の範囲第(1)項記載の専用検索処理装置。
  3. 【請求項3】(a)各セルが、 検索されるべきパターンの一部を記憶するパターンレジ
    スタと、 検索されるべきデータ流の文字を一時的に記憶し、直列
    に接続して文字ラインを形成する文字レジスタと、 パターンレジスタと文字レジスタの内容を比較する比較
    手段と、 検索パターンとデータ流との間の一致の度合を示す数値
    を記憶する第1の一致レジスタと、 前記第1の一致レジスタからの出力を受けるように接続
    され、前記第1の一致レジスタと結合して一致/遅延レ
    ジスタ対を構成し、各セルの一致/遅延レジスタ対が直
    列に接続して第1の一致ラインを形成する遅延レジスタ
    とを含む、直列に接続した複数の前記セル、 (b)前記セルを初期化して検索パターンを含ませる手
    段、 (c)周期的クロック信号に応答して、文字ライン内のセ
    ルからセルへのデータ流を制御する手段、 (d)許容される不一致の度合を示す初期許容値を一致ラ
    インに入力する手段、および (e)パターンレジスタと文字レジスタとの間に一致が検
    出された際に一致信号を発生する手段と、 一致が検出されない場合一致ライン上を運ばれる許容値
    を減少して、不一致の度合が十分に大きな場合に初期許
    容値を零に減少する手段とを有する各セル内に設けられ
    た一致論理手段から構成された専用検索処理装置。
  4. 【請求項4】(a)各セルが、 検索されるべきパターンの一部を記憶するパターンレジ
    スタと、 検索されるべきデータ流の文字を記憶し、直列に接続し
    て文字ラインを形成している文字レジスタと、 パターンレジスタと文字レジスタの内容を比較する比較
    手段と、 検索パターンとデータ流との間の一致の度合を示す許容
    値を記憶し、直列に接続して第1の一致ラインを形成す
    る第1の一致レジスタと、 直列に接続して第2の一致ラインを形成する第2の一致
    レジスタとを含む、直列に接続した複数の前記セル、 (b)前記セルを初期化した検索パターンを含ませる手
    段、 (c)周期的クロック信号に応答して、文字ライン内のセ
    ルからセルへのデータ流を制御する手段、 (d)許容される不一致の度合を示す初期許容値を一致ラ
    インに入力する手段、 (e)パターンレジスタと文字レジスタの選択されたビッ
    トの間に一致が検出された際にに一致信号を発生する手
    段と、 一致が検出されない場合に一致ライン上を運ばれる許容
    値を減少する手段とを有する各セル内に設けられた一致
    論理手段、および (f)各セル内に位置し、一致ライン間の許容値の移動を
    制御して、種々の検索機能の内の選択された一つの実行
    する手段から構成された専用検索処理装置。
  5. 【請求項5】前記一致論理手段が、制御フラグの一つに
    応答して、第1の一致ライン上の一致情報を第2の一致
    ラインに複写する手段を有し、複写された一致情報が、
    文字ライン上の文字と同期して第2の一致ラインに沿っ
    て伝達される特許請求の範囲第(4)項記載の専用検索処
    理装置。
  6. 【請求項6】各セルが第3の一致レジスタを有してお
    り、この第3の一致レジスタが直列接続して第3の一致
    ラインを形成しており、 前記一致論理手段が、第2の制御フラグに応じて第1の
    一致ライン上に運ばれる許容値を第3の一致ラインに転
    送し、同時に第2の一致ライン上を運ばれる許容値を第
    1の一致ラインに転送する手段を有している特許請求の
    範囲第(5)項記載の専用検索処理装置。
  7. 【請求項7】各セルが第4の一致レジスタを有してお
    り、この第4の一致レジスタが直列に接続して第4の一
    致ラインを形成しており、 前記一致論理手段が第3の制御フラグに応じて、第1の
    一致ライン上を運ばれる許容値を第4の一致ラインに転
    送し、検索処理装置から出力する特許請求の範囲第(6)
    項記載の専用処理装置。
  8. 【請求項8】前記一致論理手段が、第4のフラグに応じ
    て、第3および第4の一致ライン上を運ばれるより大き
    な許容値を第1の一致ラインへ転送する特許請求の範囲
    第(7)項記載の専用検索処理装置。
  9. 【請求項9】各セルがカウンタを含んでおり、 前記一致論理手段が、第5のフラグに応じて、第2の一
    致ライン上を運ばれる許容値を第1の一致ラインに転送
    する手段と、第2の一致ライン上を運ばれる値を、前記
    カウンタに記憶されたカウント値で決められた最大回数
    まで、再循環する手段とを含む特許請求の範囲第(8)項
    記載の専用処理装置。
  10. 【請求項10】前記一致論理手段が、バイパスフラグに
    応答して、遅延レジスタを選択的に迂回して、第1の一
    致ラインに沿って値を、文字ラインに沿ってのデータの
    伝達速度と同期して、伝達する手段を有している特許請
    求の範囲第(5)項記載の専用処理装置。
  11. 【請求項11】(a)各セルが、 検索されるべきパターンの一部を記憶するパターンレジ
    スタと、 検索されるべきデータ流の文字を一時的に記憶し、直列
    に接続して文字ラインを形成している文字レジスタと、 パターンレジスタと文字レジスタの内容を比較する比較
    手段と、 検索パターンとデータ流との間の一致の度合を示す数量
    を記憶する第1の一致レジスタと、 前記セルの第1の一致レジスタからの出力を受けるよう
    に接続され、前記第1の一致レジスタと結合して一致/
    遅延レジスタ対を構成し、各セルの一致/遅延レジスタ
    対が直列に接続して第1の一致ラインを形成する遅延レ
    ジスタと、 直列に接続して第2の一致ラインを形成する第2の一致
    レジスタと、 複数の制御フラグが記憶されるフラグレジスタとを含
    む、直列に接続した複数の前記セル、 (b)前記セルを初期化して検索パターンを含ませる手
    段、 (c)文字ライン内のセルからセルへのデータ流を制御す
    るクロック手段、 (d)許容される不一致の度合を示す許容値を一致ライン
    に入力する手段、および (e)(i)パターンレジスタと文字レジスタとの間に一
    致が検出された際に一致信号を発生する手段、(ii)一致
    しない場合に一致ライン上を運ばれる許容値を減少する
    手段、および(iii)第1の制御フラグに応答して第1の
    一致ライン上を運ばれる許容値を第2の一致ライン上に
    複写する手段を各セル内に含む一致論理手段から構成さ
    れた専用検索処理装置。
JP60267065A 1985-11-27 1985-11-27 高速検索処理装置 Expired - Lifetime JPH061476B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP60267065A JPH061476B2 (ja) 1985-11-27 1985-11-27 高速検索処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60267065A JPH061476B2 (ja) 1985-11-27 1985-11-27 高速検索処理装置

Publications (2)

Publication Number Publication Date
JPS62127939A JPS62127939A (ja) 1987-06-10
JPH061476B2 true JPH061476B2 (ja) 1994-01-05

Family

ID=17439543

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60267065A Expired - Lifetime JPH061476B2 (ja) 1985-11-27 1985-11-27 高速検索処理装置

Country Status (1)

Country Link
JP (1) JPH061476B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0463164A4 (en) * 1989-03-14 1992-12-16 Kabushiki Kaisha Dainichi Data retrieval device and data editing apparatus using this device
WO2009066338A1 (ja) * 2007-11-19 2009-05-28 Duaxes Corporation 通信制御装置

Also Published As

Publication number Publication date
JPS62127939A (ja) 1987-06-10

Similar Documents

Publication Publication Date Title
US4760523A (en) Fast search processor
EP0233401B1 (en) Improved fast search processor
Parhami A highly parallel computing system for information retrieval
Kohonen et al. Logic Principles of Content-Addressable Memories
US5060143A (en) System for string searching including parallel comparison of candidate data block-by-block
Hurson A VLSI design for the parallel finite state automaton and its performance evaluation as a hardware scanner
JPS60134945A (ja) データベース処理方法
Burkowski A hardware hashing scheme in the design of a multiterm string comparator
JPS61210478A (ja) ベクトル処理装置
JPH04205174A (ja) 記号列検索モジュール及びそれを備えたシングルチップマイクロコンピュータ
US5206947A (en) Stable sorting for a sort accelerator
JPH061476B2 (ja) 高速検索処理装置
Chung On the complexity of sorting in magnetic bubble memory systems
Chen et al. Simplified odd-even sort using multiple shift-register loops
EP0232376B1 (en) Circulating context addressable memory
EP0222940B1 (en) A fast search processor and method for its use
Lee et al. Text retrieval machines
JP3141428B2 (ja) 数値検索装置およびその方法
Lee ALTEP—A cellular processor for high-speed pattern matching
Hurson et al. Specialized parallel architectures for textual databases
JPH04308B2 (ja)
JPH0317780A (ja) 記号列検索方法および装置
Healy A character-oriented context-addressed segment-sequential storage
Parhami The mixed serial/parallel approach to VLSI search processors
Ozkarahan et al. On-the-fly and background data filtering system for database architectures