JPH0580976A - データ処理装置 - Google Patents

データ処理装置

Info

Publication number
JPH0580976A
JPH0580976A JP3268184A JP26818491A JPH0580976A JP H0580976 A JPH0580976 A JP H0580976A JP 3268184 A JP3268184 A JP 3268184A JP 26818491 A JP26818491 A JP 26818491A JP H0580976 A JPH0580976 A JP H0580976A
Authority
JP
Japan
Prior art keywords
data
input
input buffer
merge
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP3268184A
Other languages
English (en)
Inventor
Hiroyoshi Yamada
広佳 山田
Takao Iwasaki
孝夫 岩崎
Kazunori Shimakawa
和典 島川
Tomohiko Yamada
朝彦 山田
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP3268184A priority Critical patent/JPH0580976A/ja
Publication of JPH0580976A publication Critical patent/JPH0580976A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】データ入力と入力データに対するマージ処理と
を並行して実行できるようにし、2次記憶装置上のデー
タを高速にマージする。 【構成】マージ処理対象の各データ列S1,S2毎に2
個の入力バッファB11,B12、B21,B22が設
けられており、例えば、入力バッファB11とB12に
格納された部分ソート列S1,S2間のデータがマージ
処理されている期間中に次のデータを別のバッファに入
力する。したがって、磁気ディスク装置17からのデー
タ入力と入力データに対するマージ処理とを並行して実
行できるようになり、磁気ディスク装置17上のデータ
を高速にマージすることが可能となる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、ホスト装置からの要
求に応じて演算対象のファイルデータに対してソート等
の演算処理を実行する演算処理装置を備えたデータ処理
装置に関する。
【0002】
【従来の技術】一般に、コンピュータシステムにおいて
は、ソート処理や関係データベースの検索系処理等を高
速に実行するために専用のデータベース演算処理装置が
設けられている。このデータベース演算処理装置はハー
ドウェアソータと称される演算回路を備えており、この
演算回路を用いることによってソートや関係代数演算を
高速に実行する。
【0003】このデータベース演算処理装置において、
ホスト装置の2次記憶装置上にあるデータをマージ処理
する場合、マージ対象のデータ列は2次記憶装置から内
部メモリに入力される。しかし、マージ対象データのデ
ータ量が多く内部メモリの記憶容量を越えるような場合
には、そのマージ対象データ全てを1度に内部メモリに
入力することは出来ない。
【0004】このため、従来のデータベース演算処理装
置においては、まず、一定量のデータを内部メモリに入
力してからマージ処理を開始し、内部メモリにマージ対
象のデータがなくなると再度一定量のデータを内部メモ
リに入力していた。
【0005】このように、従来では、一定量単位のデー
タ入力とその入力データに対するマージ処理がシリアル
に行われているので、マージ対象のデータがなくなって
から次のデータが入力されるまでの期間、マージ処理の
実行が完全に停止されてしまう。このため、全体の処理
時間は、データ入力に要する時間とマージ処理に要する
時間との単純和となり、マージ対象のデータ全てをマー
ジするのに多くの時間が必要となる欠点があった。
【0006】
【発明が解決しようとする課題】従来では、一定量単位
のデータ入力とその入力データに対するマージ処理がシ
リアルに行われており、マージ対象のデータがなくなっ
てから次のデータが入力されるまでの期間中、マージ処
理の実行が完全に停止されてしまう欠点があった。
【0007】この発明はこのような点に鑑みなされたも
ので、データ入力と入力データに対するマージ処理とを
並行して実行できるようにし、2次記憶装置上のデータ
を高速にマージすることができるデータ処理装置を提供
することを目的とする。
【0008】
【課題を解決するための手段および作用】この発明は、
ホスト装置と、演算対象のファイルデータが格納される
2次記憶装置と、前記2次記憶装置を直接アクセスする
ためのパスを有し、前記ホスト装置からの要求に応じて
前記演算対象のファイルデータに対して所定の演算処理
を実行する演算処理装置とを備えたデータ処理装置にお
いて、前記演算処理装置に、マージ処理対象の各データ
列毎に複数個設けられ各データ列毎に複数のデータを格
納する入力バッファ群と、これら入力バッファ群に格納
された異なるデータ列間におけるデータを順次マージ処
理し、それらデータを整列化して取り出すマージ処理手
段と、前記入力バッファ群の中で前記マージ処理手段に
よりデータが取り出されて空き状態に設定された入力バ
ッファに対し、対応するデータ列のデータを前記2次記
憶装置から入力するデータ入力手段とを具備し、前記マ
ージ処理手段のマージ処理中に次のデータを入力バッフ
ァに入力することを特徴とする。
【0009】このデータ処理装置の演算処理装置におい
ては、マージ処理対象の各データ列毎に複数個の入力バ
ッファが設けられているので、入力バッファ群の所定の
バッファに格納された異なるデータ列間のデータがマー
ジ処理されている期間中に次のデータを別のバッファに
入力することができる。したがって、データ入力と入力
データに対するマージ処理とを並行して実行できるよう
になり、2次記憶装置上のデータを高速にマージするこ
とが可能となる。
【0010】
【実施例】以下、図面を参照してこの発明の実施例を説
明する。
【0011】図1にはこの発明の一実施例に係わるデー
タ処理装置の全体のシステム構成が示されている。この
データ処理装置は、ホストコンピュータ10と、データ
ベース演算処理装置(データベースエンジン;DBE)
16と、磁気ディスク装置17とによって構成されてい
る。ホストコンピュータ10は、CPU11、主記憶装
置12、第1および第2のチャネル装置14,15によ
って構成されており、これらCPU11、主記憶装置1
2、およびチャネル装置14,15はシステムバス13
を介して相互接続されている。
【0012】ホストコンピュータ10とデータベース演
算処理装置16はチャネル装置14によって接続され、
またホストコンピュータ10と磁気ディスク装置17は
チャネル装置15によって接続されている。さらに、デ
ータベース演算処理装置16と磁気ディスク装置17は
専用のアクセスパス18を介して接続されている。
【0013】CPU11は、ホストコンピュータ10全
体の制御を司るものであり、データベース演算処理装置
16に対してソート処理や関係代数演算等の各種演算処
理の実行を依頼する。また、この演算処理の依頼に際
し、CPU11は、磁気ディスク装置17の一部の記憶
領域を作業ファイル171としてデータベース演算処理
装置16に割り当てる。この作業ファイル171の割り
当ては、CPU11が、どの記憶領域を作業ファイルと
して使用するのかを指定する作業ファイルコマンドをデ
ータベース演算処理装置16に発行することによって行
われる。作業ファイル171の大きさは、演算対象の入
力ファイルの大きさに基づいて決定される。
【0014】主記憶装置12には、データベース演算処
理装置16に演算対象ファイルや演算内容を指示するた
めのコマンドや、作業ファイルを指定する作業ファイル
コマンドが格納される。
【0015】データベース演算処理装置(DBE)16
は、CPU11からのコマンドに基づいて演算対象ファ
イルのデータに対して演算処理を実行するものであり、
演算対象ファイルの入力および演算結果の出力、さらに
は演算の中間結果の入出力のために、パス18を介して
磁気ディスク装置17を直接的にアクセスする。
【0016】このデータベース演算処理装置(DBE)
16は、エンジンインターフェースプロセッサ(EI
P)161、エンジン制御プロセッサ(ECP)16
2、大容量メモリ(EBDM)163、ハードウェアソ
ータ制御プロセッサ(ECAM)164、並列ソーティ
ングモジュール(PSOM)165、および並列関係代
数演算モジュール(PRAM)166によって構成され
ている。
【0017】エンジンインターフェースプロセッサ(E
IP)161、エンジン制御プロセッサ(ECP)16
2、およびハードウェアソータ制御プロセッサ(ECA
M)164の3台のプロセッサは、内部バス16によっ
て相互接続されており、大容量メモリ(EBDM)16
3を共有メモリとする密結合のマルチプロセッサを構成
している。大容量メモリ(EBDM)163は、3台の
各プロセッサの共通のアドレス空間上に配置されてい
る。また、これら3台のプロセッサ、つまりエンジンイ
ンターフェースプロセッサ(EIP)161、エンジン
制御プロセッサ(ECP)162、およびハードウェア
ソータ制御プロセッサ(ECAM)164には機能分散
がなされている。この場合、それぞれの固有の役割を効
率良く実行するために、これら各プロセッサは、密結合
ながらそれぞれに適した独立のモニタによって動作制御
されるように構成されている。
【0018】エンジンインターフェースプロセッサ(E
IP)161、エンジン制御プロセッサ(ECP)16
2、およびハードウェアソータ制御プロセッサ(ECA
M)164の機能分散は、次のようになされている。
【0019】すなわち、エンジンインターフェースプロ
セッサ(EIP)161は、ホストコンピュータ10と
データベース演算処理装置16間の通信を行うと共に、
磁気ディスク装置17のディスクコントローラにもパス
18を介して接続されており、磁気ディスク装置17と
のデータ入出力を直接的に制御する。また、エンジンイ
ンターフェースプロセッサ(EIP)161は、磁気デ
ィスク装置17にデータを出力する際、出力ファイルの
再構成処理も行う。
【0020】ホストコンピュータ10との間の通信にお
いては、エンジンインターフェースプロセッサ(EI
P)161は、第1のチャネル装置14を介してCPU
11から送られてくるコマンドを受信し、それをエンジ
ン制御プロセッサ(ECP)162に送信する。また、
エンジンインターフェースプロセッサ(EIP)161
は、エンジン制御プロセッサ(ECP)162から送ら
れてくるコマンド結果としてのステータスを受信し、そ
れを第1のチャネル装置14を介してCPU11に返信
する。
【0021】磁気ディスク装置17との間のデータ入出
力処理においては、エンジンインターフェースプロセッ
サ(EIP)161は、エンジン制御プロセッサ(EC
P)162からの入出力要求を受け付け、大容量メモリ
(EBDM)163と磁気ディスク装置17との間でデ
ータ転送を行う。このデータ転送には、演算対象ファイ
ルを磁気ディスク装置17から入力するデータ入力処
理、ソート等の演算の最終結果を磁気ディスク装置17
へ出力するデータ出力処理、所定のデータ範囲毎に得ら
れるソート処理の中間結果(部分ソート列)を磁気ディ
スク装置17の作業ファイル171との間で入出力する
中間結果入出力処理がある。
【0022】エンジン制御プロセッサ(ECP)162
は、エンジンインターフェースプロセッサ(EIP)1
61、大容量メモリ(EBDM)163、およびハード
ウェア制御プロセッサ(ECAM)164を内部バス1
67を介して制御すると共に、作業ファイル171から
大容量メモリ(EBDM)163に入力される部分ソー
ト列のマージ処理を行い、最終演算結果を求める。
【0023】大容量メモリ(EBDM)163は、磁気
ディスク装置17から読み出された演算対象のファイル
データ、ハードウェア制御プロセッサ(ECAM)16
4、並列ソーティングモジュール(PSOM)165、
および並列関係代数演算モジュール(PRAM)166
によるソート処理における所定データ範囲毎の部分ソー
ト列、さらには、エンジン制御プロセッサ(ECP)1
62による部分ソート列のマージ処理結果等を格納する
共有メモリである。
【0024】大容量メモリ(EBDM)163の記憶容
量の問題から、部分ソート列全てについてはその大容量
メモリ(EBDM)163に保持できない場合、ハード
ウェアソータ制御プロセッサ(ECAM)164、並列
ソーティングモジュール(PSOM)165、および並
列関係代数演算モジュール(PRAM)166による演
算で得られた部分ソート列は、作業ファイル171に順
次出力される。そして、それら部分ソート列のマージ処
理を行う際には、各部分ソート列が一定のデータ量単位
で作業ファイル171から大容量メモリ(EBDM)1
63に入力される。ここで、大容量メモリ(EBDM)
163には、マージ対象の各部分ソート列毎に2個の入
力バッファが割り当てられており、最初は、マージ対象
の各部分ソート列毎に2バッファ分づつのレコードが作
業ファイル171からその大容量メモリ(EBDM)1
63に読み込まれる。そして、エンジン制御プロセッサ
(ECP)162によるマージ処理によって入力バッフ
ァが空き状態になった部分ソート列については、次の1
バッファ分のレコードが作業ファイル171からその空
きバッファに読み込まれるという要求充足型の入力処理
が行われる。
【0025】ハードウェアソータ制御プロセッサ(EC
AM)164は、エンジン制御プロセッサ(ECP)1
62からの指令に基づいて、並列ソーティングモジュー
ル(PSOM)165および並列関係代数演算モジュー
ル(PRAM)166による演算を制御する。
【0026】この場合、ハードウェアソータ制御プロセ
ッサ(ECAM)164は、大容量メモリ(EBDM)
163上のデータを並列ソーティングモジュール(PS
OM)165に入力し、並列関係代数演算モジュール
(PRAM)166から出力された演算結果を大容量メ
モリ(EBDM)163上に格納するが、並列ソーティ
ングモジュール(PSOM)165へのデータ入力に際
しては、所定のデータ範囲毎にキー切り出し処理を実行
する。このキー切り出し処理においては、ハードウェア
ソータ制御プロセッサ(ECAM)164は、演算対象
データ範囲の各レコードから演算に必要なキーのみを切
り出し、それにレコード識別番号(大容量メモリ163
上におけるレコードの先頭アドレス)を付加して並列ソ
ーティングモジュール(PSOM)165へ送出する。
【0027】並列ソーティングモジュール(PSOM)
165は、ハードウェアソータ制御プロセッサ(ECA
M)164によって駆動され、ソートを並列に実行する
専用のハードウェア回路であり、並列関係代数演算モジ
ュール(PRAM)166に接続されている。この並列
ソーティングモジュール(PSOM)165は、パイプ
ラインマージソータと称されるものであり、2−ウェイ
マージを行う複数のソートセルをカスケード接続してな
る。
【0028】並列関係代数演算モジュール(PRAM)
166は、関係型データベースにおけるJOIN(結
合)やRESTRICT(制約)といった関係代数演算
を並列に実行する専用のハードウェア回路であり、並列
ソーティングモジュール(PSOM)165からソート
されたデータを入力し、演算結果をハードウェアソータ
制御プロセッサ(ECAM)164に出力する。ソート
処理だけを実行する場合には、並列関係代数演算モジュ
ール(PRAM)166は、最終段のソートセルとして
機能する。また、JOIN(結合)やRESTRICT
(制約)といった関係代数演算を行う場合には、並列ソ
ーティングモジュール(PSOM)165のソートセル
を数段用いたソート後に、並列関係代数演算モジュール
(PRAM)166に入力される。
【0029】このように、エンジンインターフェースプ
ロセッサ(EIP)161、エンジン制御プロセッサ
(ECP)162、およびハードウェアソータ制御プロ
セッサ(ECAM)164には、それぞれ作業ファイル
171を用いた拡張処理のための機能が分散されてい
る。この場合、これらプロセッサは、大容量メモリ(E
BDM)163上のバッファのやりとりを除けば非同期
に動作し、並行して各機能を実行する。
【0030】特に、エンジン制御プロセッサ(ECP)
162によるマージ処理とエンジンインターフェースプ
ロセッサ(EIP)161による部分ソート列の入力処
理については、完全な並行処理が実現されている。すな
わち、大容量メモリ(EBDM)163上においてはマ
ージ処理対象の各部分ソート列毎に2個の入力バッファ
が設けられているので、エンジン制御プロセッサ(EC
P)162によるマージ処理で使用される入力バッファ
と、エンジンインターフェースプロセッサ(EIP)1
61による部分ソート列の入力処理で使用される入力バ
ッファとは競合されない。しかも、データベース演算処
理装置16内の全体の制御を行うエンジン制御プロセッ
サ(ECP)162上にはマルチタスク環境が実現され
ており、エンジンインターフェースプロセッサ(EI
P)161の入力処理を制御するタスクと、マージ処理
を実行するタスクが並行して動作する。
【0031】このため、マージと入力を別プロセッサで
行うというシステム構成を十分に生かせ、マージ処理の
実行中に次のデータを入力することができ、マージ処理
と入力処理の並行処理を実現できる。
【0032】この他にも、作業ファイル171を用いた
拡張ソートにおいては、次のような並行処理が行われ
る。拡張ソートは、演算対象データの入力処理、所定デ
ータ範囲毎のソート処理、このソート処理で生成される
部分ソート列の出力処理によってソートフェーズが実行
され、部分ソート列の入力処理、マージ処理、出力処理
によってマージフェーズが実行される。この場合、ソー
トフェーズにおいては、ハードウェアソータ制御プロセ
ッサ(ECAM)164の制御によるソート演算処理
は、エンジンインターフェースプロセッサ(EIP)1
61による演算対象データの入力処理と並行して実行さ
れる。また、マージフェーズにおいては、前述のように
エンジンインターフェースプロセッサ(EIP)161
による部分ソート列の入力処理とエンジン制御プロセッ
サ(ECP)162によるマージ処理とが並行して行わ
れる他、エンジンインターフェースプロセッサ(EI
P)161による演算結果出力処理もこれら入力処理お
よびマージ処理と並行して実行される。
【0033】次に、図1のデータ処理装置によって実行
される拡張ソート処理の動作を説明する。
【0034】まず、データ処理装置全体の処理の流れを
説明する。
【0035】CPU11は、主記憶装置12上にあるソ
ート等の演算指定コマンドと作業ファイルコマンドをシ
ステムバス13を介してデータベース演算処理装置16
に発行する。それらコマンドは大容量メモリ(EBD
M)163に格納される。エンジン制御プロセッサ(E
CP)162は、そのコマンドの解析を行い、作業ファ
イル171の位置及び大きさを認識すると共に、処理対
象となるデータをエンジンインターフェースプロセッサ
(EIP)161を介して磁気ディスク装置17から大
容量メモリ(EBDM)163に一定量単位で部分的に
読み込み、それをハードウェアソータ制御プロセッサ
(ECAM)164に渡して処理させる。ハードウェア
ソータ制御プロセッサ(ECAM)164は、並列ソー
ティングモジュール(PSOM)165と並列関係代数
演算モジュール(PRAM)166を用いてソート処理
を実行し、処理が終了すればエンジン制御プロセッサ
(ECP)162に報告を行う。ハードウェアソータ制
御プロセッサ(ECAM)164から中間結果として得
られる複数の部分ソート列は、作業ファイル171に順
次送られる。この後、エンジン制御プロセッサ(EC
P)162は、作業ファイル171から入力された部分
ソート列をマージ処理して、最終ソート結果を求める。
エンジンインターフェースプロセッサ(EIP)161
は、処理結果をディスク装置17に出力し、そして与え
られたコマンドに対応する応答をシステムバス13を介
してCPU11に返す。
【0036】次に、図2および図3のフローチャートを
参照して、エンジン制御プロセッサ(ECP)162に
よる部分ソート列の入力処理制御、およびマージ処理の
実行制御動作を説明する。
【0037】まず、図2のフローチャートを参照して入
力処理タスクの動作について説明する。エンジン制御プ
ロセッサ(ECP)162は、まず、マージ対象の各部
分ソート列毎に2バッファづつ割り当てられている大容
量メモリ(EBDM)163上の入力バッファに空きが
あるか否かの検査を行い(ステップS12)、空きがな
ければ、空きができるまで部分ソート列の入力処理が停
止されるようにエンジンインターフェースプロセッサ
(EIP)161を制御する(ステップS13)。
【0038】大容量メモリ(EBDM)163の入力バ
ッファに空きがある場合には、エンジン制御プロセッサ
(ECP)162はマージ処理タスクによるマージ処理
が停止中であるか否かを調べ(ステップS14)、マー
ジ処理が停止中の場合にはマージ処理が入力を待ってい
る方の入力バッファ(入力待ちバッファ)に対してデー
タが入力されるようにエンジンインターフェースプロセ
ッサ(EIP)161を制御する(ステップS15)。
これによって、その入力バッファに対応する部分ソート
列のデータが作業ファイル171から読み出され、その
入力バッファに書き込まれる。
【0039】一方、マージ処理が実行中の場合には、そ
のマージ処理で現在使用してない方の入力バッファ(予
備バッファ)に対してデータが入力されるようにエンジ
ンインターフェースプロセッサ(EIP)161を制御
する(ステップS16)。これによって、その入力バッ
ファに対応する部分ソート列のデータが作業ファイル1
71から読み出され、その入力バッファに書き込まれ
る。
【0040】以上のステップS12〜S16の処理は、
マージ対象の部分ソート列のデータが全て無くなるまで
繰り返し実行される。
【0041】次に、図3のフローチャートを参照してマ
ージ処理タスクの動作について説明する。エンジン制御
プロセッサ(ECP)162は、まず、大容量メモリ
(EBDM)163の入力バッファ上にマージ対象のデ
ータが存在するか否かを判断し(ステップS22)、存
在しなければ、そのデータが入力されるまでマージ処理
を停止する(ステップS23)。
【0042】大容量メモリ(EBDM)163の入力バ
ッファ上にマージ対象のデータが存在する場合には、エ
ンジン制御プロセッサ(ECP)162は、異なる部分
ソート列に対応する入力バッファ上のデータに対してマ
ージ処理を実行し、それらを整列化して取り出す(ステ
ップS24)。例えば、部分ソート列のデータを昇順に
整列化する場合には、マージ対象のデータの中で小さい
ほうのデータから順に入力バッファから取り出されてい
く。以上のステップS22〜S24の処理は、全てのデ
ータに対して処理が終了して、マージ対象のデータがな
くなるまで繰り返し実行される。
【0043】次に、図4乃至図11を参照して、入力処
理とマージ処理の具体例を2本の部分ソート列S1,S
2をマージする場合を例にとって説明する。
【0044】図4に示されているように、大容量メモリ
(EBDM)163上には2本の部分ソート列S1、S
2の各々に対応して2個の入力バッファB11,B1
2、B21,B22がそれぞれ設けられている。まず、
最初は、部分ソート列S1に対応する第1の入力バッフ
ァB11に部分ソート列S1の先頭データ(S1−1)
が入力され、また部分ソート列S2に対応する第1の入
力バッファB21に部分ソート列S2の先頭データ(S
2−1)が入力される。
【0045】次いで、図5に示されているように、入力
バッファB11上のデータ(S1−1)と入力バッファ
B21上のデータ(S2−1)とのマージ処理が実行さ
れ、そのマージ処理を実行している期間中に次のデータ
(S1−2,S2−2)が入力バッファ(B12,B2
2)に入力される。
【0046】マージ処理によって入力バッファB11上
のデータ(S1−1)が処理し終え、そのデータ(S1
−1)が入力バッファB21上のデータ(S2−1)よ
りも先に取り出されたとすると、次に実行されるのは、
データ(S1−2)とデータ(S2−1)とのマージと
なる。ここでは、既にデータ(S1−2)の入力が完了
されているので、図6に示されているように、データ
(S1−2)とデータ(S2−1)とのマージ処理を直
ぐに開始することができる。このマージ処理の実行期間
中には、データ(S1−1)が取り出されて空き状態に
なっている入力バッファB11に対して部分ソート列S
1の次のデータ(S1−3)が入力される。
【0047】このマージ処理によって入力バッファB2
1上のデータ(S2−1)が処理し終え、入力バッファ
B12上のデータ(S1−2)よりもデータ(S2−
1)が先に取り出されたとすると、次に実行されるの
は、データ(S1−2)とデータ(S2−2)とのマー
ジとなる。ここでは、既にデータ(S2−2)の入力が
完了されているので、図7に示されているように、デー
タ(S1−2)とデータ(S2−2)とのマージ処理を
直ぐに開始することができる。このマージ処理の実行期
間中には、データ(S2−1)が取り出されて空き状態
になっている入力バッファB21に対して部分ソート列
S2の次のデータ(S2−3)が入力される。
【0048】そして、データ(S1−2)とデータ(S
2−2)とのマージ処理で入力バッファB12上のデー
タ(S1−2)が先に取り出されたとすると、次に実行
されるのは、データ(S1−3)とデータ(S2−2)
とのマージとなる。ここでは、既にデータ(S1−3)
の入力が完了されているので、図8に示されているよう
に、データ(S1−3)とデータ(S2−2)とのマー
ジ処理を直ぐに開始することができる。このマージ処理
の実行期間中には、データ(S1−2)が取り出されて
空き状態になっている入力バッファB12に対して部分
ソート列S1の次のデータ(S1−4)が入力される。
【0049】以降、図9乃至図11に示されているよう
に、同様の処理が繰り返し実行され、これによって部分
ソート列S1,S2のマージが完了する。
【0050】次に、図12を参照して、部分ソート列S
1,S2のデータ構造の一例を説明する。
【0051】部分ソート列S1は、所定のキーフィール
ドの値によって例えば昇順に整列化された複数レコード
R(1),R(3),…から構成されており、図示のよ
うに、例えば4個のレコードを1バッファ分の転送単位
とすることができる。この場合、部分ソート列S1にお
いては、キー値が1,3,5,7の4個のレコード、つ
まりレコードR(1),R(3),R(5),R(7)
が先頭データ部S1−1となり、同様に、次の4個のレ
コードR(9),R(11),R(13),R(15)
が2番目のデータ部S1−2となる。
【0052】また、部分ソート列S2も、部分ソート列
S1と同様に、所定のキーフィールドの値によって昇順
に整列化された複数レコードR(2),R(4),…か
ら構成されており、4個のレコードが1バッファ分の転
送単位となる。この場合、部分ソート列S2において
は、キー値が2,4,6,8の4個のレコード、つまり
レコードR(2),R(4),R(6),R(8)が先
頭データ部S2−1となり、同様に、次の4個のレコー
ドR(10),R(12),R(14),R(16)が
2番目のデータ部S2−2となる。
【0053】このようなデータ構造の部分ソート列S
1,S2のマージ処理を行った場合は、まず、先頭デー
タ部S1−1とS2−1とのマージ処理が行われ、この
マージ処理では、R(1),R(2),R(3),…,
R(7)の順でレコードが順次取り出される。そして、
レコードR(8)を入力バッファB21に残した状態
で、今度は、入力バッファB12にすでに入力されてい
る2番目のデータ部S1−2と入力バッファB21のレ
コードR(8)とのマージが行われる。このマージでは
レコードR(8)が最初に取り出されて入力バッファB
21が空き状態となり、これによって、入力バッファB
12に残っている全レコードとのマージ対象が、入力バ
ッファB21から入力バッファB22に変更される。入
力バッファB22には部分ソート列S2の2番目のデー
タ部S2−2が既に入力されているので、入力バッファ
B12のデータ部S1−2と入力バッファB22のデー
タ部S2−2とのマージが行われ、R(9),R(1
0),R(11),…,R(15)の順でレコードが順
次取り出され、次いで入力バッファB11にすでに入力
されているデータ部S1−3と入力バッファB22の残
りのレコードR(16)とのマージが行われる。
【0054】このようにして、入力バッファを競合する
こと無く入力処理とマージ処理とが並行して実行され、
部分ソート列S1とS2のマージが高速に行われてい
く。
【0055】以上説明したように、この実施例において
は、マージ処理対象の各データ列S1,S2毎に2個の
入力バッファB11,B12、B21,B22が設けら
れているので、例えば、入力バッファB11とB12に
格納された部分ソート列S1,S2間のデータがマージ
処理されている期間中に次のデータを別のバッファに入
力することができる。したがって、データ入力と入力デ
ータに対するマージ処理とを並行して実行できるように
なり、作業ファイル171上のデータを高速にマージす
ることが可能となる。
【0056】なお、ここでは、拡張ソートにおいて中間
結果として蓄積される作業ファイル171上の部分ソー
ト列をマージ処理する場合について説明したが、この発
明によるマージと入力の並行処理は、マージ対象のデー
タ列が演算の中間結果である必要はなく、磁気ディスク
装置17の入力ファイルに格納されている演算対象のデ
ータ列を読み込んでマージ処理する場合についても同様
にして適用することができる。
【0057】また、この実施例では、マージ対象の各デ
ータ列毎に2個づつ入力バッファを割り当てた場合を説
明したが、入力バッファの数は2個に制限されるもので
はなく、2以上の任意の数の入力バッファを各データ列
毎に割り当てることができる。
【0058】
【発明の効果】以上のように、この発明によれば、デー
タ入力と入力データに対するマージ処理とを並行して実
行できるようになり、2次記憶装置上のデータを高速に
マージすることができる。
【図面の簡単な説明】
【図1】この発明の一実施例に係わデータ処理装置のシ
ステム構成を示すブロック図。
【図2】同実施例のデータベース演算処理装置のデータ
入力動作を説明するためのフローチャート。
【図3】同実施例のデータベース演算処理装置のマージ
処理の動作を説明するためのフローチャート。
【図4】同実施例のデータベース演算処理装置に設けら
れている入力バッファの第1の使用状態を示す図。
【図5】同実施例のデータベース演算処理装置に設けら
れている入力バッファの第2の使用状態を示す図。
【図6】同実施例のデータベース演算処理装置に設けら
れている入力バッファの第3の使用状態を示す図。
【図7】同実施例のデータベース演算処理装置に設けら
れている入力バッファの第4の使用状態を示す図。
【図8】同実施例のデータベース演算処理装置に設けら
れている入力バッファの第5の使用状態を示す図。
【図9】同実施例のデータベース演算処理装置に設けら
れている入力バッファの第6の使用状態を示す図。
【図10】同実施例のデータベース演算処理装置に設け
られている入力バッファの第7の使用状態を示す図。
【図11】同実施例のデータベース演算処理装置に設け
られている入力バッファの第8の使用状態を示す図。
【図12】同実施例のデータベース演算処理装置でマー
ジ処理されるデータ列の一例を示す図。
【符号の説明】
10…ホストコンピュータ、16…データベース演算装
置、17…磁気ディスク装置、161,162,164
…プロセッサ、163…大容量メモリ、165…並列ソ
ーティングモジュール、166…並列関係代数演算モジ
ュール、171…作業ファイル。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 山田 朝彦 東京都青梅市末広町2丁目9番地 株式会 社東芝青梅工場内

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 ホスト装置と、演算対象のファイルデー
    タが格納される2次記憶装置と、前記2次記憶装置を直
    接アクセスするためのパスを有し、前記ホスト装置から
    の要求に応じて前記演算対象のファイルデータに対して
    所定の演算処理を実行する演算処理装置とを備えたデー
    タ処理装置において、 前記演算処理装置は、マージ処理対象の各データ列毎に
    複数個設けられ各データ列毎に複数のデータを格納する
    入力バッファ群と、これら入力バッファ群に格納された
    異なるデータ列間におけるデータを順次マージ処理し、
    それらデータを整列化して取り出すマージ処理手段と、
    前記入力バッファ群の中で前記マージ処理手段によりデ
    ータが取り出されて空き状態に設定された入力バッファ
    に対し、対応するデータ列のデータを前記2次記憶装置
    から入力するデータ入力手段とを具備し、 前記マージ処理手段のマージ処理中に次のデータを入力
    バッファに入力することを特徴とするデータ処理装置。
