JP3518034B2 - ソート方法並びにソート処理装置並びにデータ処理装置 - Google Patents

ソート方法並びにソート処理装置並びにデータ処理装置

Info

Publication number
JP3518034B2
JP3518034B2 JP07255195A JP7255195A JP3518034B2 JP 3518034 B2 JP3518034 B2 JP 3518034B2 JP 07255195 A JP07255195 A JP 07255195A JP 7255195 A JP7255195 A JP 7255195A JP 3518034 B2 JP3518034 B2 JP 3518034B2
Authority
JP
Japan
Prior art keywords
data
sort
processing
job
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP07255195A
Other languages
English (en)
Other versions
JPH08272592A (ja
Inventor
信也 伏見
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP07255195A priority Critical patent/JP3518034B2/ja
Priority to US08/621,187 priority patent/US6035296A/en
Priority to EP01104954A priority patent/EP1111500B1/en
Priority to DE69622776T priority patent/DE69622776T2/de
Priority to EP96104973A priority patent/EP0735460B1/en
Priority to DE69625725T priority patent/DE69625725T2/de
Priority to KR1019960009069A priority patent/KR100407862B1/ko
Priority to CN96107310A priority patent/CN1118765C/zh
Publication of JPH08272592A publication Critical patent/JPH08272592A/ja
Priority to CNB021406294A priority patent/CN1223952C/zh
Application granted granted Critical
Publication of JP3518034B2 publication Critical patent/JP3518034B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • 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
    • 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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、大量のデータを高速
にソートするソート処理装置、並びにソート処理装置を
用いたソート方法、並びに、データの検索等を行うデー
タ処理装置に関するものである。
【0002】
【従来の技術】図18は「情報処理」Vol.33,No.12,p14
16-1423に示された従来のデータ処理装置を示すもので
ある。1はデータ処理装置、2はCPU7から送られて
くる命令を解釈して、データベース処理装置3を制御す
る制御装置、3はディスク装置8、主記憶装置6等に蓄
積されたデータに対してデータベース処理を行うデータ
ベース処理装置、4はデータベース処理装置の指示に応
じてソート処理を行うソート処理装置である。制御装置
2、データベース処理装置3及びソート処理装置4は、
データ処理装置1の内部に存在する。5はデータ処理装
置1・主記憶装置5・CPU7・ディスク装置8等を接
続するホスト計算機のバス、6はホスト計算機の主記憶
装置、7はホスト計算機のCPU、8はホスト計算機上
でデータを格納するディスク装置、9はホスト計算機全
体を表す。
【0003】次に動作について説明する。ホスト計算機
9においてデータ処理の要求が発生すると、ホスト計算
機9のCPU7は対象データが格納されているディスク
装置8からデータを連続的に取り出しこれをバス5を経
由して連続的にデータ処理装置1に送る。この際、必要
に応じてホスト計算機9の主記憶装置6が入出力バッフ
ァ領域として用いられる。データ処理装置1はデータが
入力されると、データベース処理装置3による処理及び
ソート処理装置4によるソート処理を行い、結果を再び
バス5を経由してCPU7に送り返す。CPU7は送り
返された結果データを入力時と同様にしてディスク装置
8に格納する。データ処理装置1に対するデータの入
力、データ処理装置1からの結果データの出力は制御装
置2によって並列に実行される。
【0004】次に、データベース処理装置3についてそ
の動作の詳細を説明する。データベース処理装置3は、
制御装置2から入力されるデータに対し、データの選
択、形式変換、併合等のソート処理以外のデータベース
処理を実行する。データベース処理装置3は、専用ハー
ドウェアにより実現される場合と、汎用のマイクロプロ
セッサを1つまたは複数用いて実現される場合がある。
データベース処理装置3は、CPU7からの指示内容に
よって、ソート処理が必要な場合にはソート処理装置4
を制御してソート処理を行う。一般に、データベース処
理装置3は、ソート処理に先立ってデータの選択、形式
変換等を行い、またソート処理後には集計処理等を行
う。また、ソート処理が必要とされない場合には、デー
タベース処理装置3のみでデータの選択処理等を行い、
結果を制御装置7を介してCPU7に返す。また、この
際、例えば特開昭63−86043に示されているよう
に、ソート処理装置4の有する記憶装置を共有し、ソー
ト処理装置を停止してその記憶装置をデータベース処理
装置3の記憶装置として用い、データの併合、結合等の
処理における大容量のバッファ記憶装置として用いる。
【0005】以上のデータベース処理装置の構成例を図
19に示す。図19において、図18と同一の符号は同
一又は相当の部分を表す。34と35は汎用のマイクロ
プロセッサ、36と37はこれらのプロセッサ34・3
5にそれぞれ接続された主記憶メモリ、38は2台の汎
用マイクロプロセッサ34・35、制御装置2、及びソ
ート処理装置4を接続するバス、31はソート処理装置
4にデータを入力するためのバス、32はソート処理装
置4からデータを出力するためのバス、33はソート処
理装置4内の共有記憶装置にアクセスするためのバスで
ある。以下、指定されたデータ処理がソート処理装置4
を用いる場合と用いない場合に分けてデータベース処理
装置の動作を説明する。
【0006】指定された処理がソート処理装置4を用い
る場合、プロセッサ34・35は、例えばプロセッサ3
4が入力データに対するデータ選択処理に割り付けら
れ、バス38を通じて制御装置2から送られてくるデー
タを連続的に受け取り、その主記憶メモリ36を用いて
所要のデータのみを取り出して、これを次々と接続線3
1を経由してソート処理装置4に送り出す。ソート処理
装置4は、これらデータを連続的に受け取り、これを並
び替えて結果を順次接続線32を経由してプロセッサ3
5に送り返す。プロセッサ35はこの結果を受け取り、
主記憶メモリ37を用いて例えばデータの形式変換、集
約演算等を行って、結果をバス38を経由して制御装置
4に送り返す。
【0007】指定された処理がソート処理装置4を用い
ない場合、プロセッサ34・35は各々入力データ処
理、出力データ処理を割り付けられるが、この場合、ソ
ート処理装置4は未使用状態であるので、この動作を停
止し、代わりにソート処理装置4の持つ記憶装置を接続
線33を経由してプロセッサ34・35の主記憶として
利用する。即ち、プロセッサ34・35はそれらが各々
有する主記憶メモリ36・37に加えて、ソート処理装
置4の持つ記憶装置の一部をそれらの共有記憶装置とし
て利用し、ここに送られてくるデータを部分的に保持し
ておくことで、制御装置2による入出力回数を減少さ
せ、処理速度を向上させることができる。例えば、複数
のファイルに格納されているデータ群を併合する処理等
は、プロセッサ34が制御装置2から受け取ったファイ
ル群のデータを、順次ソート処理装置4内の共有記憶装
置の領域にファイルに対応して分類しながら一時的に格
納して行き、同時にプロセッサ35がこれら領域にある
ファイル毎のデータを並列に併合して行くことで処理が
実行される。
【0008】次にソート処理装置4の動作の詳細につい
て説明する。ソート処理装置4はデータベース処理装置
4を経由してCPU7から送られてくるデータの列を連
続的に入力し、これを指定された順序に並べ替えて、結
果を再びデータベース処理装置4に返す。この様子は、
同じく上記「情報処理」に記載された図20により示さ
れる。図20はソート処理装置4の内部構成を説明する
図である。図20において、図19と同一の符号は同一
又は相当の部分を表す。41は、バス31に接続され、
バス31から入力されるデータに対して最初にソート処
理を行う第1段のソートプロセッサ、42はこの第1段
のソートプロセッサによってソートされた出力データ
を、ソート処理する第2段のソートプロセッサ、43と
44も同様に前段のソートプロセッサの出力データに対
してソート処理を行う第3段のソートプロセッサと第4
段のソートプロセッサである。最終段である第4段のソ
ートプロセッサの出力データはバス32を通してプロセ
ッサ34若しくはプロセッサ35に出力される。ここで
は、説明の簡単のため4つのソートプロセッサ41〜4
4を示したが、必要に応じて、このソートプロセッサの
数は増減することができる。45〜48は各ソートプロ
セッサ41〜44にそれぞれ接続された共有記憶装置で
あり、各共有記憶装置45〜48の記憶容量は、接続す
るソートプロセッサ41〜44に応じて変化する。例え
ば、第i段目のソートプロセッサに接続する共有記憶装
置の記憶容量は、2のi-1乗で計算される容量を持つ。
【0009】次に、ソート処理装置4のソート処理の様
子を説明する。図21は各ソートプロセッサに入力され
るデータ内容と、その入力タイミングを表す図である。
49aは第1段のソートプロセッサに入力されるデータ
列、49bは第2段のソートプロセッサ、49cは第3
段のソートプロセッサ、49dは第4段のソートプロセ
ッサにそれぞれ入力されるデータ列である。
【0010】いま、ソート処理装置4に 8、2、1、3、5、7、6、4、・・・ の順にデータを入力して、降順にソートする場合を考え
る。まず先頭の第1段のソートプロセッサ41は入力さ
れたデータを2つづつ取り出し、これを並び替えて次段
のソートプロセッサ42に送り出す。次段のソートプロ
セッサは2つづつにソートされる入力データは、 82、31、75、64、・・・ となる。ここで、前段のソートプロセッサ41から送ら
れた「1」「3」のデータは順序が入れ代わり、「3
1」の順でソートされた2つのデータの組みとなって出
力されている。第2段のソートプロセッサ42は、この
2つづつソートされたデータを入力し、これを2組づつ
取り出し、併合して、4つづつソートされたデータ列を
次段に送り出す。その結果は 8321、7654、・・・ となる。ここで、例えば「82」と「31」を併合する
と「8321」となる。第3段目のソートプロセッサ4
3は、この4つづつにソートされたデータを入力し、こ
れを2組づつ取り出し、併合して、8つづつソートされ
たデータ列を次段に送り出す。この結果は、 87654321、・・・ となる。第4段目のソートプロセッサ44以降も同様な
処理を行う。
【0011】ここで、図21に示すように、各段のソー
トプロセッサ41〜44は、前段のソートプロセッサが
すべての処理を終えない内に処理を開始することが可能
であり、これにより、データを連続的に入力すると若干
の遅れ時間を経てデータ入力と並列にソート結果が出力
されることがわかる。
【0012】例えば、第2段のソートプロセッサ42の
処理開始について説明すると、第1段のソートプロセッ
サ41は、ステップS1で「8」を、ステップS2で
「2」を受け取る。次にステップS3で「8」と「2」
を比較して、大きい数値である「8」を出力し、また、
新たな数値「1」を受け取る。次に、ステップS4で、
現在記憶している「2」と「1」を比較して「2」を出
力し、新たな数値「3」を受け取る。一方、第2段のソ
ートプロセッサ42は、ステップS3から動作を開始
し、第1段のソートプロセッサ41が出力したデータ
「8」を受け取る。次に、ステップS3と同様に、ステ
ップS4にて「2」、ステップS5にて「3」を受け取
る。そして、ステップS6で、「8」と「3」を比較し
て、大きな数値である「8」を出力して、次に比較する
データとして「2」を指定しておく、一方、第1段のプ
ロセッサ41から新たな数値「1」を受け取るので、こ
の「1」は「3」の後にスタックとして記憶する。ステ
ップS7では、「2」と「3」を比較して、大きな数値
である「3」を出力する。以上のように、ソートするデ
ータ列の全体を受け取る前に(ここではステップS
6)、ソートした結果の出力を開始する。
【0013】このようにして、n個のソートプロセッサ
により2のn乗個のデータの並び替え、即ちソートが行
われる。
【0014】ここで、各ソートプロセッサ41〜44に
接続されている共有記憶装置45〜48の記憶容量はメ
モリチップの容量や構成等により決定されるため、現実
的には必ずしも前段の2倍の容量とはならず、例えば最
初の10段にはすべて512KB、11段には1MB、
12段には2MB・・・といった容量のメモリチップが
実装されている。
【0015】
【発明が解決しようとする課題】従来のデータ処理装置
4は、以上のように構成されていたので、以下のような
問題点があった。ある処理の実行中には別の処理を実行
することはできず、例えば実行に長時間を要する処理が
データ処理装置3により実行を開始すると、他の処理の
実行ができなくなる。
【0016】特に、少数の負荷が重い処理と、多数の負
荷の軽い処理が存在する場合、負荷の重い処理が実行を
開始すると、負荷の軽い処理の待ち時間が多大なものと
なり、システムのスループットが低下する。
【0017】また、これを解決するために、複数の処理
を同時に実行しようとすると、複数のデータ処理装置を
ホスト計算機に接続する必要が生じ、コストが増加す
る。
【0018】一般に企業のデータベース業務では、昼間
は営業支援等の比較的負荷の軽い処理が多数実行され、
夜間は日次バッチ処理等、少数の負荷の重い処理が実行
される。このため、昼間は多数のデータ処理装置が、夜
間は少数の高速データ処理装置が望ましい。しかし、従
来のデータ処理装置を用いる限り、昼間の要求を満たす
には多数のデータ処理装置を設置する必要があり、一方
夜間にはこれらデータ処理装置のほとんどは未使用状態
となり、資源の利用効率が低下する。
【0019】本発明は、以上のような問題点を解消する
ためになされたもので、ソート等のデータベース処理に
おいて、実行に長時間を要する処理が実行途中であって
も、他の処理を時分割的に並行動作させることを可能と
し、特に負荷の軽い処理の応答時間を向上させる装置を
提供することを目的とする。更に多重処理の多重度を変
更可能とすることにより昼間は高速の1重処理装置とし
て、また夜間はスループットの高い多重の処理装置とし
て利用することを可能とする装置を提供することを目的
とする。
【0020】
【課題を解決するための手段】この発明にかかるソート
方法においては、ソート処理要求において、複数のレコ
ードからなる第1のソートデータをそれぞれ複数のレコ
ードを含む複数の第1のデータ小ブロックに分解する第
1のデータブロック分解ステップと、複数の上記第1の
データ小ブロックのそれぞれに含まれる上記複数のレコ
ードをソート処理部によりソートする第1のソートステ
ップと、この第1のソートステップが少なくとも一回終
了した後、上記第1のソートデータと異なるソート処理
要求によって分解された第2のデータ小ブロックに含ま
れる複数のレコードをソート処理部によりソートする第
2のソートステップと、この第2のソートステップが少
なくとも一回終了した後、上記第1のソートステップで
ソートされなかった上記第1のデータ小ブロックを上記
ソート処理部によりソートする第3のソートステップ
と、上記第1のソートステップと上記第3のソートステ
ップによってソートされた複数の第1のデータ小ブロッ
クを併合し、ソートされた一つのソート済みデータブロ
ックを生成するデータブロック併合ステップと、を備え
たものである。
【0021】また、この発明のソート処理装置において
は、複数のソート処理を受け付け、1つのソート処理に
かかるソートデータを予め定められた処理条件で出力
し、この時間終了後は他のソート処理にかかるソートデ
ータを予め定められた処理条件で出力する第1の多重入
力制御部と、この第1の多重入力制御部から送られてき
たソートデータをソートするソート処理部と、このソー
ト処理部から送られてきたソートデータがどのソート処
理にかかるデータかを識別してソート処理ごとにデータ
をまとめて出力する多重出力制御部、を備えるものであ
る。
【0022】また、上記複数のソート処理のうちの1つ
のソート処理の一部にかかる上記ソートデータを予め定
められた時間出力し、この出力終了後は他のソート処理
の一部にかかる上記ソートデータを予め定められた時間
出力する上記第1の多重入力制御部を有するものであ
る。
【0023】また、上記複数のソート処理のうちの1つ
のソート処理の一部にかかる上記ソートデータを予め定
められたデータ量分出力し、この出力終了後は他のソー
ト処理の一部にかかる上記ソートデータを予め定められ
たデータ量分出力する上記第1の多重入力制御部を有す
るものである。
【0024】また、複数のソート処理を受け付け、一つ
のソート処理にかかるソートデータを、予め定められた
時間出力するか、若しくは予め定められたデータ量分を
出力するか、のいずれか一方の条件を満たすまで出力
し、この出力後は他のソート処理にかかるソートデータ
を、予め定められた時間出力するか、若しくは予め定め
られたデータ量分を出力するか、のいずれか一方の条件
を満たすまで出力する上記第1の多重入力制御部を有す
るものである。
【0025】また、1つのソート処理から他のソート処
理に切り替える際に、ソート処理部内に1つのソート処
理にかかるデータを、ソート処理部内に全て記憶させる
ソート処理部を有するものである。
【0026】また、受け付けるソート処理の上限数を可
変で設定できる多重入力制御部を有するものである。
【0027】また、上記ソート処理にかかるソートデー
タを出力中に、上記ソート処理についてエラーまたはキ
ャンセルを検出したときに、終了データを付加して出力
するとともに上記ソート処理を中止する上記第1の多重
入力制御部、上記ソート処理にかかるソートデータを、
ソート処理部から終了データまで読み取る上記多重出力
制御部を有するものである。
【0028】また、この発明のデータ処理装置において
は、ソート処理及びデータベース処理を受け付け、ソー
ト処理にかかるソートデータを予め定められた処理条件
で出力し、この出力後はデータベース処理にかかるデー
タを予め定められた処理条件で出力する第2の多重入力
制御部と、複数のソートプロセッサが連なって接続され
て構成され、上記第2の多重入力制御部から送られてき
たソートデータをソートするソート処理部と、上記第2
の多重入力制御部から送られてきたデータのデータベー
ス処理を行うデータベース処理部と、上記ソート処理部
またはデータベース処理部から送られてきたソートデー
タまたはデータを、ソート処理にかかるデータかデータ
ベース処理にかかるデータかを識別してソート処理また
はデータベース処理ごとにまとめて出力する多重出力制
御部と、を備えるものである。
【0029】また、上記ソート処理部と上記データベー
ス処理部とに接続され、上記複数のソートプロセッサの
うち少なくとも1つのソートプロセッサをバイパスする
事により使用されなくなった記憶メモリを上記データベ
ース処理部が使用できるようにした共有記憶部を有する
ものである。
【0030】また、上記ソート処理の一部にかかるソー
トデータを予め定められた時間出力し、この出力後は上
記データベース処理の一部にかかるデータを予め定めら
れた時間出力する上記第2の多重入力制御部を有するも
のである。
【0031】また、ソート処理及びデータベース処理を
受け付け、ソート処理にかかるソートデータを予め定め
られたデータ量分出力し、このデータ量分出力後はデー
タベース処理にかかるデータを予め定められたデータ量
分出力する上記第2の多重入力制御部を有するものであ
る。
【0032】また、ソート処理及びデータベース処理を
受け付け、ソート処理にかかるソートデータを、予め定
められた時間出力するか、若しくは予め定められたデー
タ量分を出力するか、のいずれか一方の条件を満たすま
で出力し、この出力後はデータベース処理にかかるデー
タを、予め定められた時間出力する上記第2の多重入力
制御部を有するものである。
【0033】また、上記複数のソートプロセッサのうち
少なくとも1つのソートプロセッサを昇降順チェック用
に用いるものである。
【0034】また、受け付けるソート処理及びソート以
外のデータベース処理の上限数を可変で設定できるた
め、第2の多重入力制御部はこの上限を超えない範囲で
処理を受け付け、受け付けた処理に対するデータをソー
ト処理装置若しくはデータベース処理部に出力する第2
の多重入力制御部を有するものである。
【0035】
【作用】上記のように構成されたソート方法において
は、ソート処理要求において、複数のレコードからなる
第1のソートデータをそれぞれ複数のレコードを含む複
数の第1のデータ小ブロックに分解する第1のデータブ
ロック分解ステップと、複数の上記第1のデータ小ブロ
ックのそれぞれに含まれる上記複数のレコードをソート
処理部によりソートする第1のソートステップと、この
第1のソートステップが少なくとも一回終了した後、上
記第1のソートデータと異なるソート処理要求によって
分解された第2のデータ小ブロックに含まれる複数のレ
コードをソート処理部によりソートする第2のソートス
テップと、この第2のソートステップが少なくとも一回
終了した後、上記第1のソートステップでソートされな
かった上記第1のデータ小ブロックを上記ソート処理部
によりソートする第3のソートステップと、上記第1の
ソートステップと上記第3のソートステップによってソ
ートされた複数の第1のデータ小ブロックを併合し、ソ
ートされた一つのソート済みデータブロックを生成する
データブロック併合ステップと、を有するため、第1の
ソートデータをソートする場合に比べて第1のソートス
テップが短時間で終了し、続いて第2のソートステップ
が実行され、第2のソートステップが終了後、再び第1
のデータブロックをソートする第3のソートステップが
短時間で実行されるように働く。
【0036】また、上記のように構成されたソート処理
装置においては、複数のソート処理を受け付け、1つの
ソート処理にかかるソートデータを予め定められた処理
条件で出力し、この時間終了後は他のソート処理にかか
るソートデータを予め定められた処理条件で出力する第
1の多重入力制御部と、この第1の多重入力制御部から
送られてきたソートデータをソートするソート処理部
と、このソート処理部から送られてきたソートデータが
どのソート処理にかかるデータかを識別してソート処理
ごとにデータをまとめて出力する多重出力制御部、を備
えるため、第1の多重入力制御部は複数のソート処理を
所定の条件で切り替えてデータを出力し、ソート処理部
はこのデータを受け取ってソートし、多重出力制御部は
ソート処理部から送られてきたソートデータをソート処
理ごとに分けて出力するように働く。
【0037】また、上記複数のソート処理のうちの1つ
のソート処理の一部にかかる上記ソートデータを予め定
められた時間出力し、この出力終了後は他のソート処理
の一部にかかる上記ソートデータを予め定められた時間
出力する上記第1の多重入力制御部を有するため、複数
のソート処理を所定の時間で切り替えてデータを出力
し、ソート処理部はこのデータを受け取ってソートし、
多重出力制御部はソート処理部から送られてきたソート
データをソート処理ごとに分けて出力するように働く。
【0038】また、上記複数のソート処理のうちの1つ
のソート処理の一部にかかる上記ソートデータを予め定
められたデータ量分出力し、この出力終了後は他のソー
ト処理の一部にかかる上記ソートデータを予め定められ
たデータ量分出力する上記第1の多重入力制御部を有す
るため、1つのソート処理にかかるデータを一定の大き
さに分割してデータ小ブロックを生成し、複数のソート
処理をデータ小ブロックごとに切り替えながら出力する
ように働く。
【0039】また、複数のソート処理を受け付け、一つ
のソート処理にかかるソートデータを、予め定められた
時間出力するか、若しくは予め定められたデータ量分を
出力するか、のいずれか一方の条件を満たすまで出力
し、この出力後は他のソート処理にかかるソートデータ
を、予め定められた時間出力するか、若しくは予め定め
られたデータ量分を出力するか、のいずれか一方の条件
を満たすまで出力する上記第1の多重入力制御部を有す
るため、ソート処理部には一定量以下のデータを出力
し、かつ、一定時間ごとにソート処理を切り替えるよう
に働く。
【0040】また、1つのソート処理から他のソート処
理に切り替える際に、ソート処理部内に1つのソート処
理にかかるデータを、ソート処理部内に全て記憶させる
ソート処理部を有するため、ソート処理部に1つのデー
タ小ブロックのデータ全てが入力されないうちはソート
処理が切り替えられないように働く。
【0041】また、受け付けるソート処理の上限数を可
変で設定できるため、第1の多重入力制御部はこの上限
を超えない範囲で処理を受け付け、受け付けた処理に対
するデータをソート処理装置に出力するように働く。
【0042】また、上記ソート処理にかかるソートデー
タを出力中に、上記ソート処理についてエラーまたはキ
ャンセルを検出したときに、終了データを付加して出力
するとともに上記ソート処理を中止する上記第1の多重
入力制御部、上記ソート処理にかかるソートデータを、
ソート処理部から終了データまで読み取る上記多重出力
制御部を有するため、上記第1の多重入力制御部はエラ
ーまたはキャンセルを検出したときに、出力途中のソー
トデータの残りを出力せずに、このソートデータに終了
データを付加して出力して上記ソート処理を中止し、こ
の中止したソート処理にかかるソートデータを上記ソー
ト処理部から排除するために、ソート処理部に残存する
他の正常なソート処理にかかるソートデータもろとも上
記中止したソート処理にかかるデータをリセットせず
に、上記多重出力制御部が他の正常なソート処理を処理
し、一方で、ソート処理部に残存する中止したソート処
理にかかるソートデータをソート処理部から読み取り、
このデータがソート処理部に残存しないようにするもの
である。
【0043】また、以上のように構成したデータ処理装
置では、ソート処理及びデータベース処理を受け付け、
ソート処理にかかるソートデータを予め定められた処理
条件で出力し、この出力後はデータベース処理にかかる
データを予め定められた処理条件で出力する第2の多重
入力制御部と、複数のソートプロセッサが連なって接続
されて構成され、上記第2の多重入力制御部から送られ
てきたソートデータをソートするソート処理部と、上記
第2の多重入力制御部から送られてきたデータのデータ
ベース処理を行うデータベース処理部と、上記ソート処
理部またはデータベース処理部から送られてきたソート
データまたはデータを、ソート処理にかかるデータかデ
ータベース処理にかかるデータかを識別してソート処理
またはデータベース処理ごとにまとめて出力する多重出
力制御部と、を備えるため、第2の多重入力制御部はソ
ート処理にかかるソートデータとデータベース処理にか
かるデータとを所定の条件で切り替えて出力し、出力制
御部はソートデータとデータとを識別し、処理ごとに分
けて出力するように働く。
【0044】加えて、上記ソート処理部と上記データベ
ース処理部とに接続され、上記複数のソートプロセッサ
のうち少なくとも1つのソートプロセッサをバイパスす
る事により使用されなくなった記憶メモリを上記データ
ベース処理部が使用できるようにした共有記憶部と、を
有するため、ソートプロセッサの持つ記憶メモリの一部
をデータベース処理部用に使用し、残りの記憶メモリを
ソート処理に使用して、データベース処理とソート処理
にかかるデータとを同時に記憶して、互いのデータに干
渉しないように記憶メモリを使用するように働く。
【0045】また、上記ソート処理の一部にかかるソー
トデータを予め定められた時間出力し、この出力後は上
記データベース処理の一部にかかるデータを予め定めら
れた時間出力する上記第2の多重入力制御部を有するた
め、第2の多重入力制御部はソート処理にかかるソート
データとデータベース処理にかかるデータとを所定の時
間で切り替えて出力し、出力制御部はソートデータとデ
ータとを識別し、処理ごとに分けて出力するように働
く。
【0046】また、ソート処理及びデータベース処理を
受け付け、ソート処理にかかるソートデータを予め定め
られたデータ量分出力し、このデータ量分出力後はデー
タベース処理にかかるデータを予め定められたデータ量
分出力する上記第2の多重入力制御部、を有するため、
ソートデータを予め定められたデータ量だけ出力した後
は、出力するデータを切り替えて、データベース処理に
かかるデータを出力するように働く。
【0047】また、ソート処理及びデータベース処理を
受け付け、ソート処理にかかるソートデータを、予め定
められた時間出力するか、若しくは予め定められたデー
タ量分を出力するか、のいずれか一方の条件を満たすま
で出力し、この出力後はデータベース処理にかかるデー
タを、予め定められた時間出力する上記第2の多重入力
制御部を有するため、1つのデータ処理装置でソート処
理とデータベース処理とを並行して実行することがで
き、一定の時間で入力するデータを切り替えるように働
く。
【0048】また、上記複数のソートプロセッサのうち
少なくとも1つのソートプロセッサを昇降順チェック用
に用いるため、少なくとも1つのソートプロセッサを用
いて昇降順チェックを行い、ソート処理を行う際には昇
降順チェックを行うソートプロセッサをバイパスして、
他のソートプロセッサがソート処理を実行し、昇降順チ
ェックを行うソートプロセッサは他のソートプロセッサ
の記憶内容に干渉せず、同時に、他のプロセッサは昇降
順チェック用のプロセッサの記憶内容に干渉しないよう
に働く。
【0049】また、受け付けるソート処理及びソート以
外のデータベース処理の上限数を可変で設定できるた
め、第2の多重入力制御部はこの上限を超えない範囲で
処理を受け付け、受け付けた処理に対するデータをソー
ト処理装置若しくはデータベース処理部に出力するよう
に働く。
【0050】
【実施例】
実施例1.以下、この発明の一実施例を説明する。尚、
以下の実施例では、説明の簡単のため、並行して時分割
的に多重処理する処理の数は2とする。しかし、一般に
3またはそれ以上の多重度は本実施例から容易に実現可
能である。また、以下ではデータ処理装置により並行し
て多重実行されるデータベース処理を明示的に「ジョ
ブ」と呼ぶこととする。データ処理装置により、多重度
1の場合にはジョブ0のみ、また多重度2の場合にはジ
ョブ0とジョブ1が時分割的に多重処理される。またデ
ータ処理装置によりジョブ0とジョブ1を時分割的に切
り替えて多重処理を行う場合、切り替えの単位となる各
ジョブの部分的な実行を「ジョブステップ」と呼ぶこと
とする。更に、後述のように、データ処理装置の内部で
は、ソート処理装置の特性から、そのデータ入力側(デ
ータ処理装置に対するwrite)とデータ出力側(データ
処理装置からのread)で別々のジョブが実行される場合
があるため、ジョブ及びジョブステップを、各々write
側ジョブ及びwrite側ジョブステップ、read側ジョブ及
びread側ジョブステップと呼ぶことにする。
【0051】図1はこの発明による一実施例のソート処
理の概要を説明する図である。図1において、210は
外部から複数のジョブデータを受け取って、時分割的に
ジョブデータをデータ小ブロックに分割し(即ち、ジョ
ブステップに分割し)ソート処理部400に出力する多
重入力制御部、220はソート処理部400から受け取
った複数の処理にかかるソート済みデータ小ブロック
(即ち、ジョブステップデータ)をジョブごとにまとめ
て出力する多重出力制御部、400は受け取ったデータ
小ブロック(ジョブステップデータ)をブロックごとに
ソートするソート処理部である。D1・D2は例えばC
PU等から送られてくるソートすべきジョブデータであ
り、D1はジョブ0のデータ、D2はジョブ1のデータ
である。データD1とデータD2は別々のソート処理に
かかるデータである。D3とD5はジョブ0を分割して
生成したジョブステップのデータであり、D3はジョブ
ステップ2のデータ、D5はジョブステップ1のデータ
を表している。D4はジョブ1のジョブステップ1のデ
ータである。D6はデータD3をソート処理部400で
ソートしたデータ、D7はデータD4を、D8はデータ
D5をそれぞれソートしたデータである。D3〜D8に
は、ジョブステップの先頭を表しソート処理部400を
初期化するヘッダHと、ジョブステップの終了を表す終
了データEがそれぞれ付加されている。D9は多重出力
制御部220によって、ジョブ0にかかるデータである
データD6とデータD8をまとめてできたソート済みデ
ータ、D10はジョブ1のデータであるデータをまとめ
て(この場合はジョブ1にかかるデータはD7だけであ
る。)できたソート済みデータである。
【0052】次に、簡単に動作を説明する。複数のソー
ト処理を受け付けることができる多重入力制御部210
は、まず、ジョブ0にかかるデータD1を受け付け、次
にジョブ1にかかるデータD2を受け付けたとする。こ
こで、データD1・D2のデータの値A1〜9・B1〜
4は、数字が大きいほど大きな値であることを表し、こ
のソート処理はこの値が小さい順番に並び替えるソート
処理であるとする。
【0053】(多重入力制御部210の動作)次に、多
重入力制御部210は、受け付けたジョブから1つのジ
ョブを選択してソート処理部400に出力する。ここで
は、先に受け付けたジョブ1のデータD1を出力する。
出力に際しては、1つのジョブを複数のジョブステップ
に分割して出力する。例えば、予め定められた時間t
[s]の間ジョブ0に関するデータD1を読み出し出力
することとする。ここでは、A1〜A3の3つのデータ
を読み出した時点でt[s]経ちヘッダHと終了データ
Eを付加してソート処理部400に出力される(データ
D5)。次のt[s]間でジョブ1にかかるデータを読
み出して、同様にソート処理部400に出力する(デー
タD4)。一方、この読み出しが行われている間ソート
処理部400では、先のジョブステップ1のデータD5
のソート処理が行われている。次のt[s]間では、多
重入力制御部210は次のジョブのジョブステップの読
み出しを開始する。ここでは、2つのジョブのみが受付
されているので、再びジョブ0に戻り、ジョブ0のデー
タD1を今度はジョブステップ2のデータD3として読
み取る。そして、上述と同様にヘッダHと終了データE
を付加してジョブステップ2のデータD3を完成して、
ソート処理部400に出力する。一方、この読み出しが
行われている間ソート処理部400では、先のジョブ1
のデータD4のソート処理が行われている。
【0054】(ソート処理部400の動作)ソート処理
部400は、多重入力制御部210からデータD3〜5
を受け取り、ジョブステップのデータごとにソートして
出力する。例えば、ジョブ1のデータD4をB4→B1
→B2の順番で受け取り、これをソートして、B1→B
2→B4の順番でデータD7として出力する。
【0055】(多重出力制御部220の動作)多重出力
制御部220はソート処理部400からジョブステップ
ごとにソートしたデータを受け取り、ジョブごとにまと
めて出力する。従って、ジョブ0のジョブステップ1の
データD6をまず受け取り、続いてジョブ1のデータD
7を受け取り、そして、ジョブ0のジョブステップ2の
データD8を受け取る。多重出力制御部220はジョブ
0のジョブステップ1のデータD6の後にジョブステッ
プ2のデータD7を付けてデータD9として出力する。
一方、ジョブ1のデータは別のデータD10として出力
する。
【0056】上述の説明では、多重入力制御部210
は、ジョブを分割しジョブステップを生成する方法とし
て時間t[s]を基準にして分割したが、入力または出
力したデータの量を基準に分割してもよい。例えば、ソ
ート処理部400が一度にソートできるデータ量が定ま
っている場合に、このデータ量分の出力が完了した時点
でジョブステップを区切るようにしてもよい。図1の場
合は、データが3つ出力されるごとにジョブステップを
区切っているといえる。ジョブステップによりジョブの
データを分割すると、ソート結果はデータD9のように
部分的にソートされた状態になる(D9ではA9とA1
との間を境にして、2つのブロックに分かれた状態にな
っている)ので、これを併合して1つのソートされたデ
ータにする必要がある。従って、データが分割される数
が少ない方が併合処理が容易になるため有利である。デ
ータ量を基準にジョブステップを分割した場合には、ソ
ート処理部400で一度にソートできる最大の量にジョ
ブステップの大きさを調整することができ、上述のよう
にデータが分割される数を最小限に抑えることができる
ため、併合処理にかかる処理を少なくすることができ
る。
【0057】一方、時間を基準にジョブステップを区切
ることの利点は、特に以下のような場合にある。後述の
データ処理装置1のようにデータベース処理装置3を有
しデータを検索したのちに、この検索したデータをソー
トするといったジョブを実行する場合、多重入力制御部
210がソート処理部400に出力するデータがなかな
か集まらないケースがある。例えば、1万件のデータを
検索し得られたデータが10件だったとし、一万件のデ
ータを検索するのに相当の時間がかかったとする。デー
タ量を基準にジョブステップを区切る方法では、例え
ば、百件のデータが集まった時点でジョブステップを区
切ることとしていた場合、このジョブが百件のデータを
集めるか、または、全ての検索を終えるまで次のジョブ
ステップに進めないことになる。これでは、他の時間の
かからないジョブはこのジョブステップが終了するまで
待ち続けなければならず。スループットが低下してしま
う。このような場合には、一定の時間が経過した時点で
ジョブステップを区切る方法が有利で、1つのジョブが
他のジョブを抑えてソート処理部400(データ処理装
置3)を長時間使用し続けることがない。そのため、全
体のスループットが向上する。
【0058】後述のデータ処理装置1では、データ量を
基準にジョブステップを区切る方法と、時間を基準にジ
ョブステップを区切る方法とを併用して、両者の利点を
併せ持つようにしている。
【0059】また、上述のように、ソート済みのデータ
D9は、複数のジョブステップに分割されてソートした
ため、複数のブロックごとに分割した状態でソートされ
ている。これでは、ジョブ0のデータが全体としてソー
トされていないので、このデータD9を全体としてソー
トされた状態にする必要がある(これを併合処理とよ
ぶ)。この処理は後述するデータベース処理装置3によ
って、行われる。この処理の例を説明すると、まず、デ
ータD9のジョブステップ1と2の先頭であったデー
タ、A2とA1を比較して、小さい方のA1を最初の値
とする。次に、A1の後ろのデータであるA3とA2を
比較して、小さい方のデータであるA2を次のデータと
する。同様に以下のように動作を繰り返して併合処理を
行う。 (初めから記述すると) A2:A1→A1 A2:A3→A2 A6:A3→A3 A6:A4→A4 A6:A9→A6→A9 以上で、ジョブ0のデータが併合されソートされたこと
になる。最後のA6とA9の比較は、図1においてデー
タD9のA1右側にあるデータ(A1,A3,A4)が
なくなったため、A1より左側にあり、かつまだソート
データとして採用されずに残っているデータ同士を比較
する必要があるために行われた。
【0060】念のために説明しておくと、以上に説明し
た併合処理は、この発明がジョブをジョブステップに分
割するために発生するものではない。従来のソート処理
においても同様の併合処理が必要になる。その理由は、
このデータの分割はソート処理部400(図18にしめ
した従来のデータ処理装置では、ソート処理装置4)が
一度にソートできるデータ量に限りがあるために発生
し、ソート処理部400のデータ容量を超えるデータを
扱う場合には、1つのデータを複数のデータに分割して
ソートを行うからである。
【0061】従来のソート処理では、最初に割り当てら
れたジョブの実行が終了してから、次のジョブの実行を
開始する。このため、上記のジョブ0に相当するソート
と上述の併合処理が終了していなければ、上記のジョブ
1に相当する処理を行えず。ジョブ1の結果は、多くの
時間が経過してからでなければ得ることができなかっ
た。これに対し、この発明によるソート処理では、多重
処理制御部220は図1に示したように、ジョブ0のジ
ョブステップ1を出力した後、ジョブ1にかかるジョブ
ステップ1を出力している。このジョブ1のジョブステ
ップ1は、ジョブ1の処理結果の全てを含んでいるた
め、この時点でジョブ1の処理が終了したことになる。
即ち、処理に長い時間がかかるジョブ0が終了しなくと
も、ジョブ1の結果が得られるため、ソート処理におい
て高いスループットを実現することができる。
【0062】(データ処理装置1の詳細)以下に、この
発明にかかるデータ処理装置1の詳細について説明す
る。このデータ処理装置1では、上述のソート処理に相
当する動作を行うが、ソート処理以外の処理(データの
併合処理、検索処理等)を行うデータベース処理装置3
を有して、ソート処理とソート以外のデータベース処理
を並行して実行することができるように構成されてる。
【0063】図2はこの発明によるデータベース処理シ
ステムの全体構成を説明する図である。図2において、
図18と同一の符号は同一又は相当の部分を表し、50
はデータ処理装置1の初期化、多重度の変更等を行うた
めの接続線であり、51、52は各々ジョブ0に対する
データ入力、データ出力を行うための接続線、53、5
4は各々ジョブ1に対するデータ入力、データ出力を行
うための接続線である。各接続線50〜54に対しては
各々アドレスが割当てられ、各接続線50〜54を用い
た制御装置2へのアクセスは、これらのアドレスを指定
して行われる。55〜59は各々これらの接続線50〜
54に対してCPU7から送られてくる入出力命令を一
時的に保持するキューである。CPU7からは接続線6
0により各アドレスに対応する入出力命令が送られ、対
応するキューにこの入出力命令が貯えられる。また、こ
れら入出力命令に対する処理の成功・エラー状態等もこ
の接続線60を経由してホスト計算機に通知される。
【0064】データ処理装置1内の制御装置2におい
て、20はCPU7が司令した複数の処理を多重的に処
理するための多重処理制御部、21はデータ入力にかか
わる処理を制御する入力データ処理制御部、22はデー
タ出力にかかわる処理を制御する出力データ処理制御
部、23は多重処理制御部20により選択されたデータ
入力側の処理に関する入出力命令及びデータが送られる
接続線、24は多重処理制御部20により選択されたデ
ータ出力処理に関する入出力命令及びデータが送られる
接続線である。25は入力にかかる多重の接続線等(接
続線51・キュー56と接続線53・キュー58)のう
ち特定の接続線を選択的にデータベース処理装置3へつ
なぐスイッチである。26はデータベース処理装置3か
らCPU7に送り返すデータ及び処理終了状態を指定さ
れたアドレスに対応する接続線につなぐスイッチであ
る。
【0065】この実施例1では、データ処理装置3自身
にはホスト計算機9の入出力装置アドレスが与えられ、
データ処理装置3内部の接続線50、51、52、5
3、54には各々ユニットアドレスとして0、1、2、
3、4が与えられているものとする。例えばデータ処理
装置3の入出力装置アドレスが12である場合、データ
処理装置3のバス5への接続は、それぞれ(12、
0)、(12、1)、(12、2)、(12、3)、
(12、4)として表わされる。以下では、データ処理
装置3は1台のみホスト計算機9に接続されているもの
とし、これらアドレスにおける入出力装置アドレスを省
略して表記し、単に(0)、(1)、(2)、(3)、(4)と表現す
る。また、例えばアドレス(1)に対するホスト計算機9
とデータ処理装置3とのデータ入出力とは、接続線51
を用いたデータ入出力を指すものとする。
【0066】アドレス(0)はデータ処理装置1を制御す
るものであり、アドレス(1)及び(3)はデータ処理装置1
に対してCPU7からのデータを入力する、即ちwrite
方向のデータ転送を行うものであり、アドレス(2)及び
(4)はデータ処理装置1からホスト計算機9に対してデ
ータを出力する、即ちread方向のデータ転送を行うもの
である。
【0067】この実施例1では、CPU7は、データ処
理装置1に対して、図3に示すような入出力命令を発行
する。即ち、まずデータ処理装置1に対してアドレス
(0)を指定してrestart命令を発行し動作開始を指示す
る。この際に多重度を1または2に設定する。例えば、
多重度1を設定してデータ処理装置1を開始した場合に
は以降アドレス(1)と(2)の組のみが、また多重度2を設
定してデータ処理装置1の動作を開始した場合には以降
アドレス(1)と(2)の組、及びアドレス(3)と(4)の組が動
作可能とする。以下ではジョブ0はアドレス(1)と(2)の
組により、またジョブ1はアドレス(3)と(4)の組と対応
して各々実行されるものとする。
【0068】次に、ホスト計算機9からの本データ処理
装置の基本的な利用方法について説明する。ホスト計算
機上9でデータ処理装置1による処理要求があった場
合、CPU7はアドレス(1)・(2)の組あるいはアドレス
(3)・(4)の組のいずれか、動作可能でかつ現在未使用で
あるものを選ぶ。アドレス(1)・(2)の組を選んだ場合、
(1)及び(2)の各々のアドレスに対してopenオーダを発行
し、処理の初期化をデータ処理装置1に伝える。次にxf
erオーダを複数回発行し、データ処理装置1に対するデ
ータの転送を行う。この際、アドレス(1)に対してはC
PU7からデータ処理装置1へのデータ入力を、アドレ
ス(2)に対してはデータ処理装置1からCPU7へのデ
ータ出力を行うこととなる。処理の終了と共にcloseオ
ーダを各アドレスに発行し、処理の終了を指示する。
【0069】このように、ある特定のデータ処理を行う
には、データ処理装置1への入力及び出力双方に対して
各々open→xfer→xfer→・・・→xfer→closeの入出力命令
列を実行する必要がある。
【0070】以上において、アドレスの組に対してopen
から複数回のxferを経てcloseまでの一連の処理全体が
ホスト計算機から見た一つの処理、即ちジョブとなる。
また、これらopen→xfer→xfer→・・・→xfer→closeをい
くつかの部分に区切った際の各部分がジョブステップに
対応する。この関係を図4に示す。ジョブステップの区
切りは、処理時間又はジョブステップに許される所定の
データ量を基準に行われる。この区切りについては後述
する。この区切りを実現する別の方法として、入出力命
令が一定の回数に達した場合に、ジョブを切り替えるよ
うにしてもよい。
【0071】次に、ソート処理装置4において多重処理
を行うための手段について述べる。
【0072】まず、ジョブ0に属するデータをソート処
理装置4に書き込んで、次に別のジョブ1のデータをソ
ート処理装置4に書き込む場合には、ソート処理装置4
の特性から、ジョブ1の書き込みと同時にソート処理装
置4の内部に残存しているジョブ0のデータを読み出す
必要がある。従って、ソート処理装置4に対する多重処
理は、データ入力(write側)の処理とデータ出力(rea
d側)の処理とでは同時に異なるジョブを実行する必要
がある。
【0073】この様子を図5に示す。図5において、6
1と62は、分割された1つのジョブステップのデータ
であり、61はソート処理装置4に書き込むwriteデー
タ、62はソート処理装置から読み込むreadデータを表
している。63はソート処理装置4内のデータを表して
いる。また、61・62・63で内部が空白になってい
る部分はデータが無いことを表し、斜線で表されている
部分64・65はデータが存在することを表している。
符号64で示される斜線はジョブ0のデータであり、符
号65で示される斜線はジョブ1のデータである。
【0074】次にソート処理装置4のデータの入出力動
作を説明すると、図5では、まずステップS20のよう
にソート処理装置4内部にデータが何もない状態から出
発する。次に、ステップS21に移り、ジョブ0のデー
タを入力する。このデータはジョブステップ1のデータ
であり、入力されたデータは図20で既に説明したよう
に第1段のソートプロセッサ41から順に、蓄積され、
また処理されていく。そして、ステップS22で、ソー
ト処理装置4内に(ジョブ0)ジョブステップ1のデー
タがすべて蓄積される。このとき、write側には、ジョ
ブ1のデータがwriteデータ61として用意されてい
る。
【0075】次に、ステップS23に移り、ソート処理
装置4のwrite側でジョブ1のジョブステップ1のデー
タの書き込みが始まる。従ってこのときには、ソート処
理装置4内に、ジョブ0とジョブ1の2つのデータが存
在する。一方、ソート処理装置4のread側では、ジョブ
0のデータの出力が始まる。ステップS24では、ジョ
ブ0のジョブステップ1の処理はすべて終了し、ソート
処理装置4内にはジョブ1のデータが残る。次にステッ
プS25に移り、ソート処理装置4内のwrite側で再び
ジョブ0のデータの書き込みが始まる。このときのジョ
ブ0のデータはジョブステップ2のデータに変わる。一
方、ソート処理装置4のread側では、(ジョブ1)ジョ
ブステップ1のデータの読み込みが行われる。ステップ
S26では、ジョブ1のジョブステップ1の処理がすべ
て終了する。以降、上記と同様にジョブを交互に切り替
えて、ソート処理を行う。
【0076】上記のステップS23・25のように、wr
ite側とread側では、扱うジョブが異なることがあるの
で、ソート処理装置4を制御するデータベース処理装置
3や制御装置2は、自身が扱うジョブを単純に切り替え
ることができないという問題がある。
【0077】この発明では、ソート処理装置4を使用し
た処理を、ソート処理装置4へのデータのwriteの処理
(ジョブ)と、ソート処理装置4からのデータのreadの
処理(ジョブ)とを独立して管理することにより、上記の
問題を解決する。ここで、次のwrite側ジョブをどのジ
ョブにするかは任意に選択できるが、read側のジョブは
ソート処理装置4内の最終段のソートプロセッサ(図2
0に示したソート処理装置4では、第4のソートプロセ
ッサ)が処理しているジョブに特定される。
【0078】一方、データベース処理装置3は、このよ
うなwrite側、read側の時間的なずれはなく、これら双
方に同一のジョブを割り付けることが必要となる。これ
らの違いを図6と図7に示す。図6はソート処理装置を
使用する場合に、制御装置2が制御するジョブの関係を
表したものである。ソート処理装置4を使用した場合で
は、ソート処理装置4内でパイプライン的にソート処理
が行われ、最終段のソートプロセッサからソートされた
データが出力されるまでに時間がかかる。従って、図6
に示したようにwrite側とread側のジョブが異なるとい
う現象がおきる。
【0079】それに対し、ソート処理装置4を使用せず
にデータベース処理装置3で処理を行う場合には、パイ
プライン的に処理を行うわけではない。そのため、図7
に示したようにread側とwrite側のジョブは同じジョブ
であり、一つのジョブステップの処理結果をread側に出
力しながら、同時に次のジョブステップのデータをwrit
e側から読み込むといったことはせず、データ処理装置
3はある時点では一つのジョブしか実行していない。こ
のため、read側とwrite側のジョブが異なるといったこ
とはない。(ただし、複数のプロセッサでデータ処理装
置3を構成した場合には、read側とwrite側の処理が異
なるように構成してもよい)
【0080】[ジョブの切り替え制御]実際にはこれら
2種類の処理(ソート処理装置4を使用する処理と、使
用しない処理)が複合して任意の順で実行されるため、
これらの処理の種類に応じた入出力制御が必要になる。
【0081】このため、以下のような制御規則によりこ
れを制御する。 ・多重処理制御部20によるジョブ境界・ジョブステッ
プ境界の判断 1) 多重処理制御部20は、入力データ処理制御部2
1または出力データ処理制御部22自身が入出力命令の
処理を終了した時点で返す終了状態により、ジョブ開始
・ジョブ終了・ジョブステップ終了を判断する。即ち、
入力データ処理制御部21または出力データ処理制御部
22が入出力命令処理の終了状態にJSEND、JBE
NDを送信した場合に、これを受け取った多重処理制御
部20は各々当該ジョブステップの終了・当該ジョブの
終了を判断する。
【0082】2) また、多重処理制御部20は、ジョ
ブステップに割り当てられた時間を監視し、これが切れ
た(スライス切れ)場合には、現在のジョブステップの
次の入出力命令の配送時に、フラッグとしてJSEND
を送信する。これは多重処理制御部20から入力データ
処理制御部21、または出力データ処理制御部22に対
してジョブステップの打ち切りを示唆するものである。
【0083】・入力データ処理制御部21または出力デ
ータ処理制御部22によるジョブの状態管理 3) 3)-1ジョブステップの終了の判断 入力データ処理制御部21または出力データ処理制御部
22がジョブステップ境界と判断した場合、命令処理終
了時の状態としてJSENDを設定する。この場合には
以下がある。 ソート処理装置4を使用したデータ入力処理をwrite
側で実行しており、ソート処理装置4の最大処理容量に
達するデータをソート処理装置に入力完了した場合(こ
のとき、ソート処理装置4に入力するデータの最後には
終了マークを付加する) ソート処理装置4を使用したデータ出力処理をread側
で実行しており、ソート処理装置4からのデータに終了
マークを検出した場合 3)-2ジョブの終了の判断 入力データ処理制御部21または出力データ処理制御部
22がcloseオーダを受信した場合、ジョブの終了と判
断する。入出力命令処理終了時にJBENDを送信す
る。
【0084】・入力データ処理制御部21または出力デ
ータ処理制御部22によるジョブ・ジョブステップの切
り替え制御。 4)入力データ処理制御部21または出力データ処理制御
部22は、多重処理制御部20よりJSENDを受け取
ったときは、以下のように動作する。 ソート処理装置4を使用していない場合(データの併
合処理等をデータベース処理装置3のみで行う場合) この場合、即座にジョブ(ステップ)の切り替えを行
う。read側、write側共に必ず指示に従う。 ソート処理装置4を使用している場合 出力データ処理制御部22(read側)が終了データを検
出する以前にJSENDフラッグを検出し、現在のジョ
ブステップが終了する前に、このJSENDに従いジョ
ブステップを終了すると、ソート処理装置4中に3以上
のジョブデータが残ることになってしまう。従ってread
側はこの指示を必ず無視して、ジョブステップを最後ま
で実行し、終了後にジョブ(ステップ)の切り替えを行
う。一方、入力データ処理制御部21(write側)は、
JSENDフラッグを無視すると、複雑な選択処理など
でWRITE側の負荷が重い際にジョブ切り替えができない
ことになるのでWRITE側は必ず指示を守り、現在のジョ
ブ(ステップ)を中断し、次のジョブ(ステップ)に切
り替える。
【0085】[ソート処理装置4内データの読み捨て] 1)エラー、キャンセルの発生時点の入力データ処理制
御部21、出力データ処理制御部22の処理 例えば、ソート処理装置4内に2つのジョブが存在し、
write側でジョブ0を、read側でジョブ1を処理してい
たとする。このとき、CPU7がジョブ0のキャンセル
命令を送信し、このジョブ0を強制的に終了しなければ
ならなくなったとすると、ソート処理装置4内部にはキ
ャンセルされたジョブ0のデータが残っているため、不
要になったジョブ0のデータを読み捨ててやる必要が生
じる。
【0086】キャンセルは処理途中にcloseオーダを発
行することにより行われる。入力データ処理制御部2
1、出力データ処理制御部22は、処理が終了していな
い時点でcloseオーダを受け取ると、終了状態として、
JBEND(ジョブは終了した)+CAN(キャンセル
が発行された)を返してジョブを終了する。エラーが発
生した場合には以下のように処理する。 a)openでエラーが発生した場合、入力データ処理制御部
21、出力データ処理制御部22はエラー報告をした
後、当該ジョブに関する処理を終了する。その際、多重
処理制御部20に報告される終了状態はJBEND+E
RR(エラー発生)となる。 b)xferでエラーが発生した場合、入力データ処理制御部
21、出力データ処理制御部22は終了状態としてJS
END(ジョブステップが終了した)+ERRを多重処
理制御部20に報告した後、closeオーダを待つ。close
オーダまで待つ間に来たxferオーダは無視する。 c)closeでエラーが発生した場合、入力データ処理制御
部21、出力データ処理制御部22は多重処理制御部2
0にエラー報告をした後、処理を終了する。このとき、
終了状態JBEND+ERRを報告する。
【0087】2)エラー、キャンセルの発生時点以降の
ソート処理装置4内データ読み捨て例えばread側でジョ
ブ0のジョブステップ1を処理し、write側で同じジョ
ブ0のジョブステップ2を処理していた場合を想定す
る。このとき、read側でジョブステップ1の処理にエラ
ーが検出され、多重処理制御部20でジョブステップ1
の読み捨てが行われていたとしても、write側でジョブ
ステップ2が処理されてしまうために、ソート処理装置
4内にジョブ0のデータが残ってしまう。これを更にre
ad側で読み捨てる必要が生じる。
【0088】エラーまたはキャンセルを検出した入力デ
ータ処理制御部21、出力データ処理制御部22は上記
終了状態を多重処理制御部20に返す。多重処理制御部
20は、これらの状態をジョブステップ境界で検出する
と、当該ユニットに対して発行された入出力命令の処理
に際して、以降のxferオーダを無視することを指示する
フラッグを立てる。また、ジョブを構成する当該ユニッ
トのペアのユニットに対しても、同様の状態を設定す
る。入力データ処理制御部21、出力データ処理制御部
22は、このフラッグが立っている入出力命令が配送さ
れると、close以外のものは無条件に無視する。これに
より、一方が停止した場合、ペアのユニットもcloseま
ではxferがNOP扱いとなる。
【0089】ソート中にエラーが発生した場合、エラー
発生がread側であれば、出力データ処理制御部22のre
ad側は、当該ジョブステップが読み出し中のデータであ
れば、終了データまでこのデータをソート処理装置4か
ら読み捨てて、当該ジョブステップを終了する。同じく
ソート中にwrite側でエラーが発生した場合、入力デー
タ処理制御部21はソート処理装置4に直ちに終了マー
クを入力し、以降のデータ入力を中止する。これによ
り、当該ジョブステップ終了時には、ソート処理装置4
内部にはwrite側が書き込んだデータのみが残ることが
保証される。
【0090】エラーが発生したジョブステップの終了
後、多重処理制御部20は、エラーの発生がread側、ま
たはwrite側いずれか一方であったときに、多重処理制
御部20自身の責任で必要に応じてwrite側の書き込み
によりソータ内に残されたデータも読み捨てる(read側
にエラーが発生した場合には、readデータは上記の説明
のように既に読み捨てている。ここでは、次のジョブス
テップのwrite側が書いたデータを読み捨てる)。以下の
表から、多重処理制御部による読み捨てが必要な場合が
分かる。
【0091】
【表1】
【0092】以上の考え方による、多重処理制御部20
の動作を図8〜11を用いて、入力データ処理制御部2
1の動作を図12を用いて、出力データ処理制御部22
の動作を図13により説明する。
【0093】(図8・多重処理制御部の動作その1)図
8〜10は、多重処理制御部20の動作を説明するフロ
ーチャートである。最初に、フローチャートで使われて
いる変数を説明すると、 JW:現在のwrite側ジョブの識別子番号 j:write側で次に実行するジョブの識別子番号 JR:read側で次に実行するジョブの識別子番号 JN:ジョブの数 WU:実際にCPU7とのデータのやりとりをするため
のデータ入力ユニットアドレス RU:実際にCPU7とのデータのやりとりをするため
のデータ出力ユニットアドレス TS[0]:ジョブステップのwrite側開始時刻 TS[1]:ジョブステップのread側開始時刻 F[0]:入力データ処理制御部へ送るフラッグ F[1]:出力データ処理制御部へ送るフラッグ END:ジョブステップ終了カウンタ U:処理対象のユニット JK[ジョブ][read側/write側]:ジョブの種類 JK[0][0]はジョブ0のwrite側、 JK[1][0]はジョブ1のwrite側、 JK[0][1]はジョブ0のread側、 JK[1][1]はジョブ1のread側、のジョブの種類 をそれぞれ示している。
【0094】read側write側のジョブの種類は、ジョブ
毎に各々同一であるが、これらは処理の終了時点が一般
に異なるため、別々にこれを保持する。ジョブの種類
は、各々、「なし」、「ソート」、「ソート以外」があ
る。「なし」は当該ジョブ番号には処理が存在しない、
即ち当該ジョブ番号は未使用状態であることを示し、
「ソート」は当該ジョブ番号に対応してソート処理装置
を用いるジョブが実行中であることを示す。「ソート以
外」は当該ジョブ番号に対応してソート処理装置を用い
ないジョブ(結合、併合等)が実行中であることを示
す。
【0095】次に動作を説明する。まず、ステップS1
01で実行を開始すると、ステップS102で多重処理
制御部20は、各変数の初期化を行う。CPU7により
多重処理が設定され、多重度2で処理が開始されると、
多重処理制御部20は、JW、JRを0に設定し、開始
直後はwrite側、read側共にジョブ0の処理を行うもの
とする。また、JNは多重度として2に初期化する。
尚、以下でJW、JRが負の数となる場合があるが、こ
れは、対応するジョブが存在しないことを示す。入力デ
ータ処理制御部21、出力データ処理制御部22に送付
するフラッグF[0],F[1]は各々0に初期化され
る。
【0096】次に、ステップS103に移り、データ入
力ユニット変数WU、データ出力ユニット変数RU、処
理対象ユニット変数Uを初期化する。
【0097】続いて、ステップS104にうつり、現在
のwrite側ジョブが存在するかを調べる。JW≧0であ
れば、次のステップS105に移る。もしJWが負の値
であったときは、write側のジョブが存在しないのでス
テップS108に跳んでread側の処理を行う。
【0098】ステップS105では、データ出力ユニッ
ト変数RUに、次に実行するジョブステップのために選
ばれたジョブに対応するwrite側のユニットアドレスを
設定する。これらの計算は以下に説明するような簡単な
式の評価により求めることができる。また、これら処理
対象となったユニットアドレスは、ユニットアドレスを
記憶する変数Uに次々と記憶される。ユニットアドレス
とジョブ番号の関係は、ジョブ0をユニット1及び2の
組が実行し、ジョブ1をユニット3及び4の組が実行す
るように関連付けされている。従って、ジョブJに対す
るwrite側ユニットはJ*2+1により計算することが
できる。また、write側ユニットWUが属するジョブの
ジョブ番号は、(WUー1)/2により計算することが
できる。このように、ジョブ番号とユニット番号の対応
は簡単に計算できるため、以下では「対応するジョブ番
号」、「対応するユニット番号」等の簡単化した記述を
行う場合がある。また、ジョブステップの終了カウンタ
であるENDを1増加させておき、write側のジョブス
テップがスケジュールされていることを記録する。これ
は、例えばread側のみの実行からなるジョブステップ、
write側のみの実行からなるジョブステップ、read側、w
rite側双方からなるジョブステップの、3つの種類があ
ることを識別するためである。
【0099】次にステップS106に移り、データ入力
ユニット変数WUに設定されたユニットに対応する接続
線23スイッチ25により接続する。例えば、JWにジ
ョブ0が選択されているとすると、データ入力ユニット
変数WU=JW*2+1=1、となるから、WUにはユ
ニット1が選択される。また、スイッチ26がWUに対
応した接続線側に切り替わり、接続線51が入力データ
処理制御部21と接続される。別の例として、JWにジ
ョブ0が選択されていると、データ入力ユニット変数W
U=1となり、接続線51が入力データ処理制御部21
と接続されることになる。
【0100】続いてステップS107では、TS[0]
に、現在の時刻を設定する。これは、ジョブステップ開
始からの経過時間を計測するための準備である。
【0101】次に、ステップS108に移る。ステップ
S108〜S111はread側のための処理である。ま
ず、ステップS108で、read側のジョブが存在するか
どうかを調べる。JR≧0のときジョブが存在すると判
断し、ステップS109に移る。一方、JRが負の値の
ときはread側の処理が存在しないので図9のステップS
112に跳ぶ。
【0102】ステップS109では、データ出力ユニッ
ト変数RUに、次に実行するジョブステップのために選
ばれたジョブに対応するread側のユニットアドレスを設
定する。これらの計算は以下に説明するような簡単な式
の評価により求めることができる。また、これら処理対
象となったユニットアドレスは、ユニットアドレスを記
憶する変数Uに次々と記憶される。ジョブJに対するre
ad側ユニットはJ*2+2により計算することができ
る。また、read側ユニットRUが属するジョブのジョブ
番号は、(RU−2)/2により計算することができ
る。また、ジョブステップの終了カウンタであるEND
を1増加させておき、read側のジョブステップがスケジ
ュールされていることを記録する。
【0103】次にステップS106に移り、データ出力
ユニット変数RUに設定されたユニットに対応する接続
線と24の接続線をスイッチ26により接続する。例え
ば、JWがジョブ0に選択されているとすると、JR=
JR*2+2=2となるから、またデータ出力ユニット
変数RUにはユニット2を示す値を代入する。また、ス
イッチ26がRUに対応した接続線側に切り替わり、接
続線52が出力データ処理制御部22に接続される。別
の例として、JRにジョブ1が選択されていると、デー
タ出力ユニット変数RU=4となり、接続線51と54
が出力データ処理制御部22と接続されることになる。
【0104】続いてステップS111では、TS[1]
に、現在の時刻を設定する。これは、ジョブステップ開
始からの経過時間を計測するための準備である。
【0105】(図9・多重処理制御部の動作その2)次
に図9のステップS112に移り、ジョブステップの実
行を開始する。まず、ステップS112にて、RUまた
はWUのいずれかに対応する入出力命令を対応するキュ
ーから探し出す。これは、処理対象ユニット変数U中の
ユニットに対する入出力命令をキューから探し出すこと
によって行われる。そして、U中のユニットに対する入
出力命令があるかどうかについて判断する。この入出力
命令があったときは、次のステップS113に移り、な
いときは図10のステップS122に跳んで、ジョブス
テップの終了処理を行う。
【0106】ステップS113では、ステップS112
で探し出した入出力命令をキューより取り出す。次にス
テップS114に移り、u、j、wに各々取り出した命
令が属するユニット、命令に対応するジョブの番号、wr
ite側かread側かを記憶する。
【0107】続いて、ステップS115に移り、ステッ
プS113で取り出した命令がopen命令であるかどうか
について判断する。open命令であるときは、次のステッ
プS116に移り、open命令でないときは図10のステ
ップS122に跳ぶ。
【0108】ステップS116では、JK[j][w]
にopen命令に引き数として指定されているジョブの処理
種別を保持しておく。また、入力データ処理制御部2
1、または出力データ処理制御部22に対して制御を指
示するフラッグFの該当側(wで指定されるread側/wr
ite側)の値を0に初期化する。
【0109】以上で、当該ジョブが開始したことにな
る。次に、ステップS117において、規定の最大ジョ
ブステップ実行時間(MAXTIME)を超えていない
かどうかを検査する。これは、ステップS107または
ステップS111にて記録しておいた時間からの経過時
間と、MAXTIMEを比較して行う。MAXTIME
を超えていたときは、次のステップS118に移り、超
えていなかったときはステップS119に跳ぶ。
【0110】ステップS118では、ステップS117
でMAXTIMEを超えたと判断されたため、フラッグ
F[w]にフラッグJSENDを立てる。これは、現在
実行しているジョブステップの実行終了を、入力データ
処理制御部21または出力データ処理制御部22に通知
するために行われる。
【0111】以上の前処理が終了すると、ステップS1
19に移り、現在実行しているジョブステップはwrite
側の処理か、read側の処理かで分岐する。write側の処
理の場合は、ステップS120に移って、ステップS1
13で取り出した入出力命令をフラッグFとともに入力
データ処理制御部21へ配送し、入出力命令を実行する
ように指示する。一方、write側の処理であるときは、
ステップS121に移り、入出力命令をフラッグFとと
もに出力データ処理制御部22へ配送し、入出力命令を
実行するように指示する。ステップS120またはS1
21が終了した後は、ともに図10のステップS122
に移る。
【0112】(図10・多重処理制御部の動作その3)
次に、ステップS122において、入力データ処理制御
部21または出力データ処理制御部22が、ステップS
120またはS121で送信した入出力命令の処理を終
了したかどうかを検査する。入力データ処理制御部21
または出力データ処理制御部22は、入出力命令の実行
を終了すると終了通知を送ってくるので、この終了通知
があったか/なかったかを検査する。終了通知がない場
合には図9のステップS112に戻り、再び処理対象ユ
ニット変数U中のユニットに入出力命令が到着していな
いかどうかを検査し、次の入出力命令に対する処理を行
う。例えば、write側、read側双方を処理するジョブス
テップの場合、write側の命令の実行を開始した後、こ
のようにしてread側の命令の処理に移る。終了通知があ
った場合には、次のステップS123に移りジョブステ
ップの終了処理を行う。
【0113】ステップS123では、u、j、wに終了
した命令が属するユニット、命令に対応するジョブの番
号、write側かread側かを各々記憶する。また、sに処
理結果の状態を保持する。
【0114】次にステップS124に移り、sにERR
またはCANビットが立っているかどうかについて検査
する。ここで、ERRまたはCANビットが立っている
と判断された場合、次のステップS125に移る。これ
らのビットが立っていないと判断された場合は、ステッ
プS126からの異常時処理を跳ばしてステップS12
8に移る。
【0115】ステップS125の処理に移ったときは、
入出力命令がエラーまたはキャンセルにより終了したこ
とを示す。ステップS125では、現在のジョブステッ
プがソート処理装置4を用いた処理でかつそのwrite側
の処理であるか、または現在のジョブステップがソート
処理装置4を用いた処理で、かつそのread側の処理で、
かつwrite側とread側のジョブが同一の場合かどうかに
ついて判断する。ここで、上記の2つの場合に該当する
ときは次のステップS126に移って、読み捨てを行
い。上記2つの場合に該当しないときは、読み捨て処理
を跳ばしてステップS128に進む。
【0116】ステップS126では、ソート処理装置4
に残存するデータを終了データのマークが検出されるま
で読み捨てる。続いてステップS127においてwrite
側、read側のフラッグF共にIGNCLSフラッグを設
定し、以降、closeオーダ以外は無視することを入力デ
ータ処理制御部21及び出力データ処理制御部22に指
示する。
【0117】次にステップS128に移り、終了状態変
数sのJSENDビットがオンとなっているかどうかに
ついて調べ、オンならば対応するwrite側、またはread
側のジョブステップ処理が終了したので、ジョブステッ
プの終了カウンタENDを1減じて、ステップS130
に移る。また、sのJBENDがオフのときはそのまま
ステップS130に跳ぶ。
【0118】ステップS130では、終了状態変数sの
JBENDビットがオンとなっているかどうかについて
調べる。ここで、オンならば、write側またはread側の
ジョブがclose命令の実行により終了したので、ステッ
プS131においてその状態JK[j][w]を”な
し”とし、更に処理対象ユニット変数Uから対応するユ
ニットをはずしておく。ここで、多重処理制御部20と
入力データ処理制御部21、出力データ処理制御部22
との約束として、JBENDがオンの場合、必ずJSE
NDもオンとなるという規則に従うものとする。ステッ
プS131が終了すると、次のステップS132に進
む。一方、ステップS130でsがオフであると判断さ
れたときも、ステップS131を跳ばし、ステップS1
32に進む。
【0119】ステップS132は、ジョブステップの終
了カウンタENDが0となったかどうかを判断する。E
NDが0となればwrite側、read側双方でのジョブステ
ップの処理は終了したこととなり、次のジョブステップ
をスケジュールする処理ステップS133に行く。そう
でなければ、図9のステップS112に戻り、再び入出
力命令の取り出し処理に移る。
【0120】(図11・多重処理制御部の動作その4)
図11のステップS133からは、現在実行途中であ
り、かつ実行が一時的に中断されているジョブを再び割
り付ける処理を行う。まずwrite側のジョブを割り付け
るために、133においてjに巡回的に選択されたジョ
ブ番号を設定する。巡回的な選択は現在のJWに1を加
え、これをJNで割ったあまりを計算することにより求
めることができる。ここで図中の%は割り算結果のあま
りを求めることを示す。
【0121】次に、ステップS134において、jに対
応するジョブの種類をJK[j][0]を調べることによ
り判定し、また、直前にソート処理装置4がどのように
実行されたかによって、以下のように次ジョブの番号J
R、JWを決定する。まず、ステップS134におい
て、JK[j][0]の”なし”であると判定されたとき
はステップS135に、ソート処理であると判定された
ときはステップS136に、そして、ソート処理以外の
処理であると判定されたときはステップS140にそれ
ぞれ進む。
【0122】まず、ステップS135について説明する
と、この場合はjに対応するジョブがまだ割り付けられ
ていない場合の処理である。ステップS135では、ソ
ート処理装置4内にデータが残っているかどうかを調べ
る。これは、直前のジョブの種類がソートであったかど
うかにより判定できるため、JK[JW][0]がソート
となっているかどうかを調べる。もし、ソートでなけれ
ばデータ処理装置4内部にはデータが残存しておらず、
またjも処理要求がないため、次のジョブの候補を選択
するために巡回選択の手順ステップS133に戻る。直
前のジョブの種類がソート処理であった場合には、ステ
ップS137においてソート処理装置4内部のデータを
読み出すため、JRには直前のジョブを割り付ける。J
Wは−1として処理を割り付けないようにする。そし
て、ステップS137が終了すると図8のステップS1
03に戻り、JRに割り付けられたジョブステップの実
行を開始する。
【0123】次に、ステップS136について説明する
と、この場合は実行しようとするジョブがソート処理の
場合である。まず、ステップS136で、ソート処理装
置4内にデータが残っているかどうかを調べる。もし、
ソートでなければ該データ処理装置4内部にはデータが
残存しておらず、ステップS138に進んで、JR=−
1を設定し、さらにJW=jを設定してwrite側でステ
ップS133で選択されたjにかかるジョブを実行する
ように指定する。ステップS136でソート処理装置4
内にデータが残っていると判断された場合には、ステッ
プS139に移り、JR=JWを設定して、read側は直
前のジョブを実行する。さらに、JW=jを設定して、
write側でステップS133で選択されたjにかかるジ
ョブを実行するように指定する。ステップS138また
はステップS139が終了した後は、図8のステップS
103に戻り、JW・JRに指定されたジョブステップ
の実行を開始する。
【0124】最後にステップS140を説明すると、こ
の場合は実行しようとするジョブがソート処理以外の場
合である。ステップS140では、ソート処理装置4内
部の状態にかかわらずJR=JW=jとして、write側
及びread側でjにかかるジョブ(ステップ)を実行する
ように指定する。ステップS140終了後、図8のステ
ップS103に戻り、JW・JRに指定されたジョブス
テップの実行を開始する。
【0125】(図12・入力データ処理制御部21の動
作)次に、入力データ処理制御部21の動作について、
図12を用いて説明する。入力データ処理制御部21
は、ステップS199からスタートし、まずステップS
200において多重処理制御部20から入出力命令が到
着するのを待つ。即ち、入出力命令があったかどうかを
調べ、ないときは再びステップS200に戻って、入出
力命令が到着するまでループする。入出力命令が到着す
ると、ステップS201に進む。
【0126】ステップS201では、入出力命令と一緒
に送られてくるフラッグFの値を検査する。ここで、I
GNCLSビットが立っていると、ステップS202に
移り、ビットが立っていないときはステップS205に
跳ぶ。
【0127】ステップS202では、入出力命令がclos
e命令かどうかを調べる。もし、close命令であったとき
はステップS205に跳び、close命令でないときはス
テップS203に移って、終了状態を正常終了(OK)
として、ステップS204において多重処理制御部20
4に終了を伝える。このステップS204が終了すると
ステップS200に戻って、多重処理制御部20から入
出力命令が配送されるのを待つ。
【0128】ステップS205では、内部フラッグFL
AGを初期化する。次に、ステップS206に進み、多
重処理制御部20から送られてきたフラッグFにJSE
NDビットがオンであるかどうかを調べる。ここで、J
SENDビットがオンである場合(これはジョブステッ
プ実行において、規定時間を超えた処理がされている場
合を示す。図9のステップS117〜120を参照)
は、ステップS207に進み、ソート処理装置4でread
側の処理を行っているかどうかを調べる。YESと判断
されたときは、そのまま処理を中断せずにステップS2
09で現在の処理を実行する。これは、ソートのread側
の処理では、終了データを読み出すまで処理を中断する
ことができないため、時間を超えても処理を続行する必
要があるためである。NOと判断されたときはステップ
S208に進み、処理を一旦中断し、ジョブステップの
終了を知らせるためJSENDビットを立て、(最終的
にステップS217で多重処理制御部20にジョブステ
ップの終了通知する。)、ステップS210に移る。
【0129】ステップS209では、指定されたソー
ト、結合、併合等の処理をデータベース処理装置3、ソ
ート処理装置4を用いて実行する。特に、ジョブステッ
プの最初の命令に対する処理の場合で、ソート処理装置
4を用いる処理の場合、ソート処理装置4には初期化デ
ータをまず入力する。この際、データベース処理装置3
では、複数の処理に対しての要求が混在して発行される
ため、データベース処理装置3内にジョブに対応した数
のプログラムを複数配置し、これらプログラムの中から
指定されたジョブに対応するプログラムを呼び出すこと
により処理を実行する。図19のように構成したデータ
ベース処理装置3では、例えばプロセッサ34、35及
びその主記憶36、37によりジョブに対応した複数の
プログラムを保持、実行させる。
【0130】この実行により、例えばソート処理装置4
の容量限界までデータが入力され、結果としてジョブス
テップの終了、ジョブの終了が伝えられる場合がある。
その場合、ステップS309ではこれらの終了状態に応
じて、FLAGにJSEND、JBEND及びJSEN
Dをオンにして処理を終了するものとする。
【0131】ここで、ジョブステップは、以下の場合に
終了する。 1)ソート処理装置4を用いる場合: write側:ソート処理装置4の限界容量まで入力データ
処理制御部21がデータをデータを入力した場合 2)ソート処理装置を用いない場合: write側:xfer命令を複数回実行し、一定時間に達した
場合
【0132】この内、ソート処理装置4を用いる場合に
は、write側は、入力データ処理制御部21が、ソート
処理装置4の限界容量までデータを入力した時点で終了
データをソート処理装置4に書き込み、自身でジョブス
テップを終了する。このように、ソート処理装置の容量
または指定した時間によりホスト計算機より入力される
データ列が分割され、分割されたデータ部分列がジョブ
にわたって混在することにより、多重処理が行われる。
【0133】ステップS209では、この内、1)のwr
ite側においてのジョブステップの終了があった場合、
JSENDがオンとなって完了するものとする。更に、
処理がclose命令に対するものであった場合にはJBE
NDもオンとなって完了するものとする。
【0134】ステップS209の処理が終了すると、ス
テップS210で処理途中にエラーが発生したかどうか
を判定し、エラーが発生した場合にはステップS211
でJSEND及びERRビットをFLAGに立て、ステ
ップS212に進む。一方、エラーが発生しなかった場
合は、そのままステップS212に跳ぶ。
【0135】次に、ステップS212では、入出力命令
がclose命令であり、またその処理途中であれば、ステ
ップS213でFLAGにJBENDビットとCANビ
ットをオンし、ステップS214に進む。一方、ステッ
プS212で、NOと判断されたときは、そのままステ
ップS214に跳ぶ。
【0136】ステップS214では、ERRまたはCA
Nビットがオンの場合であるかどうかを調べ、YESの
ときは、さらにステップS215で、ソート処理装置4
を使用したジョブステップを実行中かどうかを調べる。
ステップS215でYESと判定されたときは、ステッ
プS216に進み、終了ワードをソート処理装置4に書
き込み、次のステップS217で、ソート処理装置4へ
のデータ入力を強制的に終了する。一方、ステップS2
14または、ステップS215でNOと判定されたとき
は、終了ワードの書き込みは行わず、ステップS217
に跳ぶ。
【0137】最後にステップS217で、上記のステッ
プS205〜216迄の間にセットしたFLAGを出力
し、終了状態を多重処理制御部20に通知する。そし
て、ステップS200に戻り次の入出力命令を待つ。
【0138】(図13・出力データ処理制御部22の動
作)次に、出力データ処理制御部22の動作について、
図13を用いて説明する。出力データ処理制御部22の
基本的な動作は、上述の入力データ処理制御部21の動
作に似ているが、read側のデータ読み出し等を行う点で
動作が異なる。出力データ処理制御部21は、ステップ
S299からスタートし、まずステップS300におい
て多重処理制御部20から入出力命令が到着するのを待
つ。即ち、入出力命令があったかどうかを調べ、ないと
きは再びステップS300に戻って、入出力命令が到着
するまでループする。入出力命令が到着すると、ステッ
プS301に進む。
【0139】ステップS301では、入出力命令と一緒
に送られてくるフラッグFの値を検査する。ここで、I
GNCLSビットが立っていると、ステップS302に
移り、ビットが立っていないときはステップS305に
跳ぶ。
【0140】ステップS302では、入出力命令がclos
e命令かどうかを調べる。もし、close命令であったとき
はステップS305に跳び、close命令でないときはス
テップS303に移って、終了状態を正常終了(OK)
として、ステップS304において多重処理制御部20
に終了を伝える。このステップS304が終了するとス
テップS300に戻って、多重処理制御部20から入出
力命令が配送されるのを待つ。
【0141】ステップS305では、内部フラッグFL
AGを初期化する。次に、ステップS306に進み、多
重処理制御部20から送られてきたフラッグFにJSE
NDビットがオンであるかどうかを調べる。ここで、J
SENDビットがオンである場合(これはジョブステッ
プ実行において、規定時間を超えた処理がされている場
合を示す。図9のステップS117〜120を参照)
は、ステップS307に進み、ソート処理装置4でread
側の処理を行っているかどうかを調べる。YESと判断
されたときは、そのまま処理を中断せずにステップS3
09で現在の処理を実行する。これは、ソートのread側
の処理では、終了データを読み出すまで処理を中断する
ことができないため、時間を超えても処理を続行する必
要があるためである。NOと判断されたときはステップ
S308に進み、処理を一旦中断し、ジョブステップの
終了を知らせるためJSENDビットを立て、(最終的
にステップS317で多重処理制御部20にジョブステ
ップの終了通知する。)、ステップS310に移る。
【0142】ステップS309では、指定されたソー
ト、結合、併合等の処理をデータベース処理装置3、ソ
ート処理装置4を用いて実行する。この際、データベー
ス処理装置3では、複数の処理に対しての要求が混在し
て発行されるため、データベース処理装置3内にジョブ
に対応した数のプログラムを複数配置し、これらプログ
ラムの中から指定されたジョブに対応するプログラムを
呼び出すことにより処理を実行する。図19のように構
成したデータベース処理装置3では、例えばプロセッサ
34、35及びその主記憶36、37によりジョブに対
応した複数のプログラムを保持、実行させる。
【0143】この実行により、例えばソート処理装置4
の容量限界までデータが入力され、結果としてジョブス
テップの終了、ジョブの終了が伝えられる場合がある。
その場合、ステップS309ではこれらの終了状態に応
じて、FLAGにJSEND、JBEND及びJSEN
Dをオンにして処理を終了するものとする。
【0144】ここで、ジョブステップは、以下の場合に
終了する。 1)ソート処理装置4を用いる場合: read側:終了データまでデータをソート処理装置4から
読み出した場合 2)ソート処理装置を用いない場合: read側:xfer命令を複数回実行し、一定時間に達した場
【0145】この内、ソート処理装置4を用いる場合に
は、read側は、入力データ処理制御部21が書き込んだ
データ及び終了データを、出力データ処理制御部22が
次のジョブステップで読み出した際に、自身でジョブス
テップを終了する。このように、ソート処理装置の容量
または指定した時間によりホスト計算機より入力される
データ列が分割され、分割されたデータ部分列がジョブ
にわたって混在することにより、多重処理が行われる。
【0146】ステップS309では、この内、1)のre
ad側においてのジョブステップの終了があった場合、J
SENDがオンとなって完了するものとする。更に、処
理がclose命令に対するものであった場合にはJBEN
Dもオンとなって完了するものとする。
【0147】ステップS309の処理が終了すると、ス
テップS310で処理途中にエラーが発生したかどうか
を判定し、エラーが発生した場合にはステップS311
でJSEND及びERRビットをFLAGに立て、ステ
ップS312に進む。一方、エラーが発生しなかった場
合は、そのままステップS312に跳ぶ。
【0148】次に、ステップS312では、入出力命令
がclose命令であり、またその処理途中であれば、ステ
ップS313でFLAGにJBENDビットとCANビ
ットをオンし、ステップS314に進む。一方、ステッ
プS312で、NOと判断されたときは、そのままステ
ップS314に跳ぶ。
【0149】ステップS314では、ERRまたはCA
Nビットがオンの場合であるかどうかを調べ、YESの
ときは、さらにステップS315で、ソート処理装置4
を使用したジョブステップを実行中かどうかを調べる。
ステップS315でYESと判定されたときは、ステッ
プS316に進み、終了ワードが現れるまでソート処理
装置4内のデータを読み捨てる。この読み捨てが終了す
ると、次のステップS317に移る。一方、ステップS
314または、ステップS315でNOと判定されたと
きは、読み捨ては行わず、ステップS317に跳ぶ。
【0150】最後にステップS317で、上記のステッ
プS305〜316迄の間にセットしたFLAGを出力
し、終了状態を多重処理制御部20に通知する。そし
て、ステップS300に戻り次の入出力命令を待つ。
【0151】(多重処理制御の動作例)本手順によって
制御された例を図14に示す。 ・ステップS401 図14では、まず最初にソート処理装置4を用いるジョ
ブ0が起動される。これは、多重処理制御部20が入出
力命令を入力データ処理制御部21に配送し、この配送
を受け取った入力データ処理制御部21がジョブ0のジ
ョブステップ1を実行することによって行われる(この
とき、入力データ処理制御部21に制御されるデータベ
ース処理装置3・ソート処理装置4もジョブステップ1
の処理を行う)。この実行が終了すると、入力データ処
理制御部21は、JSENDを多重処理制御部20に通
知し、ジョブ0のジョブステップ1が終了したことを伝
える。このとき、ジョブ0の処理はジョブステップ1と
しては完了したが、ジョブとしてはまだ継続する。
【0152】・ステップS402 多重処理制御部20は、次に巡回的にwrite側ジョブを
選択する。そして、ジョブ1をwrite側ジョブとして、
入力処理制御部21に対し入出力命令を配送する。ここ
で、このジョブ1の処理の種別は、ソート処理以外であ
ったとする。この場合、多重処理制御部20は、read側
もジョブ1として起動し、出力データ処理制御部22に
対し入出力命令を配送する。ジョブ1が終了すると、入
力データ処理装置21及び出力データ処理装置22は、
多重処理装置20に対しJBENDを通知する。(ま
た、このジョブ1のジョブステップ1の処理時間がMA
XTIMEを超えるようなケースでは動作が異なり、多
重処理制御部20は、入力データ処理制御部21及び出
力データ処理制御部22にJSENDを通知する。この
通知を受け取った入力データ処理制御部21及び出力デ
ータ処理制御部22はジョブ1のジョブステップ1の処
理を一旦終了する。)
【0153】・ステップS403 次に再び、多重処理制御部20は巡回的にジョブ0をwr
ite側ジョブとして選択し、次のジョブステップ2を実
行するように指示する。一方、read側には直前にソート
処理装置4にデータを入力し、ソート処理装置4内にデ
ータを残しておいたジョブ0のジョブステップ1が割り
当てられる。
【0154】・ステップS404 ソート処理装置4に入力したデータが限界容量に達した
場合や、処理時間がMAXTIMEに達した等の理由
で、write側で実行していたジョブ0のジョブステップ
1が終了したとき、多重処理装置20は、再びジョブを
巡回的に選択して、write側に割当てる。ここでは、ソ
ート処理装置4を使う新たなジョブ1が割り当てられた
とする。
【0155】一方、ソート処理装置4から送られたきた
データに終了データを検出すると、read側のジョブ0・
ジョブステップ1が終了する。そして、同様にread側に
は直前にソート処理装置4にデータを入力し、ソート処
理装置4内にデータを残しておいたジョブ0のジョブス
テップ2が割り当てられる。そして、write側に割り当
てられたジョブ1のジョブステップ2、read側に割当て
られたジョブ0のジョブステップ0が実行され、終了す
る。
【0156】・ステップS405 ここで、図2のキュー55〜59に新たな入出力命令が
到着してなく、一旦中断していたジョブステップもない
とすると、write側には新たなジョブは割り付けられ
ず、read側だけにジョブ1のジョブステップ2が割り付
けられる。
【0157】(ソート処理装置4)次に、多重処理実現
にあたってのソート処理装置の構成について説明する。
図15はソート処理装置4を構成するソートプロセッサ
の構成を示す。図15において、図2同一の符号は同一
又は相当の部分を表す。41〜44はソートプロセッ
サ、45〜48は、各々のソートプロセッサ41〜44
に接続される記憶装置である。図15では、そのうちソ
ートプロセッサ43の内部を詳細に示している(他のソ
ートプロセッサ41・42・44もこれに相当する構造
を有している)。430はソートプロセッサの制御装
置、431はソートプロセッサ43にて処理中のデータ
が属するジョブを識別するためのジョブ番号レジスタ、
432は当該ジョブのデータの長さを保持するデータ長
レジスタ、433はソートプロセッサ43が前段のソー
トプロセッサ42から入力したデータを一時的に保持す
るデータバッファ、434はソートを行うソート回路、
435は該ソートプロセッサ中に残存しているソート対
象データのバイト数を示すカウンタである。435はソ
ートプロセッサ43に残存するデータのバイト数を表示
するカウンタである。
【0158】ソート処理装置4は、接続線31、及び3
2でデータベース処理装置30と接続されている。ま
た、ソート処理装置4の内部の記憶装置45〜48は、
データベース処理装置3の主記憶装置としても働くよう
に、接続線33によってデータベース処理装置3と接続
されている。接続線33によるデータベース処理装置か
らのアクセスは、ソート処理装置4が停止している場合
に可能となる。
【0159】また、図16は本ソート処理装置4に入力
されるデータの形式を示す。このデータは、ジョブステ
ップごとに設けられ、初期化データ、処理データ、終了
データの順に入出力される。まず、初期化データは、レ
コードの長さを示すレコード長501、「ソート処理」
あるいは「ソート処理以外」等の処理の種別を表示する
処理種別502、ソートプロセッサ41〜44にそれぞ
れ対応する複数のビットを有し、ビットがオフときは、
オフのビットに対応するソートプロセッサによる処理を
行わないことを指定するバイパス指定503、ジョブを
識別するためのジョブ番号504、からなる。
【0160】処理データは、処理対象のデータ部分であ
る。最後に、終了マークは、入力データ処理制御部21
で付加されるジョブステップの終了部を表示する。
【0161】いままで説明してきたように、ソート処理
装置4は複数の処理を連続的、時分割的に実行するが、
この際、処理によって処理対象となるデータの長さが異
なる。このため、図16に示すように、ジョブステップ
の開始時にデータに先立って初期化データを入力し、ま
たジョブステップの終了においてデータの最後に終了デ
ータを付加する。
【0162】この実施例1におけるソート処理装置4の
動作の説明の前に、まずソート処理装置4で多重処理を
する場合に発生する課題と、この発明における解決法に
ついて説明する。
【0163】(ソート処理とソート以外の処理の多重化
の方法) 1)ソート処理装置4は上記のようにソートに用いるば
かりでなく、ソート処理装置4内の記憶装置45〜48
は、データベース処理装置3の共有記憶としても使用す
る。ソート処理をジョブステップ境界で中断して、デー
タベース処理装置3の併合処理に移行し、更に次にソー
ト処理を再開する、といったシークエンスを考えると、
ソートのジョブステップを実行していた記憶装置45〜
48の内容は、ソート処理を一旦中断してこの後実行す
るデータベース処理装置3のジョブステップの実行に影
響されることなく、併合処理終了後にソート処理を再開
することが可能な状態に保たれなければならない。この
ためには、ソート処理装置4内部に残存するデータを図
2のディスク装置8等に一旦ファイルとして出力し、デ
ータベース処理装置3による処理が終了した後再度これ
をソート処理装置4に入力して処理を再開する、といっ
た処理が必要となり、処理性能が大きく低下するという
問題がある。
【0164】この発明では、処理速度を低下させずに、
併合処理等とソートを並列に実行するため以下のような
方法をとる。図17は、ソート処理装置4内の記憶装置
45〜48の使用状況を説明する図である。図17にお
いて、図15と同一の部分は同一又は相当の部分を表
す。
【0165】図17(a)は、記憶装置45〜48をソ
ート処理にのみ使用している場合を示している。図17
(a)において、斜線部分はソート処理によって記憶装
置45〜48内の領域が使用されていることを示してい
る。このように、すべての領域をソート処理に使用して
いる。
【0166】図17(b)は、記憶装置45〜48を併
合処理等のソート以外の処理にのみ使用している場合を
示している。図17(a)において、斜線部分はデータ
ベース処理装置3によって記憶装置45〜48内の領域
が使用されていることを示している。このように、すべ
ての領域をソート以外の処理に使用している。
【0167】図17(c)は、ソート処理と併合処理等
のソート以外の処理を2多重で実行する場合に、ソート
処理が使用している領域を斜線で表している。図17
(d)は、(c)と同様に、ソート処理と併合処理等の
ソート以外の処理を2多重で実行する場合において、ソ
ート以外の処理が使用している領域を斜線で表してい
る。図17(c)と(d)の場合では、第1段目のソー
トプロセッサ41を使用せずにバイパスする。これは、
図16に示したデータのバイパス指定部503の第1段
目のソートプロセッサ41に対応するビットをオフにす
ることによって行われる。バイパスすることによって、
各段のソートプロセッサに必要な記憶容量を減らすこと
ができる。そのため、図17(c)と(d)を見てわか
るように、ソート処理とソート以外の処理の使用する領
域が明確に分かれ互いに重ならないために、データのデ
ィスク装置8等への待避が不要で、ソート処理とソート
以外の処理を迅速に切り替えることが可能となる。
【0168】図17に示すように、多重処理時には、初
段をバイパスする、即ちスキップすることによりソート
処理装置4の記憶装置群45〜48の内、下半分のみを
利用する。ソート処理装置4の動作から明らかなよう
に、ソート処理装置4の先頭のソートプロセッサ41を
バイパスし、2段目のソートプロセッサ42を先頭プロ
セッサとして用いると、第2段目のソートプロセッサ4
2は自身の記憶装置を初段のソートプロセッサ41に必
要な記憶装置分しか使用しない。例えば、初段をバイパ
スしない場合、2段めのソートプロセッサは1段目のソ
ートプロセッサから送られてくる2レコード毎にソート
されたデータをソートする。このため、2段目のソート
プロセッサは、最初に送られてくる2レコード目をまず
自身の記憶装置45に格納し、続いて送られてくる2レ
コード目の組の先頭レコードと格納された2レコードの
組の先頭を比較する、といった処理を行う。一般にi段
目のソートプロセッサは前段から送られてくるソート済
みの2i-1レコードをまず自身の記憶装置に格納し、続
いて送られてくるソート済みの2i-1レコードと併合処
理を行い、2i個のレコードからなるソート済みのレコ
ードの列を生成して次段に送り出す。従って、2段目を
先頭のソートプロセッサとして使用すると、その使用す
るメモリは、1レコード分となり、一般には、i段目の
ソートプロセッサが使用する記憶容量は各々2i-2レコ
ード分となり、使用容量は半減することがわかる。この
ことから、各ソートプロセッサの記憶装置45〜48
は、あらかじめ決められた番地から下半分がソートプロ
セッサ用のメモリ、上半分はデータベース処理装置3用
の共有メモリとして使用することができる。
【0169】以上は、第1段目のソートプロセッサ41
をバイパスするようにしたが、途中のソートプロセッサ
を1つバイパスするようにしてもよいし、最終段のソー
トプロセッサ44をバイパスするようにしてもよい。最
終段のソートプロセッサ44をバイパスするようにした
場合には、ソート処理装置4の構造が複雑にはなるが、
記憶装置48のメモリ領域総てがソート処理以外に使用
できるので、連続した記憶領域を確保できるという利点
がある。(ソート処理装置4内の記憶装置の容量は、後
段に行くほど大きくなるからである。)
【0170】(ソート処理のチェック) 2)併合処理等をデータベース処理装置3で実行する場
合、ソート処理装置4から受け取ったデータが正しくソ
ートされていることを確認し、またその併合結果もソー
トされた状態であることを確認する必要がある。この確
認処理は、ソートプロセッサを用いると、入力データの
ソート順を容易に確認することがせできるが、多重処理
時にはソートプロセッサ41〜44は残存データを保持
するため使用できず、そのためデータベース処理装置4
自身で実行する必要がある。このため、データベース処
理装置3の負荷が高くなり、データベース処理装置3の
性能が劣化する問題があった。
【0171】この発明による実施例1では、この問題を
以下のように解決し、高速な処理を可能にする。上記
1)で説明したように、ソート処理とソート以外の処理
を多重に実行する場合には、ソート処理装置4の初段ソ
ートプロセッサ41は未使用状態になる。この初段のソ
ートプロセッサ41を用いて、併合処理や、データが正
しくソートされているかどうかのチェックを行うことが
可能である。1多重処理の場合には、併合処理中は、ソ
ート処理装置は停止しており、またその記憶装置はいづ
れも空きであるから、ソートプロセッサ初段及び初段の
メモリは常に空いており、これを利用することに問題はな
い。
【0172】併合処理等、データベース処理装置3によ
り操作対象のデータ列がソートされているかどうかを確
認する際には、処理種別502に昇降順チェックを指示
する値が書き込まれた初期化用データを作成し、ジョブ
ステップの開始時にソート処理装置4に対して、この初
期化用データを流す。このデータストリームは、初段の
ソートプロセッサ41で解釈され、初段のソートプロセ
ッサ41は昇降順のチェックモードに入る。
【0173】続いて、初段のソートプロセッサ41に対
し昇降順をチェックするデータを転送する。この転送
は、例えば、ソート処理装置4内の記憶装置45〜48
内に記憶されているデータを、図示しないDMAC(ダ
イレクト・メモリ・アクセスコントローラ)を用いて、
初段のソートプロセッサ41の記憶装置45に高速に転
送する。あるいは、図16に示したようなデータを作成
して、処理種別502に昇降順チェックと記載し、通常
の経路でデータを転送する。このデータを受け取った初
段のソートプロセッサ41は、このデータの昇降順チェ
ックを行う。
【0174】転送されたデータの並びが不正で、正しく
ソートされなかった場合には、初段のソートプロセッサ
からデータベース処理装置3または制御装置2に、エラ
ー信号が出力されるようにしておく。データベース処理
装置3または制御装置2はこの信号を受け取って、ソー
トが正しく行われたか、そうでないかを確認することが
できる。
【0175】3)ジョブステップをwrite側とread側で
同時に完了しようとした場合に、ソート処理装置4をは
さんで両側にレコードの先頭と末尾のデータがはみ出し
た状態である可能性がある。即ち、 ・write側でレコード境界で停止してもread側でレコー
ドがはみ出して(write側で更にデータをwriteしてもら
わないとソート処理装置全体が構成するパイプラインが
停止してしまい)ジョブステップを終了できない。 ・read側でレコード境界で停止してもwrite側でレコー
ドがはみ出して(read側で更にデータをreadしてもらわ
ないとソート処理装置全体が構成するパイプラインが停
止してしまい)ジョブステップを終了できない。 という場合が発生する。すると、はみ出した側では処理
を打ち切ることができず、ジョブステップが終了できな
いこととなる。ソート処理装置4では、各ソートプロセ
ッサ41〜44がソートを行わない場合でも、入力デー
タを一旦自身の記憶装置45〜48に取り込み、その後
次段のソートプロセッサに出力することにより、必ずジ
ョブステップ境界の最終レコードをソート処理装置4内
部に取り込む。即ち、ソートプロセッサ41〜44は、
データを単にバイパスする場合でも、データバッファに
収まらないデータでも、それを記憶装置45〜48に一
旦取り込み、しかる後に次段に送り出す。
【0176】以下に、上述の機能を実現するソート処理
装置4の動作について説明する。ソート処理装置4を構
成するソートプロセッサ41〜44は、まず前段のソー
トプロセッサから入力されてくるデータを一旦データバ
ッファ433に格納する。次に、制御装置430は、デ
ータバッファ433内のデータの種別を調べる。
【0177】1)データバッファ433内のデータが初
期化データであれば、以下の動作を行う。 a)カウンタ435を調べる。カウンタ435が0でなけ
れば0になるまで、つまり記憶装置47内の残存データ
が次段のソートプロセッサ44に出力されるまで待つ。 b)カウンタ435が0であれば、初期化データからジョ
ブ番号、レコード長を各々内部のレジスタ431、43
2に格納する。
【0178】c)次に、初期化データ中の処理種別502
を参照する。 c-1)処理種別502がソートの場合 初期化データ中のバイパス指定において、自身のソート
プロセッサに対応するビットがオンかどうかを識別す
る。例えば、i段めのソートプロセッサであれば、図1
6に示したバイパス指定データ503において先頭から
i番めのビットがオンであるかどうかを調べる。 c-1-1)このビットがオンであれば、以降入力されるデー
タは一旦自身の記憶装置41〜44に格納した後、ソー
トを行うことなしに次段のソートプロセッサにデータを
そのままバイパスして転送するように、ソート回路43
4を初期化する。 c-1-2)このビットがオンでなければ、更にソート回路4
34をソート処理を行うようにこれを初期化する。 c-2)処理種別502がソート順検査の場合 ソート回路434を昇降順検査に設定する。昇降順検査
は、例えばデータが昇順に並んでいるかどうかの検査の
場合、ソート回路434に対し、ソート処理において比
較結果により次段のソートプロセッサにデータを出力す
るかわりに、比較結果が先に入力されたデータが後に入
力されたデータに対して大でない場合にエラーを報告す
るように変更することで容易に実現することができる。
【0179】2)データバッファ433内にデータがあ
れば、これをソート回路434に送ってソート、昇降順
検査、バイパスの実行を指示する。例えば、ソート処理
を行う場合、まず、前段のソートプロセッサ(例えばソ
ートプロセッサ42)からデータバッファ433にデー
タが送られてくると、前段のソートプロセッサがすでに
ソートした初めのデータブロックを全て記憶装置47に
記憶する(バイパスがない場合、第i段目のソートプロ
セッサでは、この記憶されるデータの量は2の(i−
1)乗である。例えば、第3段目のソートプロセッサ4
3では、4レコード分が記憶される)。次に、前段のソ
ートプロセッサから送られてくる2番目のデータブロッ
クの先頭のデータがデータバッファに送られてくる。こ
のデータは、ソート回路434に送られる。これを受け
取ったソート回路434は、記憶装置47内に記憶され
ているデータブロックの初めのデータを読み出し、この
データと、データバッファ433から送られきたデータ
を比較する。もし、データバッファ433内のデータが
大きな場合は、このデータを次段のソートプロセッサに
送る。もし、ソート回路434内のデータが大きな場合
には、ソート回路434内のデータを次段のソートプロ
セッサに送り、ソート回路434は記憶装置47から次
に比較すべきデータを読み込んでくる。そして、この読
み込んだデータとデータバッファ433から読み込んだ
データを比較して、大きなデータを次段のソートプロセ
ッサに送るという動作を繰り返す。
【0180】3)バッファ内のデータが終了データであ
れば、ソート処理の場合にはソート回路434に対して
残存データのソートと、その結果を次段のソートプロセ
ッサに送り出すことを指示する。また、昇降順検査処理
の場合には、残存データに対する昇降順検査を実施する
ことを指示する。
【0181】更に、上記実施例において、多重度を2か
ら1へ変更した場合、ジョブ0のみを処理するように変
更する。即ち、まず多重処理制御部20において、ユニ
ット0、1、2以外のユニット、即ちユニット3、4に
対してCPU7から送られた入出力命令が存在する場
合、これをただちにエラーとしてCPU7に報告する。
これにより、図8の処理フローを変更せずとも常にユニ
ット1、2に対する処理のみが処理対象となり、これに
より多重度を変更することが可能となる。
【0182】
【発明の効果】この発明は、以上に説明したように構成
されているので、以下に記載されるような効果を奏す
る。
【0183】ソート処理要求において、複数のレコード
からなる第1のソートデータをそれぞれ複数のレコード
を含む複数の第1のデータ小ブロックに分解する第1の
データブロック分解ステップと、複数の上記第1のデー
タ小ブロックのそれぞれに含まれる上記複数のレコード
をソート処理部によりソートする第1のソートステップ
と、この第1のソートステップが少なくとも一回終了し
た後、上記第1のソートデータと異なるソート処理要求
によって分解された第2のデータ小ブロックに含まれる
複数のレコードをソート処理部によりソートする第2の
ソートステップと、この第2のソートステップが少なく
とも一回終了した後、上記第1のソートステップでソー
トされなかった上記第1のデータ小ブロックを上記ソー
ト処理部によりソートする第3のソートステップと、上
記第1のソートステップと上記第3のソートステップに
よってソートされた複数の第1のデータ小ブロックを併
合し、ソートされた一つのソート済みデータブロックを
生成するデータブロック併合ステップと、を有するた
め、第1のソートデータをソートする場合に比べ第1の
ソートステップが短時間で終了し、続いて第2のソート
ステップが実行され、第2のソートステップが終了後、
再び第1のデータブロックをソートする第3のソートス
テップが短時間で実行されるので、1つのソート処理部
を用いて、第1のソートデータをソートしている間に、
第2のソートデータがソートでき、システムのスループ
ットが向上する。
【0184】また、複数のソート処理を受け付け、1つ
のソート処理にかかるソートデータを予め定められた処
理条件で出力し、この時間終了後は他のソート処理にか
かるソートデータを予め定められた処理条件で出力する
第1の多重入力制御部と、この第1の多重入力制御部か
ら送られてきたソートデータをソートするソート処理部
と、このソート処理部から送られてきたソートデータが
どのソート処理にかかるデータかを識別してソート処理
ごとにデータをまとめて出力する多重出力制御部、を備
えるため、第1の多重入力制御部は複数のソート処理を
所定の条件で切り替えてデータを出力し、ソート処理部
はこのデータを受け取ってソートし、多重出力制御部は
ソート処理部から送られてきたソートデータをソート処
理ごとに分けて出力するため、1つのソート処理部で複
数のソート処理を並行して実行できる。
【0185】また、上記複数のソート処理のうちの1つ
のソート処理の一部にかかる上記ソートデータを予め定
められた時間出力し、この出力終了後は他のソート処理
の一部にかかる上記ソートデータを予め定められた時間
出力する上記第1の多重入力制御部を有するため、複数
のソート処理を所定の時間で切り替えてデータを出力
し、ソート処理部はこのデータを受け取ってソートし、
多重出力制御部はソート処理部から送られてきたソート
データをソート処理ごとに分けて出力するため、1つの
ソート処理部で複数のソート処理を並行して実行でき
る。
【0186】また、上記複数のソート処理のうちの1つ
のソート処理の一部にかかる上記ソートデータを予め定
められたデータ量分出力し、この出力終了後は他のソー
ト処理の一部にかかる上記ソートデータを予め定められ
たデータ量分出力する上記第1の多重入力制御部を有す
るため、1つのソート処理にかかるデータを一定の大き
さに分割してデータ小ブロックを生成し、複数のソート
処理をデータ小ブロックごとに切り替えながら出力する
ため、1つのソート処理部で複数のソート処理を並行し
て実行できる。
【0187】加えて、複数のソート処理を受け付け、一
つのソート処理にかかるソートデータを、予め定められ
た時間出力するか、若しくは予め定められたデータ量分
を出力するか、のいずれか一方の条件を満たすまで出力
し、この出力後は他のソート処理にかかるソートデータ
を、予め定められた時間出力するか、若しくは予め定め
られたデータ量分を出力するか、のいずれか一方の条件
を満たすまで出力する上記第1の多重入力制御部を有す
るため、ソート処理部には一定量以下のデータを出力
し、かつ、一定時間ごとにソート処理を切り替えるた
め、少なくとも一定の処理時間経過ごとに分割して複数
のソート処理を実行でき、ソート処理部が扱えるデータ
量の範囲でデータを送ることができる。
【0188】1つのソート処理から他のソート処理に切
り替える際に、ソート処理部内に1つのソート処理にか
かるデータを、ソート処理部内に全て記憶させるソート
処理部を有するため、ソート処理部に1つのデータ小ブ
ロックのデータ全てが入力されないうちはソート処理が
切り替えられないので、ソート処理部で1つのデータ小
ブロックを完全にソートすることができる。
【0189】加えて、受け付けるソート処理の上限数を
可変で設定できるため、第1の多重入力制御部はこの上
限を超えない範囲で処理を受け付け、受け付けた処理に
対するデータをソート処理装置に出力するので、1つの
ソート処理部を用いて、上限数を少なく設定したときは
大量のデータの高速処理と、上限数を多く設定したとき
は複数のソート処理の高スループット化の両方を得るこ
とができ、複数のソート処理部を用いる場合に比べコス
トを抑えることができる。
【0190】加えて、上記ソート処理にかかるソートデ
ータを出力中に、上記ソート処理についてエラーまたは
キャンセルを検出したときに、終了データを付加して出
力するとともに上記ソート処理を中止する上記第1の多
重入力制御部、上記ソート処理にかかるソートデータ
を、ソート処理部から終了データまで読み取る上記多重
出力制御部を有するため、上記第1の多重入力制御部は
エラーまたはキャンセルを検出したときに、出力途中の
ソートデータの残りを出力せずに、このソートデータに
終了データを付加して出力して上記ソート処理を中止
し、この中止したソート処理にかかるソートデータを上
記ソート処理部から排除するために、ソート処理部に残
存する他の正常なソート処理にかかるソートデータもろ
とも上記中止したソート処理にかかるデータをリセット
せずに、上記多重出力制御部が他の正常なソート処理を
処理し、一方で、ソート処理部に残存する中止したソー
ト処理にかかるソートデータをソート処理部から読み取
り、このデータがソート処理部に残存しないようにする
ので、エラーまたはキャンセルが発生した場合も並列に
実行している他のソート処理を正常行うことができる。
【0191】ソート処理及びデータベース処理を受け付
け、ソート処理にかかるソートデータを予め定められた
処理条件で出力し、この出力後はデータベース処理にか
かるデータを予め定められた処理条件で出力する第2の
多重入力制御部と、複数のソートプロセッサが連なって
接続されて構成され、上記第2の多重入力制御部から送
られてきたソートデータをソートするソート処理部と、
上記第2の多重入力制御部から送られてきたデータのデ
ータベース処理を行うデータベース処理部と、上記ソー
ト処理部またはデータベース処理部から送られてきたソ
ートデータまたはデータを、ソート処理にかかるデータ
かデータベース処理にかかるデータかを識別してソート
処理またはデータベース処理ごとにまとめて出力する多
重出力制御部と、を備えるため、第2の多重入力制御部
はソート処理にかかるソートデータとデータベース処理
にかかるデータとを所定の条件で切り替えて出力し、出
力制御部はソートデータとデータとを識別し、処理ごと
に分けて出力するため、1つのデータ処理装置でソート
処理とデータベース処理とを並行して実行することがで
きる。
【0192】加えて、上記ソート処理部と上記データベ
ース処理部とに接続され、上記複数のソートプロセッサ
のうち少なくとも1つのソートプロセッサをバイパスす
る事により使用されなくなった記憶メモリを上記データ
ベース処理部が使用できるようにした共有記憶部と、を
有するため、ソートプロセッサの持つ記憶メモリの一部
をデータベース処理部用に使用し、残りの記憶メモリを
ソート処理に使用して、データベース処理とソート処理
にかかるデータとを同時に記憶して、互いのデータに干
渉しないように記憶メモリを使用するので、ソート処理
をしている間、ソート処理部にあるデータを外部の記憶
装置に待避する必要がなく、ソート処理とデータベース
処理とを並行して高速に実行することができる。
【0193】また、上記ソート処理の一部にかかるソー
トデータを予め定められた時間出力し、この出力後は上
記データベース処理の一部にかかるデータを予め定めら
れた時間出力する上記第2の多重入力制御部を有するた
め、第2の多重入力制御部はソート処理にかかるソート
データとデータベース処理にかかるデータとを所定の時
間で切り替えて出力し、出力制御部はソートデータとデ
ータとを識別し、処理ごとに分けて出力するため、1つ
のデータ処理装置でソート処理とデータベース処理とを
並行して実行することができる。
【0194】また、ソート処理及びデータベース処理を
受け付け、ソート処理にかかるソートデータを予め定め
られたデータ量分出力し、このデータ量分出力後はデー
タベース処理にかかるデータを予め定められたデータ量
分出力する上記第2の多重入力制御部、を有するため、
ソートデータを予め定められたデータ量だけ出力した後
は、出力するデータを切り替えて、データベース処理に
かかるデータを出力するので、ソート処理とデータベー
ス処理とを並行して実行することができる。
【0195】また、ソート処理及びデータベース処理を
受け付け、ソート処理にかかるソートデータを、予め定
められた時間出力するか、若しくは予め定められたデー
タ量分を出力するか、のいずれか一方の条件を満たすま
で出力し、この出力後はデータベース処理にかかるデー
タを、予め定められた時間出力する上記第2の多重入力
制御部を有するため、1つのデータ処理装置でソート処
理とデータベース処理とを並行して実行することがで
き、一定の時間で入力するデータを切り替えることがで
き、かつ、ソート処理装置が扱えるデータ量の範囲でソ
ートデータを送ることができる。
【0196】加えて、上記複数のソートプロセッサのう
ち少なくとも1つのソートプロセッサを昇降順チェック
用に用いるため、少なくとも1つのソートプロセッサを
用いて昇降順チェックを行い、ソート処理を行う際には
昇降順チェックを行うソートプロセッサをバイパスし
て、他のソートプロセッサがソート処理を実行し、昇降
順チェックを行うソートプロセッサは他のソートプロセ
ッサの記憶内容に干渉せず、同時に、他のプロセッサは
昇降順チェック用のプロセッサの記憶内容に干渉しない
ので、昇降順チェックとソート処理を1つのソート処理
部で実行でき、容易に昇降順チェックとソート処理の切
り替えを行うことができる。
【0197】受け付けるソート処理及びソート以外のデ
ータベース処理の上限数を可変で設定できるため、第2
の多重入力制御部はこの上限を超えない範囲で処理を受
け付け、受け付けた処理に対するデータをソート処理装
置若しくはデータベース処理部に出力するので、1つの
ソート処理部若しくは1つのデータベース処理部を用い
て、上限数を少なく設定したときは大量データの高速処
理と、上限数を多く設定したときは複数のソート処理若
しくはソート以外の処理の高スループット化の両方を得
ることができ、複数のソート処理部または複数のデータ
ベース処理部を用いる場合に比べコストを抑えることが
できる。
【図面の簡単な説明】
【図1】 この発明の実施例1を示すデータ処理装置の
機能ブロック図である。
【図2】 この発明の実施例1を示すデータベースシス
テムのシステム構成全体図である。
【図3】 この発明の実施例1のデータ処理装置の入出
力命令を説明する図である。
【図4】 この発明の実施例1のジョブとジョブステッ
プを説明する図である。
【図5】 この発明の実施例1のソート処理装置のデー
タの流れを説明する図である。
【図6】 この発明の実施例1において、ソート処理装
置を使用する場合のジョブステップの入出力タイミング
を説明する図である。
【図7】 この発明の実施例1において、ソート処理装
置を使用しない場合のジョブステップの入出力タイミン
グを説明する図である。
【図8】 この発明の実施例1の多重処理制御部の動作
を説明する第1のフローチャートである。
【図9】 この発明の実施例1の多重処理制御部の動作
を説明する第2のフローチャートである。
【図10】 この発明の実施例1の多重処理制御部の動
作を説明する第3のフローチャートである。
【図11】 この発明の実施例1の多重処理制御部の動
作を説明する第4のフローチャートである。
【図12】 この発明の実施例1の入力データ処理制御
部の動作を説明するフローチャートである。
【図13】 この発明の実施例1の出力データ処理制御
部の動作を説明するフローチャートである。
【図14】 この発明の実施例1において、ソート処理
装置を使用するジョブと、使用しないジョブを並行処理
した場合のジョブステップの入出力タイミングを説明す
る図である。
【図15】 この発明の実施例1のソート処理装置を詳
細に説明する機能ブロック図である。
【図16】 この発明の実施例1におけるジョブステッ
プのデータを説明する図である。
【図17】 この発明の実施例1において、データベー
ス処理装置とソート処理装置で記憶装置を共有する場合
に、両者が使用する記憶領域について説明する図であ
る。
【図18】 従来のデータベースシステムのシステム構
成全体図である。
【図19】 従来のデータ処理装置の構成を説明する機
能ブロック図である。
【図20】 従来のソート処理装置を詳細に説明する機
能ブロック図である。
【図21】 従来のソート処理におけるデータの流れを
説明する図である。
【符号の説明】
1 データ処理装置、 2 制御装置、 3 データベ
ース処理装置、4 ソート処理装置、 20 多重処理
制御部、 21 入力データ処理制御部、 22 出力
データ処理制御部、 25・26 スイッチ、 41〜
44 ソートプロセッサ、 45〜48 記憶装置、
430 制御装置、431 ジョブ番号レジスタ、 4
32 データ長レジスタ、 433 データバッファ、
434 ソート回路、 435 カウンタ

