JPH0797374B2 - 高速サ−チプロセツサ - Google Patents

高速サ−チプロセツサ

Info

Publication number
JPH0797374B2
JPH0797374B2 JP61294598A JP29459886A JPH0797374B2 JP H0797374 B2 JPH0797374 B2 JP H0797374B2 JP 61294598 A JP61294598 A JP 61294598A JP 29459886 A JP29459886 A JP 29459886A JP H0797374 B2 JPH0797374 B2 JP H0797374B2
Authority
JP
Japan
Prior art keywords
match
search
cell
register
value
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
JP61294598A
Other languages
English (en)
Other versions
JPS62217321A (ja
Inventor
ヘイズ メッセンジャー チャールズ
イヴァリット ハイス ジュニア ロバート
Original Assignee
テイア−ルダブリユ− インコ−ポレ−テツド
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 テイア−ルダブリユ− インコ−ポレ−テツド filed Critical テイア−ルダブリユ− インコ−ポレ−テツド
Publication of JPS62217321A publication Critical patent/JPS62217321A/ja
Publication of JPH0797374B2 publication Critical patent/JPH0797374B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching

Description

【発明の詳細な説明】 産業上の利用分野 本発明は、一般に、情報処理システムに係り、特に、特
定パターンのデータを探索するようにデータベースをサ
ーチする特殊目的のプロセッサに係る。この形式の処理
は、多数の色々な文脈において行なわれるが、特定のワ
ード又はフレーズの全ての発生を探索するようなデータ
ベースのサーチについて最も良く理解することができよ
う。これまで、このようなサーチを実行するために従来
のハードウェアで作動するコンピュータソフトウェアが
利用されているが、これには実用面で多数の制約がある
ことが分かっている。
従来の技術 大きなデータベースを始めから終りまで順次に探索する
従来のハードウェアは、全く実行不可能な程の長い時間
を要することが多く、そこで、典型的なサーチと考えら
れるものについてシステムが比較的良好な性能を有する
ようにデータを編成するため、種々様々なソフトウェア
技術が使用されている。これらの技術は、通常、大きな
テーブルがデータベースの各項目の位置を含むような或
る形式のインデックス機構を伴うものである。これらの
インデックステーブルは、そのサイズが実際のデータベ
ースと同等であり、構成及び編成がしばしばやっかいで
ある。更に、インデックステーブルを必要とするシステ
ムは、内容が時間と共に変化するようなデータベースの
サーチに用いるには不便である。
インデックス構造を用いたとしても、ソフトウェアのサ
ーチは、所与のサーチタスクに課せられたサーチ条件の
数及び複雑さによって非常に影響を受け、然も、使用す
る汎用のコンピュータがオペレーティングシステムオー
バーヘッドを有していて、これが、サーチプロセスの速
度を更に遅らせる。その結果、実際に得ることのできる
データ処理速度は、通常、データベースが通常記憶され
る大量記憶装置の最大データ速度の一部分に過ぎない。
ソフトウェア制御のサーチ技術には多数の制約があるの
で、サーチプロセスを助成するようなハードウェア装置
が案出されている。これらは、内容によってアドレスで
きるメモリと、特殊目的のプロセッサの2つの分類に分
けられる。内容によってアドレスできるメモリは、それ
らの内容を共通バスに現われるパターンと比較すること
のできるメモリ装置である。このようなメモリは、大き
なデータベースの場合には著しく高価なものと成り、
又、典型的に厳密に合致するオペレーションしか実行で
きないので、いかなる場合にも、その利用性が限定され
る。
データサーチのための特殊目的のプロセッサは、専用の
パターン一致回路によってデータをアクセスするための
低コストのメモリを使用している。典型的に、サーチの
前にプロセッサにサーチ条件が記憶され、サーチ中にプ
ロセッサにデータが送られる。特殊目的のプロセッサ
は、その特に望ましい形態においては、全ての論理を単
一の集積回路チップに組み込んでおり、その拡張機能は
多数の相互接続されたチップを使用することに基づいて
いる。
ミード・アンド・アソシエート・アット・ザ・カリフォ
ルニア・インスティテュート・オブ・テクノロジによる
このようなプロセッサの1つは、128ビットの比較器を
使用してテキスト入力を常駐パターンと比較するもので
ある。(1976年10月のIEEEジャーナル・ソリッドステー
ト・サーキット(IEEE Jouranl Solid State Circuit
s)SC-11(5):692-695に掲載されたMead C.A.Pashle
y,R.D.,Britton,L.d.,Daimon,Y.T.及びSando,S.F.の「1
28ビットマルチコンパレータ」を参照されたい。)マス
クレジスタは、パターンに含まれた可変長さの「ドント
・ケア(don't care)」文字に等しいものを許容するこ
とができる。換言すれば、パターンは、内容が一致プロ
セスに影響しないような可変長さのセグメントを含むと
して指示される。
フォスタ及びカング氏は、2種類のセルで構成される収
縮パターン一致回路を提案している。(1980年1月のIE
EEコンピュータ13(1)に掲載されたFoster M.J.及びK
ung H.T.の「特殊目的のVLSIチップの設計(The desing
of Special-Purpose VLSI Chips)」を参照された
い。)プロセッサは、サーチされているパターンを記憶
せず、サーチされているデータに対し平行なデータ路に
沿って再循環することが要求される。このプロセッサの
収縮特性、即ち、各セルがそのすぐ隣のセルとのみ信号
を分担するような相互接続されたセルのパイプラインを
意味する特性により、集積回路の高密度レイアウトに特
に適用できるようになる。
第2の収縮設計がマクホパディヒア・オブ・ザ・ユニバ
ーシティ・オブ・セントラル・フロリダ(Mukhopadhyay
of the University of Central Florida)によって提
案されており、この構造は、単一形式のセルで構成され
たパイプラインを含んでいる。(1983年バン・ノストラ
ンド・レインホールド(Van Nostrand Reinhold)、ラ
ビット・ジー(Rabbit,G)(編集者)による「VLSIにお
けるハードウェア及びソフトウェアの概念(Hardware a
nd software Concept in VLSI)の第4章、第72-94頁に
掲載されたマクホパディヒア・エイ(Mukhopadhyay
A.)の「VLSIハードウェア・アルゴリズム(VLSI Hardw
are Algorithms)」を参照されたい。)このシステムに
おいては、パターンがパイプラインの一端からロードさ
れ、サーチされるべきテキストデータがその反対端から
ロードされる。このシステムは、固定長さ及び可変長さ
の「ドント・ケア」文字を許容することができる。
これら及び他の提案されたシステムは、高い速度におい
て種々の「ドント・ケア」能力でパターンの一致を行な
うが、これらは、完全なデータサーチシステムを表わす
ものではない。例えば、これらのシステムは、ブール関
数や、複雑な近似関数を解いたり、おおよその一致を処
理したりすることができない。従って、このような装置
で構成されたシステムは、特定のサーチ質問に特殊なハ
ードウェアを使用できるかどうかによって、予測のでき
ない応答時間を有することになる。これは、多くの場
合、一般のソフトウェア解決策に直面した同じ問題であ
る。
発明が解決しようとする問題点 本発明に対してまだ公知のものとなっていない1984年6
月29日出願の「高速サーチプロセッサ(A Fast Search
Processor)」と題する米国特許出願第626,432号の一部
継続出願である1985年4月24日出願の同じ名称の米国特
許出願第726,457号は、公知技術に関連した問題の解決
策について著しく進歩した段階を表わしている。然し乍
ら、これらの関連特許出願に開示されたシステムは、或
る重要な点に関して制約がある。特に、早期のシステム
は、サーチされているテキストにおいて或る限定された
数のミススペルしか処理できず、テキストにおける文字
の欠落や余計な文字を処理することはできない。このよ
うに文字の欠落や余計な文字を処理できないと、テキス
トサーチにおいて僅かなミススペルのあるサーチパター
ンすら見落としてしまう。
上記の関連特許出願に開示されたシステムにはまだ改良
の余地が残されていることが明らかである。サーチプロ
セッサは、理想的には、たとえテキストが或る限定され
た数の余計な文字や文字の欠落やミススペルを含んでい
ても、サーチパターンを正しい文字数で認識できなけれ
ばならない。本発明は、この目的に向けられるもので、
多数の異なったサーチ機能を実行することのできる高速
テキストサーチシステムを提供する。
問題点を解決するための手段 本発明は、種々様々なサーチ機能を実行することがで
き、文字の欠落や余計な文字を含むサーチパターンを認
識することができる高速サーチプロセッサ及びこれに用
いるための関連した方法に関する。本発明の別の重要な
特徴は、セグメントと称する領域においてテキストの流
れを探索することができ、このセグメントは、例えば、
センテンスでもよいし、テキストのページでもよいし、
或いは、選択された数の連続する文字又はワードでもよ
い。センテンス及びページは、「固定」セグメント即ち
窓の例である。サーチは、センテンスのようなセグメン
ト内で見出さねばならないパターンの色々な組み合わせ
を指定することができる。サーチにより互いに隣接する
200個の文字内に配置されるべきパターンの組み合わせ
を指定する場合、これは、「スライディング」セグメン
ト即ち窓を用いたサーチの一例となる。
本発明のサーチプロセッサは、指定されたセグメント内
で「計数一致」機能を実行することができる。この計数
一致とは、或るテキストセグメント内に或るパターンが
発生する回数が指定の数より大きいかそれより小さいか
或いはそれに等しい場合だけサーチプロセッサが一致を
報告するように指定するサーチ状態として定められる。
又、サーチプロセッサは、「計数サブセット」機能を実
行することもできる。この機能は、サーチパターンのセ
ット又はリストから選択された種々のパターンが指定の
回数だけ生じた場合に一致が報告されることを意味す
る。例えば、サーチは、指定のセグメント内にある1組
の3つのサーチ項「a」、「b」及び「c」のうちの少
なくとも2つを探索するか、或いは、「少なくとも3つ
の“a"」、「少なくとも4つの“b"」及び「せいぜい1
つの“c"」より成る組から2つの項を探索するように定
めることができる。サーチ項としてブール式を含ませた
り、他の計数サブセットのサーチ項内に更に計数サブセ
ットをネスト構成にしたりすることにより、サーチの複
雑さが更に増すことになる。以下の詳細な説明から明ら
かなように、本発明のサーチプロセッサは、テキストパ
ターンを最も簡単なものから最も複雑なものまで非常に
速い速度でサーチすることのできる非常に強力な手段で
ある。
サーチプロセッサに使用されるハードウェアは、複数の
直列に接続されたセルを具備し、各セルは、サーチされ
るべきパターンの部分を記憶するためのパターンレジス
タと、サーチされるべきデータ流の文字を記憶するため
の文字レジスタと、文字レジスタ及びパターンレジスタ
の内容を比較するための比較手段とを含んでいる。これ
らセルの文字レジスタは、文字ラインを形成するように
直列に接続される。
又、各セルは、パターンレジスタと文字レジスタとの一
致を表わす量を記憶するための一致レジスタも含んでお
り、この一致レジスタは、セルからセルへと接続されて
一致ラインを形成する。本発明の1つの特徴によれば、
一致論理は、サーチされているテキスト流における文字
の欠落及び余計な文字を検出するための手段を備えてい
る。又、各セルは、システムの作動中に導出された一致
データを累積するためのアキュムレータレジスタと、或
る形式のサーチ機能に使用されるカウンタと、種々のサ
ーチ機能に使用される複数の他のレジスタとを備えてい
るのが好ましい。全てのセルの構造は同一であり、同様
のレジスタが直列ストリングに接続される。
一般的に述べると、本発明のサーチプロセッサは、直列
に接続された複数の比較セルにサーチパターンを記憶す
るための手段と、これらの比較セルにテキスト流を通す
手段と、テキスト流とサーチパターンとの厳密な一致を
検出する手段とを備えている。又、このプロセッサは、
テキスト流とサーチパターンとのおおよその一致を選択
的に検出する手段も含み、このおおよその一致とは、テ
キスト流に不正確な文字及び余計な文字が存在したりテ
キスト流から文字が欠落していたりすることを或る限定
された予め選択された程度まで含んでいるのが好まし
い。更に、プロセッサは、厳密な一致及びおおよその一
致を表わす一致信号を発生する手段も備えており、これ
らは、テキスト流と同期して直列接続されたセルから出
力される。
特に、本発明の1つの特徴によれば、プロセッサは、更
に、セルを接続する付加的なラインにおける第1のサー
チ項に関連した第1の一致結果を記憶する手段と、第2
のサーチ項に関連した第2の一致結果を発生する手段
と、第1及び第2の一致結果を直列接続のセルから出力
するために論理的に組み合わせる手段とを備えている。
又、プロセッサは、第1及び第2のサーチ項とネスト構
成で論理的に組み合わされる付加的なサーチ項に関連し
た付加的な一致結果を発生する手段も備えている。
又、本発明のプロセッサは、テキスト流内の計数状態を
サーチするために、選択されたサーチ項の発生回数をカ
ウンタする手段も備えている。固定窓のサーチの場合、
プロセッサは、更に、テキスト流内の予め定められたテ
キストセグメントの境界を検出する手段と、1つのテキ
ストセグメントの固定窓内でのみサーチ機能を実行でき
るようにする手段とを備えている。
スライド窓内でサーチを実行する本発明の別の特徴によ
れば、本発明のプロセッサは、テキスト流内の予め定め
られたテキストセグメントの境界を検出する手段と、セ
グメントの数をカウントして指定数のテキストセグメン
ト内にサーチ項が現われたかどうか判断する手段と、指
定数のテキストセグメント内に指定のサーチ項が或る組
み合わせで現われた時だけ一致信号を発生する手段とを
備えている。又、プロセッサは、セグメントの境界から
導出された信号と一致信号とのアンドをとることにより
発生される一致信号の数を減少する手段も備えている。
指定のサーチパターンに対しテキストの流れをサーチす
る本発明の新規な方法は、直列に接続された複数の比較
セルにサーチパターンを記憶し、これらの比較セルにテ
キスト流を通し、テキスト流とサーチパターンとの厳密
な一致を検出し、テキスト流とサーチパターンとのおお
よその一致を選択的に検出し、このおおよその一致と
は、テキスト流に不正確な文字や余計な文字が存在した
りテキスト流から文字が欠落したりすることを或る限定
された予め選択された程度まで含んでいるのが好ましく
そして厳密な一致及びおおよその一致を表わす一致信号
を発生して、直列に接続されたセルからテキスト流と同
期して出力するという各段階を具備する。
更に、本発明の方法は、セルを接続する付加的なライン
における第1のサーチ項に関連した第1の一致結果を記
憶し、第2のサーチ項に関連した第2の一致結果を発生
し、そして直列接続されたセルから出力するように第1
及び第2の一致結果を論理的に組み合わせるという段階
を具備している。更に、上記方法は、第1及び第2のサ
ーチ項とネスト構成で論理的に組み合わされる付加的な
サーチ項に関連した付加的な一致結果を発生する段階を
含んでいるのが好ましい。
或る形式のサーチの場合、上記方法は、テキスト流内の
計数状態をサーチするために、選択されたサーチ項の発
生回数をカウントする段階も具備している。
予め定められたテキストセグメントの固定の窓内でサー
チを行なう場合には、上記方法は、テキスト流内の予め
定められたテキストセグメントの境界を検出しそして1
つのテキストセグメントの固定の窓内においてのみサー
チ機能を実行できるようにする段階を含んでいる。テキ
ストのスライドセグメント内でサーチを行なう場合、上
記の方法は、テキスト流内の予め定められたテキストセ
グメントの境界を検出し、セグメントの数をカウントし
て指定数のテキストセグメント内にサーチ項が現われた
かどうか判断し、指定数のテキストセグメント内に指定
のサーチ項が或る組み合わせで現われた時だけ一致信号
を発生するという段階を具備している。本発明のこの特
徴は、セグメントの境界から導出された信号と一致信号
とのアンドをとることにより発生される一致信号の数を
減少することを含む。
本発明の別の特徴は、各セルのカウンタの限定された長
さを任意の大きさのカウンタまで効果的に拡張するよう
にセルをプログラムできることにある。本発明のここに
示す実施例においては、各セルのカウンタの長さが8ビ
ットに限定されるが、例えば、32ビットという大きなサ
イズのカウンタを構成するように隣接するセルを使用す
ることができる。このようにして、各セルのカウンタの
サイズが小さいことにより、多数の文字、ワード又はセ
ンテンスのカウントの追跡を含む種々のサーチを実行す
るというプロセッサの能力が限定されることはない。
本発明の更に別の特徴は、プロセッサから結果を収集す
ることに関する。プロセッサは、テキストが直列形態で
これを通ることを必要とし、一致指示信号は、テキスト
と同期してプロセッサから出力され、文字ラインと平行
なラインに送り出される。多数のサーチ質問は、プロセ
ッサを通る付加的なラインに多数のサーチ結果を送り出
すことによって処理することができる。然し乍ら、この
ようにして処理できる質問の数は、プロセッサセルによ
って与えられるラインの数によって限定される。本発明
のこの特徴によれば、一致信号は、結果収集手段に収集
され、この結果収集手段は、本発明の好ましい実施例で
は、一致信号がセルのパイプラインの結果タップから送
り込まれる結果パイプラインの形態をとる。この結果パ
イプラインは、セルのパイプラインに記憶された数千の
個別のサーチ質問といった多数の一致信号を処理するこ
とができ、そして多数の結果の発生時間がおそらく重畳
することにより多数の結果が失われないようにするため
に衝突回避手段を備えている。
以上の説明から、本発明は、特殊目的のサーチプロセッ
サの分野に著しい進歩をもたらすことが明らかであろ
う。特に、本発明は、予め定められたサーチパターンに
対し、不正確な文字や文字の脱落や余計な文字を有する
直列なテキスト流をサーチする非常に効果的な解決策を
提供する。更に、本発明のプロセッサは、固定の窓又は
スライド窓内で、サーチ項の種々のブール式を含むパタ
ーン項の計数サーチ及びそのサブセットのサーチを実行
することができる。サーチ機能は、種々様々な方法で組
み合わせることもできるし、多数のレベルのネスト構成
とすることもできる。更に、本発明は、テキスト流を一
回通す間に多数のサーチを行なえるようにサーチ結果を
収集する手段を提供する。本発明の他の特徴及び効果
は、添付図面を参照した以下の詳細な説明から明らかと
なろう。
実施例 説明のための添付図面に示されたように、本発明は、デ
ータバスからのごときデータの流れをサーチするための
特殊目的のプロセッサに関する。理想的には、高速のサ
ーチプロセッサは、種々様々な形式のテキスト質問を処
理できねばならないと共に、これらの質問を迅速に処理
し、然も好ましくは多数の質問を同時に処理できねばな
らない。本発明のプロセッサがこれらの要求及び他の要
求にいかに合致するかは、以下で説明する。
予めの定義として、「サーチパターン」とは、テキスト
流と合致もしくは比較されるべき文字の組み合わせを意
味することに注意されたい。「サーチ項」とは、特定の
サーチ質問の論理エレメントを形成するサーチパターン
の部分である。サーチ項は、ワードのような文字のスト
リングであってもよいし、これらストリングのブール組
み合わせや、これらストリングの所望の発生回路を示す
計数を伴う複雑な式であってもよい。又、サーチ項は、
多数のネストレベルを有する構成で他のサーチ項と組み
合わされる。
概要 第1図に示すように、本発明が用いられる環境は、参照
番号1で示されたホストコンピュータシステムを備えて
いる。このホストシステム1は、データソース2と、ホ
ストプロセッサ3と、結果メモリ4とを備えており、適
当な細部構造を有することができる。典型的に、データ
ソース2は、高速磁気ディスク記憶システムであり、ホ
ストプロセッサ3は、一般の汎用プロセッサであり、メ
モリ4は、一般のランダムアクセスメモリである。
参照番号5で示された本発明の高速サーチプロセッサ
は、データソース2からライン8を経てデータを受け取
り、ライン9を経て出力バッファ10へ結果を送信し、そ
こから低速ライン11を経て結果メモリ4へ送り込む。サ
ーチプロセッサ5は、ホストプロセッサ3からライン12
を経て受け取られる信号により初期化モード及びサーチ
モードで作動するように制御される。
初期化モードにおいては、サーチされるべきパターンの
値及びサーチの実行を制御するフラグの値がライン12を
経てサーチプロセッサ5にロードされる。特に、パター
ンレジスタ、マスクレジスタ、裕度レジスタ及び多数の
プログラム可能なフラグの値が初期化モード中に各セル
にロードされる。これらのレジスタ及びフラグは、以下
で説明する。
次いで、サーチモードにおいては、プロセッサは、ライ
ン8を経て高い速度で送られるデータ流をサーチし、同
じ高い速度でライン9を経て出力バッファ10へ一致結果
を送信する。サーチプロセッサ5の設計上の目標は、デ
ータソース2のアクセス速度に匹敵する速度でデータ流
をサーチできるようにすることである。従って、複雑で
且つコストの高いインデックス機構を使用せずに、大き
なデータベースを適度な時間で直列にサーチすることが
できる。
本発明の好ましい実施例によるサーチプロセッサは、多
数の同じセルを備えており、その3つが第2図に20-22
で示されている。各セルの構造は以下で詳細に説明する
が、説明を始めるに当たり、各セルが文字ラインC
(8)と一致ラインM(3)とを含んでいることのみに
注目されたい。括弧内の数字はそのラインのビット数を
表わし、文字ラインは8ビットを有し、一致ラインは3
ビットを有する。又、相互接続されたセルは、アキュム
レータラインAと、ダイナミックリセットラインFと、
ロードラインLと、増加ラインIと、減少ラインDと、
一般的にTnで示された12本の汎用ラインとを有してい
る。それ故、8本の文字ライン、3本の一致ライン、12
本の汎用ライン及び5本の他のラインを含む全部で28本
のラインがセルとセルとを接続している。
セルを接続している各ラインには、各セルごとに少なく
とも1つのレジスタが組み合わされている。各セルへの
入力信号は、文字iを付けて示されており、各セルから
の出力信号は、文字oを付けて示されている。例えば、
アキュムレータラインの入力信号はAiであり、アキュム
レータラインの出力信号はAoである。以下で述べるよう
に、幾つかのラインには各セルごとに第2のレジスタが
組み合わされている。例えば、一致ラインは、直列に接
続された一致レジスタ及び一致遅延レジスタを有してい
る。一致遅延レジスタの目的は、次に述べる簡単なサー
ト例から明らかとなろう。
データソース2からライン8を経て受け取ったサーチさ
れるデータベースからの次々の文字は、文字ラインCに
沿ってセルからセルへと伝播される。一致ラインMは、
プロセッサにおいて一致結果が発生されてセルからセル
へ伝播されるラインである。一致ラインは、非ゼロ値の
存在によって一致を指示する。一致ラインにゼロが現わ
れた場合には、非一致を表わす。単純な2進一致値又は
非一致値を搬送するのではなく、一致ラインがより一般
的な意味で使用されて、一致の程度、即ち、サーチパタ
ーンとサーチされているテキストとの非一致文字の数を
表わす多値の一致値が搬送される。この一致値は、選択
されたセル、通常は、サーチパターンの第1のセルにお
いて、1と7との間の数値に初期化される。この数値
は、テキスト流において許容できる最大エラー数よりも
1だけ大きい。エラーは、不正確な文字、文字の欠落、
又は余計な文字であり、これらは全て一致ライン上の値
を1だけ減少させる。一致ラインの値が0まで減少した
時には、サーチパターンと分析されているテキスト流の
部分との間に一致がないといえる。
セルの動作は、セルごとに同一である比較的簡単な論理
シーケンスに基づいている。各クロックサイクル及び各
セルにおいて、セルに現在含まれた文字が、初期化段階
中にセルに予め記憶されたパターン文字と比較される。
例えば、文字C−A−Tは、各々、セル20-22に記憶さ
れたパターン文字であると仮定する。文字CATが入力デ
ータ流に現われる場合には、入ってくる文字Cが第1セ
ル20のパターンCと一致する。文字Cが第2セル21に通
された時には、これに続いて、第1セルにおける一致を
表わす一致値が一致ラインMに現われる。より詳細に
は、一致の指示は、一致文字に続く次のデータ文字と同
時に第2セルへ伝播する。C文字の一致に続く2つのク
ロックサイクルの後に、入ってくるA文字が第2セル21
に挿入され、そのセルのパターン文字Aとの一致が見出
される。個々のセルの構造は、そのセルに一致が見つか
った場合に第1セル20から一致ラインM1に送り出される
一致値が第2セル21に通されるような構造とされる。同
様に、入ってくるT文字が第3セル22に記憶されたパタ
ーンに合致すると分かった時には、第3セルから一致ラ
インMに一致値が送り出される。この例では、第3のセ
ルがパターンの最後のセルであり、以下で述べるよう
に、一致ラインMからプロセッサを通して他のラインの
1つへ一致値を転送するように作用するプログラミング
フラグを含んでいる。典型的に、以下の例から明らかと
なるように、一致ラインからの一致結果を収集及び組み
合わせるのに使用されるのは、アキュムレータもしくは
Aラインである。セルからセルへの一致値の伝播は、
「簡単なサーチ機能」について以下で詳細に説明する。
図面における信号名の説明 第4a図ないし第4f図には、各々それ自身の名称を有する
6種類の信号が示されている。
1.制御信号:これら信号は、trans、dump、init1、init
2、init2x、init3及びinit4という信号を含んでいる。
これらの信号はプロセッサの全てのセルによって共有さ
れるが、初期化中及び本発明の部分を構成しない診断モ
ードにおいてのみ使用される。サーチの実行中には、こ
れらの制御信号がゼロにセットされる。
2.レジスタ:レジスタは、クロックパルスの立上り縁の
時間にそれらの入力に送られる値をとる記憶装置であ
る。全てのレジスタは、クロックサイクル中に全部が同
時に新たな値をとるように同じクロック信号によって制
御される。これらのレジスタは、1文字又は2文字(大
文字)で名称が付けられている。これらは、データ路レ
ジスタM(3)、A、L、I、D、F、C(8)及びT
(12)と、カウンタK(8)と、遅延レジスタDL、DA、
DD、DM、IP及びDPとを含んでいる。
3.入力信号:これらは、プロセッサを構成するセルのパ
イプラインにおいて手前のセルの対応出力から供給され
るセルへのデータ路入力である。信号名は、対応するレ
ジスタ名の後に小文字のiを付けたもので構成される。
4.出力信号:各データ入力信号は、小文字のoを後に伴
う対応する出力信号を有し、これは、パイプラインの次
のセルの対応入力に接続される。
5.制御フラグ:これらは、初期化段階中にのみ新たな値
をとるレジスタである。これらは、その後のサーチの実
行中に各セルの特性を決定するマイクロコード化プログ
ラムである。それらの名前は、2つ以上の大文字で構成
され、例えば、PATT(8)、MASK(8)、LEN(8)、M
S(2)、OS(3)、等々となる。制御フラグの完全な
リストは、以下の「初期化」の部分に含ませる。
6.内部信号:他の全ての信号名は、内部信号と称する。
これらは、常に、小文字を含み、セル内の信号路を定め
て説明する目的以外は、特に意味がない。幾つかの内部
信号は、セル内の論理素子への入力として用いられ、即
ち、それらの名前は、図面中の接続線をたどることなく
信号路を定めるのに使用される。
比較論理 比較論理が第4a図に示されており、これは、文字レジス
タC(8)、パターンレジスタPATT(8)及びマスクレ
ジスタMASK(8)を含んでいる。文字レジスタは、入力
及び出力文字ラインに接続され、セルを通る現在のテキ
スト文字を記憶する。パターンレジスタは、プロセッサ
でサーチを開始する前にサーチパターンの文字を記憶す
るのに使用される。マスクレジスタは、サーチの前に初
期化される別の8ビットレジスタである。これは、文字
レジスタとパターンレジスタとの間で比較プロセスから
ビットを選択的にマスクするのに使用される。例えば、
マスクレジスタは、大文字を小文字と区別するビット位
置をマスクするようにセットすることができ、大文字で
あるか小文字であるかに拘りなく比較論理によって一致
を見出すことができる。
又、比較論理は、1組の8個の排他的オア(XOR)ゲー
ト26も備えており、これらは、反転出力を有すると共
に、文字レジスタ及びパターンレジスタからの入力を受
け取るように接続されている。各々のXORゲート26は、
両方の入力が合致した時に出力「1」を発生し、これら
入力が合致しない場合は出力「0」を発生する。XORゲ
ート26からの8つの出力は、1組の8つのオアゲート28
において、マスクレジスタの8つの対応するビットとオ
アされる。それ故、マスクレジスタのビット位置が
「1」である場合は、対応するオアゲート28から常に出
力「1」が発生される。オアゲート28の出力は、単一の
アンドゲート29においてアンドされ、その出力は、文字
がパターンに等しい場合、CeqPと示される合成一致信号
となる。
一致論理 一致論理回路が第4b図に示されており、これは、本発明
のサーチプロセッサの動作に重要なものである。この論
理の殆どのハードウェアエレメントはここで説明する
が、その機能については、種々のサーチ動作を後で説明
する時に紹介する。
一致論理回路は、ラインMiを経て入力データを受け取る
3ビットの一致レジスタM(3)と、この一致レジスタ
からの種々の経路を経てデータを受け取ると共に出力一
致ラインMoに出力データを供給する一致遅延レジスタDM
(3)とを備えている。又、一致ラインに一致値をロー
ドするのに用いられる裕度レジスタTOL(3)と、一致
論理回路を通してデータを流すための多数のマルチプレ
クサ(MUX)も備えている。一致論理回路及びセル回路
図の他の領域に現われる2入力マルチプレクサの各々
は、入力「0」及び「1」と示された2つのデータ入力
と、これらのデータ入力のどちらがマルチプレクサから
の1つの出力を送り込むかを選択するための1つの制御
入力とを有している。各マルチプレクサに使用されてい
る規定は、制御入力が論理「1」の場合にデータ入力
「1」が選択されそして制御入力が論理「0」の場合に
データ入力「0」が選択されるというものである。
非常に多数の入力を有する他のマルチプレクサも種々の
論理図に現われており、2入力装置と同様に作動する。
例えば、4入力のMUXは、4つの入力値の1つを選択す
るために4つのデジタル値を有する2ビット制御ライン
を備えている。
一致レジスタMからの出力は、MUX30の「0」入力に接
続され、これは、一致レジスタから得られた一致値又は
裕度レジスタTOL(3)から得られた新たな一致値のい
ずれかを選択するのに用いられる。裕度レジスタは、ア
ンドゲート32を通してMUX30の「1」入力に接続され、
アンドゲートの他方の入力は、4入力MUX34の出力から
送られる。MUX34は、一致ラインが新たな一致値を受け
取るかゼロを受け取るかを判断するためのソースを選択
する。考えられるソースは、論理「1」入力であり、こ
れが選択された場合には、新たな裕度、以下に述べるA
レジスタの状態、M、即ち一致レジスタMに記憶された
値がゼロ(Mgt0)より大きい状態、或いは、汎用ライン
(Tn)の1つの状態を常にロードする。プログラム可能
なMソースフラグMS(2)は、裕度レジスタ又はゼロの
いずれを一致ラインにロードするかをどちらの状態で判
断するかの選択を制御する。
MUX30は、アンドゲート36を通してMUXの制御入力に送ら
れるロード裕度信号LTによって制御され、アンドゲート
の他方の入力は、通常「1」の信号である。それ故、殆
どの場合にそうであるようにLT信号が論理「0」である
時には、Mレジスタの値がMUX30を経てその出力ライン
に送信され、該ライン上の値はMwで示される。このMwラ
インは2つの経路に分割され、その一方は、別のMUX38
の「1」入力に直結され、その他方は減少回路40を通
り、その後の信号がMwm1(Mwマイナス1)で示されてい
る。減少回路は、入力値がゼロでない限り入力値より1
だけ小さい値を形成し、入力値がゼロの場合には、ゼロ
が形成される。この信号はアンドゲート42を通過し(そ
の目的は以下で述べる)、ここから信号MyとしてMUX38
の「0」入力に送られる。
MUX38は、プロセッサの最も重要な機能の1つ、即ち、
Mライン上の一致値を選択的に減少する機能を実行す
る。このMUXのための制御ラインは、「比較論理」の部
分で第4a図を参照して述べるように、入ってくるテキス
ト文字と記憶されたパターンとを比較することによって
得られる一致信号から取り出される。第4a図の比較論理
回路は、CeqP(文字−等しい−パターン)と示された一
致信号を発生し、この信号は、別のMUX44、排他的オア
(XOR)ゲート46及びオアゲート48を含む或る付加的な
論理回路を経てMUX38を制御するように供給される。MUX
44は、CeqP信号か、CTと示された信号によって制御され
る汎用ラインTnのいずれかから導出される別の信号かを
選択する。このMUX44の出力は、XORゲート46に入力さ
れ、該ゲートの他方の入力は、IC(反転−比較)と示さ
れた制御信号であり、これは、反転すべき一致信号を感
知できるようにする。更に、一致信号はオアゲート48を
経てMUX38を制御するように通される。基本的に、一致
がある場合、即ち、一致値が変化しない場合に、Mw入力
が選択され、一致がない場合、即ち、減少された値が選
択された場合に、My値が選択される。MUX38の出力はMz
と示されている。
Mz信号は、別のMUX50(その目的は、余計な文字の検出
に関するものである)の「1」入力に送られ、信号Msと
して出てきて、遅延レジスタDMに入力される。DMレジス
タの出力は、文字の欠落の検出に用いられる別のMUX52
の「0」入力に送られ、信号Mtとして出される。この信
号は、或る場合に遅延レジスタの選択的なバイパスを制
御するのに用いられる更に別のMUX54の「0」入力とし
て導入される。このMUX54の出力は、一致ライン上に現
われるMo信号である。
新たな一致値がこのセルにロードされない簡単な場合に
は、一致論理回路は、クロックサイクルごとに新たな入
力値Miを一致レジスタに通し、一致レジスタMに既に記
憶されている値を一致遅延レジスタDMに通すように作動
し、該遅延レジスタの内容はMoとして出力される。一致
論理回路の重要な機能は、セルに到着する文字とセルに
記憶されたパターンとの間に一致が検出されない場合に
遅延レジスタに送られた一致値を減少することである。
一致論理のこの予備的な説明で、第3図を参照して述べ
る簡単なサーチを理解されたい。
簡単なサーチ機能 第3a図ないし第3e図に示す特定の例についてサーチの機
構を最も良く説明することができる。これらの図におい
て、C1、C2及びC3と示された3つの連続するセルは、入
ってくるデータ流に対してサーチすべきパターンで初期
化される(初期化段階中に)。この例では、サーチパタ
ーンがCAT(猫)というワードである。セルのパターン
レジスタは、各々、文字C、A及びTを含んでいる。第
1のセル(C1セル)の裕度レジスタは、所望の一致裕度
で初期化される。この例では、これが「1」と仮定さ
れ、完全な一致が所望されることを意味する。他のセル
の裕度レジスタは、使用されない。
初期化の後に、セルは次のような内容を有する。
C1 C2 C3 パターン C A T マスク U U U 裕 度 1 0 0 L T 1 0 0 (他のフラグは、全て、0にセットされる。)マスクフ
ラグは、データに大文字が現われるか小文字が現われる
かに拘りなく一致を強制するようにセットされた或るビ
ットを有している。これは、文字Uで示されている。
文字Cが第1セルC1に入力された場合には、一致が見ら
れ、一致値「1」が一致遅延レジスタDMに通される。こ
の遅延レジスタの目的は、一致ラインにおける一致値の
伝播速度を文字ラインにおけるデータの伝播速度と同期
させることである。n個の文字のサーチパターンの場合
には、データ流内のn文字シーケンスがサーチパターン
を完全に通るために、2n個のクロックパルスが必要とさ
れる。それ故、データ流の最後の文字が出てきた時にプ
ロセッサから一致結果を与えるためには、一致ラインの
値が文字クロック速度の半分の速度でラインに沿って進
むことが必要である。各セル位置にある遅延レジスタ
は、このタイミングの相違を加味する。遅延の必要性を
考慮する別の方法は、2つの隣接する文字が一致する間
に生じなければならないクロックサイクルの数を考慮す
ることである。第3図のライン(b)に示されたよう
に、セルC1においてCが一致した後、ライン(d)に示
すように一致検出セルC2についてAが整列される前に、
2つのクロックサイクルが生じなければならない。
第3図のライン(a)においては、文字CATXがサーチパ
ターンに近づくものとして示されている。各セルの2つ
の数は、各々、Mレジスタ及び一致遅延レジスタにおけ
る一致値を表わしている。これらは、最初に全てゼロに
される。ライン(b)では、文字Cが第1セルC1に進め
られ、「1」が裕度レジスタからMレジスタへ挿入され
る。ライン(c)では、文字Cが第2セルC2へ進めら
れ、文字Aが第1セルC1の場合と同様に進められる。第
1セルC1においては手前のラインに一致が生じているの
で、一致値「1」がこのセルの遅延レジスタに進ませら
れる。ライン(d)に示すように、次のクロックサイク
ルにおいては、第1セルの遅延レジスタからの「1」が
第2セルC2のMレジスタにシフトされ、ここで、データ
文字AがサーチパターンのAと整列される。次のサイク
ルでは、ライン(e)において、「1」が第2セルC2の
遅延レジスタに進められる。というのは、このセルには
既に一致があるからである。次のサイクルにおいては、
ライン(f)において、「1」が第2セルC3のMレジス
タに伝播され、ここでは、文字Tが一致する。ライン
(g)では、第3セルC3に既に一致があるので、このセ
ルの遅延レジスタに「1」が移動される。最後にステッ
プがライン(h)に示されており、ここでは、一致値
「1」が文字Xと共にサーチパターンから出てくる。こ
れは、データ流に位置したパターンを直ちにたどる。パ
ターンの各次々のセルに一致が検出された場合にのみ一
致値がセルのサーチパターンにわたって伝播することが
明らかであろう。
「1」より大きな一致値がサーチパターンの第1文字に
導入された場合には、データ流において1つ以上のエラ
ーを許容することができる。例えば、一致値「3」が使
用された場合には、CATが「3」の結果を生じ、COTが
「2」の結果を生じそしてCOPが「1」の結果を生じ
る。エラーが1つあるごとに、一致値が「1」だけ減少
する。3文字パターンにおいて、一致値をゼロに減少す
るためには3つの文字全部がエラーとならなければなら
ない。
文字の欠落及び余計な文字の処理 以上に述べた一致回路は、裕度レジスタによってセット
された範囲内でテキスト流の不正確な文字を許容できる
が、文字の欠落や余計な文字があると、その後の文字を
認識できないことになる。然し乍ら、本発明の一致論理
回路は、テキスト流における文字の欠落及び余計な文字
を検出する手段を備えている。
文字の欠落や余計な文字を処理する論理の基本的な考え
方は、一致がとられている現在の文字が正しい文字、文
字の欠落、余計な文字又は不正確な文字であることを各
々のセルが常時仮定して、各クロックサイクルにおける
「最良」の解釈、即ち、最も少ないエラーと最も高い一
致値を生じるような解釈を選択することである。
文字の欠落を処理するためには、セルは、一致値がテキ
スト流の次の文字と同時に次のセルに伝播されるように
遅延一致レジスタDMをバイパスすることが必要である。
然し乍ら、文字の欠落は一致エラーを生じるので、一致
値が減少される。第3b図は、これを示している。パター
ンは、CATであり、これは、1つのエラーを許容するも
ので、即ち、許容値は2である。入ってくるテキストは
CTXであり、ここで、Xは所望のパターンに続く文字で
あり、文字Aが欠落している。文字Cは、第3a図の場合
のようにステップ(b)において一致し、その後は、ス
テップ(c)において次のセルに組み込まれるべき次の
文字に対し遅延レジスタDMに2の一致値が残される。然
し乍ら、この例では、次の文字がAではなくてTであ
る。Tは一致せず、Mが通常減少されて、DMにセーブさ
れ、一方、Tはタイミングを合わせてTセルに入れら
れ、Mラインにゼロが現われ、一致の連鎖が失われる。
然し乍ら、欠落/余計な文字の論理においては、Aセル
がAが欠落していると仮定し、従って、一致値M−1、
即ち、2−2=1と共にテキスト文字Tをタイミングを
合わせてTセルに入れ、DMレジスタをバイパスさせる。
DMは前記したように依然として1であることに注意され
たい。然し乍ら、この連鎖は、2ステップ後に、即ち、
ステップ(g)において終わるが、テキストのTがステ
ップ(e)においてTセルに一致するので、文字欠落の
連鎖は生き続ける。
テキストに含まれた余計な文字を処理するためには、プ
ロセッサは、一致値を「捕獲」する時まで次のパターン
文字を与えるように、1つの余計なサイクルの間、DM値
を保持しなければならない。然し乍ら、DMに保持された
一致値は、余計な文字が一致エラーを生じるので減少さ
れる。第3c図は、余計な文字の処理の一例を示すもの
で、ここでは、パターンが1つまでのエラーを含むCATS
であり、入ってくるテキストがCATXTSである。通常、こ
のテキストは、セルに記憶されたパターンに一致しな
い。というのは、余計な文字Xがサーチ連鎖を開始させ
るからである。然し乍ら、欠落/余計な文字の論理で
は、DMの値が1つの余計なサイクル中Aセルに保持さ
れ、Tが連鎖を捕獲できるようにする。従って、前記し
たように、Cがステップ(b)においてセルCに一致
し、ステップ(d)においてAがAセルに送り込まれる
間、DMに2が残される。Aも一致し、次の文字がTセル
に送り込まれる間、DMに2が残される。ステップ(f)
においては、次の文字がTではなくてXである。このX
は、通常、AセルのDM値から2の値を搬送し、その後、
0の値を残す。然し乍ら、欠落/余計な文字の論理が作
動可能にされた状態では、DMの2の値が1サイクル中保
持され、ステップ(f)において1に減少される。ここ
では、Xの後の次の文字によって再び連鎖が取り上げら
れることが予想される。実際には、次の文字は所望の文
字Tであり、これは、サイクル(g)においてDMからT
セルへ値1を搬送し、連鎖を再開させる。Tが一致し、
ステップ(H)においてDMに1が残される。次いで、S
がこれをSセルに搬送し、ステップ(i)において一致
が生じる。この一致値は、ステップ(k)において次の
文字によりパターンから取り出され、一致結果を生じ
る。
最初の印象として、一致がとられている現在の文字が欠
落であるか余計な文字であるか不正確な文字であるか正
確な文字であるかを各セルにおいて判断することは困難
であると思われる。その解決策は、全ての可能性を同時
に与え、次いで、最も高い一致値を生じる結果を選択す
るような論理を形成することである。従って、所与のサ
イクルにおけるDMの次の値は、文字が一致する場合はM
から導出することができ、文字が一致しない場合はM−
1から導出することができ、或いは、最後の文字が余計
な文字であると分かった場合にはDM−1から導出するこ
とができる。次いで、DMは、DM−1とM−kの大きい方
にセットされ、kは、一致がない場合は1であり、さも
なくば0である。同様に、セルからの出力一致値Moは、
文字の欠落や余計な文字を含むことなくパターンが一致
する場合にはDMであるし、現在セルの文字が欠落する場
合にはM−1である。この場合も、Moは、DMとM−1の
大きい方にセットされる。これは、第4b図の一致論理回
路において比較器62とMUX52とによって行なわれる。
一般に、テキストの厳密に一致する連鎖の場合には、2e
+1の連続した一致が生じる。但し、eは、許容される
エラーの数であり、これは、一致ラインMに最初に出さ
れる裕度レジスタの値より1だけ小さい。例えば、第3e
図において、パターンは、エラーを1つまで含むCATで
ある。テキストにCATXが現われた時は、3つの一致が形
成される。第1の一致は、Aに続いて形成される。とい
うのは、CAは、CATの1つの文字が欠落したものだから
である。もちろん、厳密な一致CATの後にも一致が形成
される。次いで、Xの後に第3の一致が形成される。と
いうのは、CATXは、CATに1つの余計な文字が付いたも
のだからである。
完全を期すため、第3d図は、テキストCQT、即ち、不正
確な文字において1つまでのエラーでパターンCATが一
致する場合を示している。図から明らかなように、欠落
及び余計な文字の連鎖は、ストリングの終了によって消
滅し、Tに続いて1つの一致が形成される。
欠落/余計(ME)の制御フラグは、各セルにおいて欠落
/余計な文字の論理を作動可能にする。このフラグがゼ
ロ即ちオフである時には、セルは、文字の欠落も余計な
文字も許容せず、あたかも論理が存在しないかのように
機能する。
文字欠落の機能を実行する一致論理回路は、MUX60の
「0」入力に至る信号My(減少された一致値)のフィー
ドホワード経路を備えている。MUX60の「1」入力は、M
w信号(減少されないM値)から導出され、MUXのための
制御信号は、HYPと示されたフラグであり、これは、以
下で述べるハイフンで結んだ特殊な機能に用いられる。
通常、フラグHYPはゼロであり、MUXを通る送信に対して
「0」入力が選択され、このMUXの出力はMrで示され、M
UXの「1」入力として接続される。信号Mrは、遅延レジ
スタをバイパスするフィードホワード信号であって、こ
れは、減少回路40によって減少されている。MUX52に送
られる制御信号は、Mrの値と、遅延レジスタDMの値とに
基づいてどの入力を選択するかを決定する。比較器62
は、Mr及びDMの値を入力として受け取り、MrがDMより大
きいかどうかを示す2進信号MrgtDMを出力として発生す
る。この信号は、アンドゲート64において、MEと示され
たフラグとアンドされ、このフラグは、欠落/余計な文
字の論理回路を作動可能にするために「1」にセットさ
れる。MrがDM値より大きい場合には、MUX52の「1」入
力が選択され、バイパス路を経て一致値が出力ラインMo
に供給される。
余計な文字の処理を実行する一致論理の要素は、更に別
のMUX66を備えており、該MUXは、遅延レジスタの出力か
ら直接供給される「1」入力と、同じソースから減少回
路68を経て供給される「0」出力とを有している。Muと
示されたこのMUXの出力は、MUX50の「0」入力に接続さ
れる。このMUXの制御回路は、比較器70と、オアゲート7
2と、別のMUX74とを備えている。比較器70は、遅延レジ
スタへの通常の入力Mzが遅延レジスタの出力からフィー
ドバックされる一致値Muより大きい場合にのみ論理
「1」出力を発生する。この信号は、MEフラグの逆数と
オアされる。前記したように、MEフラグは、欠落/余計
な文字の論理回路を作動可能にするように「1」にセッ
トされる。それ故、MEがゼロの場合には、オアゲート72
の出力が「1」であり、この値は、MUX74を通してMUX50
の「1」入力を選択し、余計な文字のフィードバック路
が無視される。MEが「1」の場合には、選択されるべき
MUX50の同じ入力に対し、MzがMuより大きくなければな
らない。MuがMzに等しいか又はそれより大きい場合に
は、Muの値を搬送するフィードバック路が入力として選
択される。
他のプログラム可能なフラグ 「そこになければならない(must-be-there)」を意味
するMBTフラグは、パターン文字がテキスト流の予想位
置に存在しない場合に、セルに含まれた一致値を単に減
少するのではなく、一致値を強制的にゼロにするために
用いられる。
PASSフラグは、MラインがMUX54を用いて見掛け上透過
的であるようにするために用いられる。出力信号Moは、
遅延レジスタDMから導出されるのではなく、Mの値にセ
ットされる。
CTフラグ(Tにおける文字の一致)は、MUX44において
比較論理回路をバイパスできるようにする。CTがオン
(1)である時には、一致論理回路がTnを見て、一致が
あるかどうかを判断する。従って、複雑なパターンを一
致させ、それにより生じる一致値をTラインにセーブ
し、これを後で他のパターンに繰返し使用するように検
索することはできるが、1回の使用につき1つのセルし
か使用できない。これは、非アルファベット文字を経済
的に一致させるのに特に有用である。というのは、一般
的な用途においては、非アルファベット文字との始めと
終りの境界を見出すことが所望されるからである。CTフ
ラグを用いると、この形式のサーチに必要なセルの数が
相当に減少される。
HYPフラグは、プロセッサの特殊なハイフォン処理機能
を行なうのに使用できる。典型的に、テキスト内のワー
ドは、ハイフォン文字と、これに続く多数のスペース
と、新たな行又は新たな頁の文字によって中断される。
ハイフォンで結ばれたワードは、特殊な処理を行なわな
いと検出することが困難である。というのは、ハイフォ
ンで結ばれた考えられる全ての代替物を含む質問を構成
しなければならないからである。HYP機能セルは、ハイ
フォンが生じるワード内の各点に挿入される。通常、HY
Pセルは、Mの一致値をMoに通し、透過的なセルとして
働くに過ぎない。これは、MUX60によって行なわれる。
パターンレジスタは、ハイフォン文字、典型的に「−」
にセットされるが、おそらく他の文字にセットされても
よい。Tnは、ハイフォンに続く「ホワイトスペース」文
字、例えば、「スペース」、「タブ」、「新しい行」又
は「新しい頁」に一致するように予めセットされる。ハ
イフォン文字が一致した時には、Tnからの値が1である
限り、即ち、ハイフォンに続いてホワイトスペースのみ
が存在する限り、DMをその現在値に保持するようなモー
ドにセルが入る。非ホワイトスペース文字が到着する時
には、DMが減少される。これは、MUX66によって達成さ
れる。その作用は、ワードを中断しているハイフォンを
橋絡し、欠落/余計なデータをそのまゝに保つことであ
る。
アキュムレータ論理 アキュムレータ、即ち、Aラインは、サーチ結果を種々
の方法で合成するのに用いられる。第4c図に示すよう
に、アキュムレータ論理回路は、1ビットのアキュムレ
ータレジスタAと、このAレジスタの値と合成するオペ
ランドを選択するための8入力のMUX80と、Aレジスタ
の内容及び選択されたオペランドに基づいて実行すべき
論理機能を定める4入力のMUX82とを備えている。又、
Aレジスタに記憶された前の値を含む遅延アキュムレー
タレジスタDAも設けられている。
MUX80は、オペランドを選択するためにOS(3)と示さ
れた3ビットフラグによって制御される。基本的に、ア
キュムレータ論理回路は、選択されたオペランドと、A
ラインを経て入ってくる値とに基づいて選択された論理
機能を実行することができる。選択について利用できる
オペランドは、一致レジスタが0より大きいことを示す
(Mgt0)信号と、セル内のカウンタKから導出される2
つの信号と、選択された記憶ラインTnの状態を表わす信
号と、カウンタKの桁上げを表わす信号と、遅延アキュ
ムレータDAから導出された信号と、比較論理回路から導
出された一致信号CeqPとを含む。
選択されたオペランド及びAレジスタの信号は、2ビッ
トの制御信号として、MUX82に供給される。MUXへのデー
タ入力は、アキュムレータ機能のためのAFと示された4
つの2進信号である。このAF信号は、2つの制御信号入
力に基づいて実行すべき論理機能を定める。実際に、AF
信号は、2つの制御信号入力に基づいて所望の機能を実
行する結果の真理値表を構成する。これは、簡単な例か
ら明らかである。
Aレジスタの内容と、一致ラインがゼロより大きい状態
から導出された信号とを論理的にアンドすることが所望
されると仮定する。OSフラグは、MUX80へのMgt0入力を
選択し、所望のオペランドを選択するようにセットされ
る。所望のアンド機能のための真理値表は、関数Aとオ
ペランドとをアンドしたものが、A及びオペランドの両
方が「1」である時を除く全ての場合に「0」となるよ
うなものである。従って、AF入力に送られる値は、0001
となる。MUX82からの出力、即ち、Ao信号は、入力(A
及びオペランド)が「00」、「01」及び「10」である時
に「0」となるが、入力が「11」である時には「1」と
なる。Aレジスタと選択されたオペランドとの他の論理
的な組み合わせは、A関数信号AFを適当に選択すること
によって形成することができる。このようにして、Aラ
インは、Mライン及び他のラインからの結果と、現在の
一致信号、カウンタの状態を示す信号、カウンタからの
桁上げ信号及び遅延されたA信号DAからの結果を組み合
わせるのに使用することができる。
遅延アキュムレータレジスタDAは、参照番号84によって
のみ一般的に示された論理回路を通してロードされ、そ
の目的は初期化手順に関するものである。2つのアンド
ゲート86は、Aレジスタ及びDAレジスタの両方から入力
を受け取るように接続され、2つの出力信号を発生する
ために、その一方は、Aレジスタが「0」から「1」に
移行する時を指示し、そしてその他方は、Aレジスタが
「1」から「0」に移行する時を指示する。これらの信
号は、サブセットサーチについて述べる増加及び減少回
路に使用される。
カウンタ論理 第4d図に示されたように、カウンタ論理回路は、各セル
のカウンタK(8)の動作を制御するのに使用される。
基本的に、このカウンタには、カウンタロードソース
(CLS)フラグによって選択された2進信号が値「1」
である時に、長さレジスタLENに記憶された値がロード
される。更に、このカウンタは、DECによって指示され
た減少ソースの状態に基づいて増加又は減少される。こ
のカウンタに記憶された現在の値は、セルにおいて行な
われる種々の判断を調整するのに利用できる。
より詳細には、カウンタのロード動作は、8つの入力か
らロードソースを選択するために3ビットの制御信号CL
Sを有する8入力のMUX90によって制御される。カウンタ
のロード動作を開始させるための考えられる状態は、一
致レジスタがゼロより大きい(Mgt0)状態、Lラインが
「1」の状態、Aラインが「1」の状態、選択された汎
用ラインTnに「1」が現われる状態、及び他の信号の組
み合わせから3つの合成ロード信号が導出される状態で
ある。いかなる状態のもとでもカウンタのロード動作を
防ぐためには、MUX90への入力として論理「0」が選択
される。
カウンタを増加又は減少するための状態の選択は、DEC
と示された3ビット信号の制御のもとでMUX96を用いて
同様に実行される。カウンタKを制御するのに用いられ
るあり得べき状態は、Aラインが「1」であり、一致ラ
インがゼロより大きく、選択された汎用ラインTnに
「1」が現われ、Lラインに「1」が現われ、或いは、
Dラインに「1」が現われる状態である。カウンタを変
更するか又はその変更を阻止するために、各々、入力と
して固定の「1」又は固定の「0」が選択される。
8つのカウンタビットは、Kが0に等しい状態、1又は
−1に等しい状態、0より小さい状態、0に等しいか又
はそれより小さい状態、等々の種々の状態を表わす信号
を形成するように論理的に合成される。これらの状態
は、他の信号と組み合わされて、信号KPeq0及びKP1t0が
形成される。これらの信号は、「Kプライムがゼロに等
しい」状態及び「Kプライムがゼロより小さい」状態を
意味し、ここで、Kプライムは、カウンタがその次のク
ロックサイクルの際にとる状態である。
増加及び減少論理 第4e図に示すこの論理回路は、プロセッサのIライン及
びDラインの状態を制御するのに使用される。入力信号
Ii及びDiはI及びDラインを経て受け取られ、増加及び
減少レジスタI及びDに各々接続される。参照番号100
で一般的に示された論理回路は、Aライン上の値の正及
び負の遷移を各々指示する信号A01及びA10をアキュムレ
ータ論理回路から受け取り、それに対応する増加及び減
少信号を、増加及び減少論理回路で更に処理するために
発生する。参照番号102で一般的に示された論理回路
は、衝突回避論理回路であり、その必要性については、
サブセットのサーチ項のサーチについての説明から明ら
かとなろう。
基本的に、増加及び減少論理回路の主たる機能は、Aレ
ジスタの状態の遷移を表わす信号を搬送することであ
る。明らかなように、この機能は、サーチ項のサブセッ
トを探索する性能において有用である。衝突回避論理回
路102は、I又はDラインがその入力から「1」信号を
既に搬送しているためにセルのAレジスタの遷移をI又
はDラインに記録できない場合に生じる問題に対処する
ために必要とされる。このような場合、論理回路102
は、レジスタIP及びDP(各々「増加ペンディング」及び
「減少ペンディング」を意味する)の1つに遷移情報を
セーブし、ここから、後で、Ii又はDi入力に入ってくる
データとの衝突がない時に、I又はDラインを経て送信
される。
汎用ライン 第4f図に示すように、Tnと示された12本の汎用ラインが
あって、サーチプロセッサのセルを接続している。これ
らは、中間の一致結果を12個の対応する1ビットレジス
タT4-T15に記憶するのに用いられる。各セルは、汎用レ
ジスタの選択された1つから読み取りを行なうための論
理回路と、汎用ラインの選択された1つに書き込みを行
なうための論理回路とを含んでいる。読み取りの論理回
路は、16入力のMUX104を備え、これは、12個の汎用レジ
スタの出力から供給される12本の入力ラインと、4つの
他の特殊で有用な入力とを備えている。他の4つの入力
は、Fレジスタ、Lレジスタ並びに論理「1」及び論理
「0」からのものである。4本のアドレスラインADR
は、MUX104を制御し、16個の入力の1つを選択する。そ
の出力は、Tnと示されており、裕度レジスタのロード動
作を開始したり、アキュムレータ論理回路のオペランド
として働くといった多数の種々の目的に利用される。
16個の出力の1つを選択する4ビットのプログラム可能
なアドレスフラグADRを有したアドレスデコーダ106は、
14本のラインの1つをデータ出力として選択するのに用
いられる。この14本のラインは、12本の汎用ラインT4-T
15と、ラインF及びLである。デコーダ106の出力のう
ちの2つは使用されない。デコーダ106の14個の出力の
各々は、14個のMUX108の対応する1つへ制御入力として
接続される。各MUX108の「0」入力は、対応するレジス
タから直接供給される。「1」入力は、WRSと示された
3ビット制御入力を書き込みソースとして有する8入力
のMUX112の出力から導出されて共通の新たなデータライ
ン110から供給される。このMUX112は、選択された出力
ラインに書き込むようにデータのソースを選択すること
ができる。ソースの選択には、MUX104からのTnラインの
選択、Toレジスタの直接的な選択、A、I、D及びLレ
ジスタの選択、桁上げK信号の選択及びMgt0(一致値が
0より大きい)信号の選択が含まれる。
いかなるセルにおいても、この論理回路を使用して、指
定の汎用レジスタから読み取りを行なったり、同じセル
において、選択されたデータソースから同じ汎用レジス
タに書き込みを行なったりすることができる。汎用レジ
スタを制御する論理回路は、本発明のセル構造体におい
て一致値及び他のデータを処理するための非常に融通性
のある構成体をなす。一致値は、ネスト構成の複雑さレ
ベルで記憶及び検索することができ、共通に使用される
F及びLラインを同じ論理回路で処理することにより、
多数のサーチ機能が容易にされる。
作動モード 以上に述べたハードウェアは、多数の色々な機能モード
で動作することができ、これらのモードを反復的に結合
及びネスト構成にすると、非常に多数の色々なサーチ機
能を行なうことができる。然し乍ら、説明上、これらの
サーチ機能は、それらのより一般的な作用について述べ
る。文字の簡単なストリングを伴う簡単なサーチは既に
説明したので、ダイヤグラムの形態で要約する。次の複
雑さレベルは、上記の簡単なケースと同様であるが同じ
テキスト流内のCAT又はDOGのような代替パターンをサー
チするための代替ストリングである。
テキストのセグメント即ち窓内でサーチを行なうべき場
合には更に複雑さが増す。窓とは、センテンス、パラグ
ラフ又はドキュメントのように境界において或るパター
ンで定められるテキストセグメントである。例えば、セ
ンテンス内の全てのパターン一致をサーチする場合に
は、例えば、「固定」窓がある。サーチは、1つのセン
テンス内でCAT及びDOGの全ての一致を探索することがで
きる。サーチプロセッサは、所望のサーチパターンが存
在するかどうかについて各センテンスを調査し、テキス
ト流と同期してプロセッサからの出力として一致信号を
発生する。
スライド窓とは、所望のパターン一致を探索してテキス
ト流に沿って「スライド」する窓である。例えば、3つ
の隣接するセンテンス内でCAT及びDOGの全ての発生を見
つける。一致が見つかったセンテンスは、センテンス1
−3、2−4、3−6、又は、他の3センテンステキス
トセグメントであり、これは、なぜスライドセグメント
と称するかの説明を助成するものである。
サーチ機能のもう1つの任意の作用は、簡単な計算上の
条件を含ませることである。例えば、 「少なくとも1匹のCAT」及び「せいぜい0匹のDOG」 或いは又、これらが更に複雑な計算上の条件であるかど
うかということである。例えば、 「少なくとも3匹のCAT」及び「せいぜい2匹のDOG」 もう1つの任意の作用は、サブセットのサーチ項につい
ての一致を伴うか否かである。例えば、固定又はスライ
ドの指定窓内で少なくとも2匹のCAT、DOG及びMOUSEを
見つけることは、各項に位置が少なくとも1匹又はせい
ぜい0匹といった簡単な計算に限定される簡単なサブセ
ットサーチである。複雑なサブセットサーチは、次のよ
うな項を含む。即ち、 「5つのセンテンス内で、((少なくとも3匹のCAT、
少なくとも4匹のDOG、せいぜい1匹のMOUSE)のうちの
少なくとも2匹)」 これは、複雑な計算上の項を含むだけでなく、2つのネ
スト構成の複雑さレベルも含むことに注意されたい。
更に別の任意の作用は、サーチの定義に任意のブール式
を含ませることである。例えば、 (CAT且つDOG)又は(KITTEN且つPUPPY) 本発明のサーチプロセッサにおいては、これらの作用が
色々な組み合わせ及び色々なネスト又は反復レベルで現
われる。考えられる全ての組合せを説明するのは不可能
であるから、サーチ機能の幾つかの作用のみについて述
べる。
第5a図ないし第15a図の各々には、サーチパターンの全
てのセルにおけるプログラム可能なフラグの対応設定を
与えるマイクロコードリストが付随されている。使用す
る規定は、フラグが単一ビットフラグである場合に、そ
の名前のみがLTといったように記載されることである。
これにより、このフラグは「1」にセットされる。多ビ
ットフラグの場合には、AF=6といったようにフラグの
設定が行なわれる。記載されていないフラグは全て0で
あると仮定する。
簡単なストリングのサーチ 簡単なストリングのサーチの例は、第3図を参照して述
べたように、サーチパターンCATに対して一致信号が発
生された。第5図は、このサーチをダイヤグラム形態で
示している。文字C、A、Tは、各パターン文字に対し
て個々のセルの存在を意味し、ダイヤグラムの左側にあ
る文字Mは、簡単なサーチに対して必要とされる唯一の
ラインであるMラインを示している。Cセルの下の数
「1」は、そのセルのMレジスタに裕度1がロードされ
ることを示している。
窓の考え方を導入しない場合には、次の例で述べるよう
に代替の考え方を加えなければ、簡単なストリングのサ
ーチの複雑さを著しく拡張することはできない。例え
ば、DOGではなくパターンCATに対して全テキスト流を簡
単にサーチすることはほとんど意味がない。サーチ項CA
T及びDOGは、大きなデータベースからの全テキスト流に
適用した時にはほとんど実用性のないものであり、セン
テンス又は複数の連続ワードのような予想されるテキス
トセグメントを構成しない。
代替なしの簡単なサーチ 第6図に示す例は、代替サーチ:CAT又はDOG又はMOUSEに
対するものである。このサーチは、Mライン及びAライ
ンの両方を含み、サーチ項を分離する垂直線は、代替、
即ち、論理オア機能を指示する。この場合も、一致値
「1」がCAT項のCセルにおいてMラインにロードされ
る。CAT項の終りには、アキュムレータ論理回路(第4c
図)のMUX80においてMgt0信号を選択しそしてAライン
の出力に対してMgt0信号をコピーするようにA関数ビッ
トAFを選択することにより、Mラインからの一致値がA
ラインに転送される。アキュムレータ論理回路は、選択
されたオペランドをセルのAレジスタからの値と論理的
に合成することを想起されたい。この場合、選択された
オペランドは、非ゼロの一致値を示すMgt0信号であり、
AFビットにおいて選択された論理関数は、Aレジスタの
値に拘りなくMgt0値がA出力Aoに直接コピーされるよう
にする。従って、AFビットは値0101に初期化され、出力
信号Aoは、オペランドMgt0の時にのみ「1」となる。一
致ラインは、DOGのDセルに「1」の裕度値をロードす
ることにより、DOG項の開始時に再び「1」にリセット
される。DOG項の終りには、一致ラインとAラインのオ
アがとられる。この場合も、これは、アキュムレータ論
理回路を適当にセットすることによって行なわれる。特
に、Mgt0信号はこの場合もオペランドとして選択され、
オア関数の真理値表は、アキュムレータ論理のAFビット
に対してプログラムされる。特に、AFビットは、値0111
に初期化され、従って、A又はMgt0のいずれか又は両方
が「1」である時に出力Aoが「1」となる。
MOUSEサーチ項についても同じ手順が繰り返され、MOUSE
からの一致値は、ラインAに現われるCAT及びDOGからの
一致値とオアされ、ラインAはサーチの所望の結果を搬
送する。論理オア演算は、代替ストリングの最後のもの
を除いて、他のセルと結合することができる。それ故、
要求されるセルの数は、全文字数+1に等しい。
代替を伴う簡単なストリングのサーチのより複雑な例が
第7図に示されている。このサーチは、alternativel
y、alternatingly及びalternatelyというワードに対す
る一致を探索するように構成される。共通の基部「alte
rna」からの一致値は、Lラインにセーブされ、このラ
インは、「tive」、「ting」及び「te」の各項の始めに
一致値「1」をMラインにロードし始めるようにするた
めに使用される。これらサーチ項の結果は、Aラインに
おいて互いにオアされ、3つのオア演算の出力は、「l
y」の項に対してサーチするためにもう一度Mラインを
ロードするのに使用される。もちろん、もっと複雑なネ
ストレベルも考えられる。
固定の窓 第8図は、サーチが1つのセンテンス内でCATに対する
ものであってDOGに対するものではないような簡単な場
合を示している。固定窓サーチの第1の部分は、窓の境
界を位置設定することである。センテンス窓の場合に
は、境界がピリオドであるか、クエスチョンマークであ
るか又は句読点である。代替物におけるこれら文字のサ
ーチは、簡単な代替物サーチの場合と同様に行なわれ
る。それらの結果は、Aラインにおいて互いにオアされ
る。センテンス検出の結果は、ロードラインLに転送さ
れ、このラインは、サーチ項CAT及びDOGの各々の終りに
カウンタの値をロードし始めるのに使用される。サーチ
項は、それらのストリングの文字セルにロードされた一
致値を有し、一致が検出された場合にMラインに一致値
を形成する。この一致値は、0より大きい場合に、サー
チ項に続くセルのカウンタを減少するのに使用される。
基本的に、これは、001のDECフラグを用いてカウンタ論
理を初期化してMUX96へのMgt0入力を選択することによ
って行なわれ、MUX96の出力はカウンタを減少するのに
用いられる。例えば、1つのCATが見つかった場合に
は、カウンタが0に減少され、カウンタのゼロ状態を用
いてAラインに「1」が与えられる。「1」の流れは、
次のセンテンス分離子に出会うまでAラインに送り続け
られる。サーチ項DOGの場合には、DOGパターンの検出
が、Aラインとアンドされるまで否定される。というの
は、所要のサーチがnot DOGに対するものであるからで
ある。Aとオペランド以外のものとの論理的な組み合わ
せは、アキュムレータ論理においてA関数ラインAFを適
当にセットすることによって行なわれる。
固定窓を用いたより複雑な場合が第9図に示されてい
る。このサーチは、1つのセンテンス内で、少なくとも
3匹の「cat」及びせいぜい1匹の「dog」に対するもの
である。これは、第8図に示した場合と同様に行なわれ
るが、サーチの計算条件を考慮するためにカウンタには
1より大きな値がロードされる。前記の例の場合と同様
に、カウンタのロード動作は、センテンス境界の指示を
搬送するロードラインLからの信号によって行なわれ
る。カウンタの長さレジスタLEN(8)は、予め所望値
に初期化され、Lラインにおける「1」の存在は、MUX9
0によって検出される。このMUXは、長さレジスタからの
カウンタのロード動作を開始させる信号ソースとしてL
ラインを選択するようにフラグCLSからのその制御入力
が000にセットされている。「dog」カウンタは、この意
味で、「2」にセットされ、2つの「dog」項の検出に
よってAライン上のアンドされた出力が作用不能となる
ようにされる。少なくとも3つの「cat」項が検出され
そしてせいぜい1つの「dog」項が検出された場合に
は、Aライン上でのアンド演算による一致結果が一致値
「1」を生じさせる。
これらのサーチにおいては、アキュムレータに与えられ
た値「1」の流れが、他の項とアンドされた時でも、セ
ンテンスの比較的大きな部分を広げることができる。サ
ーチ項の所望の組み合わせがおそらく1回生じることに
よって発生される一致状態の数を減少するために、Aラ
インがラインL上のセンテンス分離子信号とアンドさ
れ、センテンスの全セグメントに対して1つの出力一致
信号が発生される。このアンド機能は、アキュムレータ
論理回路の他の論理演算と同様に行なわれる。多数の一
致値がAラインに現われ、別々のセルにおいて、アキュ
ムレータ論理回路は、OSフラグを100に初期化すること
によりLラインをオペランドとして選択するようにプロ
グラムされ、AFフラグを0001に初期化することによって
MUX82においてアンド機能が選択される。
固定窓内の簡単なサブセット 第10図は、固定窓内の簡単なサブセットサーチを示して
いる。前記した固定窓の場合と同様に、センテンスの終
りのごとき窓の境界は、多数の代替文字パターンによっ
て検出される。一致値は、Mラインに発生され、ロード
ラインLに転送される。ロードラインは、検出されるべ
き各サーチ項の終りにカウンタに「1」をロードするの
に用いられる。この例においては、サーチ質問は、固定
窓内の1組の項CAT、DOG及びMOUSEのうちの少なくとも
2つを探索することを要求する。これら項の1つに対し
て一致が検出された時には、その一致ラインを用いてそ
の項に続くカウンタが減少される。従って、1つのCAT
が検出された場合には、それに対応するカウンタがゼロ
に減少される。同じセンテンスにおいて2つ以上のCAT
が検出された場合には、カウンタはまだゼロを指示す
る。というのは、全てのカウンタは、負の1カウントに
重ね合わされるのではなく0に「固着」するような形式
のものだからである。
各サーチ項の終りにあるセルのアキュムレータ論理回路
は、ゼロカウントが検出された場合にAラインに「1」
を出力するように構成される。カウントを含むこれらの
各セルに続いて、微分器として構成された別のセルがあ
り、即ち、このセルは、Aラインの状態を監視して、
「0」から「1」又は「1」から「0」のAラインの変
化を表わす信号を発生する。特に、この微分セルは、A
が「0」から「1」に変化する時に増加ライン「I」に
「1」を発生し、Aが「1」から「0」に変化する時に
減少ラインDに「1」を発生する。この機能を実行する
ようにセルを構成する場合には、増加及び減少ラインに
組み合わされた適当な論理回路を作動可能とするように
微分フラグDFをセットするだけでよい。例えば、CATの
ようなサーチ項の1つが検出されることによりAライン
が「1」になった時には、それに関連した微分セルが増
加ラインIに「1」を発生する。Aラインは、微分セル
から見ると、更に別のCAT項が検出された場合でもカウ
ンタがゼロに保持されるので、「1」のまゝとされる。
然し乍ら、センテンス又は他の定められた窓の終りに
は、カウンタが「1」にリセットされ、Aラインが
「0」に落ちる。これにより、センテンスの終りに減少
ラインに「1」が発生される。
サーチパターンの終りには、単一のセルが積分器のよう
に働く。このセルは、I及びDラインを受け入れ、その
カウンタには、サーチの始めに−nがロードされる。但
し、nは、サブセットにおいて見出されるべき項目の数
である。例えば、サーチによってCAT、DOG及びMOUSEの
組のうちの少なくとも2つを探索すべき場合には、積分
器に最初に−2がロードされる。サーチ項の1つが探索
されてIラインに「1」が現われた時には、積分器のカ
ウンタが増加され、即ち、負の数値で1だけ小さくな
る。サーチ項のいずれか2つが窓内で探索された場合に
は、積分器のカウンタがゼロになる。そのA論理回路
は、カウンタKが0に等しいか又はそれより大きい時に
Aラインに「1」を発生するように構成される。それ
故、サーチ質問からの出力がAラインに得られる。
積分器のカウンタはセンテンスとセンテンスとの間でリ
セットする必要がないことに注意されたい。というの
は、各サーチ項の検出により、Iラインに「1」が発生
されるだけでなく、後で、そのセンテンスの終りにDラ
インに「1」が発生されるからである。それ故、積分器
のセルのカウンタは、窓から窓へと自己リセットされ
る。然し乍ら、実際的な理由から、積分器は、センテン
スの終りに多数の減少信号から生じる衝突のおそれを回
避するために、固定窓の終りに再びロードされる。
2つ以上のサーチ項が同時に一致することがあるので、
Iラインに衝突が生じる。衝突を生じるサーチ質問の簡
単な例は、AT、HAT及びTHATの組の少なくとも2つを見
出すことである。テキストにワードTHATが現われた場合
には、最後のTがサーチ項の終りを通過した時に一致が
発生される。それ故、最後のTは、一致信号がサーチパ
ターンに沿って通過する時にこれを取り上げ続けること
を所望し、Iラインの使用に競合が生じる。このような
衝突により、1つ以上の項が検出されないことになり、
不正確なサーチ結果を招く。
このおそれを少なくするために、Dライン及びIライン
論理の衝突回避論理回路は、IP即ちIペンディングフラ
グと、DP即ちDペンディングフラグとを備えている。A
ラインの状態によりIラインに「1」の発生が要求され
るが、Iレジスタが既に「1」の状態である場合には、
衝突回避論理回路がIPフラグをセットし、このフラグ
は、Iレジスタがゼロに復帰して、ペンディングIライ
ンの「1」状態を挿入するためのオープン「スロット」
を指示するまで、セットされたまゝである。
この論理の作用は、I及びD信号の幾つかが、衝突のお
それが全くない場合に到着するよりも後で積分セルに到
着するようにすることである。これに代わるものとし
て、I及びDラインにより多くのラインが使用される
が、これは、実際的な意味で機能を改善することなくセ
ルのコストを追加することになる。衝突を招き易いサー
チは、認識及び回避が充分容易であり、衝突回避論理回
路は、サーチ結果の完全性に著しい影響を招くことなく
適当な解決策をもたらす。
サーチが計算サーチ項に対するもので、例えば、1つの
センテンス内に(少なくとも3匹のCAT、少なくとも4
匹のDOG、せいぜい1匹のMOUSE)の少なくとも2つがあ
るといった場合には、簡単な固定窓サーチに更に複雑さ
のレベルが追加される。同じ原理が使用されるが、各サ
ーチ項に続くカウンタには1より大きな値がロードされ
る。又、「せいぜい」の項は、サーチ項に続くカウンタ
セル内の別の論理によって処理され、Aラインの遷移の
方向が反転される。又、「せいぜい」の項では、その項
が指定するものより1つ大きな値、即ち、この例では
「2」にカウンタがセットされる。これにより、2つ以
上のMOUSE項が検出された際にDラインに「1」が発生
される。前記したように、指定された数の「少なくと
も」の項が検出された時には、Iラインに「1」が発生
される。
積分セルは、前記したように、I及びD信号を積分する
ように働くが、その初期値は、「せいぜい」の項を考慮
するように選択される。この例では、サーチを開始する
前に「せいぜい1」の項が既に満足され、従って、積分
セルのカウントが−1に初期化される。他の項のいずれ
かが満足されると、一致が生じるが、MOUSE項の2つが
センテンスに見出された場合には、「せいぜい」の項が
満足されず、積分器のカウントは、Dラインの「1」に
よって減少される。
簡単なスライド窓サーチ 第11図は、5つのセンテンス内でサーチ項の組み合わせ
を探索するための簡単なスライド窓サーチの例を示して
いる。簡単なサーチの各項は、「少なくとも1つ」の項
であるか、或いは、否定に等しい「せいぜい0」の項の
いずれかでなければならない。例えば、CAT及びDOGは、
第11図に示されたサーチ要求である。固定窓のサーチに
おいては、セグメントの境界を用いて、カウンタがロー
ドされ、次いで、カウンタは、Mライン上の一致結果に
よって減少される。スライド窓のサーチにおいては、セ
グメントの境界の検出を用いてカウンタが減少され、こ
れらカウンタは、Mライン上のサーチ項の検出によって
ロードされる。サーチパターンは、各々の項と、その後
に、カウンタセルとを備えている。例えば、テキスト流
においてCATが検出された際には、それにより一致ライ
ンに現われる非ゼロ値を用いて、その次のセルのカウン
タがロードされる。次いで、Mラインにおいて既に検出
されてTラインに転送された各次々のセグメント境界を
用いてカウンタが減少される。この場合、カウンタには
5の値がロードされている。5つのセンテンスが送られ
た後に、カウンタはゼロに減少される。カウンタの値
は、非ゼロのカウンタ値を検出し、そして適当な構成の
アキュムレータ論理を用いてこれとAライン上の他の非
ゼロカウンタ値とのアンドをとることによって論理的に
合成される。従って、Aラインは、サーチの結果を出力
するのに用いられる。
多数のサーチ項のアンドをとると多数の一致ストリング
がプロセッサから発生されるので、Aライン上の結果を
Tラインにまだセーブされているセンテンス境界信号と
アンドすることによって一致の数を減少することが所望
される。一致の数を更に減少するために、本発明の好ま
しい実施例では、n個のセグメント分離子ごとに1つの
一致のみが形成され、ここで、nは、スライド窓のため
に指定された巾である。
複雑なスライド窓サーチ 簡単なスライド窓サーチは、例えば、5つのセンテンス
内に少なくとも3匹のCAT及び少なくとも3匹のDOGとい
うようにサーチ質問内に計算項を導入することによって
非常に複雑化される。このようなサーチが第12図に示さ
れている。
この場合も、サーチパターンの早期部分においてセグメ
ントの境界がMライン上で検出され、セグメント境界信
号がTラインにセーブされ、カウンタを減少するのに用
いられる。然し乍ら、複雑な場合には、サーチ項の最後
のn回の発生を追跡することが必要である。但し、n
は、「少なくともn」という表現における数である。例
えば、サーチが少なくとも3匹のCATに対するものであ
る場合には、プロセッサは、CAT項の最新の3回の発生
を追跡し、その3つ全部が指定のスライド窓内にあるか
どうかを判断しなければならない。この場合には、CAT
項について3つのカウンタを設けることが必要であり、
他の項が少なくとも3匹のDOGである場合には、DOG項に
ついて3つのカウンタセルを設けなければならない。一
般の場合には、その項の最新のn回の発生がスライド窓
内に入るかどうかを判断するために「少なくともn」項
ごとにn個のカウンタが必要とされる。
第12図は、n=3の時に必要とされる論理を示してい
る。セルストリングのCATパターンに続いて第1のサイ
クルカウンタC1がある。その目的は、CATの発生回数を
カウントし、サイクルカウンタがゼロになった時に、各
第3の発生ごとに特殊な機能を行なうことである。この
特殊な機能は、一致ラインをゼロにし、一致値がもはや
セルのパイプラインに沿ったものとならないようにし、
Lラインに「1」を出力し、LENレジスタからサイクル
カウンタを再ロードすることである。CATに対する各3
つの一致値のうちの他の2回の発生は、一致ラインに沿
って次のセルへ通され、サイクルカウンタを1だけ減少
させる。Lラインが「1」になると、これが、セルC1の
すぐ下流で第1窓のカウントセルW1によって使用され、
セルW1のカウンタに窓内のセグメント数、この場合は+
5がロードされる。ラインTi上の信号として識別される
セグメント境界が次々に発生されるたびに、カウンタW1
が減少される。このカウンタが非ゼロである限りは、セ
ルC1によって検出されたCAT項がスライド窓内で生じた
ことが指示される。
パイプラインには次に第2のサイクルカウンタC2があ
り、その目的は、CATが3つおきに発生されるたびにセ
ルC1が除去された後にこのカウンタに到達するCATの2
つおきの発生を検出することである。このため、セルC2
には+1のカウントがロードされ、ゼロまでカウントダ
ウンされる。セルC2は、CATの他の発生を各々検出し、
それ故、CATの元々の発生のうちの3つおきの発生を処
理する。セルC1の場合と同様に、セルC2はCATストリン
グの1つが検出された際にMラインをクリアし、Lライ
ンに「1」を出力する。これは、次のセルW2において検
出され、このセルのカウンタをロードするのに使用され
る。又、セルW2は、セグメントの境界をカウントし、検
出されたCATストリングの少なくとも1つが指定の窓内
に生じる限り非ゼロを保持する。
セルC1及びC2がCAT項の各3つの一致のうちの2つを
「取り上げた」後に、各3つの一致のうちの残りの1つ
が一連のセルのうちの最後のセル、即ち、第3窓カウン
タW3へ通される。このカウンタは、一致ラインによって
直接ロードされ、Tiライン上のセグメント境界信号によ
って減少される。又、検出された一致が指定の窓内に生
じる限り、セルW3には非ゼロカウントが存在する。プロ
セッサのAラインに現われるセルW1、W2及びW3からの3
つの非ゼロカウンタ状態を論理的にアンドすることによ
り所望の一致状態が得られる。
サーチの始めに一度だけサイクルカウンタを初期化する
だけでよい。これらカウンタは、ゼロにリセットされる
か、又は、FラインによりLENレジスタからロードされ
る。
又、セットサーチは、固定窓のサブセットサーチについ
て述べた微分及び積分セルを用いてスライド窓内で行な
うことができる。
リンクされた窓 リンクされた窓は、固定窓のより一般化された形態であ
る。固定窓においては、単一のパターンが窓の始めと終
りを決める。然し乍ら、窓は、異なった開始及び終了パ
ターンをもつこともできる。第13図に示された質問は、 CAT[せいぜい10*]DOG であり、*文字は各テキスト文字ごとに一致する。この
パターンは、手前の10個の文字内にCATが発生するのに
続いてDOGが発生するたびに一致する。この例では、ス
トリングCATが一致し、一致結果がLラインに移動され
る。CATパターに続くセルは、MASKレジスタの全てのビ
ットが「1」にセットされるようにして初期化され、テ
キスト内の各文字ごとに一致が生じるようにされる。そ
れ故、一致出力信号Moは、常に「1」である。シーケン
スの次のセルは、Lライン上の非ゼロ値によってロード
が開始された時にカウント11(10進)がロードされるカ
ウンタを有している。このカウンタは、Mラインの非ゼ
ロ値によって減少される。CATが検出されてカウンタが
ロードされた後に、減少信号の流れがカウンタに送られ
る。というのは、手前のセルの出力が常に「1」だから
である。カウンタの値は、次に続くセルによって監視さ
れ、そのアキュムレータ論理回路は、カウンタ値が非ゼ
ロの場合のみAラインに「1」出力を発生するように初
期化される。従って、カウンタに続くセルのAライン
は、CATストリングが検出された後に10個の「1」のス
トリングを供給する。パターンDOGのDセルにおいて
は、Aラインに「1」が検出された時に裕度レジスタが
ロードされる。それ故、一致値は、CATに続く10個の文
字の間に連続的にロードされ、DOGのストリングが結果
として検出された場合には全サーチパターンから一致が
出される。
又、この形式のサーチは、「可変長さのドント・ケア」
サーチとしても知られている。DOGは、その第1の文字
がCATの最後のレターの10個の文字内に生じた場合にの
み一致する。固定長さのドント・ケアサーチは、同じ機
構によって処理することができる。例えば、パターン CAT[少なくとも10及びせいぜい10*]DOG は、CATがDOGのDの前に厳密に10個の文字に一致する場
合にのみDOGに一致する。このサーチは、第14図に示さ
れている。前記したように、CATは一致し、その結果は
Lラインに移動される。完全に一致するセルは、Mライ
ン上に「1」の流れを形成し、これは、2つの次のカウ
ンタのロードを開始するのに用いられる。その第1のカ
ウンタは、カウント10がロードされ、ゼロ等価カウント
(count-equals-zero)信号をAラインに発生するよう
に一致信号によって減少される。これは、「少なくとも
10」の状態を計算する。第2のカウンタは、カウント11
がロードされ、これも、Mラインによって減少される。
そのゼロ等価カウント値は反転され、第1カウンタから
導出されたAライン値とアンドされる。第2のカウンタ
は、「せいぜい10」の信号を発生し、カウンタセルから
の2つの信号の論理アンドによって、CATにおけるTの
後に単一の「1」の10個の文字が発生される。この一致
は、DOGサーチに対して一致値のロードを開始するのに
使用される。それ故、DOGは、CATの終了後に厳密に10個
の文字を開始する場合にのみ一致する。
この技術は、範囲をどのようにも組み合わせられるよう
に任意に拡張することができる。従って、 CAT[3〜4又は9〜12*]DOG は、CATが3、4、9、10、11又は12文字に前以て一致
する場合にのみDOGに一致する。
可変及び固定長さのドント・ケアも、同様の技術によっ
て処理することができる。従って、 CAT[せいぜい10*及びノー^.]DOG は、CATが最後の10文字内で一致しそして全ての文字が
ピリオドである時にのみDOGに一致する。^.パターン
は、ピリオド以外の全ての文字に一致するセルを指示す
る。これは、パターンレジスタをピリオドにセットしそ
して比較の方向を反転するようにIC即ち反転比較フラグ
をセットすることによって行なわれる。従って、リンク
された窓は、色々のパターン形式(そのうちの固定及び
可変長さのドント・ケアは特殊な場合である)を一致さ
せる非常に融通性のある機構を形成する。
拡張カウンタ サーチプロセッサのセルアレイは、隣接するセルの内容
を互いにリンクし、8ビットの単一カウンタのN倍のビ
ットを有する単一の仮想カウンタを形成するように構成
することができる。但し、Nは、隣接するカウンタセル
の数である。これらの拡張カウンタは、単一セルカウン
タが使用されるほとんどの場所で使用することができ
る。唯一の例外は、複雑なスライド窓に使用されるサイ
クルカウンタである。然し乍ら、大型のサイクルカウン
タは実際上ほとんど必要とされない。
カウンタを拡張する機構は、第15a図に示されている。
これは、32ビット長さの集計カウンタであり、このカウ
ンタは、10億からカウントダウンして0で止まり、これ
が0である間にAラインに「1」を発生する。このカウ
ンタは、Lによってロードされ、Mによって減少され
る。
基本的な機構は、連鎖カウントの第1カウンタに最下位
8ビットを入力し、次のカウンタに次の8ビットを入力
し、等々とすることである。最後のカウンタは最上位の
8ビットを処理する。第1カウンタからの桁上げビット
は、WKC(書き込みK桁上げ)フラグを用いてT7ライン
に書き込まれる。この桁上げは、次のカウンタ段のM信
号とアンドされ、その段のEXT(カウンタ拡張)フラグ
を使用することによってそのカウンタ段に対する減少信
号を発生する。この場合も、桁上げは、連鎖の次のカウ
ンタ段によって使用するためにT7ラインに書き込まれ
る。最後のカウンタ段以外の全てのカウンタ段は、WRAP
フラグセットを有しており、これは、カウンタをゼロの
「まわりにラップ」させ、8ビットのカウンタ段におい
て0から−1(即ち、10進で255)までカウントする。
最上位のカウンタ段がゼロに達すると、ゼロに固定さ
れ、Aラインが再ロードされるまでAラインに「1」を
発生し続ける。下位のカウンタ段は、カウントを続ける
が、最上位段には何の作用も与えない。最上位のカウン
タ段は、その下位の段が255のまわりで各々ラップされ
た直後にゼロに達することに注意されたい。次いで、最
上位の段は、カウンタ全体が28(N-1)W-1に達した時にゼ
ロになる。但し、Nは、カウンタ内の段数である。これ
を補償するために、最上段がゼロに達した時に正しい数
がカウントされるように28(N-1)W-1を集計LENレジスタ
に追加しなければならない。
スライド窓カウンタ及びサブセットカウンタにも同様の
方法を用いることができる。従って、サイズの小さいプ
ロセッサカウンタレジスタは、大きな数のカウンド動作
を含むサーチ動作を実行するためにプロセッサの電源に
実際上の制約を課することはない。
結果の収集 前記したように、本発明の1つの目標は、テキスト流を
1回通す間に非常に多数のサーチ質問に応答することの
できるプロセッサを提供することである。これは、前記
で詳細に述べたセルのパイプラインと平行な結果のパイ
プラインによって容易にされる。結果のパイプラインの
論理は、次のような便利な特徴を有している。a)非常
に多数の同時のサーチ質問を処理するように容易に拡張
することができる。b)同じ文字に対して一致する異な
った質問が衝突を生じないように最適な方法で衝突を処
理する。c)1つの行において6つまでの衝突を、不正
確な結果を招くことなく補償するもとができる。一致が
唯一(一度に1つ)のものであって且つランダムなもの
であるとすれば、1つの行において6回以上の衝突が起
きるおそれは非常に僅かとなる。然し乍ら、衝突回避が
行なわれないと、常に欠陥が検出される。d)セルのハ
ードウェア自体に対して最小限の論理拡張しか必要とさ
れず、ハードウェアは、非常に高速度で作動することが
できる。
第16図に概略的に示された結果のパイプラインは、巾が
16ビットである。1つのビットは、スロット/空信号を
保持し、3つのビットは、以下で述べる結果タグを保持
し、そしてその他の12ビットは、パイプラインに保持さ
れた結果のソースを指示するタップアドレスを保持する
のに使用される。
本発明のここに示す好ましい実施例では、各16個の直列
に接続されたセルの後に結果タップがあり、各8個のこ
のようなタップが結果パイプラインの単一の遅延段に接
続される。これは、結果のパイプラインが、セルのパイ
プラインと同じレートでクロックされた場合に、128倍
の速度でデータを移動することを意味する。従って、8
個の結果タップから8つの結果が得られて、結果パイプ
ラインの単一の遅延段もしくはスロットに対して競合す
る。
結果タップがどのように作用するかが第17図に示されて
いる。各16個のセルごとに1つづつある結果タップの1
つからの一致信号は、4ビットの状態マシン150に入力
される。状態マシン150は、4ビットの状態レジスタ152
を有し、その1つのビットは、要求信号を記憶するのに
用いられ、他の3つのビットは、結果タグFを記憶する
のに用いられる。一致信号がセルのパイプラインから到
着すると、結果パイプラインのオープンスロットに対し
仲裁回路154に要求が発せられる。又、状態レジスタの
要求ビットは「1」にセットされる。3つのFビットは
最初ゼロである。仲裁回路154は、8個程度の結果タッ
プから要求を受け取り、一度に1つづつこれらを確認す
る。競合が生じた場合には、仲裁回路がスロットに対し
て最も早期の要求を選択し、これを最初に確認する。い
ずれにせよ、仲裁回路は、結果パイプラインに得られた
各スロットに対して1つの要求のみを確認する。
状態マシンが現在の時間サイクル内に確認信号を受け取
らない場合には、その3ビットのFフィールドを1だけ
増加し、確認を待機し続ける。次のクロックサイクル中
に1を受け取った場合には、仲裁回路が、要求が出され
た1クロックサイクル後に結果のパイプラインに要求を
発することができたことを意味する。状態マシンは、確
認信号が受け取られない限りFカウンタを増加し続け、
その状態レジスタの3つのFビットにおいて最大6(2
進で110)までカウントアップする。要求を7サイクル
以上待機すべき場合には、エラー状態であると考えられ
る。更に、要求が仲裁回路でペンディングとなっている
間に別の一致信号がセルのパイプラインから受け取られ
た場合には、カウント7がFビットに与えられ、解決で
きない競合を指示する。確認信号が受け取られた時に
は、結果のパイプラインに出されるデータは、一致情報
のタイミングのエラー即ちオフセットの程度を表わすF
カウントを結果タグとして含むと共に、一致信号が導出
された位置を示す12ビットの結果タップアドレスを含
む。
結果パイプライン構造体は、著しいエラーのおそれがほ
とんどない状態で数百のサーチ質問を同時に処理するこ
とができる。この構造体は、簡単な上に、非常に多数の
結果タップからの結果を収集することができる。更に、
結果の衝突によって生じる欠陥のおそれは、統計学的に
は非常に起こりにくいものである。いずれにせよ、この
種のエラーは、許容することができ、サーチ質問を時々
繰り返すことによって処理できる。
初期化 最後に考慮すべきことは、サーチプロセッサのセルがサ
ーチの実行の前に最初にロードされるような機構である
ことである。このプロセスに使用されるこの厳密な技術
は、本発明の部分を構成するものではなく、それ故、一
般的にのみ説明する。基本的に、初期化は、「trans」
と示された制御信号を用いてセルのパイプラインをシフ
トレジスタとして構成することにより初期化データをセ
ルのパイプラインにシフトすることによって実行され
る。次いで、「dump」、I0及びI1と示された制御信号の
組み合わせを使用することにより、最初のデータ値が、
セルのラインのレジスタからセルの種々のレジスタ及び
プログラミングフラグへゲートされる。初期化段階は、
「dump」、I0及びI1と示された3つの制御信号によって
制御される。これらのラインの状態は、以下に示すよう
にプロセッサによって実行される機能を制御する。
以下に示すテーブルは、初期化データを受け取るデータ
ラインと、初期化段階中にそのデータを記憶するフラグ
又はレジスタとの間の対応を示している。内部フラグ及
びレジスタの数はデータラインの数を越えるので、全て
のフラグ及びレジスタを初期化するには4つのパスが必
要である。例えば、第1のパスにおいては、パターンレ
ジスタのビットPAT0−PAT7が文字レジスタC0−C7を経て
ロードされる。
ダンプ機能は、種々のレジスタの内部状態を診断の目的
でデータ路ラインにマルチプレクスすることのできる機
能である。
自動初期化 プロセッサセル内のプログラム可能な状態レジスタ及び
フラグは、サーチを開始するように利用できる手段によ
ってプログラムできるが、プロセッサの構造は、有用な
高レベルの言語であるサーチ質問の記述に基づいてセル
の初期設定を公式化するようにコンパイラ言語を使用す
るのに適している。これは、実現されているが、ここに
述べる本発明の部分を構成するものではない。
要約 本発明の例示的な機能及び詳細なハードウェア構造の以
上の説明から、サーチプロセッサは、種々様々なサーチ
フォーマット及び機能を受け入れるように種々のモード
で作動できることが明らかであろう。文字の脱落、余計
な文字及び不正確な文字を処理するプロセッサの機能
は、その最も重要な特徴の1つである。然し、これを、
テキスト流の固定の窓又はスライド窓内で簡単なサーチ
及び複雑なサーチを行なう機能と組み合わせた時には、
本発明のプロセッサが非常に強力なサーチプロセッサと
なることが明らかであろう。種々の複雑なサーチ機能を
単独及び或る組み合わせで処理できるだけでなく、非常
に高い速度で作動することができ、文字の流れは、約15
MHzの速度でプロセッサに通されることが明らかであろ
う。
以下に本発明の構成要素と実施例との対応関係について
参考迄に説明するが、構成要素が協働する多数の素子を
含むときは「他」と記載した。
請求項1の特定目的サーチプロセッサは複数の直列接続
されたセル(20、21、22:第2図)を含み、各々のセル
は、 サーチすべきパターンの文字を記憶するパターンレジス
タ(PATT(8):第4図)、サーチすべきデータ流の文
字を記憶する文字レジスタ(C(8):第4a図)、文字
レジスタ内に記憶されている文字とパターンレジスタ内
に記憶されている文字とを比較することによってセル一
致信号を生成するコンパレータ(26、28、29:第4a図)
を含む一致論理回路(第4b図)、サーチパターンとデー
タ流との間の一致を表す整合値を記憶し、またセル一致
信号によって表される如何なるおおまかな一致をも登録
する一致レジスタ(M(3):第4b図)を含み、 更に上記の特定目的サーチプロセッサは、 複数のセルの文字レジスタを互いに直列に接続して文字
ライン(Co-Ci:第2図)を形成する手段と、複数のセ
ルの一致レジスタを互いに直列に接続して一致ライン
(Mo-Mi:第2図)を形成する手段と、サーチパターン
が含まれるようにセルを初期化する手段(trans,dump,I
0,I1信号:第2図)と、サーチパターンの最初の文字が
データ流内の最初の文字と最初に遭遇するようにサーチ
パターンとデータ流とが相対して配向されるようにセル
からセルへ文字ラインを通るデータ流をゲートするクロ
ック手段(クロック入力:第2図)と を具備し、 サーチパターン内の文字とデータ流内の文字とを逐次比
較し、文字ラインに沿うデータ流の動きと同期して整合
値を一致ラインに沿って伝播させ、サーチパターンとデ
ータ流内の文字列との間の正確な一致と、誤字、脱字、
もしくは冗字を包含するおおまかな一致とを指示せし
め、 上記一致論理回路(第4b図)は、 一致ライン上のサーチパターン内の選択されたセル位置
に許容差値(TOL(3):第4b図)をロードして初期整
合値として一致ライン上を伝送させる手段と、一致レジ
スタからの入力を受信し、一致ライン上の出力を次のセ
ルへ直列に供給するように接続され、その存在がセルか
らセルへの整合値の動きと、サーチパターンに対して潜
在的に一致する連続位置を通るデータ流の動きとを同期
せしめるようになっている遅延一致レジスタ(DM
(3):第4b図)と、一致レジスタと遅延一致レジスタ
との間に挿入され、あるセルにおいておおまかな一致が
検出された時にはその整合値が遅延一致レジスタへ伝送
される際にその整合値を選択的に減少(もしくはデクレ
メント)させ、一致ライン上の整合値が0ではないこと
によって一致を指示するようにした手段(40他:第4b
図)と、データ流内の脱字を検出してサーチパターンと
のおおまかな一致の程度を記録するように整合値を調整
し、ある文字がデータ流から脱落しているとの仮定に基
づいて第1の代替整合値を生成し、もし元の整合値の方
が大きければその第1の代替整合値を破棄する手段(52
他:第4b図)と、データ流内の冗字を検出してサーチパ
ターンとのおおまかな一致の程度を記録するように整合
値を調整し、ある冗字がデータ流内に存在しているとの
仮定に基づいて第2の代替整合値を生成し、もし元の整
合値の方が大きければその第2の代替整合値を破棄する
手段(50他:第4b図)を含むことを特徴としている。
請求項2の特定目的サーチプロセッサは請求項1のプロ
セッサであって、上記のデータ流内の脱字を検出する手
段(52他:第4b図)は、上記の選択的に減少させる手段
において整合値を減少させた後に、遅延一致レジスタを
バイパスさせることによって一つの並列整合値経路(60
-52;第4b図)を設け、もしある文字がデータ流から脱落
していれば得られる筈の代替整合値を生じさせる手段
と、(a)遅延一致レジスタをバイパスする経路を設け
る手段から入手した整合値と、(b)遅延一致レジスタ
の出力として入手した整合値とを比較し、2つの値
(a)及び(b)の大きい方を選択して一致ライン上に
出力することによって遅延一致レジスタをバイパスする
並列整合値経路もしくは遅延一致レジスタを通る通常整
合値経路の何れかを選択し、値(a)の選択が脱字状態
を表すようになっている手段(62:第4b図)を含んでい
る。
請求項3の特定目的サーチプロセッサは請求項1のプロ
セッサであって、上記の冗字を検出する手段は、遅延一
致レジスタの出力から入力へ整合値をフィードバックす
る経路を設けて整合値を減少させ、もし現文字がデータ
流内の冗字であれば得られる筈の整合値を発生させる手
段(66-68:第4b図)と、(a)遅延一致レジスタの出力
からフィードバックされた整合値と(b)通常は遅延一
致レジスタへの入力である整合値とを比較し、2つの値
(a)及び(b)の大きい方を選択して遅延一致レジス
タへの入力とすることによってフィードバック経路もし
くは整合値を選択的に減少させる手段からの通常入力経
路の何れかを選択し、値(a)の選択が冗字状態を表す
ようになっている手段(70:第4b図)を含んでいる。
請求項4に記載の特定目的サーチプロセッサは、請求項
1のプロセッサであって、上記の一致論理回路は、「必
須存在」もしくは「そこになければならない」(must-b
e-there)フラグ(MBT:第4b図)に応答し、もしそのフ
ラグがセットされているセル内に一致が存在しなけれ
ば、許容差値をクリアする手段(42:第4b図)をも含ん
でいる。
請求項5の特定目的サーチプロセッサは請求項1のプロ
セッサであって、上記の一致論理回路は、セル内の文字
反転フラグ(IC:第4b図)に応答し、パターンレジスタ
と文字レジスタとの比較によって入手した一致信号を反
転させる手段(46:第4b図)をも含んでいる。
請求項6に記載の複数の直列接続された比較セル(20、
21、22:第2図)を使用してあるテキスト流内の選択さ
れたパターンをサーチする方法は、 複数のセルのパターン文字が一緒になってサーチパター
ンを限定する直列の文字列を形成するようになってお
り、パターンレジスタ(PATT(8):第4a図)内にパタ
ーン文字と種々の制御フラグとが含まれるように各セル
を初期化する段階と、 サーチパターンの最初の文字がテキスト流内の最初の文
字と最初に遭遇するようにサーチパターンとテキスト流
とは相対して配向されており、セルにクロック信号(ク
ロック入力:第2図)を印加し、関連するセル内の文字
レジスタの直列接続によって形成される文字ライン(Co
-Ci:第2図)に沿ってテキスト流をセルからセルへ伝
播せしめる段階と、 各クロック信号が印加される度に各セル内の文字レジス
タ(C(8):第4a図)とパターンレジスタとを比較し
て文字とパターンレジスタとの一致を表すセル一致信号
を生成する段階と、 テキスト流とサーチパターンとの間に許容されるおおま
かな一致の程度を表す許容差値(TOL(3):第4b図)
と呼ぶ初期整合値を、セルを接続している一致ライン
(Mi-Mo:第4b図)上の選択されたセル位置へロードす
る段階と、 一致ラインに沿って整合値をセルからセルへ伝播させる
段階と、 比較段階の結果に応答して各セル内の整合値を選択的に
変更する段階と、 整合値を変更する段階はテキスト流内に誤字、脱字、も
しくは冗字が検出されるとその値を減少(デクレメン
ト)させることを含んでおり、テキスト流内の一致デー
タの位置を表す一致結果を出力する段階と、 サーチパターンの第1のサーチ項に関連する第1の一致
結果を、セルを接続している付加的なライン(Tn:第2
図)上に記憶させる段階、及びこの記憶段階を第1のサ
ーチ項の終わりに対応するセルにおいて遂行させる段階
と、 サーチパターンの第2のサーチ項に関係する第2の一致
結果を生成する段階、及びこの生成段階が第2のサーチ
項の終わりに対応するセルから第2の一致結果を発生さ
せる段階と、 第1及び第2のサーチ項の下流の位置に対応する一つの
セルにおいて第1及び第2の一致結果を論理的に組合わ
せ、直列に接続されたセルから出力させる段階と、 選択されたテキスト境界文字をパターンレジスタが含む
セルを使用して、テキスト流内の所定のテキストセグメ
ントの境界を検出する段階と、 境界を検出する段階においてセル内に可能化信号を生成
する段階と、 検出された境界によって限定される一つのテキストセグ
メントの固定された窓内に限ってサーチ機能の遂行を可
能ならしめるように可能化信号を他のセルに印加する段
階 を具備することを特徴としている。
本発明の特定の実施例及びその機能の特定の例を解説の
ために詳細に説明したが、本発明の精神及び範囲から逸
脱せずに種々の変更がなされ得ることが明らかであろ
う。従って、本発明は、特許請求の範囲のみによって規
定されるものとする。
【図面の簡単な説明】
第1図は、ホストシステムに接続された高速サーチプロ
セッサのブロック図、 第2図は、セルのパイプラインにおいて互いに接続され
た本発明のサーチプロセッサの多数のセルを示すブロッ
ク図、 第3a図は、厳密な一致の状態に対して本発明の構造体を
用いた簡単なサーチシーケンスを示すテーブル、 第3b図は、第3a図と同様であるが、テキストの文字が脱
落した場合を示す図、 第3c図は、第3a図と同様であるが、テキストが余計な文
字を含む場合を示す図、 第3d図は、第3a図と同様であるが、テキストが不正確な
文字を含む場合を示す図、 第3e図は、第3a図と同様であるが、テキストがエラーを
含まずそしてエラー裕度2が指定された場合を示す図、 第4a図は、セルの比較論理回路を示す図、 第4b図は、プロセッサのセルの一致論理回路の回路図、 第4c図は、セルのアキュムレータ論理回路を示す図、 第4d図は、セルのカウンタ論理回路を示す図、 第4e図は、セルの増加及び減少論理回路を示す図、 第4f図は、セル構造体の付加的なラインをアドレスする
ための論理回路を示す図、 第5a図は、第3図を参照して述べた簡単なサーチ機能を
示す図、 第5b図は、第5a図に対応するマイクロコードリスト、 第6a図は、代替のサーチ機能を示す図、 第6b図は、第6a図に対応するマイクロコードリスト、 第7a図は、代替を含むより複雑なサーチを示す図、 第7b図は、第7a図に対応するマイクロコードリスト、 第8a図は、固定窓内の簡単なサーチを示す図、 第8b図は、第8a図に対応するマイクロコードリスト、 第9a図は、固定窓内の計算状態を伴うより複雑なサーチ
を示す図、 第9b図は、第9a図に対応するマイクロコードリスト、 第10a図は、固定窓内の選択されたサブセットのサーチ
項に対するサーチを示す図、 第10b図は、第10a図に対応するマイクロコードリスト、 第11a図は、スライド窓内の簡単な指定の状態に対する
サーチを示す図、 第11b図は、第11a図に対応するマイクロコードリスト、 第12a図は、スライド窓内の複雑な計算状態に対するサ
ーチを示す図、 第12b図は、第12a図に対応するマイクロコードリスト、 第13図aは、可変長さのドント・ケアストリングを含む
サーチを示す図、 第13b図は、第13a図に対応するマイクロコードリスト、 第14a図は、固定長さのドント・ケアストリングを含む
サーチを示す図、 第14b図は、第14a図に対応するマイクロコードリスト、 第15a図は、サーチにおける拡張長さカウンタの作動を
示す図、 第15b図は、第15a図に対応するマイクロコードリスト、 第16図は、本発明の結果収集パイプラインを示すブロッ
ク図、そして 第17図は、プロセッサに使用される結果タップ論理回路
を示すブロック図である。 1……ホストシステム 2……データソース 3……ホストプロセッサ 4……結果メモリ 10……出力バッファ 22-22……セル
フロントページの続き (72)発明者 ロバート イヴァリット ハイス ジュニ ア アメリカ合衆国 カリフォルニア州 90277 レドンド ビーチ ノース サー トゥルーダ アベニュー 323 アパート メント ビー (56)参考文献 特開 昭61−28134(JP,A) 特表 昭58−501525(JP,A)

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】各々がサーチすべきパターンの文字を記憶
    するパターンレジスタ、サーチすべきデータ流の文字を
    記憶する文字レジスタ、文字レジスタ内に記憶されてい
    る文字とパターンレジスタ内に記憶されている文字とを
    比較することによってセル一致信号を生成するコンパレ
    ータを含む一致論理回路、該サーチパターンと該データ
    流の間の一致を表す整合値を記憶しかつ該セル一致信号
    によって表されるあらゆる不一致を登録する一致レジス
    タを含む複数の直列接続されたセルと、 前記複数のセルの前記文字レジスタを互いに直列に接続
    して文字ラインを形成する手段と、 前記複数のセルの前記一致レジスタを互いに直列に接続
    して一致ラインを形成する手段と、 前記サーチパターンが含まれるように前記セルを初期化
    する手段と、 前記サーチパターンの最初の文字が前記データ流内の最
    初の文字と最初に遭遇するように該サーチパターンと該
    データ流が相対して配向されるようにセルからセルへ前
    記文字ラインを通る該データ流をゲートするクロック手
    段とを備え、 前記サーチパターン内の文字と前記データ流内の文字と
    を逐次比較し、該サーチパターンと該データ流内の文字
    列の間の正確な一致及び不正確な一致を表すべく、前記
    文字ラインに沿うデータ流の動きと同期して整合値を一
    致ラインに沿って伝播させ、該不正確な一致は、誤字、
    脱字、または冗字を包含し、 前記一致論理回路は、前記一致ライン上の前記サーチパ
    ターン内の選択された前記セル位置に許容差値をロード
    して初期整合値として該一致ライン上を伝送させる手段
    と、 前記一致レジスタからの入力を受信し、前記一致ライン
    上の出力を次のセルへ直列に供給するように接続され、
    その存在がセルからセルへの前記整合値の動きを前記サ
    ーチパターンに対して潜在的に一致する連続位置を通る
    データ流の動きと同期する遅延一致レジスタと、 前記一致レジスタと前記遅延一致レジスタの間に挿入さ
    れ、あるセルにおいて不正確な一致が検出されたときに
    その整合値が該遅延一致レジスタへ伝送される際に当該
    整合値を選択的に減少させ、前記一致ライン上での非ゼ
    ロ整合値の存在が一致を表す手段と、 前記データ流内の脱字を検出して前記サーチパターンと
    の不正確な一致の程度を記録するように前記整合値を調
    整し、ある文字がデータ流から脱落しているという仮定
    に基づいて第1の代替整合値を生成し、元の整合値が大
    きければ該第1の代替整合値を放棄する手段と、 前記データ流内の冗字を検出してサーチパターンとのお
    おまかな一致の程度を記録するように整合値を調整し、
    ある冗字が該データ流内に存在しているとの仮定に基づ
    いて第2の代替整合値を生成し、元の整合値の方が大き
    ければ該第2の代替整合値を破棄する手段 を含むことを特徴とする特定目的サーチプロセッサ。
  2. 【請求項2】前記脱字を検出する手段は、 前記選択的に減少させる手段において整合値を減少させ
    た後に、前記遅延一致レジスタをバイパスさせることに
    よって一つの並列整合値経路を設け、ある文字がデータ
    流から脱落していれば得られる代替整合値を生じさせる
    手段と、 (a)前記遅延一致レジスタをバイパスする経路を設け
    る手段から入手した整合値と、(b)前記遅延一致レジ
    スタの出力として入手した整合値を比較し、二つの値
    (a)及び(b)の大きい方を選択して一致ライン上に
    出力することによって遅延一致レジスタをバイパスする
    並列整合値経路または遅延一致レジスタを通る通常整合
    値経路の何れかを選択し、値(a)の選択が脱字状態を
    表すようになっている手段 を含むことを特徴とする特許請求の範囲第1項に記載の
    特定目的サーチプロセッサ。
  3. 【請求項3】前記冗字を検出する手段は、 前記遅延一致レジスタの出力から入力へ整合値をフィー
    ドバックする経路を設けて整合値を減少させ、現文字が
    前記データ流内の冗字であれば得られる整合値を発生さ
    せる手段と、 (a)前記遅延一致レジスタの出力からフィードバック
    された整合値と、(b)通常は前記遅延一致レジスタへ
    の入力である整合値を比較し、二つの値(a)及び
    (b)の大きい方を選択して該遅延一致レジスタへの入
    力とすることによってフィードバック経路または整合値
    を選択的に減少させる手段からの通常入力経路の何れか
    を選択し、値(a)の選択が冗字状態を表すようになっ
    ている手段 を含むことを特徴とする特許請求の範囲第1項に記載の
    特定目的サーチプロセッサ。
  4. 【請求項4】前記一致論理回路は、「必須存在」または
    「そこになければならない」フラグに応答し、当該フラ
    グがセットされているセル内に一致が存在しなければ、
    許容差値をクリアする手段をも含むことを特徴とする特
    許請求の範囲第1項に記載の特定目的サーチプロセッ
    サ。
  5. 【請求項5】前記一致論理回路は、セル内の文字反転フ
    ラグに応答し、パターンレジスタと文字レジスタの比較
    によって入手した一致信号を反転させる手段をも含むこ
    とを特徴とする特許請求の範囲第1項に記載の特定目的
    サーチプロセッサ。
  6. 【請求項6】複数の直列接続された比較セルを使用して
    あるテキスト流内の選択されたパターンをサーチする方
    法であって、 複数のセルのパターン文字が一緒になってサーチパター
    ンを限定する直列の文字列を形成するようになってお
    り、パターンレジスタ内にパターン文字と種々の制御フ
    ラグとが含まれるように各セルを初期化する段階と、 サーチパターンの最初の文字がテキスト流内の最初の文
    字と最初に遭遇するようにサーチパターンとテキスト流
    とは相対して配向されており、セルにクロック信号を印
    加し、関連するセル内の文字レジスタの直列接続によっ
    て形成される文字ラインに沿ってテキスト流をセルから
    セルへ伝播する段階と、 各クロック信号が印加される度に各セル内の文字レジス
    タとパターンレジスタを比較して文字とパターンレジス
    タの一致を表すセル一致信号を生成する段階と、 テキスト流とサーチパターンの間に許容される不正確な
    一致の程度を表す許容差値と呼ぶ初期整合値を、セルを
    接続している一致ライン上の選択されたセル位置へロー
    ドする段階と、 一致ラインに沿って整合値をセルからセルへ伝播させる
    段階と、 比較段階の結果に応じて各セル内の整合値を選択的に変
    更する段階と、 整合値を変更する段階は、テキスト流内に誤字、脱字ま
    たは冗字が検出されるとその値を減少させることを含
    み、テキスト流内の一致データの位置を表す一致結果を
    出力する段階と、 サーチパターンの第1のサーチ項に関連する第1の一致
    結果を、セルを接続している付加的なライン上に記憶さ
    せる段階、及びこの記憶段階を第1のサーチ項の終りに
    対応するセルにおいて遂行させる段階と、 サーチパターンの第2のサーチ項に関連する第2の一致
    結果を生成する段階、及びこの生成段階が第2のサーチ
    項の終りに対応するセルから第2の一致結果を発生させ
    る段階と、 第1及び第2のサーチ項の下流の位置に対応する一つの
    セルにおいて第1及び第2の一致結果を論理的に組合わ
    せ、直列に接続されたセルから出力させる段階と、 選択されたテキスト境界文字をパターンレジスタが含む
    セルを使用して、テキスト流内の所定のテキストセグメ
    ントの境界を検出する段階と、 境界を検出する段階においてセル内に可能化信号を生成
    する段階と、 検出された境界によって限定される一つのテキストセグ
    メントの固定された窓内に限ってサーチ機能の遂行を可
    能にするように可能化信号を他のセルに印加する段階 を具備することを特徴とする方法。
