JPH04247571A - データベースレコード処理装置 - Google Patents

データベースレコード処理装置

Info

Publication number
JPH04247571A
JPH04247571A JP3229422A JP22942291A JPH04247571A JP H04247571 A JPH04247571 A JP H04247571A JP 3229422 A JP3229422 A JP 3229422A JP 22942291 A JP22942291 A JP 22942291A JP H04247571 A JPH04247571 A JP H04247571A
Authority
JP
Japan
Prior art keywords
register
key
vector
tree
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP3229422A
Other languages
English (en)
Other versions
JPH07111677B2 (ja
Inventor
Leslie C Garcia
レスリー・チヤールズ・ガルシア
David B Lindquist
デビツド・ブルース・リンドクイスト
Gerald F Rollo
ジエラルド・フランクリン・ロウロ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH04247571A publication Critical patent/JPH04247571A/ja
Publication of JPH07111677B2 publication Critical patent/JPH07111677B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/8053Vector processors
    • 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/22Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
    • G06F7/24Sorting, i.e. extracting data from one or more carriers, rearranging the data in numerical or other ordered sequence, and rerecording the sorted data on the original carrier or on a different carrier or set of carriers sorting methods in general
    • 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/22Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
    • G06F7/36Combined merging and sorting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/22Indexing scheme relating to groups G06F7/22 - G06F7/36
    • G06F2207/222Binary data tree
    • 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/99937Sorting

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はデータ処理装置に関し、
特にデータベース処理に関するものである。
【0002】
【従来の技術】データベース処理はデータ処理の分野に
おいて広く周知されているため産業的に重要なものであ
る。データベースはレコードの中に組織化されたデータ
の集合である。そのようなデータレコードにより及び又
はそのようなデータレコードを用いて実行されるコンピ
ユータ操作をデータベース処理という。データベース管
理プログラムはデータベースにアクセスしデータベース
を扱うために用いられるデータベース処理操作のパツケ
ージである。
【0003】データベース処理は通常ソーテイング(分
類)及びマージング(組合せ)のような操作を含む。デ
ータ処理の分野においてソーテイングはエレメント又は
キーの昇順又は降順の再構成のことである。マージング
は2又は2以上の順序付リストからのエレメント又はキ
ーのインターリーブのことである。従来、ソーテイング
及びマージングはソフトウエアアルゴリズムにより実行
されており、長大なプロセツサ実行時間を必要とする。 大きなデータベースにおいてはプロセツサ実行時間は法
外となるため、ソフトウエアデータベース管理プログラ
ムの性能を著しく劣化させることになる。
【0004】ソーテイング及びマージングのうち周知の
方法の1つは交換選択アルゴリズムによるものである。 交換選択はトーナメントツリーにおいて1つのキーを他
のキーに置き換えるプロセスである。交換選択型のマル
チウエイマージ(multiway merge)の一
例を図1及び図2において説明する。
【0005】図1はベースに16個の外部ノード(ノー
ド16〜31)を有し、ツリー本体に15個の内部ノー
ド(ノード1〜15)を有する16ウエイトーナメント
ツリーを示す。他のノード(ノード0)はツリーの頂に
付加されることにより当該トーナメントのチヤンピオン
を示す。はじめに外部ノードにキーが入れられる。図1
の内部ノードには、当該ツリーが最小のキーを選択する
トーナメントであるとして「勝者(ウイナー)」が入る
【0006】交換選択法においてはウイニングキーがツ
リーを昇るとき、前のレベルでのトーナメントの敗者(
ルーザー)と入れ代わる。図2は図1のツリーを勝者(
ウイナー)ではなく敗者(ルーザー)で表したものであ
る。また図2のツリーにおいては次のキー「K」が外部
ノード19において前のチヤンピオンキー「A」に入れ
代わつている。外部ノード(16〜31)に順序付キー
リストが入ると、新しいトーナメントチヤンピオンを決
定するためにツリーの新しい状態を決定するには新しい
「K」をキー「C」、「B」、「D」、「E」を比較す
るだけで良い。
【0007】図1及び図2より交換選択法はトーナメン
トチヤンピオンの決定に4サイクルの比較が必要なこと
が理解できる。例えば、外部ノード19の「K」が当該
トーナメント(図2に示す)に入る次のキーである場合
、4サイクルの比較は以下のようにして進められる。 1.「K」(ノード19)が「C」(ノード9)と比較
される。 「K」は敗けであるからノード9は「C」となる。 勝者「C」は次の比較サイクルのために一時的に記憶さ
れる。 2.「C」(サイクル1の勝者)は「B」(ノード4)
と比較される。 「C」は敗けであるからノード4は「B」となる。勝者
「B」は次の比較サイクルのために一時的に記憶される
。 3.「B」(サイクル2の勝者)は「D」(ノード2)
と比較される。 「B」は勝ちであるから「D」と置き換えられず次の比
較サイクルのために一時的に記憶されたままとなる。 4.「B」(サイクル3の勝者)が「E」(ノード1)
と比較される。 「B」は勝ちであるから「E」と置き換えられずノード
0に移る。 「B」はこのラウンドのトーナメントチヤンピオンとな
る。
【0008】上述の例から明らかなように、次の新しい
キーは外部ノード17(前のチヤンピオン「B」のソー
スリスト)から当該ツリーに入り、次のラウンドはこの
点からスタートする。
【0009】この分野において周知のように、オフセツ
トコード及びコードワード比較は図1及び図2の構造内
の実際のキーの比較に代わるものとして用いることがで
きる。トーナメントツリーにおけるオフセツト値コーデ
イングの使用については「IBM技術公開公告」第20
巻、第7 号、1977年12月、2832−2837
 頁に詳細に示されている。
【0010】
【発明が解決しようとする課題】従来のトーナメントツ
リーソーテイング及びマージングの1つの限界は、比較
サイクルの数がツリーのレベルの数の増加と共に増加す
ることである。かくしてNレベルの内部ノードを有する
ツリーを用いての交換選択ソーテイング又はマージング
においては従来勝者の決定にN回の比較サイクルが実行
される。この比較サイクル並びにソート及びマージ動作
は一般に大型メインフレームコンピユータシステムであ
つてもその中央プロセツサに多大な負担をかけることに
なる。このことは、大きなデータベースに対する操作に
は数億のキーを含むリストのソーテイング又はマージン
グが必要であるという点において特に言い得ることであ
る。
【0011】マルチウエイマージング、ソーテイング及
び交換選択についての詳細はドナルド・イー・ナス著「
ソーテイング・アンド・サーチング」、アデイソン−ウ
エズリ出版、国会図書館カタログカード NO.67−
26020及びハロルド・ローリン著「ソーテイング・
アンド・ソートシステムズ」、アデイソン−ウエズリ出
版、国会図書館カタログカード NO.73−2140
 に示されている。
【0012】本発明の目的はトーナメントツリーマージ
及びソートを実行するためにベクトルプロセツサ内のベ
クトルレジスタを探すことにより中央処理装置のソート
及びマージタスクをはずすことである。
【0013】本発明の他の目的は勝者が1回のクロツク
サイクルにより決定できるようにトーナメントツリーマ
ージ及びソートの性能を加速することである。
【0014】
【課題を解決するための手段】かかる問題を解決するた
めに本発明においては、トーナメント形ツリー構造にお
ける第1の複数のキーを記憶するためのツリー手段と、
単一比較サイクルにおいてトーナメントチヤンピオンを
決定するようにトーナメント形ツリー構造を導出するた
めのレゾリユーシヨン手段と、ツリー手段及びレゾリユ
ーシヨン手段に接続して上記ツリー手段を上記レゾリユ
ーシヨン手段に応じて次の比較サイクルの際のデータに
より更新するための更新手段とをを具えるようにする。
【0015】
【作用】好適な実施例においては、本発明によるマージ
ソートはベクトル要素内のハードウエアにおいて実行さ
れるトーナメントツリーへの入力源としてベクトルレジ
スタを用いる。当該トーナメントツリーはノードレジス
タ、入出力選択回路、及びツリーの更新トーナメントを
走行させる比較器を具えている。
【0016】後述する本発明による実施例においては前
述の交換選択ツリー法について4対1の改善を提供する
ものである。このことによりレベル数の大きいツリーを
表す実施例についてはさらに大きな改善が達成可能であ
る。高ベクトルレジスタ帯域幅が各サイクルにおける多
レベル比較を可能にする。かくして1サイクルにつき1
勝者が達成される。
【0017】好適な実施例においてはベクトルマージ及
びソートは「IBM  ESA/370」ベクトルフア
シリテイのような他の従来のベクトルプロセツサのハー
ドウエア内のレジスタにトーナメント形ツリー構造及び
関連する論理を維持する。この汎用の適当なベクトルプ
ロセツサは例えば米国特許第4791555号に示され
ている。
【0018】ベクトルソート及びマージハードウエアを
「IBM  ESA/370」ベクトルフアシリテイを
参照して以下に詳述する。しかしながら、ソート及びマ
ージハードウエアは他の従来のベクトルプロセツサに関
連して用いても良い。さらにこの文書中において示す原
理の多くはスカラプロセツサを用いる実施例にも適用し
得る。
【0019】「IBM  ESA/370」ベクトルフ
アシリテイ及び関連命令は「IBMエンタープライズシ
ステムズアーキテクチヤ/370アンドシステム/37
0ベクトルオペレーシヨンズ」文献 NO.SA22−
7125−3 に詳細に示されている。
【0020】
【実施例】以下図面について、本発明による一実施例を
詳述する。
【0021】本発明における実施例によるトーナメント
形ツリー構造を含むベクトルフアシリテイを図3に示す
。ツリー論理回路302はベクトルプロセツサ300の
部分として提供される。ツリー論理回路302はトーナ
メントツリーのベースノードとして作用するベクトルレ
ジスタ304からデータを受け取る。ツリー論理回路3
02がトーナメントチヤンピオンを決定するとき、ツリ
ー論理回路302がチヤンピオンを識別するデータをホ
ストコンピユータ(図示せず)の記憶バツフアに送る。 また、チヤンピオンを識別するデータをベクトルレジス
タ304に帰還して次の処理を実行し得る。
【0022】図4はツリー論理回路302及びベクトル
レジスタ304への接続をさらに詳細に示す。図4に示
すように、16個のベクトルレジスタ(VREG)30
4はツリーに与えられるデータストリームとして用いら
れる。この16個のベクトルレジスタはこのトーナメン
トツリーのベースノードとして作用する。データストリ
ームは「IBMシステム370」ベクトルセクシヨニン
グ命令及びベクトルロード命令の制御の下においてセク
シヨンごとにベクトルレジスタ304に入れられる。残
りのノード(図2のトーナメントツリーのノード1〜1
5に対応する)はベクトルフアシリテイハードウエア内
に構成される15個のノードレジスタ402〜430と
して与えられる。チヤンピオンキーレジスタ432は又
、トーナメントチヤンピオン及び元のノードアドレスの
下位4桁ビツトを記憶するために設けられている。
【0023】各ベクトルレジスタ304それ自身のベク
トル割込み及びベクトル割込みインデクス(VIX)を
有する。オペレーシヨンの単位は1回のツリーの更新及
びトーナメントチヤンピオンの選択である。命令はすべ
てのストリームの完全なマージ又はベクトルレジスタが
リフイル(refill) を要求するときに完了する
【0024】各ベクトルレジスタ304は複数の要素を
保持する。各トーナメント候補を保持するにはこの要素
のうちの2つの要素を必要とする。各候補はアドレス部
分(第1要素)及びインデクス部分(第2要素)を有す
る。ベクトルインデクスVIXが次の候補を指名するこ
とにより1つの候補がトーナメントチヤンピオンとなる
たびに適切なベクトルインデクスVIXが、次の候補の
要素を指名するように2だけ増加するようになされてい
る。
【0025】15個の各ノードレジスタ402〜430
及びチヤンピオンキーレジスタ432は1個の32ビツ
トレジスタ及び1個の4ビツトレジスタを含む。32ビ
ツトレジスタ(KEY)はキーデータを保持する。4ビ
ツトレジスタ(ID)は当該キーを発生したベクトルレ
ジスタを識別するために用いられる。チヤンピオンキー
レジスタ432の場合においては、32ビツトレジスタ
がチヤンピオンキー(WKEY)433を保持し、4ビ
ツトレジスタがチヤンピオンキーのID(WID)43
4を保持する。トーナメントチヤンピオンが選択される
とき、4ビツトWID434及び16ビツトベクトルイ
ンデクスVIXは31ビツトベクトルレジスタのアドレ
スを読み取る。アドレスは当該キーと組合わされること
により、記憶用のマージレコードを形成するようになさ
れている。
【0026】トーナメントツリーのベースノード(16
〜31)に対応する16個のベクトルレジスタ304は
16:1マルチプレクサ(MUX)436に接続されて
それぞれにアドレス0〜15が与えられる。チヤンピオ
ンキー識別番号(WID)434のビツト0〜3は16
:1マルチプレクサMUXアドレスとして用いられるこ
とにより16個のベクトルレジスタ400〜430のう
ちの1つを選択するようになされており、当該16:1
マルチプレクサMUX436の出力は第1多ビツトデー
タバス438に接続しており当該バス438はデータを
選択されたベクトルレジスタから比較器470、476
、480、482に運ぶ。
【0027】トーナメントツリーのノード8〜15に対
応する8個のレベル1(L1)ノードレジスタ434〜
448は8:1マルチプレクサMUX440に接続して
いる。チヤンピオンキー識別番号434のビツト0〜2
(上位3桁ビツト)は8個のレベル1L1ノードレジス
タ402〜416のうちの1個を選択するようになされ
ており、マルチプレクサMUXアドレスとして用いられ
ることによりレベル1L1ノードレジスタの内容は8:
1マルチプレクサMUX400の出力に出現する。この
8:1マルチプレクサMUX440の出力は、第2多ビ
ツトデータバス442に接続しており、当該バス442
はデータを選択されたレベル1L1ノードレジスタから
比較器468、474、478、482に運ぶ。
【0028】トーナメントツリーのノード4〜7に対応
する4個のレベル2(L2)ノードレジスタ418〜4
24は4:1マルチプレクサMUX444に接続する。 チヤンピオンキー識別番号434のビツト0及び1(上
位2桁ビツト)はマルチプレクサMUXアドレスとして
用いられることによりレベル2L2ノードレジスタ41
8〜424のうちの1つを選択するようになされており
、このレジスタの内容は4:1マルチプレクサMUX4
44の出力に出現する。4:1マルチプレクサMUX4
44の出力は第3多ビツトデータバス446に接続して
おり、当該バスはデータを選択されたレベル2L2ノー
ドレジスタから比較器466、472、478、480
に運ぶ。
【0029】トーナメントツリーのソード2及び3に対
応する2個のレベル(L3)ノードレジスタ426、4
28は2:1マルチプレクサ448に接続する。チヤン
ピオンキー識別番号434のビツト0(最上桁ビツト)
は2個のL3ノードレジスタ426、428の一方を選
ぶためのマルチプレクサMUXアドレスとして用いられ
、これらレジスタの内容は2:1マルチプレクサMUX
448の出力に生じる。2:1マルチプレクサMUX4
48の出力は第4多ビツトデータバス450に接続する
。このバスは選ばれたレベル3L3ノードレジスタから
比較器464、472、474、476にデータを運ぶ
【0030】最後に、トーナメントツリーのノード1に
対応するレベル4(L4)ノードレジスタ(NREG1
)430は第5多ビツトデータバス462に接続してお
り、当該バス462はキーデータをレベル4L4ノード
レジスタ430から直接に4個の比較キー464〜47
0に運ぶ。
【0031】従来技術の項において説明したように、与
えられたトーナメントラウンドはチヤンピオンキーの発
生ノードによりスタートする。かくして、図4に示すよ
うに、最近のチヤンピオンの識別番号(WID)433
がツリーを昇る際のパスを決定する。識別番号(ID、
WID)は、ベクトルレジスタのマルチプレクサMUX
アドレス(MUX436上の)の4ビツト2進法記であ
り、ベクトルレジスタ又はキーを初めに入れるようにな
されている。
【0032】例えば図2においては第1チヤンピオンキ
ー「A」はベクトルレジスタ3からツリーに入る(マル
チプレクサMUX436の2進アドレス0011)。か
くして「A」キーの識別番号ID(これは第1WIDで
もある)は2進0011である。上述のように、次のト
ーナメントチヤンピオンの決定に関係するキーはベクト
ルレジスタ3(レベル0マルチプレクサL0MUXアド
レス0011)、ノードレジスタ404(レベル1マル
チプレクサL1MUXアドレス001)、ノードレジス
タ418(レベル2マルチプレクサL2MUXアドレス
00)、ノードレジスタ426  2(レベル3マルチ
プレクサL3MUXアドレス0)、及びノードレジスタ
430(1個のレジスタのみが含まれるからマルチプレ
クサMUXアドレスは不要)から入る。
【0033】図4及び上述の例より、与えられたレベル
において各レジスタはその対応するノード番号の下位N
桁ビツト(N=4−レベル番号)でマルチプレクサMU
X436、440、444、448を介してアドレスさ
れることが理解できる。
【0034】図4のトーナメントツリーのハードウエア
は10個の比較器464〜482を有し、当該比較器は
1つのトーナメントチヤンピオンを決定する際に必要な
比較を実行する。比較器は左入力側の量が右入力側より
大、小又は等しいか否かを示す多ビツト2進出力を送出
する好適な形式のものである。
【0035】図4に示すように、レベル4のノードレジ
スタ430の内容は一セツトの4個の比較器464〜4
70により、それ以下のレベル(L4/L3、L4/L
2、L4/L1、L4/L0)の全ての選択されたレジ
スタの内容と比較される。同様に、レベル3の選択され
たノードレジスタの内容は1セツトの3個の比較器47
2〜476によりレベル0〜2の選択されたレジスタ(
L3/L2、L3/L1、L3/L0)の内容と比較さ
れる。さらに、レベル2の選択されたノードレジスタは
1セツトの2個の比較器478、480によりレベル1
L1とレベル0L0の選択されたレジスタと比較され、
レベル1の選択されたノードレジスタは1個の比較器4
82によりレベル0L0と比較される。かくして、10
個の比較結果が比較器464〜482の出力に形成され
る。
【0036】図5及び図6は各レベルでの敗者キーを適
切なノードレジスタにセツトするために図4の論理から
得られた10個の比較結果を用いるノード入力ゲート論
理回路を示す。図5及び図6に示すように、4個の「選
択キー」マルチプレクサ502〜508が、チヤンピオ
ンキーID(WID)により決定される適切なノードレ
ジスタに各レベルの敗者キーを通すために用いられる。 図4のノード出力選択論理回路により選択されたキーは
1サイクル間ラツチされて適切な選択マルチプレクサ5
02〜508への入力となる。
【0037】図5及び図6に示すように、図4の比較器
から得られた比較結果は各レベルでの敗者を決定するた
めに用いられる多数の「AND」ゲート510〜526
への入力となる。このANDゲートにより発生される結
果は元の敗者のレベルを識別する。各レベルでの結果は
対応する選択キーマルチプレクサ502〜508への選
択入力(又はアドレス)として用いられる。任意のレベ
ルにおいて1個のANDゲートのみ(もしあれば)が「
真」の結果を発生し、かくして選択マルチプレクサの入
力から1つのラツチされたキーを選択できる。与えられ
た1個のセレクトキーマルチプレクサに接続する「AN
D」ゲートのいずれもが「TRUE」結果を発生しない
場合、当該選択されたノードレジスタの内容はそのまま
とされる。
【0038】例えば、レベル4の最も左の「AND」ゲ
ート510の条件が合致すると、レベル3L3キー(バ
ス450から選択キーマルチプレクサ502の右側にラ
ツチされる)がノードレジスタ1(参照番号430)に
書き込まれる。各ゲートについて設定される条件は相互
に排他的であるので、レベル4の選択キーマルチプレク
サに接続する他の「AND」ゲートは「TRUE」結果
を発生しない。
【0039】レベル1において、レベル1L1/レベル
0L0比較結果は直接選択マルチプレクサ508に送ら
れる。このレベルにおいて、レベル1L1>レベル0L
0のときレベル0L0キーが敗者として選択される。他
の場合にはこのレベルで選択されたノードレジスタの内
容はそのままとなる。
【0040】当該ツリーのレベル1〜3(ノード2〜3
、4〜7、8〜15)において、ノード入力ゲート52
8〜532が選択されたキーを書き込む適切なノード(
各レベルの)を選択する。ノード入力ゲート510〜5
26は前のサイクルからのチヤンピオンのID(WID
)を出力選択のために用いるマルチプレクサである。 動作については、前のサイクルからチヤンピオンキーの
WID434がノード入力ゲート528〜532への選
択入力として1サイクルラツチされる。ラツチされたチ
ヤンピオンのID(WID)を用いて、ノード入力ゲー
トは対応する選択キーマルチプレクサ(それに接続する
)により選択されたキーを書き込むノードレジスタ(各
レベルの)を選択する。各ノード入力ゲートにおいて次
々に大きくなるラツチされたチヤンピオンのID(WI
D)が左から右にノードレジスタを選択する(例えばゲ
ート532においてラツチされたチヤンピオンのID(
WID)000がノードレジスタ8  402を選択し
、ラツチされたチヤンピオンのID(WID)111が
ノードレジスタ15  416を選択する)。レベル4
には1個の宛先ノードレジスタしかないのでマルチプレ
クサMUX提供されない。
【0041】図7及び図8は図4のウイニングキーレジ
スタ432へのチヤンピオンキー及びIDの書込み用の
ハードウエアを示す。前のサイクルから選択されたキー
(バス438、442、446、450上の)はセレク
トキーマルチプレクサ602の右側にラツチされる。新
しいトーナメントチヤンピオンを決定するために、図4
の比較器464〜482からの比較結果が図7及び図8
に示すように多数の「AND」ゲート604〜612に
入力される。図5の「AND」ゲートと同様に、選択キ
ーマルチプレクサ602に付加される1個の「AND」
ゲート(もしあれば)が与えられた比較サイクル中に「
TRUE」結果を発生することになる。
【0042】選択されたキー(選択キーマルチプレクサ
602の右側にラツチされたものの)が新しいチヤンピ
オンである。新しいチヤンピオンキー及びそのIDがウ
イニングキーレジスタ432にロードされる。図7及び
図8に示すように、ウイニングキーのID(WID)は
16:1ベクトルレジスタVREG選択マルチプレクサ
MUX(これは図4に示してある)のセレクト入力とし
て用いられる。図4について述べたように、このチヤン
ピオンのID(WID)は起点ベクトルレジスタを選択
し、チヤンピオンのID(WID)のそれより下位のビ
ツトが次の比較サイクルの際に適切なノードレジスタを
選択する。また図4について述べたように、選択された
ノードレジスタは、チヤンピオンキーが当該ツリーの頂
(ノード1)に到るパスに対応する。ウイニングキーレ
ジスタからの新チヤンピオンキー(KEY)は起点ベク
トルレジスタのアドレスと共にベクトルプロセツサ記憶
論理回路に送られる。
【0043】図4〜図8のツリー論理回路のオペレーシ
ヨンの一例を図9及び図10により説明する。
【0044】ベクトルマージソートオペレーシヨンの第
1ステツプとしてノードレジスタが第1チヤンピオンキ
ーを決定するために初期化される。例えば、初期化は(
1)ツリーの非ベースノードに低ダミー(自動ウイナー
)をロードし、(2)ベースの左から右にスタートし、
与えられたノードNにおける各キーをその親ノードIN
T(N/2)におけるキーと比較し、(3)敗者キーを
親ノードに進め(又は場合によつては敗者キーを親ノー
ドにおいてそのままとし)、そして(4)ルートノード
(ノード1)におけるキー及び直接ルート兄弟における
キー(ノード2又は3)との間で比較が行われるまでウ
イニングキーを当該ツリーの次の最高位の親ノードと比
較することにより実行することができる。この最後の比
較サイクルの勝者をウイニングキーノード(ノード0)
に移動させ、敗者をそのままとし、ベース内の各キーが
当該ツリーを昇る機会を得るまで次のベースノードN+
1から比較を続行する。
【0045】最も右のベースノードに発生するキー(例
えば図9のツリーにおけるベクトルレジスタVREG1
5)がツリーを昇るとき、非ダミー要素は勝者として出
現する。この時点でツリーは初期化され、勝者はシステ
ム記憶論理回路に送られ、このツリーにロードされるべ
き次の要素が勝者のIDすなわちWIDにより選択され
る。
【0046】ベクトルマージソートハードウエアに用い
て特に有効な初期化方法の他の例はツリーレジスタ40
2〜430及びウイニングキーレジスタ432に低ダミ
ー(low dammy)をロードし、元のチヤンピオ
ンのIDがベクトルレジスタ0をその起点として示し、
続く各チヤンピオンが次のベクトルレジスタ(1、2、
3、……、15)をその起点として示すように、IDを
配列するものである。初期化がこのように実行されると
き、低ダミー値(low dammy value)が
最初に図5、図6、図7及び図8の選択キーマルチプレ
クサにラツチされる。同様に、チヤンピオンのID(W
ID)00000の適切なビツトが図5及び図6のノー
ド入力ゲート528〜532にラツチされる。上述の2
つの方法のいずれにおいても、初期化はチヤンピオンキ
ーが低ダミーでないことにより完了したものとして認め
られる。
【0047】上述の方法に加えて、従来の多数の初期化
方法を使用し得る。トーナメントツリーの初期化の詳細
は米国特許出願第07/499,844号(出願日19
90年3月27日)に示されている。
【0048】図9はノードレジスタ、ベクトルレジスタ
、ウイニングキーレジスタ、及び図1のトーナメントツ
リー間の対応関係を示すトーナメントツリーである。 図9に示すように、ベクトルレジスタ(V0〜V15)
304はノード16〜31に対応し、当該ツリーのベー
スを形成する。各ノードレジスタ402〜432は従来
のトーナメントツリーに対してその等価ノードに対応す
る番号(N1〜N15)を有する。ウイニングキーレジ
スタ432はノード0に対応する。図9に示すように、
ウイニングキーレジスタ432はウイニングキーのKE
Y値及びIDを保持する。各ノード及び各ベクトルレジ
スタの文字はキーを表す。各ノード及びベクトルレジス
タは図示のキーに関連するIDをも有している。
【0049】図9のトーナメントツリーにおいては図4
のベクトルレジスタ、ノードレジスタ及びウイニングキ
ーレジスタ304、402〜432は初期化後の1つの
サイクルであつて第1チヤンピオンキー(「A」)及び
その関連ID(0011ビン)がチヤンピオンキーレジ
スタ432にロードされた直後の状態となつている。こ
こでNはこのサイクルのエンド、N+1、N+2、N+
3、……は以降のサイクルのエンドを示す。
【0050】図4において、サイクルNのエンドにおい
てはチヤンピオンのID(WID)=0011である。 チヤンピオンのID(WID)(0011)の適切なビ
ツトが図5図6のノード入力ゲート528〜532のセ
レクト入力にラツチされる。チヤンピオンのID(WI
D)のビツトは各レベル(前述)における選択マルチプ
レクサMUX436、440、444、448のアドレ
ス付けのためにも用いられ、かくして結果レベル0L0
=「K」、レベル1L1=「C」、レベル2L2=「B
」、レベル3L3=「D」、レベル4L4=「E」を発
生する。この値は図5、図6、図7及び図8の選択キー
マルチプレクサMUX502〜508、602の各右側
にラツチされる。また、レベル0L0〜レベル4L4値
を上記のように選択すると、比較器464〜482は次
の10個の結果つまり、レベル4L4>レベル3L3、
レベル4L4>レベル2L2、レベル4L4>レベル1
L1、レベル4L4<=レベル0L0、レベル3L3>
レベル2L2、レベル3L3>レベル1L1、レベル3
L3<=レベル0L0、レベル2L2<=レベル1L1
、レベル2L2<=レベル0L0、レベル1L1<=レ
ベル0L0を発生する。この比較結果(又はその逆)は
図5、図6、図7及び図8の「AND」ゲート510〜
526、604〜612の入力にラツチされる。
【0051】サイクルN+1を次に述べる。図5及び図
6において、サイクルNから得られたチヤンピオンのI
D(WID)、選択されたキー及び比較結果は上述のよ
うに適切なハードウエアにラツチされる。このデータは
図5及び図6の装置によりルージング(非チヤンピオン
)キーをサイクルN+1において適切なノードレジスタ
に書き戻すために用いられる。レベル1を先ず考えると
、レベル1L1ノード入力ゲート532はチヤンピオン
のID(WID)のビツト0〜2にアドレスされ、選択
キーマルチプレクサMUX508はレベル1L1<=レ
ベル0L0にアドレスされる。この条件(レベル1L1
<=レベル0L0)が成立しないと、選択されたレベル
1のレジスタにはデータが書き込まれず、現データがそ
のまま残る。この例では比較器482(図4)により示
されるようにレベル1L1<=レベル0L0である。 かくしてラツチされたレベル0L0キー(「K」)はチ
ヤンピオンのID(WID)ビツト0〜2(001)に
より選択されたノードレジスタに書き込まれる。ノード
レジスタNREG9は001がレベル1L1ノード入力
ゲート532に加えられるとき選択されるので、「K」
がN+1サイクル中にノードレジスタNREG9に書き
込まれる。
【0052】他のレベルについても同じことが言い得る
。レベル2においてチヤンピオンのID(WID)(0
0)のビツト0〜1がノードレジスタNREG4418
を選択する。「AND」ゲート524において上記条件
が成立するので、ラツチされたレベル1L1キー(「C
」)がノードレジスタNREG4  418に書き込ま
れる。レベル3においてはチヤンピオンのID(WID
)(0)のビツト1がノードレジスタNREG2  4
26を選択する。比較結果は関連する「AND」ゲート
518〜522のいずれにおいても条件を満足しないの
で、ノードレジスタNREG2内の前のキーデータ(「
D」)はそのままとなる。レベル4においては関連する
「AND」ゲート510〜516のいずれにおいても比
較結果が条件を満たさないので、ノードレジスタNRE
G1  430内の前のキーデータ(「E」)はそのま
まである。かくして、サイクルN+1のエンドにおいて
、ノード9、4、2及び1がそれぞれキーK、C、D及
びEを保持する。
【0053】図7及び図8において、サイクルNからの
結果、レベル0L0=「K」、レベル1L1=「C」、
レベル2L2=「B」、レベル3L3=「D」、レベル
4L4=「E」は選択キーマルチプレクサMUX602
の右側にラツチされている。レベル2L2「AND」ゲ
ートにおける条件は成立するのでラツチされたレベル2
L2キー(「B」)が選択されたウイニングキーレジス
タ432に書き込まれる(そのIDと共に)。前述のよ
うに、ウイニングキーのID(この場合、「B」がベク
トルレジスタVREG1から発生するので001)は図
4の回路により次のキー群を選択し比較するために用い
られる。チヤンピオンキー自身(又は、キー自体ではな
くキーアドレスを扱うシステム内のそのアドレス)がプ
ロセツサ記憶論理回路に送出される。
【0054】図4において、マルチプレクサ436、4
40、444、448はベクトルレジスタVREG1、
ノードレジスタNREG8  402、ノードレジスタ
NREG4  418、ノードレジスタNREG2  
426を比較のために選択する(ノードレジスタNRE
G1は常に選択される)。サイクルN+1のエンドまで
に比較器464〜484は10個の結果を出す。この結
果は新チヤンピオンのID(WID)(0001)及び
選択されたキー(U、J、C、D及びE)と共にサイク
ルN+1のエンドにおいて図5、図6、図7及び図8の
適切なラツチにラツチされてサイクルN+2においての
使用に備える。
【0055】図10はサイクルN+1のエンドにおける
図9のトーナメントツリー及びレジスタの状態を示す。 図示しないが、ベクトルレジスタ1(V1)のベクトル
割込みインデクスVIXはこのサイクルのエンドまで「
U」キーへのポイントのために更新される。
【0056】図5、図6、図7及び図8の実施例におい
ては「AND」条件がいずれも満足されないとき、選択
されたレジスタにはデータは書き込まれない。かくして
現レジスタデータの一貫性は保持される。他の実施例は
現レジスタデータを選択キーマルチプレクサMUX50
2〜508、602の右側にラツチし、「AND」ゲー
トのいずれも「TRUE」結果を発生しないとき、選択
されたレジスタにデータを再び書き込むものである。
【0057】図4〜図8の装置の操作手順を図18に示
す。要約すると、その操作手順は以下の通りである。 1.ツリー論理が初期化される(ブロツク1402)。 初期化プロセスの一部として、第1非ダミーチヤンピオ
ン及びその関連WIDが決定される。 2.チヤンピオンキーのIDが図4のマルチプレクサM
UXにより用いられて比較のための次のベクトルレジス
タ及びノードレジスタを選択する(ブロツク1404)
。この選択されたレジスタ内のキーが図4の比較器46
4〜482において同時に比較される。 3.比較結果、選択されたキー及びチヤンピオンIDを
ステツプ4及び5において使用のためにラツチする(ブ
ロツク1406、1408)。 4.比較結果を図7及び図8のAND修飾バツフア60
4〜612に送り、新チヤンピオンを決定してそのベー
スIDと共にウイニングキーレジスタ432に書き込む
(ブロツク1412)。 5.ステツプ4と並行して図5及び図6の装置により、
前のチヤンピオンのパスに沿つて敗者キーをロードする
ことによりノードレジスタを更新する(ブロツク141
0)。 6.ステツプ2〜5を反復する。ステツプ4の反復のエ
ンドでチヤンピオンキー及び関連ID(WID)をプロ
セツサ記憶論理回路に送る。
【0058】周知のようにキーの比較はオフセツトコー
デイング(コードワード)を用いて実行し得る。コード
ワードを用いるときには比較結果が等しくなることがあ
る。比較結果が等しい場合にはノードオペランドト及び
チヤレンジヤオペランドをアドレスID、形成すべき新
コードワード及び更新プロセスの再開を用いて取り出す
。ベクトルソート内において実行される動作は8バイト
コードワードを用いる点を除き従来の「370/XA」
比較及びフオームコードワード(Compare an
dForm Codeword)と同様である。拡張1
2バイトキーフイールドを与えることにより比較結果が
等しくなる頻度(コードワードをキーを表すために用い
るとき)を低下し又は直接に短い(12バイトまで)キ
ーを用いるようになされている。各フイールドに関連す
る4バイトアドレスIDもある。異なる長さの16まで
のストリームをマージすることができる。各ストリーム
は複数のストリングを含む。 ストリーム内の各ストリングは同一の長さであるが、そ
の長さは2**31パワー(power)までの任意の
値で良い。
【0059】レコード出力はアドレスID及びキーデー
タを含む。コードワードをキーデータを表すために用い
る場合、これは以降のマージにおいて再使用についてそ
れらを使用可能にする。
【0060】図3のベクトルフアシリテイのコンテキス
ト内におけるマージオペレーシヨンの制御を図11〜図
17について述べる。「ESA/370」ベクトルフア
シリテイを用いてマージを開始するために図11におい
て示すように従来のQSTフオーマツトによりベクトル
マージVMERGE命令800を限定する。第3オペラ
ンド802により特定された偶−奇汎用レジスタ対の偶
レジスタはマージ及びソートオペレーシヨンに加わる入
力ベクトルレジスタの番号を特定するマージマスク(M
erge Mask) を含む。対の奇レジスタは入力
ストリングの長さを含む。入力ベクトルは単一ベクトル
にマージされ、当該単一ベクトルが第2オペランドのR
S2  804フイールドにより識別される他の汎用レ
ジスタにより特定されるベース位置から記憶される。記
憶手段アドレスを増分するストライドは第2オペランド
のRT2フイールド806により特定される汎用レジス
タに含まれる。
【0061】マージデータ入力は「370/XA」アー
キテクチヤ比較及びフオームコードワード命令(the
 370/XA Architecture Comp
are and Form Codeward Ins
tructions) におけるようなコードワード又
は実際のキーデータである。ベクトルマージVMERG
E命令には2つの形があり、1つはシヨート(1ワード
キー)フオーマツト他はロング(3ワードキー)フオー
マツトである。図11のフオーマツトはベクトルマージ
VMERGEロング命令からベクトルマージVMERG
Eシヨート命令を区別するために異なる記憶及びOPコ
ードを用いることにより両方の命令について使用し得る
。このフオーマツトにおいてベクトルレジスタ要素は(
図11の第1オペランド808により特定される)対と
して扱われる。
【0062】シヨートフオーマツトのベクトルレジスタ
要素の使用を図14に示す。各対は1ワードキーアドレ
ス1002(システムメモリ内で)及び1ワードキー1
004を含む1エントリである。16個までのベクトル
レジスタ(シヨートキー形)をマージすることができる
。 ロングキー形(図15)において、偶−奇ベクトルレジ
スタ1102、1104が偶−奇要素1106、110
8と共に対とされてキー長さに2つの付加的なワードを
与える。これはマージを最大8通りに減少させる。
【0063】上述のように、マージされた出力レコード
はキー及びアドレスIDを含み、オペランド2において
識別されるレジスタにより与えられるベースプラススト
ライド(Base plus Stride)(S)に
より特定される位置からシステムメモリ1200に記憶
される。このシヨート及びロングフオーマツトを図16
及び図17にそれぞれ示す。
【0064】他の実施例として、ロング及びシヨートフ
オーマツトコードワードを用いるベクトルマージVME
RGE命令を提供することができる。例えば、シヨート
コードワードを2バイトオフセツト及び2バイトコード
により表し、ロングコードワードを4バイトオフセツト
及び8バイトコードで表すことができる。
【0065】コードワードはアドレスIDと共にマージ
された出力レコードに記憶されて後の再使用に備える。 出力ストリングがマージされるたびに、さらに長い新ス
トリングが形成される。先ず始めにN個のレコードの順
序がランダムであるとする。これは、各1の長さLであ
るN個のストリングについて考えられることである。各
レコードについてのコードワードをすべて「0」である
可能性の最も低いキー値に対し計算するものとする。8
ウエイマージを実行するときはN/8ストリングが創出
され、各ストリングの長さは8である。N/8個の各出
力ストリングはすべて前のウイニングコードワード(そ
のストリング内の)に基づきソートされた順に8個のコ
ードワードを有する。このコードワードはそれ故他のマ
ージにおける使用について有効である。他のパスはそれ
ぞれ長さ64で64個の有効コードワードを有するN/
64個のストリングを創出する。マージごとにコードワ
ードを再使用することによりコードワードの創出に必要
な時間を短縮することができる。この有効性はまた等比
較の発生頻度によつて決まる。ロングキーフオーマツト
は一致するコードワードを減少させるものである。
【0066】上述のように、第3オペランド(QR3)
802はGPR偶−奇対を特定する。偶レジスタは16
ビツトマスクを有する。各ビツトは1つのベクトルレジ
スタに対応する。ベクトルマージシヨートVMEGE 
 SHORT命令においてはそのビツトが「1」であれ
ば、対応するベクトルレジスタがマージオペレーシヨン
に介入する。図12はベクトルレジスタ1、2、3、4
、5、8、9、13及び14の9ウエイマージについて
のベクトルマージシヨートVMERGE  SHORT
マージマスク900を示す。
【0067】ベクトルマージロングVMERGE  L
ONG命令においては奇値を表すビツトは無視される。 偶番号のベクトルレジスタを表すビツトが「1」であれ
ば、対応する偶−奇ベクトルレジスタ対がマージオペレ
ーシヨンに介入する。図13はベクトルレジスタ対2及
び3、4及び5、6及び7、10及び11、14及び1
5の5ウエイマージについてのベクトルマージロングV
MERGE  LONGマージマスク902を示す。
【0068】QR3により特定される奇GPRは入力ス
トリングの長さを含む。「ESA/370」ベクトルフ
アシリテイにおいて、ストリングは31個の使用可能な
ビツトにより作り得る最大の長さまでとし得る。マージ
オペレーシヨンを記述するには2つの場合が考えられ、
すなわち(1)ベクトルレジスタセクシヨンサイズ(S
ection Size) までであつてそれを含むス
トリングの長さ及び(2)セクシヨンサイズより大きい
ストリングの長さである。
【0069】第1の場合には1以上のストリングがベク
トルレジスタに保持される。ツリーソートによる数個の
ストリーム(VREG)のマージングは各ストリームか
ら第1ストリングの第1キーを選択し、選択トーナメン
トを走行させて勝者をピツクアツプすることを含む。勝
者の入力ストリーム(VREG)の第1ストリングの次
のキーが選択されて他のトーナメントが走行する。これ
は各勝者について続く。ストリング1が与えられたスト
リーム内で走行終了すると、マージは「1」だけ減少し
(ストリームが一時的に除去される)、当該マージが残
りのストリームで続行する。各ストリームからの第1ス
トリングのすべてがなくなるとき1つの組合わされた出
力ストリームが創出される。
【0070】元のベクトルレジスタストリームがツリー
に再接続されて第2ストリングのすべてのレコードが同
様にマージされる。完全マージはストリングの数だけ繰
り返される。ベクトルカウント(Vector Cou
nt)(VCT)となると命令は完了する。すべてのベ
クトルレジスタ(Vector Register)が
同一数のストリングをもつようにマージコード化し得る
とする(後述)。各ストリームストリングマージにより
、Nをマージされるベクトルレジスタの数、Sを入力ス
トリングの長さとすると新しいストリング長N×Sを有
する出力マージストリームが生ずる。各ストリーム内に
複数のストリングがあるので、ベクトルカウントVCT
をベクトルカウント、Sをストリング長とするとVCT
/2S回プロセスが繰り返される。ベクトルカウントV
CTを2分する理由は各ソートエントリがベクトルレジ
スタの2要素位置を使うからである。
【0071】ストリーム長がそのベクトルレジスタ長を
越える場合にはセクシヨン化して処理しなければならな
い。マージマスク(Merge Mask)、多重ベク
トルカウント(Multiple Vector Co
unt)及び多重ベクトル割込みインデクスVIX(M
ultiple VIXs) が用いられる。ベクトル
レジスタが空になると、命令が完了し、条件コードがセ
ツトされ部分マージがビツトセツトを完了する。関連す
るストリームが空でなければ他のセクシヨン(又は残部
)がVLOADプロセスによりベクトルレジスタにロー
ドされる。しかしながらストリームが空であれば、両ロ
ードは不可能であり、ベクトルマージVMERGEは関
連するベクトルレジスタがマージから除去された後にの
み回復し得る。これは、ベクトルレジスタマージマスク
(Merge Mask)ビツトをオフにすることによ
り実行される。「1」だけ減少したマージは残りのベク
トルレジスタを用いて回復される。各ベクトルレジスタ
VIXは回復すべき要素を識別する。各ベクトルレジス
タは必要とされるとき再ロードされか又はすべてのデー
タストリームがマージされるまで切離される。
【0072】各データストリームは長さが異なることが
ある。これは各ベクトルレジスタにそれぞれ対応する複
数のベクトルカウントを含む拡張ベクトル状態ワード(
Vector Status Word) を導入する
ことにより実行される。セクシヨンループをヘツドアツ
プ(head UP)するために用いられるロードベク
トルカウントアンドアツプデート(Load Vect
or Count And Update)(VLVC
U)セクシヨニング命令は正常に機能する。各ストリー
ムが空になると、ベクトルレジスタはマージの範囲外に
マスクされそしてこのプロセスはすべてのストリームが
同様に空となるまで繰り返される。ここで重要なことは
、多重ベクトルカウントが、多重ベクトルレジスタ及び
セクシヨンサイズより大きい可変長のストリングを扱う
べく、ロードベクトルカウントアンドアツプデートVL
VCUセツシヨニング命令と共に作業し得ることである
【0073】上述の通り本発明をその最適な実施例に基
づいて図示、説明したが、本発明の精神及び範囲から脱
することなく形式及び詳細構成の双方について種々の変
更を加えてもよい。例えばツリー論理回路302は当該
ツリーのベースノードとして作用する特殊なレジスタを
有する汎用コンピユータ(ベクトルフアシリテイ用に構
成されていない)に関連して用いることができる。さら
に、シヨートキーアプリケーシヨンについては汎用レジ
スタ(充分広いものであれば)がツリーのベースノード
として機能し得る。またNウエイセツト関連キヤツシユ
メモリをベース及びノードデータの保持に使用でき、そ
の場合の各セツトはツリーの1つのレベルに与えられ、
チヤンピオンのID(WID)について前述したように
適切なビツトによりアドレスされる。
【0074】
【発明の効果】上述の通り本発明によれば、中央処理装
置のソート及びマージタスクをはずすことにより1回の
クロツクサイクルによつて勝者を決定できるようにトー
ナメントツリーマージ及びソートの性能を高めることが
できる。かくして、従来中央処理装置に負荷されていた
多大な負担を除去することができる。
【図面の簡単な説明】
【図1】図1は従来のソートプロセツサシステムを示す
略線図である。
【図2】図2は従来のデータベース管理システムを示す
略線図である。
【図3】図3は本発明の一実施例によるツリー論理回路
を含む「ESA/370」ベクトルフアシリテイを示す
ブロツク図である。
【図4】図4は図3のツリー論理回路内で使用する、ノ
ード出力選択論理回路及び比較結果を発生するための論
理回路とを含む4レベルハードウエアツリーの一実施例
を示すブロツク図である。
【図5】図5は図4のツリーの更新ノード及びレジスタ
位置にキーを書き込むための、図5及び図6のツリー論
理回路において使用するノード入力ゲート論理回路の一
実施例を示すブロツク図である。
【図6】図6は図4のツリーの更新ノード及びレジスタ
位置にキーを書き込むための、図5及び図6のツリー論
理回路において使用するノード入力ゲート論理回路の一
実施例を示すブロツク図である。
【図7】図7は図4の論理回路により発生する比較結果
を用いて1回の比較サイクルによりトーナメントチヤン
ピオンを決定するための、図5及び図6のツリー論理回
路に使用するチヤンピオン決定及び出力ゲート論理回路
の一実施例を示すブロツク図である。
【図8】図8は図4の論理回路により発生する比較結果
を用いて1回の比較サイクルによりトーナメントチヤン
ピオンを決定するための、図5及び図6のツリー論理回
路に使用するチヤンピオン決定及び出力ゲート論理回路
の一実施例を示すブロツク図である。
【図9】図9は図3〜8のノードレジスタ、ベクトルレ
ジスタ、ウイニングキーレジスタ間の対応を示す、図2
のトーナメントツリーを示す略線図である。
【図10】図10は次の比較サイクル後の図10のトー
ナメントツリーの状態を示す略線図である。
【図11】図11は図3のベクトルフアシリテイによる
使用のためのベクトルマージ(VMERGE)命令の一
実施例を示すブロツク図である。
【図12】図12は図11のフオーマツトのシヨートキ
ーベクトルマージVMERGE命令のQR3オペランド
により特定されるマージマスクを詳細に示すブロツク図
である。
【図13】図13は図11に示すフオーマツトのロング
キーベクトルマージVMERGE命令のQR3オペラン
ドにより特定されるマージマスクを詳細に示すブロツク
図である。
【図14】図14はベクトルマージVMERGE命令の
シヨートキー形を用いるベクトルレジスタデータのフオ
ーマツトを示すブロツク図である。
【図15】図15はベクトルマージVMERGE命令の
ロングキー形を用いるベクトルレジスタデータのフオー
マツトを示すブロツク図である。
【図16】図16はシヨートキーマージ出力レコードの
記憶フオーマツトを示すブロツク図である。
【図17】図17はロングキーマージ出力レコードの記
憶フオーマツトを示すブロツク図である。
【図18】図18は図4〜図8の論理回路を用いるベク
トルマージオペレーシヨンを示すフローチヤートである
【符号の説明】
300……ベクトルプロセツサ、302……ツリー論理
回路、304……ベクトルレジスタ、900……VME
RGEシヨートマージマスク、902……VMERGE
ロングマージマスク、1200……システムメモリ。

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】トーナメント形ツリー構造における第1の
    複数のキーを記憶するためのツリー手段と、単一比較サ
    イクルにおいてトーナメントチヤンピオンを決定するよ
    うに上記トーナメント形ツリー構造を導出するためのレ
    ゾリユーシヨン手段と、上記ツリー手段及びレゾリユー
    シヨン手段に接続して上記ツリー手段を上記レゾリユー
    シヨン手段に応じて次の比較サイクルの際のデータによ
    り更新するための更新手段とを具えることを特徴とする
    キー処理装置。
  2. 【請求項2】さらに、  上記トーナメント形ツリー構
    造に接続することにより上記キーの部分集合を含む順序
    付けリストを上記ツリー構造に送るようになされた複数
    のデータストリーム手段を具えることを特徴とする請求
    項1に記載のキー処理装置。
  3. 【請求項3】上記トーナメント形ツリー構造は多数の記
    憶装置を含み、上記各記憶装置は上記キーのうちの1つ
    のキーを示すキーデータを記憶するキー記憶手段及び、
    上記1つのキーを発生する上記多数のデータストリーム
    手段のうちの1つを示すソース識別データを記憶するア
    ドレス記憶手段とを具えることを特徴とする請求項2に
    記載のキー処理装置。
  4. 【請求項4】上記記憶装置は上記データストリーム手段
    及び上記記憶装置のうちのルートとの間に1つずつ複数
    のパスを形成するように接続されており、さらに、上記
    記憶装置は  上記記憶装置のうちの上記ルートのアド
    レス記憶手段に接続することにより上記記憶装置のうち
    の上記ルートに保持されるソース識別データに応じて上
    記パスのうちの1つを選択するようになされている選択
    手段とを具えることを特徴とする請求項3に記載のキー
    処理装置。
  5. 【請求項5】上記キーはオフセツト値コードワードによ
    り示されることを特徴とする請求項4に記載のキー処理
    装置。
  6. 【請求項6】ルートレジスタと、上記ルートレジスタに
    接続することにより複数のデータパスを形成するような
    複数のノードレジスタと、上記ノードレジスタにそれぞ
    れ接続した複数のベースレジスタと、キーを保持するた
    めの第1フイールド及び当該キーを発生させた上記ベー
    スレジスタのうちの1つを識別するアドレスデータを保
    持するための第2フイールドを有するチヤンピオンキー
    レジスタと、上記チヤンピオンキーレジスタに接続する
    ことにより上記アドレスデータに応じて上記データパス
    のうちの1つを選択するツリー手段と、上記ツリー手段
    及びチヤンピオンキーレジスタに接続することにより単
    一の比較サイクルにおいて、上記ツリー手段により選択
    されたデータパスを形成するレジスタ内のデータからト
    ーナメントチヤンピオンを決定しかつ上記トーナメント
    チヤンピオン及びその元のベースレジスタを識別するデ
    ータを上記チヤンピオンキーレジスタに書込む決定手段
    と、上記ツリー手段に接続することにより上記ツリー手
    段により選択されたデータパスを形成するレジスタ内の
    データを更新する更新手段とを具えることを特徴とする
    データベースレコード処理装置。
  7. 【請求項7】上記ベースレジスタは複数の要素を有する
    ことにより競合する各キーを保持するようになされたベ
    クトルレジスタであり、さらに、上記各ベクトルレジス
    タは上記チヤンピオンキーレジスタに接続することによ
    り上記要素の1つをポイントしかつ上記トーナメントチ
    ヤンピオンが上記ベクトルレジスタのうちの1つから発
    生した上記第2フイールドによる表示に応じて上記ポイ
    ンタを増加させるようになされたインデクス手段を具え
    ることを特徴とする請求項6に記載のデータベースレコ
    ード処理装置。
  8. 【請求項8】複数のベクトルレジスタと、上記ベクトル
    レジスタからデータを受け取るために接続され、かつ上
    記ベクトルレジスタのうちの1つを選択するための第1
    アドレス入力を含む第1マルチプレクサと、複数の汎用
    レジスタと、上記汎用レジスタからデータを受けるため
    に接続され、かつ上記汎用レジスタのうちの1つを選択
    するための第2アドレス入力を含む第2のマルチプレク
    サと、それぞれ上記第1及び第2マルチプレクサから出
    力を受ける取るために接続ささた比較器と、キーを保持
    する第1フイールド及び上記ベクトルレジスタのうちの
    1つを識別するデータを保持する第2フイールドを有し
    、かつ上記各第1及び第2アドレス入力に上記第2フイ
    ールドの少くとも一部を与えるように接続されるデータ
    レジスタと、上記第1及び第2マルチプレクサの出力並
    びに上記比較器の出力を受け取るように接続され、かつ
    上記比較器の上記出力に応じて上記データレジスタに上
    記出力のうちの選択された1つを書込むように接続され
    る複数の論理ゲートとを具えることを特徴とするデータ
    ベースレコード処理装置。
  9. 【請求項9】複数のベクトルレジスタと、上記ベクトル
    レジスタに結合される算術論理ユニツトと、上記ベクト
    ルレジスタに結合されるマルチプレクサと、上記ベクト
    ルレジスタに結合され、かつ上記ベクトルレジスタによ
    り送り込まれるベースを含むハードウエアトーナメント
    ツリー及び単一の比較サイクルにおいてトーナメントチ
    ヤンピオンを決定するように上記トーナメントツリーを
    解決するための手段を含むツリー論理回路とを具えるこ
    とを特徴とするベクトルプロセツサ。
JP3229422A 1990-10-18 1991-08-15 データベースレコード処理装置 Expired - Lifetime JPH07111677B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/599609 1990-10-18
US07/599,609 US5287494A (en) 1990-10-18 1990-10-18 Sorting/merging tree for determining a next tournament champion in each cycle by simultaneously comparing records in a path of the previous tournament champion

Publications (2)

Publication Number Publication Date
JPH04247571A true JPH04247571A (ja) 1992-09-03
JPH07111677B2 JPH07111677B2 (ja) 1995-11-29

Family

ID=24400325

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3229422A Expired - Lifetime JPH07111677B2 (ja) 1990-10-18 1991-08-15 データベースレコード処理装置

Country Status (3)

Country Link
US (1) US5287494A (ja)
EP (1) EP0481248A3 (ja)
JP (1) JPH07111677B2 (ja)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5355478A (en) * 1991-12-23 1994-10-11 International Business Machines Corporation Method for avoiding cache misses during external tournament tree replacement sorting procedures
US5619693A (en) * 1994-05-02 1997-04-08 Tandem Computers Incorporated Method for sorting and storing data employing dynamic sort tree reconfiguration in volatile memory
US5487166A (en) * 1994-09-19 1996-01-23 Amdahl Corporation Computer with two-dimensional merge tournament sort using offset-value coding
US5701473A (en) * 1995-03-17 1997-12-23 Unisys Corporation System for optimally storing a data file for enhanced query processing
US6282541B1 (en) * 1997-07-28 2001-08-28 International Business Machines Corporation Efficient groupby aggregation in tournament tree sort
US9197599B1 (en) * 1997-09-26 2015-11-24 Verizon Patent And Licensing Inc. Integrated business system for web based telecommunications management
JP3344559B2 (ja) 1998-06-19 2002-11-11 三菱電機株式会社 マージソート処理装置
US6427148B1 (en) 1998-11-09 2002-07-30 Compaq Computer Corporation Method and apparatus for parallel sorting using parallel selection/partitioning
US6285994B1 (en) 1999-05-25 2001-09-04 International Business Machines Corporation Method and system for efficiently searching an encoded vector index
US6542896B1 (en) * 1999-07-20 2003-04-01 Primentia, Inc. System and method for organizing data
US6424969B1 (en) * 1999-07-20 2002-07-23 Inmentia, Inc. System and method for organizing data
US6571244B1 (en) * 1999-10-28 2003-05-27 Microsoft Corporation Run formation in large scale sorting using batched replacement selection
MXPA02004748A (es) * 1999-11-10 2004-01-19 Thomson Licensing Sa Un metodo para la recuperacion de desastre para un medio de disco de re-escritrua.
GB2361781B (en) * 2000-04-25 2004-12-29 Ubinetics Ltd Interleaving and de-interleaving of telecommunications signals
US6738769B2 (en) 2001-01-11 2004-05-18 International Business Machines Corporation Sorting multiple-typed data
US6944619B2 (en) 2001-04-12 2005-09-13 Primentia, Inc. System and method for organizing data
US7797271B1 (en) * 2001-06-18 2010-09-14 Versata Development Group, Inc. Custom browse hierarchies for subsets of items in a primary hierarchy
US20040158561A1 (en) * 2003-02-04 2004-08-12 Gruenwald Bjorn J. System and method for translating languages using an intermediate content space
JP4502223B2 (ja) * 2007-12-05 2010-07-14 株式会社エスグランツ ビット列のマージソート装置、方法及びプログラム
US9405538B2 (en) * 2012-12-28 2016-08-02 Intel Corporation Functional unit having tree structure to support vector sorting algorithm and other algorithms
US9606803B2 (en) 2013-07-15 2017-03-28 Texas Instruments Incorporated Highly integrated scalable, flexible DSP megamodule architecture
US11106462B2 (en) 2019-05-24 2021-08-31 Texas Instruments Incorporated Method and apparatus for vector sorting
US9251218B2 (en) 2013-08-07 2016-02-02 International Business Machines Corporation Tunable hardware sort engine for performing composite sorting algorithms
US9830354B2 (en) 2013-08-07 2017-11-28 International Business Machines Corporation Accelerating multiple query processing operations
US9495418B2 (en) 2013-08-07 2016-11-15 International Business Machines Corporation Scalable acceleration of database query operations
US9619499B2 (en) * 2013-08-07 2017-04-11 International Business Machines Corporation Hardware implementation of a tournament tree sort algorithm
US10061792B2 (en) * 2013-12-31 2018-08-28 Sybase, Inc. Tiered index management
US9268863B2 (en) 2014-06-03 2016-02-23 International Business Machines Corporation Hierarchical in-memory sort engine
US10310813B2 (en) 2014-12-29 2019-06-04 International Business Machines Corporation Hardware implementation of a tournament tree sort algorithm using an external memory
US20190258766A1 (en) * 2016-09-20 2019-08-22 Inside Secure Method and apparatus for obfuscating an integrated circuit with camouflaged gates and logic encryption
US10896022B2 (en) * 2017-11-30 2021-01-19 International Business Machines Corporation Sorting using pipelined compare units
US10810207B2 (en) 2018-04-03 2020-10-20 Oracle International Corporation Limited memory and statistics resilient hash join execution
US10579332B1 (en) * 2018-08-31 2020-03-03 International Business Machines Corporation Hardware sort accelerator sharing first level processor cache
US10691412B2 (en) 2018-08-31 2020-06-23 International Business Machines Corporation Parallel sort accelerator sharing first level processor cache
US10725738B2 (en) * 2018-08-31 2020-07-28 International Business Machines Corporation Adaptive sort accelerator sharing first level processor cache
US11169804B2 (en) 2018-09-24 2021-11-09 Oracle International Corporation Method for vectorizing d-heaps using horizontal aggregation SIMD instructions
US11042356B2 (en) 2019-02-28 2021-06-22 International Business Machines Corporation Tournament tree rollback for payload write exception
US11016778B2 (en) * 2019-03-12 2021-05-25 Oracle International Corporation Method for vectorizing Heapsort using horizontal aggregation SIMD instructions
US11573793B2 (en) 2020-03-18 2023-02-07 Oracle International Corporation Lazy push strategies for vectorized D-Heaps
US11593106B1 (en) 2021-09-24 2023-02-28 Apple Inc. Circuits and methods for vector sorting in a microprocessor

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63128429A (ja) * 1986-11-19 1988-06-01 Hitachi Ltd 並列ジヨイン処理方法およびそのための装置
JPS63299413A (ja) * 1987-05-29 1988-12-06 Ricoh Co Ltd 2進木における分岐方向判定方式
JPS6417127A (en) * 1987-07-10 1989-01-20 Matsushita Electric Ind Co Ltd Data processor
JPS6426936A (en) * 1987-07-23 1989-01-30 Matsushita Electric Ind Co Ltd Data processor
JPH01244528A (ja) * 1988-03-25 1989-09-28 Fujitsu Ltd データベース問い合わせ式処理方式

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3713107A (en) * 1972-04-03 1973-01-23 Ncr Firmware sort processor system
US4295206A (en) * 1979-06-06 1981-10-13 Ncr Canada Ltd.-Ncr Canada Ltee Document sorting method
US4945471A (en) * 1981-04-01 1990-07-31 Teradata Corporation Message transmission system for selectively transmitting one of two colliding messages based on contents thereof
JPS583031A (ja) * 1981-06-30 1983-01-08 Fujitsu Ltd リレ−シヨナル・モデルにおけるジヨイン演算処理方式
US4567572A (en) * 1983-02-22 1986-01-28 The United States Of America As Represented By The Director Of The National Security Agency Fast parallel sorting processor
US4791555A (en) * 1983-10-24 1988-12-13 International Business Machines Corporation Vector processing unit
JPH0724036B2 (ja) * 1983-12-23 1995-03-15 株式会社日立製作所 データベース処理方法
JPH077385B2 (ja) * 1983-12-23 1995-01-30 株式会社日立製作所 データ処理装置
JPS6191723A (ja) * 1984-10-12 1986-05-09 Nec Corp 順序監視分類処理方式
US4799152A (en) * 1984-10-12 1989-01-17 University Of Pittsburgh Pipeline feedback array sorter with multi-string sort array and merge tree array
JPS62208167A (ja) * 1986-03-10 1987-09-12 Hitachi Ltd ベクトル処理装置
JPS6478369A (en) * 1987-09-19 1989-03-23 Fujitsu Ltd Vector data processor
US5068822A (en) * 1988-03-16 1991-11-26 Digital Equipment Corporation Single-stage extensible sorter for sorting data and efficiently reading out sorted data, incorporating single-bit devices
US5121493A (en) * 1990-01-19 1992-06-09 Amalgamated Software Of North America, Inc. Data sorting method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63128429A (ja) * 1986-11-19 1988-06-01 Hitachi Ltd 並列ジヨイン処理方法およびそのための装置
JPS63299413A (ja) * 1987-05-29 1988-12-06 Ricoh Co Ltd 2進木における分岐方向判定方式
JPS6417127A (en) * 1987-07-10 1989-01-20 Matsushita Electric Ind Co Ltd Data processor
JPS6426936A (en) * 1987-07-23 1989-01-30 Matsushita Electric Ind Co Ltd Data processor
JPH01244528A (ja) * 1988-03-25 1989-09-28 Fujitsu Ltd データベース問い合わせ式処理方式

Also Published As

Publication number Publication date
JPH07111677B2 (ja) 1995-11-29
EP0481248A3 (en) 1993-07-28
US5287494A (en) 1994-02-15
EP0481248A2 (en) 1992-04-22

Similar Documents

Publication Publication Date Title
JPH04247571A (ja) データベースレコード処理装置
US5896529A (en) Branch prediction based on correlation between sets of bunches of branch instructions
US5619713A (en) Apparatus for realigning database fields through the use of a crosspoint switch
US5349684A (en) Sort and merge system using tags associated with the current records being sorted to lookahead and determine the next record to be sorted
JP2668438B2 (ja) データ検索装置
US20070156685A1 (en) Method for sorting data using SIMD instructions
JPH0231419B2 (ja)
JPH02109167A (ja) 文字列検索方法及び装置
US5111465A (en) Data integrity features for a sort accelerator
JP3344559B2 (ja) マージソート処理装置
US5142687A (en) Sort accelerator with rebound sorter repeatedly merging sorted strings
EP0478006A2 (en) Method and apparatus for searching data
US5185886A (en) Multiple record group rebound sorter
JPH09503327A (ja) 可変長の文字ストリング用のプロセッサ
JPS61210478A (ja) ベクトル処理装置
US5206947A (en) Stable sorting for a sort accelerator
JPS6142031A (ja) ソ−ト処理装置
US6513053B1 (en) Data processing circuit and method for determining the first and subsequent occurences of a predetermined value in a sequence of data bits
US5644761A (en) Basic operations synchronization and local mode controller in a VLSI central processor
Mishina et al. String matching on IDP: A string matching algorithm for vector processors and its implementation
JP2590866B2 (ja) データ検索装置
JPH06202849A (ja) 情報処理装置