JPH0580977A - データ処理装置 - Google Patents
データ処理装置Info
- Publication number
- JPH0580977A JPH0580977A JP3268185A JP26818591A JPH0580977A JP H0580977 A JPH0580977 A JP H0580977A JP 3268185 A JP3268185 A JP 3268185A JP 26818591 A JP26818591 A JP 26818591A JP H0580977 A JPH0580977 A JP H0580977A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- arithmetic
- sort
- data
- 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
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】
【目的】演算処理装置内で複数の部分ソート列をマージ
できるようにし、ホスト装置の負荷の軽減、およびソー
ト処理性能の向上を図る。 【構成】データベース演算処理装置16にマルチプロセ
ッサ構成が採用され、磁気ディスク装置17との間のデ
ータ入出力の処理がエンジンインターフェースプロセッ
サ(EIP)161に、並列ソーティングモジュール
(PSOM)165および並列関係代数演算モジュール
(PRAM)166のハードウェア演算回路を用いたソ
ート処理がハードウェアソータ制御プロセッサ(ECA
M)164に、そして、全体の制御と複数の部分ソート
列をまとめてマージするnーウェイマージ処理がエンジ
ン制御プロセッサ(ECP)162にそれぞれ機能分散
され、しかも、外部ソートにおける入力処理とソート処
理、およびnーウェイマージ処理と出力処理がそれぞれ
並行して動作される。
できるようにし、ホスト装置の負荷の軽減、およびソー
ト処理性能の向上を図る。 【構成】データベース演算処理装置16にマルチプロセ
ッサ構成が採用され、磁気ディスク装置17との間のデ
ータ入出力の処理がエンジンインターフェースプロセッ
サ(EIP)161に、並列ソーティングモジュール
(PSOM)165および並列関係代数演算モジュール
(PRAM)166のハードウェア演算回路を用いたソ
ート処理がハードウェアソータ制御プロセッサ(ECA
M)164に、そして、全体の制御と複数の部分ソート
列をまとめてマージするnーウェイマージ処理がエンジ
ン制御プロセッサ(ECP)162にそれぞれ機能分散
され、しかも、外部ソートにおける入力処理とソート処
理、およびnーウェイマージ処理と出力処理がそれぞれ
並行して動作される。
Description
【0001】
【産業上の利用分野】この発明は、ホスト装置からの要
求に応じて演算対象のファイルデータに対してソート等
の演算処理を実行する演算処理装置を備えたデータ処理
装置に関する。
求に応じて演算対象のファイルデータに対してソート等
の演算処理を実行する演算処理装置を備えたデータ処理
装置に関する。
【0002】
【従来の技術】一般に、コンピュータシステムにおいて
は、ソート処理や関係データベースの検索系処理等を高
速に実行するために専用のデータベース演算処理装置が
設けられている。このデータベース演算処理装置はハー
ドウェアソータと称される演算回路を備えている。この
ハードウェアソータは、2−ウェイーマージを行う複数
のソートセルから成るパイプラインソータであり、一度
に複数個のデータをソーティング(整列化)することが
できる。
は、ソート処理や関係データベースの検索系処理等を高
速に実行するために専用のデータベース演算処理装置が
設けられている。このデータベース演算処理装置はハー
ドウェアソータと称される演算回路を備えている。この
ハードウェアソータは、2−ウェイーマージを行う複数
のソートセルから成るパイプラインソータであり、一度
に複数個のデータをソーティング(整列化)することが
できる。
【0003】演算対象ファイルのデータ量が少ない場合
には、ハードウェアソータによる1回のソート処理だけ
で整列化されたソートストリング(部分ソート列)を生
成する事ができる。このように演算対象の全データをハ
ードウェアソータで一度にソーテイングする処理は、内
部ソート処理と称され、ハードウェアソータによって高
速に実行できる。
には、ハードウェアソータによる1回のソート処理だけ
で整列化されたソートストリング(部分ソート列)を生
成する事ができる。このように演算対象の全データをハ
ードウェアソータで一度にソーテイングする処理は、内
部ソート処理と称され、ハードウェアソータによって高
速に実行できる。
【0004】しかし、演算対象のデータ量が多い場合
や、複数のファイルを演算対象とする場合には、ハード
ウェアソータによって一度にソートできないので、ハー
ドウェアソータによって生成された複数の部分ソート列
をマージする必要がある。このようにマージ処理を必要
とするソート処理は外部ソートと称されており、そのマ
ージ処理を行う方法としては、従来、次の2通りの方法
があった。
や、複数のファイルを演算対象とする場合には、ハード
ウェアソータによって一度にソートできないので、ハー
ドウェアソータによって生成された複数の部分ソート列
をマージする必要がある。このようにマージ処理を必要
とするソート処理は外部ソートと称されており、そのマ
ージ処理を行う方法としては、従来、次の2通りの方法
があった。
【0005】第1は、ホスト装置でマージを行う方法で
ある。つまり、この方法では、データベース演算処理装
置はハードウェアソータを用いたソートのみを担当し、
以降の処理は全てホスト装置で行われる。
ある。つまり、この方法では、データベース演算処理装
置はハードウェアソータを用いたソートのみを担当し、
以降の処理は全てホスト装置で行われる。
【0006】しかしながら、このようにホスト装置でマ
ージを行う場合は、ホスト装置の負荷が増大されるとい
う不具合が生じる。また、ホスト装置がマージを行うた
めには、ハードウェアソータで生成した部分ソート列を
データベース演算処理装置からホスト装置へデータ転送
しなければならないので、そのデータ転送によって生じ
るオーバーヘッドも非常に大きなものとなる。
ージを行う場合は、ホスト装置の負荷が増大されるとい
う不具合が生じる。また、ホスト装置がマージを行うた
めには、ハードウェアソータで生成した部分ソート列を
データベース演算処理装置からホスト装置へデータ転送
しなければならないので、そのデータ転送によって生じ
るオーバーヘッドも非常に大きなものとなる。
【0007】第2は、ホスト装置ではなく、データベー
ス演算処理装置内のハードウェアソータによってマージ
処理を行う方法である。しかしながら、前述したように
ハードウェアソータは、2−ウェイマージのソートセル
をカスケード接続したものであるので、その性質上、マ
ージ対象とできるソート済みの部分ソート列は2本に限
られる。このため、ハードウェアソータによって最初に
生成された部分ソート列が2本よりも多く存在する場合
には、ハードウェアソータによるマージ処理をトーナメ
ント的に繰り返すことが必要となる。
ス演算処理装置内のハードウェアソータによってマージ
処理を行う方法である。しかしながら、前述したように
ハードウェアソータは、2−ウェイマージのソートセル
をカスケード接続したものであるので、その性質上、マ
ージ対象とできるソート済みの部分ソート列は2本に限
られる。このため、ハードウェアソータによって最初に
生成された部分ソート列が2本よりも多く存在する場合
には、ハードウェアソータによるマージ処理をトーナメ
ント的に繰り返すことが必要となる。
【0008】このようにハードウェアソータによって2
−ウェイマージ処理を繰り返し実行すると、ホスト装置
の負荷は軽減できるが、データベース演算処理装置内に
おけるデータの移動量、およびハードウェアソータによ
るデータ比較回数の増大を招くので、マージ処理に多く
の時間が必要とされるという不具合を招くことになる。
−ウェイマージ処理を繰り返し実行すると、ホスト装置
の負荷は軽減できるが、データベース演算処理装置内に
おけるデータの移動量、およびハードウェアソータによ
るデータ比較回数の増大を招くので、マージ処理に多く
の時間が必要とされるという不具合を招くことになる。
【0009】このように、従来では、全データをハード
ウェアソータによって一度にソートできる場合は高性能
が期待できるが、例えば外部ソートのように一度にソー
トできずにマージ処理を必要とする場合は、ホスト装置
の負荷の増大、あるいは演算時間の増大による性能低下
が引き起こされるという問題があった。
ウェアソータによって一度にソートできる場合は高性能
が期待できるが、例えば外部ソートのように一度にソー
トできずにマージ処理を必要とする場合は、ホスト装置
の負荷の増大、あるいは演算時間の増大による性能低下
が引き起こされるという問題があった。
【0010】
【発明が解決しようとする課題】従来では、演算対象デ
ータを一度にソートできずにマージ処理を必要とする場
合は、ホスト装置の負荷の増大、あるいは演算時間の増
大による性能低下が引き起こされる欠点があった。
ータを一度にソートできずにマージ処理を必要とする場
合は、ホスト装置の負荷の増大、あるいは演算時間の増
大による性能低下が引き起こされる欠点があった。
【0011】この発明はこのような点に鑑みなされたも
ので、ハードウェアソータを用いずに演算処理装置内で
複数の部分ソート列をマージできるようにして、ホスト
装置の負荷を大幅に軽減し、しかも十分に高速なソート
処理を実現することができるデータ処理装置を提供する
ことを目的とする。
ので、ハードウェアソータを用いずに演算処理装置内で
複数の部分ソート列をマージできるようにして、ホスト
装置の負荷を大幅に軽減し、しかも十分に高速なソート
処理を実現することができるデータ処理装置を提供する
ことを目的とする。
【0012】
【課題を解決するための手段および作用】この発明は、
ホスト装置と、演算対象のファイルデータが格納される
2次記憶装置と、前記2次記憶装置を直接アクセスする
ためのパスを有し、前記ホスト装置からの要求に応じて
前記演算対象のファイルデータに対して所定の演算処理
を実行する演算処理装置とを備えたデータ処理装置にお
いて、前記演算処理装置には、演算対象のファイルデー
タを前記パスを介して前記2次記憶装置から入力する手
段と、入力された演算対象のファイルデータに対して所
定の演算処理を実行し、複数の部分ソート列を生成する
演算回路と、この演算回路による演算によって生成され
複数の部分ソート列をまとめてマージすることにより1
本の整列化されたソート列を生成するマージ手段と、こ
のマージ手段によって生成されたソート列を前記パスを
介して前記2次記憶装置に出力する手段とを具備し、前
記演算処理装置内で前記複数の部分ソート列をまとめて
マージすることを第1の特徴とする。
ホスト装置と、演算対象のファイルデータが格納される
2次記憶装置と、前記2次記憶装置を直接アクセスする
ためのパスを有し、前記ホスト装置からの要求に応じて
前記演算対象のファイルデータに対して所定の演算処理
を実行する演算処理装置とを備えたデータ処理装置にお
いて、前記演算処理装置には、演算対象のファイルデー
タを前記パスを介して前記2次記憶装置から入力する手
段と、入力された演算対象のファイルデータに対して所
定の演算処理を実行し、複数の部分ソート列を生成する
演算回路と、この演算回路による演算によって生成され
複数の部分ソート列をまとめてマージすることにより1
本の整列化されたソート列を生成するマージ手段と、こ
のマージ手段によって生成されたソート列を前記パスを
介して前記2次記憶装置に出力する手段とを具備し、前
記演算処理装置内で前記複数の部分ソート列をまとめて
マージすることを第1の特徴とする。
【0013】このデータ処理装置においては、演算処理
装置内にマージ手段が設けられており、演算回路で生成
された複数の部分ソート列は、演算回路ではなく、その
演算処理装置内に設けられたマージ手段によってまとめ
て一度にマージ(n−ウェイマージ)され、これによっ
て1本の整列化されたソート列に生成される。そして、
このマージ手段によって生成されたソート列は、演算処
理装置から2次記憶装置に直接的に出力される。このた
め、演算回路を用いずに演算処理装置内で複数の部分ソ
ート列をマージできるようになり、ホスト装置の負荷を
大幅に軽減でき、しかも演算回路を繰り返し用いる場合
よりもデータ移動量等を減らすことが出来るのでその分
だけ高速のソート処理を実現できる。
装置内にマージ手段が設けられており、演算回路で生成
された複数の部分ソート列は、演算回路ではなく、その
演算処理装置内に設けられたマージ手段によってまとめ
て一度にマージ(n−ウェイマージ)され、これによっ
て1本の整列化されたソート列に生成される。そして、
このマージ手段によって生成されたソート列は、演算処
理装置から2次記憶装置に直接的に出力される。このた
め、演算回路を用いずに演算処理装置内で複数の部分ソ
ート列をマージできるようになり、ホスト装置の負荷を
大幅に軽減でき、しかも演算回路を繰り返し用いる場合
よりもデータ移動量等を減らすことが出来るのでその分
だけ高速のソート処理を実現できる。
【0014】また、この発明は、演算処理装置に第1乃
至第3のプロセッサから構成されるマルチプロセッサ構
成を採用し、演算処理装置と2次記憶装置間のデータ入
出力を第1のプロセッサに、演算回路を用いた演算処理
を第2のプロセッサに、そして、全体の制御とマージ処
理を第3のプロセッサにそれぞれ機能分散すると共に、
第1のプロセッサによるデータ入力と第3のプロセッサ
による演算処理を並行して動作させ、また、第3のプロ
セッサによるマージ処理と第1のプロセッサによるデー
タ出力処理を並行して動作させるように構成したことを
第2の特徴とする。
至第3のプロセッサから構成されるマルチプロセッサ構
成を採用し、演算処理装置と2次記憶装置間のデータ入
出力を第1のプロセッサに、演算回路を用いた演算処理
を第2のプロセッサに、そして、全体の制御とマージ処
理を第3のプロセッサにそれぞれ機能分散すると共に、
第1のプロセッサによるデータ入力と第3のプロセッサ
による演算処理を並行して動作させ、また、第3のプロ
セッサによるマージ処理と第1のプロセッサによるデー
タ出力処理を並行して動作させるように構成したことを
第2の特徴とする。
【0015】この構成においては、第1乃至第3のプロ
セッサによって負荷分散が図れ、しかもデータ入力とソ
ートの演算処理、およびマージ処理とデータ出力がそれ
ぞれ並行して動作されるので、ソート処理に要する全体
の時間を著しく低減することができる。したがって、マ
ージ処理に要する時間だけ全体のソート処理時間が増大
されるといった不具合を招くこと無く、演算処理装置内
でマージ処理を行うことができ、高性能の装置を実現で
きる。
セッサによって負荷分散が図れ、しかもデータ入力とソ
ートの演算処理、およびマージ処理とデータ出力がそれ
ぞれ並行して動作されるので、ソート処理に要する全体
の時間を著しく低減することができる。したがって、マ
ージ処理に要する時間だけ全体のソート処理時間が増大
されるといった不具合を招くこと無く、演算処理装置内
でマージ処理を行うことができ、高性能の装置を実現で
きる。
【0016】
【実施例】以下、図面を参照してこの発明の実施例を説
明する。
明する。
【0017】図1にはこの発明の一実施例に係わるデー
タ処理装置の全体のシステム構成が示されている。この
データ処理装置は、ホストコンピュータ10と、データ
ベース演算処理装置(データベースエンジン;DBE)
16と、磁気ディスク装置17とによって構成されてい
る。ホストコンピュータ10は、CPU11、主記憶装
置12、第1および第2のチャネル装置14,15によ
って構成されており、これらCPU11、主記憶装置1
2、およびチャネル装置14,15はシステムバス13
を介して相互接続されている。
タ処理装置の全体のシステム構成が示されている。この
データ処理装置は、ホストコンピュータ10と、データ
ベース演算処理装置(データベースエンジン;DBE)
16と、磁気ディスク装置17とによって構成されてい
る。ホストコンピュータ10は、CPU11、主記憶装
置12、第1および第2のチャネル装置14,15によ
って構成されており、これらCPU11、主記憶装置1
2、およびチャネル装置14,15はシステムバス13
を介して相互接続されている。
【0018】ホストコンピュータ10とデータベース演
算処理装置16はチャネル装置14によって接続され、
またホストコンピュータ10と磁気ディスク装置17は
チャネル装置15によって接続されている。さらに、デ
ータベース演算処理装置16と磁気ディスク装置17は
専用のパス18を介して接続されている。
算処理装置16はチャネル装置14によって接続され、
またホストコンピュータ10と磁気ディスク装置17は
チャネル装置15によって接続されている。さらに、デ
ータベース演算処理装置16と磁気ディスク装置17は
専用のパス18を介して接続されている。
【0019】CPU11は、ホストコンピュータ10全
体の制御を司るものであり、データベース演算処理装置
16に対してソート処理や関係代数演算等の各種演算処
理の実行を依頼する。主記憶装置12には、データベー
ス演算処理装置16に演算対象ファイルや演算内容を指
示するためのコマンドが格納される。
体の制御を司るものであり、データベース演算処理装置
16に対してソート処理や関係代数演算等の各種演算処
理の実行を依頼する。主記憶装置12には、データベー
ス演算処理装置16に演算対象ファイルや演算内容を指
示するためのコマンドが格納される。
【0020】データベース演算処理装置(DBE)16
は、CPU11からのコマンドに基づいて演算対象ファ
イルのデータに対して演算処理を実行するものであり、
演算対象ファイルの入力および演算結果の出力のため
に、パス18を介して磁気ディスク装置17を直接的に
アクセスする。
は、CPU11からのコマンドに基づいて演算対象ファ
イルのデータに対して演算処理を実行するものであり、
演算対象ファイルの入力および演算結果の出力のため
に、パス18を介して磁気ディスク装置17を直接的に
アクセスする。
【0021】このデータベース演算処理装置(DBE)
16は、エンジンインターフェースプロセッサ(EI
P)161、エンジン制御プロセッサ(ECP)16
2、大容量メモリ(EBDM)163、ハードウェアソ
ータ制御プロセッサ(ECAM)164、並列ソーティ
ングモジュール(PSOM)165、および並列関係代
数演算モジュール(PRAM)166によって構成され
ている。
16は、エンジンインターフェースプロセッサ(EI
P)161、エンジン制御プロセッサ(ECP)16
2、大容量メモリ(EBDM)163、ハードウェアソ
ータ制御プロセッサ(ECAM)164、並列ソーティ
ングモジュール(PSOM)165、および並列関係代
数演算モジュール(PRAM)166によって構成され
ている。
【0022】エンジンインターフェースプロセッサ(E
IP)161、エンジン制御プロセッサ(ECP)16
2、およびハードウェアソータ制御プロセッサ(ECA
M)164の3台のプロセッサは、内部バス167によ
って相互接続されており、大容量メモリ(EBDM)1
63を共有メモリとする密結合のマルチプロセッサを構
成している。大容量メモリ(EBDM)163は、3台
の各プロセッサの共通のアドレス空間上に配置されてい
る。また、これら3台のプロセッサ、つまりエンジンイ
ンターフェースプロセッサ(EIP)161、エンジン
制御プロセッサ(ECP)162、およびハードウェア
ソータ制御プロセッサ(ECAM)164には機能分散
がなされている。この場合、それぞれの固有の役割を効
率良く実行するために、これら各プロセッサは、密結合
ながらそれぞれに適した独立のモニタによって動作制御
されるように構成されている。
IP)161、エンジン制御プロセッサ(ECP)16
2、およびハードウェアソータ制御プロセッサ(ECA
M)164の3台のプロセッサは、内部バス167によ
って相互接続されており、大容量メモリ(EBDM)1
63を共有メモリとする密結合のマルチプロセッサを構
成している。大容量メモリ(EBDM)163は、3台
の各プロセッサの共通のアドレス空間上に配置されてい
る。また、これら3台のプロセッサ、つまりエンジンイ
ンターフェースプロセッサ(EIP)161、エンジン
制御プロセッサ(ECP)162、およびハードウェア
ソータ制御プロセッサ(ECAM)164には機能分散
がなされている。この場合、それぞれの固有の役割を効
率良く実行するために、これら各プロセッサは、密結合
ながらそれぞれに適した独立のモニタによって動作制御
されるように構成されている。
【0023】エンジンインターフェースプロセッサ(E
IP)161、エンジン制御プロセッサ(ECP)16
2、およびハードウェアソータ制御プロセッサ(ECA
M)164の機能分散は、次のようになされている。
IP)161、エンジン制御プロセッサ(ECP)16
2、およびハードウェアソータ制御プロセッサ(ECA
M)164の機能分散は、次のようになされている。
【0024】すなわち、エンジンインターフェースプロ
セッサ(EIP)161は、ホストコンピュータ10と
データベース演算処理装置16間の通信を行うと共に、
磁気ディスク装置17のディスクコントローラにもパス
18を介して接続されており、磁気ディスク装置17と
のデータ入出力を制御する。また、エンジンインターフ
ェースプロセッサ(EIP)161は、磁気ディスク装
置17にデータを出力する際、出力ファイルの再構成処
理も行う。
セッサ(EIP)161は、ホストコンピュータ10と
データベース演算処理装置16間の通信を行うと共に、
磁気ディスク装置17のディスクコントローラにもパス
18を介して接続されており、磁気ディスク装置17と
のデータ入出力を制御する。また、エンジンインターフ
ェースプロセッサ(EIP)161は、磁気ディスク装
置17にデータを出力する際、出力ファイルの再構成処
理も行う。
【0025】ホストコンピュータ10との間の通信にお
いては、エンジンインターフェースプロセッサ(EI
P)161は、第1のチャネル装置14を介してCPU
11から送られてくるコマンドを受信し、それをエンジ
ン制御プロセッサ(ECP)162に送信する。また、
エンジンインターフェースプロセッサ(EIP)161
は、エンジン制御プロセッサ(ECP)162から送ら
れてくるコマンド結果としてステータスを受信し、それ
を第1のチャネル装置14を介してCPU11に返信す
る。
いては、エンジンインターフェースプロセッサ(EI
P)161は、第1のチャネル装置14を介してCPU
11から送られてくるコマンドを受信し、それをエンジ
ン制御プロセッサ(ECP)162に送信する。また、
エンジンインターフェースプロセッサ(EIP)161
は、エンジン制御プロセッサ(ECP)162から送ら
れてくるコマンド結果としてステータスを受信し、それ
を第1のチャネル装置14を介してCPU11に返信す
る。
【0026】磁気ディスク装置17との間のデータ入出
力処理においては、エンジンインターフェースプロセッ
サ(EIP)161は、エンジン制御プロセッサ(EC
P)162からの入出力要求を受け付け、大容量メモリ
(EBDM)163と磁気ディスク装置17との間でデ
ータ転送を行う。
力処理においては、エンジンインターフェースプロセッ
サ(EIP)161は、エンジン制御プロセッサ(EC
P)162からの入出力要求を受け付け、大容量メモリ
(EBDM)163と磁気ディスク装置17との間でデ
ータ転送を行う。
【0027】エンジン制御プロセッサ(ECP)162
は、エンジンインターフェースプロセッサ(EIP)1
61、大容量メモリ(EBDM)163、およびハード
ウェア制御プロセッサ(ECAM)164を内部バス1
67を介して制御すると共に、大容量メモリ(EBD
M)163に格納された部分ソート列に対してnーウェ
イマージを行う。
は、エンジンインターフェースプロセッサ(EIP)1
61、大容量メモリ(EBDM)163、およびハード
ウェア制御プロセッサ(ECAM)164を内部バス1
67を介して制御すると共に、大容量メモリ(EBD
M)163に格納された部分ソート列に対してnーウェ
イマージを行う。
【0028】このnーウェイマージ処理は、マージ対象
の複数の部分ソート列全てをまとめてマージするもので
ある。すなわち、エンジン制御プロセッサ(ECP)1
62は、ハードウェア制御プロセッサ(ECAM)16
4、並列ソーティングモジュール(PSOM)165、
および並列関係代数演算モジュール(PRAM)166
によるソート処理で生成された複数の部分ソート列から
それぞれ先頭の要素のうちで例えば最小値の要素を選ん
では出力列に移すという処理をソフトウェア的に実行す
る。この場合、先頭要素が出力列に移された部分ソート
列については次の要素が先頭要素となり、今度はその先
頭要素が他の部分ソート列の先頭要素と比較される。エ
ンジン制御プロセッサ(ECP)162によるこのよう
なnーウェイマージの具体的な処理手順については、図
6を参照して後述する。
の複数の部分ソート列全てをまとめてマージするもので
ある。すなわち、エンジン制御プロセッサ(ECP)1
62は、ハードウェア制御プロセッサ(ECAM)16
4、並列ソーティングモジュール(PSOM)165、
および並列関係代数演算モジュール(PRAM)166
によるソート処理で生成された複数の部分ソート列から
それぞれ先頭の要素のうちで例えば最小値の要素を選ん
では出力列に移すという処理をソフトウェア的に実行す
る。この場合、先頭要素が出力列に移された部分ソート
列については次の要素が先頭要素となり、今度はその先
頭要素が他の部分ソート列の先頭要素と比較される。エ
ンジン制御プロセッサ(ECP)162によるこのよう
なnーウェイマージの具体的な処理手順については、図
6を参照して後述する。
【0029】大容量メモリ(EBDM)163は、磁気
ディスク装置17から読み出された演算対象のファイル
データ、ハードウェアソータ制御プロセッサ(ECA
M)164、並列ソーティングモジュール(PSOM)
165、および並列関係代数演算モジュール(PRA
M)166によるソート処理結果、さらには、エンジン
制御プロセッサ(ECP)162によるマージ結果等を
格納する共有メモリである。演算対象のファイルデータ
は大容量メモリ(EBDM)163内の入力バッファ部
に格納され、ソート結果およびマージ結果は大容量メモ
リ(EBDM)163内の出力バッファ部に格納され
る。
ディスク装置17から読み出された演算対象のファイル
データ、ハードウェアソータ制御プロセッサ(ECA
M)164、並列ソーティングモジュール(PSOM)
165、および並列関係代数演算モジュール(PRA
M)166によるソート処理結果、さらには、エンジン
制御プロセッサ(ECP)162によるマージ結果等を
格納する共有メモリである。演算対象のファイルデータ
は大容量メモリ(EBDM)163内の入力バッファ部
に格納され、ソート結果およびマージ結果は大容量メモ
リ(EBDM)163内の出力バッファ部に格納され
る。
【0030】ハードウェアソータ制御プロセッサ(EC
AM)164は、エンジン制御プロセッサ(ECP)1
62からの指令に基づいて、並列ソーティングモジュー
ル(PSOM)165および並列関係代数演算モジュー
ル(PRAM)166による演算を制御する。
AM)164は、エンジン制御プロセッサ(ECP)1
62からの指令に基づいて、並列ソーティングモジュー
ル(PSOM)165および並列関係代数演算モジュー
ル(PRAM)166による演算を制御する。
【0031】この場合、ハードウェアソータ制御プロセ
ッサ(ECAM)164は、大容量メモリ(EBDM)
163上のデータを並列ソーティングモジュール(PS
OM)165に入力し、並列関係代数演算モジュール
(PRAM)166から出力された演算結果を大容量メ
モリ(EBDM)163上に格納するが、並列ソーティ
ングモジュール(PSOM)165へのデータ入力に際
しては、キー切り出し処理を実行する。このキー切り出
し処理においては、ハードウェアソータ制御プロセッサ
(ECAM)164は、演算対象の各レコードから演算
に必要なキーのみを切り出し、それにレコード識別番号
(大容量メモリ163上におけるレコードの先頭アドレ
ス)を付加して並列ソーティングモジュール(PSO
M)165へ送出する。
ッサ(ECAM)164は、大容量メモリ(EBDM)
163上のデータを並列ソーティングモジュール(PS
OM)165に入力し、並列関係代数演算モジュール
(PRAM)166から出力された演算結果を大容量メ
モリ(EBDM)163上に格納するが、並列ソーティ
ングモジュール(PSOM)165へのデータ入力に際
しては、キー切り出し処理を実行する。このキー切り出
し処理においては、ハードウェアソータ制御プロセッサ
(ECAM)164は、演算対象の各レコードから演算
に必要なキーのみを切り出し、それにレコード識別番号
(大容量メモリ163上におけるレコードの先頭アドレ
ス)を付加して並列ソーティングモジュール(PSO
M)165へ送出する。
【0032】並列ソーティングモジュール(PSOM)
165は、ハードウェアソータ制御プロセッサ(ECA
M)164によって駆動され、ソートを並列に実行する
専用のハードウェア回路であり、並列関係代数演算モジ
ュール(PRAM)166に接続されている。この並列
ソーティングモジュール(PSOM)165は、パイプ
ラインマージソータと称されるものであり、2−ウェイ
マージを行う複数のソートセルをカスケード接続してな
る。
165は、ハードウェアソータ制御プロセッサ(ECA
M)164によって駆動され、ソートを並列に実行する
専用のハードウェア回路であり、並列関係代数演算モジ
ュール(PRAM)166に接続されている。この並列
ソーティングモジュール(PSOM)165は、パイプ
ラインマージソータと称されるものであり、2−ウェイ
マージを行う複数のソートセルをカスケード接続してな
る。
【0033】並列関係代数演算モジュール(PRAM)
166は、関係型データベースにおけるJOIN(結
合)やRESTRICT(制約)といった関係代数演算
を並列に実行する専用のハードウェア回路であり、並列
ソーティングモジュール(PSOM)165からソート
されたデータを入力し、演算結果をハードウェアソータ
制御プロセッサ(ECAM)164に出力する。ソート
処理だけを実行する場合には、並列関係代数演算モジュ
ール(PRAM)166は、最終段のソートセルとして
機能する。
166は、関係型データベースにおけるJOIN(結
合)やRESTRICT(制約)といった関係代数演算
を並列に実行する専用のハードウェア回路であり、並列
ソーティングモジュール(PSOM)165からソート
されたデータを入力し、演算結果をハードウェアソータ
制御プロセッサ(ECAM)164に出力する。ソート
処理だけを実行する場合には、並列関係代数演算モジュ
ール(PRAM)166は、最終段のソートセルとして
機能する。
【0034】このように、エンジンインターフェースプ
ロセッサ(EIP)161、エンジン制御プロセッサ
(ECP)162、およびハードウェアソータ制御プロ
セッサ(ECAM)164にはそれぞれ外部ソートのた
めの機能が分散されている。この場合、これらプロセッ
サは、大容量メモリ(EBDM)163上のバッファの
やりとりを除けば非同期に動作し、並行して各機能を実
行する。すなわち、外部ソートは、入力処理、ソート処
理、マージ処理、および出力処理から構成されるが、ハ
ードウェアソータ制御プロセッサ(ECAM)164の
制御によるソート演算処理は、エンジンインターフェー
スプロセッサ(EIP)161による演算対象データの
入力処理と並行して実行され、また、エンジンインター
フェースプロセッサ(EIP)161による演算結果の
データ出力処理は、エンジン制御プロセッサ(ECP)
162によるマージ処理と並行して実行される。
ロセッサ(EIP)161、エンジン制御プロセッサ
(ECP)162、およびハードウェアソータ制御プロ
セッサ(ECAM)164にはそれぞれ外部ソートのた
めの機能が分散されている。この場合、これらプロセッ
サは、大容量メモリ(EBDM)163上のバッファの
やりとりを除けば非同期に動作し、並行して各機能を実
行する。すなわち、外部ソートは、入力処理、ソート処
理、マージ処理、および出力処理から構成されるが、ハ
ードウェアソータ制御プロセッサ(ECAM)164の
制御によるソート演算処理は、エンジンインターフェー
スプロセッサ(EIP)161による演算対象データの
入力処理と並行して実行され、また、エンジンインター
フェースプロセッサ(EIP)161による演算結果の
データ出力処理は、エンジン制御プロセッサ(ECP)
162によるマージ処理と並行して実行される。
【0035】次に、図1のデータ処理装置によって実行
される外部ソート処理の動作を説明する。
される外部ソート処理の動作を説明する。
【0036】まず、データ処理装置全体の処理の流れの
概要を説明する。
概要を説明する。
【0037】CPU11は、主記憶装置12上にあるソ
ート等のコマンドをシステムバス13を介してデータベ
ース演算処理装置16に発行する。そのコマンドは大容
量メモリ(EBDM)163に格納される。エンジン制
御プロセッサ(ECP)162は、そのコマンドの解析
を行い、処理対象となるデータをエンジンインターフェ
ースプロセッサ(EIP)161を介して磁気ディスク
装置17から大容量メモリ(EBDM)163に読み込
み、それをハードウェアソータ制御プロセッサ(ECA
M)164に渡してソート処理を実行させる。ハードウ
ェアソータ制御プロセッサ(ECAM)164は、対象
となるデータを並列ソーティングモジュール(PSO
M)165から並列関係代数演算モジュール(PRA
M)166に渡し、処理が終了すればエンジン制御プロ
セッサ(ECP)162に報告を行う。エンジン制御プ
ロセッサ(ECP)162は、複数のソートストリング
からなるソート結果をまとめてマージ(n−ウェイマー
ジ)する。エンジンインターフェースプロセッサ(EI
P)161は、処理結果をディスク装置17に出力し、
そして与えられたコマンドに対応する応答をシステムバ
ス13を介してCPU11に返す。
ート等のコマンドをシステムバス13を介してデータベ
ース演算処理装置16に発行する。そのコマンドは大容
量メモリ(EBDM)163に格納される。エンジン制
御プロセッサ(ECP)162は、そのコマンドの解析
を行い、処理対象となるデータをエンジンインターフェ
ースプロセッサ(EIP)161を介して磁気ディスク
装置17から大容量メモリ(EBDM)163に読み込
み、それをハードウェアソータ制御プロセッサ(ECA
M)164に渡してソート処理を実行させる。ハードウ
ェアソータ制御プロセッサ(ECAM)164は、対象
となるデータを並列ソーティングモジュール(PSO
M)165から並列関係代数演算モジュール(PRA
M)166に渡し、処理が終了すればエンジン制御プロ
セッサ(ECP)162に報告を行う。エンジン制御プ
ロセッサ(ECP)162は、複数のソートストリング
からなるソート結果をまとめてマージ(n−ウェイマー
ジ)する。エンジンインターフェースプロセッサ(EI
P)161は、処理結果をディスク装置17に出力し、
そして与えられたコマンドに対応する応答をシステムバ
ス13を介してCPU11に返す。
【0038】次に、図2のフローチャートを参照して、
データベース演算処理装置16内における動作を説明す
る。
データベース演算処理装置16内における動作を説明す
る。
【0039】前述したように、大容量メモリ(EBD
M)163にはエンジンインターフェースプロセッサ
(EIP)161による入力処理によってソート対象の
データが格納され、この入力処理と並行してハードウェ
アソータ制御プロセッサ(ECAM)164による演算
制御が実行される。すなわち、エンジンインターフェー
スプロセッサ(EIP)161は、磁気ディスク装置1
7に対象となるデータが存在するかぎり大容量メモリ
(EBDM)163に入力を行い、それをハードウェア
ソータ制御プロセッサ(ECAM)164に渡す。
M)163にはエンジンインターフェースプロセッサ
(EIP)161による入力処理によってソート対象の
データが格納され、この入力処理と並行してハードウェ
アソータ制御プロセッサ(ECAM)164による演算
制御が実行される。すなわち、エンジンインターフェー
スプロセッサ(EIP)161は、磁気ディスク装置1
7に対象となるデータが存在するかぎり大容量メモリ
(EBDM)163に入力を行い、それをハードウェア
ソータ制御プロセッサ(ECAM)164に渡す。
【0040】ハードウェアソータ制御プロセッサ(EC
AM)164は、大容量メモリ(EBDM)163に格
納されたデータを、並列ソーティングモジュール(PS
OM)165および並列関係代数演算モジュール(PR
AM)166で一度にソートできる件数ごとのストリン
グに分割し、未処理データがなくなるまで、そのストリ
ング毎にソート処理を実行させる(ステップS11,S
12)。並列ソーティングモジュール(PSOM)16
5および並列関係代数演算モジュール(PRAM)16
6は、ソート処理によって一定サイズのソート済みデー
タ列(部分ソート列)を順次生成する。
AM)164は、大容量メモリ(EBDM)163に格
納されたデータを、並列ソーティングモジュール(PS
OM)165および並列関係代数演算モジュール(PR
AM)166で一度にソートできる件数ごとのストリン
グに分割し、未処理データがなくなるまで、そのストリ
ング毎にソート処理を実行させる(ステップS11,S
12)。並列ソーティングモジュール(PSOM)16
5および並列関係代数演算モジュール(PRAM)16
6は、ソート処理によって一定サイズのソート済みデー
タ列(部分ソート列)を順次生成する。
【0041】ここで、図3および図4を参照して、大容
量メモリ(EBDM)163上に格納される演算対象デ
ータ、およびソート処理により生成される部分ソート列
の具体例を説明する。
量メモリ(EBDM)163上に格納される演算対象デ
ータ、およびソート処理により生成される部分ソート列
の具体例を説明する。
【0042】図3に示されているように、演算対象デー
タは、例えば、n×4個のレコードR1,R2,…から
構成されており、各レコードは例えば5個のフィールド
F1〜F5を含んでいる。並列ソーティングモジュール
(PSOM)165および並列関係代数演算モジュール
(PRAM)166で一度にソートできる件数がn個で
ある場合には、図示のように、演算対象データはそれぞ
れn個のレコードからなる4つのストリングに分割され
る。
タは、例えば、n×4個のレコードR1,R2,…から
構成されており、各レコードは例えば5個のフィールド
F1〜F5を含んでいる。並列ソーティングモジュール
(PSOM)165および並列関係代数演算モジュール
(PRAM)166で一度にソートできる件数がn個で
ある場合には、図示のように、演算対象データはそれぞ
れn個のレコードからなる4つのストリングに分割され
る。
【0043】このような演算対象データに対して、例え
ば、第3のフィールドF3をキーフィールドとするソー
トを行う場合には、ハードウェアソータ制御プロセッサ
(ECAM)164は、演算対象の各レコードR1,R
2…から演算に必要な第3のフィールドF3(K1,K
2,…)のみを切り出し、それにレコード識別番号(メ
モリ163上のレコードの先頭アドレスAD1,AD
2,…)を付加して、それを並列ソーティングモジュー
ル(PSOM)165,並列関係代数演算モジュール
(PRAM)166に渡す。
ば、第3のフィールドF3をキーフィールドとするソー
トを行う場合には、ハードウェアソータ制御プロセッサ
(ECAM)164は、演算対象の各レコードR1,R
2…から演算に必要な第3のフィールドF3(K1,K
2,…)のみを切り出し、それにレコード識別番号(メ
モリ163上のレコードの先頭アドレスAD1,AD
2,…)を付加して、それを並列ソーティングモジュー
ル(PSOM)165,並列関係代数演算モジュール
(PRAM)166に渡す。
【0044】並列ソーティングモジュール(PSOM)
165,並列関係代数演算モジュール(PRAM)16
6は、ストリング毎にソートを行って昇順または降順に
整列化された部分ソート列を生成する。
165,並列関係代数演算モジュール(PRAM)16
6は、ストリング毎にソートを行って昇順または降順に
整列化された部分ソート列を生成する。
【0045】図4においては、昇順に整列化した場合の
部分ソート列S1〜S4が示されている。これら部分ソ
ート列S1〜S4は、演算対象データの第1乃至第4の
ストリングにそれぞれ対応するものである。各部分ソー
ト列S1〜S4の要素は、図示のように、レコード識別
番号とキー部から構成されており、このような部分ソー
ト列S1〜S4がソート処理結果として大容量メモリ
(EBDM)163上に格納される。
部分ソート列S1〜S4が示されている。これら部分ソ
ート列S1〜S4は、演算対象データの第1乃至第4の
ストリングにそれぞれ対応するものである。各部分ソー
ト列S1〜S4の要素は、図示のように、レコード識別
番号とキー部から構成されており、このような部分ソー
ト列S1〜S4がソート処理結果として大容量メモリ
(EBDM)163上に格納される。
【0046】演算対象データのソート処理が全て実行さ
れると、エンジン制御プロセッサ(ECP)162は、
部分ソート列S1〜S4をまとめてマージし、図5に示
すような1本の整列化されたストリングを生成する(ス
テップS13)。図5に示されているように、エンジン
制御プロセッサ(ECP)162のマージで生成された
ストリングの各要素はレコード識別番号だけから成り、
レコード識別番号はキー部の値が小さいものから順に配
置されている。このようなマージ結果は、大容量メモリ
(EBDM)163上に格納される。
れると、エンジン制御プロセッサ(ECP)162は、
部分ソート列S1〜S4をまとめてマージし、図5に示
すような1本の整列化されたストリングを生成する(ス
テップS13)。図5に示されているように、エンジン
制御プロセッサ(ECP)162のマージで生成された
ストリングの各要素はレコード識別番号だけから成り、
レコード識別番号はキー部の値が小さいものから順に配
置されている。このようなマージ結果は、大容量メモリ
(EBDM)163上に格納される。
【0047】次に、図6を参照して、エンジン制御プロ
セッサ(ECP)162によってソフトウェア的に実行
されるn−ウェイマージの具体的な処理手順を説明す
る。
セッサ(ECP)162によってソフトウェア的に実行
されるn−ウェイマージの具体的な処理手順を説明す
る。
【0048】図6においては、説明を簡単にするため
に、部分ソート列S1〜S4の各要素をなすレコード識
別番号とキー部がまとめてR(n)として示されてい
る。ここで、括弧内のnの値はキー部の値に対応してい
る。
に、部分ソート列S1〜S4の各要素をなすレコード識
別番号とキー部がまとめてR(n)として示されてい
る。ここで、括弧内のnの値はキー部の値に対応してい
る。
【0049】まず、エンジン制御プロセッサ(ECP)
162は、部分ソート列S1〜S4それぞれから先頭要
素{R(1),R(2),R(9),R(10)}を取
り出し、部分ソート列S1とS2間における先頭要素の
比較により、2つの部分ソート列S1とS2の間で値の
小さい方の先頭要素(ここでは、R(1))を第1出力
として選び、また、部分ソート列S3とS4間における
先頭要素の比較により、2つの部分ソート列S3とS4
の間で値の小さい方の先頭要素(ここでは、R(9))
を第2出力として選ぶ。次いで、エンジン制御プロセッ
サ(ECP)162は、第1出力と第2出力の要素を比
較し、小さい方の要素(ここでは、R(1))を部分ソ
ート列S1〜S4の4つの先頭要素{R(1),R
(2),R(9),R(10)}の中で最小の要素とし
てマージ結果出力列に移す。
162は、部分ソート列S1〜S4それぞれから先頭要
素{R(1),R(2),R(9),R(10)}を取
り出し、部分ソート列S1とS2間における先頭要素の
比較により、2つの部分ソート列S1とS2の間で値の
小さい方の先頭要素(ここでは、R(1))を第1出力
として選び、また、部分ソート列S3とS4間における
先頭要素の比較により、2つの部分ソート列S3とS4
の間で値の小さい方の先頭要素(ここでは、R(9))
を第2出力として選ぶ。次いで、エンジン制御プロセッ
サ(ECP)162は、第1出力と第2出力の要素を比
較し、小さい方の要素(ここでは、R(1))を部分ソ
ート列S1〜S4の4つの先頭要素{R(1),R
(2),R(9),R(10)}の中で最小の要素とし
てマージ結果出力列に移す。
【0050】このようにして、部分ソート列S1の先頭
要素がマージ結果出力列に移されると、部分ソート列S
1の2番目の要素(ここでは、R(3))が部分ソート
列S1の新たな先頭要素となり、エンジン制御プロセッ
サ(ECP)162は、部分ソート列S1の新たな先頭
要素(R(3))と部分ソート列S2の先頭要素(R
(2))との比較によって、第1出力(ここでは、R
(2))を選定する。次いで、エンジン制御プロセッサ
(ECP)162は、第1出力(R(2))と第2出力
(R(9))の要素を比較し、小さい方の要素(ここで
は、R(2))を部分ソート列S1〜S4の4つの先頭
要素{R(3),R(2),R(9),R(10)}の
中で最小の要素としてマージ結果出力列に移す。
要素がマージ結果出力列に移されると、部分ソート列S
1の2番目の要素(ここでは、R(3))が部分ソート
列S1の新たな先頭要素となり、エンジン制御プロセッ
サ(ECP)162は、部分ソート列S1の新たな先頭
要素(R(3))と部分ソート列S2の先頭要素(R
(2))との比較によって、第1出力(ここでは、R
(2))を選定する。次いで、エンジン制御プロセッサ
(ECP)162は、第1出力(R(2))と第2出力
(R(9))の要素を比較し、小さい方の要素(ここで
は、R(2))を部分ソート列S1〜S4の4つの先頭
要素{R(3),R(2),R(9),R(10)}の
中で最小の要素としてマージ結果出力列に移す。
【0051】部分ソート列S2の先頭要素がマージ結果
出力列に移されると、部分ソート列S2の2番目の要素
(ここでは、R(4))を部分ソート列S2の新たな先
頭要素として、前回と同様の処理が行われる。
出力列に移されると、部分ソート列S2の2番目の要素
(ここでは、R(4))を部分ソート列S2の新たな先
頭要素として、前回と同様の処理が行われる。
【0052】このように、エンジン制御プロセッサ(E
CP)162は、マ−ジ対象の4つの部分ソート列S1
〜S4それぞれの先頭の要素のうちで例えば最小値の要
素を選んでは出力列に移すという処理を行い、そして先
頭要素が出力列に移された部分ソート列については次の
要素を先頭要素として処理を繰り返すことにより、部分
ソート列S1〜S4に対する4−ウェイマージを実行す
る。
CP)162は、マ−ジ対象の4つの部分ソート列S1
〜S4それぞれの先頭の要素のうちで例えば最小値の要
素を選んでは出力列に移すという処理を行い、そして先
頭要素が出力列に移された部分ソート列については次の
要素を先頭要素として処理を繰り返すことにより、部分
ソート列S1〜S4に対する4−ウェイマージを実行す
る。
【0053】エンジン制御プロセッサ(ECP)162
によるマージ結果はエンジンインターフェースプロセッ
サ(EIP)161によって磁気ディスク装置17に出
力される。この場合、図5で説明したように、マージ結
果はレコード識別番号の並びのみによって構成されてい
るので、エンジンインターフェースプロセッサ(EI
P)161は、磁気ディスク装置17にデータを出力す
る際、出力ファイルの再構成処理を行う。
によるマージ結果はエンジンインターフェースプロセッ
サ(EIP)161によって磁気ディスク装置17に出
力される。この場合、図5で説明したように、マージ結
果はレコード識別番号の並びのみによって構成されてい
るので、エンジンインターフェースプロセッサ(EI
P)161は、磁気ディスク装置17にデータを出力す
る際、出力ファイルの再構成処理を行う。
【0054】すなわち、エンジンインターフェースプロ
セッサ(EIP)161は、図3の演算対象データのレ
コードを図5のマージ結果の並びにしたがって再構成
し、それを磁気ディスク装置17に出力する。このエン
ジンインターフェースプロセッサ(EIP)161によ
る再構成および出力処理は、エンジン制御プロセッサ
(ECP)162によるn−ウェイマージ処理と並行し
て実行される。
セッサ(EIP)161は、図3の演算対象データのレ
コードを図5のマージ結果の並びにしたがって再構成
し、それを磁気ディスク装置17に出力する。このエン
ジンインターフェースプロセッサ(EIP)161によ
る再構成および出力処理は、エンジン制御プロセッサ
(ECP)162によるn−ウェイマージ処理と並行し
て実行される。
【0055】図7には、この実施例における外部ソート
実行時のデータベース演算処理装置16内のタイミング
チャートが示されている。
実行時のデータベース演算処理装置16内のタイミング
チャートが示されている。
【0056】図7に示されているように、エンジンイン
ターフェースプロセッサ(EIP)161による入力処
理と、並列ソーティングモジュール(PSOM)165
および並列関係代数演算モジュール(PRAM)166
を用いたハードウェア制御プロセッサ(ECAM)16
4によるソート処理は並行して動作される。また、ソー
ト処理で生成された部分ソート列S1〜S4をまとめて
マージするためのエンジン制御プロセッサ(ECP)1
62によるnマージ処理と、エンジンインターフェース
プロセッサ(EIP)161による出力処理も並行して
動作される。
ターフェースプロセッサ(EIP)161による入力処
理と、並列ソーティングモジュール(PSOM)165
および並列関係代数演算モジュール(PRAM)166
を用いたハードウェア制御プロセッサ(ECAM)16
4によるソート処理は並行して動作される。また、ソー
ト処理で生成された部分ソート列S1〜S4をまとめて
マージするためのエンジン制御プロセッサ(ECP)1
62によるnマージ処理と、エンジンインターフェース
プロセッサ(EIP)161による出力処理も並行して
動作される。
【0057】この図7のタイミングチャートから分かる
ように、この実施例の装置では、外部ソートに要する全
体の処理時間はほぼ入出力時間によって決定され、ソー
ト処理やマージ処理に要する処理時間はあまり問題とな
らない。したがって、ホストコンピュータ10にマージ
処理を実行させる場合に比し、十分な性能向上を実現で
きる。
ように、この実施例の装置では、外部ソートに要する全
体の処理時間はほぼ入出力時間によって決定され、ソー
ト処理やマージ処理に要する処理時間はあまり問題とな
らない。したがって、ホストコンピュータ10にマージ
処理を実行させる場合に比し、十分な性能向上を実現で
きる。
【0058】以上のように、この実施例においては、エ
ンジン制御プロセッサ162にnウェイマージの機能が
設けられており、2ウェイマージ処理を行うハードウェ
アソータ(164,165,166)で生成された部分
ソート列S1〜S4は、そのハードウェアソータではな
く、エンジン制御プロセッサ162によるnーウェイマ
ージ処理によって一度にマージされ、これによって1本
の整列化されたソート列が生成される。このため、デー
タベース演算処理装置16内で複数の部分ソート列を一
度にマージできるようになり、ホストコンピュータ10
の負荷を大幅に軽減でき、しかもハードウェアソータ
(164,165,166)を繰り返し用いる場合より
もデータ移動量等を減らすことが出切るのでその分だけ
高速のソート処理を実現できる。
ンジン制御プロセッサ162にnウェイマージの機能が
設けられており、2ウェイマージ処理を行うハードウェ
アソータ(164,165,166)で生成された部分
ソート列S1〜S4は、そのハードウェアソータではな
く、エンジン制御プロセッサ162によるnーウェイマ
ージ処理によって一度にマージされ、これによって1本
の整列化されたソート列が生成される。このため、デー
タベース演算処理装置16内で複数の部分ソート列を一
度にマージできるようになり、ホストコンピュータ10
の負荷を大幅に軽減でき、しかもハードウェアソータ
(164,165,166)を繰り返し用いる場合より
もデータ移動量等を減らすことが出切るのでその分だけ
高速のソート処理を実現できる。
【0059】さらに、この実施例では、データベース演
算処理装置16にマルチプロセッサ構成を採用し、磁気
ディスク装置17との間のデータ入出力をエンジンイン
ターフェースプロセッサ(EIP)161に、並列ソー
ティングモジュール(PSOM)165および並列関係
代数演算モジュール(PRAM)166のハードウェア
回路を用いたソート処理の制御をハードウェアソータ制
御プロセッサ(ECAM)164に、そして、全体の制
御とマージ処理をエンジン制御プロセッサ(ECP)1
62にそれぞれ機能分散しているので、外部ソートにお
ける入力処理とソート処理、およびマージ処理と出力処
理がそれぞれ並行して動作される。このため、外部ソー
ト処理に要する全体の時間を著しく低減することがで
き、高性能の装置を実現できる。
算処理装置16にマルチプロセッサ構成を採用し、磁気
ディスク装置17との間のデータ入出力をエンジンイン
ターフェースプロセッサ(EIP)161に、並列ソー
ティングモジュール(PSOM)165および並列関係
代数演算モジュール(PRAM)166のハードウェア
回路を用いたソート処理の制御をハードウェアソータ制
御プロセッサ(ECAM)164に、そして、全体の制
御とマージ処理をエンジン制御プロセッサ(ECP)1
62にそれぞれ機能分散しているので、外部ソートにお
ける入力処理とソート処理、およびマージ処理と出力処
理がそれぞれ並行して動作される。このため、外部ソー
ト処理に要する全体の時間を著しく低減することがで
き、高性能の装置を実現できる。
【0060】
【発明の効果】以上のように、この発明によれば、ハー
ドウェアソータを用いずにデータベース演算処理装置内
で複数の部分ソート列をマージできるようになり、ホス
ト装置の負荷を大幅に軽減し、しかも十分に高速なソー
ト処理を実現することができる。
ドウェアソータを用いずにデータベース演算処理装置内
で複数の部分ソート列をマージできるようになり、ホス
ト装置の負荷を大幅に軽減し、しかも十分に高速なソー
ト処理を実現することができる。
【図1】この発明の一実施例に係わるデータ処理装置の
システム構成を示すブロック図。
システム構成を示すブロック図。
【図2】図1のシステムにおけるデータベース演算処理
装置の動作を説明するためのフローチャート。
装置の動作を説明するためのフローチャート。
【図3】図1のシステムにおける演算対象入力データの
データ構造の一例を示す図。
データ構造の一例を示す図。
【図4】図1のシステムにおける部分ソート列のデータ
構造の一例を示す図。
構造の一例を示す図。
【図5】図1のシステムにおけるマージ結果のデータ構
造の一例を示す図。
造の一例を示す図。
【図6】図1のシステムのデータベース演算処理装置内
で実行されるn−ウェイマージ処理の動作手順を示す
図。
で実行されるn−ウェイマージ処理の動作手順を示す
図。
【図7】図1のシステムにおける外部ソート実行時の動
作を説明するタイミングチャート。
作を説明するタイミングチャート。
10…ホストコンピュータ、16…データベース演算装
置、17…磁気ディスク装置、161,162,164
…プロセッサ、163…大容量メモリ、165…並列ソ
ーティングモジュール、166…並列関係代数演算モジ
ュール。
置、17…磁気ディスク装置、161,162,164
…プロセッサ、163…大容量メモリ、165…並列ソ
ーティングモジュール、166…並列関係代数演算モジ
ュール。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 山田 朝彦 東京都青梅市末広町2丁目9番地 株式会 社東芝青梅工場内
Claims (2)
- 【請求項1】 ホスト装置と、演算対象のファイルデー
タが格納される2次記憶装置と、前記2次記憶装置を直
接アクセスするためのパスを有し、前記ホスト装置から
の要求に応じて前記演算対象のファイルデータに対して
所定の演算処理を実行する演算処理装置とを備えたデー
タ処理装置において、 前記演算処理装置は、演算対象のファイルデータを前記
パスを介して前記2次記憶装置から入力する手段と、入
力された演算対象のファイルデータに対して所定の演算
処理を実行し、複数の部分ソート列を生成する演算回路
と、この演算回路による演算によって生成された複数の
部分ソート列をまとめてマージすることにより1本の整
列化されたソート列を生成する手段と、この生成された
ソート列を前記パスを介して前記2次記憶装置に出力す
る手段とを具備し、 前記演算処理装置内で前記複数の部分ソート列をまとめ
てマージすることを特徴とするデータ処理装置。 - 【請求項2】 ホスト装置と、演算対象のファイルデー
タが格納される2次記憶装置と、前記2次記憶装置を直
接アクセスするためのパスを有し、前記ホスト装置から
の要求に応じて前記演算対象のファイルデータに対して
所定の演算処理を実行する演算処理装置とを備えたデー
タ処理装置において、 前記演算処理装置は、前記ホスト装置との間の通信、お
よび前記2次記憶装置との間のデータ入出力を実行する
第1のプロセッサと、ソートまたは関係代数演算を行う
演算回路と、この演算回路による演算を実行制御する第
2のプロセッサと、前記第1のプロセッサによって入力
される演算対象のファイルデータ、および前記演算回路
による演算結果が格納される内部メモリと、前記第1の
プロセッサを介して供給される前記ホスト装置からの指
示に基づき、前記第1および第2のプロセッサを動作制
御する第3のプロセッサとを具備し、 前記第3のプロセッサは、前記演算回路による演算によ
って生成された複数の部分ソート列をまとめてマージす
ることにより1本の整列化されたソート列を生成し、 前記第1のプロセッサによる演算対象データの入力処理
と前記第2のプロセッサによる演算処理が並行して実行
され、且つ前記第3のプロセッサによるマージ処理と前
記第1のプロセッサによる演算結果のデータ出力処理が
並行して実行されるように構成されていることを特徴と
するデータ処理装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3268185A JPH0580977A (ja) | 1991-09-21 | 1991-09-21 | データ処理装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3268185A JPH0580977A (ja) | 1991-09-21 | 1991-09-21 | データ処理装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0580977A true JPH0580977A (ja) | 1993-04-02 |
Family
ID=17455101
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3268185A Pending JPH0580977A (ja) | 1991-09-21 | 1991-09-21 | データ処理装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0580977A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2002041551A (ja) * | 2000-07-31 | 2002-02-08 | Taabo Data Laboratory Kk | データのコンパイル方法、および、コンパイル方法を記憶した記憶媒体 |
| JP2010230522A (ja) * | 2009-03-27 | 2010-10-14 | Aisin Aw Co Ltd | ナビゲーション装置及びプログラム |
| JP2016115092A (ja) * | 2014-12-12 | 2016-06-23 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 多数の要素からなる配列をソートする装置、方法およびプログラム |
-
1991
- 1991-09-21 JP JP3268185A patent/JPH0580977A/ja active Pending
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2002041551A (ja) * | 2000-07-31 | 2002-02-08 | Taabo Data Laboratory Kk | データのコンパイル方法、および、コンパイル方法を記憶した記憶媒体 |
| JP2010230522A (ja) * | 2009-03-27 | 2010-10-14 | Aisin Aw Co Ltd | ナビゲーション装置及びプログラム |
| JP2016115092A (ja) * | 2014-12-12 | 2016-06-23 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 多数の要素からなる配列をソートする装置、方法およびプログラム |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5307485A (en) | Method and apparatus for merging sorted lists in a multiprocessor shared memory system | |
| US4967341A (en) | Method and apparatus for processing data base | |
| CN110109898B (zh) | 基于fpga片内bram的哈希连接加速方法及系统 | |
| JPH0580977A (ja) | データ処理装置 | |
| JPH0581337A (ja) | データ処理装置 | |
| JPH0581342A (ja) | データ処理装置 | |
| JP3004102B2 (ja) | データベース演算処理装置 | |
| JPH0581339A (ja) | データ処理装置 | |
| JP2983352B2 (ja) | データベース演算処理装置 | |
| JPH0581343A (ja) | データ処理装置 | |
| JPH06110936A (ja) | データ処理装置 | |
| US6173281B1 (en) | Method and computer program product for processing and combining data sets including bitmaps | |
| JP2923952B2 (ja) | マージ処理方法 | |
| US20260079944A1 (en) | Database management system and method for executing query processing to database | |
| JPH06348561A (ja) | データ処理装置 | |
| JP3002041B2 (ja) | データベース演算処理装置 | |
| von Bultzingsloewen et al. | Kardamom—a dataflow database machine for real-time applications | |
| JPH0580976A (ja) | データ処理装置 | |
| JPH06176075A (ja) | データ処理装置 | |
| JPH0581338A (ja) | データ処理装置 | |
| Kamibayashi et al. | SPIRIT-III: an advanced relational database machine introducing a novel data-staging architecture with tuple stream filters to preprocess relational algebra | |
| JP2588932B2 (ja) | ソート処理装置 | |
| JPH06176076A (ja) | データ処理装置 | |
| JPS62187931A (ja) | デ−タベ−ス演算装置及び方法 | |
| JPH06348560A (ja) | データ処理装置 |