JP61294598A 1985-12-10 1986-12-10 高速サ−チプロセツサ Expired - Lifetime JPH0797374B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US807903 1985-12-10
US06/807,903 US5051947A (en) 1985-12-10 1985-12-10 High-speed single-pass textual search processor for locating exact and inexact matches of a search pattern in a textual stream

Publications (2)

Publication Number Publication Date
JPS62217321A JPS62217321A (ja) 1987-09-24
JPH0797374B2 true JPH0797374B2 (ja) 1995-10-18

Family

ID=25197395

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61294598A Expired - Lifetime JPH0797374B2 (ja) 1985-12-10 1986-12-10 高速サ−チプロセツサ

Country Status (5)

Country Link
US (1) US5051947A (ja)
EP (1) EP0233401B1 (ja)
JP (1) JPH0797374B2 (ja)
DE (1) DE3650360T2 (ja)
IL (1) IL80646A (ja)

Families Citing this family (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5450598A (en) * 1985-12-27 1995-09-12 Xerox Corporation Finite state machine data storage where data transition is accomplished without the use of pointers
JP2790466B2 (ja) * 1988-10-18 1998-08-27 株式会社日立製作所 文字列検索方法及び装置
US5231599A (en) * 1988-12-01 1993-07-27 Bull Hn Information Systems Inc. Semantic interpreter for an incoming data stream
AU5265290A (en) * 1989-03-14 1990-10-09 Kabushiki Kaisha Dainichi Data retrieval device and data editing apparatus using this device
US5469354A (en) * 1989-06-14 1995-11-21 Hitachi, Ltd. Document data processing method and apparatus for document retrieval
US5452451A (en) * 1989-06-15 1995-09-19 Hitachi, Ltd. System for plural-string search with a parallel collation of a first partition of each string followed by finite automata matching of second partitions
US6816872B1 (en) 1990-04-26 2004-11-09 Timespring Software Corporation Apparatus and method for reconstructing a file from a difference signature and an original file
US5479654A (en) * 1990-04-26 1995-12-26 Squibb Data Systems, Inc. Apparatus and method for reconstructing a file from a difference signature and an original file
US5497488A (en) * 1990-06-12 1996-03-05 Hitachi, Ltd. System for parallel string search with a function-directed parallel collation of a first partition of each string followed by matching of second partitions
GB9023096D0 (en) * 1990-10-24 1990-12-05 Int Computers Ltd Database search processor
CA2067633C (en) * 1991-07-24 1996-10-01 Eric Jonathan Bauer Method and apparatus for accessing a computer-based file system
US5426779A (en) * 1991-09-13 1995-06-20 Salient Software, Inc. Method and apparatus for locating longest prior target string matching current string in buffer
US5379420A (en) * 1991-12-26 1995-01-03 Trw Inc. High-speed data searching apparatus and method capable of operation in retrospective and dissemination modes
US6131092A (en) * 1992-08-07 2000-10-10 Masand; Brij System and method for identifying matches of query patterns to document text in a document textbase
JPH08502609A (ja) * 1992-10-16 1996-03-19 ハラース,アーネ 非数値コプロセッサ
GB2274182B (en) * 1993-01-09 1996-09-25 Digital Equipment Int Database co-processor
US5586288A (en) * 1993-09-22 1996-12-17 Hilevel Technology, Inc. Memory interface chip with rapid search capability
DE4430195B4 (de) * 1993-12-13 2004-09-23 Hewlett-Packard Co. (N.D.Ges.D.Staates Delaware), Palo Alto Verfahren zur Auswertung von Booleschen Ausdrücken
US6269363B1 (en) * 1994-01-24 2001-07-31 Yossi Matias Method of accessing data using approximate data structures by relaxing the operations that define same
US5553272A (en) * 1994-09-30 1996-09-03 The University Of South Florida VLSI circuit structure for determining the edit distance between strings
US5757959A (en) * 1995-04-05 1998-05-26 Panasonic Technologies, Inc. System and method for handwriting matching using edit distance computation in a systolic array processor
US5615135A (en) * 1995-06-01 1997-03-25 International Business Machines Corporation Event driven interface having a dynamically reconfigurable counter for monitoring a high speed data network according to changing traffic events
AU5969896A (en) * 1995-06-07 1996-12-30 International Language Engineering Corporation Machine assisted translation tools
US5778243A (en) * 1996-07-03 1998-07-07 International Business Machines Corporation Multi-threaded cell for a memory
US5794254A (en) * 1996-12-03 1998-08-11 Fairbanks Systems Group Incremental computer file backup using a two-step comparison of first two characters in the block and a signature with pre-stored character and signature sets
US6038665A (en) * 1996-12-03 2000-03-14 Fairbanks Systems Group System and method for backing up computer files over a wide area computer network
EP0919930B1 (de) * 1997-11-26 2003-10-22 Infineon Technologies AG Verfahren und Vorrichtung zum Auslesen, Modifizieren und Überschreiben von in einer Speichereinrichtung gespeicherten Daten
US6205482B1 (en) * 1998-02-19 2001-03-20 Ameritech Corporation System and method for executing a request from a client application
US6112288A (en) * 1998-05-19 2000-08-29 Paracel, Inc. Dynamic configurable system of parallel modules comprising chain of chips comprising parallel pipeline chain of processors with master controller feeding command and data
US6167400A (en) * 1998-07-31 2000-12-26 Neo-Core Method of performing a sliding window search
NO309169B1 (no) * 1998-11-13 2000-12-18 Interagon As Sokeprosessor
US6947931B1 (en) * 2000-04-06 2005-09-20 International Business Machines Corporation Longest prefix match (LPM) algorithm implementation for a network processor
US7013394B1 (en) 2000-04-18 2006-03-14 International Business Machines Corporation Data flow pattern recognition and manipulation
US6708168B2 (en) * 2000-12-29 2004-03-16 Nortel Networks Limited Method and apparatus for searching a data stream for character patterns
DE10106340A1 (de) * 2001-02-09 2002-08-29 Europ Lab Molekularbiolog Schaltung zur Verarbeitung von Daten
JP2004526274A (ja) * 2001-05-17 2004-08-26 メンコール エル.エル.シー. 異なるサイズのワードの検索
US6901354B2 (en) * 2001-09-27 2005-05-31 Intel Corporation Method and apparatus for command perception by data value sequencing, allowing finite amount of unrelated interim data
US6918037B2 (en) * 2001-09-27 2005-07-12 Intel Corporation Method and apparatus for command perception by data value sequencing, allowing a bounded total amount of spurious data
US6959297B2 (en) * 2002-04-25 2005-10-25 Winnow Technology, Llc System and process for searching within a data stream using a pointer matrix and a trap matrix
US7451143B2 (en) * 2002-08-28 2008-11-11 Cisco Technology, Inc. Programmable rule processing apparatus for conducting high speed contextual searches and characterizations of patterns in data
US7596553B2 (en) * 2002-10-11 2009-09-29 Avaya Inc. String matching using data bit masks
US7134143B2 (en) * 2003-02-04 2006-11-07 Stellenberg Gerald S Method and apparatus for data packet pattern matching
US7464254B2 (en) * 2003-01-09 2008-12-09 Cisco Technology, Inc. Programmable processor apparatus integrating dedicated search registers and dedicated state machine registers with associated execution hardware to support rapid application of rulesets to data
US7243165B2 (en) * 2004-01-14 2007-07-10 International Business Machines Corporation Parallel pattern detection engine
US7392229B2 (en) * 2005-02-12 2008-06-24 Curtis L. Harris General purpose set theoretic processor
JP4470913B2 (ja) * 2005-07-14 2010-06-02 セイコーエプソン株式会社 文字列検索装置およびプログラム
US8356065B2 (en) * 2005-12-12 2013-01-15 Nec Corporation Similar text search method, similar text search system, and similar text search program
US20070179935A1 (en) * 2006-01-31 2007-08-02 Tsern-Huei Lee Apparatus and method for efficient data pre-filtering in a data stream
US7624105B2 (en) * 2006-09-19 2009-11-24 Netlogic Microsystems, Inc. Search engine having multiple co-processors for performing inexact pattern search operations
US8065249B1 (en) 2006-10-13 2011-11-22 Harris Curtis L GPSTP with enhanced aggregation functionality
US7774286B1 (en) 2006-10-24 2010-08-10 Harris Curtis L GPSTP with multiple thread functionality
US8954484B2 (en) * 2009-06-12 2015-02-10 Cray Inc. Inclusive or bit matrix to compare multiple corresponding subfields
JP5335227B2 (ja) * 2007-12-10 2013-11-06 京セラ株式会社 情報端末装置
US20100057737A1 (en) * 2008-08-29 2010-03-04 Oracle International Corporation Detection of non-occurrences of events using pattern matching
US8145859B2 (en) * 2009-03-02 2012-03-27 Oracle International Corporation Method and system for spilling from a queue to a persistent store
US8321450B2 (en) 2009-07-21 2012-11-27 Oracle International Corporation Standardized database connectivity support for an event processing server in an embedded context
US8387076B2 (en) 2009-07-21 2013-02-26 Oracle International Corporation Standardized database connectivity support for an event processing server
US8386466B2 (en) 2009-08-03 2013-02-26 Oracle International Corporation Log visualization tool for a data stream processing server
US8527458B2 (en) 2009-08-03 2013-09-03 Oracle International Corporation Logging framework for a data stream processing server
US8959106B2 (en) 2009-12-28 2015-02-17 Oracle International Corporation Class loading using java data cartridges
US9430494B2 (en) 2009-12-28 2016-08-30 Oracle International Corporation Spatial data cartridge for event processing systems
US9305057B2 (en) 2009-12-28 2016-04-05 Oracle International Corporation Extensible indexing framework using data cartridges
US8572106B1 (en) 2010-07-16 2013-10-29 Netlogic Microsystems, Inc. Memory management in a token stitcher for a content search system having pipelined engines
US8700593B1 (en) 2010-07-16 2014-04-15 Netlogic Microsystems, Inc. Content search system having pipelined engines and a token stitcher
US8589405B1 (en) 2010-07-16 2013-11-19 Netlogic Microsystems, Inc. Token stitcher for a content search system having pipelined engines
US8713049B2 (en) 2010-09-17 2014-04-29 Oracle International Corporation Support for a parameterized query/view in complex event processing
US8667230B1 (en) 2010-10-19 2014-03-04 Curtis L. Harris Recognition and recall memory
US9189280B2 (en) 2010-11-18 2015-11-17 Oracle International Corporation Tracking large numbers of moving objects in an event processing system
US8990416B2 (en) 2011-05-06 2015-03-24 Oracle International Corporation Support for a new insert stream (ISTREAM) operation in complex event processing (CEP)
US9329975B2 (en) 2011-07-07 2016-05-03 Oracle International Corporation Continuous query language (CQL) debugger in complex event processing (CEP)
US9563663B2 (en) 2012-09-28 2017-02-07 Oracle International Corporation Fast path evaluation of Boolean predicates
US9805095B2 (en) 2012-09-28 2017-10-31 Oracle International Corporation State initialization for continuous queries over archived views
US10956422B2 (en) 2012-12-05 2021-03-23 Oracle International Corporation Integrating event processing with map-reduce
US10298444B2 (en) 2013-01-15 2019-05-21 Oracle International Corporation Variable duration windows on continuous data streams
US9098587B2 (en) 2013-01-15 2015-08-04 Oracle International Corporation Variable duration non-event pattern matching
US9390135B2 (en) 2013-02-19 2016-07-12 Oracle International Corporation Executing continuous event processing (CEP) queries in parallel
US9047249B2 (en) 2013-02-19 2015-06-02 Oracle International Corporation Handling faults in a continuous event processing (CEP) system
US9418113B2 (en) 2013-05-30 2016-08-16 Oracle International Corporation Value based windows on relations in continuous data streams
US9563599B2 (en) 2013-11-04 2017-02-07 Lewis Rhodes Labs, Inc. Computing architecture for operating on sequential data
US9996387B2 (en) 2013-11-04 2018-06-12 Lewis Rhodes Labs, Inc. Context switching for computing architecture operating on sequential data
US9934279B2 (en) 2013-12-05 2018-04-03 Oracle International Corporation Pattern matching across multiple input data streams
US9244978B2 (en) 2014-06-11 2016-01-26 Oracle International Corporation Custom partitioning of a data stream
US9712645B2 (en) 2014-06-26 2017-07-18 Oracle International Corporation Embedded event processing
CN105335747B (zh) * 2014-08-04 2019-03-29 联想(北京)有限公司 一种数据处理方法及电子设备
US10120907B2 (en) 2014-09-24 2018-11-06 Oracle International Corporation Scaling event processing using distributed flows and map-reduce operations
US9886486B2 (en) 2014-09-24 2018-02-06 Oracle International Corporation Enriching events with dynamically typed big data for event processing
WO2017018901A1 (en) 2015-07-24 2017-02-02 Oracle International Corporation Visually exploring and analyzing event streams
WO2017135838A1 (en) 2016-02-01 2017-08-10 Oracle International Corporation Level of detail control for geostreaming
WO2017135837A1 (en) 2016-02-01 2017-08-10 Oracle International Corporation Pattern based automated test data generation
US9892789B1 (en) 2017-01-16 2018-02-13 International Business Machines Corporation Content addressable memory with match hit quality indication

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US626432A (en) 1899-06-06 Casket-carrier
GB1497678A (en) * 1975-02-21 1978-01-12 Int Computers Ltd Data processing systems
US4094001A (en) * 1977-03-23 1978-06-06 General Electric Company Digital logic circuits for comparing ordered character strings of variable length
US4205302A (en) * 1977-10-28 1980-05-27 Einar Godo Word recognizing system
FR2458848B1 (fr) * 1979-06-11 1986-02-28 Iria Procede et appareil informatique de reconnaissance des mots
EP0054588B1 (en) * 1980-12-19 1984-09-26 International Business Machines Corporation Interactive data retrieval apparatus
US4450520A (en) * 1981-03-11 1984-05-22 University Of Illinois Foundation Method and system for matching encoded characters
US4495566A (en) * 1981-09-30 1985-01-22 System Development Corporation Method and means using digital data processing means for locating representations in a stored textual data base
US4451901A (en) * 1982-01-21 1984-05-29 General Electric Company High speed search system
US4531201A (en) * 1982-01-25 1985-07-23 Skinner Jr James T Text comparator
US4625295A (en) * 1982-01-25 1986-11-25 Skinner James T Textual comparison system for locating desired character strings and delimiter characters
US4674066A (en) * 1983-02-18 1987-06-16 Houghton Mifflin Company Textual database system using skeletonization and phonetic replacement to retrieve words matching or similar to query words
US4575795A (en) * 1983-04-01 1986-03-11 Honeywell Information Systems Inc. Apparatus for detecting a predetermined character of a data string
US4550436A (en) * 1983-07-26 1985-10-29 At&T Bell Laboratories Parallel text matching methods and apparatus
US4760523A (en) * 1984-06-29 1988-07-26 Trw Inc. Fast search processor
JPS6128134A (ja) * 1984-07-18 1986-02-07 Nec Corp 記号列照合装置とその制御方式
US4747072A (en) * 1985-08-13 1988-05-24 Fairchild Camera And Instrument Corporation Pattern addressable memory
DE3585411D1 (de) 1985-10-31 1992-03-26 Trw Inc Schneller recherchenprozessor und verfahren fuer seine benutzung.

Also Published As

Publication number Publication date
EP0233401A2 (en) 1987-08-26
IL80646A (en) 1991-06-30
DE3650360D1 (de) 1995-09-07
EP0233401B1 (en) 1995-08-02
EP0233401A3 (en) 1991-10-30
DE3650360T2 (de) 1996-03-28
US5051947A (en) 1991-09-24
JPS62217321A (ja) 1987-09-24
IL80646A0 (en) 1987-02-27

Similar Documents

Publication Publication Date Title
JPH0797374B2 (ja) 高速サ−チプロセツサ
US20200334533A1 (en) Methods and systems for data analysis in a state machine
US4760523A (en) Fast search processor
US4514826A (en) Relational algebra engine
JPS5846742B2 (ja) 対話式デ−タ検索装置
US4731737A (en) High speed intelligent distributed control memory system
JP3099298B2 (ja) 文書検索方法および装置
EP0488297B1 (en) Symbol string search apparatus and system
Chung On the complexity of sorting in magnetic bubble memory systems
JP3141428B2 (ja) 数値検索装置およびその方法
US5161230A (en) Multifield identification circuit and related method of operation
JP2880199B2 (ja) 記号列検索方法および検索装置
Bush et al. Some implementations of segment sequential functions
Hurson et al. Specialized parallel architectures for textual databases
Hsu et al. A hardware mechanism for priority queue
EP0222940B1 (en) A fast search processor and method for its use
JPH0380366A (ja) ストリングサーチ方法およびそのための装置
JPH0317780A (ja) 記号列検索方法および装置
JPH061476B2 (ja) 高速検索処理装置
Healy A character-oriented context-addressed segment-sequential storage
Peleg et al. Packet distribution on a ring
Pramanik et al. A hardware pattern matching algorithm on a dataflow
Parhami The mixed serial/parallel approach to VLSI search processors
Lochovsky DL Lee
Kowalski Text Search Algorithms