Claims (15)

    (57)【特許請求の範囲】
  1. 【請求項1】 ソート処理要求において、複数のレコー
    ドからなる第1のソートデータをそれぞれ複数のレコー
    ドを含む複数の第1のデータ小ブロックに分解する第1
    のデータブロック分解ステップと、複数の上記第1のデ
    ータ小ブロックのそれぞれに含まれる上記複数のレコー
    ドをソート処理部によりソートする第1のソートステッ
    プと、 この第1のソートステップが少なくとも一回終了した
    後、上記第1のソートデータと異なるソート処理要求に
    よって分解された第2のデータ小ブロックに含まれる複
    数のレコードをソート処理部によりソートする第2のソ
    ートステップと、 この第2のソートステップが少なくとも一回終了した
    後、上記第1のソートステップでソートされなかった上
    記第1のデータ小ブロックを上記ソート処理部によりソ
    ートする第3のソートステップと、 上記第1のソートステップと上記第3のソートステップ
    によってソートされた複数の第1のデータ小ブロックを
    併合し、ソートされた一つのソート済みデータブロック
    を生成するデータブロック併合ステップと、 を有するソート方法。
  2. 【請求項2】 複数のソート処理を受け付け、これらの
    うちの1つのソート処理の一部にかかる複数のレコード
    を含むソートデータを、予め定められた処理条件で出力
    し、この出力終了後は他のソート処理の一部にかかる複
    数のレコードを含むソートデータを予め定められた処理
    条件で出力する第1の多重入力制御部と、 この第1の多重入力制御部から送られてきたソートデー
    タをソートするソート処理部と、 このソート処理部から送られてきたソートデータが上記
    複数のソート処理のうちのどのソート処理にかかるデー
    タかを識別してソート処理ごとにデータをまとめて出力
    する多重出力制御部と、を有するソート処理装置。
  3. 【請求項3】 上記第1の多重入力制御部は、上記複数
    のソート処理のうちの1つのソート処理の一部にかかる
    上記ソートデータを予め定められた時間出力し、この出
    力終了後は他のソート処理の一部にかかる上記ソートデ
    ータを予め定められた時間出力することを特徴とする請
    求項2に記載のソート処理装置。
  4. 【請求項4】 上記第1の多重入力制御部は、上記複数
    のソート処理のうちの1つのソート処理の一部にかかる
    上記ソートデータを予め定められたデータ量分出力し、
    この出力終了後は他のソート処理の一部にかかる上記ソ
    ートデータを予め定められたデータ量分出力することを
    特徴とする請求項2に記載のソート処理装置。
  5. 【請求項5】 上記第1の多重入力制御部は、上記複数
    のソート処理のうちの1つのソート処理の一部にかかる
    上記ソートデータを、予め定められた時間出力するか、
    若しくは予め定められたデータ量分を出力するか、のい
    ずれか一方の条件を満たすまで出力し、 この出力終了後は他のソート処理の一部にかかる上記ソ
    ートデータを、予め定められた時間出力するか、若しく
    は予め定められたデータ量分を出力するか、のいずれか
    一方の条件を満たすまで出力しすることを特徴とする請
    求項2に記載のソート処理装置。
  6. 【請求項6】 上記ソート処理部は、上記1つのソート
    処理から上記他のソート処理に切り替える際に、上記第
    1の多重入力制御部が出力した上記1つのソート処理の
    一部にかかるソートデータ内の全てのレコードを記憶す
    ることを特徴とする請求項2〜5に記載のソート処理装
    置。
  7. 【請求項7】 上記第1の多重入力制御部は、受け付け
    る上記ソート処理の上限数を可変で設定できることを特
    徴とする請求項2〜6に記載のソート処理装置。
  8. 【請求項8】 上記第1の多重入力制御部は、上記ソー
    ト処理にかかるソートデータを出力中に、上記ソート処
    理についてエラーまたはキャンセルのいずれかを検出し
    たときに、上記ソートデータに終了データを付加して出
    力するとともに上記ソート処理を中止し、 上記多重処理制御部は、上記エラーまたはキャンセルの
    いずれかが検出された上記ソート処理にかかる上記ソー
    トデータを、終了データまで読み取ることを特徴とする
    請求項2〜7に記載のソート処理装置。
  9. 【請求項9】 ソート処理及びソート処理以外のデータ
    ベース処理を受け付け、上記ソート処理の一部にかかる
    ソートデータを予め定められた処理条件で出力し、この
    出力後は上記データベース処理の一部にかかるデータを
    予め定められた処理条件で出力する第2の多重入力制御
    部と、 複数のソートプロセッサが連なって接続されて構成さ
    れ、上記第2の多重入力制御部から送られてきた上記ソ
    ートデータをソートするソート処理部と、 上記第2の多重入力制御部から送られてきたデータに対
    し上記データベース処理を行うデータベース処理部と、 上記ソート処理部から送られてきたソートデータ、また
    は上記データベース処理部から送られてきたデータを、
    上記ソート処理にかかるデータか上記データベース処理
    にかかるデータかを識別して上記ソート処理または上記
    データベース処理ごとに出力する多重出力制御部と、を
    備えたデータ処理装置。
  10. 【請求項10】 上記ソート処理部と上記データベース
    処理部とに接続され、上記複数のソートプロセッサのう
    ち少なくとも1つのソートプロセッサをバイパスする事
    により使用されなくなった上記記憶メモリを上記データ
    ベース処理部が使用できるようにした共有記憶部を有す
    ることを特徴とする請求項9に記載のデータ処理装置。
  11. 【請求項11】 上記第2の多重入力制御部は、上記ソ
    ート処理の一部にかかるソートデータを予め定められた
    時間出力し、この出力後は上記データベース処理の一部
    にかかるデータを予め定められた時間出力することを特
    徴とする請求項9に記載のデータ処理装置。
  12. 【請求項12】 上記第2の多重入力制御部は、上記ソ
    ート処理の一部にかかるソートデータを予め定められた
    データ量分出力し、この出力後は上記データベース処理
    の一部にかかるデータを予め定められたデータ量分出力
    することを特徴とする請求項9に記載のデータ処理装
    置。
  13. 【請求項13】 上記第2の多重入力制御部は、 上記ソート処理の一部にかかるソートデータを予め定め
    られた時間出力するか、若しくは予め定められたデータ
    量分を出力するか、のいずれか一方の条件を満たすまで
    出力し、 この出力後は上記データベース処理の一部にかかるデー
    タを予め定められた時間、上記データベース処理部の要
    求に応じて出力することを特徴とする請求項9に記載の
    データ処理装置。
  14. 【請求項14】 上記複数のソートプロセッサのうち少
    なくとも1つのソートプロセッサを昇降順チェック用に
    用いることを特徴とする請求項9〜13に記載のデータ
    処理装置。
  15. 【請求項15】 上記第2の多重入力制御部は、受け付
    ける上記ソート処理及び上記データベース処理の上限数
    を可変で設定できることを特徴とする請求項9〜14に
    記載のデータ処理装置。
