JPH08502609A - Non-numeric coprocessor - Google Patents

Non-numeric coprocessor

Info

Publication number
JPH08502609A
JPH08502609A JP6509863A JP50986394A JPH08502609A JP H08502609 A JPH08502609 A JP H08502609A JP 6509863 A JP6509863 A JP 6509863A JP 50986394 A JP50986394 A JP 50986394A JP H08502609 A JPH08502609 A JP H08502609A
Authority
JP
Japan
Prior art keywords
window
data
coprocessor
byte
hit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP6509863A
Other languages
Japanese (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 JPH08502609A publication Critical patent/JPH08502609A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/8023Two dimensional arrays, e.g. mesh, torus
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Computational Mathematics (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 ファジー情報の検索とパターン認識用の非数値コプロセッサは、情報処理手段を有し、ホストコンピュータ及びデータ源に接続可能である。データ源からのデータストリームを検査するために配設された多数の同時動作可能なウインドウモジュール(W0、W1、...)内には、複数の内部処理素子が編成されている。処理素子は、データストリームのバイトと所定の上限及び下限とを比較してバイトが前記境界内にあるかどうかを決定し、境界内にある場合は、ヒット信号を生成する。各ウインドウモジュールは、その異なる処理素子からのヒット信号を相関させるためのウインドウ突合せ論理回路を有し、所定の突合せの発生によりウインドウ突合せ信号を生成する。このようにコプロセッサを構成することで、別個のデータストリームを、アプリケーションの必要に応じて、個々のウインドウモジュールに或いはウインドウグループ又はスーパウインドウとして選択可能に構成された連鎖ウインドウモジュールに転送するために、データルーティング手段(12)により利用可能なパラレル処理能力が得られる。 (57) [Summary] The non-numerical coprocessor for fuzzy information retrieval and pattern recognition has information processing means and can be connected to a host computer and a data source. Internal processing elements are organized in a number of simultaneously operable window modules (W0, W1, ...) Arranged for examining the data stream from the data source. The processing element compares a byte of the data stream with predetermined upper and lower limits to determine if the byte is within the bounds and, if so, generates a hit signal. Each window module has window matching logic for correlating the hit signals from its different processing elements and produces a window matching signal upon the occurrence of a predetermined match. By configuring the coprocessor in this way, it is possible to transfer a separate data stream to individual window modules or chained window modules that are selectably configured as window groups or super windows, depending on the needs of the application. , The parallel processing capacity available by the data routing means (12) is obtained.

Description

【発明の詳細な説明】 非数値コプロセッサ 技術分野 本発明は、電子計算機を用いたファジー情報検索及びパターン認識用の非数値 コプロセッサに関する。 背景技術 従来のコンピュータシステムは、複雑なプログラミング及びデータ構成技術を 用いて、情報の記述、蓄積、認識及び検索に利用可能である。しかしながら、か かる公知の方法を利用することにより、特に複雑な情報項目の検索や複雑なパタ ーン認識等のタスクの際に、システム性能が著しく低下することも多い。情報検 索、テキスト及びデータベース探索、及びパターン照合を通じて、殆どのコンピ ュータユーザは、非数値計算への従来のアプローチの非効率から生じる周知の問 題に直面してきた。例えば、「燐濃度が15μg/l以上測定された現場で、1 980年−85年の間にカドミウムが測定された日付と位置を全て見つけなさい 」というタイプの照会に応答するために膨大な量の測定値を読むことや、これよ りずっと簡単な照会でも、従来のシステムでは性能上過酷な問題となることがあ る。 多量の情報を検索しそこから複雑な項目を認識する人間の行動に鼓舞されて、 本発明は、従来の方法に基づいたシステムと今日の性能上の要求との間の乖離を 解消しようとする。従って、本発明の目的は、単純な非数値計算プログラミング を提供すると同時に、従来の非数値計算システムより実質的に高速で膨大なデー タボリュームを走査検索し且つより低速で特定の完全な文章を探索したり或いは 多くの語の断片から成る複雑な組合せを探索し得る機能を提供することである。 更に、本発明は、従来の技術を採用するときにしばしば必要とされてきた、拡張 セグメンテーション、ベクトル化、及び複雑な情報項目を探索するためのデータ の複写格納に対する必要性を除去することを企図する。 本発明の開示において、「バイト」は、1単位として処理される一連の隣接し たビットとして解釈されるべきであり、ビット数は必ずしも8ではない。 発明の開示 本発明によれば、従来技術が直面した問題は、情報処理手段を有してホストコ ン ピュータとデータ源とに接続可能なファジー情報検索とパターン認識用の非数値 コプロセッサであって、情報処理手段が、前記データ源からのデータストリーム を検査するために配設した所定数の同時動作可能なウインドウモジュール内に編 成された複数の内部処理素子を備え、各処理素子が、データストリーム内の1バ イト例えば8ビットバイトを、前記処理素子に割り当てられた所定の個別にプロ グラム可能な上限値及び下限値と比較して、当該処理素子内に存するバイトの値 が前記境界値内にあるかどうかを決定し、境界値内にあるならば各ウインドウモ ジュール内に設けたウインドウ突合せ論理回路に送出されるヒット信号を生成し て、当該ウインドウモジュール内の異なる処理素子から受信したヒット信号と相 関させ、更に、前記ウインドウモジュール内の所定の突合せの発生により、ウイ ンドウ突合せ信号を生成するコプロセッサにより解決される。 このようにコプロセッサを構成することにより、情報検索とパターン認識用の 従来のシステムの性能を遙かに凌ぐ性能をコプロセッサシステムに付与するため に利用可能な、強力な並列処理能力が得られる。 本発明に係るコプロセッサは、好ましくは、更に、アプリケーションの必要性 に対応する構成データに応じて、前記データ源からの別個のデータストリームを 、前記同時動作可能なウインドウモジュールに、個別的に、或いは前記ウインド ウモジュールが個々のスーパウインドウ又はスーパウインドウグループ又は全て のウインドウモジュールを含む単一のスーパウインドウ等の異なる選定可能なウ インドウ構成に連鎖される態様で、転送するデータルーティング手段を備えてい る。 ウインドウをより長いウインドウに連鎖することで、より複雑な検索条件にも 対応でき、また、異なるウインドウへの入力データのルーティングは、現在実行 しているアプリケーションの、ウィンドウ長さ及びデータストリームに対する必 要に応じて、幾通りかの方法で行うことができる。実際に、利用可能なウインド ウの数の制限内で、それぞれ1バイトから成る任意の数のストリームを処理する ことができる。例えば、それぞれ好ましくは8ビット長の多数の個々のデータ入 力は、異なるウインドウに転送されて並列処理を行うことができ、同一のデータ ストリームを異なるウインドウにより処理すべきときにデータを複写蓄積する必 要が無くなる。かくして、本発明にかかるコプロセッサは、フレキシブルで構成 可能なデータルーテ ィング機能を有すると共に、64ビット長以下のアプリケーションでのプロセッ サの使用もサポートする。 好ましくは、データルーティング手段は、異なるレベルで編成されたマルチプ レクサのネットワークから成り、各マルチプレクサは、それぞれ好ましくは8ビ ット長の二つのデータ入力のうち、一方を選択してその出力に転送可能である。 特に、コプロセッサの好ましい実施例において、マルチプレクサのレベルは、そ れぞれ、フォールディング、パラレル、及びシリアルのマルチプレクサレベルか ら成る。 本コプロセッサは、更に、コプロセッサにロード可能な前記ウインドウ構成の 内部記憶用のスタティックランダムアクセスメモリ(RAM)を備えている。こ れにより、探索動作毎に構成データをコプロセッサに転送する必要はなくなり( 構成を変更した場合のみ転送要)、ダウンロード可能な構成データの個別化セッ トを含むソフトウェアの開発には有利になる。 コプロセッサの一実施例において、各処理素子は、検査すべきバイトの一時記 憶用のラッチセルと、当該処理素子用の前記上限値及び下限値を備えた二つの比 較器セルとを備え、比較器セルは、ヒット信号を生成するように構成されている 。 更に、コプロセッサ内に、ウインドウ突合せ信号を受信してプログラム可能な 中央ヒットマスクと比較するように構成された結果制御論理回路を設け、中央ヒ ットマスクが、ウインドウヒットの論理組合せを定義させると共に、検出された 全ての発生のアドレスを報告させる(ヒットアドレスモード)か、或いは検査さ れたデータボリューム内の突合せの総数を報告させる(ヒットカウントモード) 、ことは好ましい。 当業者にとって、本コプロセッサをプログラムし制御する際の簡便性、及び本 コプロセッサの更なる利点と特徴は、以下の説明から明らかになろう。 図面の簡単な説明 以下、添付図面を参照しつつ、本発明に係るコプロセッサの好ましい実施例の 一例に基づき、本発明を詳細に説明する。 図1は、本発明に係るコプロセッサの典型的なアプリケーションを示す。 図2は、ホストコンピュータ及びデータ源と接続された、本発明に係るコプロ セッサのブロック図である。 図3は、本発明に係るコプロセッサ内の単一のウインドウを示す図である。 図4は、本発明に係るコプロセッサ内のウインドウの単一の処理素子を示す図 である。 図5は、本発明に係るコプロセッサ内のデータルーティングネットワークを示 す。 図6乃至図15は、本発明に係るコプロセッサ内のデータルーティングネット ワークの種々の好ましい構成を示す。 図16乃至図17は、図7乃至図16のそれぞれで示した二つの異なる構成に 係るコプロセッサ内のルーティングネットワークを通るデータの流れを詳細に示 す。 図18は、典型的なホスト/コプロセッサ構成を示す。 図19は、コプロセッサ内のアドレスマップ編成を示す。 図20は、所与のアプリケーション例のためのウインドウの一部を示す。 好適な実施例の説明 図1に示したように、本発明に係るコプロセッサチップ1は、一般には、双方 向データ転送リンクを介してホストコンピュータ2に、また、一方向データ転送 リンクを介してデータ源3に接続されている。 コプロセッサチップ1の好ましい実施例は、図2に示したように、一連の8個 のウインドウモジュールW0−W8を備えている。これらのデータモジュールW 0−W8は、ホストインタフェースモジュール14に接続された8ビットデータ バスを介して相互に連結されるデータルータモジュール12と結果制御論理回路 13との間に、論理的に位置している。データ源インタフェースモジュール15 は、データ源3からデータルータモジュール12への一方向64ビットデータ転 送を行う。 次に図3を参照すると、8個のデータウインドウモジュールW0−W8は、そ れぞれ、ウインドウ突合せ論理回路16と、32個の処理素子PE0−PE31 に対応する32バイトのシフトレジスタと、を有する。図4に示したように、各 処理素子PEは、ラッチセル17と、個別にプログラム可能な上下限を突合せチ ェックするために連係した二つの比較器セル18、19と、に分割される。 図5に詳細に示したように、データルータモジュール12内のデータルーティ ングネットワークを介して、各ウインドウを、より長いウインドウに連鎖させる ことができ、より複雑なデータ検索を可能としている。データルータは、3レベ ルのマ ルチプレクサから成り、それぞれ二つの長さ8ビットの入力のうち一つを選択し て出力する。 データ源から長さ8ビットのデータストリームが供給される第一のレベルのマ ルチプレクサは、フォールディングマルチプレクサ(図5の上側の多重化行)即 ちデータストリームを円形にフォールドするマルチプレクサから構成され、これ により、各ウインドウを、実際のデータストリームがコプロセッサチップに入力 される位置から、独立にすることができる。フォールディングマルチプレクサは 、データストリームを複写して異なるウインドウに同一のデータストリームを同 時に読ませるパラレルマルチプレクサ(図5の中央の多重化行)に、接続されて いる。最後に、シリアルマルチプレクサ(図5の下側の多重化行)が、各ウイン ドウをスーパウインドウに連鎖させるべきか否かを選択する。 これら3個のマルチプレクサレベルにより、入力の組合せ及びウインドウの連 鎖が可能となる。 以下、図6乃至図17を参照して、可能な構成の一部を説明する。入力データ ストリームに0乃至7の符号を付し、例えば、ストリーム0をD(7、0)、ス トリーム1をD(15、8)に対応させる。 a) 8本のデータストリームをそれぞれ、並列に配置した各ウインドウに供 給する。これは、最も単純なルーティング戦略である。各ストリームは、対応す るウインドウに送られる。この構成は図6に示されており、図16には実際の構 成がボールド体で詳細に示されている。 b) 四つのデータストリームをそれぞれ、並列に配置した2個のウインドウ に供給する。各データストリームは対にして、並列に配した2個のウインドウに 送られる。ストリームは、一つおきのデータセット0、2、4、6又はデータセ ット1、3、5、7とすることができ、例えば、ストリーム0の次にストリーム 1を配する。この構成は図7に示されている。 c) 四つのデータストリームをそれぞれ、直列に配置した2個のウインドウ に供給する。この構成は、ウインドウの各対が二倍の長さの一つのスーパウイン ドウを形成するように連鎖されている点を除き、b)と同様である。この構成は 図8に示されている。 d) 二つのデータストリームをそれぞれ、並列に配置した4個のウインドウ に供給する。ストリームは、4本ずつ結合されて、それぞれ並列に配した4個の ウインドウから成る2つの組にそれぞれ送られる。ストリームは、交互に(0、 4)、(1、5)、(2、6)又は(3、7)とすることができ、例えば、スト リーム0の次にストリーム1、2、3を、ストリーム4の次にストリーム5、6 、7を配する。この構成は図9に示されている。 e) 二つのデータストリームをそれぞれ、直列に配した2個のウインドウか ら成る2群の並列なウインドウに供給する。d)の場合のように、ウインドウは 連鎖されているが、並列処理は減少している。この構成は図10に示されおり、 図17には入力ストリーム2及び6と実際の構成がボールド体で詳細に示されて いる。 f) 二つのデータストリームをそれぞれ、直列に配した4個のウインドウに 供給する。この構成は、個々のウインドウの長さの4倍の一つのスーパウインド ウを形成するように各群のウインドウを連鎖させた他は、d)の構成と同様であ る。この構成は図11に示されている。 g) 一つのデータストリームを、並列に配置した8個のウインドウに供給す る。各データストリームは、一つのストリームを形成するように結合され、並列 に配した8個のウインドウに送られる。8本のストリームのいずれも入力として 使用可能であり、全データ記憶領域を一つの長い8ビットデータファイルとして 扱う。この構成は図12に示されている。 h) 一つのデータストリームを、直列に配した2個のウインドウから成る4 群の並列なウインドウに供給する。g)に類似しているが、各ウインドウは、よ り複雑な探索用に連鎖されている。この構成は図13に示されている。 i) 一つのデータストリームを、直列に配した4個のウインドウから成る2 群の並列なウインドウに供給する。g)及びh)に類似しているが、より多くの ウインドウを連鎖させて複雑さを増している。この構成は図14に示されている 。 j) 一つのデータストリームを、直列に配した8個のウインドウに供給して いる。g)に類似しているが、全てのウインドウを接続して単一のスーパウイン ドウを形成し、最も複雑な探索を可能にしている。この構成は図15に示されて いる。 別のフィルタ及びデータ経路構成は、チップにロードされた構成データにより 決 定される。全ての構成は、データのルーティングにより、秒あたり10ギガシン グルバイトの比較を行うことができる。しかしながら、同時データ経路の数をト レードオフすることにより、複雑な問合わせがなされ、この結果、チップ上に多 数のアプリケーションをマップすることが容易となる。 コプロセッサ11は、一般には、図18に示したように、ホストインタフェー ス14を介してコンピュータにリンクされている。図示したホストコンピュータ は、ディスクユニット21及びそれに係るディスク制御装置22、中央処理装置 即ちCPU23、システムメモリ24及びシステムバス25から成る。ホストイ ンタフェース14は、8ビット双方向ポート(HDバス)に基づいており、読書 きサイクルは、同期及び非同期で実行される。ホストインタフェース自体は、C S信号と組み合わせたIOR信号及びIOW信号のアサーション、及びSETA DRライン上の特定の極性により、制御される(図2参照)。 構成データは、構成RAM内に蓄積されて合計828バイトから成り、約10 0マイクロ秒内での完全な再構成を可能としている。殆どのシステムでは、構成 時間はホストコンピュータからの転送速度により決定される。パーソナルコンピ ュータの入出力チャネルを使用した場合、転送速度をIMB/秒と仮定すると、 一般には1000マイクロ秒かかる。 構成データのマイナチェンジは、コプロセッサの内部アドレスレジスタを介し てアドレス指定することにより行われ、これにより構成時間を一層短くすること ができる。かくして、再構成と探索が極めて迅速に行われるので、異なる基準で 等量のデータを探索することが可能となる。 カウントモードでは、コプロセッサは、検出された突合せデータ項目数をチッ プ上に累積する。報告モードでは、コプロセッサは、ヒットを検出した時に割り 込み信号を発する。この信号は、ホストコンピュータがACK信号又はIOW信 号を発するまで、送出され続ける。内部結果位置カウンタは、シャドーレジスタ (図示せず)内に収納される。構成データは、ヒットが生じた場合にチップがデ ータの受信を停止すべきか否かを決定する。データストリームを停止するように チップが構成されている場合、DWTD信号(図2参照)は、ACK信号が送信 されるまで非活性状態となる。突合せにも拘らずデータストリームが停止されず にそのまま流れ るようにプログラムされている場合、シャドウレジスタ内に収納されたカウンタ は、ACK信号が送信されるまでオーバライトされることはない。これは、所望 のデータを含むテキスト部分にヒットが頻繁に生じる場合、テキスト探索に有利 である。また、問題がテキストの正規の部分(章、項)のみに発生した場合、テ キストの当該部分内でその発生の正確な検出を期することは適切でない。 64ビットの同期データインタフェース15(図2参照)は、単純なハンドシ ェーク手順で制御される。コプロセッサがデータを受信し得る状態にあるとき、 DWTD信号は、実際のデータが読まれる1クロックサイクル前に、送出される 。これにより、インタフェースを設計する際に、一層適切なタイミングが確保で きる。 データ源は、データを準備完了すると、DVALID信号を発する。最後の立 ち上がりクロック時にDWTD信号が非活性であった場合、DVALID信号の 送出により、データがコプロセッサに読まれることはない。従って、DWTD信 号の送出と共に立ち上がりクロックエッジの検出後、最初の立ち上がりクロック の間にデータとDVALID信号を検出するまで、データ源は、データ転送を完 了したと見做すべきではない。対応するタイミング方式は、係る同期及び非同期 の読書き機能に対して、実現することができる。 1バイト以上に亘る数値として解すべきデータを入力ストリームが含む場合、 最上位のバイトは、ウインドウ内に最初に達する必要がある。 チップのプログラミングは、ホストインタフェース内の異なるアドレスに構成 データを書き込むことにより、行われる。構成の異なる部分は、間接的にアドレ ス指定可能である。これにより、必要に応じて極めて短時間の間に、構成の一部 のみを変更することができる。 再構成の間データストリームを停止する必要はないが、構成が部分的に書き込 まれる場合に生じる一時的な状態の故に、誤った突合せが行われることがある。 また、レコードカウンタは対応するウインドウへの書き込みによりリセットされ るので、調整不良のレコードの場合、問題が生じることがある。従って、データ ストリームを停止してから構成を変えることが望ましい。 コプロセッサ内の内部構成アドレスは、11ビットのアドレスADR(10、 0)から成り、これは、内部アドレスレジスタ内で生成される。このレジスタの 8個の 上位ビットは、ホストインタフェースを介してロード可能である。3個の下位ビ ットは、上位ビットがロードされるとクリアされる。ロードは、HDバス上のア ドレスビットを設定し、CS信号、IOW信号、及びSETADR信号を同時に 送信することにより、行われる。11ビットアドレスの編成は、図19に示され ている。 コプロセッサは、それぞれ自身のアドレスを有する12個の内部モジュールを 備えている。モジュールアドレスは、アドレス内の4個の上位ビットから成り、 HDバスから新しい値を書き込むことによってのみ変化する。モジュール基底ア ドレスは、表1に示されている。7個の下位ビットは、カウンタ内に保持され、 ホストインタフェースからのアクセス毎にインクリメントされる。 かくして、1モジュール内の同順バイトは、容易にアクセスすることができる 。 モジュールアドレスの自動インクリメントは、モジュール間のアドレスマップに 孔があるので、サポートされていない。 殆どのモジュールにおいて、オフセットアドレスは、より詳細なアドレス指定 に用いることができる。単一のバイトをアクセスするために、絶対アドレスは以 下のように計算される。 アドレス=(モジュールアドレス*128(10)) + オフセットアドレス 次に、HDインタフェースを介してアドレスレジスタに値をロードし、その後 アドレスレジスタを自動インクリメントすべくアクセスする。従前の構成につい ての知識を要しないので、読取りアクセスが最も簡単である。各ウインドウモジ ュールは、以下のものから成る。 ・ 下限32バイト ・ 上限32バイト ・ フィールド区切り(セパレータ)マスク32バイト(全バイトで、最下位 ビットのみが重要である) ・ 突合せ待ち時間値2バイト ・ レコード長値1バイト これらのレジスタ用のオフセットアドレスは、以下の表2に示されている。 実際の探索では、限界レジスタに適当な値をロードする。フィールド区切りマ スクは、各フィールドの最下位バイトの位置で、1をとる。尚、フィールド区切 りマスクでは、各バイトの最下位ビットのみが使用される。即ち、処理素子PE を突合せする区切りマスクバイトには1が書き込まれ、他の場合はフィールドの 最後のバイトを0に保持する。 突合せ待ち時間は、ウインドウがヒットを実行するまでに必要なクロックサイ クルの数である。突合せ待ち時間ゼロは、ヒットを生じたクロックサイクル中に 、ウ インドウから中央突合せ論理回路に、ヒットが報告されることを意味する。突合 せ待ち時間が例えば4であるときは、更に4サイクル経過した後、即ち合計5サ イクル内に突合せが報告されることを意味する。突合せ待ち時間レジスタに書き 込む値は、65535(10)−前記待ち時間とする。即ち、例えば突合せ待ち 時間4は、レジスタに値65531(10)を書き込むことにより指定される。 データストリームのルーティングは、全て同量の時間を要するので、データス トリームをチップに同時に入力した場合、データストリームは、各ウインドウ( 又は連鎖の第一のウインドウ)の入力部に同時に発生する。ストリームを連鎖ウ インドウに送ると、32サイクルの累積遅延が導入されるが、このことは、突合 せ待ち時間を計算する際に考慮すべきである。 データ転送の無いクロックサイクル即ち非活性のDVALID信号が、待ち時 間サイクル数に関わることはない。従って、突合せ待ち時間は、物理的なクロッ クサイクルではなく、データ転送に対して測定される。 レコード長は、レコード境界と合わないパターンを時折突合せすることにより 、ヒットを抑制するために使用される。レコード長を1に設定することにより、 全てのヒットが中央突合せ論理回路に報告される。レコード長が例えば6である とき、6番目毎のデータ転送で行われる突合せのみを、ウインドウから報告させ る。ウインドウをカウンタするバイトは、当該ウインドウに対応するモジュール アドレスを用いた全ての書き込み操作によりリセットされる。即ち、最初の実行 可能な突合せは、ウインドウ構成を書き込み後6回目のデータ転送に対して行わ れる。レコード長値は、256(10)−レコード長として、コプロセッサ内の 対応するレジスタにプログラムされる。従って、10(10)のレコード長は、 246(10)として書き込まれる。 256ビットのヒットマスクRAMは、ホストインタフェースから分かるよう に、32×8ビットとして編成される。この32バイトは、内部アドレスレジス タ内の5個の下位ビットにより選定され、ビット5及び6を「ドントケア」とし て、ビット7乃至10をモジュールアドレス1000(2)として残す。バイト アドレス0への書き込みは、256ビットアドレス指定方式におけるビット0乃 至7に影響を及ぼし、バイト内の最下位ビットはビット位置0に対応する。同様 に、バイトアド レス4への書き込みは、256ビットアドレス指定方式のビット32乃至39に 影響する。 各ウインドウは、RAMを256×1ビットとしてアドレス指定する。8個の ウインドウからの突合せ信号は、アドレスとして使用され、ウインドウ0からの 突合せ信号は、最下位アドレスビットを表す。実ロケーションに1が蓄積される と、ヒットが検出される。 モードレジスタと、結果カウンタと、ヒットパターンと、ヴァージョンレジス タとから成るモジュールは、内部オフセットアドレスを有しないが、逐次読取り 方式のシフトレジスタチェーンとして編成されている。このモジュールへの書込 みは全て、チェーン内で唯一の書込み可能レジスタであるモードレジスタ内で行 われる。これは、コプロセッサがヒットにどのように作用するか、に影響する。 この場合、3個の下位ビットのみを機能させて、他には常に0を書き込む。表3 は、モードビットを説明する。これらのビットから、表4で全て説明する、8通 りの動作の組合せが生じる。 このモジュールから読み取る場合、以下の順序で値を呈示する。 1.結果カウンタ、バイト3(最上位バイト) 2.結果カウンタ、バイト2 3.結果カウンタ、バイト1 4.結果カウンタ、バイト0(最下位バイト) 5.ヒットパターン 6.モード 7.ヴァージョン番号 モードレジスタを除く全てのレジスタは、読取り専用型である。最初の読取り 開始後に、全ての値を読み取る必要はない。ACK信号又はIOW信号をコプロ セッサに送出することで、結果カウンタ及びヒットパターンの値を新しいヒット によりオーバライトすると共に、結果カウンタの最上位バイトにアクセスして新 しい読取りを開始する(IOW信号はCS信号でクオリファイされなければなら ない)。これは、また、INT信号が送信されないときに有効である。 結果カウンタは、モードレジスタへの最後の書込み後に生じたヒット数又はデ ータ転送数をカウントする。従って、このモジュールに任意の値を書込みことで 、結果カウンタはクリアされる。カウンタは、長さ32ビットであり、カウンタ オーバフロー標識は呈しない。 ヒットパターンは、最後のヒット時に8個のウインドウのそれぞれから報告さ れた突合せパターンである。これは、ヒットマスクRAMのプログラミングで幾 つかの突合せパターンにヒットを生成させる場合に、使用可能である。実際にヒ ットを引き起こしたパターンは、後処理を容易にする、より多くの情報を提供す るために読み出される。 ヴァージョンレジスタは、現在のコプロセッサのヴァージョンを示す番号を含 む。これは、後の改定で使用され、ソフトウェアを現在のハードウェアに適合可 能にする。 データルータ設定モジュールは、レベル深さ3で長さ1バイトのシフトレジス タとして編成される。これらは図5乃至図17に基づいて先に説明したマルチプ レクサを制御するバイトである。各バイトは、以下の順序で読み書きされる。 1) シリアルマルチプレクサ 2) パラレルマルチプレクサ 3) フォールディングマルチプレクサ 読取り動作は、破壊的である。即ち、全てのマルチプレクサの構成データは、 読出し後に再書込みしなければならない。しかしながら、マルチプレクサ構成は システム試験中に読み取られるだけであるので、これはあまり重要ではない。 各バイトの最上位ビットは、図5の一番左のマルチプレクサに対応する。シリ アルマルチプレクサでは、値をどのように組合せても、リーガルである。他の二 つのマルチプレクサでは、マルチプレクサ制御バイトの一つに4個以上連続した ビットを有する構成は、(伝播遅延のために)イリーガルである。これは、また 、循環フィードバックにも当てはまる。即ち、C3(16)のマルチプレクサ構 成もイリーガルである。図6乃至図17に基づいて先に説明した構成a)乃至j )のそれぞれに対する構成バイトは、作動すべく保証されており、以下の表5に 示されている。 本発明に係るコプロセッサチップは、製造試験専用のデータ経路モジュールを 含み、ウインドウ7からデータを出力させる読取り動作を行う。 本発明に係る非数値コプロセッサを含むチップの好ましい実施例は、パーソナ ルコンピュータ又はワークステーション用の拡張カード上に搭載される高度並列 超LSIチップである。好ましくは、チップは、CMOS(相補形MOS)工程 により製造されてTTL(トランジスタトランジスタ論理回路)及びCMOSコ ンパチブル入力を有し、+5V電源上で動作する100ピンPQFPパッケージ である。20MHzの動作周波数で、かかるコプロセッサチップは、160MB /秒の持続可能なデータ処理能力を有し、秒あたり10ギガシングルバイトの比 較を行う。 プログラミング例 以下の例は電話帳で人を探索するための設定を示す。図20は、本例のための ウインドウの一部構成を示す。このウインドウは、アルファベットのA乃至Gで 始まる姓を有する人及び142000乃至160000の範囲の電話番号の突合 せを報告する。フィールド区切りマスク内に適当なビットを設定することにより 、電話番号は6バイトに亘る数値フィールドとして処理される。図示ウインドウ では、他の 二つのフィールドも示されているが、フィールドNo.1及びNo.2に対して 全ビットが1である場合、それらは1バイト以上から成る比較には含まれないの で、差異が生じない。 探索基準に含まれないバイトは、FF(16)乃至00(16)の最大範囲内 の全データパターンを突合せする「ドントケア」状態に設定される。プログラム された16バイトのレコード長のために、構成内のレコード境界と合わないデー タに対しては、突合せは行われない。また、1つのウインドウのみを使用する場 合、突合せ待ち時間は不要である。 上述したことが唯一の探索基準である場合、これを全ウインドウにコピーして もよく、位置0を除く全位置が1になるようにヒットマスクRAMを設定する。 これにより、ウインドウの少なくとも一つがヒットを生じると突合せ信号が発せ られる。また、モード値も適切に設定する必要があり、例えば、Report=1、St op=1、Flank=0とする。次に、コプロセッサは、各突合せ毎に割り込み信号 を生成し、更にそれぞれに対して探索開始に係る突合せ位置を読み取る。 機能説明 図3に示すように、コプロセッサの好ましい実施例は、それぞれ32バイトの シフトレジスタを含む8個のデータウインドウから成る。図4に示すように、各 レジスタ素子は、上限と下限との突合せをチェックする二つの比較器と連係して いる。各境界は個別にプログラム可能であり、バイト範囲にある任意の連続イン タバル内でデータを突合せることができる。二つの比較器は、各ウインドウに接 続された突合せ論理回路に、突合せを報告する。1バイトより大きい項目の場合 、異なるバイトの突合せを組み合わせる。これにより、256バイトまでのデー タレコードを処理することができる。データフィールドは任意のインタバル試験 に対して8バイトまで構成することができ、等価試験のときは256バイトまで 可能である。 各ウインドウは、個々のヒットをチップ上の中央ヒットマスクに報告する。2 56ビットのユーザプログラム可能RAMのアドレスとしては、8個のウインド ウそれぞれの突合せが使用される。このRAMは、ヒットとして検出されるべき ウインドウヒットの任意の組合せに対して1を蓄積する。プログラム可能である ため、ユーザは、例えば1個のウインドウだけがヒットしたときでも報告される べきか、8 個のウインドウのうち4個のヒット時に報告されるべきか、或いは全てのウイン ドウがヒットしたときに報告されるべきか、を選定することができる。一般に、 8個のウインドウヒットの任意の論理組合せは、ユーザ定義のヒットである。チ ップは、検出された全てのヒットの発生アドレス、或いはデータボリューム内の 突合せの総数を報告する。 報告モードに設定した場合、コプロセッサは、ヒット時に、被検出データの位 置を含む内部カウンタを、シャドーレジスタ内に蓄積する。この蓄積された表示 は、後にホストコンピュータにより読み取ってもよい。シャドーレジスタは、A CK信号の送信によりホストコンピュータが突合せを確認するまで、オーバライ トされない。 各ウインドウは、プログラム可能な時間の間ヒットを記憶するように、設定可 能である。これにより、正確な整合を検出できない場合に、文脈依存探索を行う ことができる。これは、コプロセッサの原理に従う。即ち、一つの(厳格な)探 索キーの代わりに、必要データに係る多くの弱い条件が使用される。この特徴は 、複雑且つ/又は多量のデータ内の探索に特に重要である。 アプリケーション例 非構造化テキスト内の探索 コプロセッサにより実現される検索速度の故に、従来の索引を作成し維持する ことは、時代遅れとなろう。被制御相対距離を以てワイルドカードを有するテキ スト断片を組合せることにより、重要な情報を独自に識別することができる。探 索では、同義語を同時に使用してもよい。以下は、異なる二つのタイプの簡単な 問合わせである。 Q1:「シェイクスピアの作品において、'take it in what sence thou wilt 'という文章は、何度、そして何処に現れるか?」 Q2:「'Gorbat'ではなく、'Jelts','Mitter','Kohl''Major','Bush'という 5つの(部分)名のうち少なくとも3つが現れる新聞記事を見つけなさい。」 Q1タイプの文体研究は、従来のテキスト探索システムでは十分に行うことが できない。また、索引がテキストよりも多くのスペースを要することも良く知ら れている。 所与の例に係るコプロセッサは、Q1タイプの照会に対して160MB/秒の 持続可能なデータ速度を実現する。また、Q2タイプの複雑な照会は、20MB /秒の持続可能なデータ速度で処理される。 パターン照合 例えば指紋等の画像から、様々なタイプの特徴が抽出され、多くのかかる特徴 の組合せにより対象を識別し得る。多数の応募者間の探索は、本コプロセッサの 頑強でファジーな機構から大いに得るところがある。一般に、コプロセッサの能 力は、DNA研究等でなされるような部分照合を含む問題に良く適合する。 画像アーカイブ 種々のタイプの画像を蓄積し処理する必要は、多くの分野で技術的発展を促進 している。効率的な画像検索システムは、例えば病院で、新聞社で、或いは不動 産業者に、急速に不可欠なものになっている。画像は、相当量の誘導及び付加特 性を備えた、多次元対象を表す。 データベース探索 殆どのデータベースシステムは、階層構造及び厳密に定義された識別子に依存 している。選択性の低い属性を有するファジーな照会は、既存のシステムに厳し い性能上の問題を課すが、かかる照会は、作動中に全ての弱い制約を組み合わせ る本コプロセッサには理想的である。例えば、環境測定及び化学薬品のデータベ ースに関する具体的な研究は、単純化及び性能の向上に対する潜在的需要が本来 的に存する、ことを示している。 信号処理 潜在的アプリケーションとしては、非線形フィルタリング、レーダターゲット 相関、及び異常信号検出等がある。 データネットワーク 潜在的アプリケーションとしては、例えばイリーガルなアドレス範囲を報告す るための、或いは情報をスナップするための、寄生監視関数がある。本コプロセ ッサを備えたパーソナルコンピュータ及びワークステーションの幾つかは、デー タ源として、データの全量を周期的に広める中央データポンプから生じたネット ワークを使用することにより、分散処理システムに固有の全ての問題を除去する ことができ る。 ディスク制御装置 本発明に係るコプロセッサは、理想的なディスク制御装置構成要素である。こ れは、単にデータを要求項目のみに制限することにより、バスを介してホストコ ンピュータにデータを転送する必要性を大幅に減少させる。コプロセッサの機能 は、従来の内容アドレス指定を超えてより進んだ「データ特性」アドレス指定を 行っている。Description: TECHNICAL FIELD The present invention relates to a non-numerical coprocessor for fuzzy information retrieval and pattern recognition using an electronic computer. BACKGROUND ART Conventional computer systems can be used to describe, store, recognize and retrieve information using complex programming and data organization techniques. However, by using such a known method, the system performance often deteriorates remarkably, especially in tasks such as complicated information item search and complex pattern recognition. Through information retrieval, text and database searching, and pattern matching, most computer users have faced well-known problems resulting from the inefficiencies of conventional approaches to non-numerical computation. For example, a huge amount to respond to a query of the type "find all dates and locations where cadmium was measured between 1980 and 1985, where phosphorus concentrations were measured above 15 μg / l". Reading a measurement of or even a much simpler query can cause severe performance problems in conventional systems. Inspired by human behavior that retrieves large amounts of information and recognizes complex items therefrom, the present invention seeks to eliminate the gap between traditional method-based systems and today's performance requirements. . Accordingly, it is an object of the present invention to provide simple non-numerical programming while at the same time scanning large volumes of data substantially faster than conventional non-numerical computing systems and slower to find certain complete sentences. Or to provide the ability to search for complex combinations of many word fragments. Further, the present invention seeks to eliminate the need for extended segmentation, vectorization, and duplicate storage of data to search for complex information items, which is often required when employing conventional techniques. To do. In the present disclosure, a "byte" should be construed as a series of contiguous bits treated as a unit, and the number of bits is not necessarily eight. DISCLOSURE OF THE INVENTION According to the present invention, the problem faced by the prior art is a non-numeric coprocessor for fuzzy information retrieval and pattern recognition, which has information processing means and is connectable to a host computer and a data source, The information processing means comprises a plurality of internal processing elements organized within a predetermined number of simultaneously operable window modules arranged to examine a data stream from said data source, each processing element being within the data stream. 1 byte, for example an 8-bit byte, of the byte is present within the boundary value by comparing the predetermined individually programmable upper and lower limit values assigned to the processing element with each other. If it is within the boundary value, generate a hit signal to be sent to the window matching logic circuit provided in each window module, It is solved by a coprocessor which correlates with hit signals received from different processing elements in the window module and further generates a window match signal by the occurrence of a predetermined match in the window module. This coprocessor configuration provides powerful parallel processing capabilities that can be used to provide coprocessor systems with performance far exceeding that of conventional systems for information retrieval and pattern recognition. . The coprocessor according to the invention preferably further comprises a separate data stream from said data source to said simultaneously operable window module individually in response to configuration data corresponding to the needs of the application. Alternatively, the window module comprises data routing means for transferring in a manner that is chained to different selectable window configurations such as individual super windows or groups of super windows or a single super window containing all window modules. By chaining windows into longer windows, more complex search conditions can be accommodated, and the routing of input data to different windows is required for the window length and data stream of the currently executing application. Depending on the method, it can be done in several ways. In fact, within the limit of the number of available windows, any number of streams of 1 byte each can be processed. For example, a number of individual data inputs, each preferably eight bits long, can be transferred to different windows for parallel processing, and the same data stream needs to be duplicated when processed by different windows. Disappears. Thus, the coprocessor according to the present invention has a flexible and configurable data routing function and also supports the use of the processor in applications of 64 bits or less in length. Preferably, the data routing means comprises a network of multiplexers organized at different levels, each multiplexer being able to select one of two data inputs, each preferably eight bits long, and transfer it to its output. . In particular, in the preferred embodiment of the coprocessor, the multiplexer levels comprise folding, parallel, and serial multiplexer levels, respectively. The coprocessor further comprises a static random access memory (RAM) for internal storage of the window structure which can be loaded into the coprocessor. This eliminates the need to transfer configuration data to the coprocessor for each search operation (necessary to transfer only if the configuration is changed), which is advantageous for developing software that includes a personalized set of downloadable configuration data. In one embodiment of the coprocessor, each processing element comprises a latch cell for temporary storage of a byte to be tested and two comparator cells with the upper and lower limits for the processing element. The cell is configured to generate a hit signal. Further provided in the coprocessor is result control logic configured to receive the window match signal and compare it to a programmable central hit mask, the central hit mask defining a logical combination of window hits, and It is preferable to have the addresses of all detected occurrences reported (hit address mode) or the total number of matches in the examined data volume (hit count mode). The convenience of programming and controlling the coprocessor, and further advantages and features of the coprocessor, will be apparent to those skilled in the art from the following description. BRIEF DESCRIPTION OF THE DRAWINGS The present invention will now be described in detail with reference to the accompanying drawings, on the basis of an example of a preferred embodiment of a coprocessor according to the present invention. FIG. 1 shows a typical application of a coprocessor according to the invention. FIG. 2 is a block diagram of a coprocessor according to the present invention connected to a host computer and a data source. FIG. 3 is a diagram showing a single window within a coprocessor according to the present invention. FIG. 4 is a diagram showing a single processing element of a window in a coprocessor according to the present invention. FIG. 5 shows a data routing network within a coprocessor according to the present invention. 6 to 15 show various preferred configurations of the data routing network within the coprocessor according to the present invention. 16 to 17 detail the flow of data through the routing network in the coprocessor according to the two different configurations shown in each of FIGS. 7 to 16. FIG. 18 shows a typical host / coprocessor configuration. FIG. 19 shows the address map organization within the coprocessor. FIG. 20 shows a portion of the window for a given example application. Description of the Preferred Embodiments As shown in FIG. 1, a coprocessor chip 1 according to the present invention generally comprises a bidirectional data transfer link to a host computer 2 and a unidirectional data transfer link. It is connected to the data source 3. The preferred embodiment of coprocessor chip 1 comprises a series of eight window modules W0-W8, as shown in FIG. These data modules W0-W8 are logically located between the data router module 12 and the result control logic circuit 13 which are interconnected via an 8-bit data bus connected to the host interface module 14. ing. The data source interface module 15 performs one-way 64-bit data transfer from the data source 3 to the data router module 12. Referring now to FIG. 3, each of the eight data window modules W0-W8 has a window matching logic circuit 16 and a 32-byte shift register corresponding to 32 processing elements PE0-PE31. As shown in FIG. 4, each processing element PE is divided into a latch cell 17 and two comparator cells 18, 19 associated with each other to check individually programmable upper and lower limits. As shown in detail in FIG. 5, each window can be chained to a longer window via the data routing network in the data router module 12, allowing more complex data retrieval. The data router is composed of a 3-level multiplexer, and selects and outputs one of two 8-bit length inputs. The first level multiplexer, which is supplied with an 8-bit long data stream from the data source, consists of a folding multiplexer (upper multiplexing row in FIG. 5), i.e. a multiplexer that folds the data stream in a circle. Each window can be independent of the location where the actual data stream enters the coprocessor chip. The folding multiplexer is connected to a parallel multiplexer (the central multiplexing row in FIG. 5) that duplicates the data stream and simultaneously reads the same data stream in different windows. Finally, the serial multiplexer (the lower multiplexing row in FIG. 5) chooses whether or not each window should be chained to the superwindow. These three multiplexer levels allow input combinations and window chains. Hereinafter, a part of the possible configurations will be described with reference to FIGS. 6 to 17. The input data streams are assigned codes 0 to 7, for example, the stream 0 corresponds to D (7,0) and the stream 1 corresponds to D (15,8). a) Each of the eight data streams is supplied to each window arranged in parallel. This is the simplest routing strategy. Each stream is sent to the corresponding window. This configuration is shown in FIG. 6 and the actual configuration is shown in detail in bold in FIG. b) Supply each of the four data streams to two windows arranged in parallel. Each data stream is paired and sent to two windows arranged in parallel. The streams can be every other dataset 0, 2, 4, 6 or datasets 1, 3, 5, 7, eg stream 0 is followed by stream 1. This configuration is shown in FIG. c) Feed each of the four data streams to two windows arranged in series. This configuration is similar to b), except that each pair of windows is concatenated to form one superwindow of double length. This configuration is shown in FIG. d) Each of the two data streams is supplied to four windows arranged in parallel. The streams are combined in groups of four and sent to two sets of four windows arranged in parallel. The streams can alternately be (0, 4), (1, 5), (2, 6) or (3, 7), eg stream 0 followed by streams 1, 2, 3 Next to 4, streams 5, 6, and 7 are arranged. This configuration is shown in FIG. e) Feeding the two data streams respectively into two groups of parallel windows consisting of two windows arranged in series. As in d), the windows are chained, but the parallelism is reduced. This configuration is shown in FIG. 10, and in FIG. 17 the input streams 2 and 6 and the actual configuration are shown in detail in bold type. f) Each of the two data streams is supplied to four windows arranged in series. This configuration is similar to the configuration of d) except that the windows of each group are linked so as to form one super window that is four times the length of each window. This configuration is shown in FIG. g) Supply one data stream to eight windows arranged in parallel. Each data stream is combined to form one stream and sent to eight windows arranged in parallel. Any of the eight streams can be used as input, treating the entire data storage area as one long 8-bit data file. This configuration is shown in FIG. h) Feeding one data stream to four groups of parallel windows consisting of two windows arranged in series. Similar to g), but each window is chained for a more complex search. This configuration is shown in FIG. i) Supply one data stream to two groups of parallel windows consisting of four windows arranged in series. Similar to g) and h), but chaining more windows to increase complexity. This configuration is shown in FIG. j) One data stream is supplied to eight windows arranged in series. Similar to g), but connects all windows to form a single super window, allowing the most complex searches. This configuration is shown in FIG. Alternative filter and data path configurations are determined by the configuration data loaded into the chip. All configurations are capable of 10 gigabytes of single byte comparisons per second with data routing. However, by trading off the number of simultaneous data paths, complex queries are made, which facilitates mapping a large number of applications on a chip. The coprocessor 11 is typically linked to a computer via a host interface 14, as shown in FIG. The illustrated host computer comprises a disk unit 21, a disk controller 22 associated therewith, a central processing unit or CPU 23, a system memory 24 and a system bus 25. The host interface 14 is based on an 8-bit bidirectional port (HD bus) and read / write cycles are executed synchronously and asynchronously. The host interface itself is controlled by the assertion of the IOR and IOW signals in combination with the CS signal and the specific polarity on the SETA DR line (see Figure 2). The configuration data is stored in the configuration RAM and consists of a total of 828 bytes, enabling a complete reconfiguration within about 100 microseconds. In most systems, the configuration time is determined by the transfer rate from the host computer. When the input / output channel of a personal computer is used, assuming that the transfer rate is IMB / sec, it generally takes 1000 microseconds. Minor changes to the configuration data are made by addressing through an internal address register of the coprocessor, which can further reduce the configuration time. Thus, the reconstruction and the search are performed very quickly, making it possible to search for equal amounts of data on different criteria. In counting mode, the coprocessor accumulates the number of matching data items found on the chip. In reporting mode, the coprocessor issues an interrupt signal when it detects a hit. This signal continues to be sent until the host computer issues an ACK signal or an IOW signal. The internal result position counter is housed in a shadow register (not shown). The configuration data determines whether the chip should stop receiving data if a hit occurs. If the chip is configured to stop the data stream, the DWTD signal (see Figure 2) will be inactive until the ACK signal is sent. If the data stream is programmed to flow uninterrupted despite a match, the counter contained in the shadow register will not be overwritten until the ACK signal is sent. This is advantageous for text searching when hits frequently occur on the text portion containing the desired data. Also, if the problem occurs only in the legitimate part of the text (chapter, section), it is not appropriate to seek an exact detection of its occurrence within that part of the text. The 64-bit synchronous data interface 15 (see FIG. 2) is controlled by a simple handshake procedure. When the coprocessor is ready to receive data, the DWTD signal is sent one clock cycle before the actual data is read. This makes it possible to ensure more appropriate timing when designing the interface. When the data source is ready with data, it issues a DVALID signal. If the DWTD signal was inactive at the last rising clock, the sending of the DVALID signal prevents the data from being read by the coprocessor. Therefore, after sending the DWTD signal and detecting the rising clock edge, the data source should not consider the data transfer completed until it detects the data and the DVALID signal during the first rising clock. Corresponding timing schemes can be implemented for such synchronous and asynchronous read / write functions. If the input stream contains data that is to be interpreted as a numeric value that spans more than one byte, the most significant byte must reach the first in the window. Programming of the chip is done by writing configuration data to different addresses in the host interface. The different parts of the configuration are indirectly addressable. As a result, only a part of the configuration can be changed in a very short time if necessary. It is not necessary to stop the data stream during the reconfiguration, but false matches may occur due to the transient condition that occurs when the configuration is partially written. Also, since the record counter is reset by writing to the corresponding window, problems may arise in the case of misaligned records. Therefore, it is desirable to stop the data stream before changing the configuration. The internal configuration address in the coprocessor consists of the 11-bit address ADR (10,0), which is generated in the internal address register. The eight high-order bits of this register can be loaded via the host interface. The three lower bits are cleared when the upper bits are loaded. Loading is done by setting address bits on the HD bus and sending CS, IOW and SETADR signals simultaneously. The organization of the 11-bit address is shown in FIG. The coprocessor comprises twelve internal modules, each with its own address. The module address consists of the four upper bits in the address and is changed only by writing a new value from the HD bus. The module base address is shown in Table 1. The 7 low-order bits are held in the counter and incremented for each access from the host interface. Thus, in-order bytes within a module can be easily accessed. Module address auto-incrementing is not supported due to holes in the address map between modules. In most modules, offset addresses can be used for more detailed addressing. To access a single byte, the absolute address is calculated as: Address = (module address * 128 (10)) + Offset Address Next, the address register is loaded with a value via the HD interface and then accessed to autoincrement the address register. Read access is easiest because it requires no knowledge of the previous configuration. Each window module consists of:・ Lower limit 32 bytes ・ Upper limit 32 bytes ・ Field delimiter (separator) mask 32 bytes (all bytes, only the least significant bit is important) ・ Match waiting time value 2 bytes ・ Record length value 1 byte Offset for these registers The addresses are shown in Table 2 below. In the actual search, the limit register is loaded with the appropriate value. The field delimiter mask takes 1 at the least significant byte position of each field. Note that the field delimiter mask uses only the least significant bit of each byte. That is, a 1 is written to the delimiter mask byte that matches the processing element PE, and otherwise the last byte of the field is held at 0. The match latency is the number of clock cycles required for the window to perform a hit. Zero match latency means that the hit is reported from the window to the central match logic during the clock cycle that caused the hit. When the matching waiting time is 4, for example, it means that the matching is reported after 4 more cycles, that is, within a total of 5 cycles. The value written in the matching waiting time register is 65535 (10) -the waiting time. That is, for example, the matching waiting time 4 is specified by writing the value 65531 (10) in the register. The routing of the data streams all take the same amount of time, so if the data streams are input to the chip at the same time, the data streams will occur simultaneously at the input of each window (or the first window of the chain). Sending the stream through the chain window introduces a cumulative delay of 32 cycles, which should be taken into account when calculating the match latency. A clock cycle with no data transfer, that is, an inactive DVALID signal does not affect the number of waiting cycles. Therefore, the match latency is measured for data transfers, not physical clock cycles. The record length is used to suppress hits by occasionally matching patterns that do not match record boundaries. By setting the record length to 1, all hits are reported to the central match logic. When the record length is 6, for example, only the matching performed in the sixth data transfer is reported from the window. The byte counting window is reset by every write operation using the module address corresponding to that window. That is, the first executable match is performed for the sixth data transfer after writing the window configuration. The record length value is programmed into the corresponding register in the coprocessor as 256 (10) -record length. Therefore, a record length of 10 (10) is written as 246 (10). The 256-bit hit mask RAM is organized as 32x8 bits as can be seen from the host interface. This 32 bytes is selected by the 5 low order bits in the internal address register, leaving bits 5 and 6 as "don't care" and bits 7 through 10 as the module address 1000 (2). Writing to byte address 0 affects bits 0 through 7 in the 256-bit addressing scheme, the least significant bit in the byte corresponds to bit position 0. Similarly, writing to byte address 4 affects bits 32-39 of the 256-bit addressing scheme. Each window addresses the RAM as 256 x 1 bit. The match signal from the eight windows is used as the address, and the match signal from window 0 represents the least significant address bits. A hit is detected when a 1 is stored in the real location. The module consisting of mode register, result counter, hit pattern, and version register does not have an internal offset address, but is organized as a serial read shift register chain. All writes to this module occur in the mode register, the only writable register in the chain. This affects how the coprocessor acts on hits. In this case, only the 3 lower bits are made to function, and 0 is always written to the other bits. Table 3 describes the mode bits. These bits result in eight combinations of operations, all described in Table 4. When reading from this module, the values are presented in the following order: 1. Result counter, byte 3 (most significant byte) 2. Result counter, byte 2 3. Result counter, byte 1 4. Result counter, byte 0 (least significant byte) 5. Hit pattern 6. Mode 7. All registers, except the version number mode register, are read-only. Not all values need to be read after the first read has started. Sending an ACK or IOW signal to the coprocessor overwrites the value of the result counter and hit pattern with a new hit and accesses the most significant byte of the result counter to initiate a new read (IOW signal is CS Must be qualified with the signal). This is also valid when the INT signal is not transmitted. The result counter counts the number of hits or data transfers that have occurred since the last write to the mode register. Therefore, writing any value to this module will clear the result counter. The counter is 32 bits long and does not exhibit a counter overflow indicator. The hit pattern is the matching pattern reported from each of the eight windows at the last hit. This can be used when programming the hit mask RAM to generate hits for some matching patterns. The pattern that actually caused the hit is read to provide more information that facilitates post-processing. The version register contains a number indicating the version of the current coprocessor. It will be used in later revisions to allow the software to fit into current hardware. The data router configuration module is organized as a shift register with level depth 3 and length 1 byte. These are the bytes that control the multiplexer previously described with reference to FIGS. Each byte is read and written in the following order. 1) Serial multiplexer 2) Parallel multiplexer 3) Folding multiplexer The read operation is destructive. That is, all multiplexer configuration data must be rewritten after being read. However, this is not very important since the multiplexer configuration is only read during system test. The most significant bit of each byte corresponds to the leftmost multiplexer in FIG. In a serial multiplexer, any combination of values is legal. In the other two multiplexers, configurations with 4 or more consecutive bits in one of the multiplexer control bytes are illegal (due to propagation delay). This also applies to cyclic feedback. That is, the multiplexer configuration of C3 (16) is also illegal. The configuration bytes for each of the configurations a) to j) described above with reference to FIGS. 6 to 17 are guaranteed to work and are shown in Table 5 below. The coprocessor chip according to the present invention includes a data path module dedicated to a manufacturing test and performs a read operation for outputting data from the window 7. A preferred embodiment of a chip containing a non-numeric coprocessor according to the present invention is a highly parallel VLSI chip mounted on an expansion card for a personal computer or workstation. Preferably, the chip is a 100-pin PQFP package manufactured by a CMOS (Complementary MOS) process, having TTL (Transistor Transistor Logic) and CMOS compatible inputs and operating on a + 5V power supply. At an operating frequency of 20 MHz, such a coprocessor chip has a sustainable data processing capacity of 160 MB / s and makes a comparison of 10 Giga single bytes per second. Programming Example The following example shows the settings for searching a person in the phone book. FIG. 20 shows a partial configuration of the window for this example. This window reports a person with a surname starting with the letters A to G and a match for a phone number in the range 142000 to 160000. The telephone number is treated as a 6-byte numeric field by setting the appropriate bits in the field delimiter mask. Although the other two fields are also shown in the illustrated window, the field number. 1 and No. If all bits are 1's for 2, they do not make a difference because they are not included in the comparison of more than 1 byte. Bytes not included in the search criteria are set to a "don't care" state that matches all data patterns within the maximum range of FF (16) through 00 (16). Due to the programmed 16-byte record length, no matching is done for data that does not meet record boundaries in the configuration. Further, when only one window is used, the matching waiting time is unnecessary. If the above is the only search criterion, it may be copied to all windows and the hit mask RAM is set so that all positions except position 0 are 1. This causes a match signal to be issued when at least one of the windows has a hit. In addition, the mode value also needs to be set appropriately, for example, Report = 1, Stop = 1, and Blank = 0. Next, the coprocessor generates an interrupt signal for each match, and further reads the match position relating to the search start for each match. Functional Description As shown in FIG. 3, the preferred embodiment of the coprocessor consists of eight data windows, each containing a 32-byte shift register. As shown in FIG. 4, each register element is associated with two comparators that check the upper and lower bounds. Each boundary is individually programmable, allowing data to match within any contiguous interval in the byte range. The two comparators report the match to the matching logic circuit connected to each window. For items larger than 1 byte, combine matches of different bytes. This allows data records of up to 256 bytes to be processed. The data field can be configured up to 8 bytes for any interval test and up to 256 bytes for the equivalence test. Each window reports an individual hit to the central hit mask on the chip. A match of each of the eight windows is used as the address of the 256-bit user programmable RAM. This RAM stores a 1 for any combination of window hits that should be detected as a hit. Being programmable, the user should, for example, be reported even when only one window is hit, be reported when four of eight windows are hit, or all windows are hit You can choose when it should be reported. In general, any logical combination of 8 window hits is a user-defined hit. The chip reports the address of occurrence of all hits detected, or the total number of matches in the data volume. When set to report mode, the coprocessor stores an internal counter containing the position of the detected data in the shadow register on hit. This accumulated display may be read later by the host computer. The shadow register is not overwritten until the host computer confirms the match by sending an ACK signal. Each window is configurable to store hits for a programmable amount of time. This allows a context sensitive search to be performed if an exact match cannot be detected. It follows the coprocessor principle. That is, instead of one (strict) search key, many weak conditions on the required data are used. This feature is especially important for searches in complex and / or large amounts of data. Application Example Creating and maintaining traditional indexes would be obsolete because of the search speed achieved by the search coprocessor in unstructured text. By combining text fragments with wildcards with controlled relative distances, important information can be uniquely identified. Synonyms may be used simultaneously in the search. Below are two different types of simple queries. Q1: "In Shakespeare's work, how often and where does the sentence'take it in what sence thou wilt 'appear?" Q2: "'Jelts','Mitter','Kohl,not'Gorbat'." Find a newspaper article in which at least three of the five (partial) names'Major 'and'Bush' appear. "Q1 type stylistic research cannot be done well with conventional text search systems. It is also well known that indexes require more space than text. The coprocessor according to the given example achieves a sustainable data rate of 160 MB / sec for Q1 type queries. Also, Q2-type complex queries are processed at a sustainable data rate of 20 MB / sec. Pattern matching Various types of features can be extracted from images such as fingerprints, and many combinations of such features can identify an object. Searching among multiple applicants has much to gain from the robust and fuzzy mechanism of this coprocessor. In general, the coprocessor's capabilities are well suited to problems involving partial matching, such as those done in DNA research. Image Archiving The need to store and process different types of images has facilitated technological development in many areas. Efficient image retrieval systems are rapidly becoming indispensable, for example in hospitals, newspaper companies or real estate agents. The image represents a multi-dimensional object with a considerable amount of guidance and additional properties. Database Search Most database systems rely on hierarchical structures and well-defined identifiers. Fuzzy queries with less selective attributes impose severe performance problems on existing systems, but such queries are ideal for this coprocessor which combines all weak constraints during operation. For example, specific research on environmental measurement and chemical databases has shown that there is an inherent potential need for simplification and improved performance. Signal Processing Potential applications include nonlinear filtering, radar target correlation, and abnormal signal detection. Data Networks Potential applications include parasitic monitoring functions, for example to report illegal address ranges or to snap information. Some of the personal computers and workstations with this coprocessor use all the problems inherent in distributed processing systems by using as a data source a network originating from a central data pump that periodically spreads the full amount of data. Can be removed. Disk Controller The coprocessor according to the present invention is an ideal disk controller component. This greatly reduces the need to transfer data to the host computer via the bus by simply limiting the data to the required items. The function of the coprocessor is to provide more advanced "data characteristic" addressing beyond conventional content addressing.

