JPH0317780A - 記号列検索方法および装置 - Google Patents

記号列検索方法および装置

Info

Publication number
JPH0317780A
JPH0317780A JP1150401A JP15040189A JPH0317780A JP H0317780 A JPH0317780 A JP H0317780A JP 1150401 A JP1150401 A JP 1150401A JP 15040189 A JP15040189 A JP 15040189A JP H0317780 A JPH0317780 A JP H0317780A
Authority
JP
Japan
Prior art keywords
symbol string
search
symbol
searched
string
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP1150401A
Other languages
English (en)
Other versions
JP2825009B2 (ja
Inventor
Mitsuru Akisawa
秋沢 充
Hisamitsu Kawaguchi
川口 久光
Kanji Kato
加藤 寛次
Atsushi Hatakeyama
敦 畠山
Yoshiki Noguchi
孝樹 野口
Hiromichi Fujisawa
浩道 藤澤
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.)
Hitachi Ltd
Maxell Ltd
Original Assignee
Hitachi Ltd
Hitachi Maxell Ltd
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 Hitachi Ltd, Hitachi Maxell Ltd filed Critical Hitachi Ltd
Priority to JP1150401A priority Critical patent/JP2825009B2/ja
Publication of JPH0317780A publication Critical patent/JPH0317780A/ja
Priority to US08/349,124 priority patent/US5452451A/en
Application granted granted Critical
Publication of JP2825009B2 publication Critical patent/JP2825009B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 【産業上の利用分野】
本発明は、データベース、文書ファイリングシステム等
の非数値データ処理を含む情報処理システムにおいて、
非構造化データの高速な検索処理,特に文字列検索によ
る文書データの全文検索に好適な記号列検索方法および
その方法を実現する装置に関し、さらに該装置としての
半導体集積回路に関する. [従来の技術1 情報処理システムの記憶容量が年々増大するに従い、文
書データに代表される非数値データを扱う処理の比率が
高くなっている。このような背景から、大容量のデータ
ベースから所望の文書やデータを高速に漏れなく検索す
る処理の重要性が高まりつつある。 従来.文書データの検索においては,キーワードや分類
コード等の付加情報を用いる方法が多く取られてきた。 しかし、キーワードや分類コードだけでは細かい検索の
条件を厳密に表現することは難しく、十分な絞り込みを
行いにくい。したがって.この方法では検索者が意図し
なかった文書も検索ノイズとして含まれてしまう.その
ため、最終的には検索者が直接本文を読んで文書データ
を選択しなければならず,検索処理の効率が上がらない
という問題があった. 更に、文書データの増大に伴いキーワードや分類コード
を付加するインデキシングの作業量が増大し、文書デー
タの登録遅れの原因になっている.また、キーワードや
分類コードは時代と共にその意味が変化して陳腐化する
場合があり、データベースの最新性維持の困難の原因と
なっている。 これらの問題を克服するために、文書の本文をスキャン
しつつ任意に設定されたキーワードとの比較照合を行う
方法(以下、フルテキストサーチと呼ぶ)が、提案され
ている. このフルテキストサーチを用いた文字列検索システムと
しては、例えば、「アール.エル.ハスキンアンドエル
.エー.ホラー:“オペレーショナルキャラクタリステ
ィックスオブアハードウエアペーストパターンマッチャ
ー ,エーシーエム トランザクションズオンデータベ
ースシステム,第8巻,第1号,1983年,(R.L
.Haskin and L.A.IIollaar 
:“OperationalCharacterist
ics  of  a  llardware−Bas
ed  PatternMatcher”, ACM 
Trans. on Database System
+s,Vol..8, No.1. 1983) Jに
記載されているものがある。 第26図は上記の文献におけるシステムに示す.第26
図において、文字列検索システム300はホストコンピ
ュータに接続され、検索要求320、検索結果324を
通信によってやり取りする。 ホストコンピュータから検索要求320が送られると、
検索制御手段310はこれを受け付け、解析し,文字列
照合手段313と複合条件判別手段314へ検索制御情
報321を送る。 また、検索制御手段310は記憶装置制御手段311を
制御して、文字列記憶手段312に格納されている文字
列データ322を文字列照合手段313へ転送させる。 文字列照合手段313は、入力された文字列データ32
2と予め設定された文字列との照合を行ない、該当する
文字列を検出すると、検出情報323を複合条件判別手
段314へ出力する。 複合条件判別手段314は,検索要求中に示された文字
列間の位置関係等に関する複合条件に検出t#報323
が合致するか否かを調べる.そして合致する場合には、
該当する文書データの識別情報や文書内容を、検索結果
324として出力し、これがホストコンピュータへ送ら
れる。 上記の文字列照合手段313で行なうフルテキストサー
チのひとつに有限オートマ1〜ンを用いた方法があり,
キーワード数にかかわらず1回の本文スキャンで検索を
行うことが出来る。 上記の方法としては、例えば、「工一.ブイ.二一ホア
ンドエム.ジェイ.コラッシック:“エフィシエント 
ストリングマッチング”,コミュニケーションズエーシ
ーエム,第18巻,第6号,1975年(A.V.Ah
o and M.J.Corasiek:“Effic
ient String Matching”,Com
m.ACM,νol. 18,No.6.1975) 
Jに記載されているものがある。 上記の方法は,ドント・ケア(don’t care)
文字を含む検索、誤り文字を含む検索など様々な曖昧検
索も実呪することができ,フルテキストサーチに有効な
一手法である。 なお、上記の“ドント・ケア″′文字というのは、限定
されない(何でもよい)文字の意味である。 また、本明細書における“オートマトン″とは、或る遷
移条件の入力により、或る状態から他の状態(或いは再
びその状態自身)へ遷移を行なう機械を意味する。 この有限オートマトンを用いたフルテキストサーチの高
速実現アルゴリズム及びその実現手段については、例え
ば、特開昭63−311530号に記載されている。 最も基本的な有限オートマトンを用いた検索方式は、完
全状1!遷移方式である。これは,設定された文字列の
文字による遷移ごとに状態を割り付け,これらの間にす
べての遷移パスを付与するものである.この方式では、
入力される文字列データの1文字に対する遷移処理が、
必ず1マシンサイクルで実行出来る。しかし文字列の増
加と共に状態数が増加するので,状態遷移パスも増加す
る.このため、オートマトン生成時間が長くなるという
問題がある。 そこで、エイホ(A.V.Aho)等が提案した方式は
、“フェイル処理″、すなわち、設定された検索文字列
中の文字と入力される文字列データとの一致判定処理に
おける不一致の際の処理という概念を導入した逐次繰返
しフエイル方式であり,これによって状態遷移パスを大
幅に削減することを可能とした.しかし、文字列データ
のl文字に対する遷移処理が、必ずしも1マシンサイク
ルで実行出来るとは限らないという問題がある。 この両者の欠点を補ったものが、前記の特開昭63−3
11530号に記載されている先行フェイル方式である
。この方式は、通常の遷移処理と同時に,常に、フェイ
ルが起きた場合に備えたフェイル処理を並行して行ない
、フェイルの発生が検出された場合に遷移先を変えるも
のである。この方式では比較的短い時間でオートマトン
を生成することが出来,かつ文字列データの1文字に対
する処理を1マシンサイクルで実行することが出来る。 しかし,上記のごとき従来の有限オートマトンを用いた
フルテキストサーチにおいては、各サイクルの状態遷移
は常に状態遷移テーブルを参照しつつ行なわれる.そし
て一般に、状態遷移テーブルの容量は大きく、有限オー
トマトン実行を制御する半導体集積回路とは別チップの
メモリに格納される。そのためメモリアクセスが各サイ
クル毎に必要となり、処理速度向上の妨げとなるという
問題がある.
【発明が解決しようとする課題】
上記のように、従来のオートマトンを用いたフルテキス
トサーチによる文書検索においては,大規模の状m遷移
テーブルが必要であるために,これを別個のメモリに格
納せざるをえなかった.従ってオートマトン実行手段と
テーブル内容を格納するメモリとのデータ入出力が常に
行われ、これによって処理速度の高速化が妨げられるの
で、処理速度の向上が困難であるという問題があった。 一方、セルラーアレイを用いた同様の文書検索装置(例
えば特開昭62−217321号に記載)では、状態遷
移テーブルを格納したメモリとの間のデータ入出力の問
題は回避されるが、各セルに入力するデータをブロード
キャストする際に、文字列数増大に伴う回路遅延、文字
列長増大に伴うシフト遅延等の問題がある.また・、ド
ント・ケア文字を含む検索、誤り文字を含む検索などの
ような曖昧検索を実現しようとすると、一般にハードウ
エア量が多くなる傾向がある.また,検索処理の柔軟性
においても、設定出来る検索文字列の語長の上限がハー
ドウエア量による制約を受けてしまうため、オートマト
ン方式に劣る、という種々の問題がある. 本発明は、オートマトンを用いたフルテキストサーチに
よる文書検索において、オートマトン実行手段と状態遷
移テーブルを格納したメモリとの間のデータ入出力の頻
度を従来よりも低減して処理の高速化を図り,かつ、検
索文字列中にドン1−・ケア文字を設定した曖昧検索等
も可能な記弼列検索方法およびその方法を実現する装置
、さらに該装置としての半導体集積回路を提供すること
を目的とする.
【課題を解決するための手段】
上記の目的を達或するために、本発明においては、コー
ド表現された記号で構成される被検索記号列中に複数の
検索対象記号列が存在するか否かを一括して判定するオ
ートマトンを用いた記号列検索方法において、複数の検
索記号列を被検索記号列中から一括して検索する際に,
該検索記号列を任意の位置で少なくとも2つの部分記号
列に分割し、分割したものの1つの部分記号列の照合す
なわち先頭照合処理を行なった結果、該部分記号列に関
する検索条件を満足した検索記号列に対してのみ,残り
の部分記号列の照合すなわち後方照合処理を行い,ここ
で残りの部分記号列に関する検索条件を満足した場合に
該検索記号列が検索されたと判定するように構成してい
る. なお、上記の記号列とは、コード表現された記号の列で
あれば何でもよいが,コード表現された文字列を例とし
て説明すれば,以下のようになる.例えば、文書データ
中から探すべき複数の文字列(以後,検索文字列と呼ぶ
)からその一部分を取り出した部分文字列と、文書デー
タを先頭文字から順に並べた文字列(以後、被検索文字
列と呼ぶ)どの照合を並列に高速処理する並列比較器を
、半導体集積回路内でオートマトン実行手段の前段に設
け,並列比較器内に設定された部分文字列との一致が検
出された場合にのみ,残りの部分の照合をオートマトン
実行手段で行い、これによってオートマトン実行手段と
状態遷移テーブルとの間のデータ入出力頻度を低下させ
ることにより,検索処理の高速化を実現した。 また、並列比較器における照合処理の柔軟性を高めるた
めに、部分文字列に可変長ドント・ケアの設定を可能と
する手段を設けた。 更に、被検索文字列の入力と状態遷移テーブルが格納さ
れたメモリからのデータ入力とが同時に起きた場合の調
停の必要をなくし、かつ並列比較器とオートマトン実行
手段との並列動作を可能とするため、独立に動作する別
々の入力ポートをインターフェイスとして設け、高速処
理を実現した.なお、上記の各手段は、その全てを同一
チップ上に集積することが1ましい.このときに最大の
性能が得られる.その理由は、チップ間の信号伝播の遅
延およびメモリへのアクセス時間の遅延が抑えられるた
めである. また、上記の各手段、すなわち本発明の各構成要素の全
て又はいくつかを必要に応じて複数個備えることにより
、処理の負荷を分散させ,並列処理によってトータル性
能を向上させるような構戒とすることも出来る.したが
って同一半導体チップ上に同一構成要素が2個以上集積
される場合もあり得る. なお、実際上は、同一チップ上に形成することが出来る
回路規模には制約があるので、全ての構成要素を同一半
導体チップ上に集積することは必ずしも可能であるとは
限らない.特に、状態遷移テーブルは比較的容量の大き
なメモリを必要とし、また並列比較器は設定できる検索
文字列の部分文字列の容量を大きく取ろうとすると回路
規模が増加する.したがってこれらを他の構戊要素から
分離し、別の半導体チップとして構成する場合も考えら
れる.
【作 用】
第1図は、本発明の原理を説明するためのブロック図で
あり、(a)は本発明の原理的構成を示すブロック図、
(b)はここで実行する処理のオートマトンの概念を示
す図である。 以下,第1図に基づいて本発明の作用を説明する。 本発明においては、第1図(a)に示すように、入力バ
ッファ102を介して取り込む被検索文字列101を,
並列比較部10と有限オートマトン実行部11とに同時
に入力して各々の処理を行い、検索結果(該当する検索
文字列と、それが文書データ中のどこの場所にあったか
を示す位置情報)111を出力バッファ105を介して
外部へ出力する. また、この処理の際に実行されるオートマトンの概念を
示す第1図(b)においては、番号付けされた円は各状
態を、内部の数字は状態番号を表わし、円の大きさは各
状態への状態遷移頻度の割合を相対的に示している。矢
印は状態遷移を表わし、初期状態はOである。 また、第2図は、本発明と対比するために示した従来の
オートマトンを用いたフルテキストサーチによる文書検
索の原理を説明するためのブロック図であり,(a)は
原理的構成を示すブロック図,(b)はここで実行する
処理のオートマトンの概念を示す図である。 第2図に示すように,従来は、有限オートマトン実行部
11で、有限オートマトンl2のすべての状態における
照合処理を行っていた。従って、被検索文字列を内部フ
ォーマットに変換した文字コードが入力される毎に,有
限オートマトン実行手段104から状態遷移テーブル1
10へのデータアクセスが毎回必ず発生し,これが処理
速度向上のネックとなっていた. その点,本発明においては、第1図に示すように,有限
オートマトン実行部11の前段に設けた並列比較部10
で,先頭照合オートマトン13に相当する先頭照合処理
(分割した検索記号列の先頭部分記号列の照合処理,部
分記号列の長さは工以上でも構わない)を行い、後方照
合オートマトン14に相当する後方照合処理(分割した
検索記号列の残りの部分記号列の照合処理)を有限オー
トマトン実行部11で行う。 その際、第l図(b)に示されているように、オートマ
トンの全体の処理量に占める先頭照合の比率は極めて高
い。この結果を示すシミュレーションデータを第3図に
示す。 第3図は、日本語10文字のキーワード、英語10文字
のキーワードをそれぞれランダムに抽出してオートマト
ンを生成し、日本語文書(25,408文字)、英語文
書(l.1,000文字)に対して検索処理を行ない、
状態遷移のトレースデータをまとめたものである。 第3図において、横軸の「状態の深さ」は次のように定
義する。ただし、ここでトークンとは″状態遷移が生じ
た際の遷移後の状態に存在する仮想マーキング″であり
、次回の文字コード入力時に遷移元となる状態を示す。 すなわち「状態の深さ」とは、“初期状態Oからトーク
ンは出発し、入力文字コードが遷移条件と合致するとト
ークンが動き、状態が遷移する。 この場合、初期状sOから直接遷移しうる状態を「深さ
1の状態」と呼ぶこととし、r深さnの状態」をr深さ
n−1の状態」から(フェイルによる遷移を除き,)直
接遷移しうる状態として定義する。また、初期状tmO
は深さOの状態とする。′従って、第1図(b)の“状
態1および状態6はそれぞれ深さ1の状態″′状態2、
状態4および状態7はそれぞれ深さ2の状態##.jl
状態3および状1r!A5はそれぞれ深さ3の状態″と
なる.さて,深さOの状態では、文字コードが入力され
ると毎回入力文字コードと遷移文字コードとの比較が行
なわれ、遷移条件の或立がチェックされるので、トーク
ンの状態Oへの到達確率は100%となる.ここで到達
確率とは,1文字コード入力頻度に対する、各状態への
遷移到達頻度の比率(百分率)”である.しかし、深さ
0の状態から深さ1の状態ヘトークンを遷移させるのは
検索文字列をm或する一部の文字コードであるため、深
さ1の状態へのトークンの到達確率は、日本語の場合で
約15%(第3図参照)となる.そして、被検索文字列
と検索文字列との照合処理過程で不一致が生じ,途中で
トークンが直接遷移できなくなると状態Oへ戻り、再度
、状態0での照合チェックが行なわれることになる.こ
のため、状態の深さが深くなればなるほど到達確率は低
下する.第3図から,この到達確率が、深さの浅い状態
ほど大きいことがわかる.すなわち,オートマトンの全
体の処理量のうち、先頭照合の処理量が大きな割合を占
めていることがわかる。したがって、この先頭照合を並
列比較部10で行うことにより、有限オートマトン実行
部11の処理量が大きく低下し,これに伴って状態遷移
テーブルへのアクセス回数も低減されることになる。一
方、並列比較部10の処理はテーブルとのデータ入出力
を必要としないので、従来の方法に比較すると検索処理
全体におけるテーブルとのデータ入出力が格段に減少す
ることになる.これによって検索処理の高速化が可能と
なる。 さらに第3図より、トークンの到達確率が深さの深い状
態ほど小さいことから、並列比較部10で一括照合する
部分文字列の文字数を多く取ると、後方照合オートマト
ンl4に含まれる状態ヘトークンが遷移する確率は、さ
らに低下することになる。したがって、部分文字列の文
字数を多く取ることによって、有限オートマトン実行部
11での処理量は一層低下し、検索処理を更に高速化す
ることが可能となる. また、並列比較器106に設定する部分文字列の有効・
無効を、任意位置に可変長で指定出来るバリッドフラグ
を設けることにより、部分文字列に複数のドント・ケア
文字を任意位置に含めることや、部分文字列の語長を可
変にすることを可能とした。これによって曖昧検索機能
が実現でき,また、部分文字列を消去、再書き込みする
ことなく、バリッドフラグの操作のみで、設定した検索
文字列の破棄、回復を行うことが出来る.
【実施例】
以下、本発明の実施例について説明する.なお、以下の
実施例においては,コード表現された記号列の例として
コード表現された文字列の場合について説明するが,文
字列に限らず、一般的な記号列の場合でも同様に本発明
を適用することが出来る。 第4図は、本発明の第1の実施例のブロック図である。 本実施例は、以下の各構成要素によって構成されている
。すなわち, 被検索文字列101を取り込む入力バッファ102、 入力文字コード130と予め設定された複数の検索文字
列の部分文字列とを一括照合する並列比較器106、 その比較の結果、被検索文字列と検索文字列の部分文字
列との一致が検出されたことを知らせる一致信号131
を、オートマトンの各状態に対応づけられる識別コード
(以後,状態コードと呼ぶ)132に変換するコード変
換器107,次の入力文字コードに対して処理をすべき
トークンの存在する有効な状71!(以後、現状態と呼
ぶ)を保持する状態コードキュー109、 状態コードキュー109へ入力する状態コード133の
選択をする入力セレクタ108、オートマトンの状態遷
移動作を制御するオートマトン実行手段104、 これに入力する文字コード135を蓄える文字コードバ
ッファ103、 オートマトンの状態遷移の制御情報を格納した状態遷移
テーブル110、 出力する検索結果111を保持する出力バッファ105
、である。 次に、作用を説明する. データベース内の文書データは、被検索文字列101と
して1文字単位あるいは複数文字単位で入力バッファ1
02へ入力される。ここで被検索文字列101はデータ
幅を変換され、並列比較器106および入力文字コード
バッファ103へ入力するためのデータ転送バスに合わ
せたビットサイズとなる.そして各回路との同期をとり
、有限オートマトン実行手段104の前段の文字コード
バッファ103と並列比較器106とへ同時に転送され
る. 並列比較器106には、予め検索文字列の先頭部分が部
分文字列として格納されており、入力バッファ102か
ら1文字あるいは複数文字送られるたびに、すべての検
索文字列の部分文字列との照合が同時に行われる。 そして被検索文字列と検索文字列の部分文字列との一致
が検出されると、一致信号は、コード変換器107によ
って各部分文字列が検出されたことを示す状態に対応す
る識別コード、すなわち状態コード132に変換される
.このコードは状態遷移テーブル110の内部に設定さ
れた状態コードと統一が図られており、有限オートマト
ン実行手段104の内部ではそのまま状態コードとして
扱われる。 コード変換器107から出力された状態コード132は
、セレクタ108によって選択されて状態コードキュー
109に蓄えられる。 一方,文字コードバソファ103内の文字コードデータ
に対して、上記の並列比較と同時に有限オートマトン実
行手段104による処理が行われる。この文字コードバ
ッファ103は、入力バッファ102の文字コード転送
速度と有限オートマトン実行手段104の処理速度との
ギャップを解消する。 有限オートマトン実行手段104の入力は,文字コード
バッファ103内部の文字コードデータと状態コードキ
ュー109に蓄えられている現状態コードである. 有限オートマトン実行手段104は、状態コードキュー
109から現状態コードを取り出して,これと文字コー
ドバッファ103内の文字コードデータとから状態遷移
テーブル110のアクセスアドレス137を生成する。 そして該当アドレスの内容が有限オートマトンの現状態
の遷移先l38(以後,次状態と呼ぶ)となり、これが
セレクタ108を通して状態コードキュー109に蓄え
られる.現状態コードが処理されると次の文字コードデ
ータが文字コードバッファ103から取り込まれる。 これらの処理により、オートマトンの状態遷移の結果1
38が検索文字列の検出を示す状態となった場合に,一
致する文字列が検出されたことになる。そしてこれらに
対応する検索結果111が出力バッファ105へ書き出
される。 被検索文字列101として入力されたl文字分あるいは
複数文字分の文字コードに対する一連の処理は,上述の
ように実行される。すなわち、文字コードが入力される
たびに並列比較器106において部分文字列との照合が
行われ,これと並行して状態コードキュー109内に蓄
えられている現状態コードに対してオートマトンが起動
される。 従って有効な現状態がなく、状態コードキュー109内
に状態コードが存在しない場合には,オートマトンは起
動されず、並列比較器106による比較照合のみによっ
て被検索文字列1. 0 1が順次処理される.照合の
結果、一Mが検出されると,次の文字コードに対する処
理の際に初めてオートマトンが起動される. したがって処理は常に比検索文字列101の入力と先頭
照合処理から開始されることになる。 従来例のように,照合処理が有限オートマトン実行手段
104のみで行われる場合には、文字コードが入力され
る毎に状態遷移テーブル110をアクセスしなければな
らない。この状態遷移テーブル110は、現状態とそれ
に対する遷移先とを対にして、通常は大容量メモリに格
納されている。 このために、有限オートマトン実行手段104が状態遷
移テーブル110をアクセスする時間が、照合処理時間
の大半を占め、速度向上のネックとなっていた。しかし
本実施例のように、検索文字列の部分文字列と被検索文
字列との一致が検出されるまで並列比較器のみで処理で
きれば、文字列検索処理の非常に多くの部分をテーブル
アクセスなしで、比較処理だけで行うことが出来る。そ
して比較処理は、部分文字列のみを比較対象として絞り
込んでいるため、比較的小容量のハードウエアで実現す
ることが出来る。従って、並列比較器とその周辺回路を
1チップ化したり,高速の小容量メモリを利用すること
により、従来のテーブルアクセスに比べて非常に短時間
で行うことが可能となるので、検索処理全体の速度が向
上する.次に,第5図は、本実施例の並列動作を説明す
るための処理のタイムチャートである。 第5図に示すように,一連の処理は、■被検索文字列1
01の入力(data in) .■複数の検索文字列
の部分文字列との並列比較(amp) .■状態遷移テ
ーブルの参照(table) .■検索結果111の出
力(data out)の順に実行される。 しかし、ステップ■は有効な現状態が存在しない場合に
は実行されず、ステップ■も検索文字列に関する検索条
件が満足されない場合は実行されない.したがって、被
検索文字列101の1文字入力、あるいは複数文字入力
に対する処理は,ステップの、■が各々1回、ステップ
■が状態コードキュー109内の有効な状態数に等しい
回数、ステップ■がOまたは1回、で構成されることに
なる。ただしステップ■は、オー1〜マトンの方式によ
り、単一の状態が複数の検索文字列の一致検出に相当す
ることがあり、この場合は複数回となる。 第6図は、上記の複数検索文字列の同時検出の一例を示
した図である。 第6図に示すように,3種の検索文字列Kよ:abc,
K2:bc,K3:c,が設定されると、図中のオート
マトンが生成され、It abcI1という被検索文字
列が入力された場合には、状態3ですべての検索文字列
が検出されることになる。 各処理ステップの実行時間の概略見積りは次のようにな
る。 ステップ■:被検索文字列101からの1回の入力(バ
ス幅に相当する文字数分の入力)であるから、少なくと
もメモリアクセスに相当する実行時間を要する。 ステップ■:並列比較器106による部分文字列の照合
を行うが、チップ外部とのデータの入出力がないので、
相当する論理ゲートの遅延時間が実行時間になる. ステップ■;状態コードキュー109に蓄えられた現状
態コードに対して、オートマトン実行手段104に相当
する論理ゲートの遅延時間と、状態遷移テーブル110
へのアクセス時間との和に相当する実行時間が必要であ
る。これがステップ■の実行時間になる。 ステップ■:検索文字列の検出のたびに検索結果1. 
1 1は出力される。検索結果1 1. 1の総ビット
数をデータ転送バスのビットサイズの何倍にとるかによ
り、検索結果1. 1 1の出力1回あたりの、出力バ
ッファ105へのアクセス回数が決定されるので,実行
時間もこれによって定まる。実際上は、高々数回のメモ
リアクセスに相当する実行時間とみなすことが出来る。 以上のステップ■〜■は第5図に示すようにパイプライ
ン処理によって実行される。第5図において、横軸は時
間の経過を表し、縦方向は文字コードの入力(l番目の
文字コード、2番目の文字コード,3番目の文字コード
,・・・)を表している。そしてi番目の入力文字コー
ドに対するステップ■、■と、(i+1)番目の入力文
字コードに対するステップ■とが,毎サイクル並列に実
行される。但し、ステップ■は常に実行されるとは限ら
ない。 また、第4図における入力バッファ102,文字コード
バッファ103の深さを深くすることにより、オートマ
トンの処理サイクルが伸びても■被検索文字列の入力(
data in)を止めなくて済むので、入力と処理の
並列実行の割合を高めることができ、更に全体の処理速
度を高めることが可能となる. 本実施例の並列動作により、被検索文字列10lの入力
パッファ102への取り込みの無駄時間、すなわちオー
トマトンの処理が終わらず,次のデータを読み込めずに
待たされる時間は、最低限に抑えられることになる。こ
のため、検索処理全体の高速化が実現出来る。 次に、第7図は、連想機能を持つメモリ、すなわちC 
A M (Content Addressable 
Memory)を用いた並列比較器の実施例を示すブロ
ック図である。 本実施例では,1ワードを4バイトのCAMレジスタで
構成し、全体が工6ワード(CAM  RO−R15)
の構成となっている. 本実施例においては、入力バッファ102に取り込んだ
文字列を部分文字列として設定するために、選択的に任
意のCAMレジスタへ転送すること(設定モード)も、
取り込んだ被検索文字列101を複数の部分文字列と並
列照合するために、同時に全てのCAMレジスタへ分配
すること(比較モード)も可能である。 本実施例においては、個々の部分文字列比較回路の構成
は同じなので、以下、添え字Oのものを例として説明す
る。 本実施例において、部分文字列比較回路は、下記の各要
素から構成される.すなわち、並列比較器106へ設定
される第1番目の部分文字列を格納するCAMレジスタ
(RO)201一〇、 該CAMレジスタ(RO)201−0の設定データのバ
イトごとの有効性を示すバリッドフラグ(VFO)20
2−0、 該バリッドフラグ(VFO)202−0がセット(“1
”)されている場合には該CAMレジスタ(RO)20
1−0でのバイトごとの比較照合結果を″有効”として
出力し,リセット(″0”)されている場合にはCAM
レジスタ(RO)201−0でのバイトごとの比較照合
結果を″無効″として常に11 1 1+を出力するこ
れらバイトごとの結果を統合する論理回路部203−0
、部分文字列の全バイトをバリッドフラグ(VFO)2
02−0で無効指定した場合にこれを検出する論理回路
部204−0、 上記論理回路部203−0、204−0の結果である2
14−0、2 1 5−0を統合して部分文字列の最終
的な比較照合結果を得る論理回路部205−0、 その出力である一致信号a (ho)216−0、であ
る。 そして、この1ワード分のハードウエアを16組合わせ
たものから,並列比較器106の全体が構成されている
. なお、本実施例のCAMレジスタのバイト、ワード構成
およびバリッドフラグの構成は、それぞれ容易に拡張可
能であり,任意のものを取りうる.また、CAMレジス
タ(RO〜Rl5)201,バリッドフラグ(VF O
−VF 1 5) 2 0 2ヘは,入力バッファ10
2を介して任意のものにアクセスすることが出来る。ま
た、個々の専用のデータバスを設ける構成も取りつる. 次に、作用を説明する. まず、検索に必要な部分文字列とバリッドフラグ202
の内容を設定した後、部分文字列を設定していない不要
なCAMレジスタ201に対しては、付随するバリッド
フラグ202をリセットし、無効化する。これによって
不要部分の比較照合処理は常に不一致となり、一致信号
はディスイネーブル固定となる。 以上の初期設定の後に、被検索文字列101が入力バッ
ファ102を介して全てのCAMレジスタ201へ同時
に分配される.個々のCAMレジスタ201は比較モー
ドになっており、分配された入力文字コードとあらかじ
め設定されている部分文字列との照合を行う。両者の照
合はビット対応に行ない、その結果はlバイトごとに論
理積をとってまとめる.すなわち、英数字l文字単位で
完全一致を検出する。これらの比較照合結果は、バリッ
ドフラグ202の対応ビットと井にバイト比較結果を統
合する論理回路部203に入力される。バリッドフラグ
202によって部分文字列中にドント・ケア文字の設定
されたバイトについては、常に一致を示す値が出力され
る。そして,これらの出力についてまとめて論理積がと
られる。 すなわち、部分文字列1語の比較結果215が得られる
ことになる。 一方、上述した論理回路だけでは4バイト全てを無効に
指定すると、どの様な入力文字コードに対しても一致照
合を示してしまう。従って、同一ワード内のバリッドフ
ラグ202が全てリセットされている場合には一致信号
が常にディスイネーブルされる必要がある。このための
論理回路を構成するのが、第7図の204、205であ
る.以上のように本実施例によれば、複数の部分文字列
に対して並列に比較照合処理を高速に行うことが出来る
だけでなく、部分文字列の任意の位置にドント・ケア文
字を設定することが出来る。また、並列比較器106の
1ワード以下の語長であれば、不要部分にドント・ケア
文字の設定、すなわち不要部分のバリッドフラグ202
をリセットすることにより、バイト単位で任意の長さの
部分文字列を設定することも可能となり,柔軟な並列比
較照合処理が実現出来るという効果がある。また、バリ
ッドフラグ202の操作のみで、一度設定した部分文字
列の破棄,回復が高速に行えるという効果もある。 次に,第8図は、第7図においてC A Mレジスタと
バリッドフラグへ部分文字列を設定する際の一例を示す
図であり、検索文字列” m 3’ ”を設定する例を
示す。 検索文字列“m y ”を設定する場合、” m ’/
 ”をパイト3とバイト2に設定し、バイト1及びバイ
ト0のブランクを無効とするために、バリッドフラグv
3,v2,vl.+ vOをそれぞれ11 1 II1
1 1 II  II O IT II O Itに設
定する。こうすることにより、検索文字列が設定されて
いないバイトlとバイト0の照合結果は、常に# I 
I1となるため、バイト3及びバイト2の“my”の照
合結果だけで、一致信号線の出力が定まることになる。 次に,第9図は.CAMを用いた並列比較器における終
了コード検出手段の実施例図である。 この実施例の構成、終了コードの設定方法、および動作
は,並列比較器と同様である.ただし、並列比較器にお
ける一致信号が、終了コード険出手段においては終了信
号(trm sig,)2 1 6 − 1 6として
制御論理ブロックへと伝達される.上記第9図に示した
のは、終了コード゛’FFEO”が設定された例である
。この終了コードの有効文字数を変更する場合、あるい
は全く終了コードを使用しない場合には,バリッドフラ
グレジスタ202−46の設定を変えることで実現する
ことが出来る。 次に、第10図は、並列比較器の第2の実施例を示すブ
ロック図であり、CAMレジスタのかわりに、レジスタ
207と比較回路208とを用いて構戊した並列比較滞
を示す。 本実施例においては、入力バッファ102に取り込んだ
部分文字列を、設定モードにおいて一度レジスタ207
に蓄えた後に,比較モードとしてレジスタ207と入力
バッファ102とから比較回路208ヘデータを送り比
較照合を行う。各比較回路における比較動作は並列に行
なわれ,その結果は212として照合結果を統合する論
理回路部203へ送られる。 また,バリッドフラグ202の操作およびその出力信号
によるバイトごとの照合結果を統合する論理回路部20
3、部分文字列の全バイト無効指定を検出する論理回路
部204,部分文字列の最終的な照合結果を得る論理回
路部205の動作は、前記第7図の実施例と同様である
。すなわち本実施例においても任意の長さの部分文字列
を設定することができ、また部分文字列として可変長の
ドント・ケア文字を設定することも可能で,柔軟な並列
比較照合処理を実現出来るという効果が得られる. 次に、第11図は,レジスタとバリッドフラグへ部分文
字列を設定する際の一例を示す図であり、前記第8図と
同様に、検索文字列“m y ”を設定する場合を示す
. 検索文字列” m y ”を設定する場合、11 my
nをバイト3とバイト2に設定し,パイト1、及びバイ
トOのブランクを無効とするために、バリッドフラグv
3,v2,vl,voをそれぞれl( I I1“1”
O” tt O”に設定する。こうすることにより,検
索文字列が設定されていないバイト1とバイトOの照合
結果は、常に“1”となるため、バイト3及びバイト2
の“m yl”の照合結果だけで、一M信号線の出力が
定まることになる。 次に、第12図は5レジスタと比較回路を用いた並列比
較器における終了コード検出手段の実施例図である. この実施例の構成、終了コードの設定方法、および動作
は、レジスタと比較回路を用いた並列比較器と同様であ
る。ただし、並列比較器における一致信号が、終了コー
ド検出手段においては終了信号(tr■sig.)2 
1 6 − 1 6として制御論理ブロックへと伝達さ
れる。 上記第12図に示したのは,終了コード” F FE 
O ”が設定された例である。この終了コードの有効文
字数を変更する場合、あるいは全く終了コードを使用し
ない場合には、バリッドフラグレジスタ202−16の
設定を変えることで実現することが出来る。 次に、第13図は、コード変換器107の実施例のブロ
ック図である。 本実施例は、下記の各要素から構成される。すなわち、 並列比較器106(前記第7図または第10図)からの
一致信号(ho−hl5)230を入力信号とし、これ
を状態コード231に変換するプライオリティーエンコ
ーダ220、 やはり一致信号230を入力信号とし,一致信号の全て
がディスイネーブルであること、すなわち被検索文字列
中に部分文字列が全く見つからなかったことを検出する
論理221、 イネーブルが少なくともlつはあること、すなわち被検
索文字列中にいずれかの部分文字列が見つかったことを
検出する論理222、 である. ブライオリティーエンコーダ220は一致信号(ho−
h↓5)230に優先度を付けてエンコードするエンコ
ーダであり、前記第6図のように複数の一致信号がイネ
ーブルとなる場合に、優先度の高いものから一つずつエ
ンコードして状態コード231に変換する。状態コード
231は一旦状態コードキュー109 (第4図)に蓄
えられ、有限オートマトン実行手段104(第4図)へ
送られる。ここで検索文字列の後半部分との比較照合処
理が行われる。 また、並列比較器106での一致検出状況230を監視
する論理の出力232.233は,状態コード231を
セレクタ108へ転送する条件の判断に用いられる.す
なわち、少なくとも1つは部分文字列が見つかったこと
を示すヒット信号233が11 1 1+である場合に
、状態コード231はセレクタ108へ転送される。ま
た、該ヒット信号233とその否定であるノンヒント信
号232の論理和は毎サイクル“l″となるので(毎サ
イクル終了時にリセットされる)、これをタイミング信
号としてデータ転送の同期制御を行なう。 次に、第l4図は、入力バッファ102の第1の実施例
図である。 本実施例は、バクファリングのための2段のレジスタ2
40,242,データ幅変換をするための2段のレジス
タ244,246,変換後のデータを格納するレジスタ
248、およびこれらのレジスタ間のデータバスである
241,243.245,247から構成される. なお、バッファリング用レジスタ240,242の間に
更にレジスタを挿入して段数を増やし、入力バッファ1
02の容量を増加することにより、被検索文字列lot
を入力する速度を出来るだけ最高速度に維持するバッフ
ァリングの効果を高めるこども可能である。 また、データ幅変換用レジスタ244,246からは、
それぞれ変換後データ格納用レジスタ248の下位部分
(バイトl、バイトO)、上位部分(バイト3、バイト
2)へ、データバス245,247を経て次々と新しい
データが供給される。 この結果,2バイトごとに入力された被検索文字列10
1が、変換後データ格納用レジスタ248の下位部分か
ら上位部分へ2バイト単位で移動して行くように見える
.つまり、変換後データ格納用レジスタ248は,2バ
イト単位でシフトしているテキスト・ストリームを4バ
イトのウインドウで切り出していることになる.この4
バイトが並列比較器106へ転送されて,部分文字列と
比較される。これによって,2バイト単位で入力する被
検索文字列を、毎サイクル4バイトの部分文字列と照合
することが出来る.更に,単純に2バイトの部分文字列
と照合するよりも検索条件の制限が厳しくなるので、比
較処理の結果として一致信号がイネーブル出力される確
率が低くなり、有限オートマトン実行手段104の状態
遷移テーブル110へのアクセス頻度が低減されること
になる。 次に、第15図は、入力パッファ102の第2の実施例
図である。 本実施例は,バッファリングのための2段のレジスタ2
50,252、データ幅変換をするための4段のレジス
タ255,257.259,261,変換後のデータを
格納するレジスタ263、およびこれらのレジスタ間の
データバスである251.253、254、256、2
58,260,262から構成される。 パッファリングの効果を高めるためには、前記第14図
と同様に、バツファリング用レジスタ250,252の
間に更にレジスタを押入して段数を増やす. また、データ幅変換用レジスタ255,257,259
.261からは、常に、変換後データ格納用レジスタ2
63の下位部分(バイト1、バイトO)、上位部分(バ
イト3、パイト2)へ,データバス256,258.2
60,262を経て新しいデータが但給される.この結
果、2バイトごとに入力された被検索文字列101が,
変換後データ格納用レジスタ263の下位部分から上位
部分へtバイト単位で移動して行くように見える。 つまり、変換後データ格納用レジスター263は、1バ
イト単位でシフトしているテキスト・ストリームを4バ
イトのウインドウで切り出していることになる.この4
バイトが、並列比較器106へ転送されて、部分文字列
と比較される.これによって前記第14図と同様に、有
限オートマトン実行手段104の状態遷移テーブル11
0へのアクセス頻度が低減されることになる。 次に、第16図は、文字コードバッファ103の実施例
図である. 本実施例は、バッファリングのための2段のレジスタ2
70,273、これらのレジスタ間のデータパスである
271、272から構成される.バッファリングの効果
を高めるためには,前記第14、15図と同様に、バッ
ファリング用レジスタ270,272の間に更にレジス
タを挿入して段数を増やす。 次に、本発明においては、検索処理に先立って検索文字
列の部分文字列を並列比較器106へ設定し、また、検
索文字列から展開されたオートマトンの状態遷移を制御
する制御情報を状態遷移テーブル110へも設定するが
、ここで並列比較器106への部分文字列の設定方法を
、検索文字列の先頭2文字を部分文字列として設定する
場合を例として説明する. 第17図に示すように、K1:“文字列照合”K. a
 ll文字認識” K , : it文学史″およびK
.:“検索制御方式″の4つの単語が検索文字列として
与えられている.この例の場合は、先萌の2文字を部分
文字列とするので、矩形で囲まれた部分の2文字を並列
比較器106へ設定する。第17図のKエ,K2のよう
に、異なった検索文字列でも部分文字列は″文字″とい
うように一致することがある。この場合は両者を合わせ
てひとつの部分文字列として、並列比較器106へ設定
する.検索文字列の残りの部分の比較照合処理は有限オ
ートマトン実行手段104で行なうので、この部分は状
態コードとして状態遷移テーブル110へ設定する. 第18図は,上記第17図に示された4つの検索文字列
をテキスト中から検索するためのオートマトンを示す図
である。 第18図において、番号付けされた円は各状態を表し、
内部の数字は状態番号を示している。初期状態は状態O
であり、2重円は検索文字列の検出を示す状態である.
また、矢印は状態遷移を表しており、矢印の上部に記さ
れた文字が入力された場合に状態が遷移する。これ以外
の文字が入力された場合、または2重円の状態のように
、遷移先が記述されていない場合には、すべて初期状態
へ遷移する。これをフエイルと呼ぶ。 また、オートマトンを2分している破線810は、検索
文字列の先頭の2文字を並列比較器に設定する場合のオ
ートマトンの分割位置を示している.したがって、状態
2.8.11へ至るまでの遷移は並列比較器106によ
って行なわれ、それ以降の遷移は有限オートマトン実行
手段104と状態遷移テーブル110とによって行なわ
れる.分割後の後半のオートマトンは、状態2、8,1
1をそれぞれ初期状態とする3つのオートマトンの集合
と見ることができる。並列比較D106には、状態Oか
ら状態2、8、11の各々へ至る遷移条件を、すべて2
文字に展開した部分文字列が設定される.したがって′
″文字″が入力された場合の状態遷移はO→1→2とな
る。また、9文学″が入力された場合の状態遷移はO→
1→8であり、“文″による状態遷移0→1は共通であ
り、″学″による遷移によって状態8へ分岐遷移するこ
とになる.この状態遷移O→1→8は、図中に破線の矢
印で示したように、2文字の連続出現による0→1′→
8の状態遷移と見なすことができるため,4文字”とは
独立して“文学″という部分文字列を並列比較器に設定
すればよいことになる。 次に、第19図は、前記第18図のオートマトンを,、
並列比較器106と後方照合用に生成されたオートマト
ンとによって構成した概念図である。 第19図において、並列比較器106からの一致信号が
トークンとなって,オートマトンの初期状態を発火させ
る。以後は状態遷移テーブルに従って状態遷移し,次々
と被検索文字列101との比較照合処理を行なっていく
。このように全体の処理では、前記第18図のオートマ
トンを実行しているのと等価となる。 次に、第20図は、本発明の第2の実施例のブロック図
である。 本実施例は、前記第4図に示した第1の実施例から状態
コードキュー109を取り除いたものであり、被検索文
字列101を取り込む入力バッファ102、被検索文字
列の入力文字コード130と予め設定された複数の部分
文字列とを一括照合する並列比較器106、その比較の
結果、検索文字列の部分文字列との一致が検出されたこ
とを知らせる一致信号131を、状態コード132に変
換するコード変換器107、有限オートマトン実行手段
104へ入力する状態コード134の選択をする入力セ
レクタ108、オートマトン動作を実現するオートマト
ン実行手段104、これに入力する文字コード135を
蓄える文字コードバッファ103、オートマトンの状態
遷移の制御情報を格納した状態遷移テーブル110、出
力する検索結果111を保持する出力バッファ105か
ら構成される. 本実施例の動作は、前記第4図に示した第1の実施例と
ほぼ同様である。したがって、第lの実施例と同様に、
被検索文字列と検索文字列の部分文字列との一致が検出
されるまで並列比較器のみで処理することが出来、文字
列検索処理の非常に多くの部分をテーブルアクセスなし
で比較処理のみで行うことが出来る.このため検索処理
全体の速度を向上させることが可能となる。 本実施例では,まず並列比較器106で、被検索文字列
と検索文字列の部分文字列との一致検出が行なわれる。 一致が検出されると一致信号131は状態コード132
に変換され,セレクタ{O8を経て、有限オートマトン
実行手段104へ転送される。そしてこれ以降入力され
た被検索文字列に対しては、並列比較器106の比較結
果は参照せず、有限オートマトン実行手段104と状態
遷移テーブル110とで、オートマトンの実行を行なう
。また、セレクタ108は状態遷移テーブル110から
の次状態コード138を選択して,有限オートマトン実
行手段104へ転送する。以上の動作が入力文字コード
に対して次々と繰り返され、後方照合が行なわれる。一
方検索文字列が検索された場合や,初期状態へ遷移する
フェイルが発生した場合には、再び並列比較器106で
先頭照合処理が行なわれる。 これらの一連の処理の実行は、前記第1の実施例よりも
並列度に関しては劣る。しかし、全体に占める先頭照合
の処理の−比率が高い場合には、本実施例でも十分高速
化の効果があり、さらに状態コードキュー109とそれ
を制御するハードウエア量の削減の効果や、制御方式の
簡略化による処理速度向上の効果がある。また、各構成
要素は同一半導体チップ上に集積することが最も効果的
であるが、回路規模の制約により,全てを同一半導体チ
ップ上に集積することが必ずしも可能であるとは限らな
い.そのため構成要素の幾つかを別の半導体チップ上に
集積して構戒することが考えられる。本実施例によれば
、制御方式が簡略であるため,並列比較器106や状態
遷移テーブル110、各種バッファを独立チップとして
切り出し、全体をマルチチップ構成とすることも容易と
なる。 次に、第21図は,本発明の第3の実施例のブロック図
である。 本実施例は、前記第4図に示した第1の実施例における
有限オートマトン実行手段104としてCPUを利用し
たものである. 本実施例の構成は,入力バッファ102、文字コードバ
ッファ103、並列比較’a 1 0 6、コード変換
器107、入力セレクタ108、状態コードキュー10
9までは第1の実施例と同様である。 しかし有限オートマトン実行手段としてCPUI12を
用いているため、文字コードバッファ103と状態コー
ドキュー109の出力は内部バスl13に接続され、こ
れを介してCPU112のデータパスへ接続されている
。 また、CPU112で実行するオートマトンの制御情報
を格納する状態遷移テーブル114へは、アドレスを指
定してアクセスする.この結果、テーブルの内容である
次状態は内部バス113へ返され、セレクタ108を経
て状態コードキュー109へ蓄えられる。このとき、検
索文字列との一致検出を示す状態が得られれば,これに
対応する検索結果111がCPU 1 1 2から内部
バス1工3を介して出力バッファ105へ書き出される
。 以上の処理において、システム全体の制御,内部バス1
13の制御、また並列比較器106、状態遷移テーブル
114へのデータ設定はCPUI12が行なう. CPUI 1 2は、他の構成要素と共に同一半導体チ
ップ上に集積される。しかし、回路規模の制約や既存の
CPUチップを使用する場合もあるので,別チップで構
成することも考えられる。 本実施例においても、前記第1の実施例と同様、並列比
較器106での部分文字列の比較処理がテーブルアクセ
スなしで行なえるので、検索処理全体の速度が向上する
という効果が得られる.次に、第22図は、本発明の第
4の実施例のブロック図である。 本実施例は、第21図に示した第3の実施例における文
字コードバッファ103と状態コードキュー109と状
態遷移テーブル114とを、cpU112の管理下にあ
るメモリ空間に割り付ける構成をとったものである. 本実施例の構成は、入力バッファ102、並列比較器1
06、コード変換器107までは前記第3の実施例と同
様である.しかし、第3の実施例における文字コードバ
ッファ103を介した内部バス113への接続,入力セ
レクタ108と状態コードキュー109を介した内部バ
ス113への接続が,それぞれ直接、内部バス113へ
接続された形になっている.そして文字コードバツファ
116と状態コードキュー117は、状態遷移テーブル
115を含むメモリ空間内の一部として配置されている
.これらは内部バス113を介して、CPUI 1 2
からアドレス指定によってアクセスすることが出来る。 被検索文字列101中からの検索文字列の一連の比較照
合処理は,第3の実施例と同様に行なわれる.その際の
内部バス113の制御は、CPU112が行なう. 本実施例においても、前記第1、第2、第3の実施例と
同様に、並列比較器106での部分文字列の比較処理が
テーブルアクセスなしで行なえるので、検索処理傘体の
速度が向上するという効果が得られる。 次に、第23図は、本発明の第5の実施例のブロック図
である. 本実施例は、前記第22図に示した第4の実施例に検索
結果参照テーブル118を追加した構成となっている. 検索結果参照テーブル118は、状態遷移テーブル11
5、文字フードバッファ116.状態コ一ドキュー11
7と同様に、CPUI 1 2管理下のメモリ空間内に
配置され、CPU112からアドレス指定によってアク
セスすることが出来る.本実施例においては、比較照合
処理によって被検索文字列101と検索文字列との一致
検出を示す状態が得られた場合に、CPUI 1 2が
検索結果参照テーブル118の該当アドレスから検索結
果111の一部として付加する情報を得て,出力バッフ
ァ105へ書き出す.検索結果参照テーブル118には
、一連の検索処理の終了を知らせるターミネータや,次
段に接続するハードウエアへ渡すための,種々の制御情
報も格納されており、これらも必要に応じて出力バッフ
ァ105へ書き出される, また、検索結果参照テーブル118の内容を書き換え可
能とすることにより、ユーザプログラマブルにすること
が出来る。このため異なった処理ごとに、あるいはチッ
プごとに,その内容を任意に設定することが可能である
. 従って本実施例においては、検索結果111のデータフ
ォーマットや内容を任意に設定することが可能であるの
で、様々なシステム構成やインターフェイスに柔軟に対
応することが出来るという効果が得られる.さらに、本
実施例においても前記第1,第2、第3、第4の実施例
と同様に,並列比較器106での部分文字列の比較処理
がテーブルアクセスなしで行なえるので、検索処理全体
の速度が向上するという効果が得られる.次に、第24
図は,部分文字列設定のための入力ポート、バリッドフ
ラグレジスタ設定のための入力ポート,および被検索文
字列の入力ポートを共有する構成の第1の実施例を示す
ブロック図である. 第24図において、アクセスモードは、CAMレジスタ
(CAM RO−R15)とバリッドフラグレジスタ(
VFO−VF15)からのデータ読み出し(リードモー
ド),それらへのデータ書き込み(ライトモードまたは
設定モード),および被検索文字列と部分文字列との照
合(コンベアモードまたは比較モード)の3種である.
ポート280は、リードモードではデータ出力ポートと
して機能し、ライトモードおよびコンベアモードではデ
ータ入力ポートとして機能する.また,CAMレジスタ
とバリッドフラグレジスタはアドレス付けされており、
リードモード、ライトモードにおいて外部からのアドレ
ス入力で任意のものを選択することが出来る。 リードモードでは、任意のCAMレジスタまたはバリッ
ドフラグレジスタをアドレスで指定し、その内容を出力
データパス上へのせ、出力バッファのゲートを開けてデ
ータを読み出す。 ライトモードでは、入力バッファのゲートを開けてデー
タを入力データバス上へのせ、任意のCAMレジスタま
たはバリッドフラグレジスタをアドレスで指定し、その
内部へ入力データパス上のデータをラッチする. コンベアモードでは、入力バツファのゲートを開けてデ
ータを入力データバス上へのせ,特定のCAMレジスタ
やバリッドフラグレジスタが選択されることのないよう
にアドレスを設定して、全てのCAMレジスタへバス上
のデータを分配し、ラッチされている部分文字列との照
合を行なう.上記の各モードでポート280を共有する
ことにより、半導体集積回路上のパッド数を減少させる
ことが出来る.したがってチップ面積増大やピン数増加
の対策として有効である. 次に、第25図は、部分文字列設定のための入力ポート
、バリッドフラグレジスタ設定のための入力ポート,お
よび被検索文字列の入力ポートを共有する構成の第2の
実施例を示すブロック図である. この実施例は、前記第24図の実施例におけるCAMレ
ジスタの代わりに、レジスタ(REG〜REG15)と
比較回路(CMPO−CMP15)とを用いて構成した
ものである.その動作及び効果は、前記第24図の実施
例と同様であり、チップ面積増大やビン数増加の対策と
して有効である。
【発明の効果】
本発明によれば、オートマトンを用いた文書検索におい
て、有限オートマトン実行手段の前段に並列比較器を置
き、検索文字列の部分文字列との比較を行なって一致し
た場合のみ、オートマトン実行手段による処理を行なわ
せることにより、有限オートマトン実行手段と状態遷移
テーブルとのデータ入出力回数を低減させることが出来
るため、検索処理速度を向上させることが出来るという
効果が得られる. また、並列比較器に設定する部分文字列の文字数を多く
することによって,有限オートマトン実行手段と状態遷
移テーブルとのデータ入出力回数を更に低減させること
が出来るため、検索処理速度を一層向上させろことが出
来るという効果が得られる.特に、並列比較器に設定さ
れた部分文字列との一致が全く検出されない場合に処理
速度は最大となり,ほぼテキストの入力時間のみで検索
処理を終了し得ることになる. また、並列比較器内にバリッドフラグを設けることによ
り,語長の異なった部分文字列や、ドント・ケア文字を
含む部分文字列の設定が可能となるので、オートマトン
を用いた検索の持つ柔軟性を損なうことなく、高速な検
索を実現できるという効果が得られる。
【図面の簡単な説明】
第1図は本発明における有限オートマトンを用いた文字
列検索の原理を説明するためのブロック図、第2図は従
来の有限オートマトンを用いた文字列検索の原理を説明
するためのブロック図,第3図は文字列検索のオートマ
トンにおける状態の深さと到達確率との関係を示す図、
第4図は本発明の第lの実施例の構成を示すブロック図
、第5図は本発明の第1の実施例における並列処理のタ
イムチャートを示す図、第6図は同一の入力文字に対し
て複数の検索文字列が検出される検索文字列の設定例を
示す図,第7図はCAMを用いた並列比較器の一実施例
のブロック図,第8図はCAMを用いた並列比較器八の
検索部分文字列の設定の一例を示すブロック図、第9図
はCAMを用いた並列比較器への終了コードの設定の一
例を示すブロック図、第10図はレジスタと比較沿を用
いた並列比較器の一実施例のブロック図,第11図はレ
ジスタと比較器を用いた並列比較器への検索部分文字列
の設定の一例を示す図、第12図はレジスタと比較器を
用いた並列比較器への終了コードの設定の一例を示す図
、第13図はコード変換器の一実施例のブロック図、第
14図は入力バソファの第1の実施例のブロック図、第
15図は入力バッファの第2の実施例のブロック図,第
16図は文字コードバッファの一実施例のブロック図,
第l7図は検索文字列中の先頭照合処理対象部分の一例
を示す図、第18図は第17図の検索文字列を検索する
ためのオートマトンを示す図、第19図は第17図の検
索文字列を検索するための並列比較器と後方照合オート
マトンのブロック図,第20図は本発明の第2の実施例
の構成を示すブロック図、第21図は本発明の第3の実
施例の構成を示すブロック図、第22図は本発明の第4
の実施例の構戒を示すブロック図、第23図は本発明の
第5の実施例の構成を示すブロック図、第24図および
第25図はそれぞれ入力ポートを共有する実施例のブロ
ック図、第26図は文字列検索システムの全体の構成を
示すブロック図である。 く符号の説明〉 10・・・並列比較部 11・・・有限オートマトン実行部 12・・・有限オートマトン l3・・・先頭照合オートマトン 14・・・後方照合オートマトン 101・・・被検索文字列 102・・・入力バッファ 103および116・・・文字コードバッファ104・
・・有限オートマトン実行手段105・・・出力バッフ
ァ 106・・・並列比較器 107・・・コード変換器 108・・・セレクタ 109および117・・・状態コードキュー110、1
14および115・・・状態遷移テーブル111および
136・・・検索結果 112・・・CPUモジュール 113・・・内部バス 118・・・検索結果参照テーブル 130および135・・・入力文字コード131・・・
一致信号 132、133および134・・・状態コード137・
・・状態遷移テーブルアクセスアドレス138・・・遷
移先の状態 201−0〜15・・・CAMレジスタ202−0〜1
5・・・バリッドフラグレジスタ203−0〜15・・
・バイトごとの比較照合結果を統合する論理回路部 204−0〜15・・・バリッドフラグの全ビット無効
指定を検出する論理回路部 205−0〜15・・・部分文字列の最終照合結果を出
力する論理回路部 207−0〜15・・・レジスタ 208−0〜15・・・比較回路 210−0〜l5・・・レジスタデータバスzti−o
〜15・・・バリッドフラグレジスタ・データパス 2 1 2−0〜15・・・バイト単位の比較結果2 
1 3−0〜15・・・バリッドフラグレジスタ・デー
タ 214−0〜15・・・バリッドフラグの全ビット無効
指定検出結果 2 1 5−0〜15・・・部分文字列比較結果2 1
 6−0〜15・・・部分文字列の最終照合結果201
−16・・・終了コード用CAMレジスタ202−16
・・・終了コード用バリッドフラグレジスタ 203−16・・・終了コードのバイトごとの比較照合
結果を統合する論理回路部 204−16・・・終了コード用バリッドフラグの全ビ
ット無効指定を検出する論理回 路部 205−16・・・終了コードの最終照合結果を出力す
る論理回路部 207−16・・・終了コード用レジスタ208−16
・・・終了コード用比較回路210−16・・・終了コ
ード用レジスタデータバス211−16・・・終了コー
ド用バリッドフラグレジスタ・データバス 212−16・・・終了コードのバイト単位の比較結果 213−16・・・終了コードのバリッドフラグレジス
タ・データ 214−16・・・終了コード用パリッドフラグの全ビ
ット無効指定検出結果 215−16・・・終了コードの比較結果216−16
・・・終了コードの最終照合結果220・・・プライオ
リティエンコーダ221・・・部分文字列が全く見つか
らなかったことを検出する論理回路部 222・・・部分文字列が少なくとも1つは見つかった
ことを検出する論理回路部 230・・・一致信号群 231・・・状態コード 232・・・部分文字列が全く見つからなかったことの
検出結果 233・・・部分文字列が少なくとも1つは見つかった
ことの検出結果 240,242、250、252、270および273
・・・バッファリング用レジスタ244、246、25
5、257、259および261・・・データ幅変換用
レジスタ 248および263・・・変換後データ格納レジスタ2
41、243、245、247、251,253.25
4、256、258、260、262、271および2
72・・・レジスタ間データパス 324・・・検索結果 810・・・オートマトン分割線

Claims (1)

  1. 【特許請求の範囲】 1、コード表現された記号で構成される被検索記号列中
    に複数の検索対象記号列が存在するか否かを一括して判
    定するオートマトンを用いた記号列検索方法において、
    複数の検索記号列を被検索記号列中から一括して検索す
    る際に、該検索記号列を任意の位置で少なくとも2つの
    部分記号列に分割し、分割したものの1つの部分記号列
    の照合すなわち先頭照合処理を行なった結果、該部分記
    号列に関する検索条件を満足した検索記号列に対しての
    み、残りの部分記号列の照合すなわち後方照合処理を行
    い、ここで残りの部分記号列に関する検索条件を満足し
    た場合に該検索記号列が検索されたと判定することを特
    徴とする記号列検索方法。 2、少なくとも、 (a)前記被検索記号列を入力するための第1の外部情
    報アクセス手段と、 (b)該第1の外部情報アクセス手段によって入力した
    前記被検索記号列と、検索記号列の部分記号列との先頭
    照合処理を行なう先頭照合処理手段と、 (c)該第1の外部情報アクセス手段によって入力した
    前記被検索記号列と、検索記号列の部分記号列との後方
    照合処理を行なう後方照合処理手段と、 (d)上記後方照合処理を行なう際に、後方照合処理を
    制御するデータを格納するデータ格納手段と、 (e)後方照合処理制御データをデータ格納手段から入
    力するための第2の外部情報アクセス手段と、 の各構成要素を備えたことを特徴とする第1請求項に記
    載の記号列検索方法を用いて記号列検索を行なう記号列
    検索装置。 3、(a)前記被検索記号列を入力するための第1の外
    部情報アクセス手段と、 (b)該第1の外部情報アクセス手段によって入力した
    前記被検索記号列と、検索記号列の部分記号列との先頭
    照合処理を行なう先頭照合処理手段と、 (c)該第1の外部情報アクセス手段によって入力した
    前記被検索記号列と、検索記号列の部分記号列との後方
    照合処理を行なう後方照合処理手段と、 (d)上記後方照合処理を行なう際に、後方照合処理を
    制御するデータを格納するデータ格納手段と、 (e)後方照合処理制御データをデータ格納手段から入
    力するための第2の外部情報アクセス手段と、 の各構成要素のうちの少なくとも2種以上の構成要素を
    同一半導体チップ上に集積したことを特徴とする半導体
    集積回路。 4、第2請求項に記載の記号列検索装置において、前記
    第1の外部情報アクセス手段によるアクセスと、前記第
    2の外部情報アクセス手段によるアクセスとを、独立に
    行なえるように構成したことを特徴とする記号列検索装
    置。 5、第3請求項に記載の半導体集積回路において、前記
    構成要素(a)〜(e)のうちの少なくとも第1の外部
    情報アクセス手段(a)と第2の外部情報アクセス手段
    (e)とを同一半導体チップ上に集積し、かつ、該第1
    の外部情報アクセス手段によるアクセスと、該第2の外
    部情報アクセス手段によるアクセスとを、独立に行なえ
    るように構成したことを特徴とする半導体集積回路。 6、第4請求項に記載の記号列検索装置において、前記
    第1の外部情報アクセス手段による外部情報アクセスが
    、前記第2の外部情報アクセス手段による外部情報アク
    セスよりも、高い頻度で行なわれるように構成したこと
    を特徴とする記号列検索装置。 7、第5請求項に記載の半導体集積回路において、前記
    構成要素(a)〜(e)のうちの少なくとも第1の外部
    情報アクセス手段(a)と第2の外部情報アクセス手段
    (e)とを同一半導体チップ上に集積し、かつ、該第1
    の外部情報アクセス手段による外部情報アクセスが、該
    第2の外部情報アクセス手段による外部情報アクセスよ
    りも、高い頻度で行なわれるように構成したことを特徴
    とする半導体集積回路。 8、第4請求項に記載の記号列検索装置において、前記
    第1の外部情報アクセス手段による外部情報アクセスが
    、前記第2の外部情報アクセス手段による外部情報アク
    セスよりも、先立って行なわれるように構成したことを
    特徴とする記号列検索装置。 9、第5請求項に記載の半導体集積回路において、前記
    構成要素(a)〜(e)のうちの少なくとも第1の外部
    情報アクセス手段(a)と第2の外部情報アクセス手段
    (e)とを同一半導体チップ上に集積し、かつ、該第1
    の外部情報アクセス手段による外部情報アクセスが、該
    第2の外部情報アクセス手段による外部情報アクセスよ
    りも、先立って行なわれるように構成したことを特徴と
    する半導体集積回路。 10、第3請求項に記載の半導体集積回路において、 前記構成要素(a)〜(e)のうちの先頭照合処理手段
    (b)を含む少なくとも2種の構成要素を、各構成要素
    についてそれぞれ1つ以上、同一半導体チップ上に集積
    し、かつ、複数の前記検索記号列またはそれらの部分記
    号列を該半導体集積回路内部に格納する手段を備えたこ
    とを特徴とする半導体集積回路。 11、第2請求項に記載の記号列検索装置において、 (f)入力した被検索記号列をバッファリングする入力
    バッファリング手段と、 (g)先頭照合処理を行なうために、予め設定された複
    数の検索記号列の部分記号列と上記入力バッファリング
    手段から送られる被検索記号列との照合を並列に行う並
    列照合手段と、 (h)後方照合処理の際に参照する制御データを格納す
    る状態遷移テーブルと、 (i)後方照合処理を行なうために、上記入力バッファ
    リング手段から送られる被検索記号列と上記状態遷移テ
    ーブルの制御データとに基づいて有限オートマトンを実
    行する有限オートマトン実行手段と、 (j)後方照合処理の際に、上記状態遷移テーブルを参
    照するための状態遷移テーブルアクセス手段と、 (k)上記並列照合手段による先頭照合結果を、上記有
    限オートマトン実行手段へ転送するコードに変換するコ
    ード変換手段と、 (l)上記コード変換手段によって生成されたコードと
    上記状態遷移テーブルから得られた状態とのいずれを上
    記有限オートマトン実行手段へ転送するかを選択するデ
    ータ選択手段と、(m)上記有限オートマトン実行手段
    からの検索結果を保持する出力バッファリング手段と、
    を備え、被検索記号列入力に対する複数の検索記号列の
    検索処理を行う際に、検索記号列を任意の位置で少なく
    とも2つの部分記号列に分割し、分割したものの1つの
    部分記号列の先頭照合処理を上記並列照合手段で行い、
    該部分記号列に関する検索条件を満足した検索記号列に
    対してのみ、上記有限オートマトン実行手段で残りの部
    分記号列の後方照合処理を行い、ここで該残りの部分記
    号列に関する検索条件を満足した場合に、該検索記号列
    が検索されたと判定する記号列検索処理を行なうことを
    特徴とする記号列検索装置。 12、第3請求項に記載の半導体集積回路において、 (f)入力した被検索記号列をバッファリングする入力
    バッファリング手段と、 (g)先頭照合処理を行なうために、予め設定された複
    数の検索記号列の部分記号列と上記入力バッファリング
    手段から送られる被検索記号列との照合を並列に行う並
    列照合手段と、 (h)後方照合処理の際に参照する制御データを格納す
    る状態遷移テーブルと、 (i)後方照合処理を行なうために、上記入力バッファ
    リング手段から送られる被検索記号列と上記状態遷移テ
    ーブルの制御データとに基づいて有限オートマトンを実
    行する有限オートマトン実行手段と、 (j)後方照合処理の際に、上記状態遷移テーブルを参
    照するための状態遷移テーブルアクセス手段と、 (k)上記並列照合手段による先頭照合結果を、上記有
    限オートマトン実行手段へ転送するコードに変換するコ
    ード変換手段と、 (l)上記コード変換手段によって生成されたコードと
    上記状態遷移テーブルから得られた状態とのいずれを上
    記有限オートマトン実行手段へ転送するかを選択するデ
    ータ選択手段と、(m)上記有限オートマトン実行手段
    からの検索結果を保持する出力バッファリング手段と、
    の各構成要素のうちの少なくとも2種以上の構成要素、
    若しくは上記(h)を除いた各構成要素のうちの少なく
    とも2種以上の構成要素を同一半導体チップ上に集積し
    たことを特徴とする半導体集積回路。 13、第11請求項に記載の記号列検索装置において、 前記記号列検索装置内部へ任意の終了コードを設定する
    終了コード設定手段と、終了コードを検出する終了コー
    ド検出手段とを備え、前記被検索記号列中に該終了コー
    ドを検出することにより、記号列検索処理を終了するよ
    うに構成したことを特徴とする記号列検索装置。 14、第12請求項に記載の半導体集積回路において、 前記半導体集積回路内部へ任意の終了コードを設定する
    終了コード設定手段と、終了コードを検出する終了コー
    ド検出手段とを、同一半導体チップ上に集積し、前記被
    検索記号列中に該終了コードを検出することにより、記
    号列検索処理を終了するように構成したことを特徴とす
    る半導体集積回路。 15、第13請求項に記載の記号列検索装置において、
    前記終了コード設定手段に設定する複数の記号から構成
    される終了コードと被検索記号列との照合の際に、終了
    コードの有効・無効を少なくとも記号ごとに示すバリッ
    ドフラグレジスタを設け、更に該バリッドフラグレジス
    タの任意の構成ビットをセットあるいはリセットする手
    段を備え、 照合の際に該バリッドフラグレジスタを参照し、該バリ
    ッドフラグレジスタの構成ビットがセット状態である部
    分に対応する終了コード中の記号を、被検索記号列との
    照合の際に“有効”とし、リセット状態である部分に対
    応する終了コード中の記号を、被検索記号列との照合の
    際に“無効”とすることにより、該終了コードの任意位
    置にドント・ケア(don’tcare)を設定するこ
    とを可能にしたことを特徴とする記号列検索装置。 16、第14請求項に記載の半導体集積回路において、 前記終了コード設定手段に設定する複数の記号から構成
    される終了コードと被検索記号列との照合の際に、終了
    コードの有効・無効を少なくとも記号ごとに示すバリッ
    ドフラグレジスタを設け、また、該バリッドフラグレジ
    スタの任意の構成ビットをセットあるいはリセットする
    手段を同一半導体チップ上に集積し、 照合の際に該バリッドフラグレジスタを参照し、該バリ
    ッドフラグレジスタの構成ビットがセット状態である部
    分に対応する終了コード中の記号を、被検索記号列との
    照合の際に“有効”とし、リセット状態である部分に対
    応する終了コード中の記号を、被検索記号列との照合の
    際に“無効”とすることにより、該終了コードの任意位
    置にドント・ケアを設定することを可能にしたことを特
    徴とする半導体集積回路。 17、特許請求範囲第11項記載の記号列検索装置にお
    いて、 前記並列照合手段と前記有限オートマトン実行手段とが
    、同一の入力記号に対して並列動作し、処理を行うこと
    を特徴とする記号列検索装置。 18、特許請求範囲第12項記載の半導体集積回路にお
    いて、 前記並列照合手段と前記有限オートマトン実行手段とを
    同一半導体チップ上に集積し、かつ、両者が同一の入力
    記号に対して並列動作し、処理を行うことを特徴とする
    半導体集積回路。 19、第11請求項に記載の記号列検索装置において、 前記有限オートマトン実行手段を、CPUを用いて構成
    したことを特徴とする記号列検索装置。 20、第12請求項に記載の半導体集積回路において、 前記有限オートマトン実行手段をCPUで構成し、かつ
    、該CPUを同一半導体チップ上に集積したことを特徴
    とする半導体集積回路。 21、第11請求項に記載の記号列検索装置において、 前記並列照合手段を、連想メモリを用いて構成したこと
    を特徴とする記号列検索装置。 22、第12請求項に記載の半導体集積回路において、 前記並列照合手段を、連想メモリを用いて構成し、かつ
    、該連想メモリを同一半導体チップ上に集積したことを
    特徴とする半導体集積回路。 23、第11請求項に記載の記号列検索装置において、 前記並列照合手段を、レジスタと比較回路の組合せを複
    数組用いて構成したことを特徴とする記号列検索装置。 24、第12請求項に記載の半導体集積回路において、 前記並列照合手段を、レジスタと比較回路の組合せを複
    数組用いて構成し、かつ、それらを同一半導体チップ上
    に集積したことを特徴とする半導体集積回路。 25、第11請求項に記載の記号列検索装置において、 前記並列照合手段内に設定する各検索記号列の部分記号
    列に、照合の際にその有効・無効を少なくとも記号ごと
    に示すバリッドフラグレジスタを設け、更に該バリッド
    フラグレジスタの任意の構成ビットをセットあるいはリ
    セットする手段を備え、 照合の際に該バリッドフラグレジスタを参照し、該バリ
    ッドフラグレジスタの構成ビットがセット状態である部
    分に対応する部分記号列中の記号を、被検索記号列との
    照合の際に“有効”とし、リセット状態である部分に対
    応する部分記号列中の記号を、被検索記号列との照合の
    際に“無効”とすることにより、該部分記号列の任意位
    置にドント・ケアを設定することを可能としたことを特
    徴とする記号列検索装置。 26、第12請求項に記載の半導体集積回路において、 前記並列照合手段内に設定する各検索記号列の部分記号
    列に、照合の際にその有効・無効を少なくとも記号ごと
    に示すバリッドフラグレジスタを設け、更に該バリッド
    フラグレジスタの任意の構成ビットをセットあるいはリ
    セットする手段を同一半導体チップ上に集積し、 照合の際に該バリッドフラグレジスタを参照し、該バリ
    ッドフラグレジスタの構成ビットが、セット状態である
    部分に対応する部分記号列中の記号を、被検索記号列と
    の照合の際に“有効”とし、リセット状態である部分に
    対応する部分記号列中の記号を、被検索記号列との照合
    の際に“無効”とすることにより、該部分記号列の任意
    位置にドント・ケアを設定することを可能としたことを
    特徴とする半導体集積回路。 27、第25請求項に記載の記号列検索装置において、 前記並列照合手段に、検索記号列の部分記号列内の全て
    の記号をドント・ケアに設定した場合には、全ての入力
    記号に対して該部分記号列との照合の結果として不一致
    の判定をする手段を備えたことを特徴とする記号列検索
    装置。 28、第26請求項に記載の半導体集積回路において、 前記並列照合手段に、検索記号列の部分記号列内の全て
    の記号をドント・ケアに設定した場合には、全ての入力
    記号に対して該部分記号列との照合の結果として不一致
    の判定をする手段を同一半導体チップ内に集積したこと
    を特徴とする半導体集積回路。 29、第11請求項に記載の記号列検索装置において、 前記並列照合手段に設定された複数の検索記号列の部分
    記号列と被検索記号列との照合の結果、設定された該検
    索記号列のすべてが検索条件を満足しない場合、これを
    検出する手段を設けたことを特徴とする記号列検索装置
    。 30、第12請求項に記載の半導体集積回路において、 前記並列照合手段に設定された複数の検索記号列の部分
    記号列と被検索記号列との照合の結果、設定された該検
    索記号列のすべてが検索条件を満足しない場合、これを
    検出する手段を同一半導体チップ上に集積したことを特
    徴とする半導体集積回路。 31、第11請求項に記載の記号列検索装置において、 前記並列照合手段に設定された複数の検索記号列の部分
    記号列と被検索記号列との照合の結果、設定された該検
    索記号列の部分記号列の少なくとも一つが検索条件を満
    足する場合、これを検出する手段を設けたことを特徴と
    する記号列検索装置。 32、第12請求項に記載の半導体集積回路において、 前記並列照合手段に設定された複数の検索記号列の部分
    記号列と被検索記号列との照合の結果、設定された該検
    索記号列の部分記号列の少なくとも一つが検索条件を満
    足する場合、これを検出する手段を同一半導体チップ上
    に集積したことを特徴とする半導体集積回路。 33、第11請求項に記載の記号列検索装置において、 (n)前記有限オートマトン実行手段から検索結果が出
    力される際に、その一部として該検索結果に付加する情
    報を格納する付加情報格納手段と、 (o)上記付加情報格納手段の内容を設定する手段と、 を備え、該検索結果を保持する前記出力バッファリング
    手段に出力される該検索結果に、予め任意に設定可能な
    情報を付加することができるように構成したことを特徴
    とする記号列検索装置。 34、第12請求項に記載の半導体集積回路において、 (n)前記有限オートマトン実行手段から検索結果が出
    力される際に、その一部として該検索結果に付加する情
    報を格納する付加情報格納手段と、 (o)前記付加情報格納手段の内容を設定する手段と、 を同一半導体チップ上に集積し、該検索結果を保持する
    前記出力バッファリング手段に出力される該検索結果に
    、予め任意に設定可能な情報を付加することができるよ
    うに構成したことを特徴とする半導体集積回路。 35、第12請求項に記載の半導体集積回路において、 半導体チップ上に集積された前記並列照合手段は、部分
    記号列記憶手段およびハイバリッドフラグレジスタを有
    し、かつ、部分記号列設定のための入力ポート、ハイバ
    リッドフラグレジスタ設定のための入力ポートおよび被
    検索記号列の入力ポートのうちの少なくとも2つの入力
    ポートを共有することを特徴とする半導体集積回路。
JP1150401A 1989-06-15 1989-06-15 記号列検索方法および装置 Expired - Fee Related JP2825009B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP1150401A JP2825009B2 (ja) 1989-06-15 1989-06-15 記号列検索方法および装置
US08/349,124 US5452451A (en) 1989-06-15 1994-12-01 System for plural-string search with a parallel collation of a first partition of each string followed by finite automata matching of second partitions

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1150401A JP2825009B2 (ja) 1989-06-15 1989-06-15 記号列検索方法および装置

Publications (2)

Publication Number Publication Date
JPH0317780A true JPH0317780A (ja) 1991-01-25
JP2825009B2 JP2825009B2 (ja) 1998-11-18

Family

ID=15496168

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1150401A Expired - Fee Related JP2825009B2 (ja) 1989-06-15 1989-06-15 記号列検索方法および装置

Country Status (1)

Country Link
JP (1) JP2825009B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007129577A1 (ja) * 2006-05-08 2007-11-15 The University Of Electro-Communications テキスト処理モジュール
JP2014026312A (ja) * 2012-07-24 2014-02-06 Sumitomo Electric Ind Ltd 情報処理装置および情報処理プログラム
JP2014232523A (ja) * 2013-05-28 2014-12-11 アジレント・テクノロジーズ・インクAgilent Technologies, Inc. サブワード有限状態機械を利用する探索装置
JP2015022495A (ja) * 2013-07-18 2015-02-02 日本電信電話株式会社 ステートマシン回路

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007129577A1 (ja) * 2006-05-08 2007-11-15 The University Of Electro-Communications テキスト処理モジュール
JP2014026312A (ja) * 2012-07-24 2014-02-06 Sumitomo Electric Ind Ltd 情報処理装置および情報処理プログラム
JP2014232523A (ja) * 2013-05-28 2014-12-11 アジレント・テクノロジーズ・インクAgilent Technologies, Inc. サブワード有限状態機械を利用する探索装置
JP2015022495A (ja) * 2013-07-18 2015-02-02 日本電信電話株式会社 ステートマシン回路

Also Published As

Publication number Publication date
JP2825009B2 (ja) 1998-11-18

Similar Documents

Publication Publication Date Title
US5452451A (en) System for plural-string search with a parallel collation of a first partition of each string followed by finite automata matching of second partitions
US10606787B2 (en) Methods and apparatuses for providing data received by a state machine engine
US5051947A (en) High-speed single-pass textual search processor for locating exact and inexact matches of a search pattern in a textual stream
US9886017B2 (en) Counter operation in a state machine lattice
WO2014035699A1 (en) Results generation for state machine engines
JPH03129426A (ja) 分類加速装置のための速度及びメモリー制御
US20170193351A1 (en) Methods and systems for vector length management
US5138669A (en) Range-conditional character string retrieving method and system
JP2986865B2 (ja) データ検索方法および装置
US11580055B2 (en) Devices for time division multiplexing of state machine engine signals
JPH03116323A (ja) リバウンド分類装置を併合装置として使用する分類加速装置
JP3213244B2 (ja) データ圧縮方法およびデータ処理システム
JP2960533B2 (ja) 記号列検索モジュール及びそれを備えたシングルチップマイクロコンピュータ
WO1989012277A1 (en) High speed relational data base processor
JPH0317780A (ja) 記号列検索方法および装置
JP2880199B2 (ja) 記号列検索方法および検索装置
US7474586B1 (en) Random access memory (RAM) method of operation and device for search engine systems
JP3141428B2 (ja) 数値検索装置およびその方法
JPH03129521A (ja) 分類加速装置の安定分類
JPH1027183A (ja) データ登録方法および装置
WO2023210643A1 (ja) 全文検索プロセッサ
JP2880192B2 (ja) 文字列検索方法及び装置
JP7475078B2 (ja) 全文検索プロセッサ
JP2023162093A (ja) 全文検索プロセッサ
JPH04169973A (ja) 記号列検索方法および装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees