JPH04205174A - 記号列検索モジュール及びそれを備えたシングルチップマイクロコンピュータ - Google Patents

記号列検索モジュール及びそれを備えたシングルチップマイクロコンピュータ

Info

Publication number
JPH04205174A
JPH04205174A JP2328893A JP32889390A JPH04205174A JP H04205174 A JPH04205174 A JP H04205174A JP 2328893 A JP2328893 A JP 2328893A JP 32889390 A JP32889390 A JP 32889390A JP H04205174 A JPH04205174 A JP H04205174A
Authority
JP
Japan
Prior art keywords
symbol string
data
search module
search
searched
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
JP2328893A
Other languages
English (en)
Other versions
JP2960533B2 (ja
Inventor
Mitsuru Akisawa
秋沢 充
Yoshiki Noguchi
孝樹 野口
Takehisa Hayashi
剛久 林
Kanji Kato
加藤 寛次
Hitoshi Matsushima
整 松島
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 JP2328893A priority Critical patent/JP2960533B2/ja
Priority to EP91120412A priority patent/EP0488297B1/en
Priority to DE69131954T priority patent/DE69131954T2/de
Publication of JPH04205174A publication Critical patent/JPH04205174A/ja
Priority to US08/402,560 priority patent/US5497488A/en
Application granted granted Critical
Publication of JP2960533B2 publication Critical patent/JP2960533B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/02Comparing digital values
    • 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
    • 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/90339Query processing by using parallel associative memories or content-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/02Indexing scheme relating to groups G06F7/02 - G06F7/026
    • G06F2207/025String search, i.e. pattern matching, e.g. find identical word or best match in a string

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Microcomputers (AREA)
  • Bus Control (AREA)

Abstract

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

Description

【発明の詳細な説明】 【産業上の利用分野] 本発明は論理LSI、マイクロコンピュータ等の半導体集積回路に関わり、特にプロセッサの記号列検索処理を高速化する新機能モジュール、および本モジュールを含むシングルチップマイコン及びそれを用いたシステムに関する。 【従来の技術】
情報処理機器の扱う文書データの増大とともに、高速な
データ検索に対する要求が高まっている。 インデックスを用いず、自由に設定したキーワードを使
ってテキストデータの検索を行う全文検索においては、
テキストデータ中に存在するキーワードを検索する文字
列検索、いわゆるストリングサーチの高速化が重要であ
る。 従来から、複数のキーワードをテキストデータから検索
する高速アルゴリズムが知られており、汎用プロセッサ
上のソフトウェアで実現されている。しかし大規模なデ
ータベースの検索において、実用的な速度を確保するこ
とは困難である。最近では、十分な検索速度を得るため
に専用ハードウェアによる高速化技術が提案されている
。その一例が特開昭64−42784号「文字列照合装
置および同装置での階層的文字列照合方式」である。 上記従来例は、文字列検索専門LSIに関するものであ
り、これはキーワードを登録するメモリ領域と、キーワ
ードとテキストデータを1文字ずつ比較して検索処理を
行なう論理回路領域とを有する。複数のキーワードをメ
モリ領域に登録して、テキストデータからこれらを検索
する。同時に設定できるキーワード数およびキーワード
長は、メモリ領域のサイズにより制限される。上記従来
例ではメモリ領域を節約して多くのキーワードを登  
  ′録再能とする方法および手段を示している。 すなわち、各キーワードを短い文字列に階層的に分割し
て記号化する。複数の類似する複合語がキーワードとし
て設定されるような場合、すなわち同じ文字列パターン
が複数のキーワードに現ねれる場合に、分割した文字列
パターンの共用によリメモリ領域の効率的な活用が可能
である。従って登録キーワード数が増加する。しかし階
層的記号化を行なっているために、本来のキーワードと
の一致を取る手続きが必要となる。このことは、処理時
間の増加の原因となる。また、すべての検索処理を文字
列検索LSIで行なうので、LSI化できる回路規模の
上限が、処理可能な機能およびキーワード数の限界を与
え、この制限範囲内の文字列検索しか扱えないという問
題がある。
【発明が解決しようとする課題】
上記従来例のように、従来の専用ハードウェアを用いた
方法では、検索機能や同時に検索できるキーワード数が
ハードウェア規模によって制限されてしまうという問題
がある。文字列検索においては、キーワードと完全には
一致しないものもテキストデータから検索する機能、い
わゆる曖昧検索機能が要求されることが多く、このため
に回路規模は一層大きくなる傾向にある。しかし、回路
規模が大きくなりすぎて、LSI化した際に複数チップ
で構成することになると、高速性が生かせずにLSI化
のメリットが半減してしまう。また専用ハードウェアは
これを制御するホストCPUがさらに必要であり、この
こともチップ数が増加する要因となる。 そこで本発明の目的は、従来よりも少ないハードウェア
規模で、高速に文字列検索などの記号列検索や他の多機
能演算を行う手段を提供することである。
【課題を解決するための手段】
上記目的を達成するために、文字列検索などの記号列検
索を高速化するモジュール(以下、検索モジュールと記
す)を構成し、CPUと検索モジュールは汎用のアドレ
スバス、データバスを介してバス結合され、両者が記号
列(文字列)検索処理を分担して行うものである。 すなわち、検索モジュールは、アドレスバス及びデータ
バスを介してCPUに接続され、CPUから検索モジュ
ールの機能を定義する機能定義手段と、CPUから被検
索記号列を入力し、検索結果を出力するデータ入出力手
段と、内部に格納された検索対象記号列とデータ入出力
手段から入力された被検索記号列とを用いて、機能定義
手段にて定義された機能により検索処理を実行する検索
処理部と、検索処理結果に対象した内部状態を示すデー
タを保持する状態保持手段とを備えたものである。
【作用】
記号列(文字列)検索などを高速に行うために本発明で
は検索、CPUでのソフトウェア処理を基本としている
。その処理の一部分を検索モジュールで高速に処理する
ことで、記号列(文字列)検索処理全体の高速化を図る
。 一般に記号列(文字列)検索処理は記号列(文字列)の
先頭あるいは最後から、順次テキストデータと照合を行
う。照合途中で不一致が発見されると、テキストデータ
の位置をずらして記号列(文字列)の照合開始位置(記
号列(文字列)の先頭あるいは最後)から照合を再開す
る。このため、記号列(文字列)の照合開始部分での照
合処理頻度が極めて高くなる。この高頻度部分の処理を
検索モジュールで高速に行い、他の頻度の低い部分はC
PUがソフトウェアで処理する。高速に処理すべき高頻
度部分は、記号列(文字列)の照合開始位置付近に限定
されるので、検索モジュールの回路規模は比較的小さな
ものとなる。したがって、CPUと同−LSIチップ上
に集積することも可能となる。これにより従来よりも少
ないハードウェア規模で、高速に記号列(文字列)を検
索する手段を提供することが可能となる。 これは先願である特願平1−150401号「記号列検
索方法および装置」において述べられている高速先頭照
合方式の基礎となっている概念でもある。 本発明においてCPUと検索モジュールは汎用バスで結
合されており、検索モジュールにあらかじめ・設定すべ
きデータはCPUが書き込む。記号列(文字列)検索処
理の実行は、CPUがテキストデータを検索モジュール
へ転送することで開始される。照合結果は検索モジュー
ルのデータ入出力手段における結果格納手段へ出力され
、CPUがこれを読み出し解釈する。 CPUと検索モジュールとは特殊なデータバスではなく
、汎用のバスにより結合されている。 CPUから見ると検索モジュールはアドレスマツプされ
て見えるため、メモリに対するデータ転送と同様の手続
きで、容易に検索処理の実行と結果の取得が可能である
。任意のアドレスにマツプできるのでシングルチップマ
イコンの構成をとる場合にも、他のモジュールとの整合
性が良い。また、CPUと検索モジュールが検索プロセ
ッサとして同一チップ上に集積すれば、CPUと検索モ
ジュール間のデータ転送が高速化される。さらに従来技
術の構成よりも小規模のハードウェアで応用システムを
構築することが可能になる。 [実施例] 第1図に本発明の一実施例の構成図を示す。 CPU100と多機能モジュールである検索モジュール
200は、汎用のアドレスバス、データバスを介して接
続されている。検索モジュール200は、CPU100
とのデータ転送を行なうデータ入出力手段202.モジ
ュールの機能および動作を定義する機能定義手段203
.検索モジュールでの処理結果を反映する状態保持手段
2o42機能定義手段203によって機能定義されデー
タ入出力手段202から必要なデータを取り込み、検索
処理を行なった結果として出力すべきデータをデータ入
出力手段202へ返す検索処理部201.から構成され
る。上記各構成要素はデータバスと接続されており、C
PU100からアドレス指定によってアクセス可能であ
る。各部分の動作を以下に説明する。 検索すべきキーワードから2文字列または部分文字列を
前処理によってあらかじめ用意し、検索モジュール20
0の検索処理部201へ設定する。 検索モジュール200は定義された機能により大別して
2つのモード(データ設定モード、検索モード)をとる
が、この場合はデータ設定モードである。次に検索処理
部の複数の機能から必要なものを選択するために2機能
定義手段203へCPU100からコマンドを書き込む
。文字列検索コマンドを機能定義手段203へ書き込む
と。 これにより検索モジュール200は検索モードとなり、
処理準備が整ったことになる。 検索処理はデータ入出力手段202ヘテキストデータが
1語書き込まれることにより起動される。 すなわち、CPU100は順次テキストデータを検索モ
ジュール200のデータ入出力手段202へ書き込む。 テキストデータはデータ入出力手段202から検索処理
部201へ送られ、あらかじめ設定された文字列すべて
と比較される。これを先頭照合処理とよぶ。一致したも
のがあると、該当文字列に対応するデータをデータ入出
力手段202へ出力する。また、全く一致するものがな
かった場合にも、これを知らせるデータをデータ入出力
手段202へ出力する。CPU100は検索モジュール
200にアクセスして、データ入出力手段202に出力
されたデータを読み込み解釈する。解釈した結果により
CPU100は次の動作を決定する。すなわち、検索モ
ジュール内部に設定された文字列に、入力したテキスト
データと一致するものがあれば、あるキーワードの照合
開始部分と一致したということである。したがって。 それ以降の文字列との照合をCPtJlooが行なう。 これを後方照合処理と呼ぶ。一致するものがなかった場
合には後方照合処理を行なわず、直ちにCPU100は
次のテキストデータを検索モジュール200のデータ入
出力手段202へ書き込む。検索モジュールは検索処理
結果をデータ入出力手段202へ出力するのと同時に、
内部状態や検索結果を状態保持手段204へ反映させる
。状態保持手段204の内容は直接CPU100へ接続
されているので、この情報から次の動作を決定すること
も可能である。 なお、検索処理部201の機能としては、完全一致検索
、誤り文字を含む検索すなわち曖昧検索の指定、アンカ
ーマツチ検索またはノンアンカーマツチ検索の指定、さ
らに文字コード長すなわち1バイトコードまたは2バイ
トコードの指定等がある。 従来の演算モジュールでは、必要なオペランドとコマン
ドを一組にしてCPUから転送していた。 本発明では、まずCPU100が検索モジュール200
の機能定義手段203にコマンドを書き込み、上記検索
機能の組合せの一つを定義する。次にオペランドとして
テキストデータをデータ入出力手段202へ書き込む。 データの書き込みが検索処理を起動するので、以降、検
索モジュール200に設定した文字列とテキストデータ
の比較はCPU100から検索モジュール200へのデ
ータ書き込みと読み出しの繰り返しで行なえる。 これをCPUからメモリへのアクセスと同様の手続きで
行なうことが可能である。 この様に本発明の一実施例によれば、メモリに対するデ
ータ転送と同様の手続きで、容易に検索処理の実行と結
果の取得が可能となる。また、検索モジュールは任意の
アドレスにマツプできるので、シングルチップマイコン
の構成をとる場合にも、他のモジュールとの整合性が良
い。さらに。 検索モジュールは先頭照合処理のみを行なうので。 小規模なハードウェアで実現可能である。このため、C
PtJと検索モジュールを検索プロセッサとして同一チ
ップ上に集積でき、これによりCPUと検索モジュール
間のデータ転送が高速化される。 以上のように、シングルチップマイコンでの文字列検索
処理を、従来よりも飛躍的に高速化するという効果が得
られる。 また、第1図に示す本実施例の構成は、検索モジュール
以外の多機能演算モジュールを用いる場合においても有
効である。その−例を第2図に示す。第2図は本実施例
の構成を浮動小数点演算モジュール210に適用した例
であり、浮動小数点演算部211.データ入出力手段2
029機能定義手段203.状態保持手段204より構
成される。 まず浮動小数点演算部211の機能を定義するために2
機能定義手段203へCPU100からコマンドを書き
込む。これで浮動小数点演算モジュール210の機能が
2例えば乗算、除算、積和演算等に定義される。次に必
要なオペランドをCPUがデータ入出力手段202へ書
き込む。定義した演算に必要な数のオペランドが揃うと
、演算処理ルーチンが起動される。演算後、演算結果は
データ入出力手段202へ、モジュールの内部状態やコ
ンデイションコードは状態保持手段204へ、それぞれ
書き込まれる。CPU100はこれらを読み込み、演算
結果を知ることができる。同一機能で連続して演算する
場合には、データ入出力手段202ヘオペランドを書き
込み、結果を読み出すことで、処理を連続実行すること
ができる。すなわち、従来は演算実行のたびにコマンド
を転送していたが2本発明においては連続実行に先立っ
て機能定義手段203に一度コマントを書き込むだけで
良い。このため、演算処理速度が向上する。 上記実施例のように、第1図に示した本発明の構成を多
機能演算処理モジュールに適用することで、これを含む
シングルチップマイコンの処理速度向上の効果が得られ
る。 第3図に本発明の検索モジュール200のより詳細な実
施例を示す。モジュールは、データ入出力部300.検
索処理部400.制御部800゜から構成される。第1
図に示した構成と厳密には対応していないが、データ入
出力部300はデータ入出力手段202、検索処理部4
00は検索処理部200.制御部800は機能定義手段
203と状態保持手段204、に夫々対応する。各部は
モジュールの内部バス220を介して、データバスと接
続される。図中のデータ線のビット幅は。 特に指定のない限り16ビツトである。勿論9本実施例
は他の異なるビット幅のデータ線を用いても、同様に実
現可能である。 データ入出力部300は、3個の入力レジスタ(DIR
O)310.(DIRI)320゜(DIR2)330
と1個の出力レジスタ(DOR)340から構成される
。入力レジスタはデータのシフト機能をもち、入力レジ
スタ(DIR2)330に書き込んだデータを入力レジ
スタ(DIRI)320.(DIRO)310と順にシ
フトする。したがってCPUから入力レジスタ(DIR
2)330に次々とデータを書き込むだけで、入力レジ
スタ間をデータが流れて行く。入力レジスタ(DIRO
)310゜(DIRI)320の内容は、連接された3
2ビツトのデータとして、検索処理部400へ渡される
。また、出力レジスタ(DOR)340は検索処理部4
00から検索結果を受は取り格納する。 なお、上記の入出力レジスタ310〜340は内部バス
220に接続されており、CPUから直接アクセスする
ことも可能である。 検索処理部400は、データ入出力部300から送られ
てくるデータに1ビツトごとにマスク指定をするマスク
レジスタ(MSKO,MSKI)410、データの位置
をバイト単位で入替えるバスセレクタ(PATH5EL
)420.検索する文字列または部分文字列を格納する
連想メモリ500 (CAM)÷傘噂、連想メモ全でb
照合条件を格納する照合制御メモリ(CCM)600゜
連想メモリでの照合結果から一致したワード数を解析す
る照合結果解析回路700.一致したワードの一致信号
をひとつずつ出力するプライオリティ−エンコーダ(P
E)430.出力データを格納するRAM440.−M
するものがなかったときの出力データを格納するノンヒ
ツトレジスタ(NHR)450.から構成される。 マスクレジスタ410.バスセレクタ420を経由した
データ入出力部300からのデータと。 照合制御メモリ600の内容を、連想メモリ500は入
力とする(第9図を用いて後述する。)。照合結果は、
照合結果解析回路700へ転送し。 更にプライオリティ−エンコーダ430へ転送する。プ
ライオリティ−エンコーダの出力が直接RAM440の
アドレスとなり、RAMの内容を読み出す。読み出した
結果はデータ入出力部300へ転送され、出力レジスタ
(DOR)340が保持する。一方、照合結果解析回路
7、OOの解析結果は制御部800へ転送される。 これによって、DOR340に設定するデータとして、
ノンヒツトレジスタ450のデータかRAM440の内
容かの選択を行なう。 制御部800は、状態保持手段であるコンデイションコ
ードレジスタ(CCR)810.機能定義手段である機
能定義レジスタ(FDR)820゜および制御回路83
0から構成される。機能定義レジスタ820.コンデイ
ションコードレジスタ810は、検索モジュール200
の内部バスに接続される。機能定義レジスタ820は制
御回路830へ内容を転送し、処理シーケンスの制御を
行なう。一方コンディションコードレジスタ810は、
処理中あるいは処理後の検索モジュールの状態を示すデ
ータを制御回路830から受は取る。また、これはCP
Uへもコンデイションニード信号1!230により直接
波される。制御回路830はデータ入出力部300.検
索処理部の各部のデータ転送、処理の実行制御を行なう
。なお。 図中ではこれらの制御線は省略している。 検索モジュール200に内蔵される上記のメモリや各種
制御レジスタはアドレスマツプされており、アドレスを
指定してCPUからアクセスすることができる。なお2
図中ではアドレスバスは省略しでいる。 アドレスマツプを第4図に示す。本実施例では連想メモ
リ(CAM) 32ビツト×32ワード。 RAM16ビツト×32ワード、照合制御メモリ(CC
M) 11ビツト×32ワード、制御レジスタ各16ビ
ツトの構成である。検索モジュール内部では、メモリと
制御レジスタは別領域にO番地から順にアドレス付けさ
れている。メモリ領域と制御レジスタ領域の切り替えは
、それぞれの領域の選択信号により行なう。アクセスの
際は、アドレス信号と領域選択信号とを組み合わせる。 また、照合制御メモリ600は連想メモリ500と同一
領域の同一アドレスに割り当てられているが、後に説明
する検索モジュール200の機能定義によりアクセスの
切り替えを行なう。すなわち、照合制御メモリ領域への
アクセスを機能定義レジスタ820に定義した場合のみ
、照合制御メモリ領域へのアクセスが可能となる。通常
はメモリ領域を選択すると、連想メモリ領域アクセスと
なる。これにより検索モジュール200のメモリ領域は
通常のメモリと同様の構成となり、システムレベルでは
メモリマツプのどのアドレスにもマツピングできるとい
う効果が得られる。なお。 本実施例は他のビット、ワード構成を用いても実現可能
である。 次に本実施例の動作について説明する。 文字列検索は、被検索文字列であるテキストから探し出
したい検索文字列であるキーワードを検索する処理であ
る。検索モジュールの連想メモリ領域に設定すべき文字
と、それに対応するRAM領域に設定すべきデータは与
えられたキーワードから、あらかじめ求めであるものと
する。 まず検索処理の準備として検索モジュール200の連想
メモリ領域、RAM領域へデータを設定する。また2機
能定義レジスタ820に照合制御メモリ領域アクセスを
定義するコマンドを設定し、照合制御メモリ領域へもデ
ータを設定する。 この後1機能定義レジスタ820に文字列検索を定義す
るコマンドを設定する。検索モジュール200は検索モ
ードとなり、これで検索の準備が整ったことになる。入
力レジスタ(D I RO〜2)310〜330にCP
Uからテキストデータを書き込み検索処理を行なう。 第3図のデータ入出力部300では、入力レジスタ (
DIRO)310.  (DIRI)320の内容を連
続した32ビツトのデータとして、検索処理部400へ
転送する。この際入力レジスタ(DIRO)310.(
DIRI)320へ直接帯いたデータをそのまま検索処
理部400へ転送する方法と、入力レジスタ(DIRO
)310゜(DIRI)320にデータが存在する状態
で。 入力レジスタ(DIR2)330へ書いたデータをDI
R2→DIRI→DIROと順にシフトしながら入力レ
ジスタ(DIRO)310゜(DIRI)320にある
データを検索処理部400へ転送する方法がある。これ
は機能定義レジスタ820へ設定する文字列検索コマン
ドの特定フィールドで、いずれかの方法を指定すること
ができる。 検索処理部400へ転送された32ビツトのデータは、
マスクレジスタ410によりマスクされてバスセレクタ
420へ渡される。もちろん全くマスクしなくても構わ
ない。バスセレクタ420では32ビツトデータのビッ
ト位置、バイト位置を入れ替える。これにより曖昧検索
が実現できる。 ここでももちろん、ビット位M2バイト位置はそのまま
でも構わない。バスセレクタ420を経由して、入力デ
ータは連想メモリ500へ転送される。予め連想メモリ
500に設定した全ての文字またはデータと、入力デー
タとの比較を同時に実行する。この際、照合制御メモリ
600の内容を参照して、そこに示された条件にしたが
って一致。 不一致の判定を行なう。照合制御メモリ600の一語は
連想メモリの一語に1対1に対応し、連想メモリ500
のデータとの照合条件を1バイト単位で指定する。照合
条件としては、設定データと入力データが同じである場
合に一致とする正論理。 異なる場合に一致とする負論理、常に一致とするドント
ケア、常に不一致とするインバリッドがある。その他9
機能定義レジスタ820で指定した検索条件の採用、不
採用を個々に指定することもできる。入力データとの照
合結果の一致、不一致は、各バイトの照合結果の論理積
である。一致したものについては、それに対応するRA
、M440の内容をブライオリティーエンコーダ(PE
)430により1@次読みだし、出力レジスタDORへ
設定する。照合結果解析回路700では、連想メモリ5
00での照合結果がら、一致するものの有無や一致個数
が1個なのが複数個なのかを判定する。一致するものが
無かった場合は、ノンヒツトレジスタNHR450(1
)内容がDOR34oへ設定される。上記照合結果解析
回路700で得られた情報は、制御部800へ送られ検
索モジュール200のシーケンス制御に用いられる。ま
た。 検索処理中の内部状態はコンデイションコードレジスタ
CCR810に設定される。これは、専用バスでCPU
に直接接続され、適宜cpuが参照することが可能であ
る。もちろん、汎用データバスを介してアクセスするこ
とも可能である。 出力レジスタ(DOR)340の内容を読んだCPUは
、それを解釈して次の行動を起こす。すなわち、検索モ
ジュール200でテキストデータと設定文字列との一致
が起きれば、キーワードの照合開始位置での一致が起き
たことであるから後方照合処理を開始する。また、後方
照合処理の実行にかかわらず、CPUはテキストデータ
を順次検索モジュール200へ書き込み、先頭照合処理
も常に実行する。 第5図に本実施例の機能定義レジスタ820に設定スる
コマンドの二一モニツクおよびフォーマットを示す。検
索モジュール200はこれらのコマンドにより機能定義
される。第5図のコマンドは1ワード16ビツトを基本
構成としているが。 もちろん他の構成も可能である。各コマンドは次のとお
りである。 1、NOP:ノンオペレーション 検索モジュール200は何も行なわず、連想メモリ領域
、RAM領域を通常のメモリ領域として使用可能とする
。 2、CR5T:連想メモリ(CAM)リセット照合制御
メモリ600の照合条件設定をインバリッドとして、連
想メモリ領域を実質的に初期化する。 3、CAC3:照合制御メモ1,1 (CCM) 7ク
セス通常はアクセスが可能である連想メモリ領域に換わ
って、照合制御メモリ領域へのアクセスを可能とする。 4、COMPFO:ビットパターン検索ビットパターン
の検索を行なう。入力レジスタ(DIRO〜2)310
〜330でのデータシフトは1ビット単位。マスク動作
はマスクレジスタのみ参照可能。以下のオプションフィ
ールドを持つ。 SH:入力データのシフト(オン/オフ)指定。 ○UTOニーM検呂時の割込み要求信号の出力(割込み
要求出力オン/オフ)指定。 ○UT1 : RAMからDORへ出力するデータの一
部を内部状態コードと入れ替える(コードミックス)、
入れ替えない(RAMアウト)を指定。 MR:マスクレジスタの参照(オン/オフ)指定。 ME:多重一致が起きた場合、一致した結果すべてを出
力レジスタ(DOR)340がら読み出して次ステツプ
へ進むか(オン)最初の一致結果のみを出力レジスタ(
DOR)340から読み出して次ステツプへ進むか(オ
フ)を選択。 5、COMPFI : 1バイトコ一ド文字列検索1バ
イトコート文字列の検索を行なう。入力レジx9 (D
IRO−2)310〜330で(7)データシフトは1
バイト単位。マスク動作はオプションフィールドで指定
。以下のオプションフィールドを持つ。ただし、SH,
OUT、MEフィールドはCOMPFOと同様である。 八に:アンカー検索(オン)、ノンアンカー検索(オフ
)の選択。 APXM3〜o:4種類の曖昧検索シーケンスの実行を
それぞれ独立に指定(オン/オフ)。 BMSK3〜0:各バイトの同一ビット位置への1ビツ
トマスクの設定(オン/オフ)と位置を指定。 6、C0MPF2 : 2バイトコ一ド文字列検索2バ
イトコード文字列の検索を行なう。入力レジスタ(DI
RO〜2)310〜330でのデータシフトは2バイト
単位。マスク動作はオプションフィールドで指定する。 以下のオプションフィールドを持つが、BMSK以外は
COMPFIと全く同様である。 BMSK3〜0:バイトO,バイト2の同一ビット位置
への1ビツトマスクの設定(オン/オフ)と位置を指定
。 7、C0MPF3 : 2バイトコ一ド文字列検索2バ
イトコード文字列の検索を行なう。入力レジスタ(DI
RO〜2)310〜330でのデータシフトは2バイト
単位。マスク動作はオプションフィールドで指定する。 以下のオプションフィールドを持つが、BMSK以外は
COMPFIと全く同様である。 BMSK3〜0:バイト1.バイト3の同一ビット位置
への1ビツトマスクの設定(オン/オフ)と位置を指定
。 次に第3図の実施例の各部の構成を、より詳細な実施例
とともに説明する。 第6図はデータ入出力部300のより詳細な一実施例で
ある。入力レジスタ(D I R○)310゜(DIR
I)320.(DIR2)330.出力レジスタ(DO
R)340は検索モジュールの内部バス220に接続さ
れており、すべてCPUからアクセス可能である。入力
レジスタ(DIRO〜2)310〜330でのデータシ
フトのために。 内部にシフト用のバッファレジスタ(SHRO)312
、(SHRI)322とセレクタ(SELO)311.
(SELL)321゜(SEL2)331を持つ。 1バイトシフトの場合、バッファレジスタ(SHRO)
312は入力レジスタ(DIRO)310の下位バイト
と入力レジスタ(DIRI)(SHRI)322は入力
レジスタ(DIRI)320の下位バイトと入力レジス
タ(DIR2)330の上位バイトから1バイトシフト
後の入力レジスタ(DIRI)320を構成する。また
。 2バイトシフトの場合は、入力レジスタ(DIRI)3
20から2バイトシフト後の入力レジスタ(DIRO)
310を、入力レジスタ(DIR2)330から2バイ
トシフト後の入力レジスタ(DIRI)320を構成す
る。1ビツトシフトの場合は、入力レジスタ(DIRI
)320の最上位ビットと入力レジスタ(DIRO)3
10とから1ビツトシフト後の入力レジスタ(DIRO
)310を、入力レジスタ(DIR2)330の最上位
ビットと入力レジスタ(DIRI)320とから1ビツ
トシフト後の入力レジスタ(DIRI)320をそれぞ
れ構成する。 第7図はバスセレクタ420の詳細な一実施例である。 連想メモリ領域に設定された文字列とテキストデータと
の曖昧検索を行なうために、バスセレクタはDIRO,
DIRIの内容である4バイトのデータのバイト位置を
セレクタ(SEL3〜6)421〜424にて変更する
ものである。 例えば隣接1文字交換のパターンの検索の場合は。 BO,Bl、B2.B3の隣りあったいずれか2バイト
の位置を交換して連想メモリ領域に転送する。 第7図では1バイトデータ、2バイトデータの両者に対
する。バイト位置変更の機能を合わせ持つ構成を示す。 1バイトデータ用の機能、2バイトデータ用の機能の選
択は2機能定義レジスタ820に設定するコマンドで行
なう。 第8図に照合制御メモリ600のフォーマットの一実施
例を示す。照合制御メモリ600の各ワードは連想メモ
リ500の各ワードと1対1に対応し、連想メモリ50
0に格納された文字またはデータとテキストデータとの
照合の際に、対応する連想メモリ500のワードに対す
る照合条件として参照される。1ワードは以下のサブフ
ィールドから構成される。それぞれのフィールドの意味
は2次のとおりである。 DOC:連想メモリ領域の対応するワードの内容が、デ
リミタであるのか文字であるのかを示す。 AS二機能定義レジスタ820に文字列検索コマンドが
設定された場合、そこに指定された曖昧検索シーケンス
の実行を行なうか否かを示す。 BM:機能定義レジスタ820に文字列検索コマンドが
設定された場合、そこに指定されたビットマスク指定を
参照するか否かを示す。 BO〜3:連想メモリ500に格納された文字またはデ
ータとテキストデータとの照合条件をバイト単位で指定
。各2ビツトを用いて以下の4つの照合条件のいずれか
を指定する。 pstv(正論理):両者が等しい場合に一致とする。 ngtv (負論理)二面者が異なる場合に一致とする
。 dntc (ドントケア):常に一致とする。 1nvd (インバリッド):常に不一致とする。 第9図に連想メモリ領域500の一実施例を示す、。連
想メモリ500は、格納された文字またはデータとテキ
ストデータとの照合を、照合制御メモリ600を参照し
ながら行なう。 第9図に示した連想メモリ500および照合制御メモリ
600それぞれ1ワードの構成であり。 データ線、メモリセル、比較器は8ビット単位で示しで
ある。連想メモリおよび照合制御メモリ全体は、これら
の構成の繰り返し構造である。ここでは2図示する1ワ
ードの構成と動作について説明する。 データ設定モードにおいては、連想メモリのメモリセル
(memo〜3)510,520゜530.540と照
合制御メモリのメモリセル(BO−B3)610,62
0,630,640へのデータの書き込みが可能である
。データ線と各メモリセルとのデータバスの接続は9機
能定義レジスタ(FDR)820の内容にしたがって制
御部800が設定する。連想メモリ500へは文字列ま
たは部分文字列を設定し、照合制御メモリ600へは照
合条件を設定する。検索モードにおいては、データ線と
比較器(compo〜3)511.521,531,5
41とのデータバスが接続される。データ、線のテキス
トデータと、連想メモリ500のメモリセル(m e 
m O〜3)510〜540に格納されている文字列ま
たは部分文字列とを比較器(compo〜3)511〜
541に入力して、ビットごとに比較を行なう。 ビットごとに行なった比較結果を、バイトごとに論理ゲ
ート512,522,532,542で論理積をとり、
これを1バイト単位の比較結果515.525,535
,545とする。この比較結果に対して、照合制御メモ
リのメモリセル(BO〜B3)610〜640に格納さ
れた照合条件を作用させるのが照合論理513,523
゜533.543である。照合論理の詳細な一実施例を
第10図に示す。照合論理の入力は1バイト単位の比較
結果、2ビツト(図中でMビット、Lビットで示す。)
で表現される照合条件である。 これらから、第10図の真理値表に従って、照合条件を
加味した1バイト単位の比較結果516゜526.53
6,546を出力する。最後に4バイトの各比較結果の
論理積をゲート550によりとる。これにより、連想メ
モリに設定された文字列または部分文字列が検索された
ことが一致信号560として出力される。なお、最後に
論理積を取るANDゲートは、無条件に一致信号を無効
とする制御信号650の入力を有する。 第11図に照合結果解析回路700の一実施例を示す。 連想メモリ500から一致信号を入力し。 一致信号中のヒツトの有無およびヒツトの場合に複数ヒ
ツトかどうかを調べるための信号XX。 YY、ZZを出力とする。なお、連想メモリ500から
の一致信号はプライオリティ−エンコーダ(PE)43
0ヘスルーさせる。本実施例の構成は、8ビツトの一致
信号701,702゜703.704の複数ヒツトの解
析を行なうプロy’)(MHDO−3)710,720
,730゜740を基本構成単位とする。照合結果解析
回路700は、MHD0〜3および各MHDブロックの
出力XO〜3.YO〜3.zO〜3から出力XX、YY
、ZZを構成するための論理回路から構成される。 MHDの詳細な構成を第12図に示す。 MHDn(n=o〜3)は8ワード分の一致信号701
.702,703,704を入力し、8ビツト中のヒツ
トの有無を示すXn、複数ヒツトであるかどうかを示す
Yn、単一ヒツトであるかどうかを示すZnを出力する
。これら、XO〜3からxXを生成し、YO〜3からY
Yを生成し。 YO〜3. ZO〜3から22を生成する。XXはすべ
ての一致信号に渡ってのヒントの有無を示し。 YYは複数ヒツトしたMHDブロックの有無を示し、Z
Zは単一ヒツトしたMHDブロックが複数個存在するか
否かを示す。以上より、複数ヒツトの存在を示す論理y
y+zz、ヒツトがただひとつ存在する単一ヒツトであ
ることを示す論理XX・(、YY)・(,22)を得る
ことが可能となる。これらのシーケンス制御に必要な情
報は、制御部800へ送られる。 なお2本実施例は他のMHDブロック数、および他のM
HDブロックの入力信号数でも実現可能である。 第13図に出力レジスタ(DOR)340のフォーマッ
トの一実施例を示す。フォーマットは機能定義レジスタ
820に設定する文字列検索コマンドの0UTOビツト
の値により、RAM440の内容をそのまま出力するR
AMアウト、RAMの下位バイトの内容と内部の情報と
を合わせて出力するコードミックスに分類される。 RAMアウトの場合は、ヒツトがなければノンヒツトレ
ジスタの内容、ヒツトがあればRA、 Mの内容が出力
レジスタに保持される。したがって。 特殊なフォーマットは存在しない。 コードミックスの場合は、ヒツトがなければノンヒツト
レジスタの内容が出力レジスタに保持される。ヒツトが
ある場合は、出力レジスタの上位バイトは、内部コード
に置き換えられる。上位バイトは次のサブフィールドか
ら構成される。ただし、ビットパターン検索が指定され
ているときには、AH,NOAサブフィールドは存在し
ない。 MH:複数ヒツトであるか単一ヒツトであるかを示す。 SW:検索処理に使われないデータの書き込みがあった
ことを示す。 1F二割込み要求信号のセット、リセット状態をモニタ
する。 AH:曖昧文字列検索シーケンスでのヒツトであること
を示す。 NOA:曖昧文字列検索シーケンスのid番号を示す。 R8:入力レジスタにおけるデータシフトの残り回数を
示す。 本実施例によれば、テキストデータと内容の一致した連
想メモリのアドレスによって、RAMの内容を読み出す
ことのみならず、検索処理の制御にCPUが必要とする
検索モジュールの内部情報も読み出すことが可能となる
。 第14図に状態保持手段であるコンデイションコードレ
ジスタ(CCR)810の一実施例を示す。コンデイシ
ョンコードレジスタ810は4ビツト構成であり、hl
ビット、hOビット、Sピント、pビットからなる。h
l、hoビットは照合結果を示し、Sビットは入力レジ
スタ内のテキストデータのシフト残りの有無を示しtp
ビットは直前に検索モジュール200に書き込まれたデ
ータが、検索処理に使われるのか使われないのかを示す
。詳細は機能定義レジスタ820の内容により以下のよ
うになる。 NOP:ノンオペレーションの場合 (hl、ho)=O○(固定)、sおよびpは不定CR
ST:連想メモリリセットの場合 (hl、ho)=11(固定)、sおよびpは不定CA
C3:照合制御メモリアクセスの場合(hl、ho)=
01(固定L sおよびpは不定COMPFn  (n
=O−3):ビットパターン。 文字列検索の場合 (hl、ho)=OO単一ヒツトあり。 01 ヒツトなし。 1o 複数ヒツトあり。 11 検索シーケンス実行中。 S=Oシフトの残りなし。 1  シフトの残りあり。 p=Q   直前に書き込まれたテキ ストデータは検索に使用 する。 1  直前に書き込まれたテキ ストデータは検索に使用 しない。 本実施例によれば、コンデイションコードレジスタの内
容から、検索処理の制御にCPUが必要とする検索モジ
ュールの内部情報を読み出すことが可能となる。この内
部情報は出力レジスタの内容からも知ることができるが
、コンデイションコードレジスタとCPUとの直接接続
の制御線バスにより、レジスタアクセスを省略すること
が可能となる。したがって、より高速な検索処理が行な
えるという効果が得られる。 第15図に検索モジュール200の入出力信号の一実施
例を示す。各入出力信号の正負の極性は。 どちらを用いる構成も可能である。クロック信号。 電源、グランドは複数の場合もある。また、アドレスバ
ス、データバスは他のビット数でも実現可能である。 第16図は2本発明の検索モジュールを内蔵して1チツ
プ上に集積した。検索プロセッサ(シングルチップマイ
クロコンピュータ)の構成図である。 検索プロセッサ10は、CPU100゜RAMI 10
.ROM120.本発明の検索モジュール200を含ん
で構成され、これらはアドレスバス13o、データバス
14−0を介して接続されている。また、検索モジュー
ル200とCPU100とはコンデイションコード、ウ
ェイト信号9割込み要求信号からなる制御バス150を
介して接続されている。外部との通信はアドレスバッフ
ァ16o、データバッファ170を介して行なう。本発
明の検索モジュールを用いることで、従来ソフトウェア
で行なっていた文字列検索処理が高速化されるという効
果が得られる。なお。 本実施例の構成はCPU、検索モジュールを含む限りに
おいては、他の構成でも検索プロセッサとして実現可能
である。 第17図は2本発明の検索プロセッサ10をコントロー
ラとして内蔵する。磁気ディスク装置30の一実施例で
ある。本実施例は、ディスクユニット16とディスク制
御部20とから構成される。ディスク制御部20は、ホ
ストCPUとデータおよびコマンドのやり取りを行なう
SC8Iインタフェイス13.データを一時格納するバ
ッファ14.コントローラとして用いる検索プロセッサ
10.ワークエリアとして用いるRAMII。 検索プロセッサ1oのプログラムやデータを格納するR
OM12から構成される。なお、ホストCPUとのイン
タフェイスは、5C3I以外のものでも実現可能である
。 本実施例は、従来のコントローラ内蔵磁気ディスク装置
として機能する以外に、検索プロセッサ10の利用によ
り、ディスクに格納されたデータの検索機能をもつ。す
なわち、従来どおりのSCS Iインタフェイスにより
通常の磁気ディスク装置として用いるノーマルモードと
、ストリングサーチによる検索機能を実行するサーチモ
ードとを持つ。SC8Iコマンドの割り当てられていな
いビットパターンを、モード切り替えコマンドとして用
いてモード切り替えを行う。検索機能の指示は、モード
切り替えコマンドによりサーチモードとした後に行なう
。サーチモードにおいて検索処理が指示されると、検索
プロセッサー0はディスクから読み出したバッファ内の
データを検索文字列と比較する。検索処理終了後、一致
するものかあったかどうかをホストCPUへ伝える。こ
れは例えば、磁気ディスク装置からホストCPUへの割
り込み、あるいは磁気ディスク装置30が保持する検索
結果をホストCPUが読み出すことにより実現できる。 ホストCPUは磁気ディスク装置30をノーマルモード
とした後、検索結果に従って必要なデータのみを読み込
む。 なお、磁気ディスク装置30とホストCPUとのインタ
フェイスは、5C5Iインタフエイスに拡張インタフェ
イスを付加した構成をとることも可能である。拡張イン
タフェイス部分により、ノーマルモードとサーチモード
との区別を行えば。 モード切り替えのためのコマンド転送が不要となり、−
層の高速化が図れる。 第18図にディスク内データからの文字列検索の 手順の、従来例および本発明俺比較を示す。(1)は従
来例、(2)は本発明の手順である。従来技術では、ホ
ストCPUのデータ転送要求によりディスクが転送した
データから、ホストCPUが検索処理を行ない必要なも
のを選択する。この場合。 検索の対象データが大きいとデータ転送を複数回行なう
ことになり、不要なデータの転送量が非常に多くなると
いう問題がある。ところが本発明では、検索処理は磁気
ディスク装置内で行なわれるので、従来行なわれていた
ディスクとホストCPUとの不要なデータ転送を行なわ
ずにすむ。 したがって、従来よりも高速なデータ転送が可能となる
。これは5C3Iバスの利用効率を高める効果ももたら
す。また本実施例は、従来の磁気ディスク装置にはなか
った。内容検索という新しい機能、を提供することを可
能にする。 なお、検索プロセッサをコントローラとして用いる本実
施例の構成は、RAMディスク装置等の半導体ディスク
装置、CD−ROM等を用いた光デイスク装置へも適用
することが可能である。 第19図は、第17図に示した磁気ディスク族w30と
のインタフェイスを有するホストCPU装置40を備え
た検索システムの一実施例である。 内部バスにCPU41.RAM42.ROM43゜ネッ
トワークとのインタフェイス手段44.磁気ディスク装
置等の2次記憶装置とのインタフェイス手段45が接続
されている。2次記憶装置とのインタフェイス手段は、
5C5Iバス46の他に拡張バス47にも接続され、そ
れぞれSC8Iインタフェイスポート48.拡張インタ
フェイスポート49を介して2次記憶装置と接続されて
いる。 この拡張バスは、第17図の検索機能を持つ磁気ディス
ク装置30へのコマンド転送の際に、拡張コマンドであ
ることを知らせるために用いる。したがって、a気ディ
スク装置30とホストCPU装置40は、5C5Iバス
と拡張バスとにより文字列検索の指示と結果ファイルの
転送制御行なう。 上記のように5C5Iバスと拡張バスとを用いることに
より、ホストCPU装置40は従来の汎用インタフェイ
スを維持しつつ2文字列検索機能を有する拡張インタフ
ェイス付き磁気ディスク装置とのインタフェイスをも有
することが可能となる。しかも汎用インタフェイス部分
のみを用いれば、従来のSC5Iインタフェイスの磁気
ディスクとの接続も容易に行なうことができる。 なお、モード切り替えコマンドによりノーマルモードと
サーチモードとを切り替えて検索処理を行う磁気ディス
ク装置を用いても、同様の構成が可能である。さらに、
拡張インタフェイスを持つ磁気ディスク装置が存在しな
ければ、ホストCPU装置40は拡張バス47.拡張イ
ンタフェイス49を省くことができ、ハードウェア規模
削減が可能となる。
【発明の効果】
本発明によれば、以下のような効果が得られる。 CPUと検索モジュールとは特殊なデータバスではなく
、汎用のバスにより結合されているので。 CPUから見ると検索モジュールはアドレスマツプされ
て見える。このため、メモリに対するデータ転送と同様
の手続きで、容易に検索処理の実行と結果の取得が可能
となる。また、検索モジュールは任意のアドレスにマツ
プできるので、シングルチップマイコンの構成をとる場
合にも、他のモジュールとの整合性が良い。さらに、検
索モジュールは先頭照合処理のみを行なうので、小規模
なハードウェアで実現可能である。このため。 CPUと検索モジュールを検索プロセッサとして同一チ
ップ上に集積でき、CPUと検索モジュール間のデータ
転送が高速化される。以上のように。 シングルチップマイコンでの文字列検索処理を。 従来よりも飛躍的に高速化するという効果が得られる。 さらに、従来技術の構成よりも小規模のハードウェアで
、応用システムを構築することが可能になる。したがっ
て、2次記憶装置に検索プロセッサを適用して、従来に
ない内容検索機能を実現できるという効果も得られる。
【図面の簡単な説明】
第1図は本発明の第1の実施例の構成を説明するブロッ
ク図、第2図は本発明の第1の実施例の構成を他の目的
に適用した場合を説明するブロック図、第3図は第1図
の検索モジュールのより詳細な実施例を説明するブロッ
ク図、第4図は検索モジュール内のメモリおよび制御レ
ジスタのアドレスマツピングの説明図、第5図は検索モ
ジュールの機能を定義するコマンドのフォーマットの説
明図、第6図は第3図に示した検索モジュールのデータ
入出力部のより詳細な実施例を説明するブロック図、第
7図は第3図に示した検索モジュールのバスセレクタの
より詳細な実施例を説明するブロック図、第8図は第3
図に示した検索モジュールの照合制御メモリのフォーマ
ット説明図、第9図は第3図に示した検索モジュールの
連想メモリの実施例を説明するためのブロック図、第1
0図は照合条件を考慮して一致結果を生成する照合論理
の機能を説明するための真理値表を示す図、第11図は
第3図に示した検索モジュールの照合結果解析回路の実
施例を説明するためのブロック図。 第12図は第11図に示した照合結果解析回路内の複数
ヒツト解析ブロックの実施例を説明するためのブロック
図、第13図は第3図に示した検索モジュールのデータ
入出力部の出力レジスタに出力されるデータのフォーマ
ットの説明図、第14図は第3図に示した検索モジュー
ルの制御部のコンデイションコードレジスタのフォーマ
ットの説明図、第15図は検索モジュールの入出力信号
の一実施例の説明図、第16図は本発明の第1の実施例
の構成を1チツプ上に集積した検索プロセッサの一実施
例を説明するためのブロック図、第17図は第16図に
示した検索プロセッサを内蔵して文字列検索機能を有す
る磁気ディスク装置の一実施例を説明するためのブロッ
ク図、第18図は第17図の文字列検索機能を有する磁
気ディスク装置の動作と従来装置の動作とを比較する説
明図、第19図は第17図の文字列検索機能を有する磁
気ディスク装置とのインタフェイスを有するホストCP
U装置を説明するためのブロック図である。 符号の説明 10・・・検索プロセッサ、11.42・・・RAM。 12.43・・・ROM、13・・・SC8Iインタフ
ェイス、14・・・バッファ、15・・・内部バス、1
6゜17・・・ディスク装置、20・・・ディスク制御
部。 30・・・文字列検索機能を有する磁気ディスク装置。 40・・・ホストCPU装置、100・・・CPUモジ
ュール、110・・・RAMモジュール、120・・・
ROMモジュール、130・・・アドレスバス。 140・・・データバス、150・・・制御バス、16
0・・・アドレスバッファ、170・・・データバッフ
ァ。 200・・・検索モジュール、201・・・検索処理部
。 202・・・データ入出力手段、203・・・機能定義
手段、204・・・状態保持手段、220・・・検索モ
ジュール内部データバス、230・・・コンデイション
コード信号線、300・・・データ入出力部、310゜
320.330・・・入力レジスタ、340・・・出力
レジスタ、400・・・検索処理部、410・・・マス
クレジスタ、420・・・バスセレクタ、430・・プ
ライオリティエンコーダ、440・・・RAM、450
・・・ノンヒツトレジスタ、500・・・連想メモリ。 600・・・照合制御メモリ、80o・・・制御部。 810・・・コンデイションコードレジスタ、820・
・・機能定義レジスタ、830・・・制御回路。 72区 第3 図 テークバ又 駕什喝 笛 5[21 コ7ント“ニー℃ニーツク             
                、iiθ(F@第 
6図 第10 りユに〆の   リ1g〆つ    E)1尺1の  
  リ11?’lの上イ立バイト        丁t
た府ト        上イ立ノぐイト       
 下イUバイトE3〆            Bl 
             B2          
    日(う惺8図 沫・よイトp1 寡O1図 (入−h)   6社27) 本はドントケ下入21を六す。 第11霞 第1z図 笛1313i1 2、0J19f’r:’qトb’w−1’ hノ’)l
t:’Ltl1合第11.+図 互15圓

Claims (1)

  1. 【特許請求の範囲】 1、コード表現された記号で構成される被検索記号列中
    に検索対象記号列が存在するか否かを判定する記号列検
    索モジュールにおいて、アドレスバス及びデータバスを
    介してプロセッサに接続され、 上記プロセッサから上記記号列検索モジュールの機能を
    定義する機能定義手段と、上記プロセッサから被検索記
    号列を入力し、検索結果を出力するデータ入出力手段と
    、内部に格納された検索対象記号列と上記データ入出力
    手段から入力された被検索記号列とを用いて、上記機能
    定義手段にて定義された機能により検索処理を実行する
    検索処理部と、検索処理結果に対応した内部状態を示す
    データを保持する状態保持手段と、 を有することを特徴とする記号列検索モジュール。 2、アドレスバス、データバスを介してプロセッサに接
    続された演算モジュールにおいて、 上記プロセッサから上記モジュールの機能を定義する機
    能定義手段と、上記プロセッサからデータを入力し、演
    算処理結果を出力するデータ入出力手段と、上記データ
    入出力手段から入力されたデータを用いて上記機能定義
    手段に定義された機能により演算処理を実行する演算処
    理部と、演算処理結果に対応した内部状態を示すデータ
    を保持する状態保持手段と、を有することを特徴とする
    演算モジュール。 3、コード表現された記号で構成される被検索記号列中
    に検索対象記号列が存在するか否かを判定する記号列検
    索モジュールにおいて、 アドレスバス,データバスを介してプロセッサに接続さ
    れ、 被検索記号列を入力する入力手段と、上記 入力手段内のデータに1ビット単位でマスク指定を行な
    うマスク手段と、上記入力手段内のデータの位置をバイ
    ト単位で入れ替えるデータバス入れ替え手段と、検索対
    象記号列をあらかじめ格納してデータバス入れ替え後の
    被検索記号列との照合を行なう連想記憶手段と、連想記
    憶手段とでの照合条件すなわち被検索文字列と検索対象
    文字列との関係がどのような場合に一致したとするのか
    を指定する照合条件格納手段と、上記連想記憶手段での
    照合結果から一致したワード数を解析する照合結果解析
    手段と、一致したワードの一致信号をひとつずつ出力す
    る一致信号分離手段と、上記一致信号によりアクセス番
    地を指定する出力データ記憶手段と、上記出力データ記
    憶手段の内容を出力する検索結果出力手段と、上記出力
    データ記憶手段がアクセスされなかった場合に上記検索
    結果出力手段に出力するデータを保持するノンヒットデ
    ータ保持手段と、上記記号列検索モジュールの機能を定
    義する機能定義手段と、上記記号列検索モジュールの内
    部状態を保持する状態保持手段と、を有することを特徴
    とする記号列検索モジュール。 4、請求項3記載の記号列検索モジュールにおいて、 上記連想記憶手段へのデータバスを持つ第1の入力手段
    群と、上記連想記憶手段へのデータバスを持たない第2
    の入力手段群とからなる、複数の被検索記号列の入力手
    段を有し、 格納データを上記第2の入力手段群から上記第1の入力
    手段群へと各入力手段に渡って順次シフトして、上記第
    1の入力手段群に格納されている被検索記号列を上記連
    想記憶手段へ転送する機能を有することを特徴とする記
    号列検索モジュール。 5、請求項4記載の記号列検索モジュールにおいて、 上記入力手段群での被検索記号列のシフト量を1ビット
    ,1バイト,2バイトと選択することを特徴とする記号
    列検索モジュール。 6、請求項4記載の記号列検索モジュールにおいて、 上記入力手段群での被検索記号列のシフト量を、上記機
    能定義手段に設定するコマンドによって指定することを
    特徴とする記号列検索モジュール。 7、請求項4記載の記号列検索モジュールにおいて、 上記第1の入力手段群に格納された被検索記号列を連想
    記憶手段へ転送する際に、データの並び方をバイト単位
    で変更する機能を有することを特徴とする記号列検索モ
    ジュール。 8、請求項7記載の記号列検索モジュールにおいて、 上記第1の入力手段群に格納された被検索記号列のデー
    タの並び方の変更方法を、上記機能定義手段に設定する
    コマンドによって指定することを特徴とする記号列検索
    モジュール。 9、請求項3記載の記号列検索モジュールにおいて、 上記入力手段に被検索記号列が書き込まれると、機能上
    記定義手段の設定にしたがって検索処理シーケンスが起
    動され、上記検索結果出力手段に上記出力データ記憶手
    段に格納されたデータ、または上記ノンヒットデータ保
    持手段に格納されたデータのいずれかが出力されること
    を特徴とする記号列検索モジュール。 10、請求項9記載の記号列検索モジュールにおいて、 被検索記号列を書き込むことにより、上記機能定義手段
    に設定された検索処理シーケンスを起動する入力手段を
    、上記機能定義手段に設定するコマンドによって指定す
    ることを特徴とする記号列検索モジュール。 11、請求項3記載の記号列検索モジュールにおいて、 被検索記号列と検索対象記号列との照合条件として、両
    者が等しい場合に一致とする、両者が等しくない場合に
    一致とする、両者の関係にかかわらず常に一致とする、
    両者の関係にかかわらず常に不一致とする、という各条
    件を上記連想記憶手段に格納した検索対象記号列1ワー
    ド単位に設定することが可能であることを特徴とする記
    号列検索モジュール。 12、請求項3記載の記号列検索モジュールにおいて、 上記状態保持手段の内容を直接上記プロセッサへ伝達す
    るための出力端子、あるいはインタフェイス手段を有す
    ることを特徴とする記号列検索モジュール。 13、請求項3記載の記号列検索モジュールにおいて、 被検索記号列と検索対象記号列との一致が検出された場
    合に、割込み要求信号を出力することを特徴とする記号
    列検索モジュール。 14、請求項13記載の記号列検索モジュールにおいて
    、 被検索記号列と検索対象記号列との一致が検出された場
    合に、割込み要求信号を出力するか否かを、上記機能定
    義手段に設定するコマンドによって指定することを特徴
    とする記号列検索モジュール。 15、請求項13記載の記号列検索モジュールにおいて
    、 一致信号により上記出力データ記憶手段の内容を検索結
    果出力手段に出力する際に、その一部分をモジュールの
    内部情報と置き換えるか否かを、上記機能定義手段に設
    定するコマンドによって指定することを特徴とする記号
    列検索モジュール。 16、3請求項3記載の記号列検索モジュールにおいて
    、 上記連想記憶手段に格納された検索対象記号列ごとに、
    バイト単位または2バイト単位で同一ビット位置にマス
    クを行なう機能を有することを特徴とする記号列検索モ
    ジュール。 17、請求項16記載の記号列検索モジュールにおいて
    、 上記連想記憶手段に格納された検索対象記号列ごとに、
    バイト単位または2バイト単位で同一ビット位置にマス
    クを行なう際のビット位置を、上記機能定義手段に設定
    するコマンドによって指定することを特徴とする記号列
    検索モジュール。 18、請求項3記載の記号列検索モジュールにおいて、 上記連想記憶手段、上記照合条件格納手段、上記出力デ
    ータ記憶手段それぞれの内容を、上記プロセッサからア
    クセスすることを特徴とする記号列検索モジュール。 19、請求項1または3〜18のいずれかに記載の記号
    列検索モジュールを内蔵して、単一の半導体チップ上に
    形成したことを特徴とするマイクロコンピュータ。 20、請求項19記載の記号列検索モジュールを内蔵し
    たマイクロコンピュータにおいて、 上記記号列検索モジュール、上記プロセッサであるCP
    U,RAM,ROMおよびこれらを接続するバス、上記
    記号列検索モジュールと上記CPUとを接続するバスを
    含んで単一の半導体チップ上に形成したことを特徴とす
    るマイクロコンピュータ。 21、請求項19または20記載のマイクロコンピュー
    タを内蔵する2次記憶装置であって、記憶媒体に格納さ
    れている情報を被検索記号列とし、ホストCPU装置か
    ら検索対象記号列を受け取り、上記2次記憶装置内部で
    記号列検索を行ない、検索結果をホストCPU装置へ返
    すことを特徴とする2次記憶装置。 22、請求項21記載の2次記憶装置において、記号列
    検索コマンドを拡張コマンドとしてサポートすることを
    特徴とする2次記憶装置。 23、請求項21または22記載の2次記憶装置に、記
    号列検索コマンドを転送するホスト CPU装置を備えた検索システムにおいて、2次記憶装
    置制御用の汎用バスと、これと組合せて記号列検索機能
    を実行するための拡張バスとを内蔵し、上記汎用バスと
    上記拡張バスとにより上記ホストCPU装置と上記2次
    記憶装置と接続することを特徴とする検索システム。
JP2328893A 1990-06-12 1990-11-30 記号列検索モジュール及びそれを備えたシングルチップマイクロコンピュータ Expired - Fee Related JP2960533B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2328893A JP2960533B2 (ja) 1990-11-30 1990-11-30 記号列検索モジュール及びそれを備えたシングルチップマイクロコンピュータ
EP91120412A EP0488297B1 (en) 1990-11-30 1991-11-28 Symbol string search apparatus and system
DE69131954T DE69131954T2 (de) 1990-11-30 1991-11-28 Zeichenfolgensuchgerät und -system
US08/402,560 US5497488A (en) 1990-06-12 1995-03-13 System for parallel string search with a function-directed parallel collation of a first partition of each string followed by matching of second partitions

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2328893A JP2960533B2 (ja) 1990-11-30 1990-11-30 記号列検索モジュール及びそれを備えたシングルチップマイクロコンピュータ

Publications (2)

Publication Number Publication Date
JPH04205174A true JPH04205174A (ja) 1992-07-27
JP2960533B2 JP2960533B2 (ja) 1999-10-06

Family

ID=18215275

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2328893A Expired - Fee Related JP2960533B2 (ja) 1990-06-12 1990-11-30 記号列検索モジュール及びそれを備えたシングルチップマイクロコンピュータ

Country Status (3)

Country Link
EP (1) EP0488297B1 (ja)
JP (1) JP2960533B2 (ja)
DE (1) DE69131954T2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8880501B2 (en) 2006-11-13 2014-11-04 Ip Reservoir, Llc Method and system for high performance integration, processing and searching of structured and unstructured data using coprocessors
US9020928B2 (en) 2000-04-07 2015-04-28 Ip Reservoir, Llc Method and apparatus for processing streaming data using programmable logic
US9176775B2 (en) 2003-05-23 2015-11-03 Ip Reservoir, Llc Intelligent data storage and processing using FPGA devices
US9323794B2 (en) 2006-11-13 2016-04-26 Ip Reservoir, Llc Method and system for high performance pattern indexing
US9547680B2 (en) 2005-03-03 2017-01-17 Washington University Method and apparatus for performing similarity searching
US10572824B2 (en) 2003-05-23 2020-02-25 Ip Reservoir, Llc System and method for low latency multi-functional pipeline with correlation logic and selectively activated/deactivated pipelined data processing engines
US10846624B2 (en) 2016-12-22 2020-11-24 Ip Reservoir, Llc Method and apparatus for hardware-accelerated machine learning

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5528550A (en) * 1993-05-28 1996-06-18 Texas Instruments Incorporated Apparatus, systems and methods for implementing memory embedded search arithmetic logic unit
ES2112625T3 (es) * 1993-11-24 1998-04-01 Unilever Nv Composiciones detergentes.
US6321226B1 (en) * 1998-06-30 2001-11-20 Microsoft Corporation Flexible keyboard searching
ES2253531T5 (es) 2001-01-03 2018-09-26 Nice Systems Limited Gestión del almacenamiento sobre la base del contenido
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

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2200228B (en) * 1987-01-14 1991-08-07 Texas Instruments Ltd Content addressable memory

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9020928B2 (en) 2000-04-07 2015-04-28 Ip Reservoir, Llc Method and apparatus for processing streaming data using programmable logic
US10719334B2 (en) 2003-05-23 2020-07-21 Ip Reservoir, Llc Intelligent data storage and processing using FPGA devices
US9176775B2 (en) 2003-05-23 2015-11-03 Ip Reservoir, Llc Intelligent data storage and processing using FPGA devices
US11275594B2 (en) 2003-05-23 2022-03-15 Ip Reservoir, Llc Intelligent data storage and processing using FPGA devices
US9898312B2 (en) 2003-05-23 2018-02-20 Ip Reservoir, Llc Intelligent data storage and processing using FPGA devices
US10929152B2 (en) 2003-05-23 2021-02-23 Ip Reservoir, Llc Intelligent data storage and processing using FPGA devices
US10346181B2 (en) 2003-05-23 2019-07-09 Ip Reservoir, Llc Intelligent data storage and processing using FPGA devices
US10572824B2 (en) 2003-05-23 2020-02-25 Ip Reservoir, Llc System and method for low latency multi-functional pipeline with correlation logic and selectively activated/deactivated pipelined data processing engines
US10957423B2 (en) 2005-03-03 2021-03-23 Washington University Method and apparatus for performing similarity searching
US9547680B2 (en) 2005-03-03 2017-01-17 Washington University Method and apparatus for performing similarity searching
US10580518B2 (en) 2005-03-03 2020-03-03 Washington University Method and apparatus for performing similarity searching
US9396222B2 (en) 2006-11-13 2016-07-19 Ip Reservoir, Llc Method and system for high performance integration, processing and searching of structured and unstructured data using coprocessors
US10191974B2 (en) 2006-11-13 2019-01-29 Ip Reservoir, Llc Method and system for high performance integration, processing and searching of structured and unstructured data
US8880501B2 (en) 2006-11-13 2014-11-04 Ip Reservoir, Llc Method and system for high performance integration, processing and searching of structured and unstructured data using coprocessors
US9323794B2 (en) 2006-11-13 2016-04-26 Ip Reservoir, Llc Method and system for high performance pattern indexing
US11449538B2 (en) 2006-11-13 2022-09-20 Ip Reservoir, Llc Method and system for high performance integration, processing and searching of structured and unstructured data
US10846624B2 (en) 2016-12-22 2020-11-24 Ip Reservoir, Llc Method and apparatus for hardware-accelerated machine learning
US11416778B2 (en) 2016-12-22 2022-08-16 Ip Reservoir, Llc Method and apparatus for hardware-accelerated machine learning

Also Published As

Publication number Publication date
DE69131954T2 (de) 2000-10-05
EP0488297B1 (en) 2000-02-02
EP0488297A3 (en) 1993-08-18
EP0488297A2 (en) 1992-06-03
DE69131954D1 (de) 2000-03-09
JP2960533B2 (ja) 1999-10-06

Similar Documents

Publication Publication Date Title
US5497488A (en) System for parallel string search with a function-directed parallel collation of a first partition of each string followed by matching of second partitions
US4926317A (en) Hierarchical memory system with logical cache, physical cache, and address translation unit for generating a sequence of physical addresses
US4620275A (en) Computer system
EP0233401B1 (en) Improved fast search processor
US5649149A (en) Integrated content addressable memory array with processing logical and a host computer interface
CN1144934A (zh) 具有执行送数指令执行部件的数据处理器及其操作方法
JPH04205174A (ja) 記号列検索モジュール及びそれを備えたシングルチップマイクロコンピュータ
EP0676081A1 (en) Pattern search and refresh logic in dynamic memory
US4812972A (en) Microcode computer having dispatch and main control stores for storing the first and the remaining microinstructions of machine instructions
US5119324A (en) Apparatus and method for performing arithmetic functions in a computer system
US5053986A (en) Circuit for preservation of sign information in operations for comparison of the absolute value of operands
JP2007536696A (ja) 連想メモリ装置
JP2880199B2 (ja) 記号列検索方法および検索装置
US5276853A (en) Cache system
JPS6355636A (ja) デ−タ処理システム
JP2825009B2 (ja) 記号列検索方法および装置
JP2636821B2 (ja) 並列処理装置
JPS5931733B2 (ja) 可変長さの命令を実行する中央処理装置
JPH0315772B2 (ja)
EP0167061A2 (en) Vector processing computer
JPS63271525A (ja) デ−タ処理装置
Zeidler et al. On the Development of Dedicated Hardware for Searching
JPH061476B2 (ja) 高速検索処理装置
JPS635432A (ja) マイクロプロセツサ
JPH1049545A (ja) 連想記憶装置

Legal Events

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