Claims (1)

【特許請求の範囲】 1. 情報処理用の手段を有して、ホストコンピュータ(2)とデータ源(3) とに接続可能な、ファジー情報検索とパターン認識用の非数値コプロセッサ(1 )であって、 前記情報処理手段が、前記データ源(3)からのデータストリームを検査する ために配設した所定数の同時動作可能なウインドウモジュール(W0、W1、. ..)内に編成された複数の内部処理素子(PE0、PE1、...)を備え、 各処理素子が、データストリーム内の1バイト例えば8ビットバイトを、前記 処理素子に割り当てられた所定の個別にプログラム可能な上限値及び下限値と比 較して当該処理素子内に存するバイトの値が前記境界値内にあるかどうかを決定 し、境界値内にあるならば、各ウインドウモジュール(W0、W1、...)内 に設けたウインドウ突合せ論理回路(16)に送出されるヒット信号を生成して 、当該ウインドウモジュール内の異なる処理素子(PE0、PE1)から受信し たヒット信号と相関させ、更に、前記ウインドウモジュール内の所定の突合せの 発生により、ウインドウ突合せ信号を生成する、 ことを特徴とするコプロセッサ。 2. 更に、 アプリケーションの必要性に対応する構成データに応じて、前記データ源(3 )からの別個のデータストリームを、前記同時動作可能なウインドウモジュール (W0、W1、...)に、個別的に、或いは前記ウインドウモジュールが個々 のスーパウインドウ又はスーパウインドウグループ又は全てのウインドウモジュ ールを含む単一のスーパウインドウ等の異なる選定可能なウインドウ構成に連鎖 される態様で、転送するデータルーティング手段(12)、 を備えたことを特徴とする請求の範囲第1項記載のコプロセッサ。 3. 前記データルーティング手段(12)が、異なるレベルで編成されたマル チプレクサのネットワークから成り、各マルチプレクサが、それぞれ好ましくは 8ビット長の二つのデータ入力のうち、一方を選択してその出力に転送可能であ る、ことを特徴とする請求の範囲第2項記載のコプロセッサ。 4.前記マルチプレクサのレベルが、それぞれ、フォールディング、パラレル、 及びシリアルのマルチプレクサレベルから成る、 ことを特徴とする請求の範囲第3項記載のコプロセッサ。 5. 更に、 コプロセッサにロード可能な前記ウインドウ構成の内部記憶用のスタティック ランダムアクセスメモリ(RAM)を備えた、 ことを特徴とする請求の範囲第2項記載のコプロセッサ。 6. 各処理素子(PE0、PE1、...)が、検査すべきバイトの一時記憶 用のラッチセル(17)と、当該処理素子用の前記上限値及び下限値を備えた二 つの比較器セル(18、19)とを備え、 前記比較器セルが、前記ヒット信号を生成するように構成されている、 ことを特徴とする請求の範囲第1項記載のコプロセッサ。 7. 更に、 前記ウインドウ突合せ信号を受信して、プログラム可能な中央ヒットマスクと 比較するように構成された結果制御論理回路(13)を備え、 前記中央ヒットマスクが、ウインドウ突合せの論理組合せの定義をサポートす ると共に、検出された全ての発生のアドレスを報告させる(ヒットアドレスモー ド)か、或いは検査されたデータボリューム内の突合せの総数を報告させる(ヒ ットカウントモード)、 ことを特徴とする請求の範囲第1項記載のコプロセッサ。 8. 各ウインドウモジュール(W0、W1、...)が、前記ウインドウモジ ュール内に存するデータレコードのレコード長値と、前記データレコードのフィ ールドを区切るフィールドセパレータマスクと、プログラム可能な時間の間ヒッ トを記憶するように各ウインドウを設定し得る突合せ待ち時間値と、を含むよう に設計されている、 ことを特徴とする請求の範囲第1項記載のコプロセッサ。 9. 前記ウインドウモジュール(W0、W1、...)の数が8であり、それ ぞれが、8ビット長バイト入力を処理するように設計されると共に、各ウインド ウモジュールに供給されるデータストリームに対応する長さのシフトレジスタを 備えた 32個の処理素子(PE0、PE1、...)から成る、 ことを特徴とする請求の範囲第1項記載のコプロセッサ。 10. 更に、 好ましくは割り込み機能を有する8ビットのインタフェースであって、どのマ イクロプロセッサにもコプロセッサを使用し得るように設計されたホストインタ フェース手段(14)と、 好ましくは64ビットのインタフェースであって、コプロセッサをどの高速デ ータ源即ちRAMバンク、ディスクアレイ、又はネットワークに対しても接続可 能とするデータ源インタフェース手段(15)、 を備え、 好ましくは、64、56、48、40、32、24、16、又は8ビットのデ ータ転送に対してプログラム可能である、 ことを特徴とする前記請求の範囲のいずれか1項に記載のコプロセッサ。[Claims] 1. Host computer (2) and data source (3) having means for information processing A non-numerical coprocessor for fuzzy information retrieval and pattern recognition (1 )   Said information processing means examines the data stream from said data source (3) A predetermined number of window modules (W0, W1 ,. . . ), A plurality of internal processing elements (PE0, PE1, ...)   Each processing element stores one byte in the data stream, for example an 8-bit byte, Ratio to predetermined individually programmable upper and lower limits assigned to processing elements To determine whether the byte value present in the processing element is within the boundary value. If it is within the boundary value, within each window module (W0, W1, ...). To generate a hit signal to be sent to the window matching logic circuit (16) provided in , Received from different processing elements (PE0, PE1) in the window module Correlation with the hit signal, Generate a window match signal, A coprocessor characterized by that. 2. Furthermore,   Depending on the configuration data corresponding to the needs of the application, the data source (3 ), A separate data stream from (W0, W1, ...) Individually or individually Super window or super window group or all window modules Linked to different selectable window configurations, such as a single super window containing Data routing means (12) for transferring in a manner described The coprocessor according to claim 1, further comprising: 3. The data routing means (12) may be organized at different levels. A network of chipplexers, each multiplexer preferably One of two 8-bit data inputs can be selected and transferred to its output The coprocessor according to claim 2, characterized in that: 4. The multiplexer levels are folding, parallel, And serial multiplexer level, A coprocessor according to claim 3, characterized in that: 5. Furthermore,   Static for internal storage of the window structure loadable on the coprocessor With random access memory (RAM), A coprocessor according to claim 2, characterized in that: 6. Each processing element (PE0, PE1, ...) Temporarily stores the byte to be inspected And a latch cell (17) for the processing element, and With two comparator cells (18, 19),   The comparator cell is configured to generate the hit signal, The coprocessor according to claim 1, wherein: 7. Furthermore,   A programmable center hit mask for receiving the window match signal; A result control logic circuit (13) configured to compare,   The center hit mask supports the definition of window match logical combinations. And report the addresses of all detected occurrences (hit address mode). Or report the total number of matches in the examined data volume (see Count mode), The coprocessor according to claim 1, wherein: 8. Each window module (W0, W1, ...) The record length value of the data record existing in the Field separator mask that separates fields and A match latency value that can be set for each window to store Designed to, The coprocessor according to claim 1, wherein: 9. The number of said window modules (W0, W1, ...) Is 8, Each is designed to handle 8-bit long byte inputs and each window C) A shift register with a length corresponding to the data stream supplied to the module Prepared Consisting of 32 processing elements (PE0, PE1, ...), The coprocessor according to claim 1, wherein: 10. Furthermore,   An 8-bit interface having an interrupt function is preferable. A host interface designed to allow coprocessors to be used with icroprocessors. Face means (14),   A 64-bit interface is preferred to allow the coprocessor to Data source, RAM bank, disk array, or network Data source interface means (15), Equipped with   Preferably 64, 56, 48, 40, 32, 24, 16 or 8 bit data. Programmable for data transfer, Coprocessor according to any one of the preceding claims, characterized in that:
JP6509863A 1992-10-16 1992-10-16 Non-numeric coprocessor Pending JPH08502609A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/NO1992/000173 WO1994009443A1 (en) 1992-10-16 1992-10-16 Non-numeric coprocessor