JP07255195A 1995-03-20 1995-03-30 ソート方法並びにソート処理装置並びにデータ処理装置 Expired - Fee Related JP3518034B2 (ja)

Priority Applications (9)

Application Number Priority Date Filing Date Title
JP07255195A JP3518034B2 (ja) 1995-03-30 1995-03-30 ソート方法並びにソート処理装置並びにデータ処理装置
US08/621,187 US6035296A (en) 1995-03-20 1996-03-21 Sorting method, sort processing device and data processing apparatus
DE69622776T DE69622776T2 (de) 1995-03-30 1996-03-28 Von Multitasking gebrauch machendes Sortieren
EP96104973A EP0735460B1 (en) 1995-03-30 1996-03-28 Sorting using multitasking
EP01104954A EP1111500B1 (en) 1995-03-30 1996-03-28 Sorting using multitasking
DE69625725T DE69625725T2 (de) 1995-03-30 1996-03-28 Von Multitasking Gebrauch machendes Sortieren
KR1019960009069A KR100407862B1 (ko) 1995-03-30 1996-03-29 소트방법, 소트처리장치 및 데이타처리장치
CN96107310A CN1118765C (zh) 1995-03-30 1996-03-29 数据处理装置
CNB021406294A CN1223952C (zh) 1995-03-30 2002-07-04 分类方法、分类处理设备和数据处理设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP07255195A JP3518034B2 (ja) 1995-03-30 1995-03-30 ソート方法並びにソート処理装置並びにデータ処理装置

Publications (2)

Publication Number Publication Date
JPH08272592A JPH08272592A (ja) 1996-10-18
JP3518034B2 true JP3518034B2 (ja) 2004-04-12

Family

ID=13492617

Family Applications (1)

Application Number Title Priority Date Filing Date
JP07255195A Expired - Fee Related JP3518034B2 (ja) 1995-03-20 1995-03-30 ソート方法並びにソート処理装置並びにデータ処理装置

Country Status (6)

Country Link
US (1) US6035296A (ja)
EP (2) EP1111500B1 (ja)
JP (1) JP3518034B2 (ja)
KR (1) KR100407862B1 (ja)
CN (2) CN1118765C (ja)
DE (2) DE69625725T2 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4304746B2 (ja) * 1999-01-06 2009-07-29 ソニー株式会社 ファイルの置き換え方法及び装置
US6434560B1 (en) * 1999-07-19 2002-08-13 International Business Machines Corporation Method for accelerated sorting based on data format
US6775667B1 (en) * 2000-05-01 2004-08-10 Broadcom Corporation Method and system for providing a hardware sort for a large number of items
US20030191761A1 (en) * 2002-04-04 2003-10-09 International Business Machines Corporation Methods and apparatus for remote file access
JP2005190047A (ja) 2003-12-25 2005-07-14 Hitachi Ltd データソート機能を持つストレージシステム
JP4776571B2 (ja) * 2007-03-16 2011-09-21 富士通株式会社 実行制御プログラム,実行制御方法及び実行制御装置
US20110055492A1 (en) * 2009-09-03 2011-03-03 Ren Wu Multiple processing core data sorting
US8843502B2 (en) 2011-06-24 2014-09-23 Microsoft Corporation Sorting a dataset of incrementally received data
EP2788902B1 (en) 2011-12-08 2019-04-17 Oracle International Corporation Techniques for more efficient usage of memory-to-cpu bandwidth
US9342314B2 (en) 2011-12-08 2016-05-17 Oracle International Corporation Efficient hardware instructions for single instruction multiple data processors
US9697174B2 (en) 2011-12-08 2017-07-04 Oracle International Corporation Efficient hardware instructions for processing bit vectors for single instruction multiple data processors
US10534606B2 (en) 2011-12-08 2020-01-14 Oracle International Corporation Run-length encoding decompression
US9792117B2 (en) 2011-12-08 2017-10-17 Oracle International Corporation Loading values from a value vector into subregisters of a single instruction multiple data register
US9292569B2 (en) 2012-10-02 2016-03-22 Oracle International Corporation Semi-join acceleration
US9378232B2 (en) 2013-09-21 2016-06-28 Oracle International Corporation Framework for numa affinitized parallel query on in-memory objects within the RDBMS
US10025822B2 (en) 2015-05-29 2018-07-17 Oracle International Corporation Optimizing execution plans for in-memory-aware joins
US9990308B2 (en) 2015-08-31 2018-06-05 Oracle International Corporation Selective data compression for in-memory databases
CN108695075B (zh) * 2015-11-19 2020-04-21 福建省福工动力技术有限公司 可实时检测的基于can总线通信的超级电容监控系统
US10055358B2 (en) 2016-03-18 2018-08-21 Oracle International Corporation Run length encoding aware direct memory access filtering engine for scratchpad enabled multicore processors
US10061832B2 (en) 2016-11-28 2018-08-28 Oracle International Corporation Database tuple-encoding-aware data partitioning in a direct memory access engine
US10061714B2 (en) 2016-03-18 2018-08-28 Oracle International Corporation Tuple encoding aware direct memory access engine for scratchpad enabled multicore processors
US10599488B2 (en) 2016-06-29 2020-03-24 Oracle International Corporation Multi-purpose events for notification and sequence control in multi-core processor systems
US10380058B2 (en) 2016-09-06 2019-08-13 Oracle International Corporation Processor core to coprocessor interface with FIFO semantics
US10783102B2 (en) 2016-10-11 2020-09-22 Oracle International Corporation Dynamically configurable high performance database-aware hash engine
US10459859B2 (en) 2016-11-28 2019-10-29 Oracle International Corporation Multicast copy ring for database direct memory access filtering engine
US10176114B2 (en) 2016-11-28 2019-01-08 Oracle International Corporation Row identification number generation in database direct memory access engine
US10725947B2 (en) 2016-11-29 2020-07-28 Oracle International Corporation Bit vector gather row count calculation and handling in direct memory access engine
US10901692B2 (en) * 2018-07-12 2021-01-26 Texas Instruments Incorporated Bitonic sorting accelerator

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4209845A (en) * 1977-01-25 1980-06-24 International Business Machines Corporation File qualifying and sorting system
US4514826A (en) * 1981-05-18 1985-04-30 Tokyo Shibaura Denki Kabushiki Kaisha Relational algebra engine
JPH077385B2 (ja) * 1983-12-23 1995-01-30 株式会社日立製作所 データ処理装置
CA1228677A (en) * 1984-06-21 1987-10-27 Cray Research, Inc. Peripheral interface system
DE3588212T2 (de) * 1984-08-22 1999-12-30 Hitachi Ltd Verfahren und Gerät zum Suchen von Daten
US4890220A (en) * 1984-12-12 1989-12-26 Hitachi, Ltd. Vector processing apparatus for incrementing indices of vector operands of different length according to arithmetic operation results
US4962451A (en) * 1985-11-07 1990-10-09 International Business Machines Corporation Cache-effective sort string generation method
JPS6386043A (ja) * 1986-09-30 1988-04-16 Mitsubishi Electric Corp ソ−ト機構を有するメモリ装置
JP2752634B2 (ja) * 1988-05-26 1998-05-18 優 喜連川 ソート処理装置
US5028186A (en) * 1990-01-29 1991-07-02 Mechanical Plastics Corp. Hollow wall anchor with enhanced holding strength
US5210870A (en) * 1990-03-27 1993-05-11 International Business Machines Database sort and merge apparatus with multiple memory arrays having alternating access
JPH0743700B2 (ja) * 1990-07-17 1995-05-15 三菱電機株式会社 データ駆動型情報処理装置
US5978831A (en) * 1991-03-07 1999-11-02 Lucent Technologies Inc. Synchronous multiprocessor using tasks directly proportional in size to the individual processors rates
US5307485A (en) * 1991-05-31 1994-04-26 International Business Machines Corporation Method and apparatus for merging sorted lists in a multiprocessor shared memory system
US5410689A (en) * 1991-06-13 1995-04-25 Kabushiki Kaisha Toshiba System for merge sorting that assigns an optical memory capacity to concurrent sort cells
US5404558A (en) * 1992-02-17 1995-04-04 Sharp Kabushiki Kaisha Data driven type information processor having a plurality of memory banks
JPH06124352A (ja) * 1992-10-14 1994-05-06 Sharp Corp データ駆動型情報処理装置
JPH0728624A (ja) * 1993-07-13 1995-01-31 Mitsubishi Electric Corp ソート装置及びソート方法
JP3571367B2 (ja) * 1993-08-11 2004-09-29 シャープ株式会社 データ駆動型プロセッサ、データ駆動型情報処理装置、およびこのデータ駆動型情報処理装置において、複数個のデータ駆動型プロセッサの経路接続を確認するための方法
US5727200A (en) * 1994-03-07 1998-03-10 Nippon Steel Corporation Parallel merge sorting apparatus with an accelerated section