JP3268184A 1991-09-21 1991-09-21 データ処理装置 Pending JPH0580976A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3268184A JPH0580976A (ja) 1991-09-21 1991-09-21 データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3268184A JPH0580976A (ja) 1991-09-21 1991-09-21 データ処理装置

Publications (1)

Publication Number Publication Date
JPH0580976A true JPH0580976A (ja) 1993-04-02

Family

ID=17455089

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3268184A Pending JPH0580976A (ja) 1991-09-21 1991-09-21 データ処理装置

Country Status (1)

Country Link
JP (1) JPH0580976A (ja)

Similar Documents

Publication Publication Date Title
EP0735460A2 (en) Sorting using multitasking
JPH05324430A (ja) データ処理装置
JPH0581337A (ja) データ処理装置
JPH0580976A (ja) データ処理装置
JPH0581342A (ja) データ処理装置
JP3004102B2 (ja) データベース演算処理装置
JPH0580977A (ja) データ処理装置
JP3002041B2 (ja) データベース演算処理装置
JPH0581339A (ja) データ処理装置
JPH05101110A (ja) データベース演算処理装置
JP2983352B2 (ja) データベース演算処理装置
JPH0581343A (ja) データ処理装置
JP3263123B2 (ja) データ処理システムにおけるソート処理方式
JPH05324580A (ja) データ処理装置
JPH05324431A (ja) データ処理装置
JPH0581338A (ja) データ処理装置
JP2588932B2 (ja) ソート処理装置
JPH06110936A (ja) データ処理装置
JPH06348561A (ja) データ処理装置
JPH05101112A (ja) データベース演算処理装置
JPH06348560A (ja) データ処理装置
JPH06176077A (ja) データ処理装置
JPH06176075A (ja) データ処理装置
JPS62187931A (ja) デ−タベ−ス演算装置及び方法
JPH05120242A (ja) データ処理装置