Publications (1)

Publication Number Publication Date
JPH08502609A true JPH08502609A (en) 1996-03-19

Family

ID=19907688

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6509863A Pending JPH08502609A (en) 1992-10-16 1992-10-16 Non-numeric coprocessor

Country Status (6)

Country Link
EP (1) EP0664910A1 (en)
JP (1) JPH08502609A (en)
KR (1) KR950704751A (en)
CA (1) CA2146352A1 (en)
NO (1) NO951401L (en)
WO (1) WO1994009443A1 (en)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NO309169B1 (en) * 1998-11-13 2000-12-18 Interagon As Sokeprosessor
US6711558B1 (en) 2000-04-07 2004-03-23 Washington University Associative database scanning and information retrieval
US7139743B2 (en) 2000-04-07 2006-11-21 Washington University Associative database scanning and information retrieval 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
EP2528000B1 (en) 2003-05-23 2017-07-26 IP Reservoir, LLC Intelligent data storage and processing using FPGA devices
WO2006096324A2 (en) 2005-03-03 2006-09-14 Washington University Method and apparatus for performing biosequence similarity searching
WO2007121035A2 (en) 2006-03-23 2007-10-25 Exegy Incorporated Method and system for high throughput blockwise independent encryption/decryption
US7840482B2 (en) 2006-06-19 2010-11-23 Exegy Incorporated Method and system for high speed options pricing
US7921046B2 (en) 2006-06-19 2011-04-05 Exegy Incorporated High speed processing of financial information using FPGA devices
US7660793B2 (en) 2006-11-13 2010-02-09 Exegy Incorporated Method and system for high performance integration, processing and searching of structured and unstructured data using coprocessors
US8326819B2 (en) 2006-11-13 2012-12-04 Exegy Incorporated Method and system for high performance data metatagging and data indexing using coprocessors
US8879727B2 (en) 2007-08-31 2014-11-04 Ip Reservoir, Llc Method and apparatus for hardware-accelerated encryption/decryption
US10229453B2 (en) 2008-01-11 2019-03-12 Ip Reservoir, Llc Method and system for low latency basket calculation
US8374986B2 (en) 2008-05-15 2013-02-12 Exegy Incorporated Method and system for accelerated stream processing
CA3059606C (en) 2008-12-15 2023-01-17 Ip Reservoir, Llc Method and apparatus for high-speed processing of financial market depth data
EP2649580A4 (en) 2010-12-09 2014-05-07 Ip Reservoir Llc Method and apparatus for managing orders in financial markets
US9047243B2 (en) 2011-12-14 2015-06-02 Ip Reservoir, Llc Method and apparatus for low latency data distribution
US11436672B2 (en) 2012-03-27 2022-09-06 Exegy Incorporated Intelligent switch for processing financial market data
US10121196B2 (en) 2012-03-27 2018-11-06 Ip Reservoir, Llc Offload processing of data packets containing financial market data
US10650452B2 (en) 2012-03-27 2020-05-12 Ip Reservoir, Llc Offload processing of data packets
US9990393B2 (en) 2012-03-27 2018-06-05 Ip Reservoir, Llc Intelligent feed switch
WO2014066416A2 (en) 2012-10-23 2014-05-01 Ip Reservoir, Llc Method and apparatus for accelerated format translation of data in a delimited data format
US9633093B2 (en) 2012-10-23 2017-04-25 Ip Reservoir, Llc Method and apparatus for accelerated format translation of data in a delimited data format
US9633097B2 (en) 2012-10-23 2017-04-25 Ip Reservoir, Llc Method and apparatus for record pivoting to accelerate processing of data fields
GB2541577A (en) 2014-04-23 2017-02-22 Ip Reservoir Llc Method and apparatus for accelerated data translation
US10942943B2 (en) 2015-10-29 2021-03-09 Ip Reservoir, Llc Dynamic field data translation to support high performance stream data processing
WO2018119035A1 (en) 2016-12-22 2018-06-28 Ip Reservoir, Llc Pipelines for hardware-accelerated machine learning

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5051947A (en) * 1985-12-10 1991-09-24 Trw Inc. High-speed single-pass textual search processor for locating exact and inexact matches of a search pattern in a textual stream
US5060143A (en) * 1988-08-10 1991-10-22 Bell Communications Research, Inc. System for string searching including parallel comparison of candidate data block-by-block
GB8925720D0 (en) * 1989-11-14 1990-01-04 Amt Holdings Processor array system

Also Published As

Publication number Publication date
WO1994009443A1 (en) 1994-04-28
CA2146352A1 (en) 1994-04-28
KR950704751A (en) 1995-11-20
NO951401L (en) 1995-06-15
EP0664910A1 (en) 1995-08-02
NO951401D0 (en) 1995-04-10

Similar Documents

Publication Publication Date Title
JPH08502609A (en) Non-numeric coprocessor
CA2309820C (en) Content addressable memory (cam) engine
US6349394B1 (en) Performance monitoring in a NUMA computer
US5758148A (en) System and method for searching a data base using a content-searchable memory
US6389579B1 (en) Reconfigurable logic for table lookup
JP2775549B2 (en) Associative memory cell and associative memory circuit
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
US5230045A (en) Multiple address space system including address translator for receiving virtual addresses from bus and providing real addresses on the bus
EP0622737B1 (en) High performance memory system
EP0341899B1 (en) Content addressable memory array
JPH0685156B2 (en) Address translator
US6499028B1 (en) Efficient identification of candidate pages and dynamic response in a NUMA computer
US7058757B1 (en) Content addressable memory (CAM) devices that support distributed CAM control and methods of operating same
CN108268596B (en) Method and system for searching data stored in memory
US9899088B1 (en) Content addressable memory decomposition
JP2015225675A (en) Associative memory and semiconductor device
US7533245B2 (en) Hardware assisted pruned inverted index component
US5295253A (en) Cache memory utilizing a two-phase synchronization signal for controlling saturation conditions of the cache
US20050172245A1 (en) System and method for providing interface compatibility between two hierarchical collections of IC design objects
US20050055364A1 (en) Hardware assisted pruned inverted index component
JPH04308B2 (en)
JPH03131969A (en) Method and device for retrieving code string
US7577784B1 (en) Full-ternary content addressable memory (CAM) configurable for pseudo-ternary operation
EP1155415B1 (en) Content addressed memories
US5526505A (en) Fast lookahead circuit to identify an item in a large binary set