Also Published As

Publication number Publication date
KR100407862B1 (ko) 2004-03-10
CN1223952C (zh) 2005-10-19
JPH08272592A (ja) 1996-10-18
EP1111500A1 (en) 2001-06-27
CN1140284A (zh) 1997-01-15
DE69622776D1 (de) 2002-09-12
DE69625725T2 (de) 2003-11-27
EP0735460A3 (en) 1997-03-26
DE69625725D1 (de) 2003-02-13
EP0735460B1 (en) 2002-08-07
EP1111500B1 (en) 2003-01-08
KR960035249A (ko) 1996-10-24
EP0735460A2 (en) 1996-10-02
CN1402150A (zh) 2003-03-12
CN1118765C (zh) 2003-08-20
DE69622776T2 (de) 2003-04-10
US6035296A (en) 2000-03-07

Similar Documents

Publication Publication Date Title
JP3518034B2 (ja) ソート方法並びにソート処理装置並びにデータ処理装置
US5924097A (en) Balanced input/output task management for use in multiprocessor transaction processing system
JP3696960B2 (ja) 並列演算処理システム及び並列演算処理方法
EP0380857A2 (en) Arbitrating communication requests in a multi-processor computer system
US4967341A (en) Method and apparatus for processing data base
US5010477A (en) Method and apparatus for transferring vector data between parallel processing system with registers & logic for inter-processor data communication independents of processing operations
CN1021536C (zh) 数据处理系统中串行通信控制器的可度量的调度器
CN1188794C (zh) 到一个共享的协处理器资源的多个逻辑接口
JPH06231094A (ja) ベクトル処理装置及びその制御方法
CN112286917B (zh) 数据处理方法、装置、电子设备和存储介质
CN111639044B (zh) 一种支持中断优先级轮询仲裁派发的方法和装置
KR20120085798A (ko) 효율적인 다중 패킷 필터 통계 생성
US20110173287A1 (en) Preventing messaging queue deadlocks in a dma environment
EP1524599B1 (en) A method of reassigning objects to processing units
JPH02242434A (ja) タスクのスケジューリング方法
CN1021604C (zh) 在向量数据处理运算中从缺页故障中恢复的设备和方法
US7673182B2 (en) Method and apparatus for obtaining stack traceback data for multiple computing nodes of a massively parallel computer system
JP2001014139A (ja) ワークファイルを使用するマルチスレッドソート処理方式及び処理方法
JP2986930B2 (ja) 対称型マルチプロセッサのタスクスケジューリング方式
JPH05324430A (ja) データ処理装置
JP2716019B2 (ja) ジョブクラス判定方式
KR970007002B1 (ko) 다중처리 시스템에서 프로세스 디스패치 방법
JP2740469B2 (ja) タスク管理方式
JPH0581337A (ja) データ処理装置
JPH11120147A (ja) 負荷分散制御方法

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040106

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040119

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080206

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090206

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees