JPH05324580A - データ処理装置 - Google Patents
データ処理装置Info
- Publication number
- JPH05324580A JPH05324580A JP4133471A JP13347192A JPH05324580A JP H05324580 A JPH05324580 A JP H05324580A JP 4133471 A JP4133471 A JP 4133471A JP 13347192 A JP13347192 A JP 13347192A JP H05324580 A JPH05324580 A JP H05324580A
- Authority
- JP
- Japan
- Prior art keywords
- processing
- data
- arithmetic
- thread
- processor
- 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)【要約】
【目的】スレッドの生成と共にその処理を開始できるよ
うにし、マルチスレッドによる並行処理性能の向上を図
る。 【構成】エンジン制御プロセッサ(ECP)162は、
ホストコンピュータ10からの演算要求にしたがってそ
の演算処理を並行動作可能な複数の処理に分割し、それ
ら処理にスレッドを割り当てることにより、ソート処理
においては、大容量メモリ(EBDM)163からハー
ドウェアソータ制御プロセッサ(ECAM)164への
データの引き渡し処理と、ハードウェアソータ制御プロ
セッサ(ECAM)164からのデータ受信処理とがマ
ルチスレッドによって並行して実行される。
うにし、マルチスレッドによる並行処理性能の向上を図
る。 【構成】エンジン制御プロセッサ(ECP)162は、
ホストコンピュータ10からの演算要求にしたがってそ
の演算処理を並行動作可能な複数の処理に分割し、それ
ら処理にスレッドを割り当てることにより、ソート処理
においては、大容量メモリ(EBDM)163からハー
ドウェアソータ制御プロセッサ(ECAM)164への
データの引き渡し処理と、ハードウェアソータ制御プロ
セッサ(ECAM)164からのデータ受信処理とがマ
ルチスレッドによって並行して実行される。
Description
【0001】
【産業上の利用分野】この発明は、ホスト装置からの要
求に応じて演算対象のファイルデータに対してソートま
たは関係代数演算等の演算処理を実行する演算処理装置
を備えたデータ処理装置に関する。
求に応じて演算対象のファイルデータに対してソートま
たは関係代数演算等の演算処理を実行する演算処理装置
を備えたデータ処理装置に関する。
【0002】
【従来の技術】一般に、コンピュータシステムにおいて
は、ソート処理や関係データベースの検索系処理等を高
速に実行するために専用のデータベース演算処理装置が
設けられている。このデータベース演算処理装置はハー
ドウェアソータと称される演算回路を備えており、この
演算回路を用いることによってホスト装置からの演算処
理要求に応じたソートや関係代数演算等を高速に実行す
る。
は、ソート処理や関係データベースの検索系処理等を高
速に実行するために専用のデータベース演算処理装置が
設けられている。このデータベース演算処理装置はハー
ドウェアソータと称される演算回路を備えており、この
演算回路を用いることによってホスト装置からの演算処
理要求に応じたソートや関係代数演算等を高速に実行す
る。
【0003】このような制御を高速に行うためには、各
処理単位を並列に実行することが必要になる。そのため
全体を制御するプロセッサはマルチスレッド環境を提供
し、各処理単位に応じたスレッドを生成することにな
る。従来、このスレッドの生成には演算処理の過程が考
慮されておらず、このため、互いに別のスレッドのデー
タ結果を初期情報として受け取るまで実際の処理を開始
できないといった不具合があった。この場合、初期情報
を受信するまではスレッド管理のオーバヘッドが増加す
るだけで、実際の並行処理の効果は得られないことにな
る。
処理単位を並列に実行することが必要になる。そのため
全体を制御するプロセッサはマルチスレッド環境を提供
し、各処理単位に応じたスレッドを生成することにな
る。従来、このスレッドの生成には演算処理の過程が考
慮されておらず、このため、互いに別のスレッドのデー
タ結果を初期情報として受け取るまで実際の処理を開始
できないといった不具合があった。この場合、初期情報
を受信するまではスレッド管理のオーバヘッドが増加す
るだけで、実際の並行処理の効果は得られないことにな
る。
【0004】
【発明が解決しようとする課題】従来では、初期情報が
伝達されるまでスレッド管理の無駄が生じており、これ
によってCPU資源の浪費、実行効率の悪化を招く欠点
があった。この発明はこのような点に鑑みてなされたも
ので、十分に効率の良い並行処理を実現することができ
るデータ処理装置を提供することを目的とする。
伝達されるまでスレッド管理の無駄が生じており、これ
によってCPU資源の浪費、実行効率の悪化を招く欠点
があった。この発明はこのような点に鑑みてなされたも
ので、十分に効率の良い並行処理を実現することができ
るデータ処理装置を提供することを目的とする。
【0005】
【課題を解決するための手段および作用】この発明は、
ホスト装置と、演算対象のファイルデータが格納される
2次記憶装置と、前記2次記憶装置を直接アクセスする
ためのパスを有し、前記ホスト装置からの要求に応じて
前記演算対象のファイルデータに対して所定の演算処理
を実行する演算処理装置とを備えたデータ処理装置にお
いて、前記演算処理装置は、演算対象のファイルデータ
を前記パスを介して前記2次記憶装置から入力する入力
手段と、入力された演算対象のファイルデータに対して
ソートまたは関係代数演算を実行する演算手段と、前記
演算対象のファイルデータおよび前記演算手段による演
算結果データが格納される内部メモリと、前記演算結果
データを前記2次記憶装置に出力する出力手段と、前記
ホスト装置からの演算要求に従って前記演算処理装置に
よる演算処理を制御する制御手段とを具備し、前記制御
手段は、前記ホスト装置から要求された演算処理を互い
に並行動作可能な複数の処理に分割し、それら処理毎に
スレッドを割り当てることによって前記演算処理をマル
チスレッド環境によって並行処理させることを第1の特
徴とする。
ホスト装置と、演算対象のファイルデータが格納される
2次記憶装置と、前記2次記憶装置を直接アクセスする
ためのパスを有し、前記ホスト装置からの要求に応じて
前記演算対象のファイルデータに対して所定の演算処理
を実行する演算処理装置とを備えたデータ処理装置にお
いて、前記演算処理装置は、演算対象のファイルデータ
を前記パスを介して前記2次記憶装置から入力する入力
手段と、入力された演算対象のファイルデータに対して
ソートまたは関係代数演算を実行する演算手段と、前記
演算対象のファイルデータおよび前記演算手段による演
算結果データが格納される内部メモリと、前記演算結果
データを前記2次記憶装置に出力する出力手段と、前記
ホスト装置からの演算要求に従って前記演算処理装置に
よる演算処理を制御する制御手段とを具備し、前記制御
手段は、前記ホスト装置から要求された演算処理を互い
に並行動作可能な複数の処理に分割し、それら処理毎に
スレッドを割り当てることによって前記演算処理をマル
チスレッド環境によって並行処理させることを第1の特
徴とする。
【0006】このデータ処理装置においては、演算処理
が互いに並行動作可能な複数の処理に分割され、それら
処理毎にスレッドが割り当てられるので、各スレッドは
他のスレッドの結果等を待つこと無く、生成されると同
時に処理を開始することができる。したがって、演算処
理装置の並行処理効率を大幅に向上させることが可能と
なる。
が互いに並行動作可能な複数の処理に分割され、それら
処理毎にスレッドが割り当てられるので、各スレッドは
他のスレッドの結果等を待つこと無く、生成されると同
時に処理を開始することができる。したがって、演算処
理装置の並行処理効率を大幅に向上させることが可能と
なる。
【0007】また、この発明は、データベース演算処理
装置に第1乃至第3のプロセッサから構成されるマルチ
プロセッサ構成を採用し、データベース演算処理装置と
2次記憶装置間のデータ入出力を第1のプロセッサに、
演算回路を用いた演算処理を第2のプロセッサに、そし
て、全体の制御を第3のプロセッサにそれぞれ機能分散
すると共に、ホスト装置からの演算処理とマルチスレッ
ドによる演算制御の並列処理とを第3のプロセッサによ
って実行させるように構成したことを第2の特徴とす
る。
装置に第1乃至第3のプロセッサから構成されるマルチ
プロセッサ構成を採用し、データベース演算処理装置と
2次記憶装置間のデータ入出力を第1のプロセッサに、
演算回路を用いた演算処理を第2のプロセッサに、そし
て、全体の制御を第3のプロセッサにそれぞれ機能分散
すると共に、ホスト装置からの演算処理とマルチスレッ
ドによる演算制御の並列処理とを第3のプロセッサによ
って実行させるように構成したことを第2の特徴とす
る。
【0008】この構成においては、第1乃至第3のプロ
セッサによって効率よく負荷分散が図れ、しかも第1の
プロセッサによるデータ入出力と、第2のプロセッサに
よる演算処理との並行動作が可能となり、それら並行動
作とそれを実現するスレッドを効率的に生成することを
第3のプロセッサが実行制御することにより、データベ
ース演算処理装置の動作性能を十分に向上させることが
できる。
セッサによって効率よく負荷分散が図れ、しかも第1の
プロセッサによるデータ入出力と、第2のプロセッサに
よる演算処理との並行動作が可能となり、それら並行動
作とそれを実現するスレッドを効率的に生成することを
第3のプロセッサが実行制御することにより、データベ
ース演算処理装置の動作性能を十分に向上させることが
できる。
【0009】
【実施例】以下、図面を参照してこの発明の実施例を説
明する。
明する。
【0010】図1にはこの発明の一実施例に係わるデー
タ処理装置の全体のシステム構成が示されている。この
データ処理装置は、ホストコンピュータ10と、データ
ベース演算処理装置(データベースエンジン;DBE)
16と、磁気ディスク装置17とによって構成されてい
る。ホストコンピュータ10は、CPU11、主記憶装
置12、第1および第2のチャンネル装置14、15に
よって構成されており、これらCPU11、主記憶装置
12、およびチャンネル装置14、15はシステムバス
13を介して相互接続されている。
タ処理装置の全体のシステム構成が示されている。この
データ処理装置は、ホストコンピュータ10と、データ
ベース演算処理装置(データベースエンジン;DBE)
16と、磁気ディスク装置17とによって構成されてい
る。ホストコンピュータ10は、CPU11、主記憶装
置12、第1および第2のチャンネル装置14、15に
よって構成されており、これらCPU11、主記憶装置
12、およびチャンネル装置14、15はシステムバス
13を介して相互接続されている。
【0011】ホストコンピュータ10とデータベース演
算処理装置16はチャンネル装置14によって接続さ
れ、またホストコンピュータ10と磁気ディスク装置1
7はチャンネル装置15によって接続されている。さら
に、データベース演算処理装置16と磁気ディスク17
は専用のアクセスパス18を介して接続されている。
算処理装置16はチャンネル装置14によって接続さ
れ、またホストコンピュータ10と磁気ディスク装置1
7はチャンネル装置15によって接続されている。さら
に、データベース演算処理装置16と磁気ディスク17
は専用のアクセスパス18を介して接続されている。
【0012】CPU11は、ホストコンピュータ10全
体の制御を司るものであり、データベース演算処理装置
16に対してソート処理や関係代数演算等の各種演算処
理の実行を依頼する。主記憶装置12には、データベー
ス演算処理装置16に演算対象ファイルや演算内容を指
示するためのコマンドが格納される。
体の制御を司るものであり、データベース演算処理装置
16に対してソート処理や関係代数演算等の各種演算処
理の実行を依頼する。主記憶装置12には、データベー
ス演算処理装置16に演算対象ファイルや演算内容を指
示するためのコマンドが格納される。
【0013】データベース演算処理装置(DBE)16
は、CPU11からのコマンドに基づいて演算対象ファ
イルのデータに対して演算処理を実行するものであり、
演算対象ファイルの入力および演算結果の出力のため
に、パス18を介して磁気ディスク装置17を直接的に
アクセスする。
は、CPU11からのコマンドに基づいて演算対象ファ
イルのデータに対して演算処理を実行するものであり、
演算対象ファイルの入力および演算結果の出力のため
に、パス18を介して磁気ディスク装置17を直接的に
アクセスする。
【0014】このデータベース演算処理装置(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によって構成され
ている。
【0015】エンジンインターフェースプロセッサ(E
IP)161、エンジン制御プロセッサ(ECP)16
2、およびハードウェアソータ制御プロセッサ(ECA
M)164の3台のプロセッサは内部バス167によっ
て相互接続されており、大容量メモリ(EBDM)16
3を共有メモリとする密結合のマルチプロセッサを構成
している。大容量メモリ(EBDM)163は、3台の
各プロセッサの共通のアドレス空間上に配置されてい
る。また、これら3台の各プロセッサ、つまり、エンジ
ンインターフェースプロセッサ(EIP)161、エン
ジン制御プロセッサ(ECP)162、およびハードウ
ェアソータ制御プロセッサ(ECAM)164には機能
分散がなされている。この場合、それぞれの固有の役割
を効率よく実行するために、これらの各プロセッサは、
密結合ながらそれぞれに適した独立のモニタによって動
作制御されるように構成されている。
IP)161、エンジン制御プロセッサ(ECP)16
2、およびハードウェアソータ制御プロセッサ(ECA
M)164の3台のプロセッサは内部バス167によっ
て相互接続されており、大容量メモリ(EBDM)16
3を共有メモリとする密結合のマルチプロセッサを構成
している。大容量メモリ(EBDM)163は、3台の
各プロセッサの共通のアドレス空間上に配置されてい
る。また、これら3台の各プロセッサ、つまり、エンジ
ンインターフェースプロセッサ(EIP)161、エン
ジン制御プロセッサ(ECP)162、およびハードウ
ェアソータ制御プロセッサ(ECAM)164には機能
分散がなされている。この場合、それぞれの固有の役割
を効率よく実行するために、これらの各プロセッサは、
密結合ながらそれぞれに適した独立のモニタによって動
作制御されるように構成されている。
【0016】エンジンインターフェースプロセッサ(E
IP)161、エンジン制御プロセッサ(ECP)16
2、およびハードウェアソータ制御プロセッサ(ECA
M)164機能分散は、次のようになされている。
IP)161、エンジン制御プロセッサ(ECP)16
2、およびハードウェアソータ制御プロセッサ(ECA
M)164機能分散は、次のようになされている。
【0017】すなわち、エンジンインターフェースプロ
セッサ(EIP)161は、ホストコンピュータ10と
データベース演算処理装置16間の通信を行うと共に、
磁気ディスク装置17のディスクコントローラにもパス
18を介して接続されており、磁気ディスク装置17と
の間でのデータ入出力を制御する。また、エンジンイン
ターフェースプロセッサ(EIP)161は、磁気ディ
スク装置17にデータを出力する際、出力ファイルの再
構成処理も行う。
セッサ(EIP)161は、ホストコンピュータ10と
データベース演算処理装置16間の通信を行うと共に、
磁気ディスク装置17のディスクコントローラにもパス
18を介して接続されており、磁気ディスク装置17と
の間でのデータ入出力を制御する。また、エンジンイン
ターフェースプロセッサ(EIP)161は、磁気ディ
スク装置17にデータを出力する際、出力ファイルの再
構成処理も行う。
【0018】ホストコンピュータ10との通信において
は、エンジンインターフェースプロセッサ(EIP)1
61は、第1のチャンネル装置14を介してCPU11
から送られてくるコマンドを受信し、それをエンジン制
御プロセッサ(ECP)162に送信する。また、エン
ジンインターフェースプロセッサ(EIP)161は、
エンジン制御プロセッサ(ECP)162から送られて
くるコマンド結果としてステータスを受信し、それを第
1のチャンネル装置14を介してCPU11に返信す
る。
は、エンジンインターフェースプロセッサ(EIP)1
61は、第1のチャンネル装置14を介してCPU11
から送られてくるコマンドを受信し、それをエンジン制
御プロセッサ(ECP)162に送信する。また、エン
ジンインターフェースプロセッサ(EIP)161は、
エンジン制御プロセッサ(ECP)162から送られて
くるコマンド結果としてステータスを受信し、それを第
1のチャンネル装置14を介してCPU11に返信す
る。
【0019】磁気ディスク装置17との間のデータ入出
力においては、エンジンインターフェースプロセッサ
(EIP)161は、エンジン制御プロセッサ(EC
P)162からの入出力要求を受け付け、大容量メモリ
(EBDM)163と磁気ディスク装置17との間でデ
ータ転送を行う。その際、エンジン制御プロセッサ(E
CP)162からの要求に従い出力ファイルデータの再
構成処理も行う。
力においては、エンジンインターフェースプロセッサ
(EIP)161は、エンジン制御プロセッサ(EC
P)162からの入出力要求を受け付け、大容量メモリ
(EBDM)163と磁気ディスク装置17との間でデ
ータ転送を行う。その際、エンジン制御プロセッサ(E
CP)162からの要求に従い出力ファイルデータの再
構成処理も行う。
【0020】エンジン制御プロセッサ(ECP)162
は、エンジンインターフェースプロセッサ(EIP)1
61、大容量メモリ(EBDM)163、およびハード
ウェアソータ制御プロセッサ(ECAM)164を内部
バス167を介して制御するものであり、CPU11か
らのコマンドが、ソートや関係代数演算などの演算処理
コマンドであった場合には、それに対応する各種コマン
ド処理プロセスを生成・実行したり、最小の処理単位で
あるスレッドをその初期情報を与えると共に生成・実行
する。
は、エンジンインターフェースプロセッサ(EIP)1
61、大容量メモリ(EBDM)163、およびハード
ウェアソータ制御プロセッサ(ECAM)164を内部
バス167を介して制御するものであり、CPU11か
らのコマンドが、ソートや関係代数演算などの演算処理
コマンドであった場合には、それに対応する各種コマン
ド処理プロセスを生成・実行したり、最小の処理単位で
あるスレッドをその初期情報を与えると共に生成・実行
する。
【0021】大容量メモリ(EBDM)163は、磁気
ディスク装置17から読み出された演算対象のファイル
データ、CPU11から送られてくる各種演算処理コマ
ンド、ハードウェアソータ制御プロセッサ(ECAM)
164、並列ソーティングモジュール(PSOM)16
5、および並列関係代数演算モジュール(PRAM)1
66による演算処理結果、さらには、エンジン制御プロ
セッサ(ECP)162による演算結果の統合結果等を
格納する共有メモリである。演算対象ファイルデータは
大容量メモリ(EBDM)163内の入力バッファ部に
格納され、演算処理結果は大容量メモリ(EBDM)1
63内の出力バッファ部に格納される。
ディスク装置17から読み出された演算対象のファイル
データ、CPU11から送られてくる各種演算処理コマ
ンド、ハードウェアソータ制御プロセッサ(ECAM)
164、並列ソーティングモジュール(PSOM)16
5、および並列関係代数演算モジュール(PRAM)1
66による演算処理結果、さらには、エンジン制御プロ
セッサ(ECP)162による演算結果の統合結果等を
格納する共有メモリである。演算対象ファイルデータは
大容量メモリ(EBDM)163内の入力バッファ部に
格納され、演算処理結果は大容量メモリ(EBDM)1
63内の出力バッファ部に格納される。
【0022】ハードウェアソータ制御プロセッサ(EC
AM)164は、エンジン制御プロセッサ(ECP)1
62からの指令に基づいて、並列ソーティングモジュー
ル(PSOM)165および並列関係代数演算モジュー
ル(PRAM)166による演算を制御する。
AM)164は、エンジン制御プロセッサ(ECP)1
62からの指令に基づいて、並列ソーティングモジュー
ル(PSOM)165および並列関係代数演算モジュー
ル(PRAM)166による演算を制御する。
【0023】この場合、ハードウェアソータ制御プロセ
ッサ(ECAM)164は、大容量メモリ(EBDM)
163上のデータを並列ソーティングモジュール(PS
OM)165に入力し、並列関係代数演算モジュール
(PRAM)166から出力された演算結果を大容量メ
モリ(EBDM)163上に格納するが、並列ソーティ
ングモジュール(PSOM)165へのデータ入力に際
しては、まず、キー切り出し処理を実行する。このキー
切り出し処理においては、ハードウェアソータ制御プロ
セッサ(ECAM)164は、演算対象の各レコードか
ら演算に必要な演算対象キーフィールドのみを切り出
し、それにレコード識別番号(大容量メモリ(EBD
M)163上におけるレコードの先頭アドレス)を付加
して並列ソーティングモジュール(PSOM)165へ
送出する。
ッサ(ECAM)164は、大容量メモリ(EBDM)
163上のデータを並列ソーティングモジュール(PS
OM)165に入力し、並列関係代数演算モジュール
(PRAM)166から出力された演算結果を大容量メ
モリ(EBDM)163上に格納するが、並列ソーティ
ングモジュール(PSOM)165へのデータ入力に際
しては、まず、キー切り出し処理を実行する。このキー
切り出し処理においては、ハードウェアソータ制御プロ
セッサ(ECAM)164は、演算対象の各レコードか
ら演算に必要な演算対象キーフィールドのみを切り出
し、それにレコード識別番号(大容量メモリ(EBD
M)163上におけるレコードの先頭アドレス)を付加
して並列ソーティングモジュール(PSOM)165へ
送出する。
【0024】並列ソーティングモジュール(PSOM)
165は、大容量メモリ(EBDM)163によって駆
動され、ソートを並列に実行する専用のハードウェア回
路であり、並列関係代数演算モジュール(PRAM)1
66に接続されている。この並列ソーティングモジュー
ル(PSOM)165は、パイプラインマージソータと
称されるものであり、2−ウェイマージを行う複数のソ
ートセルをカスケード接続してなる。
165は、大容量メモリ(EBDM)163によって駆
動され、ソートを並列に実行する専用のハードウェア回
路であり、並列関係代数演算モジュール(PRAM)1
66に接続されている。この並列ソーティングモジュー
ル(PSOM)165は、パイプラインマージソータと
称されるものであり、2−ウェイマージを行う複数のソ
ートセルをカスケード接続してなる。
【0025】並列関係代数演算モジュール(PRAM)
166は、関係データベースにおけるJOIN(結合)
やRESTRICT(制約)といった関係代数演算を並
列に実行する専用のハードウェア回路であり、並列ソー
ティングモジュール(PSOM)165からソートされ
たデータを入力し、演算結果をハードウェアソータ制御
プロセッサ(ECAM)164に出力する。ソート処理
だけを実行する場合には、並列関係代数演算モジュール
(PRAM)166は、最終段のソートセルとして機能
する。
166は、関係データベースにおけるJOIN(結合)
やRESTRICT(制約)といった関係代数演算を並
列に実行する専用のハードウェア回路であり、並列ソー
ティングモジュール(PSOM)165からソートされ
たデータを入力し、演算結果をハードウェアソータ制御
プロセッサ(ECAM)164に出力する。ソート処理
だけを実行する場合には、並列関係代数演算モジュール
(PRAM)166は、最終段のソートセルとして機能
する。
【0026】このように、エンジンインターフェースプ
ロセッサ(EIP)161は、エンジン制御プロセッサ
(ECP)162、およびハードウェアソータ制御プロ
セッサ(ECAM)164にはそれぞれ各種演算処理、
例えばソート処理やセレクト処理を実行するための機能
が分散されている。この場合、これらプロセッサは、大
容量メモリ(EBDM)163上のバッファのやりとり
を除けば非同期に動作し、平行して各機能を実行する。
すなわち、ソートやセレクト等の処理は、通常、入力処
理、演算処理、および出力処理から構成されるが、ハー
ドウェアソータ制御プロセッサ(ECAM)164の制
御により演算処理は、エンジンインターフェースプロセ
ッサ(EIP)161による演算対象データの入力処理
と並行して実行される。また、ハードウェアソータ制御
プロセッサ(ECAM)164からの演算結果をエンジ
ン制御プロセッサ(ECP)162によって統合処理す
る必要がある場合には、その統合処理とエンジンインタ
ーフェースプロセッサ(EIP)161による出力処理
も並行して実行される。次に、図2を参照して、演算処
理に対するスレッドの割り当て手法を説明する。
ロセッサ(EIP)161は、エンジン制御プロセッサ
(ECP)162、およびハードウェアソータ制御プロ
セッサ(ECAM)164にはそれぞれ各種演算処理、
例えばソート処理やセレクト処理を実行するための機能
が分散されている。この場合、これらプロセッサは、大
容量メモリ(EBDM)163上のバッファのやりとり
を除けば非同期に動作し、平行して各機能を実行する。
すなわち、ソートやセレクト等の処理は、通常、入力処
理、演算処理、および出力処理から構成されるが、ハー
ドウェアソータ制御プロセッサ(ECAM)164の制
御により演算処理は、エンジンインターフェースプロセ
ッサ(EIP)161による演算対象データの入力処理
と並行して実行される。また、ハードウェアソータ制御
プロセッサ(ECAM)164からの演算結果をエンジ
ン制御プロセッサ(ECP)162によって統合処理す
る必要がある場合には、その統合処理とエンジンインタ
ーフェースプロセッサ(EIP)161による出力処理
も並行して実行される。次に、図2を参照して、演算処
理に対するスレッドの割り当て手法を説明する。
【0027】例えば、データベース演算処理装置16が
ソート処理を行う場合、そのソート処理は、大容量メモ
リ(EBDM)163上のソート対象データをハードウ
ェアソータ制御プロセッサ(ECAM)164に渡す処
理(処理1)と、ハードウェアソータ制御プロセッサ
(ECAM)164からソート結果を受け取る処理(処
理2)とに分割される。これら処理は、互いに並行処理
可能な独立した処理であり、それぞれスレッドとして割
り当てられる。さらに、大容量メモリ(EBDM)16
3に2つの入力バッファを設けて、それらの一方のバッ
ファのデータをハードウェアソータ制御プロセッサ(E
CAM)164に渡している時に他方のバッファにデー
タを用意するといったいわゆるダブルバッファ処理を行
うことにより、処理1は2つの独立した処理に分割され
る。1つは、第1の入力バッファにデータを用意してそ
れをハードウェアソータ制御プロセッサ(ECAM)1
64に渡す処理(処理11)であり、もう一つは、第2
の入力バッファにデータを用意してそれをハードウェア
ソータ制御プロセッサ(ECAM)164に渡す処理
(処理12)である。これら処理に対しても、処理1に
対応するスレッドから生成される新たなスレッドがそれ
ぞれ割り当てられる。同様に、大容量メモリ(EBD
M)163に2つの出力バッファを設けて、それらの一
方のバッファのデータをマージ等を行う次の演算処理ス
レッドに渡している間に他方のバッファにハードウェア
ソータ制御プロセッサ(ECAM)164から出力され
るデータを格納することによって、処理2についても、
2つの独立した処理に分割できる。1つは、第1の出力
バッファにデータを用意してそれを次の演算処理スレッ
ドに渡す処理(処理21)であり、もう一つは、第2の
入力バッファにデータを用意してそれを次の演算処理ス
レッドに渡す処理(処理22)である。これら処理に対
しても、処理2に対応するスレッドから生成される新た
なスレッドがそれぞれ割り当てられる。
ソート処理を行う場合、そのソート処理は、大容量メモ
リ(EBDM)163上のソート対象データをハードウ
ェアソータ制御プロセッサ(ECAM)164に渡す処
理(処理1)と、ハードウェアソータ制御プロセッサ
(ECAM)164からソート結果を受け取る処理(処
理2)とに分割される。これら処理は、互いに並行処理
可能な独立した処理であり、それぞれスレッドとして割
り当てられる。さらに、大容量メモリ(EBDM)16
3に2つの入力バッファを設けて、それらの一方のバッ
ファのデータをハードウェアソータ制御プロセッサ(E
CAM)164に渡している時に他方のバッファにデー
タを用意するといったいわゆるダブルバッファ処理を行
うことにより、処理1は2つの独立した処理に分割され
る。1つは、第1の入力バッファにデータを用意してそ
れをハードウェアソータ制御プロセッサ(ECAM)1
64に渡す処理(処理11)であり、もう一つは、第2
の入力バッファにデータを用意してそれをハードウェア
ソータ制御プロセッサ(ECAM)164に渡す処理
(処理12)である。これら処理に対しても、処理1に
対応するスレッドから生成される新たなスレッドがそれ
ぞれ割り当てられる。同様に、大容量メモリ(EBD
M)163に2つの出力バッファを設けて、それらの一
方のバッファのデータをマージ等を行う次の演算処理ス
レッドに渡している間に他方のバッファにハードウェア
ソータ制御プロセッサ(ECAM)164から出力され
るデータを格納することによって、処理2についても、
2つの独立した処理に分割できる。1つは、第1の出力
バッファにデータを用意してそれを次の演算処理スレッ
ドに渡す処理(処理21)であり、もう一つは、第2の
入力バッファにデータを用意してそれを次の演算処理ス
レッドに渡す処理(処理22)である。これら処理に対
しても、処理2に対応するスレッドから生成される新た
なスレッドがそれぞれ割り当てられる。
【0028】このようにして、ソート処理は並行動作可
能な4つの処理に分割され、これらそれぞれにスレッド
が割り当てられる。これらスレッドは、それぞれ他のス
レッドの結果等を待つこと無く独立して処理を進められ
るので、生成されると同時に処理を開始することができ
る。次に、図3のフローチャートを参照して、スレッド
生成時の処理を説明する。
能な4つの処理に分割され、これらそれぞれにスレッド
が割り当てられる。これらスレッドは、それぞれ他のス
レッドの結果等を待つこと無く独立して処理を進められ
るので、生成されると同時に処理を開始することができ
る。次に、図3のフローチャートを参照して、スレッド
生成時の処理を説明する。
【0029】スレッドは生成されるとスレッドを管理す
るためのテーブルに登録され、実行開始待ちキューにつ
ながれる(ステップS21)。これは一般にはエンジン
制御プロセッサ(ECP)162内のOSの機能として
提供される。従来であれば、生成されたスレッドは処理
を開始するための初期情報を獲得するまで待ち状態に入
る。しかし、これは機能的にはスレッドの初期設定にお
ける一部にほかならず、この実施例ではもともと並行し
て動作可能な処理にスレッドを割り当てているので、ス
レッド生成時におけるシステムコールの一部として実現
される。よって、スレッドは生成されるとともに処理開
始可能な状態になっており(ステップS211、S21
2)、改めて初期情報を受け取る必要はない。
るためのテーブルに登録され、実行開始待ちキューにつ
ながれる(ステップS21)。これは一般にはエンジン
制御プロセッサ(ECP)162内のOSの機能として
提供される。従来であれば、生成されたスレッドは処理
を開始するための初期情報を獲得するまで待ち状態に入
る。しかし、これは機能的にはスレッドの初期設定にお
ける一部にほかならず、この実施例ではもともと並行し
て動作可能な処理にスレッドを割り当てているので、ス
レッド生成時におけるシステムコールの一部として実現
される。よって、スレッドは生成されるとともに処理開
始可能な状態になっており(ステップS211、S21
2)、改めて初期情報を受け取る必要はない。
【0030】また、このようにして生成されたスレッド
が更に他のスレッドを生成する場合も同様である。新し
いスレッドを生成することが必要であれば(ステップS
22)、システムコールを用いることによって(ステッ
プ23)、スレッド生成に伴う初期設定を行い(ステッ
プS231)、付随して処理開始の為の初期情報を与え
る(ステップ232)ことになる。こうして、スレッド
を生成した後は自スレッドの処理を継続し(ステップS
24)、自スレッドの処理を終えるまで(ステップS2
5)までスレッドは存続する。
が更に他のスレッドを生成する場合も同様である。新し
いスレッドを生成することが必要であれば(ステップS
22)、システムコールを用いることによって(ステッ
プ23)、スレッド生成に伴う初期設定を行い(ステッ
プS231)、付随して処理開始の為の初期情報を与え
る(ステップ232)ことになる。こうして、スレッド
を生成した後は自スレッドの処理を継続し(ステップS
24)、自スレッドの処理を終えるまで(ステップS2
5)までスレッドは存続する。
【0031】以上のように、この実施例においては、エ
ンジン制御プロセッサ(ECP)162の制御によっ
て、演算処理が互いに並行動作可能な複数の処理に分割
され、それら処理毎にスレッドが割り当てられるので、
各スレッドは他のスレッドの結果等を待つこと無く、生
成されると同時に処理を開始することができる。また、
並行動作可能な複数の処理それぞれについても、それら
各処理が内包している並行動作可能な複数の処理に細分
化され、それら処理がスレッドとして生成されるので、
並行処理効率を大幅に向上させることが可能となる。
ンジン制御プロセッサ(ECP)162の制御によっ
て、演算処理が互いに並行動作可能な複数の処理に分割
され、それら処理毎にスレッドが割り当てられるので、
各スレッドは他のスレッドの結果等を待つこと無く、生
成されると同時に処理を開始することができる。また、
並行動作可能な複数の処理それぞれについても、それら
各処理が内包している並行動作可能な複数の処理に細分
化され、それら処理がスレッドとして生成されるので、
並行処理効率を大幅に向上させることが可能となる。
【0032】
【発明の効果】以上のようにこの発明によれば、スレッ
ドを生成と共にその実行が可能になり、効率の良いマル
チスレッド環境の実現によってシステム全体として効率
のよいデータ処理を実現できる。
ドを生成と共にその実行が可能になり、効率の良いマル
チスレッド環境の実現によってシステム全体として効率
のよいデータ処理を実現できる。
【図1】この発明の一実施例に係わる全体のシステム構
成を示すブロック図。
成を示すブロック図。
【図2】図1のシステムにおける演算処理に対するスレ
ッドの割り当ての一例を示す図。
ッドの割り当ての一例を示す図。
【図3】図1のシステムにおけるスレッド生成動作を説
明するためのフローチャート。
明するためのフローチャート。
10…ホストコンピュータ、13…システムバス、14
…チャンネル、16…データベース演算処理装置、17
…磁気ディスク装置、161,162,164…プロセ
ッサ、163…大容量メモリ、165…並列ソーテング
モジュール、166…並列関係代数演算モジュール。
…チャンネル、16…データベース演算処理装置、17
…磁気ディスク装置、161,162,164…プロセ
ッサ、163…大容量メモリ、165…並列ソーテング
モジュール、166…並列関係代数演算モジュール。
Claims (2)
- 【請求項1】 ホスト装置と、演算対象のファイルデー
タが格納される2次記憶装置と、前記2次記憶装置を直
接アクセスするためのパスを有し、前記ホスト装置から
の要求に応じて前記演算対象のファイルデータに対して
所定の演算処理を実行する演算処理装置とを備えたデー
タ処理装置において、 前記演算処理装置は、演算対象のファイルデータを前記
パスを介して前記2次記憶装置から入力する入力手段
と、入力された演算対象のファイルデータに対してソー
トまたは関係代数演算を実行する演算手段と、前記演算
対象のファイルデータおよび前記演算手段による演算結
果データが格納される内部メモリと、前記演算結果デー
タを前記2次記憶装置に出力する出力手段と、前記ホス
ト装置からの演算要求に従って前記演算処理装置による
演算処理を制御する制御手段とを具備し、 前記制御手段は、前記ホスト装置から要求された演算処
理を互いに並行動作可能な複数の処理に分割し、それら
処理毎にスレッドを割り当てることによって前記演算処
理をマルチスレッド環境によって並行処理させることを
特徴とするデータ処理装置。 - 【請求項2】 ホスト装置と、演算対象のファイルデー
タが格納される2次記憶装置と、前記2次記憶装置を直
接アクセスするためのパスを有し、前記ホスト装置から
の要求に応じて前記演算対象のファイルデータに対して
所定の演算処理を実行する演算処理装置とを備えたデー
タ処理装置において、 前記演算処理装置は、前記ホスト装置との間の通信、お
よび前記2次記憶装置との間のデータ入出力を実行する
第1のプロセッサと、ソートまたは関係代数演算を行う
演算回路と、この演算回路による演算を実行制御する第
2のプロセッサと、前記第1のプロセッサによって入力
される演算対象のファイルデータおよび前記演算回路に
よる演算結果が格納される内部メモリと、前記第1のプ
ロセッサを介して供給される前記ホスト装置からの指示
に基づき、前記第1および第2のプロセッサを動作制御
する第3のプロセッサとを具備し、 前記第3のプロセッサは、前記ホスト装置から要求され
た演算処理を互いに独立した複数の処理に分割し、それ
ら処理毎にスレッドを割り当てることによって前記演算
処理をマルチスレッド環境によって並行処理させること
を特徴とするデータ処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4133471A JPH05324580A (ja) | 1992-05-26 | 1992-05-26 | データ処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4133471A JPH05324580A (ja) | 1992-05-26 | 1992-05-26 | データ処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH05324580A true JPH05324580A (ja) | 1993-12-07 |
Family
ID=15105555
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4133471A Pending JPH05324580A (ja) | 1992-05-26 | 1992-05-26 | データ処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH05324580A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7080204B2 (en) | 2003-02-06 | 2006-07-18 | Samsung Electronics Co. Ltd. | Cache controller computer system and method for program recompilation |
-
1992
- 1992-05-26 JP JP4133471A patent/JPH05324580A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7080204B2 (en) | 2003-02-06 | 2006-07-18 | Samsung Electronics Co. Ltd. | Cache controller computer system and method for program recompilation |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US3916383A (en) | Multi-processor data processing system | |
US20050125793A1 (en) | Operating system kernel-assisted, self-balanced, access-protected library framework in a run-to-completion multi-processor environment | |
EP0644486A2 (en) | Management of data accesses in computer systems | |
JPH11161683A (ja) | 情報検索方法,情報検索システムおよび同システム用検索管理装置 | |
US20120179901A1 (en) | Computer apparatus | |
JPH05324430A (ja) | データ処理装置 | |
JPH05324580A (ja) | データ処理装置 | |
JP3004102B2 (ja) | データベース演算処理装置 | |
US5062046A (en) | Multiple processor system having a correspondence table for transferring processing control between instruction processors | |
JPH0581342A (ja) | データ処理装置 | |
JPH05324431A (ja) | データ処理装置 | |
JPH0581337A (ja) | データ処理装置 | |
US5784701A (en) | Method and system for dynamically changing the size of a hardware system area | |
JPH05324432A (ja) | データ処理装置 | |
JPS635780B2 (ja) | ||
JPH06348561A (ja) | データ処理装置 | |
JPH0580977A (ja) | データ処理装置 | |
JPH06348558A (ja) | データ処理装置 | |
JPH06348554A (ja) | データ処理装置 | |
JPH06176074A (ja) | データ処理装置 | |
JP2983352B2 (ja) | データベース演算処理装置 | |
JPH05101112A (ja) | データベース演算処理装置 | |
JPH05101110A (ja) | データベース演算処理装置 | |
JPH05120242A (ja) | データ処理装置 | |
JPH0581339A (ja) | データ処理装置 |