JP3122185B2 - データベース検索プロセッサ - Google Patents

データベース検索プロセッサ

Info

Publication number
JP3122185B2
JP3122185B2 JP03261857A JP26185791A JP3122185B2 JP 3122185 B2 JP3122185 B2 JP 3122185B2 JP 03261857 A JP03261857 A JP 03261857A JP 26185791 A JP26185791 A JP 26185791A JP 3122185 B2 JP3122185 B2 JP 3122185B2
Authority
JP
Japan
Prior art keywords
search
processor
data
code
field
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP03261857A
Other languages
English (en)
Other versions
JPH04273575A (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 JPH04273575A publication Critical patent/JPH04273575A/ja
Application granted granted Critical
Publication of JP3122185B2 publication Critical patent/JP3122185B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99936Pattern matching access

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、データベース検索プロ
セッサ及びこの検索プロセッサを有したデータ処理シス
テムに関する。
【0002】
【従来の技術】主(メイン)プロセッサからの検索要求
に応じてデータベース検索を行なうのに専用検索プロセ
ッサを備えることが知られている。例えば、検索要求
は、特定フィールドが特定検索値に適合するレコード(r
ecords)を見い出すよう検索プロセッサに尋ねる。専用
検索プロセッサを使用する利点は、ホストの負荷を軽減
することによってホストが別のタスクを自由に実行でき
るという点にある。検索プロセッサの例としては、例え
ば英国特許第1、497、676号に記載されているよ
うなものがある。
【0003】上記英国特許第1、497、676号記載
の検索プロセッサは、検索を行う機能用のみに設計され
た特殊目的のロジックより構成されている。このような
特殊目的のロジックの動作は非常に高速であるが、設計
のコストが高くつき柔軟性に欠ける。要求された検索機
能を行うよう適切にプログラムされた汎用プロセッサ
(例えば、市販の単一チッププロセッサ)を用いて検索
プロセッサが実現できればより好都合である。しかしな
がら、汎用プロセッサを用いて充分に高速の検索速度を
達成するには問題がある。例えば、ディスクファイルか
らのデータをオンザフライ検索(on-the-fly search) す
る場合、すなわち、データがディスクから到達すると実
時間でデータを検索する場合を考えてみる。ディスクフ
ァイルからのデータ速度は典型的には2乃至400万バ
イト/秒である。このデータ速度で検索でき、かつ、種
々の異なった検索要求と種々の異なったレコード型式に
対処するのに一般的に充分であるプログラムを書くこと
は実際上非常に困難であることがわかった。
【0004】
【発明が解決しようとする課題】本発明の目的はこの問
題を克服し又は軽減することにある。
【0005】
【課題を解決するための手段】本発明によれば、(a) プ
ログラマブルプロセッサと、(b) 特定のデータ構造を有
した被検索データを受信する手段と、(c) 検索要求を受
信する手段と、そして(d) 検索要求に応じて個々の検索
要求とデータ構造に特有のマシンコード検索プログラム
を生成するコード発生手段とから構成されるデータベー
ス検索プロセッサが提供される。
【0006】予想される全ての検索要求と予想される全
てのデータ構造の変化に対応しなければならない単一の
汎用検索プログラムを検索プロセッサに与える代りに、
本発明は、検索要求とレコード構造の個々の組合せに特
有な特定目的検索プログラムを生成するランタイムコー
ド(run-time code) 発生器を提供していることがわか
る。従って、生成されたプログラムは汎用プログラムよ
りも検索を速く実行するように最適化できる。その結果
検索要求とレコード構造の予想される変化に起因して起
こる複雑さが、実際の検索が始まる前に各検索要求毎に
一度だけ処理される。従って、検索が実際に行なわれる
ときに、これらの変化を考慮するためにプロセッサは時
間を浪費する必要がない。
【0007】好ましくは、生成されたプログラムはイン
ライン(in-line) シーケンス、即ちループのない命令シ
ーケンスで構成される。従って、例えば、フィールドの
nバイトデータの検索をn回繰返すループを有する代り
に、生成されたプログラムは各々各バイトの比較に用い
られるn個の個別サブシーケンスを有する。インライン
シーケンスの使用は検索プロセッサのより早い動作に貢
献する。
【0008】更に好ましくは、検索される値は生成され
るプログラム中で文字値として表わされる。これによっ
てランタイムで検索値を収集するためにメモリに何回も
アクセスする必要が回避され、検索実行を更に高速化す
る。
【0009】
【実施例】本発明のデータ処理システムの一例を添付図
面を参照して説明する。
【0010】図1を参照するに、データ処理システム
は、ホストプロセッサ10と検索プロセッサ11とを有
する。ホストプロセッサは、本例では標準SCSI(小
型コンピュータシステムインタフェース)バスであるバ
ス12によって検索プロセッサとインタフェースをと
る。バス12は1個あるいはそれ以上のディスクドライ
ブユニット13が接続され、これらユニットはホストプ
ロセッサあるいは検索プロセッサによってアクセス可能
である。
【0011】検索プロセッサ11は第2のSCSIバス
14によって別のディスクドライブユニット15にも接
続されている。従って、これらのディスクドライブは検
索プロセッサによって直接アクセスできる。これらのデ
ィスクドライブはホストプロセッサが検索プロセッサを
介して間接的にアクセスされ、検索プロセッサは2本の
SCSIバス12と14間でメッセージを伝送する。
【0012】プロセッサ10、11とディクスドライブ
13、15の各々は、SCSIバスを介してデータとメ
ッセージを送受信するための標準SCSIインタフェー
スロジックを有する。
【0013】ディスクドライブ13、15は1個または
それ以上のファイルよりなるリレーショナルデータベー
ス(relational databasestructure) 構造を有する。各
ファイルは、各々1個あるいはそれ以上のフィールドよ
りなる一連のレコードより構成されている。各フィール
ドは、例えば、数値、テキスト、データ、時間等を表わ
す多数の異なった型式のうちのひとつをとれる。また、
各フィールドは固定長又は可変長でもよい。固定長フィ
ールドの場合、フィールド長は全てのレコードで同一で
あり、可変長フィールドの場合、各レコード毎に異なっ
ていてよい。可変長フィールドの長さは、フィールドの
スタートでのレングスコードあるいは終端零(terminati
ng zero)で指示できる。
【0014】従って、可能なフィールド型式は例えば以
下のものがある。 NF:数値固定長 TF:テキスト固定長 NV:数値可変長 TV:テキスト可変長
【0015】例えば個人ファイルのレコードは以下のフ
ィールドを有していてよい。 ここで、ファイルは、各々が多数のレコードを有する一
連のページとして記憶される。
【0016】ファイルは、ファイル内のレコードの構造
を特定する連想ファイル記述を有する。ファイル中の全
てのレコードは同一構造を有する。記述は各フィールド
に対して以下の情報をレコードフォーマットで有する。 ・フィールドの型式(NF、TF、NV又はTV) ・フィールド長(固定長フィールドのみ) ・フィールド参照
【0017】レコードの検索を容易にするために、フィ
ールドはセグメントにグループ化されていると考える。
セグメントは、1個以上の可変長フィールドを含まず、
可変長フィールド(もし存在すれば)で終端する一連の
フィールドと定義される。
【0018】例えば、レコードFFVFVVF(ここ
で、Fは固定長フィールド、Vは可変長フィールドを表
わす)は以下のセグメントにグループ化される。 セグメント1 セグメント2 セグメント3 セグメント4 FFV FV V F
【0019】ホストプロセッサ10はシステムの主処理
ワークロードを実行する動作を行なう。ホストがデータ
ベース検索が実行されるのを要求する時、ホストはSC
SIバス12を介して検索プロセッサ11に検索要求を
送る。
【0020】検索要求は、検索が特定のファイルに対し
て行なわれることを特定する。検索要求は、以下の形の
一連の項目よりなる検索仕様を含む。 (フィールドCOMP値)ここで、“フィールド”は検
索されるデータフィールド(セグメント及びオフセッ
ト)への参照を表わし、“値”はデータフィールドと比
較する値を表わし、“COMP”は実行する比較動作
(例えば、等しい、大きい、小さい等)を表わしてい
る。検索仕様の各項目はラベルを有する。検索仕様の各
項目の後には2個のジャンプ(jump)ラベルもあり、ひと
つは比較結果真でありひとつは偽である。これらのラベ
ルは項目間をリンクして比較動作の複雑なAND /OR組合
せを特定するのに使用できる。
【0021】検索プロセッサ11は、ディスクファイル
13、15のひとつから要求されたデータファイルをア
クセスして各レコードに対して特定の比較を行うことに
よって検索要求を実行する。検索結果は、例えば検索仕
様に適合する全てのレコードは、ホストプロセッサに送
り返される。
【0022】「検索プロセッサ」次に、検索プロセッサ
11をさらに詳しく示す図2を参照して説明する。
【0023】検索プロセッサは、本例ではマシンコード
命令を1500万命令/秒の速度で実行できるRISC
(減少命令セットコンピュータ)チップである単一チッ
ププロセッサ20を有する。命令には算術命令、論理命
令、比較命令、および分岐命令がある。比較命令が実行
されると、比較結果に従ってプロセッサ内の多数の内部
フラグのひとつがセットされる。これらフラグはEQ
(等しい)、GT(大きい)、LT(小さい)およびN
E(等しくない)のフラグである。
【0024】プロセッサ20は、32ビットバス22を
介して1メガバイトDRAM(ダイナミックランダムア
クセスメモリ)21をアクセスする。DRAMはプロセ
ッサ20のプログラムとデータを保持する。DRAMの
所定領域は、ディスクファイルからのデータの多数ペー
ジを保持するために、バッファ領域として予約されてい
る。
【0025】バス22はROM(リードオンリメモリ)
26と、2個のSCSIコントローラチップ24、25
と通信を行うI/O(入出力)コントローラ23とに接
続されている。コントローラチップ24は第1のSCS
Iバス12に接続され、コントローラチップ25は第2
のSCSIバス14に接続されている。ROM26は検
索プロセッサがオンされた時あるいはリセットされた時
に検索プロセッサを初期化するブートストラッププログ
ラムを保持する。
【0026】検索プロセッサはI/Oコントローラから
のDMA要求に応じてDRAM21を直接アクセスでき
るDMA(ダイレクトメモリアクセス)チップ27をも
有する。これによって、プロセッサ20の介入なしに、
ディスクからの入力データをDRAMのバッファ領域に
直接ロードできる。これによってプロセッサ20は、例
えば、バッファ領域にすでにロードされたデータを検索
する等の他のタスクを自由に行なえる。データの1ペー
ジが完全にDRAMにロードされると、DMAはプロセ
ッサへの割込み信号を生成して新しいページの処理準備
ができていることをプロセッサに報告する。
【0027】「検索要求処理(ホスト)」ホストが検索
要求を生成すると、ホストは以下の動作を行う。
【0028】初めに、ホストは検索するファイルのファ
イル記述子をフェッチする。ホストは、レコード構造を
規定する多数の記述子アレイをつくるのにこのファイル
記述子を用いる。これらのアレイはレコードの各フィー
ルドに対して以下の情報を保持する。 ・フィールド型式(NF等) ・フィールド長(固定長フィールド用) ・フィールドの位置するセグメント ・フィールドのオフセット(即ち、フィールドの位置す
るセグメントのスタートに対するフィールド位置)
【0029】さらに、ホストはアレイを生成して各セグ
メントに対して以下の情報を記憶する。 ・セグメント内に固定長フィールドが存在するか否か ・セグメント内に可変長フィールドが存在するか否か
【0030】次に、ホストはタスク仕様ブロック(TS
B)をアセンブルし、これを検索プロセッサに渡す。T
SBは検索を行うのに必要な以下の情報を有する ・レコードのセグメント記述 ・レコード内の検索仕様 ・収集する対象
【0031】「検索要求処理(検索プロセッサ)」検索
プロセッサがこのTSBを受信すると、コード発生器を
作動して検索要求を実行するマシンコード検索プログラ
ムを生成する。検索プログラムはDRAM内にアセンブ
ル(“移植”)してプロセッサによって実行される状態
とする。また、コード発生器は以下のボックス30、3
1および32として示す3個の部分より構成されてい
る。
【0032】(ボックス30)コード発生器の第1の部
分は、バッファ領域から連続したレコードを選択するマ
シンコードルーチンを移植する、このルーチンは特定の
検索要求とレコード構造からしばしば独立している。
【0033】(ボックス31)コード発生器の第2の部
分はレコードの個々のセグメントのスタート位置を選択
するマシンコードルーチンGETSEGMENTを移植する。この
コードはレコード構造と検索されるフィールドの両者に
依存している。セグメントのスタート位置は、レコード
の各セグメントを次々に走査して所望のセグメントのス
タートに到達するまで行うことによって決定される。こ
のルーチンは、セグメントを走査中に“通過”してしま
ったら、そのスタート位置は、次のフィールド比較にお
いて必要ならば(そして必要な時にのみ)記憶しておく
ように最適化される。このルーチンのエントリアドレス
はレコード内でルーチンが最後に抜け出た位置とリンク
される。このようにして、比較に関与するフィールドの
数に関係なく、レコードのみが一回通過することを確実
とする。
【0034】多くのデータベース構造においてフィール
ドスタート位置の選択効率はフィールドの比較を行う効
率と同じく重要である。
【0035】(ボックス32)コード発生器の第3の部
分は、現在選択されたレコードを検索するマシンコード
ルーチンを移植する。このルーチンは特定の検索要求と
検索するフィールドの型式に固有なものとして形式され
る。このルーチンは一連のインラインシーケンスのマシ
ンコード命令(即ち、通常は分岐を有しているがループ
のないもの)より構成され、検索値のバイトを文字値と
して有している。
【0036】(ボックス33)コードの発生が完了する
と、検索プロセッサは生成した検索コードをコールして
実行する。検索結果は、検索動作進行と並行してホスト
に戻される。
【0037】「検索ルーチン発生」次に、レコード検索
コードを発生するコード発生器の部分(ボックス32)
をさらに詳しく示す図4を参照する。
【0038】(ボックス40)コード発生器は、まず、
検索要求を走査して、どのフィールドを検索するかの順
番と各フィールドの検索値とを見付ける。
【0039】(ボックス41)コード発生器は、次に特
定された検索順番に従って各フィールドを順次選択す
る。全てのフィールドを選択したら、検索ルーチンの発
生は完了するのでルーチンを抜け出る。
【0040】(ボックス42)各々のフィールドに対し
て、コード発生器は現在選択されているフィールドがラ
ンタイムで直前となり得る全てのフィールド比較(all f
ieldcomparisons)と同じセグメントとなっているかをチ
ェックする。そして、もし同じならボックス44ヘジャ
ンプする。
【0041】(ボックス43)もし現在のフィールドが
同じセグメントでないなら、コードを移植して現在選択
されているセグメントを特定するGETSEGMENTルーチンを
コールする。
【0042】(ボックス44)ここで現在のフィールド
の型式(例えば、NF、TF、NVあるいはTV)に従
って分岐する。
【0043】(ボックス45乃至48)フィールド型式
に従って、多数のコード発生器ルーチン(例えば、NF
検索、TF検索、NV検索及びTV検索)のひとつを行
う。選択されたルーチンは特定のフィールド型式に固有
のものとして形成されたマシンコード命令のシーケンス
を移植して検索値とデータフィールドとを比較する。こ
のコードは、例えばレコードの比較が“誤り”を示し次
のレコードへ分岐を要求される場合のように、分岐を有
している。コード発生器は次にボックス41へ戻り、定
義されたレコード構造の全てのフィールドが考慮される
まで、このループを繰返す。
【0044】コード発生器の動作を説明する一例として
各レコードのフィールドが3、2、4、1の順番で検索
され、全てが検索値と等しくなければならない(即ちブ
ールAND)と特定する検索要求を考慮してみる。フィ
ールド1はセグメント1内であり、フィールド2と3は
セグメント2内であり、フィールド4はセグメント3内
であると仮定する。
【0045】コード発生器は以下の型式のマシンコード
シーケンスを発生する。・GETSEGMENTをコールしてセグ
メント2へのポインタを得る(セグメント2のスタート
までのレコードのみの検討) ・フィールド3の検索 ・NEならば次のレコードへ分岐 ・フィールド2の検索 ・NEならば次のレコードへ分岐 ・GETSEGMENTにリターンしてセグメント3へのポインタ
を得る(セグメント3のスタートまでのレコードのみの
検討) ・フィールド4の検索 ・NEならば次のレコードへ分岐 ・GETSEGMENTにリターンしてセグメント1へのポインタ
を得る(記憶されたスタート位置を収集) ・フィールド1の検索 ・NEならば次のレコードへ分岐
【0046】図4のコード発生器プログラムはループを
有するが、発生したマシンコードは厳密にインラインコ
ードであることがわかる。即ち、検索する4個のフィー
ルドを4回繰返すループを構成する代りに、マシンコー
ドは各フィールドにひとつずつ4個の個別検索シーケン
スより構成される。
【0047】フィールド3と2は両者とも同一セグメン
ト(セグメント2)であるから、これらのフィールド3
と2の検索シーケンス間のセグメントポインタを得る必
要がないことも注目されたい。
【0048】最後に、上例の各ステップ“フィールド3
の検索”等は、コード発生器ルーチン45乃至48の適
切なひとつによって発生したマシンコード命令のシーケ
ンスより構成されていることに注目されたい。
【0049】「TV検索シーケンスの発生」次に、TV
検索コード発生器ルーチン(ボックス48)をさらに詳
しく示す図5を参照する。このルーチンは可変長テキス
トフィールドを検索するように固有のものに形成された
マシンコード命令のシーケンスを移植する。
【0050】(ボックス50)ディスクデータからフィ
ールドの実際の長さを得てセーブするコードを移植す
る。
【0051】(ボックス51)指標値CHARS をLEN−
1にセットする。LEN−1は検索値の長さである。
【0052】(ボックス52)CHARS の値をチェックす
る。
【0053】(ボックス53)CHARS が零より大きいか
又は零(0)に等しいならば、データフィールドの次の
文字と検索値の次の文字とを比較するマシンコード命令
を移植する、データフィールドのアドレスはフィールド
のオフセット値とセグメントのスタートアドレスを加算
して計算する。
【0054】移植されたコードは、検索値の最初の文字
を文字値として有しているので、検索プロセッサはラン
タイムでこの文字の値をルックアップする必要がない。
【0055】(ボックス54)コード発生器は、次に比
較結果に従って分岐するマシンコードを移植する、検索
がいかにして特定されたかによって、この分岐は次のレ
コードを得るための分岐、他のフィールドの比較のため
の前方分岐、あるいは獲得したレコードに戻るための分
岐となる。
【0056】到達したフィールドのエンドに従ってチェ
ックと分岐が移植される。再び検索仕様によって、この
分岐は、次のレコードを得るための分岐、他の比較のた
めの分岐、あるいは獲得したレコードに戻るための分岐
となる。
【0057】(ボックス55)指標CHARS を1減少さ
せ、コード発生器はボックス52に戻りループを行う。
【0058】(ボックス56)CHARS が零より小さくな
ると、コード発生器は、フィールドの検索仕様による比
較結果に従う適切な分岐を行うためにマシンコード命令
を移植する。例えば、この分岐は、次のレコード用のコ
ードへの分岐、他の比較への分岐、あるいは獲得したレ
コードに戻るための分岐となる。もし現在の比較のすぐ
後の比較への分岐であるならば、コードは発生しないの
でドロップスルーが発生する。
【0059】コンパイラの動作を説明する一例として上
述の個人ファイルの“氏名”フィールドが検索値“SMIT
H ”と同じか否か比較する場合を考慮する。TV検索ル
ーチンは以下の型成のマシンコードを発生する。 ・“S”とフィールドの第1の文字を比較する。 ・等しくなければ分岐して次のレコードを得る。 ・フィールドのエンドであれば、次のレコードを得るた
めに分岐する。 ・“M”とフィールドの第2の文字を比較する。 ・等しくなければ分岐して次のレコードを得る。 ・フィールドのエンドであれば、次のレコードを得るた
めに分岐する。 ・--- ・“H”とフィールドの第5の文字を比較する。 ・等しくなければ分岐して次のレコードを得る。 ・フィールドのエンドでなければ、分岐して次のレコー
ドを得る。 ・(比較が成功した時のみここに到達する)。
【0060】マシンコードシーケンスはインラインであ
ることに注目されたい。従って、検索値の5個の文字に
対して5回繰返すループを有する代りに、5回の別個の
比較動作が特定されている。また、検索値の文字は発生
したコード内に文字値として明確に含まれている。
【0061】等しいか否か以外(例えば、等しくない、
大きい、小さい)の比較のために発生するコードも同様
であって詳細な説明は不要である。
【0062】他のフィールド型式(NF、TF、NV)
用の検索シーケンスを発生するコード発生器ルーチン
(ボックス46乃至48)も同様であって詳細な説明は
不要である。
【0063】「システムの他の特徴」好ましくは、コー
ド発生器プログラムはホストから検索プロセッサに動的
にダウンロード(down-loaded) される。ホストは、多数
の異なったデータベース型式(例えば、構造型、原テキ
スト型)の各々に対する多数の異なったコード発生器を
有してもよく、ホストは特定のデータベースに検索要求
を発行する前にこれらのコード発生器のうち適切なひと
つをダウンロードする。
【0064】好ましくは、コード発生器は、例えばC言
語のような、発生するコードを埋込みアセンブラニーモ
ニックで表現し高級言語変数を有する、高級言語で書い
てもよい。各マシンコード命令はオフラインで部分的に
コンパイルしダイナミック変数のランタイム挿入だけを
残しておくこともできる。これによってコード発生のラ
ンタイムのオーバヘッドが減少する。
【0065】
【発明の効果】以上、本発明によると、検索要求とレコ
ード構造の個々の組合せに特有な特定目的検索プログラ
ムを生成するランタイムコード発生器が提供されている
ので、生成されたプログラムは汎用プログラムよりも検
索を速く実行するように最適化できる。その結果、検索
要求とレコード構造の予想される変化に起因して起こる
複雑さが実際の検索が始まる前に各検索要求毎に一度だ
け処理されるので、検索が実際に行なわれるときにこれ
らの変化を考慮するためにプロセッサは時間を浪費する
必要がない。
【0066】また、生成されたプログラムはインライン
シーケンス、即ちループのない命令シーケンスで構成さ
れるので、例えば、フィールドのnバイトデータの検索
をn回繰返すループを有する代りに、生成されたプログ
ラムは各々各バイトの比較に用いられるn個の個別サブ
シーケンスを有する。インラインシーケンスの使用は検
索プロセッサのより早い動作に貢献する。
【0067】更に、検索される値は生成されるプログラ
ム中で文字値として表わされ、これによってランタイム
で検索値を収集するためにメモリに何回もアクセスする
必要が回避され、検索実行を更に高速化することができ
る。
【図面の簡単な説明】
【図1】検索プロセッサを有したデータ処理システムの
ブロック図である。
【図2】検索プロセッサをさらに詳しく示したブロック
図である。
【図3】検索要求に応じて行う検索プロセッサの動作を
示すフローチャートである。
【図4】コード発生器がマシンコード検索プログラムを
生成するためのフローチャートである。
【図5】コード発生器の一部をさらに詳しく示したフロ
ーチャートである。
【符号の説明】
10 ホスト 11 検索プロセッサ 13 ディスク 15 ディスク
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭64−78326(JP,A) 特開 平2−178773(JP,A) 英国特許出願公開2220509(GB,A) (58)調査した分野(Int.Cl.7,DB名) G06F 17/30 110

Claims (13)

    (57)【特許請求の範囲】
  1. 【請求項1】 データベース検索プロセッサであって、 a)プログラマブルプロセッサ(20)、 b)固有のデータ構造を有している検索されるデータを受
    信する手段(25、23)、 c)検索要求を受信する手段(24、23)、及び d)前記検索要求に応じ、該検索要求とデータ構造に固有
    のデータを検索するマシンコード検索プログラムを生成
    するコード発生器手段(30乃至32)を具備すること
    を特徴とするデータベース検索プロセッサ。
  2. 【請求項2】 前記マシンコード検索プログラムは、ル
    ープを含まないマシンコード命令の厳密なインラインシ
    ーケンスよりなることを特徴とする請求項1記載の検索
    プロセッサ。
  3. 【請求項3】 前記検索要求は少なくとも1個の比較す
    る検索値を有し、前記検索プログラムは検索値を文字値
    として含んでいることを特徴とする請求項1又は2記載
    の検索プロセッサ。
  4. 【請求項4】 前記データは一連のデータレコードを有
    し、各レコードは固有のレコード構造を有し、そして前
    記コード発生器手段によって発生した前記検索プログラ
    ムは前記レコード構造に固有のものであることを特徴と
    する請求項1、2又は3に記載の検索プロセッサ。
  5. 【請求項5】 前記検索プログラムは、レコード内の検
    索される各フィールドのスタートを位置づける命令を有
    することを特徴とする請求項1、2、3又は4に記載の
    検索プロセッサ。
  6. 【請求項6】 検索されるデータを記憶するための少な
    くとも1個のディスクファイルユニットよりなるデータ
    ファイル記憶装置と共に用いられることを特徴とする請
    求項1、2、3、4又は5に記載の検索プロセッサ。
  7. 【請求項7】 前記検索プロセッサは、前記ディスクフ
    ァイルユニットからデータを読み出す速度と実質的に同
    一の平均速度で実時間によってディスクファイルユニッ
    トからデータを検索することを特徴とする請求項6記載
    のデータベース検索プロセッサ。
  8. 【請求項8】 データ処理システムであって、 a)ホストプロセッサ(10)、 b)各々固有のレコード構造を有する一連のデータレコー
    ドを検索されるデータベースとして記憶するデータファ
    イル記憶装置(15)、及び c)プログラマブルプロセッサ(20)、前記ホストプロ
    セッサから検索要求を受信する手段(24、23)、及
    び前記検索要求に応じ前記ファイル記憶装置から収集し
    たデータを検索する、該検索要求とデータ構造に固有な
    マシンコード検索プログラムを生成するコード発生器手
    段(30乃至32)とを有するデータベース検索プロセ
    ッサ(11)を具備することを特徴とするデータ処理シ
    ステム。
  9. 【請求項9】 前記データファイル記憶装置は、少なく
    とも1個のディスクファイルユニットを具備することを
    特徴とする請求項8記載のデータ処理システム。
  10. 【請求項10】 前記検索プロセッサは前記ディスクフ
    ァイルユニットからデータを読み出す速度と実質的に同
    一の平均速度で実時間によってディスクファイルユニッ
    トからデータを検索することを特徴とする請求項9記載
    のデータ処理システム。
  11. 【請求項11】 前記コード発生器はホストプロセッサ
    からデータベース検索プロセッサに動的にダウンロード
    されることを特徴とする請求項8、9又は10に記載の
    データ処理システム。
  12. 【請求項12】 前記ホストプロセッサは、複数の異な
    ったデータベース型式の各々に対する異なったコード発
    生器を有し、そして該複数のコード発生器の1つを選択
    し検索要求の発行に対応して該選択されたコード発生器
    をデータベース検索プロセッサにダウンロードしている
    請求項11のデータ処理システム。
  13. 【請求項13】 各マシンコード命令はオフラインで部
    分的にコンパイルされ、動的変数はランタイムで該コン
    パイルされた命令に挿入されることを特徴とする請求項
    8、9、10又は11に記載のデータ処理システム。
JP03261857A 1990-10-24 1991-10-09 データベース検索プロセッサ Expired - Fee Related JP3122185B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB9023096.2 1990-10-24
GB909023096A GB9023096D0 (en) 1990-10-24 1990-10-24 Database search processor

Publications (2)

Publication Number Publication Date
JPH04273575A JPH04273575A (ja) 1992-09-29
JP3122185B2 true JP3122185B2 (ja) 2001-01-09

Family

ID=10684255

Family Applications (1)

Application Number Title Priority Date Filing Date
JP03261857A Expired - Fee Related JP3122185B2 (ja) 1990-10-24 1991-10-09 データベース検索プロセッサ

Country Status (7)

Country Link
US (1) US5226165A (ja)
EP (1) EP0482741B1 (ja)
JP (1) JP3122185B2 (ja)
AU (1) AU640828B2 (ja)
DE (1) DE69130793T2 (ja)
GB (1) GB9023096D0 (ja)
ZA (1) ZA915820B (ja)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5495591A (en) * 1992-06-30 1996-02-27 Bull Hn Information Systems Inc. Method and system for cache miss prediction based on previous cache access requests
US5721898A (en) * 1992-09-02 1998-02-24 International Business Machines Corporation Method and system for data search in a data processing system
US5535414A (en) * 1992-11-13 1996-07-09 International Business Machines Corporation Secondary data transfer mechanism between coprocessor and memory in multi-processor computer system
GB2274182B (en) * 1993-01-09 1996-09-25 Digital Equipment Int Database co-processor
AU7673894A (en) * 1993-08-26 1995-03-21 Electronic Arts, Inc. Data transfer accelerating apparatus and method
GB2298941B (en) * 1993-10-22 1998-02-04 Fdc Inc Database using table rotation and bimapped queries
BR9407962A (pt) * 1993-11-02 1996-12-03 Paracom Corp Aparelho para processamento acelerado de transaçoes com base de dados de computador
US6185559B1 (en) 1997-05-09 2001-02-06 Hitachi America, Ltd. Method and apparatus for dynamically counting large itemsets
US5946679A (en) * 1997-07-31 1999-08-31 Torrent Networking Technologies, Corp. System and method for locating a route in a route table using hashing and compressed radix tree searching
WO1999054833A2 (en) * 1998-04-20 1999-10-28 Recursion Dynamics Inc. Dynamically configurable data storage and processing system optimized for performing database operations
US6658552B1 (en) * 1998-10-23 2003-12-02 Micron Technology, Inc. Processing system with separate general purpose execution unit and data string manipulation unit
US6876991B1 (en) 1999-11-08 2005-04-05 Collaborative Decision Platforms, Llc. System, method and computer program product for a collaborative decision platform
US6711558B1 (en) * 2000-04-07 2004-03-23 Washington University Associative database scanning and information retrieval
US8095508B2 (en) * 2000-04-07 2012-01-10 Washington University Intelligent data storage and processing using FPGA devices
US7139743B2 (en) * 2000-04-07 2006-11-21 Washington University Associative database scanning and information retrieval using FPGA devices
US7716330B2 (en) 2001-10-19 2010-05-11 Global Velocity, Inc. System and method for controlling transmission of data packets over an information network
US7093023B2 (en) * 2002-05-21 2006-08-15 Washington University Methods, systems, and devices using reprogrammable hardware for high-speed processing of streaming data to find a redefinable pattern and respond thereto
US7711844B2 (en) 2002-08-15 2010-05-04 Washington University Of St. Louis TCP-splitter: reliable packet monitoring methods and apparatus for high speed networks
EP2528000B1 (en) 2003-05-23 2017-07-26 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
US7602785B2 (en) 2004-02-09 2009-10-13 Washington University Method and system for performing longest prefix matching for network address lookup using bloom filters
WO2006096324A2 (en) 2005-03-03 2006-09-14 Washington University Method and apparatus for performing biosequence similarity searching
US7702629B2 (en) * 2005-12-02 2010-04-20 Exegy Incorporated Method and device for high performance regular expression pattern matching
US7954114B2 (en) 2006-01-26 2011-05-31 Exegy Incorporated Firmware socket module for FPGA-based pipeline processing
US7636703B2 (en) * 2006-05-02 2009-12-22 Exegy Incorporated Method and apparatus for approximate pattern matching
US7921046B2 (en) 2006-06-19 2011-04-05 Exegy Incorporated High speed processing of financial information using FPGA devices
US7840482B2 (en) 2006-06-19 2010-11-23 Exegy Incorporated Method and system for high speed options pricing
WO2008022036A2 (en) * 2006-08-10 2008-02-21 Washington University Method and apparatus for protein sequence alignment using fpga devices
US20080065591A1 (en) * 2006-09-08 2008-03-13 Leon Guzenda Configurable software database parallel query system and method
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
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
US9779057B2 (en) 2009-09-11 2017-10-03 Micron Technology, Inc. Autonomous memory architecture
EP2649580A4 (en) 2010-12-09 2014-05-07 Ip Reservoir Llc METHOD AND DEVICE FOR THE MANAGEMENT OF CONTRACTS IN FINANCIAL MARKETS
CA2860498A1 (en) * 2011-12-29 2013-07-04 Timo Johannes Rinne Method and apparatus for providing metadata search codes to multimedia
US9990393B2 (en) 2012-03-27 2018-06-05 Ip Reservoir, Llc Intelligent feed switch
US10650452B2 (en) 2012-03-27 2020-05-12 Ip Reservoir, Llc Offload processing of data packets
US10121196B2 (en) 2012-03-27 2018-11-06 Ip Reservoir, Llc Offload processing of data packets containing financial market data
US11436672B2 (en) 2012-03-27 2022-09-06 Exegy Incorporated Intelligent switch for processing financial market data
US8935299B2 (en) * 2012-07-19 2015-01-13 Facebook, Inc. Identifying relevant data for pages in a social networking system
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
US9779138B2 (en) * 2013-08-13 2017-10-03 Micron Technology, Inc. Methods and systems for autonomous memory searching
US10003675B2 (en) 2013-12-02 2018-06-19 Micron Technology, Inc. Packet processor receiving packets containing instructions, data, and starting location and generating packets containing instructions and data
US9252148B2 (en) 2014-01-22 2016-02-02 Micron Technology, Inc. Methods and apparatuses with vertical strings of memory cells and support circuitry
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 (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1497676A (en) * 1974-10-29 1978-01-12 Int Computers Ltd Data processing systems
US4384325A (en) * 1980-06-23 1983-05-17 Sperry Corporation Apparatus and method for searching a data base using variable search criteria
US4464718A (en) * 1982-07-30 1984-08-07 International Business Machines Corporation Associative file processing method and apparatus
US4531186A (en) * 1983-01-21 1985-07-23 International Business Machines Corporation User friendly data base access
US4829427A (en) * 1984-05-25 1989-05-09 Data General Corporation Database query code generation and optimization based on the cost of alternate access methods
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
US4876643A (en) * 1987-06-24 1989-10-24 Kabushiki Kaisha Toshiba Parallel searching system having a master processor for controlling plural slave processors for independently processing respective search requests
JPS6478326A (en) * 1987-09-19 1989-03-23 Fujitsu Ltd Data retrieving system
JP2760794B2 (ja) * 1988-01-29 1998-06-04 株式会社日立製作所 データベース処理方法および装置
US5513332A (en) * 1988-05-31 1996-04-30 Extended Systems, Inc. Database management coprocessor for on-the-fly providing data from disk media to all without first storing data in memory therebetween
GB8816413D0 (en) * 1988-07-09 1988-08-17 Int Computers Ltd Data processing system
JPH0228878A (ja) * 1988-07-19 1990-01-30 Hitachi Ltd データベース処理装置
JPH02178773A (ja) * 1988-12-28 1990-07-11 Toshiba Corp データ処理装置
US5050075A (en) * 1988-10-04 1991-09-17 Bell Communications Research, Inc. High performance VLSI data filter

Also Published As

Publication number Publication date
JPH04273575A (ja) 1992-09-29
DE69130793D1 (de) 1999-03-04
AU640828B2 (en) 1993-09-02
EP0482741A2 (en) 1992-04-29
DE69130793T2 (de) 1999-08-19
GB9023096D0 (en) 1990-12-05
ZA915820B (en) 1992-04-29
EP0482741B1 (en) 1999-01-20
US5226165A (en) 1993-07-06
AU8606891A (en) 1992-04-30
EP0482741A3 (en) 1993-07-28

Similar Documents

Publication Publication Date Title
JP3122185B2 (ja) データベース検索プロセッサ
US6779179B1 (en) Registry emulation
US9405777B2 (en) Registry emulation
JP3461704B2 (ja) 条件コードを使用する命令処理システムおよびコンピュータ
US5815719A (en) Method and apparatus for easy insertion of assembler code for optimization
JPS60176143A (ja) プログラム呼び出し装置
JPH08508358A (ja) リロケート可能なファイルフォーマットのための装置および方法
JPH04225431A (ja) 命令キャッシュ効率を増大するコンピュータ命令をコンパイルする方法
JP2000035893A (ja) デ―タ処理システムの配列の静的初期化方法、デ―タ処理方法、並びにデ―タ処理システム及びその制御手順をコンピュ―タに実行させるプログラムを記憶したコンピュ―タ読み取り可能な記憶媒体
JP2859447B2 (ja) データベースシステム
CN111159062B (zh) 一种缓存数据的调度方法、装置、cpu芯片及服务器
US5065400A (en) Method for editing and executing computer programs
US5513332A (en) Database management coprocessor for on-the-fly providing data from disk media to all without first storing data in memory therebetween
JP2003528390A (ja) インタプリタによりコンピュータプログラムを実行する方法、コンピュータシステムならびにコンピュータプログラムプロダクト
JPS58500778A (ja) 3つの時間多重部分における命令を実行するためのデイジタルコンピユ−タ
JP3495230B2 (ja) エミュレーション処理方式
JP3461185B2 (ja) ロードモジュールへのソースコード行番号登録方法および装置
US20020143748A1 (en) Method and system for providing a generic scalar function
JP2915680B2 (ja) Riscプロセッサ
JPH0731601B2 (ja) 情報処理装置
JP2022023631A (ja) アセンブリ命令変換プログラム、アセンブリ命令変換方法、及び情報処理装置
CN117991994A (zh) 数据读写方法及数据读写装置
JPH04172527A (ja) リンク処理装置
JPS59501133A (ja) 多重処理エレメントのための従属自由コ−ドを発生する機構
JPS59194292A (ja) テストシステム

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20000920

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees