JPH0410649B2 - - Google Patents

Info

Publication number
JPH0410649B2
JPH0410649B2 JP58123535A JP12353583A JPH0410649B2 JP H0410649 B2 JPH0410649 B2 JP H0410649B2 JP 58123535 A JP58123535 A JP 58123535A JP 12353583 A JP12353583 A JP 12353583A JP H0410649 B2 JPH0410649 B2 JP H0410649B2
Authority
JP
Japan
Prior art keywords
data
key
record
length
logic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP58123535A
Other languages
English (en)
Other versions
JPS5924356A (ja
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 filed Critical
Publication of JPS5924356A publication Critical patent/JPS5924356A/ja
Publication of JPH0410649B2 publication Critical patent/JPH0410649B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching

Landscapes

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

Description

【発明の詳細な説明】 〔技術分野〕 本発明はデイスク・フアイル・システムに記憶
されているデータの中でデータ・ベース探索を行
なうための方法に関する。
〔背景技術〕
データ・ベース探索の行なわれる典型的な計算
機システムは、中央演算処理装置(CPU)及び
それに接続された1つ以上の高速ランダム・アク
セス・メモリ(RAM)を有する上位処理システ
ム、並びに同様にCPUに接続された1つ以上の
デイスク・フアイル・メモリを有する。高速の主
記憶は操作プログラムを実行するために用いら
れ、一方低速のデイスク・フアイル・メモリは大
量の「生の」データ即ちベース・データを記憶す
るために用いられる。
データはデイスク・フアイル・メモリ中に一連
のデータ・レコードとして記憶され、その各々は
固定数のバイトから成る。デイスク・フアイル・
メモリ内にあるデータのデータ・ベース探索を実
行したい時は、「キー」即ち探索引数が、デイス
ク・フアイル・メモリから読み出されたデータの
特定部分と比較される。
従来そのようなデータ・ベース探索は、最初に
デイスク・フアイル・メモリから主記憶に所定の
数のデータ・レコードを読取りそしてキー即ち探
索引数とデータ・レコードの特定部分との間の現
実の比較操作を上位処理装置内で行なう事によつ
て実行するのが最も一般的な方法であつた。この
方法は当然に低速であり、従つて費用のかかる操
作である。またデイスク・フアイル・メモリから
主記憶にデータを読取り次に上位処理装置内で比
較操作を行なうには長時間を要し、上位処理装置
はこの時間の間は他のタスクに利用できなかつ
た。
米国特許第3243783号はこの基本型のフアイル
探索システムについて述べている。このシステム
では、レコード群からあるレコードが選択され、
残りのレコードをとばしながら主記憶に読み込ま
れる。しかしながら全探索動作中上位処理装置は
依然として使用中であり他の処理動作には利用で
きない。
米国特許第3350694号は、読み出しトランスデ
ユーサのアクセス・シーケンスを連続的に提供す
るために探索要求がキー記憶装置中で再配列され
る探索システムについて述べている。従つて読み
出しトランスデユーサは、上位処理装置が使用中
になる時間を最小化する順序でデイスク・フアイ
ル・メモリから所望の情報を抽出できる。しかし
ながら前述の場合と同様に、上位処理装置は全探
素動作中他のタススクには利用できない。
同様に米国特許第3408631号は、回転遅延即ち
デイスク・フアイル・メモリからデータを読み取
る時にデイスクを所望の開始位置に回転させるの
に必要な時間による遅延が、最小化されるような
レコード探索システムについて述べている。その
システムによれば、所望のレコードをそれに関連
する電子データ処理装置(EDP)に転送する事
はレコードの1回のトラバース中に行なわれる。
アクセス機構がデイスク・フアイル・ユニツト中
で位置付けられた後、レコード・スタート信号に
より後続するデータ信号と関連EDPに保持され
た探索引数との間の比較プロセスが開始する。実
際の比較はフアイル制御ユニツトで行なわれる。
デイスク・フアイル制御ユニツトは引数とデータ
信号とが等しい時にEDPに信号を送る。さらに
フアイル制御ユニツトは、探索引数とデータ信号
との間の比較が高又は低の時にEDPに信号を送
るように指令される事が可能である。その後
EDPはバルク記憶ユニツトから所望のレコード
の転送を開始する。キー信号がレコード中のデー
タ信号に先行する時、回転遅延は存在しない。従
つてEDPは最小の時間しかレコード探索動作に
関与しない。それにもかかわらず上位処理装置は
レコード探索動作の間は他の処理動作に利用でき
ない。
米国特許第3629860号は磁気デイスク・ユニツ
トに可変長のレコードを配置する装置を開示して
いる。このシステムの1実施例では、装置は各選
択されたレコード位置がその各々の読取/書込ヘ
ツドの位置に来るのに必要な時間の長さを決定
し、かなりの遅延が生じる場合には装置はチヤネ
ル及び制御ユニツトが遅延の間他の仕事を処理す
るのを凍結する。レコード探索動作を完了するた
めの全時間は利用システムに対して減少し得る
が、上位処理装置はレコードが主記憶に読取られ
るとレコード探索動作の全活性期間の間即ちレコ
ードの実際の探索の間は使用中になる。
米国特許第3848235号は、デイスク媒体上のレ
コードがキー・フイルドとデータ・フイルドとの
間にギヤツプのある分離したキー・フイルドを持
たない場合にデイスク記憶装置回転遅延を除去す
る、デイスク駆動装置用の走査制御装置を開示し
ている。これは主記憶中の走査データ・フイール
ドからデイスク記憶駆動装置へ転送される16進数
FFを検出するための解読装置を設ける事によつ
て行なわれる。主記憶中の走査データ・フイール
ドはフイールドの先頭に探索キーを含み、フイー
ルドの残りは16進数FFで充填される。走査動作
は、主記憶に関する探索キーをデイスク・デー
タ・フイールドのキーと比較する時に主記憶から
走査データ・フイールドを一度に1ビツトずつ転
送する事によつて行なわれる。比較はデイスク記
憶駆動装置が16進数FFを検出するまで行なわれ
る。16進数FFは比較動作の完了した事を示し、
動作を走査モードから読取モードにセツトする。
それによつて、デイスク・データ・フイールドの
キーが探索キーに等しい場合、デイスク・デー
タ・フイールドの残りのビツトは探索キーと走査
フイールドとの間の16進数FF及びデイスク・デ
ータ・フイールドから新たに転送されたビツトと
共に主記憶中の走査データ・フイールドに転送さ
れる。単一の16進数FFは探索キーの終端部を明
確化しながら、走査モードから読取モードへ変化
するためのスイツチング時間を吸収するように機
能する。
これら全てのシステムにおいて、いくらかの遅
延は除去されるものの、依然として上位処理装置
はレコード走査動作のほぼ全期間において使用中
であり、処理動作を行なうために利用する事がで
きない。またこれらのシステムは一般に、探索し
たいデータ・レコードの全てを保持するのに充分
な量の主記憶を必要とする。多くの場合、それは
操作プログラム等の実行だけに必要な大きさより
もずつと大きな主記憶容量を必要とする。
〔発明の開示〕
従つて本発明の主な目的は、レコード走査動作
が起る間上位処理装置が自由に他のタスクを実行
できると共にレコードが効率よく走査できるレコ
ード走査方法を提供する事である。
より具体的には、上位処理装置が外部のレコー
ド走査回路に単にレコード探索の実行に必要なパ
ラメータを転送しそして後にレコード走査回路か
ら探索結果を受け取るようなレコード探索方法及
び装置が提供される。所望の方法及び装置におい
て、上位処理装置がレコード走査回路に実行すべ
き探索のパラメータを指令してからレコード走査
回路が探索結果を上位処理装置に報告するまで、
上位処理装置は自由に他のタスクを実行できる。
このデータ・レコード探索方法及び装置におい
ては、データ・レコードの探索を開始するために
最初に外部の制御装置がスキツプ長、キー長及び
データ長の値を特定し、そして長さがキー長に一
致する探索引数を与える。次にデータの直列スト
リームが所定の位置から始まるデイスク・フアイ
ルから受信される。フアイルから受信された各々
のデータ・レコード毎に比較操作が行なわれる。
これは長さがスキツプ長に一致する各レコードの
最初のデータをとばす事によつて行なわれる。こ
の後、キー長及び探索引数と同じ長さを有するデ
ータのキー・フイールドが探索引数と比較され
る。初期比較操作に続いて、データ長によつて特
定される長さの後続するデータがとばされる。次
にキー長に一致するレコードのセグメントが再び
特定の探索引数と比較され、その後再びデータ長
によつて特定される長さのデータがとばされる。
比較及びとばしの動作はレコードの終り又は特定
の数の比較操作が行なわれるまで継読する。
データがデイスク・フアイルから受信される
と、各データ・レコードは記憶される。もしもそ
のデータ・レコード内に「ヒツト」が見い出され
れば、即ち探索引数とキー・フイルドの1つとの
間に比較の一致が起れば、データ・レコード全体
又はその特定部分を外部の制御装置によつて読取
る事ができる。データ・レコード内に「ヒツト」
の起きたデータは記憶し、外部制御装置を経由し
て上位処理装置に通信してもよい。
このように、上位CPU処理時間が可成り節約
されるのに加えて、複数のキー・フイールドをレ
コード内に適宜に散在させているので、レコード
の効率的走査が達成される。
良好な実施例で、探索引数はレコード走査回路
内のメモリに記憶される。次に探索引数はこのメ
モリからバイト毎に読み出され、フアイルから受
信した直列のデータのストリームとビツト毎に直
列に比較される。このために探索引数よりも1ビ
ツト長いシフトレジスタが設けられる。探索引数
は1つの最終ビツト位置を除いた全ビツト位置に
ロードされ、フアイルからのデータは残りの最終
ビツト位置から直列にシフトレジスタにシフトさ
れる。次にシフトレジスタ内のデータのシフトが
起きると共に、レジスタの2つの端部ビツト間で
比較が行なわれる。
〔発明を実施するための最良の形態〕
レコード走査回路を含む計算機システムが第1
図に示されている。上位CPU10は標準的な方
式で主記憶12に接続されている。上位CPU1
0はバス14を経てI/O制御装置16にも接続
される。I/O制御装置16の機能は、上位
CPU10からの(第2図に示すような探索要求
ブロツクの形の)データ走査要求を受け取る事、
レコード走査動作を実行するために必要なデータ
を組み立てる事、並びにバス22を経て多数のデ
イスク・フアイル24A〜24Dに接続された装
置制御ユニツト21及びレコード走査回路20に
レコード走査動作を実行するために必要な情報を
中継する事を含む。
上位CPU10、主記憶12、I/O制御装置
16及び装置制御ユニツト21の構成自体は周知
なのでここでは詳細に説明しない。
データ・レコードの探索を行なうために、上位
CPU10は最初に第2図に示すような探索要求
ブロツクをI/O制御装置16に転送する。この
探索要求ブロツクのI/O制御装置16への転送
後、上位CPU10は他のタスクを実行する事が
できる。即ち探索はそれ以上は上位CPU10を
必要とする事なく完全に行なわれる。探索要求ブ
ロツクのI/O制御装置16への転送後、探索に
関する上位CPU10の次の関与は、レコード走
査回路20からI/O制御装置16を経由して上
位CPU10に探索結果が報告される時に生じる。
従つてかなりの上位CPU処理時間の節約が達成
され、それによりシステム全体に関するスループ
ツトのかなりの改善が得られる。
第2図の探索要求ブロツクは8個のワード0〜
7から構成され、その各々は16ビツトから成つて
いる。(もつとも所望により他のブロツク長及び
ワード長を用いる事もできる。)ワード0は制御
ビツト即ちコマンド・ビツトを含む。例えば、所
望のデータが所在する事を示す「ヒツト」がデー
タ・レコード中に見い出された時、レコード全体
又はその指定された部分だけを戻したい事がある
かもしれない。ワード0のコマンド・ビツトはそ
れらの代替的動作のうちどれが望まれるかを特定
するために使用できる。ワード1はキー数KN及
びスキツプ長SLを含む。それらは特定のデー
タ・レコード中で探索されるべきキーの数の位置
及び探索中にデータ・レコード内でスキツプされ
るべきデータの量に関係している。(これらの用
語の意味は第3A図及び第3B図についての下記
の説明で明確化するであろう。)ワード2及びワ
ード3の一部はフアイル24A〜24Dのどこで
探索が開始されるべきかを特定する相対ブロツ
ク・アドレス(RBA)を含む。RBAに応答して
装置制御ユニツト21はフアイル24A〜24D
にこの位置から始まるレコードの出力を開始する
ように指示する。レコード走査回路20によつて
行なわれる実際の走査探索はこのデータの出力開
始時に始まる。ワード3はレコード・カウントも
含んでいる。レコード・カウントは探索の限界を
特定する。例えばレコード・カウントを1と4096
レコード(各々例えば256バイト)との間で変化
し得るようにする事によつて対応する数のレコー
ドを探索する事が可能になる。ワード4の残余ス
テータス・ブロツク・アドレスは残余ステータ
ス・ブロツクが記憶される主記憶12中の開始位
置を特定する。この残余ステータス・ブロツクに
含まれる情報は探索動作の結果として得られるど
の情報でもよい。ワード5は探索要求ブロツク・
チエイン・アドレスを特定する。このチエイン・
アドレスを用いれば、上位CPU10に割り込み
をかけないでも主記憶12から後続する探索要求
ブロツクを取り出す事ができる。
ワード6のデータ長DL及びキー長KLは各々、
走査される各レコード中の(データ・フイールド
と呼ばれる)とばされるデータのバイト数及びキ
ー即ち探索引数と比較される(キー・フイールド
と呼ばれる)データのバイト数を特定する。この
事は第3A図、第3B図に関連して詳細に説明さ
れている。最後に、ワード7で探索引数が見い出
される主記憶中のアドレスが特定される。この探
索引数は主記憶からI/O制御装置16を経てレ
コード走査回路20に転送され、そこでフアイル
24A〜24Dから直列に受信されたレコード中
のキー・フイルドのデータと比較される。その方
式は下記に詳述する。
第3図を参照すると、各デイスク・フアイル2
4A〜24Dの上のデータ識別子及びデータ・レ
コードの構成が説明されている。T1〜T6は異
なつた平行なデイスク・プラツタ上のトラツクを
表わす。これらのデイスク・プラツタはフアイル
24A〜24Dの1つの1本のスピンドル即ちシ
ヤフト上を同時に同じ速度で回転され、トラツク
T1〜T6は全て同じデータ・シリンダの一部で
ある。各トラツクT1〜T6は一連のデータ識別
子50及びデータ・レコード51から構成され
る。例えば各々256バイトから成る2つのデー
タ・レコード51は各々の識別子50に続いて与
えられる。垂直方向の隣接した識別子コード例え
ばトラツクT2及びT3の識別子コードは、上側
の識別子の終端部が下側の識別子の開始部のすぐ
前に来るように構成されている。また一番下のト
ラツクT6中の識別子の終端部は、最後に走査さ
れたトラツクT1中の識別子の後の2つのデー
タ・レコードに続くトラツクT1の識別子の開始
部のほぼ直下にある。識別子50は第3図に示し
た点線52に沿つて番号順に配列されている。識
別子をそのように配列すると、それらの間の探索
は点線52に沿つて配置された識別子コードを走
査する事によつて迅速に実行できる。第2図の相
対ブロツク・アドレスによつて特定されたものに
対応する識別子が参照番号53の所に配置されて
いれば、識別子53の後のデータ・レコードは点
線52で示される順序で直列にビツト毎に順に読
み出される。
特に第3図の下側を参照すると、単一のデー
タ・レコード51の区分が示されている。第2図
の探索要求ブロツクのスキツプ長SLは、比較動
作を実行する時に無視すべきレコードの最初のデ
ータのバイト数を特定する。スキツプ長の終り
に、キー長KLによつて特定されたレコードのバ
イト数が、探索要求ブロツクのワード7で特定さ
れた主記憶12の記憶装置から初期に読み出され
た探索引数と比較される。最初のキー・フイール
ドにおける初期の比較動作に引き続いて、ワード
6のデータ長DLで特定されたバイト数がスキツ
プされ、その後第2のキー・フイルドを形成する
レコードの次のKL個のバイトが同じ探索引数と
比較される。この動作の後、再びDLバイトのデ
ータから成るデータ・フイールドがスキツプされ
る。この比較及びとばしの手続は「ヒツト」が見
つかるか又は探索要求ブロツクのワード1中のキ
ー数KNで特定される数のキー・フイールドが
「ヒツト」なしに走査されるまで継続する。もし
レコード内に「ヒツト」が見つからなければ、
「ヒツト」が見つかるか又は走査されたレコード
の総数が探索要求ブロツクのワード3で特定され
たレコード・カウントに等しくなるまで同じ比較
−とばしの手続が系列中の次のレコードに対して
行なわれる。
スキツプ長、キー長及びデータ長の各々によつ
て特定された各レコード内のバイト数は完全に任
意的であり、従つて任意のレコードの任意の所望
の部分を調べられる事に注意されたい。本発明に
従つてデータ・レコードの走査が行なわれる方式
は多くの異なつた状況において特に有利である。
例えばある場合(キーに対応する)特定の情報は
データ・レコード内の多くの可能な位置のうちど
こに配置されてもよい。複数キー・フイールドの
使用により、そのようなレコードが効率的に走査
できる。
第4図を参照すると、レコード走査回路20の
詳細なブロツク図が示されている。前述のように
レコード走査回路20は双方向バス18でI/O
制御装置16に結合されている。バス18はキー
数レジスタ26、データ長レジスタ32、キー長
レジスタ31、スキツプ長レジスタ41、キー・
アドレス・カウンタ43及びデータ・アドレス・
カウンタ44のプリセツト入力に結合される。バ
ス18はキー・アドレス・カウンタ43及びデー
タ・アドレス・カウンタ44に、探索動作の開始
時に全0をロードするために使われる。またバス
18は、走査されるレコードのキー・フイルドと
探索引数との間で行なわれる比較の型を決定する
制御ビツトを、その特定の信号線からデータ比較
論理52に転送する。比較は=、≠、≧、≦、>及
び<のいずれでもよい。またバス18は探索動作
の開始に先行して探索引数をキー記憶装置47に
転送するためにキー記憶装置47のデータ入力に
も接続される。
キー数レジスタ26の出力はキー数カウンタ2
7のプリセツト入力に結合され、それによつて処
理中の探索要求ブロツクで特定されたキー数KN
をキー数カウンタ27に転送する。
データ長レジスタ32及びキー長レジスタ31
は一時レジスタ33と共に循環式に接続され、デ
ータは3つのレジスタ中を回転できる。即ちキー
長レジスタ31からのデータは一時レジスタ33
に転送され、一時レジスタ33からのデータはデ
ータ長レジスタ32に転送され、そしてデータ長
レジスタ32からのデータはキー長レジスタ31
に転送される。
スキツプ長レジスタ41の出力はキー・アドレ
ス・カウンタ43のプリセツト入力に接続され
る。キー・アドレス・カウンタ43及びキー長レ
ジスタ31の出力はアドレス比較論理30で比較
され、該回路は比較結果を表わす信号を走査制御
論理29に出力する。
データ・アドレス・カウンタ44は、デイス
ク・フアイルから受け取つたデータをデータ記憶
装置48のどこに記憶するかを指定するために設
けられる。キー記憶装置47及びデータ記憶装置
48は共にRAMを用いて実現でき、所望であれ
ば入出力線を時分割的に用いた同じメモリである
事も可能である。データ・アドレス・カウンタ4
4の出力はスキツプ長レジスタ41及び走査制御
論理29にもフイード・バツクされる。
キー記憶装置47からのデータ出力は第1のバ
ツフア49に供給される。第1のバツフア49の
出力はSERDES(直並列変換器)50の並列入力
に与えられる。SERDESの直列データ入力はデ
イスク・フアイルから受け取つたデータの直並ビ
ツト・ストリームである。第2のバツフア51は
SERDES50から出力データを受け取る。第4
図に示すように、デイスク・フアイルから来る直
列ビツト・ストリーム中のデータのビツトと同期
したパルスを有する信号線74上の「フアイル・
クロツク」信号が直接SERDES50をクロツク
する。一方その信号を周波数分周器54によつて
周波数を8分の1にした信号がバツフア49及び
51をクロツクするのに使われる。
SERDES50の入出力データを転送する他の
可能な方法は、SERDESがフアイル・クロツク
信号でクロツクされ一方レコード走査回路内の動
作は内部的に供給されるクロツク信号でクロツク
される「ハンドシエーク」構成を用いる事であ
る。その場合、SERDES50の両側に2重バツ
フアが設けられ、SERDES50に直接接続され
たバツフアはフアイル・クロツク信号と同期して
クロツクされ、キー記憶装置47及びデータ記憶
装置48に直接接続されたバツフアは内部レコー
ド走査回路クロツクと同期してクロツクされる。
そのようなクロツク方式自体は周知である。
1例として、ここではSERDES50は9ビツ
ト長であると仮定する。その場合第1のバツフア
49のデータ出力はSERDES50の上位8ビツ
トに送られる。SERDES50の下位8ビツトは
第2のバツフア51に並列に転送される。
SERDES50からの0番目及び8番目のビツ
ト(各々最下位及び最上位ビツト)は、=、≠、
≧、≦、>及び<から選ばれたデータ比較動作を行
なうためにデータ比較論理52によつて比較され
る。(データ比較論理52の詳細は第5A図、第
5B図を参照して説明する。)デイスク・フアイ
ルから来たデータとキー記憶装置47からの探索
引数との間に、選択された型のデータ比較動作に
よつて決定されるような「ヒツト」をデータ比較
論理52が検出すると、信号線46に活性(論理
「1」)状態が出力信号「走査セツト」が生じる。
「走査ヒツト」信号は信号線46上の走査制御論
理29及びI/O制御装置16に送られる。
次にレコード走査回路20の動作を詳細に説明
する。
探索動作即ち第2図に示す型の1つの探索要求
ブロツクに応答して行なわれる探索動作の開始時
に、I/O制御装置16は探索要求ブロツクのキ
ー数KNを用いてキー数レジスタ26をプリセツ
トする。次にこの値はキー数カウント27のプリ
セツト入力に転送される。キー長レジスタ31は
値KL−1にプリセツトされる。減算(KL−1)
はI/O制御装置、又はバス18とキー長レジス
タ31の入力との間の別個の減算回路によつて実
行する事ができる。同様にデータ長レジスタ32
はDL−1にプリセツトされる。キー・アドレ
ス・カウンタ43及びスキツプレジスタ41は
256−−SL(即ち(256−SL)(mod256))に初期
設定され、データ・アドレス・カウンタ44は
I/O制御装置16によりバス18を経てゼロに
初期設定される。もしスキツプ長がゼロであれ
ば、走査制御論理29内の走査状態カウンタはキ
ー状態に初期設定される。さもなければ走査状態
カウンタはスキツプ状態にセツトされる。(この
後者の動作は第6図に関して詳細に説明する。) キー数レジスタ26、データ長レジスタ32、
キー長レジスタ31、スキツプ長レジスタ41及
びキー記憶装置47に初期値がロードされると、
スキツプ長のカウントダウン(スキツプ・フイー
ルド動作)が実行される。キー・アドレス・カウ
ンタ43は、走査されるデータ・レコードの系列
の最初のバイトから、データの各バイト毎に1カ
ウントずつ増計数される。カウンタが256(即ち
256 0(mod256))に達する時、走査制御論理2
9をスキツプ・フイールド動作モード(スキツプ
状態)からキー・フイルド動作モード(キー状
態)に変化させるキヤリーアウト信号が発生され
る。
スキツプ・フイールド動作が完了した後、探索
引数の最初の8ビツトがキー記憶装置47から第
1のバツフア49を経てSERDES50の上位8
ビツト位置に転送される。次にデイスク・フアイ
ルからデータが直列式にSERDES50にシフト
入力され、SERDESの0番目と8番目のビツト
位置の間でデータ比較論理52によつて比較が行
なわれる。比較動作を正確に実行するために即ち
同じ桁のビツトの間で比較を行なうためにバツフ
ア49の最上位ビツトは最初SERDES50の8
番目のビツト位置に入力され、またバツフア49
の最下位ビツトはSERDES50のビツト位置1
に入力されなければならない。デイスク・フアイ
ルから直列データを1ビツトずつ受け取るたび
に、バツフア49からの8ビツトは右へシフトさ
れる。こうしてバツフア49から受け取つたデー
タの1ビツトが、デイスク・フアイルから
SERDES50にビツトがシフトされるたびに落
されてゆく。バツフア49から受け取つた最初の
8ビツトについて比較動作が終了すると、べつの
8ビツトがキー記憶装置47からバツフア49を
経てSERDES50の上位8ビツト位置に転送さ
れる。バツフア49からSERDES50への新し
い探索引数の転送と同時に、1バイトのデータ・
レコードに対応するSERDES50の下位8ビツ
トがバツフア51を経てデータ記憶装置48に転
送される。キー記憶装置47からSERDES50
に次の8ビツトの探索引数を転送するために、キ
ー・アドレス・カウンタ43は1カウントだけ増
計数される。またデータ・アドレス・カウンタ4
4も、次の8ビツトのデータ・レコードが
SERDES50からバツフア51を経てデータ記
憶装置48に転送される記憶位置を用意するため
に増計数される。
このデータ転送過程は最初のキー・フイルドの
終了するまで続く。キー・フイルドの長さは値
KL−1によつて指定され、これはキー長レジス
タ31に記憶されていた。アドレス比較論理30
はキー長レジスタ31に記憶されている値KL−
1とキー・アドレス・カウンタ43の出力とを連
続的に比較する。その2つの値が等しいことは、
キー・フイルドの最後のバイトに到達したことを
示す。そのことを検出すると、走査制御論理29
は信号線38上のパルスによつてキー・アドレ
ス・カウンタ43をゼロにレセツトする。(これ
はレコードの最初のキー長の走査中に「ヒツト」
が生じなかつた事を仮定している。「ヒツト」が
検出された時の手続は後述する。)また同時にキ
ー数カウンタ27が信号線38上の同じパルスに
よつて1カウントだけ減数計数される。
次にスキツプ・フイールド動作に似た計数動作
が、走査中のレコードの最初のデータ・フイール
ド部分について行なわれる。これはデータ・フイ
ールド動作又はデータ状態と呼ばれる。データ状
態へ推移するために、一時レジスタ33、データ
長レジスタ32及びキー長レジスタ31の内容
は、キー長の値KL−1が一時レジスタ33にデ
ータ長の値DL−1がキー長レジスタ31に保持
されるように巡回される。次にキー・アドレス・
カウンタ43が、デイスク・フアイルからデータ
のバイトを受け取るごとに1カウントずつゼロか
ら増計数される。キー・アドレス・カウンタ43
の出力値がキー長レジスタ31に記憶されている
データ長の値DL−1に等しくなると、アドレス
比較論理30はその事実を走査制御論理29に知
らせ、それによつて走査制御論理29は次のキ
ー・フイールド動作のためにキー・アドレス・カ
ウンタをリセツトする。
データ状態の間、データはSERDES50に転
送され続ける事に注意されたい。これはデータ・
レコード全体を蓄積するようにデータを連続的に
データ記憶装置48に転送するために行なわれ
る。しかしながらこの状態の間データ比較論理5
2は比較動作を行なう事を禁止される。
次の引き続くキー・フイルド動作期間の開始時
に、一時レジスタ33、データ長レジスタ32及
びキー長レジスタ31の内容は、値KL−1がキ
ー長レジスタ31にデータ長の値DL−1がデー
タ長レジスタ32に入るように再び巡回される。
そして探索引数の最上位ビツトから始まつて、前
述したのと同様の方式でキー比較動作が進行す
る。もしそのキー・フイールド動作期間中に「ヒ
ツト」が生じなければ、レコード走査回路20は
再びデータ・フイールド動作に入る。
上記のようにキー・フイールド動作期間が終了
するたびに、キー数カウンタ27は1カウントず
つ減計数される。もしキー数カウンタ27がゼロ
に至る前に「ヒツト」が生じなければ、ゼロに至
つた時、現在のデータ・レコードに関する走査は
終了し、そのレコードの残りのデータは単にデー
タ記憶装置48にロードされる。
一方もしもレコードのあるキー・フイールドに
ついて「ヒツト」が生じれば、違つた手続が続い
て行なわれる。具体的には、「ヒツト」の存在は
信号線46上のI/O制御装置16及び走査制御
装置29及びスキツプ長レジスタ41に知らされ
る。「ヒツト」が知らされると即座に、スキツプ
長レジスタ41はその時データ・アドレス・カウ
ンタ44の出力に存在する数値を記憶する。従つ
てレコード処理期間の終了時に、I/O制御装置
はバス18を経てデータ記憶装置48からデー
タ・レコードを検索できる。上記のように第2図
の探索要求ブロツクのワード0のコマンド・ビツ
トの内容に依存して、レコード全体又は所定の部
分だけが転送される。またスキツプ長レジスタ4
1に保持されているデータ・アドレス・カウンタ
値はI/O制御装置16によつて「ヒツト」ポイ
ンタとして検索できる。I/O制御装置へのこの
型の転送は周知であり、これ以上の説明は省略す
る。
第5A図及び第5B図には、データ比較論理5
2の詳細が示されている。ラツチL0〜L2、7
0〜72は、走査中のデータ・レコードの指定さ
れたキー・フイールドに対して比較動作=、≠、
≧、≦、>及び<のうちのどれを実行するかを決定
するバス18からの3ビツトを記憶するために設
けられる。デコーダ73はラツチ70〜72に記
憶されたビツトの状態に依存して、記号=、≠、
≧、≦、>及び<識別される信号線のうち1本を論
理「1」で付勢する。所望であれば、データ・バ
ス18の6本の信号線から情報を受け取るように
6個のラツチを設け、所望の比較動作を選択する
ために各走査動作に関して1つだけのラツチを付
勢する事ができる。このようにすればデコーダ7
3は除去できる。
デコーダ73からの種々の出力は対応する
ANDゲート80〜85の第1の入力に結合され
る。SERDES50からの0番目及び8番目の出
力ビツト(ビツト0及びビツト8)並びにそれら
の補数(ビツト0及びビツト8)は比較論理52
に供給される。特にビツト0及びビツト8は
ANDゲート86の2つの入力に加えられ、ビツ
ト8及びビツト0はANDゲート87の入力に加
えられる。両ANDゲート86及び87の他方の
入力には、デイスク・フアイルから受信されるデ
ータ・ビツトと同期した信号線74上のフアイ
ル・クロツク信号が加えられる。その相対的タイ
ミングは、SERDESからの出力データが安定な
時にパルスが論理「1」状態を取るように調整さ
れている。信号線145上の走査状態カウンタか
らのキー状態信号はインバータ146で反転さ
れ、キー状態の時以外はラツチ88及び89をリ
セツト状態に保つためにそれらのリセツト入力に
加えられる。ANDゲート86及び87の出力は
各々ラツチ88及び89のセツト入力に加えられ
る。信号CMPR LTCH RST(比較ラツチ・リセ
ツト)はラツチ88及び89をリセツトする。こ
の信号を発生させるための回路は第5B図に示さ
れている。
ラツチ88の反転出力はANDゲート87の1
入力に接続され、一方ラツチ89の反転出力は同
様にANDゲート86の1入力に接続される。ま
たラツチ88の反転出力はANDゲート80及び
83の入力に接続され、ラツチ88の非反転出力
はANDゲート84及びORゲート90の入力に接
続され、ラツチ89の反転出力はANDゲート8
0及び82の入力に接続され、そしてラツチ89
の非反転出力はANDゲート85及びORゲート9
0の入力に接続される。ORゲート90の出力は
ANDゲート81の第2の入力に接続される。
ANDゲート80〜85の出力はORゲート91で
一緒にORされ、その出力はD型フリツプフロツ
プ・ランチ92のデータ入力に接続される。ラツ
チ92は第5B図の回路で作られるHIT LTCH
CLK信号(ヒツト・ラツチ・クロツク)により
クロツクされる。ラツチ92のリセツト入力には
I/O制御装置16からのリセツト信号が接続さ
れる。
1つのレコード走査動作に関してANDゲート
80〜85の1つだけが付勢される。例えば
「=」型の比較を行ないたい場合、ANDゲート8
0が付勢される。この場合「ヒツト」の起るのは
ビツト0とビツト8がキー・フイールド全体につ
いて常に同じ場合なので、ANDゲート86及び
87の出力はキー・フイールド全体にわたつて連
続的に論理「0」であり、従つてラツチ88及び
89の反転出力は論理「1」状態にある。ラツチ
88及び89からの論理「1」の2つの値並びに
デコーダ73からの「=」出力はキー・フイール
ドの長さ全体にわたつて全て存在し、従つてキ
ー・フイールドの終了時にも存在する。従つて
ANDゲート80はキー・フイールド動作期間の
終了時にORゲート91を経てラツチ92に論理
「1」を出力する。キー・フイールド動作期間の
終了時に信号線38上のEOKFパルスがラツチ9
2をクロツクし、その出力を論理「1」状態に
し、信号線46上に「走査ヒツト」信号を出させ
る。この信号はレコード走査動作の残りの期間中
活性状態に留まる。
他の例としてデコーダ73の「>」出力が付勢
される場合、ANDゲート84が選択される。も
し走査されるデータ・レコードのキー・フイール
ドの値が探索引数よりも実際に大きければ、キ
ー・フイールドのビツトの順序正しく配列された
系列においてビツト0がビツト8に等しくならな
い最初の時、ビツト0は論理「1」状態になけれ
ばならない。この事が起る前の直列ビツト・スト
リームにおいて、ビツト0はビツト8と同じであ
り、従つてANDゲート86及び87の出力は連
続的に論理「0」である。ビツト0が論理「1」
になり一方ビツト8が論理「0」であると即座に
ANDゲート86の出力が論理「1」になり、ラ
ツチ88の非反転出力を論理「1」状態にする。
ラツチ88はキー・フイールドの走査終了時まで
この状態を保つ。ANDゲート87に接続された
ラツチ88の反転出力からの論理「0」信号は、
そのキー・フイールド動作期間中にANDゲート
87の出力が論理「1」状態になるのを防止す
る。従つてビツト8が論理「0」状態の時にビツ
ト0がひとたび論理「1」状態になれば、AND
ゲート84の入力に論理「1」が加えられ、これ
はそのキー・フイールド動作期間の終了時まで維
持される。従つてANDゲート84の出力に与え
られた論理「1」はORゲート91を経てラツチ
92のD入力に加えられ、キー・フイールドの終
了時にラツチが信号EOKFによつてクロツクされ
る時に「走査ヒツト」信号を生じさせる。
残りの比較型≠、≧、≦及び<の各々についても
適当な場合に「走査ヒツト」信号が発生する事が
同様に確認できる。
第5B図に、第5A図で用いられる
CMPRLTCH RST信号及びHIT LTCH CLK
信号を発生させる回路が説明されている。7ビツ
トのリング・カウンタ151が設けられており、
これは信号線74上のフアイル・クロツク信号で
クロツクされる。リング・カウンタ151は従つ
て信号ビツト0、ビツト1…ビツト7を出力し、
それらはフアイルからのバイト中の対応番号の付
けられたビツトがSERDES50に入力される時
に論理「1」状態になる。D型ラツチ152は走
査制御論理29から信号線55を経由してキー状
態信号を受け取る。後述するようにこの信号はキ
ー・フイールド動作期間中は論理「1」状態にあ
る。ラツチ153及び154はラツチ152に続
いて直列式に結合されている。ラツチ153はビ
ツト0でクロツクされ、ラツチ154はビツト7
でクロツクされる。この構成を用いると、バツフ
ア49がSERDES50に転送する準備のできた
キー・バイトを含む時にラツチ153の非反転出
力は論理「1」になり、SERDES50がデイス
ク・フアイルから受信したキー・データの8ビツ
ト全体を含む時にラツチ154の非反転出力が論
理「1」になる。
CMPR LTCH RST信号はANDゲート156
を用いて、ラツチ154の反転出力とリング・カ
ウンタ151のビツト1出力との論理積を取る事
によつて形成される。HIT LTCH CLK信号は
ANDゲート157を用いて、リング・カウンタ
151のビツト7出力、ラツチ154の非反転出
力及びORゲート155の出力の論理積を取る事
によつて形成される。但しORゲート155はラ
ツチ153の反転出力及びレコードの最後のバイ
トに関して論理「1」状態を取るデイスク・フア
イルからの最後バイト信号の論理和を取る。
ANDゲート157の出力は、最後のキー・バイ
トを比較した後にラツチ88及び89が安定しそ
の出力がANDゲート80〜85及びORゲート9
0を伝わつて走査ヒツト・ラツチ92の入力に到
達する事を可能にするのに充分な時間、遅延回路
158によつて遅延される。ラツチ152〜15
4は、ORゲート159を用いてI/O制御装置
16からのリセツト信号及び走査制御論理29か
らのロード・パルスの論理和を取つた信号により
リセツトされる。
次に第6図に示した走査制御論理29の詳細を
説明する。
キー長レジスタ31及びキー・アドレス・カウ
ンタ43からのデータ出力はアドレス比較論理3
0の対応する比較入力ポートに加えられる。アド
レス比較論理30はデイジタル比較器で実施さ
れ、2つの入力が等しい時に論理「1」状態の出
力を出す。またキー・アドレス・カウンタ43の
データ出力は、キー・アドレス・カウンタの出力
が255の時に論理「1」状態の出力信号を発生す
るデコーダ101にも加えられる。信号線28上
のキー数カウンタ27の出力は、そのカウント出
力がゼロになつた時に論理「1」状態の出力を発
生するデコーダ102の加えられる。データ・ア
ドレス・カウンタ44の出力は、信号線42から
デコーダ103に加えられる。デコーダ103は
データ・アドレス・カウンタ44の出力が255
の時に出力線103Aに論理「1」信号を与え、
データ・アドレス・カウンタ44の出力が254の
時に信号線103Bに論理「1」信号を与える。
同様に信号線45上のスキツプ長レジスタ41か
らの出力は、その値がゼロの時に論理「1」を出
力するデコーダ114に入力される。
ANDゲート106〜〜111、ORゲート11
5〜117及びインバータ104,105,11
2から構成されたデコーダ回路が設けられる。
ORゲート115〜117の出力は走査状態カウ
ンタ120の2つのラツチ121及び122に接
続される。最後に、走査状態カウンタ120のラ
ツチ121及び122の出力はANDゲート12
4〜126の入力に接続され、その出力はレコー
ド走査回路20がスキツプ状態、キー状態及びデ
ータ状態の時にそれぞれ論理「1」状態になる。
信号線35,36及び37上の、キー長レジス
タ31、データ長レジスタ32及び一時レジスタ
33の間でデータのシフトを起こすための回転ス
トローブ・パルスはANDゲート113,119
及び127〜129、ORゲート118及びラツ
チ123から成る回路によつて発生される。第7
図のクロツク発生回路によつて作られたクロツク
信号CLK1,CLK2及びCLK3が図のように
ANDゲート127〜129の入力に接される。
キー数カウンタ27及びキー・アドレス・カウ
ンタ43のロード並びにデータ・アドレス・カウ
ンタ44のリセツトを生じさせる。信号線40上
の一般ロード・パルスを発生させる回路はAND
ゲート131,132及び134並びにラツチ1
33を含む。
第7図は種々のクロツク信号CLK0〜CLK3
の間のタイミング関係及びクロツク発生回路を示
す図である。これらの信号は信号線74上のフア
イル・クロツクに同期された主発振器98及びク
ロツク発生器99によつて作られる。発振器98
はレコード走査動作の開始時にI/O制御装置1
6からのエネーブル・クロツク信号によつてクロ
ツク信号を発生する事を可能にされる。キー・ア
ドレス・カウンタ43はCLK1信号でクロツク
され、データ・アドレス・カウンタ44はCLK
2信号でクロツクされ、キー記憶装置47は
CLK2信号でクロツクされ、そしてデータ記憶
装置48はCLK3信号でクロツクされる。これ
らの接続は第4図に示されていないが、これは図
面を煩雑にするのを避けるため、及びクロツク信
号接続はいくぶん任意的であつて実際に用いられ
るデバイスの速度等の因子を考慮して変更し得る
からである。信号CLK0〜CLK3の間に示され
るタイミング関係を与えるような回路の構成は周
知なので、これ以上の説明は省略する。
第9A図〜第9E図のタイミング図と同時に第
6図の回路の動作を説明する。
レコード走査動作の開始時にI/O制御装置1
6によつてリセツト・パルスが加えられる。OR
ゲート115及び117を経て加えられるこのパ
ルスはラツチ121及び122を共にリセツトす
る。ANDゲート124〜126でデコードされ
たラツチ121及び122の出力は、ANDゲー
ト124の出力に論理「1」を、ANDゲート1
25及び126の出力に論理「0」を発生し、ス
キツプ状態信号を発生する。
SL=0であれば即ちレコード走査動作の開始
時にスキツプされるデータがなければ、I/O制
御装置16からリセツト・パルスの次にセツト・
パルスが加えられ、走査状態カウンタ120をキ
ー状態にする。さもなければ即ちSL≠0であれ
ば、リセツト・パルスのみが加えられ、走査状態
カウンタをキー状態にする。
スキツプ状態の時、キー・アドレス・カウンタ
43はSERDES50によつてデータのバイトが
受け取られるごとに1カウント増計数される。
256−SL(mod256)の値に初期設定されたキー・
アドレス・カウンタ43が255(mod256)のカウ
ントに至ると、デコーダ101の出力に論理
「1」が発生し、ANDゲート108の1入力に加
えられる。キー数カウンタはその時ゼロに到達し
ていない(走査されるべきキーの数はゼロよりも
大きいと仮定する)ので、インバータ105の出
力に接続されたANDゲート108の入力にも論
理「1」が加えられている。またANDゲート1
08の第3の入力に加えられるスキツプ状態信号
も論理「1」状態である。従つてANDゲート1
08の第4の入力に次のCLK0パルスが入力さ
れる時、パルスがANDゲート108から出力さ
れORゲート116を経てラツチ122のセツト
入力に至る。これはラツチ122の状態を変化さ
せ、それによつて走査状態カウンタ120のラツ
チの出力をデコードするANDゲート124〜1
26に論理「0」のスキツプ状態信号、論理
「1」のキー状態信号及び論理「0」のデータ状
態を生じさせる。この遷移は第9A図のタイミン
グ図に示されている。
キー・アドレス・カウンタ43はクロツクされ
続ける。キー状態に達した後のその最初のカウン
ト値は(第9A図に示すように)ゼロである。こ
の状態に続いて、キー・アドレス・カウンタは
SERDES50に8ビツトのデータがロードされ
るごとに1カウントずつ増計数される。従つて探
索引数はキー記憶装置47からバツフア49A及
び49Bを経てSERDES50に順次にバイト単
位で読み出され、デイスク・フアイルから来たデ
ータと比較される。
キー状態において、キー・アドレス・カウンタ
43の増計数された値がキー長レジスタ31に記
憶された値KL−1になる時、アドレス比較論理
30によつて論理「1」が出力され、ANDゲー
ト106の入力に加えられる。ANDゲート10
6の他方の入力にはキー状態信号が加えられる。
第9B図に示すように、CLK0信号の次のパル
スを受け取つた時、ANDゲート106によつて
パルスが出力される(これは前述のEOKF信号で
ある)。このパルスは信号線38に加えられ、走
査状態カウンタ120のラツチ121をセツト
し、キー数カウンタ27を減計数し、キー・アド
レス・カウンタ43をゼロにリセツトする。
最初のキー・フイールドの走査中にデータ・レ
コードの終端に達しなかつたとすると、キー数カ
ウンタ27は1カウント減計数されキー・アドレ
ス・カウンタ43はゼロにリセツトされる。さら
に走査状態カウンタ120はデータ状態信号を付
勢するようにセツトされる。この時後続するデー
タ・フイールド動作期間のためにデータ長の値
DL−1をキー長レジスタ31に記憶させるため
に、キー長レジスタ31、データ長レジスタ32
及び一時レジスタ33の間で数値を回転させる必
要がある。この回転を行なうためにORゲート1
18、ANDゲート119及びラツチ123を利
用してANDゲート127〜129の出力に回転
ストローブ1〜3の信号を発生させる。これらの
信号の発生はORゲート118の一入力の加えら
れるEOKFパルスによつて開始される。ORゲー
ト118を通過したパルスはラツチ123をセツ
トし、このラツチはCLK0の次のパルスがAND
ゲート119に加えれられラツチを再び論理
「0」状態にセツトするまで論理「1」を出力す
る。ラツチ123の出力が論理「1」状態の間、
ANDゲート127〜129は各々対応するクロ
ツク信号CLK1,CLK2,CLK3の1つのパル
スを通過させる事ができる。それらの信号によつ
てレジスタ31,32及び33のデータが適当に
回転されると、データ・フイールド動作が始ま
る。
データ・フイールド動作状態において、キー・
フイールド動作状態と同様にキー・アドレス・カ
ウンタ43のカウント値とキー長レジスタ31に
記憶された値との間で連続的に比較が行なわれ
る。但しこの場合キー長レジスタ31に記憶され
ている値は実際にはデータ長DL−1である。
キー・アドレス・カウンタ43によつて実行さ
れるデータ長のカウントがキー長レジスタ31に
記憶された値DL−1に等しくなる時、アドレス
比較論理30から論理「1」が出力され、AND
ゲート109の1入力に加えられる。キー数カウ
ンタがゼロに達せず且つ以前に「ヒツト」が生じ
ていないと仮定すると、インバータ104及び1
05に接続されたANDゲート109の入力は論
理「1」状態にある。従つて信号CLK0の次の
パルスが生じる時、ANDゲート109によりOR
ゲート115及び116を経てラツチ121及び
122の各々リセツト入力及びセツト入力にパル
スが送られる。次にラツチ121及び122のデ
コードされた出力が再びキー状態を表現し、従つ
てANDゲート125からのキー状態信号が論理
「1」になり、一方スキツプ状態及びデータ状態
の信号は論理「0」になる。この動作のシーケン
スは第9D図のタイミング図に示されている。こ
のようにキー状態及びデータ状態の動作の同じ系
列が、「ヒツト」が生じるか又はレコードが終了
するまで行なわれる。
いずれかのキー・フイールドで「ヒツト」が起
きると、インバータ104からANDゲート10
9に加えられる論理「0」によつてANDゲート
109が禁止され、そのために走査状態カウンタ
は次のデータ・フイールド動作の後にキー状態に
戻れなくなる。
第9E図のタイミング図を参照すると、デー
タ・レコードの終了時にデータ・アドレス・カウ
ンタ44が255のカウントに達する時、信号線1
03A上の論理「1」状態はCLK0信号のパル
スがANDゲート107及びORゲート115を通
過して走査状態カウンタ120のラツチ121を
リセツトする事を可能にする。従つて次のレコー
ド走査動作の開始のために走査状態カウンタ12
0はスキツプ状態にセツトされる。
もし走査しているキー・フイールドの終端部に
到達する前にレコードの終りに達すると、走査状
態カウンタ120はスキツプ状態信号を付勢する
ようにセツトされる。この場合データ・アドレ
ス・カウンタが255のカウントに達すると、デコ
ーダ103から信号線103Aが論理「1」状態
になる。この信号はANDゲート111の1入力
に結合される。もしスキツプ長がゼロ以外のもの
であれば、インバータ112によつてANDゲー
ト111の第2の入力に他の論理「1」が加えら
れる。CLK0信号の次のパルスを受け取つた時、
ANDゲート111からの出力パルスはORゲート
117を経てラツチ122のリセツト入力に結合
される。従つて走査状態カウンタ120は、次の
レコード走査動作のためにスキツプ状態信号を付
勢しキー状態信号及びデータ状態信号を滅勢する
ような条件にセツトされる。
またデータ・レコードの終了時に、データ状態
であれば、回転ストローブ1〜3信号を発生させ
る必要がある。(もしキー状態の時にデータ・レ
コードの終りに達すると、これは行なわれない。)
これはデータ・アドレス・カウンタのカウントが
254の時に行なわれる。この場合デコーダ10
3からの出力線103Bが論理「1」状態にな
り、それにより論理「1」がANDゲート113
の1入力に与えられる。データ状態信号が「1」
状態の場合、CLK0信号の次のパルスはANDゲ
ート113及びORゲート118を通過しラツチ
123をセツトする。そして前述のように回転ス
トローブ信号が発生する。
さらにデータ・レコードの終了時に、次のスキ
ツプ・フイールド計数動作を行なう準備をするた
めに、キー数レジスタ26からキー数カウンタ2
7に及びスキツプ長レジスタ41からキー・アド
レス・カウンタ43にロードするための一般ロー
ド・パルスがANDゲート134の出力に発生す
る。信号線40上の一般ロード・パルスは、デー
タ・アドレス・カウンタが255のカウントに達
しその結果信号線103Aに論理「1」が存在す
る時に発生する。信号線103A上の信号が最初
に論理「1」になる時、CLK0信号の次のパル
スがANDゲート131を通過しレコード終了ラ
ツチ133をセツトする。従つてANDゲート1
32も付勢される。次にCLK0信号の次のパル
スがANDゲート132を通過しラツチ133を
リセツトする。ラツチ133の出力はANDゲー
ト134でCLK2信号との論理積を取られ、一
般ロード・パルス信号を発生する。
データ・レコード走査動作の特殊な場合には、
スキツプ長がゼロの時即ちデータ・レコード中の
デイスク・フアイルから受け取つたデータの最初
のバイトがキー・フイールドの一部である時であ
る。この場合レコード走査動作中にスキツプ状態
は決して生じない。この場合デコーダ114から
の出力は論理「1」状態にあり、ANDゲート1
11はインバータ112の「0」出力により禁止
される。これはスキツプ状態への転移を阻止す
る。またANDゲート110の入力にはデコーダ
114から論理「11」が加えられる。従つてデー
タ・レコードの終了時にANDゲート110の他
方の入力に信号線103Aから論理「1」が加え
られる。信号線103Aが論理「1」状態になつ
た後、CLK0信号の最初のパルスが来ると、パ
ルスはANDゲート110及びORゲート116を
通過してラツチ122をセツトする。このように
してスキツプ状態を通る事なく直接的にキー状態
が得られる。
本発明のレコード走査探索を行なう方法及びレ
コード走査回路の動作が第8A図〜第8C図の流
れ図に要約されている。第8A図の流れ図の開始
位置において(ここで種々の初期値が全てセツト
されていると仮定する)、走査されるデイスク・
フアイル・セクタがI/O制御装置16及び装置
制御ユニツト21によつて最初に位置付けられ
る。この後、走査されるレコードの系列の最初の
バイトが第1のバツフア49を経てSERDES5
0にロードされる。このデータはSERDES50
に直列にシフトされる。もし回答がキー状態にな
ければ、SERDES50への直列データのシフト
は8ビツトがそこにロードされるまで進行する。
この時SERDESからデータの最初のバイトがバ
ツフア52を経てデータ記憶装置48にロードさ
れる。
次に第8B図の流れ図の点4の始まりに示すよ
うに、もし回路がまだスキツプ状態であつてキ
ー・アドレス・カウンタの内容が255でなけれ
ば、キー・アドレス・カウンタ43及びデータ・
アドレス・カウンタ44は1カウント増計数され
る。データ・アドレス・カウンタ44のゼロ以外
の出力によつて示されるようにデータ・レコード
の終りに達していない場合、手続は第8A図に示
す点2に戻りキー記憶装置からSERDESに他の
バイトが転送される。
一方スキツプ状態においてキー・アドレス・カ
ウンタが255に到達すると、走査状態カウンタ
がキー状態にセツトされ、その後キー・アドレ
ス・カウンタがゼロ・カウントに達し、キー状態
計数動作が始まる。データ・アドレス・カウンタ
は再び1カウントずつ増計数される。
キー状態において、回路動作は点4から点2に
移る。キー状態になつた後にSERDESにデータ
の最初のバイトが導入された時にキーアドレス・
カウンタの内容がキー長レジスタに記憶された値
に等しくないならば、第8B図の点6に移行し、
キー・アドレス・カウンタ及びデータ・アドレ
ス・カウンタは1カウント増計数され、この過程
はキー・フイールドの終りまで続く。キー・フイ
ールドの終りに、「ヒツト」が生じていなければ、
キーカウンタ27は1カウント減計数され、デー
タ状態信号が付勢される。次に初期値データがキ
ー数レジスタ31、データ長レジスタ32及び一
時レジスタ33の間で回転され、そしてキー・ア
ドレス・カウンタはゼロにセツトされ、データ・
アドレス・カウンタは1カウント増計数される。
「ヒツト」が実際に起きていれば、データ・アド
レス・カウンタ中の数値はスキツプ長レジスタ4
1に記憶され、走査状態カウンタ120はデータ
状態にセツトされ、手続は点6に戻る。
第8A図及び第8B図の流れ図において点5か
ら点2,3及び4を通ると、キー・アドレス・カ
ウンタはゼロにセツトされ、データ・アドレス・
カウンタは増計数される。この時回路がデータ状
態であれば、動作は第8B図の流れ図の右側の列
に示すように進行する。キー・アドレス・カウン
タは、それがキー長レジスタに記憶された数値
(データ状態の場合はDL−1)に至るまで増計数
される。この値に至ると、キー数カウンタがゼロ
以外の値を持つ事によつて示されるように最後の
キーに到達していないならば、走査状態カウンタ
120はキー状態に変化し、データはレジスタ3
1,32及び33の間を回転され、その後動作は
第8B図の点5へ進む。一方もしキー数カウンタ
がゼロになつていれば、次のキー・フイールドの
走査を始めるか又はスキツプ状態へ切り換わるた
めに動作は点2に戻る。
第8A図の流れ図を参照すると、キー状態の時
ビツト0及びビツト8は「ヒント」が起きたか否
かを判定するために比較される。
データ・アドレス・カウンタが、レコード走査
動作の終了を意味するゼロ値に到達する時、動作
は第8C図の流れ図の上部の点7進む。もし「ヒ
ツト」が起きていれば、I/O制御装置16がそ
のように通知を受け、その後手続は終了する。次
にI/O制御装置は適切なデータを読取る事がで
きる。もし「ヒツト」が起きていなければ、スキ
ツプ長レジスタ41に記憶された値はキー・アド
レス・カウンタ43に移され、キー数レジスタ2
7に記憶された値はキー数カウンタに移される。
スキツプ長レジスタ41に記憶された値がゼロで
あれば、走査状態カウンタ120はキー状態に留
まる。一方スキツプ長レジスタ41に記憶された
値がゼロ以外のものであれば、走査状態カウンタ
は次のレコード走査動作のためにスキツプ状態に
セツトされる。もしレコードの終了時に走査状態
カウンタがキー状態でなければ、キー長レジスタ
31、データ長レジスタ32及び一時レジスタ3
3の間でデータが回転される。もし走査すべきレ
コードがそれ以上なければ、手続は終了する。走
査すべきレコードが実際にあれば、動作は第8A
図の点1に戻つて再開始する。
【図面の簡単な説明】
第1図はレコード走査回路を用いた計算機シス
テムのブロツク図、第2図はデータ・レコードの
走査を開始させるために第1図の計算機システム
で用いられる探索要求ブロツクの形式を示す図、
第3図はデイスク・メモリに記憶されるデータ・
レコード及びデータ・レコード識別子の構成を示
す図、第4図は第1図のシステム中のレコード走
査回路のブロツク図、第5A図及び第5B図は第
4図のレコード走査回路中のデータ比較論理回路
の詳細な回路図、第6図は第4図のレコード走査
回路中の走査制御論理回路の詳細な回路図、第7
図は第4図の回路で用いられるクロツク発生回路
及びクロツク信号のタイミング関係を示す図、第
8A図乃至第8C図は第4図の回路の動作を説明
するための流れ図、第9A図乃至第9E図は第4
図の回路の動作を説明するためのタイミング図で
ある。

Claims (1)

  1. 【特許請求の範囲】 1 (a) スキツプ長、キー長、データ長及びキー
    数について各々1つの値を特定し、且つ上記キ
    ー長に一致する長さの1つの探索引数を準備す
    るステツプ (b) 所定の位置から始まる探索すべきデータ・レ
    コードを有するフアイルからデータの直列スト
    リームを供給するステツプ (c) 上記フアイルからデータ・レコードを受け取
    る毎に、上記データ・レコードの開始部から上
    記スキツプ長によつて決定される長さのデータ
    をとばすステツプ (d) 上記キー長によつて決定される長さの上記デ
    ータ・レコード内のキー・フイールドを上記探
    索引数と直列的に比較すると共に走査されつつ
    あるキーフイルドの数をカウントするステツプ (e) 上記データ長によつて決定される長さの上記
    データ・レコード内のデータ・フイールドをと
    ばすステツプ を含むデータ・レコードの探索方法において、 上記ステツプ(d)及び(e)は、上記キーフイルドの
    カウント値が上記キー数に等しくなる迄又は上記
    データ・レコードの終端に到達する迄、繰返し実
    施され、上記ステツプ(d)の比較動作の間に所定の
    比較結果が得られるとそのデータ・レコードの少
    なくとも所定部分を利用処理装置へ転送すること
    を特徴とするデータ・レコードの探索方法。
JP58123535A 1982-07-30 1983-07-08 デ−タ・レコ−ドの探索方法 Granted JPS5924356A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/404,200 US4464718A (en) 1982-07-30 1982-07-30 Associative file processing method and apparatus
US404200 1999-09-23

Publications (2)

Publication Number Publication Date
JPS5924356A JPS5924356A (ja) 1984-02-08
JPH0410649B2 true JPH0410649B2 (ja) 1992-02-26

Family

ID=23598587

Family Applications (1)

Application Number Title Priority Date Filing Date
JP58123535A Granted JPS5924356A (ja) 1982-07-30 1983-07-08 デ−タ・レコ−ドの探索方法

Country Status (4)

Country Link
US (1) US4464718A (ja)
EP (1) EP0100405B1 (ja)
JP (1) JPS5924356A (ja)
DE (1) DE3381542D1 (ja)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0786875B2 (ja) * 1984-05-25 1995-09-20 株式会社日立製作所 ベクトル処理装置
DE3508048A1 (de) * 1985-03-07 1986-09-11 Standard Elektrik Lorenz Ag, 7000 Stuttgart Schnittstelleneinrichtung
JPS6283787A (ja) * 1985-10-09 1987-04-17 株式会社日立製作所 表示画面の出力制御方式
KR940003700B1 (ko) * 1986-02-14 1994-04-27 가부시기가이샤 히다찌세이사꾸쇼 검색방법 및 그 장치
US5170479A (en) * 1986-03-25 1992-12-08 Kabushiki Kaisha Toshiba File block managing system using next record header position data and delete history data from block header and record headers to locate requested record block
US5050075A (en) * 1988-10-04 1991-09-17 Bell Communications Research, Inc. High performance VLSI data filter
AU620994B2 (en) * 1989-07-12 1992-02-27 Digital Equipment Corporation Compressed prefix matching database searching
GB9023096D0 (en) * 1990-10-24 1990-12-05 Int Computers Ltd Database search processor
US5721898A (en) * 1992-09-02 1998-02-24 International Business Machines Corporation Method and system for data search in a data processing system
US5586288A (en) * 1993-09-22 1996-12-17 Hilevel Technology, Inc. Memory interface chip with rapid search capability
JPH0962600A (ja) * 1995-08-30 1997-03-07 Matsushita Electric Ind Co Ltd ワイヤレス入力システム
DE19618772A1 (de) * 1996-05-10 1997-01-23 Jan Leinemann Assoziativmassenspeicher
US6876991B1 (en) 1999-11-08 2005-04-05 Collaborative Decision Platforms, Llc. System, method and computer program product for a collaborative decision platform
US8095508B2 (en) * 2000-04-07 2012-01-10 Washington University Intelligent data storage and processing using FPGA devices
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
US7716330B2 (en) 2001-10-19 2010-05-11 Global Velocity, Inc. System and method for controlling transmission of data packets over an information network
US7035844B2 (en) * 2002-02-25 2006-04-25 Lsi Logic Corporation FFS search and edit pipeline separation
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
CA2523548C (en) 2003-05-23 2014-02-04 Washington University Intelligent data processing system and method 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
AU2006221023A1 (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
US8326819B2 (en) 2006-11-13 2012-12-04 Exegy Incorporated Method and system for high performance data metatagging and data indexing using coprocessors
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
US8374986B2 (en) 2008-05-15 2013-02-12 Exegy Incorporated Method and system for accelerated stream processing
US20120095893A1 (en) 2008-12-15 2012-04-19 Exegy Incorporated Method and apparatus for high-speed processing of financial market depth data
CA2820898C (en) 2010-12-09 2020-03-10 Exegy Incorporated Method and apparatus for managing orders in financial markets
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
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
US10133802B2 (en) 2012-10-23 2018-11-20 Ip Reservoir, Llc Method and apparatus for accelerated record layout detection
WO2015164639A1 (en) 2014-04-23 2015-10-29 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

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS504499A (ja) * 1973-03-13 1975-01-17

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3126523A (en) * 1958-05-05 1964-03-24 File search data selector
US3350694A (en) * 1964-07-27 1967-10-31 Ibm Data storage system
US3408631A (en) * 1966-03-28 1968-10-29 Ibm Record search system
BE756420A (fr) * 1969-11-10 1971-03-01 Ibm Dispositif de transfert d'enregistrements
US3623018A (en) * 1969-11-12 1971-11-23 Ibm Mechanism for searching for selected records in random access storage devices of a data processing system
US3729712A (en) * 1971-02-26 1973-04-24 Eastman Kodak Co Information storage and retrieval system
US3848235A (en) * 1973-10-24 1974-11-12 Ibm Scan and read control apparatus for a disk storage drive in a computer system
IT1032675B (it) * 1975-04-16 1979-06-20 C Olivetti Ec Spa Ing Dispositivo per la ricerca di informazioni registrate sun un supporto di registratione ad accesso semicasuale
US4038642A (en) * 1976-04-30 1977-07-26 International Business Machines Corporation Input/output interface logic for concurrent operations
US4246637A (en) * 1978-06-26 1981-01-20 International Business Machines Corporation Data processor input/output controller

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS504499A (ja) * 1973-03-13 1975-01-17

Also Published As

Publication number Publication date
US4464718A (en) 1984-08-07
EP0100405A3 (en) 1987-03-25
EP0100405A2 (en) 1984-02-15
JPS5924356A (ja) 1984-02-08
DE3381542D1 (de) 1990-06-13
EP0100405B1 (en) 1990-05-09

Similar Documents

Publication Publication Date Title
JPH0410649B2 (ja)
JP2851665B2 (ja) データ圧縮システム
US4384325A (en) Apparatus and method for searching a data base using variable search criteria
CA1069217A (en) Multistage sorter with concurrent access to interstage buffer memories
US4712190A (en) Self-timed random access memory chip
JPH10198597A (ja) 直列的に提供されるデータストリームのためのレジスタ格納先を選択する方法
JPH02745B2 (ja)
US3629860A (en) Record locate apparatus for variable length records on magnetic disk units
JPH0731627B2 (ja) メモリ−装置
US3332069A (en) Search memory
EP0036483B1 (en) Information transfer between a main storage and a cyclic bulk memory in a data processing system
US5526500A (en) System for operand bypassing to allow a one and one-half cycle cache memory access time for sequential load and branch instructions
KR940009099B1 (ko) 마이크로 프로세서
JP2001100927A (ja) ファイル管理システム,ファイル管理方法および記録媒体
KR0180679B1 (ko) 플래쉬메모리를 사용하는 동영상신호 실시간처리방법 및 그 장치
JP2783495B2 (ja) クロック乗せ換え回路
US6748406B2 (en) Bit search device and bit search method
US4766533A (en) Nanosequencer digital logic controller
JP2667702B2 (ja) ポインタリセット方式
JPS61162898A (ja) 連想メモリ装置
JPH0475551B2 (ja)
SU1251094A1 (ru) Устройство дл сопр жени накопител с каналом ввода/вывода
JPH0642248B2 (ja) 情報検索装置
JPS5927993B2 (ja) メモリ制御装置
JPH01304550A (ja) データ読出し処理回路およびこれを有するメモリ回路